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 PATHUmgebungsvariable ist, welche .desktopDateien es gibt und wie Sie mit verschiedenen Linux-Befehlen ein bestimmtes Programm finden.
Ursprüngliche Antwort:
Es gibt keine einfache Antwort.
/bin, /usr/binUnd/usr/share
Wie in den anderen Antworten erwähnt, finden Sie die meisten ausführbaren Dateien unter /binoder /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 PATHVariable, die festlegt, wo nach einem eingegebenen Befehl gesucht werden soll, könnte Ihnen einen Hinweis geben, meiner sieht wie folgt aus ( echo $PATHin 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/localund 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 /optund /usr/localnicht sehr gut erklärt, jemand auf dem Unix-Stack-Exchange hatte eine ausführlichere Erklärung:
/usr/localHier 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/fooist Teil des Betriebssystems, während /usr/local/bin/fooeine lokale Alternative ist,
/optist 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 someappwü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 binVerzeichnisse 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 .desktopDatei 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.desktopund 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 firefoxes sich in einem Verzeichnis befinden muss, das sich in der PATHVariablen 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, whichund 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 firefoxgibt 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 firefoxgibt uns
/usr/bin/firefox
whereis : Suchen Sie die Binär-, Quell- und Handbuchdateien für einen Befehl.
Ausführen whereis firefoxgibt 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/firefoxnäher mit inspizieren ls -l /usr/bin/firefoxund 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 :)