Ich habe festgestellt, dass es einige Unterschiede zwischen dem Dienstprogrammbefehl, den ich unter Mac OSX und Linux verwendet habe, gibt. Ich möchte meine Erfahrung vereint machen.
Wie könnte ich alle meine Mac-Dienstprogramme durch GNU-Dienstprogramme ersetzen?
homebrew
wie unten erwähnt, und dann nur zu lernen , die Dienstprogramme zu verwenden , um mit ag
(gsed
,greadlink
, usw.) anstelle der Systemprogramme zu ersetzen.--with-default-names
wirkt sich nur auf den lokalen Benutzer aus. Es könnte ein Problem mit Mac-orientierten Terminal-Dienstprogrammen sein, aber wenn Sie Homebrew für alles verwenden, könnten Sie auch so tun, als würden Sie Linux verwenden. Gemischt mit iterm2 funktioniert es großartig für mich. Ich kann im Grunde so tun, als wäre ich mit meinen Linux-Boxen zuhause.Antworten:
Dies fügt Symlinks für GNU-Dienstprogramme mit dem Präfix g hinzu zu
/usr/local/bin/
:Siehe
brew search gnu
für andere Pakete. Wenn Sie die Befehle ohne ein Präfix verwenden möchten, fügen Sie sie beispielsweise/usr/local/opt/coreutils/libexec/gnubin
vor anderen Verzeichnissen auf Ihrem Computer hinzuPATH
.quelle
shiny-and-gnu.rb
unter github.com/al-the-x/homebrew-mine/usr/local/opt/coreutils/libexec/gnuman:
scheint, als wäre das Original-MANPATH nicht enthalten. Nachdem ich die MANPATH-Konf in meinem Baschromat auskommentiert hatte, kam ich nicht weiterecoh $MANPATH
. Und natürlich, wenn ich es benutzeman pwd
, habe ich das BSD-Handbuch. Wie kann man das beheben?findutils
müssen Sie hinzufügen,PATH="/usr/local/Cellar/findutils/4.4.2/bin:$PATH"
was nicht in der Ausgabe der Installationskonsole angegeben ist.findutils
, fügen Sie diese zusätzlich zu Ihrer$MANPATH
/usr/local/opt/findutils/share/man
MANPATH
um den Standard - Systemwert zu halten ist:MANPATH="/usr/local/opt/coreutils/libexec/gnuman:${MANPATH-/usr/share/man}"
. Der Schlüssel liegt im Konstrukt${var-default_value}
.Außerdem
brew install coreutils
müssen Sie möglicherweise auch einige andere Pakete installieren, z. Bgnu-sed
.grep
:Beachten Sie, dass die
--with-default-names
Option entfernt seit Januar 2019, so dass jeder binären muss den Pfad hinzugefügt werden , wenn sie ohne denen verwendet werden solleng
Präfix.Alte Referenz (wenn
--with-default-names
verfügbar): http://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/quelle
brew install gawk
(im Gegensatz zu allen anderen) ersetzt wirdawk
(über einen symbolischen Link/usr/local/bin/awk
). Wenn Sie möchten , um das Original zu halten/usr/bin/awk
, nurrm /usr/local/bin/awk
Ich bin mir nicht sicher, ob ich empfehlen würde , sie zu ersetzen . Sie können sie jedoch in einem anderen Pfad installieren und auf diese Weise verwenden. Alles in allem würde ich Macports empfehlen: http://www.macports.org
Es ermöglicht zum Beispiel die Verwendung des neuesten "generischen" GCC, im Gegensatz zu / zusätzlich zu dem im Lieferumfang von Apple enthaltenen GCC, nur als Beispiel.
quelle
/opt/local/libexec/gnubin
sie derPATH
Umgebungsvariablen voranstellen.Ich habe ein Skript geschrieben, um genau das zu tun! Das Skript kann hier (oder unten) eingesehen werden . Ich kann jedoch nicht immer garantieren, dass dieser Beitrag die neueste Version des zuvor verlinkten Skripts widerspiegelt.
Beim Ausführen des Skripts wird Homebrew installiert (falls noch nicht geschehen), alle zugehörigen GNU-Dienstprogramme werden installiert (falls noch nicht geschehen) und die
PATH
Variable wird aus den installierten Dienstprogrammen erstellt.quelle
.bash_path
-mangling ist nicht wirklich notwendig, wenn Sie @ user495470 und @ xuhdevs Antworten folgen. Und das Ändern von PS1 ist völlig ausgeschlossen.Ich habe ein Skript geschrieben, das die macOS CLI transparent in eine neue GNU / Linux CLI-Erfahrung umwandelt
https://github.com/fabiomaia/linuxify
Sie können damit auch einfach alles rückgängig machen.
quelle
git clone [email protected].:fabiomaia/linuxify.git
) Der erste Befehl lautete "Die Authentizität des Hosts 'github.com' kann nicht festgestellt werden usw.". Ich tippteyes
und drückte die Eingabetaste. Dann hieß es[email protected]: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
Was ist los?git clone https://github.com/fabiomaia/linuxify.git