Was sind "$ PATH" und "~ / bin"? Wie kann ich persönliche Skripte haben?

29

Was ist $PATH ?

Wie kann ich Befehle / Programme haben, die nur für mich verfügbar sind?
Ich habe diesen Pfad ~/bin bereits erwähnt, aber wofür wird er verwendet und wie verwende ich ihn?

    
Braiam 28.10.2010, 00:58
quelle

2 Antworten

25

$ PATH ist eine Umgebungsvariable, die für Suchbefehle verwendet wird. Das ~ ist dein Home-Verzeichnis, also ~ / bin ist / home / user / bin; Es ist ein normales Verzeichnis.

Wenn Sie beispielsweise "ls" in einer Shell ausführen, führen Sie das Programm / bin / ls aus; Der genaue Standort kann je nach Systemkonfiguration abweichen. Dies geschieht, weil / bin in Ihrem $ PATH ist.

Um den Pfad zu sehen und zu finden, wo sich ein bestimmter Befehl befindet:

$ echo $PATH
/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...
$ which ls     # searches $PATH for an executable named "ls"
/bin/ls
$ ls           # runs /bin/ls
bin  desktop  documents  downloads  examples.desktop  music  pictures  ...
$ /bin/ls      # can also run directly
bin  desktop  documents  downloads  examples.desktop  music  pictures  ...

Um Ihr eigenes privates Verzeichnis zu haben, müssen Sie es nur dem Pfad hinzufügen. Tun Sie dies, indem Sie ~ / .profile (eine versteckte Datei) bearbeiten, um die folgenden Zeilen einzufügen. Wenn die Zeilen kommentiert sind, müssen Sie sie nur auskommentieren; Wenn sie schon da sind, bist du fertig!

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ]; then
  PATH="$HOME/bin:$PATH"
fi

Jetzt müssen Sie Ihr Verzeichnis ~ / bin erstellen und, da .profile bei der Anmeldung ausgeführt wird und nur ~ / bin hinzufügt, wenn es zu diesem Zeitpunkt existiert, müssen Sie sich erneut anmelden, um den aktualisierten PATH zu sehen.

Lass es uns testen:

$ ln -s $(which ls) ~/bin/my-ls   # symlink
$ which my-ls
/home/user/bin/my-ls
$ my-ls -l ~/bin/my-ls
lrwxrwxrwx 1 user user 7 2010-10-27 18:56 my-ls -> /bin/ls
$ my-ls          # lookup through $PATH
bin  desktop  documents  downloads  examples.desktop  music  pictures  ...
$ ~/bin/my-ls    # doesn't use $PATH to lookup
bin  desktop  documents  downloads  examples.desktop  music  pictures  ...
    
Roger Pate 28.10.2010 00:58
quelle
17

Bezüglich ~/bin und Befehlen / Programmen, die nur für Ihren Benutzer verfügbar sind

Aktuelle Ubuntu-Versionen enthalten das ~/bin -Verzeichnis in Ihrer $PATH , aber nur, wenn das ~/bin -Verzeichnis existiert.

Wenn es nicht existiert:

  1. Stellen Sie sicher, dass Ihr ~/.profile die folgende Zeilengruppe enthält (der Standard ~/.profile tut dies bereits):

    # set PATH so it includes user's private bin if it exists
    if [ -d "$HOME/bin" ] ; then
        PATH="$HOME/bin:$PATH"
    fi
    
  2. Erstellen Sie das Verzeichnis ~/bin :

    mkdir -p ~/bin
    
  3. Starten Sie entweder Ihren Computer neu oder erzwingen Sie, dass bash erneut ~/.profile :

    liest
    exec -l bash
    
Danilo Piazzalunga 25.01.2013 12:09
quelle

Tags und Links