Es gibt zwei Möglichkeiten, Ihnen zu erlauben, die Binärdatei auszuführen, ohne ihren Pfad anzugeben (ohne das Erstellen von Aliasen oder Shell-Funktionen, um sie mit einem absoluten Pfad für Sie auszuführen):
- Kopieren Sie es in ein Verzeichnis, das sich in Ihrem
$PATH
befindet . - Fügen Sie das Verzeichnis, in dem es sich befindet, zu Ihrem
$PATH
hinzu .
Um die Datei in ein Verzeichnis in Ihrem Pfad zu kopieren, zum Beispiel /usr/local/bin
(wohin lokal verwaltete Software gehen sollte), müssen Sie über Superuser-Privilegien verfügen, was normalerweise bedeutet, dass Sie sudo
verwenden :
$ sudo cp -i mybinary /usr/local/bin
Es muss darauf geachtet werden, dass keine vorhandenen Dateien im Zielverzeichnis überschrieben werden (deshalb habe ich -i
hinzugefügt hier).
Um ein Verzeichnis zu Ihrem $PATH
hinzuzufügen , fügen Sie eine Zeile in Ihrem ~/.bashrc
hinzu Datei (wenn Sie bash
verwenden ):
PATH="$HOME/bin:$PATH"
... wenn die Binärdatei in $HOME/bin
ist .
Dies hat den Vorteil, dass Sie keine Superuser-Rechte benötigen oder etwas im Basissystem auf Ihrem Computer ändern/hinzufügen müssen. Sie müssen nur die Binärdatei in den bin
verschieben Verzeichnis Ihres Home-Verzeichnisses.
Hinweis, ändert sich zu .bashrc
wird wirksam, wenn die Datei das nächste Mal bezogen wird, was passiert, wenn Sie ein neues Terminal öffnen oder sich ab- und wieder anmelden oder source ~/.bashrc
ausführen manuell.
Sie sollten mehr über die PATH-Variable lesen. Ich vermute stark, dass Sie es entsprechend verwenden (oder ändern) sollten.
Ich möchte in der Lage sein, es in das bin-Verzeichnis zu legen
Du meinst wohl /bin/
oder /usr/bin/
. Ich bin mir nicht sicher, ob es ratsam ist, dort eigene Programme hinzuzufügen. Vielleicht wäre es besser, einen Symlink in sie einzufügen (z. B. mit etwas wie ln -sv $(realpath foobar.out) /usr/bin/
), wenn Sie unbedingt möchten, dass Ihr Programm dort erscheint (was meiner Meinung nach wahrscheinlich ein Fehler ist, da Sie den Paketmanager Ihrer Distribution durcheinander bringen).
Wahrscheinlich installieren Sie Ihr Programm in /usr/local/bin/
ist viel klüger (beide /bin/
zu belassen und /usr/bin/
intakt, wie von Ihrer Linux-Distribution bereitgestellt und verwaltet). Siehe LSB und mehr über den Dateihierarchiestandard.
... wie systemweite Befehle, z. B. .... cd
Dies ist ein starkes Missverständnis Ihrerseits (in der ursprünglichen Variante Ihrer Frage haben Sie zu Recht cd
entfernt später). cd
ist und kann keine ausführbare Datei sein, es ist (und muss) ein eingebauter Befehl Ihrer Shell sein.
Vielleicht möchten Sie das kostenlos herunterladbare Advanced Linux Programming lesen um zu verstehen, warum cd
kann keine ausführbare Datei sein (das aktuelle Arbeitsverzeichnis ist Teil des Zustands jedes Prozesses, und jeder Prozess hat sein eigenes und könnte es mit chdir(2) ändern...)
install /path/to/oobar.out /usr/local/bin/