GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Einrichten einer glänzenden Entwicklungsumgebung in Linux unter Windows 10

Während ich Ruby on Rails dazu brachte, gut unter Ubuntu unter Windows 10 zu funktionieren, nutzte ich die Gelegenheit, um meine *nix-Bash-Umgebung einzurichten, die größtenteils Standardwerte verwendete. Ja, ich weiß, dass ich zsh oder Fisch oder andere Muscheln verwenden kann. Ja, ich weiß, dass ich emacs und screen verwenden kann, aber ich verwende Vim und tmux. Bekämpfe mich. Wie auch immer, sobald mein Beitrag fertig war, fing ich an, mit Open Source .NET Core unter Linux herumzuspielen (es läuft unter Windows, Mac und Linux, aber hier laufe ich unter Linux unter Windows. #Inception) und twitterte ein Bild davon Mein Desktop.

Übrigens fühle ich mich durch all das Interesse am „Textmodus“ angesichts meines Blog-Beitrags von 2004 „Windows fehlt das TextMode-Boot vollständig“ völlig bestätigt.;)'

Auch für diejenigen unter Ihnen, die an der Befehlszeile NICHT INTERESSIERT sind, ist das cool. Sie können jetzt aufhören zu lesen. Völlig in Ordnung. Ich verwende auch Visual Studio UND Visual Studio Code. Manchmal klicke und maus ich und manchmal tippe ich und tippe. Es gibt Platz für uns alle.

WAS IST DIESES LINUX-UNTER-WINDOWS-MATERIAL? Hier ist eine FAQ zum Bash/Windows-Subsystem für Linux/Ubuntu unter Windows/Snowball in Hell und einige detaillierte Versionshinweise. Ja, es ist echt, und es ist spektakulär. Sie können nicht so viel Text lesen? Hier ist ein Video, das ich auf Ubuntu unter Windows 10 gemacht habe.

Eine Reihe von Leuten hat mich gefragt, wie sie ihre WSL-Installationen (Windows Subsystem for Linux) so einrichten könnten, dass sie so aussehen, also habe ich Folgendes getan. Beachten Sie, dass ich, wenn ich * nix seit über 20 Jahren ein- und ausschalte, keineswegs ein Experte bin. Ich bin und war in meinen Fähigkeiten ein Permanent Intermediate. Ich träume nicht in RegEx, und ich bin beleidigt, dass andere ein awk-Skript raushauen können, ohne zu googeln.

In diesem Screenshot passiert also einiges.

  • Ausführen von .NET Core unter Linux (unter Windows 10)
  • Cooles VIM-Design mit>256 Farben
  • Norton Midnight Commander in der Ecke (danke Miguel)
  • Desqview-ähnlicher Tmux-Splitter (mit Mausunterstützung)
  • Einige Hotkey-Neuzuordnung, Git-Eingabeaufforderung, Vervollständigung
  • Ubuntu Mono-Schriftart
  • Schöne Verzeichnisfarben (DIRCOLORS/LS_COLORS)

Lassen Sie uns sie einzeln aufschlüsseln. Und noch einmal, Ihr Kilometerstand kann variieren, keine ausdrückliche oder stillschweigende Garantie, alles davon kann Ihre Welt zerstören, Sie haben dies in einem Blog gelesen. Linux ist unendlich konfigurierbar und die einzige Konstante ist, dass meine Konfiguration rockt und deine scheiße ist. Bis ich etwas in deinem sehe, das ich stehlen kann.

Ausführen von .NET Core unter Linux (unter Windows 10)

Da Linux unter Windows 10 (heute) Ubuntu ist, können Sie .NET Core wie jedes Linux darin installieren. Hier ist die Ubuntu-Anweisung für das SDK von .NET Core. Möglicherweise haben Sie Ubuntu 14.04 oder 16.04 (Sie können Ihr Linux unter Windows aktualisieren, wenn Sie möchten). Stellen Sie sicher, dass Sie wissen, was Sie ausführen, indem Sie Folgendes tun:

~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
~ $

Wenn Sie nicht auf 16.04 sind, können Sie das gesamte Subsystem mit diesen Befehlen unter cmd.exe einfach entfernen und neu installieren (beachten Sie, dass /full ernst ist und das Linux-Dateisystem fackelt):

> lxrun /uninstall /full
> lxrun /install

Oder wenn Sie möchten, können Sie dies in Bash ausführen (dauert länger, behält aber die Einstellungen bei).

HINWEIS dass Sie Windows 10 Creators Edition Build 16163 oder höher benötigen, um Ubuntu 16.04 auszuführen. Geben Sie "winver" ein, um Ihren Build zu überprüfen.

sudo do-release-upgrade

Wissen Sie, welches Ubuntu Ihr Windows 10 hat, wenn Sie .NET Core darin installieren. Die andere Sache, an die Sie sich erinnern sollten, ist, dass Sie jetzt zwei .NET-Kerne, einen Windows und einen Ubuntu, auf derselben (irgendwie) Maschine haben. Da die Dateisysteme getrennt sind, ist das keine große Sache. Ich mache meine Entwicklungsarbeit in Ubuntu auf /mnt/d/github (das ist ein Windows-Laufwerk). Es ist für das Linux-Subsystem in Ordnung, Dateien in Linux oder Windows zu bearbeiten, aber "greifen" Sie nicht von Windows aus in das Linux-Dateisystem.

Cooles Vim-Design mit>256 Farben

Dieses Vim-Design ist gruvbox und ich habe es so installiert. Danke an Rich Turner, dass er mich auf dieses Thema aufmerksam gemacht hat.

$ cd ~/
$ mkdir .vim
$ cd .vim
$ mkdir colors
$ cd colors
$ curl -O https://raw.githubusercontent.com/morhetz/gruvbox/master/colors/gruvbox.vim
$ cd ~/
$ vim .vimrc

Fügen Sie Folgendes ein (drücken Sie „i“ zum Einfügen und dann Rechtsklick/Einfügen)

set number
syntax enable
set background=dark
colorscheme gruvbox
set mouse=a

if &term =~ '256color'
" disable Background Color Erase (BCE) so that color schemes
" render properly when inside 256-color tmux and GNU screen.
" see also http://snk.tuxfamily.org/log/vim-256color-bce.html
set t_ut=
endif

Dann speichern und beenden mit Esc, :wq (schreiben und beenden). Es gibt eine Menge Themen da draußen, also probiere selbst welche aus!

Norton Midnight Commander in der Ecke (danke Miguel)

Midnight Commander ist ein wunderbarer Klon von Norton Commander, den Miguel de Icaza gestartet hat und der als Teil von GNU lizenziert ist. Ich habe es über apt installiert, wie ich es mit jeder Ubuntu-Software tun würde.

$ sudo apt-get install mc

Es gibt Mausunterstützung innerhalb des Windows-Conhosts (Konsolenhost), auf dem Bash läuft, also erhalten Sie sogar Mausunterstützung innerhalb von Midnight Commander!

Tolle Sache.

Desqview-ähnlicher Tmux-Splitter (mit Mausunterstützung)

Tmux ist ein Terminal-Multiplexer. Es ist eine Textmodus-Fensterumgebung, in der Sie mehrere Programme ausführen können. Noch besser, Sie können sich von einer laufenden Sitzung „trennen“ und an anderer Stelle wieder anschließen. Aus diesem Grund lieben es die Leute, tmux auf Servern zu verwenden, auf denen sie sich per SSH einloggen, eine Umgebung einrichten, sich von woanders trennen und wieder verbinden können.

HINWEIS: Das Windows-Subsystem für Linux fährt alle Hintergrundprozesse herunter, wenn die letzte Konsole beendet wird. Sie können also problemlos tmux-Sitzungen trennen und anhängen, aber stellen Sie nur sicher, dass Sie nicht jede Konsole auf Ihrem Computer schließen.

Hier ist ein nettes animiertes GIF von mir, wie ich den Splitter auf tmux unter Windows bewege. JA, ICH WEISS, DASS DU DIE TASTATUR VERWENDEN KANNST, ABER DIESES GIF IST COOL.

Einige Hotkey-Neuzuordnung, Git-Eingabeaufforderung, Vervollständigung

Ich lerne immer noch tmux, aber hier ist meine .tmux.conf. Ich habe ein paar allgemeine Änderungen vorgenommen, um die Hotkey-Erstellung von Fenstern einfacher zu machen.

#remap prefix from 'C-b' to 'C-a'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

# split panes using | and -
bind | split-window -h
bind _ split-window -v
unbind '"'
unbind %
bind k confirm kill-window
bind K confirm kill-server
bind < resize-pane -L 1
bind > resize-pane -R 1
bind - resize-pane -D 1
bind + resize-pane -U 1
bind r source-file ~/.tmux.conf

# switch panes using Alt-arrow without prefix
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# Enable mouse control (clickable windows, panes, resizable panes)
set -g mouse on
set -g default-terminal "screen-256color"

Ich verwende die standardmäßige Ubuntu-.bashrc, die eine Überprüfung auf dircolors enthält (mehr dazu weiter unten), aber ich habe dies für git-completion.sh und eine Git-Eingabeaufforderung sowie diese beiden Aliasnamen hinzugefügt. Ich mag es, "desktop" eingeben zu können, um zu meinem Windows-Desktop zu springen. Und das -x auf Midnight Commander hilft der Mausunterstützung.

alias desktop="cd /mnt/c/Users/scott/Desktop"
alias mc="mc -x"
export CLICOLOR=1
source ~/.git-completion.sh
PS1='\[\033[37m\]\W\[\033[0m\]$(__git_ps1 " (\[\033[35m\]%s\[\033[0m\])") \$ '
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1
GIT_PS1_SHOWUNTRACKEDFILES=1
GIT_PS1_SHOWUPSTREAM="auto"

Git Completion kann installiert werden mit:

sudo apt-get install git bash-completion

Ubuntu Mono-Schriftart

Ich mag die Ubuntu Mono-Schriftart sehr und ich mag die Art und Weise, wie sie aussieht, wenn Ubuntu unter Windows ausgeführt wird. Sie können die Ubuntu-Schriftfamilie kostenlos herunterladen. Klicken Sie mit der rechten Maustaste auf die heruntergeladenen TTF-Dateien und klicken Sie mit der rechten Maustaste und „Installieren“ oder ziehen Sie sie in C:\windows\fonts. Klicken Sie dann auf die obere linke Ecke eines beliebigen Bash-Konsolenfensters und ändern Sie Ihre Schriftart in Ubuntu Mono.

Schöne Verzeichnisfarben (DIRCOLORS/LS_COLORS)'

Wenn Sie einen schwarzen Eingabeaufforderungshintergrund haben, sind die Standardfarben für Verzeichnisse dunkelblau auf schwarz, was scheiße ist. Glücklicherweise können Sie .dircolors-Dateien aus dem ganzen Web bekommen oder die Umgebungsvariable LS_COLORS setzen (stellen Sie sicher, dass Sie nach LS_COLORS für Linux suchen, nicht nach den anderen, anderen LSCOLORS auf Mac) Umgebungsvariable.

Ich landete bei "dircolors-solarized" von hier, lud es mit wget oder curl herunter und legte es in ~. Bestätigen Sie dann, dass sich dies in Ihrer .bashrc-Datei befindet (ist es wahrscheinlich bereits)

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi

Laden Sie eine beliebige .dircolors-Datei herunter, die Sie glücklich macht (stellen Sie sicher, dass der Dateiname als „.dircolors“ endet, daher müssen Sie möglicherweise Ihre Quelldatei ~/.dircolors cpn und dann Ihre Konsole neu starten.

Machen Sie einen großen Unterschied für mich, und wie ich bereits erwähnt habe, ist es vollständig, herrlich und wahnsinnig konfigurierbar.

Lassen Sie IHR Linux auf Windows Tipps in den Kommentaren!

Sponsor: Wussten Sie, dass VSTS eng mit Octopus Deploy integriert werden kann? Sehen Sie sich Damian Brady und Brian A. Randell an, wie sie Ihnen zeigen, wie Sie Bereitstellungen von VSTS zu Octopus Deploy automatisieren, und demonstrieren Sie das neue VSTS Octopus Deploy-Dashboard Widget. Schau jetzt

Linux
  1. Termux verwandelt Android in eine Linux-Entwicklungsumgebung

  2. Einrichten der Entwicklungsumgebung python virtualenv unter Debian Linux

  3. Festlegen von Linux-Umgebungsvariablen

  4. exFAT vs. NTFS unter Linux

  5. Erstellen Sie symbolische NTFS-Links innerhalb von Linux

Linux-Umgebungsvariablen

Ein Windows-Typ in einer Linux-Welt:Einrichten des SSH-Befehls in Linux

Halten Sie Ihre WSL-Linux-Instanzen innerhalb von Windows 10 automatisch auf dem neuesten Stand

Webentwicklung und fortgeschrittene Techniken mit Linux unter Windows (WSL)

Linux vs. Windows-Sicherheit

Zeitzoneneinstellung in Linux