Raccomandato, 2024

Scelta Del Redattore

Come funziona Linux Bash Shell su Windows 10

Con il rilascio dell'Anniversary Update per Windows 10, Microsoft ha annunciato il sottosistema Windows per Linux (WSL), un modo per eseguire Bash nativo in Windows 10, che supporta l'esecuzione di binari nativi di Linux. Lo fa eseguendo un'immagine Ubuntu Linux in modalità utente su Windows.

Ciò significa che è possibile eseguire strumenti da riga di comando di Linux come ls, grep, top e chmod . Dal momento che si esegue Ubuntu originale sotto, l'esecuzione di lsb-release -a ti darà il seguente risultato:

Puoi usare apt-get e gli amici per installare utility come vim, git, screen, tmux o anche giocare a nethack:

Tenere presente, tuttavia, che questo sistema è in versione beta e non è destinato ai carichi di lavoro del server. È solo uno strumento per sviluppatori (e appassionati) per testare le loro applicazioni incentrate su Linux su Windows senza modifiche. Questo non è nemmeno uno strumento per l'esecuzione di applicazioni o ambienti GUI Linux come Gnome o KDE, anche se questo è possibile anche con alcuni hack. Dopo averlo chiarito, diamo un'occhiata a come funziona la shell di Linux in Windows 10.

Sottosistema di Windows per Linux (WSL)

Secondo la documentazione ufficiale, "WSL è una raccolta di componenti che consente di eseguire binari nativi di ELF64 Linux su Windows". Lo fa implementando un'interfaccia del kernel Linux virtualizzata sul kernel di Windows NT. Cioè, non usa alcun codice dal vero kernel di Linux - ogni volta che un'applicazione fa una chiamata di sistema specifica di Linux (syscall), WSL la traduce nell'equivalente syscall di Windows, che quindi fa tutto il lavoro pesante.

Differenze da macchine virtuali e Cygwin

Ora diamo un'occhiata a come Linux Bash Shell su Windows 10 è diverso rispetto a macchine virtuali come Cygwin.

Macchine virtuali

Potresti pensare: "Bene, perché usarlo? Perché non usare solo una macchina virtuale Linux in Windows? "

Rispetto ad una macchina virtuale, WSL utilizza meno risorse . Ti consente anche di lavorare con i tuoi file come faresti su Linux, dandoti al contempo pieno accesso al file system Windows sottostante senza doverti affidare a cartelle condivise o condivisioni di rete.

Cygwin

Un altro metodo popolare per eseguire su Linux strumenti popolari di tipo Linux / Unix è Cygwin. La più grande differenza tra i due approcci è che Cygwin non è un modo per eseguire binari nativi di Linux su Windows. Fornisce solo un set di strumenti GNU e Open Source che forniscono funzionalità simili a una distribuzione Linux su Windows.

D'altra parte, gli strumenti WSL sono binari nativi Linux ELF-64 compilati su Windows. Ad esempio, l'esecuzione di un comando apt-get install emacs in WSL scaricherà e installerà gli stessi file di un'installazione di Ubuntu 14.04, dai repository ufficiali di Ubuntu.

Utenti, autorizzazioni e file system in WSL

Gerarchia del file system

WSL è installato nella %LocalAppData%\lxss\rootfs dell'utente corrente. Questo è noto come WSL Environment e funge da directory " / " (root) di Linux. Ad esempio, se il tuo nome utente su Windows è beebom, la directory root di Linux si troverà in C:\Users\beebom\AppData\Local\lxss\rootfs. Ciò significa che ogni utente Windows può avere il proprio ambiente WSL e può apportare modifiche come apt-get install pacchetti software di apt-get install, senza intaccare altri utenti Windows.

È possibile accedere al file system Windows sottostante in WSL. Tutte le unità sono montate sotto /mnt. Ad esempio, C:\ è montato sotto /mnt/c, D:\ è montato sotto /mnt/d, ecc.

Utenti e permessi

Quando si installa WSL per la prima volta, verrà richiesto di creare un nuovo utente Linux predefinito. Questo utente non deve avere lo stesso nome dell'attuale utente di Windows e viene trattato come entità separata in generale. È anche possibile creare più utenti Linux, controllati da un singolo utente Windows.

È possibile ottenere root privilegi di root usando il comando sudo . Tieni presente che il fatto di essere root in WSL influisce solo sui diritti dell'utente all'interno dell'ambiente Linux e del filesystem - non hanno alcun impatto sui privilegi Windows concessi. Ad esempio, una sessione WSL con privilegi di amministratore di Windows può cd /mnt/c/Users/Administrator mentre una sessione Bash senza privilegi di amministratore vedrebbe Autorizzazione negata. Digitando sudo cd /mnt/c/Users/Administrator non si concede l'accesso alla directory Administrator poiché le autorizzazioni sono limitate da Windows.

Caratteristiche del file system specifico per Linux

Linux è un sistema case-sensitive . Ciò significa che photo.png e Photo.png vengono trattati come due file diversi. Mentre Windows non è sensibile alla distinzione tra maiuscole e minuscole per impostazione predefinita, è ancora in grado di distinguere tra maiuscole e minusc Il che significa che mentre photo.png e Photo.png non sono trattati come due file distinti, è certamente consapevole della differenza nel caso.

WSL gestisce la sensibilità alle maiuscole e minuscole proprio come su Linux. È anche possibile creare due file il cui nome cambia solo caso per caso al di fuori dell'ambiente WSL. Tenere presente, tuttavia, che molte applicazioni Windows non sono in grado di gestire tali situazioni e potrebbero non essere in grado di aprire uno o entrambi i file.

Allo stesso modo, i collegamenti simbolici sono supportati, a condizione che si stia eseguendo un file system NTFS. Tuttavia, i collegamenti simbolici funzionano solo all'interno di WSL e non possono essere risolti da altre applicazioni Windows.

Linux supporta anche quasi tutti i caratteri speciali all'interno dei nomi dei file, mentre Windows è più restrittivo. WSL, tuttavia, consente l'utilizzo di caratteri speciali, a condizione che siano limitati all'ambiente del sistema Linux.

Pronto per eseguire la riga di comando di Linux su Windows?

Così, ecco come Ubuntu Bash o Linux Bash Shell, noto anche come Windows Subsystem per Linux, funziona su Windows 10 (con l'aggiornamento Anniversary). Insieme al suo funzionamento, abbiamo anche imparato come è diverso e migliore rispetto ai metodi tradizionali di esecuzione di comandi specifici di Linux su Windows. Quindi, se hai sempre desiderato utilizzare i comandi di Linux, inizia e se hai domande, commenti o suggerimenti, assicurati di farcelo sapere nella sezione commenti.

Top