¿Cómo entender el diseño del sistema de archivos de Ubuntu?

203

En Windows quizás haya solo un par de carpetas importantes (por importante, importante en mi imagen lógica del sistema de archivos de Windows) en la unidad de instalación (en mi caso, C:\ ). A saber, Program Files y Windows . Simplemente me mantengo alejado de la carpeta Windows y la opción "agregar archivos de programa eliminados" es lo suficientemente buena para manejar la carpeta program files de Windows. Por supuesto, hay una carpeta llamada Users donde los usuarios (que no son administradores) pueden acceder solo a sus carpetas.

Así que hay una imagen clara en algún nivel en mi mente del sistema de archivos de Windows. En Ubuntu, cuando llego a la ubicación / , hay una enorme lista de carpetas, la mayoría de las cuales no tengo idea de qué contienen. La carpeta /bin parece ser el equivalente de la carpeta Windows en Windows. La carpeta /usr parece ser el equivalente de la carpeta Users en Windows. Pero incluso la carpeta /home parece que puede ajustarse a la factura.

Por favor entienda que entiendo, que Ubuntu (Linux) tiene un carácter diferente al de Windows, es decir, no necesita ser el equivalente exacto de las funciones de Windows, en Ubuntu. Todo lo que busco es una imagen un poco más clara del sistema de archivos de Ubuntu.

Esta pregunta es parte de una pregunta más grande que estoy dividiendo para que sea más responsable. La pregunta original se puede encontrar aquí:
enlace

    
pregunta Shashank Sawant 17.05.2012 - 20:12

6 respuestas

240

Puede leer sobre esto en, por ejemplo, wikipedia. Un extracto:

  

El Estándar de jerarquía del sistema de archivos (FHS) define los directorios principales y sus contenidos en los sistemas operativos Linux. En su mayor parte, es una formalización y extensión de la jerarquía tradicional del sistema de archivos BSD.

     

El FHS es mantenido por Linux Foundation, una organización sin fines de lucro que consiste en los principales proveedores de software y hardware, como HP, Red Hat, IBM y Dell.   La versión actual es 3.0, lanzada el 3 de junio de 2015.

Una representación visual con una breve descripción:

Básicamente, Linux ha dividido la estructura del directorio según la función de lo que se necesita para que el sistema sea lo más seguro posible con la cantidad mínima de permisos necesarios. De lo contrario, alguien tendrá que hacer una gran cantidad de trabajo evitable.

Recuerde que Unix y Linux se crearon como sistemas multiusuario y Windows se creó para un solo usuario. Todo lo demás puede explicarse a partir de esa idea. Puede explicar cada directorio al pensar que es multiusuario y de seguridad.

3 ejemplos:

  • Verá que los archivos y directorios que solo son admin están reunidos en el mismo directorio: s en /sbin y /usr/sbin y /usr/local/sbin representa el sistema. Un usuario normal ni siquiera puede iniciar programas que están allí. Los archivos que un usuario normal puede iniciar se encuentran en / bin, / usr / bin, / usr / local / bin en función de dónde debería residir lógicamente. Pero si solo son administradores, deberían ir a la versión s de ese directorio. Hay una utilidad famosa llamada fuser . Puedes matar procesos con eso. Si un usuario normal pudiera usar este (s), podría matar tu sesión.

  • Lo mismo aplica para /home : / home / user1 es propiedad de user1. / home / user2 es propiedad de user2. user2 no tiene nada que hacer en el hogar del usuario1 (y al revés también es cierto: user1 no tiene nada que hacer en el hogar del usuario2). Si todos los archivos estuvieran en / home sin ningún nombre de usuario debajo, tendría que otorgar permisos a cada archivo y evaluar si alguien puede escribir / eliminar esos archivos. Una pesadilla si tienes decenas de usuarios.

  • Adición de bibliotecas.

    /lib/ , /usr/lib/ y /usr/local/lib/ son las ubicaciones originales, desde antes de multilib sistemas existentes y existen para evitar romper cosas. /usr/lib32 , /usr/lib/64 , /usr/local/lib32/ , /usr/local/lib64/ son invenciones multilib de 32/64 bits.

No es un concepto estático de ninguna manera. Otros sabores de Linux hicieron ajustes a este diseño. Por ejemplo; actualmente verás Debian y Ubuntu cambiando mucho en el diseño del FHS desde SSD es mejor con archivos de solo lectura. Hay un movimiento hacia una nueva disposición donde los archivos se dividen en un directorio / grupo de 'solo lectura' y 'escribible' para que podamos tener una partición raíz que se pueda montar de solo lectura (partición para una ssd) y escribible (sata hdd). El nuevo directorio que se usa para esto (no en la imagen) es /run/ .

    
respondido por el Rinzwind 17.05.2012 - 20:18
95

Prueba este comando ...

man 7 hier

Espero que ayude

    
respondido por el Pritesh Wadhia 17.05.2012 - 21:58
37

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 - 19:18
36

El siguiente texto muestra la estructura del directorio.

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

Los principales componentes aquí son:

  1. /boot : contiene el gestor de arranque

  2. /home : contiene los directorios de inicio de los usuarios.

  3. /bin : todos los binarios ejecutables y comandos utilizados por todos los usuarios en el sistema se encuentran aquí.

  4. /sbin : contiene los archivos binarios ejecutables del sistema que suelen utilizar los administradores del sistema.

  5. /lib : contiene las bibliotecas del sistema que admiten los binarios en / bin y / sbin.

  6. /etc : contiene los archivos de configuración para la red, el tiempo de arranque, etc.

  7. /dev : Aquí se muestran los archivos del dispositivo, es decir, usb, dispositivo terminal o cualquier otro dispositivo conectado al sistema.

  8. /proc : contiene información sobre el proceso en ejecución.

  9. /tmp : este es el directorio temporal donde muchos procesos crean los archivos temporales requeridos. Esto se purga cada vez que se inicia la máquina.

Para obtener más detalles, el vínculo Thegeekstuff explica perfectamente el sistema de archivos genérico de Linux .

    
respondido por el mtk 17.05.2012 - 20:38
19

\Users es equivalente a /home . El nombre de /usr es un artefacto histórico.

El equivalente combinado de \Windows y \Program Files es la combinación de /bin , /boot , /etc , /lib , /sbin , /tmp , /usr y /var . Linux y Windows dividen el software instalado de manera diferente. Windows distingue entre el sistema operativo y los programas complementarios. Linux no hace esta distinción de la misma manera; la mayoría, si no, todo el software proviene de Ubuntu (el distribuidor) y está instalado en la misma jerarquía de directorios, y dado que el administrador de paquetes rastrea el software, no es necesario almacenar cada programa en su propio directorio. En Linux:

  • /etc es para archivos de configuración del sistema: archivos de configuración que afectan a todos los usuarios, ya sea que se apliquen al sistema operativo como un todo o a una aplicación específica.
  • /usr es para código de sistema y datos (programas, bibliotecas, documentación, etc.).
  • /var es para datos variables o temporales: archivos temporales, registros, bases de datos de administrador de paquetes, spools de impresora, archivos de guardado de juegos, etc. También hay /tmp para archivos temporales que se pueden borrar durante los reinicios.
  • /bin , /lib y /sbin en el directorio raíz tienen contrapartes en /usr . Los archivos que están fuera de /usr son los que se necesitan al principio del proceso de arranque. Esta es una reliquia de la época en que los discos eran pequeños y /usr podría estar en un sistema de archivos compartido entre varias estaciones de trabajo a través de la red, en realidad no es una distinción útil en la mayoría de los sistemas.
  • /boot contiene algunos archivos que solo se necesitan para iniciar el sistema operativo y no para el funcionamiento diario.

Hay directorios adicionales que no corresponden a nada que Windows tenga:

  • /root es el directorio de inicio del usuario raíz. El usuario raíz es una cuenta de administrador no vinculada a ningún usuario en particular; es el usuario al que cambia cuando ejecuta sudo . Ubuntu no permite que el usuario root inicie sesión por defecto.
  • /media y /mnt son puntos de montaje: es donde puedes ver los sistemas de archivos de otros sistemas operativos y unidades remotas. El equivalente de Windows es otras letras de unidad.
  • /proc y /sys muestran información del sistema. En Windows, debe navegar por los menús o llamar a los comandos del sistema o instalar programas de terceros para ver esta información.

Ubuntu, al igual que otras distribuciones de Linux, generalmente sigue el Estándar de jerarquía del sistema de archivos de Linux.

    
respondido por el Gilles 17.05.2012 - 20:48
5

Ubuntu (como todos los sistemas tipo UNIX) organiza los archivos en un árbol jerárquico, donde se piensa en las relaciones en equipos de niños y padres. Los directorios pueden contener otros directorios, así como archivos regulares, que son las "hojas" del árbol. Cualquier elemento del árbol puede ser referencias por un nombre de ruta; un nombre de ruta absoluto comienza con el carácter / (identificando el directorio raíz, que contiene todos los demás directorios y archivos), luego se enumera cada directorio secundario que debe atravesarse para llegar al elemento, cada uno separado por un signo /.

Un nombre de ruta relativo es uno que no comienza con /; en ese caso, el árbol de directorios se recorre comenzando desde un punto dado, que cambia según el contexto, llamado el directorio actual. En cada directorio, hay dos directorios especiales llamados. y .., que se refieren respectivamente al directorio mismo, y a su directorio padre.

El hecho de que todos los archivos y directorios tengan una raíz común significa que, incluso si hay varios dispositivos de almacenamiento diferentes en el sistema, todos se ven como directorios en algún lugar del árbol, una vez que están montados en el lugar deseado

Encuentre ejemplos y más información aquí :

    
respondido por el stephenmyall 17.05.2012 - 20:18

Lea otras preguntas en las etiquetas