Lea mi respuesta a continuación para obtener más información sobre cuál es la PATH
variable de entorno, qué .desktop
archivos son y cómo encontrar un programa específico utilizando varios comandos de Linux.
Respuesta original:
No hay una respuesta fácil.
/bin
` /usr/bin
` y/usr/share
Como se menciona en las otras respuestas, puede encontrar la mayoría de los ejecutables en /bin
o /usr/bin
, y los archivos de soporte están instalados /usr/share
.
/usr/local
y /opt
Sin embargo, hay más directorios en los que Ubuntu instala aplicaciones. La PATH
variable, que determina dónde buscar un comando ingresado, puede darle una pista, la mía se ve ( echo $PATH
en una 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
Como puede ver, algunos programas están instalados /usr/local
y tienen su propio directorio y bin
. Otro lugar donde se instalan muchos programas es /opt
. Las propiedades de estas ubicaciones se explican en el Estándar de jerarquía del sistema de archivos , que es una muy buena lectura. Desafortunadamente, la diferencia entre /opt
y /usr/local
no está muy bien explicada, alguien en el intercambio de pila de Unix tenía una explicación más elaborada:
/usr/local
es un lugar para instalar archivos creados por el administrador, generalmente mediante el comando make. La idea es evitar conflictos con los archivos que forman parte de los sistemas operativos que se sobrescribirán o sobrescribirán los locales de lo contrario. p.ej. /usr/bin/foo
es parte del sistema operativo mientras que /usr/local/bin/foo
es una alternativa local,
/opt
es un directorio para instalar paquetes desagregados cada uno en su propio subdirectorio. Ya están construidos paquetes completos proporcionados por un distribuidor de software independiente de terceros. Por ejemplo someapp
, se instalaría en /opt/someapp
, uno de sus comandos estaría en /opt/someapp/bin/foo
[y luego generalmente se crea un enlace simbólico en uno de los bin
directorios en el PATH
, o se llama al programa desde un archivo de escritorio (ver más abajo)].
Encontrar un programa o comando específico
.desktop
archivos
Para saber dónde está instalado un programa específico, puede realizar varios pasos. Primero necesitas localizar su .desktop
archivo. Los archivos de escritorio son similares a los accesos directos en Windows, y para las aplicaciones del sistema en los que se encuentran /usr/share/applications
. Se encuentran los archivos de escritorio para aplicaciones que solo están disponibles para el usuario actual ~/.local/share/applications
. Tomemos, por ejemplo, Google Chrome, que tiene el archivo de escritorio /usr/share/applications/google-chrome.desktop
y busque la línea que comienza Exec=
, esto determina cómo iniciar Google Chrome. Dice:
Exec=/opt/google/chrome/google-chrome
Entonces sabes que Google Chrome está dentro /opt
.
Ahora para Mozilla Firefox que se encuentra en /usr/share/applications/firefox.desktop
. Simplemente dice
Exec=firefox %u
Al principio, esto no parece ayudar mucho, pero luego te das cuenta de que firefox
debe estar en un directorio que está en la PATH
variable (muy probablemente a bin
), y podemos buscarlo (ver más abajo).
Buscar comandos
Para buscar los comandos que se pueden utilizar uno o más de los siguientes: type
, which
y whereis
(he incluido un enlace a sus páginas de manual en línea).
tipo : describe un comando e indica cómo se interpretaría si se usara como un nombre de comando. Los tipos posibles para un comando son:
- alias (alias de shell)
- función (función de shell)
- incorporado (caparazón incorporado)
- archivo (archivo de disco)
- palabra clave (palabra reservada de shell)
(el tipo en sí es un shell incorporado, pruébelo con type type
: P)
Ejecutar type firefox
nos da
firefox is /usr/bin/firefox
que es lo que queríamos saber
Si un comando es un archivo (con el que verificó type
), también puede usar:
que : muestra la ruta completa del comando,
Ejecutar which firefox
nos da
/usr/bin/firefox
whereis : localice los archivos binarios, de origen y de página de manual para un comando.
Ejecutar whereis firefox
nos da
firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/lib64/firefox /usr/bin/X11/firefox /usr/share/man/man1/firefox.1.gz
Prima
Puede inspeccionar /usr/bin/firefox
más de cerca ls -l /usr/bin/firefox
y esto da:
/usr/bin/firefox -> ../lib/firefox/firefox.sh*
Parece que /usr/bin/firefox
es "solo" un enlace simbólico a la secuencia de comandos /usr/lib/firefox/firefox.sh
. Si inspecciona el script, descubre que el script llama /usr/lib/firefox/firefox
.
Puedes descansar en paz ahora :)