Viniendo del mundo de Windows, he encontrado la mayoría de la carpeta nombres de directorios para ser bastante intuitivos:
-
\Program Filescontiene 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 Datacontiene datos específicos de la aplicación -
\Users\USER\Documentscontiene documentos pertenecientes al usuario
-
-
\Windowscontiene archivos que pertenecen al funcionamiento del propio Windows-
\Windows\Fontsalmacena archivos de fuentes (¡sorpresa!) -
\Windows\Tempes 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:
-
/bincontiene 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? -
/mediacontiene 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? -
/homecontiene 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é/rootsigue estando separado, aunque sea un usuario con archivos y configuraciones? -
/libcontiene 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,/procy/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.