GNU/Linux >> Linux Esercitazione >  >> Linux

Creazione di un sistema ibrido Linux-Windows con Cygwin

Se non hai mai sentito parlare di Cygwin, ti aspetta una sorpresa. Lo uso da anni per omogeneizzare i miei ambienti in uno in cui posso scrivere script una sola volta e distribuirli ovunque per soluzioni di automazione coerenti. È una seccatura scrivere script bash che funzionino su Linux, Mac e Unice commerciale, e poi dover saltare a capofitto in PowerShell e nei file batch per tentare di eguagliare il livello di automazione che posso ottenere con alcuni script Bash.

Secondo il sito web, Cygwin è:

  • Un'ampia raccolta di strumenti GNU e Open Source che forniscono funzionalità simili a una distribuzione Linux su Windows.
  • Una DLL (cygwin1.dll) che fornisce funzionalità API POSIX sostanziali.

E non lo è:

  • Un modo per eseguire app Linux native su Windows. Devi ricostruire la tua applicazione dal sorgente se vuoi che funzioni su Windows.
  • Un modo per rendere magicamente le app native di Windows consapevoli delle funzionalità UNIX® come segnali, pty e così via. Anche in questo caso, devi creare le tue app dal sorgente se vuoi sfruttare la funzionalità di Cygwin.

Nota:Cygwin funziona ugualmente bene su desktop Windows e su sistemi server.

Perché Cygwin?

Cygwin è ancora rilevante se desideri avere comandi nativi *nix disponibili sulla piattaforma Windows. Sì, conosco il sottosistema Windows per Linux (WSL), ma Cygwin e WSL non sono la stessa cosa. Cygwin ti offre la potenza dei comandi *nix nel tuo ambiente Windows nativo. Non c'è emulazione, nessuna macchina virtuale e nessun livello aggiuntivo tra il sistema operativo e questa raccolta di utilità. Si tratta, infatti, di autentici comandi open source compilati per la piattaforma Windows.

Installazione di Cygwin

In genere, puoi accettare l'opzione predefinita per ogni prompt. Fornisco una guida quando ci sono delle scelte da fare. Puoi selezionare il tuo, ma ho scoperto che queste selezioni funzionano meglio nei miei ambienti e per il modo in cui lavoro.

Apri un browser sul tuo sistema Windows e puntalo al sito web di Cygwin. Seleziona Installa Cygwin eseguendo setup-x86_64.exe collegamento per scaricare il file eseguibile di installazione. Esegui il file eseguibile per iniziare l'installazione e fai clic su Avanti nella Impostazione Cygwin schermo.

In Scegli il tipo di installazione schermata, selezionare il tipo di installazione desiderato. Per quanto mi riguarda, seleziono sempre l'impostazione predefinita, che è Installa da Internet .

Fai clic su Avanti per continuare.

Seleziona dove desideri installare la directory Cygwin e tutti i suoi file di supporto e binari. L'impostazione predefinita è C:\cygwin64, ma lo cambio in C:\cygwin per farmi futuro un po' più felice. Autorizzo inoltre tutti gli utenti ad avere accesso a Cygwin.

Fai clic su Avanti per continuare.

Inserisci la directory in cui vuoi che Cygwin scarichi i suoi file. Uso sempre C:\Temp. Se selezioni una directory che non esiste, il programma di installazione ti chiede di crearla.

Fai clic su Avanti per continuare.

Seleziona il tipo di connessione a Internet. Se hai una sorta di proxy, inserisci l'impostazione qui. Il mio è un collegamento diretto. Se non lo sai, prova direttamente. Se non funziona, controlla la configurazione del tuo browser per le impostazioni del proxy.

Fai clic su Avanti per continuare.

Scegli un sito di download in questa schermata. Selezionane uno dall'elenco o aggiungi il tuo. Scelgo sempre mirrors.xmission.com senza una ragione logica:l'ho usato per molto tempo e funziona. Presumo che una qualsiasi delle selezioni funzionerà.

Fai clic su Avanti per continuare.

[ Potrebbe interessarti anche:Come unire un sistema Linux a un dominio Active Directory ]

Selezione dei pacchetti

Finalmente, sei alla schermata di selezione del pacchetto. Se non selezioni nulla e continui con un'installazione predefinita, ottieni un complemento completo di comandi *nix in C:\cygwin\bin directory. Sono troppo numerosi per essere elencati, ma è un elenco di comandi standard.

Ti suggerisco di esaminare le diverse categorie e di effettuare selezioni in base a ciò che usi sui tuoi sistemi Linux. In genere seleziono OpenSSH, Bash, Completamento Bash, Python, Tk/Tcl e alcune altre applicazioni casuali. Dopo aver effettuato le selezioni, fai clic su Avanti per continuare.

Rivedi e conferma le tue selezioni. Le dipendenze saranno soddisfatte per le tue selezioni, quindi non preoccuparti. Fai clic su Avanti per iniziare a installare i pacchetti selezionati.

L'installazione potrebbe richiedere da alcuni minuti a quasi un'ora, a seconda delle selezioni e della velocità di Internet.

L'ultima schermata ti avvisa che l'installazione è completa e ti chiede di creare alcune icone utili. Creo sempre le icone. Fai clic su Fine per completare il processo di installazione.

Impostazione della variabile PATH d'ambiente

Per ottenere i migliori risultati, è necessario aggiungere la directory C:\cygwin\bin alla variabile di ambiente PATH. Per impostare il PERCORSO di sistema in modo che includa la directory bin di Cygwin, cerca "ambiente" e seleziona l'opzione Pannello di controllo, Modifica le variabili di ambiente del sistema , quando appare. Seleziona Variabili d'ambiente nelle Proprietà del sistema schermo.

Sulle Variabili d'ambiente schermata, seleziona Percorso dalle Variabili di sistema riquadro e fai clic su Modifica... . Fare clic su Nuovo. Inserisci C:\cygwin\bin nel campo e fare clic su OK Al termine. Fare clic su OK nelle altre schermate per salvare la voce e chiudere le Proprietà del sistema finestra.

L'impostazione di questa variabile di ambiente di sistema consente di eseguire un comando Cygwin senza fornire il percorso completo dell'eseguibile. Questo è utile anche per gli script.

Note sugli script

Ora che Cygwin è installato e i binari sono nel tuo percorso di sistema, probabilmente ti starai chiedendo come fai a farlo funzionare. Per invocare Bash, apri una finestra CMD e digita bash <ENTER> . Ora sei in una shell Bash che funziona esattamente come quella di Linux. Prova alcuni comandi come clear , ls , ls -la , pwd , e così via.

Ci sono alcune differenze che possono essere frustranti per i nuovi utenti se non ne sei a conoscenza. In Bash, noterai che le tue unità, C:e D:, sono montate come /cygdrive/c e /cygdrive/d , Per esempio. Quindi, il C:\Temp la directory è /cygdrive/c/temp in Cygwin Bash.

Directory familiari come / , /usr/bin e /usr/lib esiste sotto C:\cygwin con il C:\cygwin directory come / . Se non capisci questo layout, apri un CMD separato finestra e CD nel C:\cygwin directory e guarda la directory in entrambi CMD e in Bash .

Innanzitutto, l'elenco di CMD.

DIR C:\cygwin

Volume in drive C has no label.
 Volume Serial Number is ACBE-2D0D

 Directory of C:\cygwin

10/15/2020  06:58 AM    <DIR>          .
10/15/2020  06:58 AM    <DIR>          ..
10/15/2020  06:57 AM    <DIR>          bin
10/15/2020  06:58 AM            53,342 Cygwin-Terminal.ico
10/15/2020  06:57 AM                88 Cygwin.bat
10/15/2020  06:58 AM           157,097 Cygwin.ico
10/15/2020  06:57 AM    <DIR>          dev
10/15/2020  06:57 AM    <DIR>          etc
10/15/2020  06:56 AM    <DIR>          home
10/15/2020  06:57 AM    <DIR>          lib
10/15/2020  06:57 AM    <DIR>          sbin
10/15/2020  06:57 AM    <DIR>          tmp
10/15/2020  06:57 AM    <DIR>          usr
10/15/2020  06:57 AM    <DIR>          var
               3 File(s)        210,527 bytes
              11 Dir(s)  31,950,209,024 bytes free

E l'elenco Bash.

ls /

Cygwin-Terminal.ico		Cygwin.ico	cygdrive	etc	lib	sbin	usr
Cygwin.bat			bin 		dev		home  proc 	tmp	var

Quindi, da queste anomalie puoi vedere che Bash su Windows non è equivalente al 100% a *nix Bash. Alcuni script verranno tradotti direttamente, mentre altri dovranno essere finestrati. Vale a dire, personalizzato per adattarsi alle differenze di percorso, alle differenze di montaggio e ad alcune differenze di posizione dei file. Un aspetto davvero interessante dell'ibridazione del tuo ambiente Windows è che puoi anche utilizzare i comandi della riga di comando di Windows. Puoi integrarli abbastanza facilmente nei tuoi script. Ricordarsi di fornire il percorso completo dell'eseguibile in formato Cygwin (/cygdrive/c/windows/system32/blah.exe ).

[ Un corso gratuito per te:Panoramica tecnica su virtualizzazione e migrazione dell'infrastruttura. ]

Conclusione

Cygwin è un eccellente set di strumenti multipiattaforma, soprattutto per quelli di voi che devono lavorare in un ambiente eterogeneo, come fa la maggior parte di noi. Non riesco a contare il numero di volte in cui ho digitato ls , o qualche altro comando Linux, in una finestra CMD solo per fallire. Cygwin ti offre la capacità ampliata di scrivere uno script una volta e di poterlo utilizzare ovunque, con piccole modifiche. Immagina le possibilità. Ora aggiungi Ansible al mix e immagina di nuovo le possibilità. Per aumentare ulteriormente la tua felicità, tutti gli eseguibili in C:\cygwin\bin che hanno un'estensione di file .exe possono anche essere eseguiti in una finestra CMD senza che tu sia in Bash. Interessante? Lo pensavo.


Linux
  1. Comprensione delle chiamate di sistema su Linux con strace

  2. Pianificazione delle attività di sistema con Cron su Linux

  3. Indagare su un server Windows compromesso

  4. Chiamate di sistema in Windows e API native?

  5. Come ottenere statistiche di sistema con node.js

Esegui applicazioni Windows su Linux con Crossover 15

Comando Linux Uptime con esempi

Introduzione al sistema operativo Linux

Creazione di una USB live di Manjaro Linux in Windows e Linux

Audit di sicurezza con Lynis

Installa Windows 10 su Linux con VirtualBox