GNU/Linux >> Linux Esercitazione >  >> Linux

Configurazione di un ambiente di sviluppo brillante all'interno di Linux su Windows 10

Mentre stavo facendo in modo che Ruby on Rails funzionasse bene sotto Ubuntu su Windows 10, ho colto l'occasione per configurare il mio ambiente bash *nix, che utilizzava in gran parte le impostazioni predefinite. Sì, so che posso usare zsh o pesce o altre conchiglie. Sì, so che posso usare emacs e screen, ma sto usando Vim e tmux. Combattimi. Ad ogni modo, una volta terminato il mio post, ho iniziato a fare casino con .NET Core open source su Linux (funziona su Windows, Mac e Linux, ma qui sono in esecuzione su Linux su Windows. #Inception) e ho twittato una foto di il mio desktop.

A proposito, mi sento totalmente vendicato da tutto l'interesse per la "modalità testo" dato il mio post sul blog del 2004 "A Windows manca completamente la barca TextMode".;)'

Inoltre, per quelli di voi che NON sono PROFONDAMENTE INTERESSATI alla riga di comando, è fantastico. Puoi smettere di leggere ora. Totalmente OK. Uso anche Visual Studio E Visual Studio Code. A volte faccio clic con il mouse ea volte tocco e scrivo. C'è posto per tutti noi.

COS'È TUTTO QUESTO LINUX SU WINDOWS STUFF? Ecco una FAQ sul sottosistema Bash/Windows per Linux/Ubuntu su Windows/Snowball in Hell e alcune note di rilascio dettagliate. Sì, è reale ed è spettacolare. Non riesci a leggere così tanto testo? Ecco un video che ho fatto su Ubuntu su Windows 10.

Un certo numero di persone mi ha chiesto come potevano configurare le loro installazioni WSL (sottosistema Windows per Linux) per essere qualcosa del genere, quindi ecco cosa ho fatto. Nota che userò *nix on e off da oltre 20 anni, non sono affatto un esperto. Sono, e sono stato, permanentemente intermedio nelle mie capacità. Non sogno in RegEx e sono offeso dal fatto che altri possano estrarre uno script awk senza cercare su Google.

Quindi ci sono alcune cose che accadono in questo screenshot.

  • Esecuzione di .NET Core su Linux (su Windows 10)
  • Fantastico tema VIM con>256 colori
  • Norton Comandante di mezzanotte nell'angolo (grazie Miguel)
  • Splitter tmux in stile Desqview (con supporto per mouse)
  • Qualche rimappatura dei tasti di scelta rapida, git prompt, completamento
  • Carattere Ubuntu Mono
  • Bei colori delle directory (DIRCOLORS/LS_COLORS)

Analizziamoli uno alla volta. E, ancora, il tuo chilometraggio può variare, nessuna garanzia espressa o implicita, tutto ciò può distruggere il tuo mondo, leggi questo su un blog. Linux è infinitamente configurabile e l'unica costante è che la mia configurazione fa schifo e la tua fa schifo. Finché non vedo qualcosa nel tuo che posso rubare.

Esecuzione di .NET Core su Linux (su Windows 10)

Poiché Linux su Windows 10 è (oggi) Ubuntu, puoi installare .NET Core al suo interno proprio come qualsiasi Linux. Ecco le istruzioni di Ubuntu per l'SDK di .NET Core. Potresti avere Ubuntu 14.04 o 16.04 (puoi aggiornare il tuo Linux su Windows se lo desideri). Assicurati di sapere cosa stai eseguendo eseguendo un:

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

Se non sei su 16.04 puoi facilmente rimuovere e reinstallare l'intero sottosistema con questi comandi su cmd.exe (nota che /full è serio e brucia il filesystem di Linux):

> lxrun /uninstall /full
> lxrun /install

Oppure, se vuoi, puoi eseguirlo all'interno di bash (ci vorrà più tempo ma mantieni le impostazioni).

NOTA che avrai bisogno di Windows 10 Creators Edition build 16163 o superiore per eseguire Ubuntu 16.04. Digita "winver" per controllare la tua build.

sudo do-release-upgrade

Scopri cosa ha Ubuntu il tuo Windows 10 quando installi .NET Core al suo interno. L'altra cosa da ricordare è che ora hai due .NET Core, uno Windows e uno Ubuntu, sulla stessa (un po') macchina. Dal momento che i file system sono separati, non è un grosso problema. Svolgo il mio lavoro di sviluppo all'interno di Ubuntu su /mnt/d/github (che è un'unità Windows). Va bene per il sottosistema Linux modificare i file in Linux o Windows, ma non "accedere" al file system Linux da Windows.

Fantastico tema Vim con>256 colori

Quel tema Vim è gruvbox e l'ho installato in questo modo. Grazie a Rich Turner per avermi fatto interessare a questo tema.

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

Incolla quanto segue (premi "i" per inserire e quindi fai clic con il pulsante destro del mouse/incolla)

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

Quindi salva ed esci con Esc, :wq (scrivi e esci). Ci sono un sacco di temi là fuori, quindi provane qualcuno!

Norton Comandante di mezzanotte nell'angolo (grazie Miguel)

Midnight Commander è un meraviglioso clone di Norton Commander avviato da Miguel de Icaza, che è concesso in licenza come parte di GNU. L'ho installato tramite apt, come farei con qualsiasi software Ubuntu.

$ sudo apt-get install mc

C'è il supporto per il mouse all'interno di Windows conhost (host console) all'interno del quale viene eseguito bash, quindi avrai persino il supporto per il mouse all'interno di Midnight Commander!

Roba fantastica.

Splitter tmux in stile Desqview (con supporto per mouse)

Tmux è un multiplexer terminale. È un ambiente a finestre in modalità testo all'interno del quale è possibile eseguire più programmi. Ancora meglio, puoi "staccarti" da una sessione in esecuzione e ricollegarti da un'altra parte. Per questo motivo, le persone adorano usare tmux su server in cui possono entrare, configurare un ambiente, scollegarsi e ricollegarsi da altrove.

NOTA: Il sottosistema Windows per Linux arresta tutti i processi in background all'uscita dell'ultima console. Quindi puoi staccare e allegare sessioni tmux felicemente, ma assicurati solo di non chiudere tutte le console sulla tua macchina.

Ecco una bella gif animata di me che sposto lo splitter su tmux su Windows. SI LO SO CHE PUOI UTILIZZARE LA TASTIERA MA QUESTA GIF È FANTASTICO.

Alcuni tasti di scelta rapida rimappatura, git prompt, completamento

Sto ancora imparando tmux ma ecco il mio .tmux.conf. Ho apportato alcune modifiche comuni per semplificare la creazione dei tasti di scelta rapida di Windows.

#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"

Sto usando il .bashrc di Ubuntu predefinito che include un controllo per dircolors (più su questo sotto) ma l'ho aggiunto per git-completion.sh e un prompt git, oltre a questi due alias. Mi piace poter digitare "desktop" per passare al mio desktop di Windows. E il -x su Midnight Commander aiuta il supporto del mouse.

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 può essere installato con:

sudo apt-get install git bash-completion

Carattere Ubuntu Mono

Mi piace molto il carattere Ubuntu Mono e mi piace il modo in cui appare quando si esegue Ubuntu in Windows. Puoi scaricare Ubuntu Font Family gratuitamente. Fare clic con il pulsante destro del mouse sui file TTF scaricati e fare clic con il pulsante destro del mouse su "Installa" oppure trascinarli in C:\windows\fonts. Quindi fai clic nell'angolo in alto a sinistra di qualsiasi finestra della console Bash e cambia il tuo carattere in Ubuntu Mono.

Bei colori delle directory (DIRCOLORS/LS_COLORS)'

Se hai uno sfondo nero del prompt dei comandi, i colori predefiniti per le directory saranno blu scuro su nero, il che fa schifo. Fortunatamente puoi ottenere file .dircolors da tutto il wep o impostare la variabile di ambiente LS_COLORS (assicurati di cercare LS_COLORS per Linux, non l'altro LSCOLORS diverso su Mac).

Ho finito con "dircolors-solarized" da qui, l'ho scaricato con wget o curl e l'ho messo in ~. Quindi conferma che è nel tuo .bashrc (probabilmente lo è già)

# 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

Scarica qualsiasi file .dircolors ti renda felice (assicurati che il nome del file finisca come ".dircolors", quindi potrebbe essere necessario eseguire il cp del tuo filesource ~/.dircolors e quindi riavviare la console.

Fai una grande differenza per me e, come ho già detto, è totalmente, gloriosamente, incredibilmente configurabile.

Lascia il TUO Linux su Windows consigli nei commenti!

Sponsor: Sapevi che VSTS può integrarsi strettamente con Octopus Deploy? Guarda Damian Brady e Brian A. Randell mentre ti mostrano come automatizzare le implementazioni da VSTS a Octopus Deploy e fai una dimostrazione del nuovo dashboard di VSTS Octopus Deploy aggeggio. Guarda ora

Linux
  1. Termux trasforma Android in un ambiente di sviluppo Linux

  2. Configurazione dell'ambiente di sviluppo python virtualenv su Debian Linux

  3. 10 MOTIVI PER CAMBIARE WINDOWS 10 IN LINUX

  4. Sviluppo flessibile su Linux, cos'è un buon ambiente libero?

  5. Come estraggo la mia chiave Windows 8+ incorporata da un ambiente Linux?

Variabili d'ambiente Linux

Un ragazzo Windows in un mondo Linux:configurazione del comando SSH in Linux

Mantenere aggiornate automaticamente le istanze WSL Linux all'interno di Windows 10

Sviluppo Web e Tecniche Avanzate con Linux su Windows (WSL)

Sicurezza Linux vs Windows

Impostazione del fuso orario in Linux