Ich werde lernen, wie man die Kommandozeile benutzt. Konkret werde ich das Buch "Die Linux-Befehlszeile: Eine vollständige Einführung" verwenden . Muss ich jetzt eine Linux-Distribution verwenden, um durch das Buch zu gehen, oder würde OS X ausreichen?
Wenn ich eine Linux-Distribution benötige, würde es ausreichen, sie über eine VM zu verwenden, oder muss ich sie nativ installieren?
linux
command-line
osx
Utku
quelle
quelle
/proc
Dateisystem, USB-Laufwerke erscheinen in der Regel/Volumes
nicht so/media/username
wie unter Ubuntu. CentOS hat eine anderedhclient.conf
Datei. Und so weiter und so fortAntworten:
Ich würde dringend empfehlen, Linux in einer VM auszuführen. Die gesamte Software kann kostenlos heruntergeladen werden, und es gibt keinen praktischen Unterschied zwischen der Ausführung in einer VM und der nativen Ausführung zum Erlernen der Befehlszeile.
Darüber hinaus besteht die Linux-Kommandozeile hauptsächlich aus bash + GNU-Coreutils , die sich stark von BSD Unix unterscheiden (und OS X ist ein Nachfolger von BSD Unix). In BSD Unix und GNU Linux gibt es einen großen Unterschied in den Präferenzen beim Schreiben von Argumenten. Sie können sich auch als Nicht-Neuling mit verschiedenen Optionen auf Standard-Dienstprogramme wie beißen
ps
undtar
wenn Sie auf beiden Systemen arbeiten.Wenn Sie OS X verwenden, wenn Ihr Buch Linux-spezifisch ist, treten regelmäßig Inkonsistenzen und Unterschiede auf, die oberflächlich erscheinen, wenn Sie erfahrener sind, aber beim Lernen einfach verwirrend sind. Machen Sie es sich einfach.
Auf diese Weise können Sie auch experimentieren, ohne Ihr Gerät beschädigen zu müssen, indem Sie wichtige Dateien löschen oder ändern.
Und zu guter Letzt können Sie damit von Ihrem OS X-Terminal aus eine SSH-Verbindung zu Ihrer VM herstellen, damit Sie sich an die Verwendung von SSH-Schlüsseln gewöhnen können. Dabei spielt es keine Rolle, ob es sich um Ihren Linux-Server handelt ist eine native Maschine, eine lokale VM oder läuft nicht mehr auf AWS oder Digital Ocean: Es funktioniert alles gleich!
quelle
OS X reicht aus, um die Befehlszeile zu erlernen, da es sich um ein zertifiziertes UNIX handelt und POSIX-konform ist. Wenn Sie sich ein Linux-spezifisches Befehlszeilenbuch ansehen, müssen Sie bedenken, dass die Userland-Tools in OS X von BSD abgeleitet sind, während die Tools unter Linux GNU sind und es einige subtile (und nicht so subtile) Unterschiede zwischen ihnen gibt.
Wenn Sie mit GNU-Tools lernen möchten, können Sie ein GNU-Userland über Macports oder Homebrew installieren oder eine vollständige Linux-Installation in einer VM durchführen.
quelle
bash
), passt es zu fast jedem System, auf dem es ausgeführt wird. Dies ist unterschiedlich, wenn Sie Betriebssystemfunktionen oder bestimmte Tools außerhalb der Shell verwenden.ls
müssen entweder von GNU oder BSD stammen (bitte korrigieren, wenn ich falsch liege). Ich denke, dies bedeutet, dass ich eine Toolchain (oder Umgebung) auswählen und dort mit dem Erlernen der Befehlszeile beginnen muss. Ist das richtig?Einige gute Antworten, aber ein weiterer Grund, sich von den Standard-Befehlszeilentools von OS X fernzuhalten, ist, dass es sich um sehr alte Versionen handelt. Zum Beispiel ist OS X
grep
aus dem Jahr 2004 undbash
ist aus dem Jahr 2007! Der Grund dafür ist, dass Apple es ablehnt, unter der GPL3 lizenzierte Tools zu versenden.Wenn Sie Linux nicht richtig installieren möchten, können Sie die neuesten Versionen manuell installieren (möglicherweise über ein Port-System wie MacPorts, Fink oder Homebrew).
quelle
Erster Unterschied:
Funktioniert unter Linux, schlägt unter Mac fehl (Parameter müssen an erster Stelle stehen). Verwenden Sie eine VM oder besorgen Sie sich ein Buch für Mac OS. Sie sollten später lernen, welche Sie verwenden, und dann die Unterschiede.
quelle
ls * -lah
Arbeiten auf Linux, wie es unter Linux funktioniert, und es funktioniert auf OS X, wie es auf OS X funktioniert so , wie es auf OS X funktioniert , ist korrekt nach POSIX (12. Utility - Konventionen / 12.2 Dienstprogramm Syntax - Richtlinien / Richtlinie 9) : "Alle Optionen sollten Operanden in der Befehlszeile vorangehen." Wie in getopt (3) beschrieben : "Wenn ... die Umgebungsvariable POSIXLY_CORRECT gesetzt ist, wird die Optionsverarbeitung gestoppt, sobald ein Nichtoptionsargument angetroffen wird."Der beste Weg, um Unix zu lernen, ist, echte Arbeit damit zu haben. Ich würde sagen, es lohnt sich, auf die Unterschiede zwischen den Linux-spezifischen Beispielen in Ihrem Buch und den Mac-Versionen der Standardtools zu stoßen, nur um in Ihrer normalen Arbeitsumgebung (OS X) mit Ihren eigenen Dateien und Daten arbeiten zu können.
Die Begegnung mit den Unterschieden ist auch eine wertvolle Lernerfahrung, auch wenn sie manchmal frustrierend ist.
Eine Linux-VM zum Üben (insbesondere für potenziell gefährliche Befehle) ist ebenfalls nützlich, aber es gibt nichts Schöneres, als sie in der Praxis zu erlernen.
quelle