Was kann ich tun, wenn ich ein bestimmtes Programm unabhängig von meinem aktuellen Verzeichnis ausführen möchte? Soll ich einen symbolischen Link zum Programm im /bin
Ordner erstellen ?
command-line
aneuryzm
quelle
quelle
~/bin/
Ordner zu erstellen , THAT zu Ihrem Pfad hinzuzufügen und Symlinks in diesem Ordner zu allem zu erstellen, was von irgendwo aus ausführbar sein soll.Antworten:
Wenn Sie nur
export PATH=$PATH:</path/to/file>
in die Befehlszeile eingeben, wird dies nur für die Länge der Sitzung dauern.Wenn Sie es dauerhaft ändern möchten, fügen Sie es
export PATH=$PATH:</path/to/file>
zu Ihrer ~ / .bashrc-Datei hinzu (nur am Ende ist alles in Ordnung).quelle
Die kurze Antwort lautet, dass Sie das Programmverzeichnis in Ihrem Suchpfad haben müssen, um es auszuführen, unabhängig von Ihrem Verzeichnis. Das Problem kann gelöst werden, indem Sie das Programm in einen Ordner verschieben, der sich bereits in diesem Pfad befindet, oder indem Sie dem Pfad einen neuen Ordner hinzufügen - beides funktioniert. Die beste Antwort hängt ab von:
Ist dieses Programm ein heruntergeladenes Programm, das Sie selbst aus dem Quellcode kompiliert haben?
Es ist sehr wahrscheinlich, dass es bereits einen Installationsmechanismus gibt. Führen Sie in dem Ordner, in dem Sie das Programm kompiliert haben, als Root "make install" aus.
Ist dieses Programm ein heruntergeladenes Programm, das Sie als Teil der Standardprogramme auf dem Computer zur Verfügung stellen möchten?
Es ist sinnvoll, diese Art von Anwendung in einem Standardordner abzulegen. Es ist durchaus üblich, für solche Programme Verzeichnisse wie / usr / local / bin zu verwenden. Dazu benötigen Sie Root-Zugriff.
Dies ist ein Programm, das Sie für sich selbst geschrieben haben und / oder Sie haben keine besonderen Berechtigungen auf dem Computer.
Erstellen Sie einen Ordner in Ihrem Home-Verzeichnis mit dem Namen 'bin' und platzieren Sie das Programm dort. Möglicherweise müssen Sie Ihr Anmeldeskript bearbeiten, um den vollständigen Pfad zu diesem Ordner hinzuzufügen (z. B. / usr / home / jeremy / bin).
Während Sie nur das aktuelle Verzeichnis zum Suchpfad hinzufügen könnten, müssen Sie dies mit jedem neuen Programm tun - und dies ist längerfristig mehr Arbeit.
quelle
Das Einfügen eines Links zu der Datei in das
/bin
Verzeichnis ist aus mehreren Gründen nicht das Beste./bin
Verzeichnis soll für Programme reserviert werden , die für den Betrieb des Systems (Dinge wie erforderlich sindchmod
,mkdir
usw.).Sie können die ausführbare Datei in
/usr/bin/
oder sogar platzieren (installieren)/usr/local/bin/
. Natürlich haben Sie das Programm zu diesem Zeitpunkt manuell installiert. Ihre Distribution wird nicht den Überblick darüber behalten, wie es bei den anderen Programmen der Fall ist - Sie müssen es bei Bedarf manuell aktualisieren und manuell entfernen, wenn Sie möchten, dass es nicht mehr zur Verfügung steht. Außerdem müssen Sie wissen, von welchen Paketen es abhängt (es hört sich so an, als ob Sie das Programm bereits verwenden, das ist also erledigt, aber im Allgemeinen ...).Wenn ich kein Programm einrichte, das andere Benutzer verwenden sollen, ist dies normalerweise nicht der Fall: Ich erstelle ein bin-Verzeichnis für mich in meinem Ausgangsverzeichnis und bearbeite mein Shell-Profil, um
~/bin/
es meinerPATH
Umgebungsvariablen hinzuzufügen . Ich finde es einfacher, den Überblick über die Programme zu behalten, die ich auf diese Weise installiert habe, da sie vom Rest des Systems getrennt sind.quelle
Wenn Sie einen Befehl
foo
in dem Verzeichnis ausführen möchten, in dem sich Ihre Shell befindet, haben Sie grundsätzlich zwei Möglichkeiten:Geben Sie
./foo
an der Shell-Eingabeaufforderung ein.Fügen Sie das
.
Verzeichnis (.
ist ein Name für "das aktuelle Verzeichnis") derPATH
Umgebungsvariablen hinzu. Wie Sie dies tun, hängt von der verwendeten Shell ab:Für Shells vom Typ Bourne (bash, zsh, ksh usw.), die Sie schreiben ( weitere Informationen finden Sie auf dieser Seite ):
Für Shells vom Typ csh (tcsh, csh), die Sie schreiben ( weitere Informationen finden Sie auf dieser Seite ):
Beachten Sie, dass 2. ein Sicherheitsrisiko auf Mehrbenutzersystemen darstellt: Stellen Sie sich vor, Sie würden ein
cd
Verzeichnis erstellen ,/tmp
und ein böswilliger Benutzer hat eine dort genannte Malware-Binärdatei erstelltls
.quelle
Durch das Spielen mit dem können
PATH
Sie versehentlich schädliche Programme ausführen. Standard ist die Installation von "lokalem" Material unter/usr/local
(siehe FHS , das die Verwendung von Unix festlegt: etwas veraltet, aber mit Gründen versehen). Es/usr/local/bin
ist normalerweisePATH
für alle Benutzer bestimmt.Meine "lokal installierten" Programme sind im
$HOME/bin
Standardtanz enthalten./configure --prefix=$HOME ...
, gepaart mit ein paar (Bash-) Aliasen, um zB selbstgebauten Git über das System herauszusuchen (nicht überschneidende sindPATH
ganz am Ende zu finden.quelle