Okay, ich bin ein Linux-Power-User, das heißt, ich fühle mich am wohlsten, wenn ich Zugriff auf die Befehlszeile habe, und ich bin sehr daran gewöhnt, GNU-Coreutils zu verwenden, also habe ich jetzt GNU-Coreutils installiert Mac OS X mit Homebrew, wie würde ich vorgehen, um die integrierten Coreutils zu entfernen, mit denen Vanilla Mac OS X geliefert wird?
Bitte denken Sie daran, dass ich zsh verwende. Wenn ich also den Pfad auf etwas setze, mache ich es so:
path=(/usr/local/bin ~/.gem/ruby/2.0.0/bin ~/.nvm/bin ~/bin /bin $path)
Ich möchte sagen können,
Alles, was im aktuellen Pfad vorhanden ist, in den neuen Pfad einbeziehen, mit Ausnahme dieser Dateien: /usr/bin/ls
, /usr/bin/grep
...
Fügen Sie Ihrem Pfad Folgendes hinzu, um die OS X-Tools durch Homebrew Coreutils zu ersetzen:
$(brew --prefix coreutils)/libexec/gnubin
Per zsh-Syntax…
path=($(brew --prefix coreutils)/libexec/gnubin $path)
Erstens möchten Sie keines der von Apple bereitgestellten Befehlszeilentools entfernen, es sei denn, Sie möchten ein instabiles / unbrauchbares System. In der traditionellen Unix/Linux-Manier können Sie jedoch Ihre Pfadangabe so einrichten , dass /usr/local/bin
sie zuerst überprüft wird, sodass die dort installierten Dienstprogramme (Standard für Homebrew) vorher verwendet werden /usr/bin
(oder /bin
). Das verbleibende Problem liegt in Shell-Skripten - Sie müssen explizit sein, da sie Ihren $PATH ignorieren können.
Alexej Magura
brew install everything from now on in 'coreutils'
Das ist nicht wirklich das, was ich will. Ich möchte etwas, das sagtinclude everything in '/usr/bin' EXCEPT for this list of files
grg
$(brew --prefix coreutils)/libexec/gnubin
zu Ihrem bestehenden Pfad bedeutet, dass jedes GNU-Tool das relevante Tool in /usr/bin ersetzt. Wenn es in GNUs bin nicht existiert, wird es /usr/bin verwenden.Alexej Magura
$path
.grg