¿Cuál es el equivalente de Linux a los archivos de programa de Windows?

146

En Windows, la mayoría de las aplicaciones y datos de aplicaciones se almacenan en un directorio especial conocido como C:\Program Files (y ocasionalmente C:\Program Files (x86) ). ¿Cuál es el equivalente de Ubuntu / Linux a esta ruta? ¿Hay incluso uno?

    
pregunta Kaz Wolfe 20.02.2011 - 07:36

10 respuestas

91

/bin y /usr/bin es donde están los scripts que inician los programas. Sin embargo, el equivalente directo de "Archivos de programa" probablemente sea /usr/share . Ese directorio contiene los diversos archivos de soporte para la mayoría de los programas.

Sin embargo, probablemente no haya un equivalente directo, ya que, por ejemplo, los archivos de biblioteca se comparten en el sistema (en /lib ) y las opciones se especifican por el usuario (en el directorio de inicio del usuario) o se ubican universalmente en /etc .

Entonces la instalación de un programa a través de un archivo deb, repositorio o compilación probablemente colocará archivos en todas estas ubicaciones.

[EDIT] Y como otros señalan, también hay /sbin y /usr/sbin . Más /usr/local/bin , /opt/bin e incluso /usr/games/ . Entonces definitivamente no es una comparación directa con c:\program files !

    
respondido por el Scaine 20.02.2011 - 13:21
72

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 en /usr/share .

/usr/local y /opt

Sin embargo, hay más directorios en los que Ubuntu instala aplicaciones. La variable PATH , que determina dónde buscar un comando ingresado, podría darle una pista, la mía se parece a ( echo $PATH en un 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 en /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 por 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 unix stackexchange tenía una explicación más elaborada:

  • /usr/local es un lugar para instalar archivos creados por el administrador, generalmente utilizando el comando make. La idea es evitar enfrentamientos con archivos que son parte de los sistemas operativos que, de otro modo, se sobrescribirán o sobrescribirán los locales. 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 independiente de software de terceros. Por ejemplo, someapp se instalaría en /opt/someapp , uno de sus comandos estaría en /opt/someapp/bin/foo [y, por lo general, se crea un enlace simbólico en uno de los directorios bin en PATH , o el programa es llamado desde un archivo de escritorio (ver a continuación)].

Encontrar un programa o comando específico

.desktop files

Para saber dónde está instalado un programa específico, puede hacer una serie de pasos. Primero necesita ubicar su archivo .desktop . Los archivos de escritorio son similares a los accesos directos en Windows, y para las aplicaciones del sistema se encuentran en /usr/share/applications . Los archivos de escritorio para aplicaciones que solo están disponibles para el usuario actual están en ~/.local/share/applications . Tomemos por ejemplo Google Chrome, que tiene el archivo de escritorio /usr/share/applications/google-chrome.desktop y busca la línea que comienza con Exec= , esto determina cómo iniciar Google Chrome. Dice:

Exec=/opt/google/chrome/google-chrome

Así que sabes que Google Chrome está en /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 variable PATH (muy probablemente un bin ), y podemos mirarlo arriba (ver a continuación).

Buscar comandos

Para buscar comandos, puede usar uno o más de los siguientes: type , which y whereis (He incluido un enlace a sus páginas de manual en línea).

  • type : describe un comando e indica cómo se interpretaría si se usa como nombre de comando. Los tipos posibles para un comando son:

    1. alias (alias del shell)
    2. función (función de shell)
    3. incorporado (shell incorporado)
    4. archivo (archivo de disco)
    5. palabra clave (palabra reservada de shell)

    (el tipo en sí es un comando de comando builtin bash, pruébalo 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 (que marcó con type ), también puede usar:

  • que : muestra la ruta completa del comando,

    Ejecutar which firefox nos da

     /usr/bin/firefox
    
  • whereis : busque los archivos de página binarios, fuente y 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
    

Bonificación

Puedes inspeccionar /usr/bin/firefox más cerca con ls -l /usr/bin/firefox y esto te da:

/usr/bin/firefox -> ../lib/firefox/firefox.sh*

Parece que /usr/bin/firefox es 'solo' un enlace simbólico al script /usr/lib/firefox/firefox.sh . Si inspecciona el script, descubre que el script llama a /usr/lib/firefox/firefox .
Puede descansar en paz ahora:)

EDITAR : consulte también la respuesta de d4nyll para obtener una buena hoja de ruta.

    
respondido por el Gerhard Burger 12.05.2013 - 19:49
60

Respuesta tardía : he creado una hoja de ruta para que sigan los principiantes. Si están buscando un archivo pero no saben dónde mirar, pueden usar el mapa para navegar más o menos. Puede descargar un archivo PNG de alta resolución aquí . Puede encontrar la publicación relacionada aquí . Seguiré actualizando el archivo y la publicación cuando el tiempo lo permita, incorporando comentarios útiles.

    
respondido por el d4nyll 20.11.2014 - 18:25
16

No hay un solo directorio que sea el equivalente exacto de la carpeta Archivos de programa . La forma en que Linux arregla las cosas es muy diferente a Windows.

En Windows, cada programa que instalamos tiene su propio directorio dentro del directorio Archivos de programa. En ese directorio, se crean otros subdirectorios para diferentes tipos de archivos. No hay una estructura fija para subdirectorios. Los programas deciden por sí mismos a qué quieren llamar cada directorio y dónde quieren colocar qué.

Pero en Linux cuando se instala un programa, se copian diferentes tipos de archivos en diferentes ubicaciones. Los archivos ejecutables se copian a / usr / bin , archivos de biblioteca a / usr / lib , documentación a uno o más de / usr / man , < strong> / usr / info y / usr / doc . Si hay archivos de configuración, generalmente están en el directorio de inicio del usuario o en / etc .

    
respondido por el binW 24.02.2011 - 15:19
9

La carpeta C:\Program Files sería /usr/bin en Ubuntu. /bin se parece más a C:\windows .

De la página de manual de la jerarquía del sistema de archivos :

/bin      This directory contains executable programs which are needed  in
          single user mode and to bring the system up or repair it.
/usr/bin
          This is the primary directory  for  executable  programs.   Most
          programs  executed  by  normal  users  which  are not needed for
          booting or for repairing the system and which are not  installed
          locally should be placed in this directory.

Ubuntu tiene una estructura diferente a Windows. Ubuntu coloca casi todas las aplicaciones en un directorio, digamos /usr/bin . Windows creará una nueva carpeta, digamos Mozilla Firefox , y agregará configuración, ejecutables, DLL, imágenes, etc. en ella. Ubuntu los divide, los ejecutables van en /usr/bin , la configuración de todo el sistema en /etc , los objetos compartidos en /usr/lib , las imágenes en /usr/share , ...

    
respondido por el Lekensteyn 20.02.2011 - 14:42
3

Los 'Archivos de programa' de Linux están en toda la jerarquía. Podría estar en /usr/bin , /bin , /opt/... , o en otros directorios.

Creo que encontrará algún archivo relacionado con su aplicación. Entonces, tengo una idea de cómo se ven los archivos que están instalados en la instalación del programa.

  1. Instale synaptic emitiendo sudo apt-get install synaptic en la terminal.
  2. Busque el paquete que desea, busque en el ingreso de texto de búsqueda.
  3. Haga clic con el botón derecho en el paquete y seleccione Properties .
  4. Mover a la pestaña Installed File . El resultado es el mismo que dpkg -L package_name .
  5. Allí encontrará todos los archivos instalados para el paquete.

Es porque Linux mueve el archivo instalado a directorios por separado según su tipo.

  • El ejecutable va a /usr/bin o /bin .
  • El icono
  • va a /usr/share/icons o a ~/.local/share/icons para local.
  • Aplicación completa (portátil) en /opt .
  • Acceso directo usualmente en /usr/share/applications o en ~/.local/share/applications
  • Documentación sobre /usr/share/doc
  • Biblioteca / módulo en /usr/lib

Y muchos otros directorios. (CMIIW, aceptando la corrección)

    
respondido por el Abdillah 15.03.2014 - 14:09
2

En esta respuesta, cuando digo Unix me refiero a Unix así como a sistemas operativos tipo Unix.

Ubuntu realmente no tiene una carpeta de programas que contenga todos los datos para cada programa. En los sistemas operativos Unix y Unix, TODO es un archivo, incluso los comandos de la terminal. También son archivos. La forma en que Unix maneja los programas puede ser bastante caótica y organizada al mismo tiempo.

Los íconos para los programas se almacenan en / usr / share / icons / *, los ejecutables del programa generalmente se almacenan en / usr / bin, / bin, y en otros lugares con directorios bin (bin es obvio para binario). Las bibliotecas de las que dependen los programas están en / lib.

Así que terminas sin un directorio que contenga todos los datos para un programa, pero los datos para el programa se extiendan. Si bien al principio esto parece muy desorganizado, permite compartir elementos estándar, como bibliotecas e íconos.

Gracias a los permisos para cada archivo, la idea de que todo sea un archivo es muy brillante para ser honesto. Hace que Unix MUCHO sea más seguro que otros sistemas operativos.

    
respondido por el Thomas Boxley 20.02.2011 - 19:25
2

La forma en que se instalan los programas de Linux y Windows es bastante diferente.

El patrón común en Windows es para un programa; o un grupo de programas, de un proveedor ingrese en su propio subdirectorio en C: \ programs \ vendor o algo similar.

En Linux, sus archivos se dividen entre subdirectorios específicos según su función. Hay directorios para bibliotecas, iconos, páginas de manual, archivos de registro, configuración, etc. Puede usar algunos de ellos, pero el sistema los administrará a todos. No están acoplados, sino que existen junto con archivos similares de otros programas.

Entonces, no existe un equivalente real a esa estructura de directorio de Windows en una implementación regular de Linux.

    
respondido por el user unknown 20.02.2011 - 14:36
1

Si instala programas propios, recomiendo 1 carpeta:

respondido por el Timo 12.03.2015 - 19:27
-2

Busca en /bin , /usr/bin y cualquier otra cosa que diga bin .

    
respondido por el cpu2 12.05.2013 - 19:36

Lea otras preguntas en las etiquetas