BEARBEITEN : Siehe auch die Antwort von d4nyll für eine ausgezeichnete und anfängerfreundliche Karte!
Lesen Sie meine Antwort weiter unten, um mehr darüber zu erfahren, was die PATH
Umgebungsvariable ist, welche .desktop
Dateien es gibt und wie Sie mit verschiedenen Linux-Befehlen ein bestimmtes Programm finden.
Ursprüngliche Antwort:
Es gibt keine einfache Antwort.
/bin
, /usr/bin
Und/usr/share
Wie in den anderen Antworten erwähnt, finden Sie die meisten ausführbaren Dateien unter /bin
oder /usr/bin
, und die Unterstützungsdateien werden unter installiert /usr/share
.
/usr/local
und /opt
Es gibt jedoch mehr Verzeichnisse, in denen Ubuntu Anwendungen installiert. Die PATH
Variable, die festlegt, wo nach einem eingegebenen Befehl gesucht werden soll, könnte Ihnen einen Hinweis geben, meiner sieht wie folgt aus ( echo $PATH
in einem Terminal):
/usr/local/cuda/bin:/usr/local/texlive/2012/bin/x86_64-linux:/usr/games:/home/gerhard/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Wie Sie sehen, ist einige Software in installiert /usr/local
und hat ein eigenes Verzeichnis und bin
. Ein weiterer Ort, an dem viele Programme installiert sind, ist /opt
. Die Eigenschaften dieser Speicherorte werden durch den Dateisystem-Hierarchie-Standard erläutert , der sehr gut gelesen werden kann. Leider ist der Unterschied zwischen /opt
und /usr/local
nicht sehr gut erklärt, jemand auf dem Unix-Stack-Exchange hatte eine ausführlichere Erklärung:
/usr/local
Hier können vom Administrator erstellte Dateien installiert werden, in der Regel mithilfe des Befehls make. Die Idee ist, Konflikte mit Dateien zu vermeiden, die Teil des Betriebssystems sind und die anderenfalls entweder überschrieben oder die lokalen überschrieben würden. z.B. /usr/bin/foo
ist Teil des Betriebssystems, während /usr/local/bin/foo
eine lokale Alternative ist,
/opt
ist ein Verzeichnis zum Installieren von entbündelten Paketen, die sich jeweils in einem eigenen Unterverzeichnis befinden. Sie bestehen bereits aus kompletten Paketen, die von einem unabhängigen Softwarehändler bereitgestellt werden. Beispielsweise someapp
würde in installiert sein /opt/someapp
, einer seiner Befehle wäre in /opt/someapp/bin/foo
[und dann wird normalerweise eine symbolische Verknüpfung in einem der bin
Verzeichnisse in der vorgenommen PATH
, oder das Programm wird von einer Desktop-Datei aufgerufen (siehe unten)].
Suchen eines bestimmten Programms oder Befehls
.desktop
Dateien
Um herauszufinden, wo ein bestimmtes Programm installiert ist, können Sie mehrere Schritte ausführen. Zuerst müssen Sie die .desktop
Datei suchen. Desktop-Dateien ähneln Verknüpfungen in Windows und befinden sich in Systemanwendungen /usr/share/applications
. Die Desktop-Dateien für Anwendungen, die nur für den aktuellen Benutzer verfügbar sind, befinden sich in ~/.local/share/applications
. Nehmen Sie zum Beispiel Google Chrome, das die Desktop-Datei enthält, /usr/share/applications/google-chrome.desktop
und suchen Sie nach der Zeile, die mit beginnt Exec=
. Dies bestimmt, wie Google Chrome gestartet wird. Es sagt:
Exec=/opt/google/chrome/google-chrome
Sie wissen also, dass Google Chrome aktiviert ist /opt
.
Nun zu Mozilla Firefox in /usr/share/applications/firefox.desktop
. Es sagt einfach
Exec=firefox %u
Zuerst scheint das nicht viel zu helfen, aber dann merkt man, dass firefox
es sich in einem Verzeichnis befinden muss, das sich in der PATH
Variablen befindet (höchstwahrscheinlich a bin
), und wir können es nachschlagen (siehe unten).
Befehle nachschlagen
So schlagen Sie Befehle können Sie einen oder mehrere der folgenden verwenden: type
, which
und whereis
(ich habe einen Link zu ihrer manuellen Seiten online enthalten).
Typ : Beschreibt einen Befehl und gibt an, wie er interpretiert wird, wenn er als Befehlsname verwendet wird. Mögliche Typen für einen Befehl sind:
- Alias (Shell-Alias)
- Funktion (Schalenfunktion)
- eingebaut (Shell eingebaut)
- Datei (Festplattendatei)
- Schlüsselwort (Shell reserviertes Wort)
(Typ selbst ist eine eingebaute Shell, probieren Sie es mit type type
: P)
Ausführen type firefox
gibt uns
firefox is /usr/bin/firefox
Das wollten wir wissen
Wenn ein Befehl eine Datei ist (mit der Sie geprüft haben type
), können Sie auch Folgendes verwenden:
welche : zeigt den vollständigen Pfad des Befehls,
Ausführen which firefox
gibt uns
/usr/bin/firefox
whereis : Suchen Sie die Binär-, Quell- und Handbuchdateien für einen Befehl.
Ausführen whereis firefox
gibt uns
firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/lib64/firefox /usr/bin/X11/firefox /usr/share/man/man1/firefox.1.gz
Bonus
Sie können /usr/bin/firefox
näher mit inspizieren ls -l /usr/bin/firefox
und dies gibt:
/usr/bin/firefox -> ../lib/firefox/firefox.sh*
Es scheint, dass dies /usr/bin/firefox
"nur" eine symbolische Verknüpfung zum Skript ist /usr/lib/firefox/firefox.sh
. Wenn Sie das Skript überprüfen, stellen Sie fest, dass das Skript aufruft /usr/lib/firefox/firefox
.
Sie können jetzt in Frieden ruhen :)