De esta forma los archivos personales y de configuración quedan perfectamente clasificados por usuario.
Normalmente el directorio /home reside un una partición propia, ya que de este modo podremos reinstalar nuestro sistema operativo sin perder nuestros datos personales y manteniendo la configuración antigua.
Dentro del directorio /home encontraremos los directorios principales del usuario: Descargas, Desktop, Imágenes, Música, etc.
Directorio /lib
El directorio /lib es un directorio estático y que puede ser compartible. Este directorio contiene bibliotecas compartidas que son necesarias para arrancar los ejecutables que se almacenan en los directorios /bin y /sbin.
Este directorio también contiene módulos del kernel y controladores de drivers que son necesarios durante el inicio del sistema y durante el funcionamiento del sistema operativo.
Directorio /mnt
El directorio /mnt tiene la finalidad de albergar los puntos de montaje de los distintos dispositivos de almacenamiento como por ejemplo discos duros externos, particiones de unidades externas, etc.
Los medios montados en esta carpeta pueden ser tanto estáticos como variables y por norma general son compartibles.
La función del directorio /media es similar a la del directorio /mnt. Este directorio contiene los puntos de montaje de los medios extraíbles de almacenamiento como por ejemplo memorias USB, lectores de CD-ROM, unidades de disquete, etc.
En el directorio /media también podemos montar sin ningún tipo de problema medios que montaríamos en el directorio /mnt.
Directorio /opt
El contenido almacenado en el directorio /opt es estático y compartible. La función de este directorio es almacenar programas que no vienen con nuestro sistema operativo como por ejemplo Spotify, Google-earth, Google Chrome, Teamviewer, etc.
Como es un directorio compartible los programas presentes en esta carpeta pueden ser usados por todos los usuarios del sistema operativo.
La función de este directorio es muy similar a la del directorio /usr/local, pero a diferencia de la carpeta /usr/local en /opt se instalan programas que no siguen los estándares para almacenar su contenido en la carpeta /usr.
Directorio /proc
El directorio /proc se trata de un sistema de archivos virtual. Este sistema de archivos virtual nos proporciona información acerca de los distintos procesos y aplicaciones que se están ejecutando en nuestro sistema operativo.
Para cada uno de los procesos en marcha existe un subdirectorio dentro de la carpeta /proc. Dentro del subdirectorio es donde se almacena esta información.
Como curiosidad decir que la totalidad del contenido almacenado en la carpeta /proc no está almacenado en nuestro disco duro. El contenido de este directorio está almacenado en la memoria RAM y el mismo sistema operativo es quien crea y borra el contenido de la carpeta /proc.
Directorio /root
El directorio /root se trata de un directorio variable no compartible. El directorio /root es el directorio /home del administrador del sistema (usuario root).
Directorio /sbin
El directorio /sbin se trata de un directorio estático y compartible. Su función es similar al directorio /bin, pero a diferencia del directorio /bin, el directorio /sbin almacena archivos binarios/ejecutables que solo puede ejecutar el usuario root o administrador del sistema.
Los archivos incluidos en el directorio /sbin son aquellos que son primordiales para el arranque, restauración y reparación del sistema operativo. Algunos de los archivos ejecutables almacenados en este directorio son fsck, init, reboot, shutdown, fastboot, etc.
Otros directorios que contienen programas y binarios para la administración del sistema son el /usr/bin y el /usr/local/sbin.
Directorio /srv
El directorio /srv se usa para almacenar directorios y datos que usan ciertos servidores que podamos tener instalados en nuestro ordenador.
Algunos de los servidores que almacenan datos en el directorio /srv son:
- Servidor web apache en el directorio /srv/www.
- Cualquier servidor ftp en la ubicación /srv/ftp.
- Un servidor CVS.
- Etc.
Directorio /tmp
El directorio /tmp es es donde se crean y se almacenan los archivos temporales y las variables que los programas puedan funcionar de forma adecuada.
Generalmente los sistemas operativos vacían el directorio /tmp cada vez que reiniciamos el ordenador. En el caso que no sea así es recomendable vaciar cada cierto el contenido de esta carpeta.
Directorio /usr
El directorio /usr es un directorio compartido y estático. Este directorio es el que contiene la gran mayoría de programas instalados en nuestro sistema operativo.
Todo el contenido almacenado en la carpeta /usr es accesible para todos los usuarios y su contenido es solo de lectura.
El directorio /usr contiene una serie de subdirectorios que acostumbran a almacenar la siguiente información:
/usr/bin: Subdirectorio que almacena los archivos ejecutables del software que tenemos almacenado en nuestro ordenador.
/usr/include: Subdirectorio que incluye la totalidad de archivos de cabecera que necesita el software instalado en nuestro sistema operativo para que funcione de forma adecuada.
/usr/lib: Subdirectorio que incluye bibliotecas compartidas y ficheros binarios que únicamente pueden ser ejecutados por el administrador del sistema.
/usr/local: GNU-Linux es un sistema operativo diseñado para ser usado en entornos de red. Por lo tanto es posible que el directorio /usr no esté instalado localmente en nuestro y esté en un servidor. En estos casos existe el directorio /usr/local que está destinado a alojar los programas que instala localmente el administrador del sistema. Este directorio está protegido de las actualizaciones automáticas de todo el sistema operativo y tiene una estructura de directorios muy similar a la del directorio /usr.
/usr/sbin: Directorio que contiene archivos binarios para la administración del nuestro equipo no esenciales para el proceso de arranque ni para reparar el ordenador. Estos archivos binarios almacenados en la carpeta /usr/sbin solamente pueden ser usados por el administrador del sistema. Algunos de estos archivos binarios no críticos para administrar el sistema operativo pueden ser por ejemplo varios demonios para diversos servicios de red, xcalib para calibrar el color de nuestro monitores, etc.
/usr/share: En el directorio /usr/share encontramos archivos de texto compartibles que son independientes de la arquitectura del sistema operativo. En este directorio podemos encontrar por ejemplo los archivos de ayuda como por ejemplo los documentos info y las páginas de man, ficheros de configuración, imágenes, iconos, themes, etc.
/usr/src: En el directorio /usr/src normalmente encontramos el código fuente de algunas aplicaciones y del kernel que tenemos instalado en nuestro sistema operativo.
Directorio /var
El directorio /var contiene archivos de datos variables y temporales como por ejemplo los registros del sistema (logs), los registros de programas que tenemos instalados en el sistema operativo, archivos spool, etc.
La principal función del directorio /var es la detectar problemas y solucionarlos. Se recomienda ubicar el directorio /var en una partición propia, y en caso de no ser posible es recomendable ubicarlo fuera de la partición raíz.
Algunos de los subdirectorios importantes que están dentro de la carpeta /var son los siguientes:
/var/cache: Subdirectorio pensado para almacenar datos de aplicaciones en modo cache. Un ejemplo de lo que acabo de citar es apt-get. En el momento de instalar una aplicación con apt-get se almacena una copia del paquete binario instalado en la ubicación /var/cache/apt/archives/. Así en el caso que desinstalaramos el programa y quisiéramos volver instalarlo no seria necesario descargar el fichero binario de nuevo y la instalación seria inmediata.
/var/lib: En este subdirectorio encontramos información sobre el estado de las aplicaciones. Este directorio también contiene bases de datos del sistema.
/var/lock: Directorio en el que se hallan los archivos de bloqueo que crean ciertos programas. La función de los archivos de bloqueo creados por algunos programas, como por ejemplo un servidor web, es evitar que ciertos recursos sean usados por otros programas que no sean el propio servidor web. En el momento de cerrar la aplicación que ha generado el archivo de bloqueo, el archivo de bloqueo desaparece.
/var/log: En el directorio /var/log se encuentran de forma clasificada gran parte de los registros de nuestros programas y del sistema operativo. Este directorio es muy importante ya que en caso de problemas, el administrador del sistema lo puede consultar para intentar averiguar la causa del problema. Los log o registros se encuentran perfectamente clasificados, así por lo tanto si queremos consultar los registros generados por el kernel tendremos que consultar el archivo /var/log/messages, si queremos consultar los accesos a nuestro sistema operativo podemos consultar el archivo /var/log/wtmp, etc.
/var/mail: Directorio en el que se ubican los archivos de correo electrónico de cada uno de los usuarios del servidor de mail. También es posible ubicar nuestros archivos de correo electrónico en la partición /home.
/var/opt: En el directorio /var/opt se almacenan datos variables que utilizan los programas instalados en la ubicación /opt.
/var/run: El directorio /var/run contiene información de la sesión que estamos ejecutando. Ejemplos de la información que contienen los archivos de esta carpeta son los demonios que están en ejecución, los usuarios que están logueados, los procesos que están activos, etc.
/var/spool: Directorio que almacena archivos que controlan la tareas pendientes de realizar. Así por ejemplo en el directorio /var/spool/cups encontraremos los archivos que gestionan los trabajos de impresión en espera, en el directorio /var/spool/cron encontraremos los archivos que gestionan las tareas planificadas pendientes de ejecutar, etc.
/var/tmp: Directorio que al igual que el directorio /tmp contiene archivos temporales. La principal diferencia entre los directorios /var/tmp y /tmp es que los archivos temporales ubicados en la carpeta /tmp se acostumbran a borrar automáticamente entre sesiones o reinicios del sistema, mientras que los archivos temporales ubicados en el directorio /var/tmp no lo hacen.
Directorio /sys
Directorio que contiene información similar a la del directorio /proc. Dentro de esta carpeta podemos encontrar información estructurada y jerárquica acerca del kernel de nuestro equipo, de nuestras particiones y sistemas de archivo, de nuestros drivers, etc.
Directorio /lost+found
Directorio que se crea en las particiones de disco con un sistema de archivos ext después ejecutar herramientas para restaurar y recuperar el sistema operativo como por ejemplo fsch.
Si nuestro sistema no ha presentado problemas este directorio estará completamente vacío. En el caso que hayan habido problemas este directorio contendrá ficheros y directorios que han sido recuperados tras la caída del sistema operativo.
Resumen de los principales directorios en Linux
Directorio raíz (/):
- Es el directorio superior de la estructura del sistema de archivos.
- Contiene todos los demás directorios y archivos.
- Todos los caminos en Linux se expresan en relación al directorio raíz.
/bin:
- Contiene los comandos esenciales del sistema accesibles para todos los usuarios.
- Los comandos ubicados aquí son necesarios para el funcionamiento básico del sistema, como ls, cp, mv, etc.
/boot:
- Almacena los archivos relacionados con el arranque del sistema.
- Contiene el núcleo del sistema operativo (kernel) y otros archivos de configuración para el arranque.
/dev:
- Contiene los archivos especiales (dispositivos) utilizados para interactuar con hardware y dispositivos del sistema.
- Los dispositivos de entrada y salida, como teclados, discos duros y terminales, se representan como archivos en este directorio.
/etc:
- Contiene archivos de configuración del sistema y aplicaciones.
- Incluye archivos como passwd (información de usuarios), hosts (configuración de red), fstab (tablas de montaje de dispositivos), entre otros.
/home:
- Contiene los directorios personales de los usuarios.
- Cada usuario tiene su propio directorio para almacenar sus archivos personales y configuraciones.
/lib:
- Contiene bibliotecas compartidas necesarias para el sistema y los programas instalados.
- Las bibliotecas son conjuntos de funciones que se utilizan comúnmente por múltiples programas.
/media:
- Punto de montaje temporal para dispositivos extraíbles, como CD/DVD-ROM, unidades USB, etc.
- Los dispositivos se montan automáticamente en subdirectorios de /media cuando se conectan.
/mnt:
- Punto de montaje para montar temporalmente sistemas de archivos adicionales.
- Se utiliza para montar otros sistemas de archivos, como particiones de disco adicionales o sistemas de archivos de red.
/opt:
- Contiene paquetes de software opcionales o adicionales.
- Algunas aplicaciones de terceros pueden instalarse en este directorio.
/sbin:
- Almacena comandos del sistema relacionados con la administración y configuración.
- Estos comandos generalmente están destinados a ser utilizados por el administrador del sistema.
/tmp:
- Directorio temporal para archivos y datos que se requieren solo durante una sesión o tarea.
- Los archivos en /tmp se eliminan automáticamente al reiniciar el sistema.
/usr:
- Contiene subdirectorios que albergan los componentes y archivos del sistema no esenciales para el arranque.
- Incluye programas, bibliotecas, archivos de documentación, fuentes y más.
/var:
- Almacena datos variables y archivos cambiantes generados por el sistema o los usuarios.
- Incluye registros del sistema, archivos de bases de datos, correos electrónicos, cachés y otros datos en constante cambio.
Estos son solo algunos de los directorios clave en la estructura del sistema de archivos en Linux. Cada uno desempeña un papel esencial en la organización y funcionamiento del sistema, facilitando la administración de archivos, la configuración del sistema y el almacenamiento de datos.
Tipos de sistemas de archivos en Linux:
Existen varios sistemas de archivos populares en Linux, entre ellos se encuentran Ext4, XFS, Btrfs, y otros. A continuación, se presentan algunos de estos sistemas de archivos junto con sus ventajas, desventajas y consideraciones al elegir uno para diferentes casos de uso:
Ext4 (Fourth Extended File System):
Ventajas:
- Es compatible con la mayoría de las distribuciones de Linux.
- Ofrece un buen rendimiento en la mayoría de los casos de uso.
- Es estable y maduro, con amplia compatibilidad y soporte.
Desventajas:
- No es adecuado para sistemas de archivos extremadamente grandes (mayor a 16 TB).
- La recuperación de datos después de fallos graves puede ser más difícil.
Consideraciones:
- Ext4 es una elección sólida y confiable para sistemas Linux estándar, especialmente para particiones de tamaño moderado.
XFS (X File System):
Ventajas:
- Excelente rendimiento en sistemas con grandes volúmenes de datos y archivos.
- Soporta volúmenes de gran tamaño (hasta 8 exabytes).
- Ofrece recuperación rápida después de caídas inesperadas.
Desventajas:
- No es compatible con todas las distribuciones de Linux de forma predeterminada.
- No es recomendado para particiones pequeñas debido al uso de espacio en disco para estructuras de metadatos.
Consideraciones:
- XFS es una opción sólida para servidores de almacenamiento, sistemas de archivos de alto rendimiento y grandes volúmenes de datos.
Btrfs (B-Tree File System):
Ventajas:
- Proporciona características avanzadas como instantáneas (snapshots) y administración de múltiples dispositivos.
- Soporta volúmenes de gran tamaño y capacidad de expansión.
- Tiene autoreparación y detección de errores integrada.
Desventajas:
- Puede haber problemas de estabilidad y compatibilidad en algunas distribuciones de Linux.
- Aunque ha mejorado con el tiempo, aún puede tener algunas limitaciones en comparación con los sistemas de archivos más establecidos.
Consideraciones:
- Btrfs es una opción interesante para aquellos que buscan características avanzadas, como instantáneas y administración de dispositivos, y están dispuestos a asumir cierto nivel de riesgo y experimentación.
Escoger un sistema de archivos en Linux
Al elegir un sistema de archivos en Linux, considera las siguientes consideraciones generales:
- Tamaño y capacidad requeridos para el sistema de archivos.
- Rendimiento y carga de trabajo esperada (lectura/escritura, acceso concurrente).
- Disponibilidad y compatibilidad en la distribución de Linux utilizada.
- Necesidades de características avanzadas, como instantáneas o administración de múltiples dispositivos.
- Nivel de estabilidad y madurez requeridos.
Es importante investigar y evaluar cuidadosamente las características y limitaciones de cada sistema de archivos antes de tomar una decisión, para asegurarse de seleccionar el más adecuado para el caso de uso específico y las necesidades del sistema.
Herramientas y utilidades para la gestión del sistema de archivos:
Aquí tienes algunas herramientas y utilidades útiles para la gestión del sistema de archivos en Linux:
Comandos útiles:
- «find»: Permite buscar archivos y directorios en el sistema de archivos en función de diversos criterios como nombre, tamaño, fecha de modificación, entre otros.
- «grep»: Utilizado para buscar patrones de texto dentro de archivos o la salida de otros comandos. Es útil para encontrar información específica dentro de archivos de registro o resultados de comandos.
- «du»: Muestra el uso de espacio en disco de archivos y directorios, lo que te permite identificar los que ocupan más espacio.
Montaje y desmontaje de sistemas de archivos:
- «mount»: Permite montar un sistema de archivos en un directorio específico. Puedes usar opciones adicionales para controlar el comportamiento del montaje, como establecer permisos o ajustar el modo de acceso.
- «umount»: Utilizado para desmontar un sistema de archivos previamente montado. Asegúrate de desmontar correctamente antes de desconectar el dispositivo de almacenamiento.
Verificación y reparación de sistemas de archivos con fsck:
- «fsck» (File System Consistency Check): Es una herramienta para verificar y reparar sistemas de archivos. Puede escanear y corregir errores en la estructura del sistema de archivos, como inodos dañados o bloques de datos incorrectos. La sintaxis exacta y las opciones pueden variar según el sistema de archivos específico.
Estas son solo algunas de las herramientas y utilidades disponibles para la gestión del sistema de archivos en Linux. Hay muchas más herramientas y comandos disponibles dependiendo de tus necesidades específicas y del sistema de archivos que estés utilizando. Puedes explorar la documentación y los recursos relacionados con tu distribución de Linux para obtener más información y opciones específicas.
Búsqueda de archivos en Linux
En Linux, existen varios comandos que puedes utilizar para buscar archivos en el sistema. A continuación, te explico los principales comandos de búsqueda y ejemplos de cómo utilizarlos:
find:
- Sintaxis:
find <directorio> <opciones> <expresión>
- Ejemplo:
find /home -name "*.txt"
- Descripción: Encuentra archivos y directorios en un directorio específico y sus subdirectorios basándose en diferentes criterios, como el nombre del archivo, tamaño, fecha de modificación, etc.
locate:
- Sintaxis:
locate <patrón>
- Ejemplo:
locate myfile.txt
- Descripción: Busca archivos en una base de datos de índice pregenerada. Es más rápido que el comando «find» pero puede no ser tan preciso si la base de datos no está actualizada.
grep:
- Sintaxis:
grep <patrón> <archivo>
- Ejemplo:
grep "keyword" file.txt
- Descripción: Busca un patrón de texto en un archivo o en la salida de otro comando. Es útil para buscar contenido específico dentro de archivos de texto.
find + grep:
- Sintaxis:
find <directorio> -type f -exec grep -H <patrón> {} +
- Ejemplo:
find /var/log -type f -exec grep -H "error" {} +
- Descripción: Combina el comando «find» con el comando «grep» para buscar archivos que contengan un patrón específico. En este ejemplo, busca archivos dentro del directorio /var/log que contengan la palabra «error».
Estos son solo algunos de los comandos más utilizados para buscar archivos en Linux. Cada uno tiene su propia sintaxis y opciones adicionales que puedes explorar en la documentación del comando correspondiente. Además, ten en cuenta que puedes ajustar y combinar estos comandos según tus necesidades para realizar búsquedas más complejas y específicas.
Ver detalles de un archivo en Linux
En Linux, puedes ver los detalles de un archivo, como sus atributos, permisos, propietario, fecha de creación y modificación, entre otros, utilizando diferentes comandos. A continuación, te muestro algunos comandos comunes para ver los detalles de un archivo:
Comando ls:
- Sintaxis:
ls -l <archivo>
- Ejemplo:
ls -l myfile.txt
- Descripción: Muestra los detalles de un archivo en formato de lista larga. Esto incluye permisos, propietario, grupo, tamaño, fecha de modificación y nombre del archivo.
Comando stat:
- Sintaxis:
stat <archivo>
- Ejemplo:
stat myfile.txt
- Descripción: Proporciona información detallada sobre un archivo, incluyendo el tamaño, el número de inodo, los permisos, el propietario, el grupo, las fechas de acceso, modificación y cambio, y más.
Comando file:
- Sintaxis:
file <archivo>
- Ejemplo:
file myfile.txt
- Descripción: Muestra información sobre el tipo de archivo, como texto, imagen, archivo ejecutable, etc.
Comando lsattr:
- Sintaxis:
lsattr <archivo>
- Ejemplo:
lsattr myfile.txt
- Descripción: Muestra los atributos extendidos de un archivo, que son atributos adicionales más allá de los permisos estándar, como inmutabilidad, no escritura, compresión, etc.
Estos son solo algunos de los comandos más utilizados para ver los detalles de un archivo en Linux. Cada uno proporciona información diferente y puedes elegir el más adecuado según tus necesidades. Explora las opciones y la documentación de cada comando para obtener más detalles y opciones específicas.
Ver archivos ocultos en Linux
En Linux, los archivos ocultos son aquellos cuyos nombres comienzan con un punto (.) en su nombre. Estos archivos se ocultan de forma predeterminada en los navegadores de archivos gráficos, pero se pueden visualizar utilizando los siguientes métodos:
Navegador de archivos gráfico:
- Abre el explorador de archivos de tu entorno de escritorio, como Nautilus (GNOME), Dolphin (KDE) o Files (Pantheon).
- En la barra de menú, busca una opción como «Ver» o «Mostrar» y selecciona «Mostrar archivos ocultos» o «Ver archivos ocultos».
- Los archivos ocultos ahora deberían aparecer en el explorador de archivos con un punto al principio de su nombre.
Comando ls:
- Utiliza el comando
ls -a
para mostrar todos los archivos, incluidos los ocultos. - La opción
-a
muestra todos los archivos, incluidos los que comienzan con un punto.
Comando nautilus:
- Utiliza el comando
nautilus
para abrir el navegador de archivos gráfico Nautilus con privilegios de usuario actual. - El navegador de archivos mostrará los archivos ocultos.
Comando dolphin:
- Utiliza el comando
dolphin
para abrir el navegador de archivos gráfico Dolphin con privilegios de usuario actual. - El navegador de archivos mostrará los archivos ocultos.
Estos métodos te permitirán ver los archivos ocultos en Linux y acceder a ellos. Recuerda que los archivos ocultos suelen contener configuraciones y archivos importantes del sistema, por lo que es recomendable tener precaución al manipularlos y no eliminarlos a menos que sepas exactamente lo que estás haciendo.