Ho bisogno di una distro Linux per apprendere la riga di comando o OS X sarebbe sufficiente?


12

Imparerò come usare la riga di comando. In particolare, userò il libro: "La riga di comando di Linux: un'introduzione completa" . Ora, devo usare una distro Linux per sfogliare il libro o OS X sarebbe sufficiente?

Se avessi bisogno di una distro Linux, usarla attraverso una VM sarebbe sufficiente o devo installarla in modo nativo?


8
L'unico motivo per cui sarebbe necessario installare un sistema operativo su hardware fisico e non una macchina virtuale sarebbe per le prestazioni. Se stai solo cercando di imparare le procedure di base, questo non sarà un problema. Probabilmente è preferibile eseguire qualcosa come Arch in una macchina virtuale.
Bratchley,


4
La riga di comando è solo un collegamento tra te e il sistema. La sintassi della shell Bash può essere la stessa, ma quando è necessario gestire parti specifiche del sistema, ci saranno differenze. Per esempio, OS X doesnt hanno /procfile system, unità USB tendono a comparire in /Volumesnon /media/usernamecome su Ubuntu. CentOS ha dhclient.conffile diversi . E così via e così via
Sergiy Kolodyazhnyy il

4
Il duplicato cross-site proposto è chiaramente una domanda diversa , sulle prestazioni di virtualizzazione su MacBooks. La domanda non è incrociata.
Michael Homer,

2
@Utku Penso che ciò che potrebbe aiutare sarebbe separare alcuni concetti: usando una riga di comando e il sistema operativo su cui lo usi. Se vuoi sapere che sei lontano da una riga di comando, OS X funzionerebbe, così come Linux, BSD o persino Windows con qualche sforzo. Se vuoi conoscere UNIX o Linux, la riga di comando è solo una piccola parte di ciò - è solo l'interfaccia attraverso la quale interagirai con il sistema operativo. Penso che chiarire cosa stai andando a fare renderà anche più facile l'apprendimento :)
rickcnagy

Risposte:


33

Consiglio vivamente di eseguire Linux in una macchina virtuale. Tutto il software è disponibile gratuitamente per il download e non vi è alcuna differenza pratica tra l'esecuzione in una VM e l'esecuzione nativa allo scopo di apprendere la riga di comando.

Inoltre, la riga di comando di Linux è principalmente costituita da coreutils bash + GNU , che è molto diverso da BSD Unix (e OS X è un successore di BSD Unix). C'è una grande differenza nelle preferenze nella scrittura di argomenti in BSD Unix e GNU Linux. Puoi morderti anche come non principiante con diverse opzioni per utility standard come pse tarse lavori su entrambi i sistemi.

L'uso di OS X quando il tuo libro è specifico per Linux genererà regolarmente incoerenze e differenze che appariranno superficiali quando avrai più esperienza, ma saranno semplicemente confuse quando stai imparando. Mantieni le cose facili per te stesso.

Ciò consentirà inoltre di sperimentare senza la preoccupazione di rompere il computer eliminando o modificando qualsiasi file importante.

E infine, anche se certamente non meno importante, ti consentirà di impostare una connessione SSH alla tua VM dal tuo Terminale OS X, così potrai abituarti a usare le chiavi SSH e all'idea che non fa alcuna differenza se il tuo server Linux è una macchina nativa, una VM locale o si sta esaurendo su AWS o Digital Ocean: funziona tutto allo stesso modo!


A proposito, avrò la stessa struttura di directory in una VM rispetto anche a un Linux nativo?
Utku,

3
Sì. Per i tuoi scopi è esattamente lo stesso di un'installazione nativa.
seumasmac,

Questa è la risposta più sicura, ma a seconda del libro presumo che un'introduzione al libro della riga di comando non mostri molte (se presenti) delle differenze. Dopo uno sguardo al manuale, l'unica cosa che mi è venuta in mente sarebbe stata la spiegazione della struttura delle directory.
visita il

1
@Utku Se / dev / sda o / dev / hda è menzionato nel libro e non lo trovi nella tua installazione, prova a cercare / dev / vda. Questa è l'unica possibile differenza che mi viene in mente, che importerebbe per te.
Kimmax,

1
Non è nemmeno necessario utilizzare una macchina virtuale, è anche possibile utilizzare un CD live se non si desidera occupare un sacco di spazio sul disco rigido. Può anche essere avviato da un'unità flash e la creazione di un'unità CD / flash avviabile richiede pochissimo tempo.
Chris Cirefice,

18

OS X è sufficiente per apprendere la riga di comando in quanto è un UNIX certificato e conforme a POSIX. Se stai guardando il libro da riga di comando specifico di Linux, devi tenere presente che gli strumenti di userland in OS X sono derivati ​​da BSD mentre gli strumenti su Linux sono GNU e ci sono alcune sottili (e non così sottili) differenze tra loro.

Se vuoi imparare con gli strumenti GNU puoi installare una userland GNU tramite macports o homebrew, oppure eseguire un'installazione completa di Linux in una VM.


Quindi, immagino che non ci sia un libro "generico" sulla riga di comando? Un libro utilizzerà gli strumenti GNU o BSD. È giusto?
Utku,

1
Se hai un libro su una shell (ad esempio bash), si adatta praticamente a qualsiasi sistema che lo esegue. Varia quando si inizia a utilizzare le funzionalità del sistema operativo o strumenti specifici all'esterno della shell.
teppic

1
@teppic Ma quanto è utile una shell da sola ? AFAIK, una shell di per sé è inutile poiché non ha alcun comando da eseguire. Anche i comandi più basilari come quelli lsdevono provenire da GNU o BSD (per favore correggi se sbaglio). Quindi, penso che questo significhi che devo scegliere una toolchain (o ambiente) e iniziare a imparare la riga di comando lì. È giusto?
Utku,

@Utku i comandi sono gli stessi (per la maggior parte) ma le opzioni e l'output possono differire (spesso perché GNU implementa molte estensioni). È facile andare avanti e indietro tra gli strumenti BSD e GNU.
Casey,

@casey Quindi potrei semplicemente iniziare con il libro su OS X. Quindi, se incontro un comportamento non descritto come nel libro, potrei provarlo su Linux o semplicemente guardare la variante BSD dello stesso comando?
Utku,

9

Alcune buone risposte finora, ma un motivo in più per stare lontano dagli strumenti di riga di comando OS X predefiniti è che sono versioni molto vecchie. Ad esempio, OS X grepè del 2004 e bashdel 2007! La ragione è che Apple rifiuta di spedire strumenti concessi in licenza in base alla GPL3.

Se non si desidera installare Linux correttamente, è possibile installare manualmente le ultime versioni (magari tramite alcuni sistemi portuali come MacPorts, Fink o Homebrew).


3

Prima differenza:

ls * -lah

Funziona su Linux, fallisce su Mac (i parametri devono venire prima). Utilizzare una macchina virtuale o ottenere un libro per mac os. Dovresti imparare quello che userai di più in seguito e poi le differenze.


3
Dovresti dire che ls * -lahfunziona su Linux come funziona su Linux e funziona su OS X come funziona su OS X. Il modo in cui funziona su OS X è corretto secondo POSIX (12. Convenzioni di utilità / 12.2 Linee guida di sintassi dell'utilità / Linea guida 9) : "Tutte le opzioni devono precedere gli operandi sulla riga di comando." Come descritto in getopt (3) : "Se ... è impostata la variabile d' ambiente POSIXLY_CORRECT , l'elaborazione delle opzioni si interrompe non appena si incontra un argomento di non-opzione."
G-Man dice "Reinstate Monica" il

3

Il modo migliore per imparare unix è avere a che fare con un vero lavoro. Direi che vale la pena incontrare le differenze tra gli esempi specifici di Linux nel tuo libro e le versioni Mac degli strumenti standard, solo per poter lavorare con i tuoi file e dati nel tuo normale ambiente di lavoro (OS X).

Incontrare le differenze sarà anche una preziosa esperienza di apprendimento, anche se a volte è frustrante.

Anche avere una VM Linux con cui esercitarsi (specialmente per comandi potenzialmente pericolosi) è utile, ma nulla è meglio dell'uso del mondo reale per l'apprendimento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.