Viniendo del mundo de Windows, he encontrado la mayoría de la carpeta nombres de directorios para ser bastante intuitivos:
-
\Program Files
contiene archivos usados por programas (¡sorpresa!) -
\Program Files (x86)
contiene archivos utilizados por programas de 32 bits en sistemas operativos de 64 bits -
\Users
(anteriormenteDocuments and Settings
) contiene los archivos de los usuarios, es decir, documentos y configuraciones-
\Users\USER\Application Data
contiene datos específicos de la aplicación -
\Users\USER\Documents
contiene documentos pertenecientes al usuario
-
-
\Windows
contiene archivos que pertenecen al funcionamiento del propio Windows-
\Windows\Fonts
almacena archivos de fuentes (¡sorpresa!) -
\Windows\Temp
es un directorio temporal global
-
etcétera. Incluso si no tuviera idea de lo que hacían estas carpetas, podía adivinar con bastante precisión por sus nombres.
Ahora estoy echando un buen vistazo a Linux y estoy bastante confundido acerca de cómo orientarme en el sistema de archivos.
Por ejemplo:
-
/bin
contiene binarios. Pero también/sbin
,/usr/bin
,/usr/sbin
, y probablemente más que no conozco. ¿¿Cual es cual?? ¿Cuál es la diferencia entre ellos? Si quiero hacer un binario y ponerlo en algún lugar de todo el sistema, ¿dónde lo pongo? -
/media
contiene sistemas de archivos de medios externos. Pero también/mnt
. Y ninguno de ellos contiene nada en mi sistema en este momento; todo parece estar en/dev
. ¿Cual es la diferencia? ¿Dónde están las otras particiones en mi disco duro, comoC:
yD:
que estaban en Windows? -
/home
contiene los archivos de usuario y la configuración. Eso es intuitivo, pero luego, lo que se supone que debe entrar en/usr
? ¿Y por qué/root
sigue estando separado, aunque sea un usuario con archivos y configuraciones? -
/lib
contiene bibliotecas compartidas, como archivos DLL. Pero también/usr/lib
. ¿Cuál es la diferencia? -
Qué es
/etc
? ¿Realmente significa "etcétera", o algo más? ¿Qué tipos de archivos deben ir allí, globales o locales? ¿Es un cajón de sastre para las cosas que nadie sabía dónde poner, o hay un caso de uso particular para ello? -
¿Qué son
/opt
,/proc
y/var
? ¿Qué representan y para qué sirven? No he visto nada parecido en Windows*, y simplemente no puedo entender para qué podrían ser.
Si alguien puede pensar en otros lugares estándar que podría ser bueno conocer, siéntase libre de agregarlo a la pregunta; Espero que esto pueda ser una buena referencia para personas como yo, que están empezando a familiarizarse con los sistemas *nix.
*Vale, eso es mentira. He visto cosas similares en WinObj, pero obviamente no de forma regular. Sin embargo, todavía no sé qué hacen estos en Linux.
Respuesta aceptada:
Las distribuciones de Linux usan FHS:http://www.pathname.com/fhs/pub/fhs-2.3.html
También puedes probar man hier
.
Intentaré resumir las respuestas a sus preguntas de la parte superior de mi cabeza, pero le sugiero enfáticamente que lea el FHS:
- /bin es para archivos binarios del sistema que no son superusuarios
- /sbin es para archivos binarios del sistema de superusuario (raíz)
- /usr/bin y /usr/sbin son para binarios no críticos compartidos no superusuario o superusuario, respectivamente
- /mnt es para montar temporalmente una partición
- /media es para montar muchos medios extraíbles a la vez
- /dev contiene los archivos del dispositivo del sistema; es una larga historia 🙂
- La carpeta /usr y sus subcarpetas se pueden compartir con otros sistemas para que tengan acceso a los mismos programas/archivos instalados en un solo lugar. Dado que /usr generalmente se encuentra en un sistema de archivos separado, no contiene archivos binarios que sean necesarios para poner el sistema en línea.
- /root está separado porque puede ser necesario poner el sistema en línea sin montar otros directorios que pueden estar en particiones/discos duros/servidores separados
- Sí, /etc significa "etcétera". Los archivos de configuración para el sistema local se almacenan allí.
- /opt es un lugar donde puedes instalar programas que descargas/compilas. De esa manera, puede mantenerlos separados del resto del sistema, con todos los archivos en un solo lugar.
- /proc contiene información sobre el kernel y los procesos en ejecución
- /var contiene archivos de tamaño variable como registros, correo, páginas web, etc.
Para acceder a un sistema, generalmente no necesita /var, /opt, /usr, /home; algunos de los directorios potencialmente más grandes en un sistema.
Uno de mis favoritos, que algunas personas no usan, es /srv. Es para datos que se alojan a través de servicios como http/ftp/samba. He visto que /var se usa mucho para esto, lo cual no es realmente su propósito.