Ich liebe Ubuntu Linux - besonders die Kommandozeile. Aber ich muss zugeben, dass Windows zumindest im Moment benutzerfreundlicher ist - es gibt mehr Software dafür, mehr Treiber und mehr Dinge, die einfach funktionieren.
Wenn ich weiß, dass Mac auf Unix basiert, frage ich mich, ob es der Sweet Spot zwischen ihnen ist. Aber ich frage mich: Wie ähnlich ist die Mac-Befehlszeile der von Linux ? Könnte ich mit vim und bash scripting und git, etc. weiterkommen? Würden allgemeine Befehle wie das Ändern von Verzeichnissen unterschiedlich sein? Kennt jemand eine Online-Ressource zum Vergleichen und Vergleichen?
Antworten:
Bash ist bash, daher sind die Shell und ihre eingebauten Komponenten identisch. Aber beachten Sie, dass das Verhalten einiger Tools wie
ps
oderhead
in den Details unterscheiden können somit Ihre Skripte fehlschlagen könnte.quelle
file
:file -i
unter linux unterfile -I
osx ☹️Mac OS X ist ein Unix-Betriebssystem und die Befehlszeile entspricht zu 99,9% jeder Linux-Distribution.
bash
ist Ihre Standardshell und Sie können alle Programme und Dienstprogramme kompilieren. Es gibt keinen nennenswerten Unterschied. Sie finden auch verschiedene Projekte wie MacPorts, die die Paketverwaltung für Mac bereitstellen.quelle
Es ist sehr ähnlich, aber wenn Sie Unterschiede zwischen BSD und Linux kennen, erwarten Sie, dass der Mac das BSD-Verhalten aufweist.
quelle
Ein paar Dinge - es hängt wirklich davon ab, was Sie mit Kommandozeile meinen.
Sie können tatsächlich auf Folgendes stoßen: - / bin / bash auf einem Mac ist aus Lizenzgründen auf 3.x festgelegt. Es können kleinere Kompatibilitätsprobleme auftreten, wenn Sie an 4 oder sogar 5 gewöhnt sind.
bash an sich ist eine kleine Untermenge von "Kommandozeile". Um nützlich zu sein, verwenden Sie normalerweise einige andere gängige UNIX-Dienstprogramme wie awk, ls oder cut. Aufgrund ihrer Geschichte (sie stammt von BSD ab, nicht von Linux oder SystemV) unterscheiden sich die Mac-Versionen von Dienstprogrammen von denen, die Sie unter Linux gewohnt sind (auch bekannt als GNU-Versionen). Diese haben zumindest einige Flag-Unterschiede und einige Ausgabe- und Funktionsunterschiede zu Linux. Skripte, die diese verwenden, müssen zum Ausgleich geändert werden. BSD awk vs GNU gawk ist ziemlich unterschiedlich. ODER Sie können diese GNU-Versionen von Macports oder Home Brew beziehen und Ihren PATH so einstellen, dass dies die Standardeinstellungen sind (über die integrierten Versionen).
MacOS X hat auch einige neue coole Tools.
open
ist schön, es wird das Objekt öffnen, als ob Sie darauf doppelklicken.defaults
Mit dieser Option können Sie einige Voreinstellungen festlegen, einige sogar nicht in den GUI-Voreinstellungen.textutil
kann nützlich sein undsay
Spaß machen.quelle
Die Befehlszeilenfunktionen unter Mac und Linux sind in der Tat ähnlich, da OS X eine UNIX-Variante (Darwin) unter der angezeigten GUI aufweist.
Die Standard-Shell unter OS X ist bash. Wenn Sie sich also damit auskennen, passen Sie sich an.
Auf einem Mac ist Terminal die Standardbefehlszeilenanwendung. Es gibt auch eine Reihe anderer Emulatoren, aber insgesamt bietet Terminal ein sehr ähnliches Erscheinungsbild wie die in Linux gewohnte Shell.
Die Hauptursache für Unterschiede sind jedoch:
du
zB). Die primären Befehle wiecd
oderls
usw. sind ähnlich.open
Davon abgesehen gibt es in OS X auch viele coole Hacks über die Kommandozeile (zB Kommando). Es gibt viele frühere Themen und Blog-Posts mit mehr Informationen.Sie können auch Ihre Hände auf einer Reihe von Open - Source - Paketen (dh erhalten
git
,hg
usw.) über MacPorts, Fink oder ein paar anderen Paket - Management - Systeme für OS X. Sie können auch für UNIX / Linux - ähnliche Systeme wie nötig vorgesehenen Pakete andere Quelle bauen .quelle
Hier ist ein Unterschied. Probieren Sie diesen Befehl sowohl in der Mac- als auch in der Linux-Bash-Shell aus
Mac zeigt nichts an, obwohl viele .conf-Dateien in / etc sind.
quelle
find /etc/* -name "*.conf"
. Dies wurde jedoch als Beispiel angegeben, um die MAC-Befehlszeile der LINUX-Befehlszeile gegenüberzustellen. Ich kann kein Votum begründen.find /etc/ -name "*.conf"
dies, dass / etc ein Verzeichnis anstelle einer Datei ist. Behandeltfind
Linux symbolische Links zu Verzeichnissen standardmäßig als Verzeichnisse?