Ho pubblicato più volte sul sottosistema Windows per Linux che ti consente di eseguire Linux su Windows 10 senza una VM. Dai un'occhiata al mio YouTube su Modifica di codice e file sul sottosistema Windows per Linux su Windows 10. C'è solo una regola. Puoi pasticciare con i file Windows da Linux ma non puoi pasticciare con i file Linux da Windows. Altrimenti, impazzisci e divertiti. Ecco alcuni dei miei post precedenti che dovresti controllare:
- L'anno di Linux sul desktop (Windows) - Suggerimenti e trucchi WSL
- Configurazione di un ambiente di sviluppo brillante all'interno di Linux su Windows 10
- Installazione di Fish Shell su Ubuntu su Windows 10
- Scrittura e debug di applicazioni C++ Linux da Visual Studio utilizzando il "Sottosistema Windows per Linux"
- Ubuntu ora in Windows Store:aggiornamenti a Linux su Windows 10 e suggerimenti importanti
WSL è piuttosto fantastico anche se il suo accesso al disco è più lento di Linux nativo, mi ritrovo a usarlo ogni giorno. Se vuoi configurare Linux sul tuo computer Windows 10, accendilo, quindi vai su Windows Store e cerca "Linux".
Puoi attivare Linux su Windows 10 digitando "Caratteristiche di Windows" e selezionando "Sottosistema Windows per Linux". Quindi prendi un Linux da Windows Store.
Se preferisci utilizzare PowerShell e farlo in una riga, esegui questa operazione da un prompt di PowerShell amministrativo:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Quindi vai a prenderne uno (o più!) dallo Store:
- Ubuntu
- OpenSUSE
- SLES
- Kali Linux
- Debian GNU/Linux
Quando ti trovi in una shell di Windows come PowerShell o CMD potresti voler eseguire Linux e/o passare comodamente da una shell all'altra. Puoi farlo in alcuni modi. Il modo migliore e consigliato è eseguire "wsl.exe" poiché avvierà la distribuzione predefinita. Puoi anche semplicemente digitare il nome della distribuzione. Quindi posso digitare "ubuntu" e accedervi direttamente.
Puoi digitare "bash" ma non è raccomandato se hai cambiato shell. Se hai impostato zsh o fish e digiti bash, proverà comunque a eseguire bash.
Qui ho digitato wslconfig e puoi vedere che ho installato sia Ubuntu che Debian, con Ubuntu come impostazione predefinita quando digito "wsl".
C:\Users\scott>wslconfig /list
Windows Subsystem for Linux Distributions:
Ubuntu-18.04 (Default)
Debian
Ora che so come eseguire wsl da qualsiasi luogo, posso persino inviare roba all'interno e all'esterno di Linux dall'esterno. Ad esempio qui sono in cmd.exe ma sto chiamando i comandi in Linux, che escono, quindi tornano, ecc. Puoi combinare e abbinare come preferisci!
C:\dev>type hello.sh
echo Hello
C:\dev>wsl cat /mnt/c/dev/hello.sh | wsl fromdos | wsl /bin/sh
Hello
Ciò significa che anche quando sono in CMD o PowerShell posso usare i comandi Linux che sono convenienti o familiari. Ad esempio, qui sto inserendo un file di registro di Windows Update in un comando sha1sum del comando Linux. Nota l'uso di - per accettare l'input standard - anche se quell'input proviene da Windows!
C:\Users\scott\Desktop>type WindowsUpdate.log | wsl sha1sum -
3b48adce8f6c9cb816e8845d824dacc0440ca1b8 -
Dolce. C'è una serie di belle tecniche avanzate se vuoi rendere le tue installazioni WSL più intelligenti E configurate automaticamente. Puoi creare un file in /etc/wsl.conf per influenzare il tuo DNS, i metadati e il montaggio di guida.
Quando ci si trova in una shell WSL, l'unità Windows (l'unità principale) si trova in /mnt/c. Quindi ecco il mio desktop Windows visto da WSL:
Ad esempio, la maggior parte dei miei sviluppatori lavora in /mnt/d/github. In questo modo posso usare VS Code da Windows ma eseguire Node/Ruby/Go/Whatever da WSL.
Conservo i miei file sul mio disco Windows, li modifico in VS Code, ma eseguo le cose in WSL. Anche in questo caso, non utilizzare mai le utilità di Windows per accedere e/o modificare i file sul sottosistema WSL/Linux. Inoltre, sii sempre consapevole della tua situazione CR/LF e sii davvero consapevole se eseguirai git sia in Windows che in WSL.
Ecco VS Code in alto, WSL/Ubuntu che esegue Node in basso e l'app del nodo locale in esecuzione in Edge su Windows in basso a destra. Stiamo condividendo i file system e lo spazio delle porte di rete:
Puoi anche condividere variabili di ambiente tra WSL e Windows con una variabile di ambiente speciale chiamata WSLENV. Questo è piuttosto avanzato ma super potente. Leggi questo attentamente. Crei una variabile di ambiente che è un elenco di nomi di altre variabili che vuoi tradurre tra ambienti .
Ciò significa che puoi fare qualcosa del genere. Sono in WSL e ho una variabile di ambiente che punta a una posizione sul filesystem. Ho bisogno che sia corretto in entrambi i mondi.
scott@IRONHEART:/mnt/d$ export MYLINUXPATH=/mnt/d/github/expresstest
scott@IRONHEART:/mnt/d$ export WSLENV=MYLINUXPATH/p
scott@IRONHEART:/mnt/d$ cmd.exe
D:\>echo %MYLINUXPATH%
D:\github\expresstest
Leggilo attentamente. È fantastico ed è molto configurabile.
Ci sono molti utenti di WSL e molti hanno assemblato ottimi elenchi di risorse come Awesome-WSL di Hayden.
Vale anche la pena sottolineare che WSL è solo ora una console tra cui puoi scegliere. Ci sono PowerShell, CMD.exe e una mezza dozzina di Linux. Se lo desideri, puoi persino creare la tua distribuzione Linux personalizzata per la tua azienda. E c'è un intero mondo di console di terze parti che si trovano sopra/sostituiscono conhost.exe in modo da poter avere console con schede, font fantastici, basati sulla tecnologia web, qualunque cosa! Puoi anche scegliere WSL/bash come shell predefinita in Visual Studio Code se lo desideri con Ctrl+~.
Spero che questo ti permetta di iniziare con Linux su Windows. Cosa mi sono perso? Suona nei commenti.
Sponsor :Visualizza in anteprima l'ultimo JetBrains Rider con il suo Assembly Explorer, i sottomoduli Git, le iniezioni del linguaggio SQL, il profiler delle prestazioni integrato e il supporto Unity più avanzato.