Significado de directorios en Unix y sistemas similares a Unix

112

He estado usando Linux durante un par de años, pero todavía no he descubierto cuál es el origen o el significado de algunos de los nombres de directorio en sistemas Unix y Unix. Por ejemplo, ¿qué significa etco var? ¿De dónde optviene el nombre?

Y mientras estamos en el tema de todos modos. ¿Alguien puede dar una explicación clara de qué directorio se utiliza mejor para qué? A veces me confundo dónde está instalado cierto software o cuál es el directorio más apropiado para instalar el software.

Luke
fuente
Lo divertido es que Unix sea una parodia de los multics y sea el que sobreviva ... Supongo que los multics se adelantaron a su tiempo.
SparK

Respuestas:

134

Para obtener más información sobre el diseño de los sistemas de archivos de Linux, consulte el Estándar de jerarquía del sistema de archivos (ahora en la versión 2.3, con la versión beta 3.0 implementada en las distribuciones más recientes). Explica algunos de dónde provienen los nombres:

  • / bin - Bin aries.
  • / boot : archivos necesarios para el arranque .
  • / dev - Dev archivos de hielo.
  • / etc - Et c etera . El nombre se hereda de los primeros Unixes, que es cuando se convirtió en el lugar para colocar los archivos de configuración.
  • / home : dondese guardan los directorios de inicio .
  • / lib : dondese guardan loscódigos lib raries.
  • / media : un directorio más moderno, pero dondese montan los medios extraíbles.
  • / mnt - Donde sistemas de archivos temporales son m ou nt ed.
  • / opt : dondeestá instalado el software adicional opcional . Esto es discreto/usr/local/por razones que trataré más adelante.
  • / run : dondese guardan los datos variables de tiempo de ejecución .
  • / sbin - donde s uper- bin aries se almacenan. Estos generalmente solo funcionan con root.
  • / srv : significa " s e rv e". Este directorio está destinado a archivos estáticos que se sirven. /srv/httpsería para sitios web estáticos,/srv/ftppara un servidor FTP.
  • / tmp - Donde T e mp archivos orary se pueden almacenar.
  • / usr - Otro directorio heredado del Unix de edad, que es sinónimo de " U NIX S istema R ecursos". No , no significan "usuario" (ver el wiki de Debian ). Este directorio debe ser compartido entre hosts y puede montarse NFS en múltiples hosts de forma segura. Se puede montar de solo lectura de forma segura.
  • / var - Otro directorio heredado del Unix de edad, que significa " var iable". Aquí es donde se pueden almacenar los datos del sistema que varían. Aquí se pueden encontrar cosas como directorios de cola y caché. Si un programa necesita escribir en el sistema de archivos local y no está sirviendo esos datos a alguien directamente, irá aquí.

/ opt vs / usr / local

La regla general que he visto se describe mejor como:

Úselo /usr/localpara cosas que normalmente entrarían /usr, o que anulan cosas que ya están adentro /usr. Úselo /optpara cosas que instalen todo en un directorio, o que de otra manera sean especiales.

sysadmin1138
fuente
2
El documento responde muy bien a la primera mitad de mi pregunta. Sin embargo, de dónde se derivan los nombres sigue siendo un misterio. La razón por la que me gustaría saber es porque creo que me dará más contexto.
Lucas
El nombramiento se explica casi por completo. Especialmente si lees las descripciones en ese enlace.
Dan Carley
3
No, no lo es. Explica para qué se usa 'etc', pero no explica de dónde viene el nombre o lo que significa.
Lucas
@ sysadmin1138, ¿entonces /runbásicamente hace referencia a la RAM?
Pacerier
@Pacerier Es un sistema de archivos, pero puede montarse de forma segura como un disco RAM. Dicho esto, muchos programas asumen una estructura establecida allí, por lo que en realidad requieren persistencia.
sysadmin1138
22

Históricamente, /etcsignifica "etcétera" y /vares la abreviatura de "variable". Supongo que lo primero se debe a que entra una gran colección de archivos de configuración del sistema no relacionados /etc. Esto último se debe a que /varse espera que los archivos cambien. A menudo puede montar /usry /solo lectura (excepto cuando realiza actualizaciones), pero nunca puede montar /varsolo lectura. Contiene archivos de registro del sistema, archivos de bloqueo, archivos de cola y otras cosas que cambian dinámicamente.

Otras personas te dieron consejos para ayudarte a descubrir qué es lo mejor para cada lugar.

Eddie
fuente
22

Lamento resucitar un hilo antiguo, pero creo que este detalle es una aclaración importante para todos los futuros buscadores de esta información:

  • / opt significa opcional (como en los paquetes de complementos opcionales).
  • / bin significa binario (contiene ejecutables utilizados por el sistema operativo).
  • / lib significa biblioteca (contiene bibliotecas compartidas utilizadas por el sistema de archivos y para el arranque, probablemente utilizado por los ejecutables en bin)
  • / proc significa procesos.
  • / root significa usuario root.
  • / home contiene los subdirectorios de inicio para cualquier usuario no root.
  • / dev significa dispositivo (contiene archivos especiales y de dispositivo).
  • / tmp significa temporal.
  • / srv significa servir.
  • / mnt significa punto de montaje (monte un sistema de archivos temporal aquí).
  • / include contiene archivos #include, es decir, archivos de encabezado (por ejemplo, stdio.h).
  • / var significa variable
  • / etc significa etcetera

  • / usr significa recursos del sistema Unix ( fuente )

Miguel
fuente
Buena respuesta: sucinta, dirigida al nivel de la pregunta, y no es necesario buscar otros enlaces. +1
Scott Biggs
No he visto srv antes. Prefiero la convención sobre la configuración, siempre que tenga sentido y se aplique. Obviamente, Apache no siempre sirve archivos del directorio / srv.
user148298
19

Prueba esto:

$ man hier
Anónimo
fuente
1
Buena esa. Sin embargo, al igual que el documento mencionado en otras respuestas, esta página de manual solo habla sobre para qué se utilizan los directorios. También estoy interesado en por qué ciertos nombres fueron elegidos, como / etc, por ejemplo
Lucas
2
La respuesta a su pregunta sobre / etc está aquí: en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
Anónimo
1

Si observa varios sabores del sistema operativo Unix, encontrará algunas diferencias en los nombres de directorio, pero la mayoría de los comunes se explican a continuación ...

/ bin significa binario (contiene archivos binarios y también contiene comandos utilizados principalmente por los usuarios. También es la ruta predeterminada para la ejecución de comandos).

/ sbin (contiene los comandos especiales que generalmente son activados por el superusuario)

/ lib significa biblioteca (contiene bibliotecas compartidas utilizadas por el sistema de archivos y para el arranque, probablemente utilizado por los ejecutables en bin) / proc significa procesos (si desea verificar simplemente verifique este director, contendrá varios directorios nombrados en números aleatorios, que son nada más que el número de proceso que puede verificar mediante ps - ef)

/ root significa usuario root. (directorio predeterminado para el usuario root) / home (todos los usuarios que no son root tienen allí el directorio home en este directorio) / dev significa dispositivo (contiene archivos especiales y de dispositivo, si busca en este directorio a través de ls - l los números mayores y menores del comando también se muestran en este directorio, también el tipo de dispositivo que se muestra al comienzo de cada línea en ls - l. B significa dispositivo especial de bloque, c significa dispositivo especial de caracteres). / tmp significa temporal (los recursos temporales necesarios para algún proceso se mantienen aquí temporalmente) / mnt significa punto de montaje (monte un sistema de archivos temporal aquí). / var significa variable (contiene datos variables, el directorio que contiene cambia de tamaño cada vez) / opt significa opcional (generalmente, el software de terceros está instalado en este directorio). / usr significa Recursos del sistema Unix.

Anwar khan
fuente