So führen Sie mein eigenes Programm aus, ohne dessen Pfad anzugeben


11

Nehmen wir an, ich habe etwas kompiliert und führe es so aus:

$ /path/to/my/executable/mycmd
Hello World

Was muss ich tun, um es auszuführen?

$ mycmd
Hello World 

von überall in meinem Computer?

Antworten:


15

Was Sie suchen, ist die PATHUmgebungsvariable. Es teilt der Shell mit, wo nach Programmen gesucht werden muss. Sie können den aktuellen Wert dieser Variablen anzeigen mit echo:

echo "$PATH"

Jetzt ... Die beste Vorgehensweise, wenn Sie ein neues Programm verwenden möchten, besteht darin, es mithilfe des Paketverwaltungsprogramms für Ihre Distribution zu installieren. In diesem Fall gehe ich jedoch davon aus, dass es sich um ein Programm handelt, das von keinem verfügbaren Softwarepaket geliefert wird. Für solche Programme haben Sie zwei Möglichkeiten:

  1. Installieren Sie das Programm systemweit, in einem Ort , wo Ihr System nicht alle Dateien von Paketen installiert setzen. Auf den meisten Systemen enthalten solche "sicheren" Ordner /usr/local/bin/und /opt/bin/- diese sollten sich bereits in Ihrem befinden PATH. (Schauen Sie in diese Ordner und wenn sich viele Dateien darin befinden, ist es der falsche Ort, um Ihr eigenes Programm zu platzieren, und Sie müssen sich andere Ordner ansehen, die in Ihrem Ordner aufgeführt sindPATH .)
  2. Ändern Sie Ihre PATH Variable. Dies ist weniger sicher, da es zusätzliche Ordner definiert, in denen Programme aufbewahrt werden können und jemand Ihnen einen Streich spielen könnte, indem er sein eigenes Programm für Sie zum Ausführen bereitstellt.

    Sie können die PATHVariable entweder vorübergehend mit ändern

    export PATH="$PATH:/path/to/your/executable"
    

    (Beachten Sie das $PATH Nachher = ) oder dauerhaft, indem Sie die obige Zeile zu Ihrer .bashrcDatei hinzufügen (vorausgesetzt, Sie verwenden bash).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.