Documente Academic
Documente Profesional
Documente Cultură
04 LTS
Para visualizar la estructura de carpetas y archivos del sistema se usan los diversos
“Administradores de Archivos”, entre ellos: Archivos, Caja, Nautilus, Pcmanfm, Krusader, Ranger,
Dolphin, etc. En nuestro caso usamos Pcmanfm:
Nótese que estamos en la raíz del sistema de archivos identificada por “/” y por debajo de la raíz se
despliegan todas las carpetas y archivos del panel.
Comentemos cada una de las partes relevantes de esta estructura de archivos.
/ (raíz)
Es el primer y único directorio localizado en el nivel superior del árbol de archivos, es decir; es el
nivel más alto dentro de toda la estructura de directorios. Cualquier ruta de una carpeta o archivo en
Ubuntu, empieza por “/” seguida de los directorios y subdirectorios que lo contienen, dicho de otro
modo; toda la ruta que va desde “/” hasta la carpeta o archivo buscado.
De la raíz “/” cuelgan todo el resto de carpetas, archivos, particiones, dispositivos, etc. esto se crea
durante la instalación de la distro, razón por la cual, durante la instalación seleccionamos la
Partición raíz y el punto de montaje /
/boot (arranque)
Aquí encontramos los archivos necesarios para el arranque o inicio del sistema, desde los archivos
de configuración del Grub, hasta el propio kernel del sistema
En este directorio también se encuentran los archivos utilizados por el gestor de arranque Grub, y
son utilizados antes de que el kernel empiece a dar las órdenes de ejecución de los diferentes
módulos del sistema
El directorio /boot puede estar en una partición o disco diferente del directorio /raíz, en ese caso es
importante tener previsto el espacio que le vayamos a dar a la partición, porque debido a las futuras
actualizaciones del Kernel nos podemos quedar sin espacio, en esa situación, tendremos que hacer
limpieza de las versiones antiguas.
/bin (binarios)
Es donde se almacenan todos los archivos binarios que permiten el funcionamiento de las funciones
básicas a nivel de usuario. Por ejemplo: aplicaciones binarias de comando, esenciales y disponibles
para que cualquier usuario pueda ejecutarlos, así como el código binario de los programas y los
ejecutables de los programas propios del sistema operativo.
Los binarios son los ejecutables de Linux, y son preinstalados por el sistema. No existen
subdirectorios en /bin
En el directorio /bin se incluye también los binarios que permiten la ejecución de varias utilidades
estándar de la terminal de Linux, algunos de comandos contenidos en /bin: cat, chown, cp, dd, echo,
gzip, kill, ls, mkdir, mount, mv, ping, ps, rm, su, tar, umount, uname. Finalmente, se debe precisar
que los binarios necesarios para tareas administrativas ejecutadas por root o superusuario se
encuentran en otro directorio, en el directorio /sbin.
/dev (dispositivos)
Aquí encontramos los archivos de información de todos los volúmenes y dispositivos físicos del
sistema (hardware), como por ejemplo: Discos Duros, memorias, cdrom, dvd, etc.
En el directorio /dev se encuentran los archivos especiales del sistema, conocidos como
controladores de dispositivo, se usan para acceder a los dispositivos de almacenamiento como por
ejemplo: Discos duros externos, memoria USB, tarjetas sd...
También encontramos en el directorio /dev las particiones de disco que hemos realizado durante la
instalación del sistema operativo, por ejemplo: sda1, sda2, sda5, como podemos ver si escribimos
los siguientes comandos en Terminal, para ver discos y particiones:
sudo fdisk -l
Una vez que hemos puesto los comandos sudo fdisk -l en la Terminal vemos las particiones de la
siguiente forma:
En el caso de tener mas Discos Duros, los veríamos como: /dev/sdb, /dev/sdc, /dev/sdd...
Todo está considerado en Ubuntu como un archivo, tanto el Software como el Hardware. Un
archivo de texto, de vídeo, de música, un controlador de dispositivo, el ratón, el teclado, el monitor,
la impresora, el reproductor de CD o DVD, los Discos Duros, las particiones, los periféricos que
podamos conectar en el equipo...
/etc (etcétera)
En el directorio /etc es donde encontramos los ficheros de configuración y arranque del sistema, así
como ciertos scripts que se ejecutan en el inicio del sistema
En el directorio /etc es donde se encuentra la configuración global de las aplicaciones o programas
instalados, este directorio debe de contener únicamente archivos de configuración, y no debería
contener ningún archivo binario
Cada usuario tiene su propio directorio dentro de /home, ese directorio es la Carpeta personal de
usuario
En la Carpeta personal de usuario tenemos otras carpetas, así como otros archivos y carpetas
ocultas, que guardan la información de configuraciones de las aplicaciones del usuario:
Para ver las carpetas y archivos ocultos dentro del directorio individual de cada usuario, podemos
hacerlo pulsando las teclas Ctrl + h del teclado
Los archivos y carpetas ocultas empiezan por un punto “.”, seguido del nombre de la carpeta
El directorio /home puede ser muy grande, ya que es usado para almacenar descargas, documentos,
fotos y una buena colección de archivos de imagen o sonido
A menudo /home es instalado en un disco o partición separada, partición que hemos realizado
durante la instalación del sistema operativo, normalmente es la partición mas grande debido al gran
tamaño que puede llegar a ocupar
/home es instalado en un disco o partición separada para que en el caso de que reinstalemos o
instalemos una nueva versión del sistema, tengamos a buen recaudo nuestros documentos y demás
archivos personales
/lib (bibliotecas)
El directorio /lib contiene los módulos del kernel y todas las bibliotecas (mal conocidas como
librerías) esenciales compartidas, necesarios para arrancar el sistema y ejecutar los comandos en el
sistema de archivos raíz
En el directorio /lib están contenidas las bibliotecas que son necesarias para que se puedan ejecutar
todos los binarios que se encuentran en los directorios /bin y /sbin
/lib/modules
El directorio /media es el punto de montaje de todos los volúmenes lógicos que se montan
temporalmente, ya sean unidades externas USB, Discos externos e incluso sirve para montar otras
particiones del mismo Disco Duro, como por ejemplo, alguna partición que sea utilizada por otro
sistema operativo
Este directorio contiene subdirectorios que se utilizan como puntos de montaje para Medios
removibles como disquetes, CD o DVD, USB
En el directorio /media, cada vez que se monta una unidad externa, partición, CD o DVD esta se
monta dentro del directorio /media y a su vez dentro de un directorio del usuario, si en un sistema
hay varios usuarios, supongamos usuario1 y usuario2, los puntos de montaje de los volúmenes que
montan cada uno de ellos se mostraran en directorios separados tal como así:
/media/usuario1
/media/usuario2
Nota: usuario es el nombre del usuario del equipo en ese momento, “usuario” puede ser Juan, Pepe,
María, Jacín, Juana...
/mnt (montajes)
El directorio /mnt se suele usar para montajes temporales de unidades, sirve para montar discos
duros y particiones de forma temporal en el sistema
El directorio /mnt es un directorio vacío que se utiliza como punto de montaje genérico, en el que se
montan los sistemas de archivos o dispositivos, el montaje es el proceso por el cual hacemos que un
sistema de archivos sea disponible para el sistema, después de montar estos archivos serán
accesibles bajo el punto de montaje
Este directorio se proporciona para que el administrador del sistema pueda montar un sistema de
archivos según sea necesario, como vemos en el ejemplo siguiente:
Una vez que hemos puesto los comandos sudo fdisk -l en la Terminal vemos las particiones de la
siguiente forma:
En el caso de tener mas Discos Duros, los veríamos como: /dev/sdb, /dev/sdc, /dev/sdd...
Una vez que vemos las particiones, vamos a montar como superusuario, la partición /dev/sda3 con
el comando mount
Una vez que tenemos montada la partición /dev/sda3, todos los archivos que están contenidos en
esta partición son visibles y accesibles en el directorio /mnt
Cuando un sistema de archivos ya no necesita ser montado, se debe de desmontar con el comando
umount
Para desmontar la partición que hemos montado anteriormente escribimos los siguientes comandos
en Terminal:
Tras haber desmontado la partición /dev/sda3 volvemos a tener el directorio /mnt, vacío
/opt (opcionales)
El directorio /opt está reservado para todos los paquetes de software y complementos que no forman
parte de la instalación predeterminada, esta destinado para guardar paquetes adicionales de
aplicaciones, todas las aplicaciones de terceros deben estar instaladas en este directorio
Las aplicaciones crean un subdirectorio dentro de /opt que son designadas con el mismo nombre del
programa
El directorio /opt contiene paquetes de programas opcionales de aplicaciones, que pueden ser
compartidas entre los usuarios, estas aplicaciones no guardan sus configuraciones en este directorio,
así, cada usuario puede tener una configuración diferente de una misma aplicación, se comparte la
aplicación pero no las configuraciones de los usuarios, las cuales se guardan en su respectivo
directorio en /home de cada usuario
/proc (procesos)
El directorio /proc contiene información de los procesos y aplicaciones que se están ejecutando en
un momento determinado en el sistema, es un sistema de archivos virtual, no contiene archivos
reales, solo información del sistema en tiempo de ejecución
Lo más llamativo de los archivos del directorio /proc es que todos ellos tienen un tamaño de archivo
de 0, no son ni binarios ni textos, sin embargo podemos desplegar su contenido y examinarlos
El directorio /proc contiene todos los detalles del sistema Linux, incluyendo el kernel, procesos y
parámetros de configuración
Los directorios con nombre numérico representan a los procesos en ejecución. Cuando un proceso
termina, su directorio situado en el directorio /proc desaparece automáticamente
Escribimos los siguientes comandos en Terminal para ver los procesos en ejecución:
ls /proc
Cada uno de los directorios numerados corresponde a un ID (identificador de proceso) de un
proceso real
Algunos archivos en el directorio /proc están configurados para que se puedan leer sólo por el
usuario root
/root (raíz)
El directorio /root es el directorio de uso exclusivo del administrador, directorio raíz del usuario
root, es el directorio /home (casa) del administrador del sistema, digamos que el superusuario tiene
su propio directorio personal, el directorio /root
Al directorio /root, el acceso es restringido para un usuario sin privilegios administrativos, ya que es
un directorio exclusivo para la administración del sistema
Si intentamos entrar en el directorio /root como usuario sin los privilegios administrativos, nos sale
un cartel diciendo que no tenemos los permisos suficientes para ver su contenido
Directorio /root sin privilegios
root es el nombre de usuario o cuenta que por defecto tiene acceso a todos los comandos y archivos
en un sistema operativo Linux, se le conoce como el usuario root o superusuario
El usuario root puede hacer muchas cosas que un usuario común no puede, tales como cambiar el
dueño o permisos de archivos
No se recomienda utilizar el superusuario para una sesión de uso habitual, ya que se pone en riesgo
el sistema, al darle privilegios administrativos a cada aplicación que esté en ejecución
Es preferible usar una cuenta de usuario normal y utilizar los comandos sudo su para acceder a los
privilegios de root en caso de ser necesario
El directorio /sbin es donde se almacenan todos los binarios necesarios para las tareas
administrativas ejecutadas por root o superusuario
El directorio /sbin debe contener sólo binarios esenciales para arrancar, restaurar, recuperar o
reparar el sistema además de los binarios incluidos en /bin
Los ejecutables de administración, tales como mount, umount, shutdown… Solo pueden ser
ejecutados por el usuario root y vienen preinstalados en el sistema
Un usuario con los privilegios administrativos puede ejecutar alguna de estas aplicaciones de
comandos, estando en modo superusuario
/srv (servicios)
El directorio /srv contiene información del sistema sobre ciertos servicios que ofrece (FTP,
HTTP…), archivos relativos a servidores web,ftp. En este directorio residen las carpetas accesibles
por el programa cliente de un determinado servicio ofrecido por algunos servidores configurados en
el sistema
El directorio /srv sirve para almacenar archivos y directorios relativos a servidores que podamos
tener instalados dentro del sistema, en este directorio se alojan los subdirectorios que usan los
distintos servidores que tengamos instalados, como el servidor web en /srv/www o el servidor FTP
en /srv/ftp
Ningún programa debe basarse en un subdirectorio de /srv existente o en los datos que
necesariamente se almacenen en el, sin embargo, el directorio /srv siempre debe existir en sistemas
Linux y debe ser utilizado como un lugar predeterminado para dichos datos
/sys (sistema)
El directorio /sys contiene información de los dispositivos conectados al sistema, información sobre
los dispositivos tal y como los ve el kernel
El directorio /sys al igual que el directorio /proc contiene archivos virtuales que proveen
información del kernel relativa a eventos del sistema operativo, son archivos virtuales con
información del sistema
En el directorio /sys se monta el sistema de ficheros virtual /sys/fs, este es un sistema de ficheros
virtual basado inicialmente en ramfs (fichero de almacenamiento en la memoria RAM) y que está
implementado en el kernel
El directorio /sys permite obtener información sobre el sistema y sus componentes (en su mayoría
conectado e instalado, hardware) de una manera estructurada, con soporte para los dispositivos de
conexión en caliente
/tmp (temporales)
El directorio /tmp es un directorio donde se almacenan archivos temporales, cada vez que se inicia
el sistema este directorio se limpia
Muchos programas utilizan el directorio /tmp para crear archivos y para el almacenamiento
temporal de datos, estos archivos son importantes para los programas que se están ejecutando
actualmente y su eliminación puede provocar un bloqueo del sistema
No debemos de borrar el contenido del directorio /tmp de forma manual, puesto que puede contener
archivos necesarios para ciertos programas o procesos que estén ejecutándose, tampoco asumiremos
que los archivos se conserven entre invocaciones de programas
El directorio /usr es uno de los directorios más importantes del sistema, ya que contiene todos los
binarios, programas y librerías de uso común para todos los usuarios, su documentación,
bibliotecas, archivos de cabecera, juegos, casi la totalidad de los comandos de usuario
El directorio /usr contiene los archivos compartidos, pero son de sólo lectura, este directorio puede
compartirse con otros equipos que estén en la misma red local
En el directorio /usr se encuentran programas y datos utilizables por el usuario, por ello, algunas
personas pueden referirse a este directorio como recursos del sistema del usuario
Como hemos dicho anteriormente el directorio /usr es uno de los directorios más importantes del
sistema, es el directorio padre de otros subdirectorios de importancia, que son los siguientes:
/usr/bin: Contiene la gran mayoría de los binarios del sistema, comandos binarios no-
administrativos para todos los usuarios, son de solo lectura, pero pueden tener su propia
configuración para cada usuario en /home. Los ejecutables en este directorio varían ampliamente,
ejecutables de la mayoría de aplicaciones de escritorio
/usr/include: Contiene “archivos de cabecera” (ficheros cabeceras para C y C++) necesarios para
compilar el código fuente del espacio de usuario, estos archivos son necesarios cuando se compila
programas, bien sea, para un paquete de software que necesita compilar manualmente o sus propios
programas
/usr/lib: Contiene bibliotecas de programas. Las bibliotecas son colecciones de rutinas de programas
de uso frecuente, algunos ejecutables comparten las mismas bibliotecas que comparten las demás
aplicaciones
/usr/local: Debe ser utilizado por el administrador del sistema al instalar el software localmente, así
mismo, debe estar a salvo de ser sobrescrita cuando se actualiza el software del sistema, puede
utilizarse para programas y datos que pueden compartirse entre un grupo de equipos que estén en la
misma red local
El software instalado localmente debe colocarse dentro de /usr/local, este subdirectorio tiene una
estructura similar a la del directorio /usr, gran parte del software local se instala en subdirectorios de
/usr/local
/usr/sbin: Contiene comandos administrativos para el sistema, destinados a ser ejecutados por el
usuario root o superusuario, al igual que en /sbin, no forma parte del entorno de un usuario, algunos
ejemplos de binarios incluidos: adduser, chroot, useradd, pppconfig...
Comandos y utilidades para la administración que no son vitales del sistema, que se utilizan después
de arrancar (iniciar el sistema) por parte del administrador
/usr/share: Contiene archivos compartidos que no dependen de la arquitectura del sistema, como
ficheros de configuración, imágenes, sonidos, iconos, fuentes, temas, etc., disponibles para el
sistema y sus aplicaciones, también contiene páginas de manual, documentos de información GNU,
y archivos de documentación de los programas instalados
/usr/src (source o, fuente en castellano)): Tiene en su interior el código fuente para el kernel Linux,
cualquier código fuente no-local debe localizarse en este directorio. El único código fuente que
siempre debe localizarse en un lugar específico es el código del kernel
/usr/src/linux-headers-4.8.0-36
/var (variable)
El directorio /var contiene archivos con información variable, esto incluye archivos y directorios en
fila de ejecución, información de bitácora administrativa y archivos temporales transitorios
El directorio /var contiene varios archivos con información del sistema, como archivos de logs, e-
mails temporales de los usuarios del sistema, bases de datos, información almacenada en la caché,
ficheros almacenados en fila a la espera de ejecutarse, como por ejemplo colas de impresión
El directorio /var se puede decir que actúa como un registro del sistema, ayuda a encontrar los
orígenes de un problema, todos los log del sistema y los generados por los servicios instalados, se
ubican dentro de la estructura jerárquica de /var, esto quiere decir que el tamaño global de este
directorio va ha crecer constantemente
El directorio /var es el directorio padre de otros subdirectorios de importancia, que son los
siguientes:
/var/backups: Directorio que contiene copias de seguridad de varios archivos de sistema clave como
/etc/shadow, /etc/group, /etc/inetd.conf y dpkg.status.
/var/cache: Está destinado a los datos almacenados en caché de las aplicaciones, estos datos se
generan localmente, permanecen válidos entre las invocaciones de la aplicación y el reinicio del
sistema. La existencia de un directorio independiente para los datos almacenados en caché permite a
los administradores del sistema establecer diferentes políticas de disco y de copia de seguridad de
otros directorios en /var
/var/crash: Eventualmente mantendrá descargas de bloqueo del sistema. Actualmente, los volcados
de bloqueo del sistema no son compatibles con Linux, sin embargo, el desarrollo ya está completo y
está a la espera de la unificación en el kernel de Linux
/var/local: Contiene datos variables para programas locales (es decir, programas que han sido
instalados por el administrador del sistema) tenemos que tener en cuenta que incluso los programas
instalados localmente deberían usar los otros directorios /var si son apropiados, por ejemplo, en
/var/lock
/var/lock: Contiene ficheros que se encargan de que un recurso sólo sea usado por una aplicación
determinada que ha pedido su exclusividad, hasta que ésta lo libere, muchos programas crean un
archivo de bloqueo en /var/lock para indicar que están utilizando un dispositivo o archivo en
particular
/var/log: Es uno de los subdirectorios más importantes, ya que aquí se guarda un registro de los
logins y logouts de usuarios normales y procesos del sistema
/var/mail: Contiene archivos de los correos de los usuarios, tenemos que tener en cuenta que
/var/mail puede ser un enlace simbólico a otro directorio
/var/opt: Contiene archivos de datos variables de los paquetes de programa almacenados en /opt
/var/run: Contiene los archivos de identificación de proceso (PID) de los servicios del sistema y otra
información sobre el sistema que es válida hasta que el sistema se reinicie, por ejemplo,
/var/run/utmp contiene información sobre los usuarios que están actualmente conectados
/var/spool: Contiene datos a la espera de ser procesados, por ejemplo, colas de impresión y correo
no leído
/var/tmp: Contiene archivos temporales que son grandes o que necesitan existir durante un tiempo
más largo de lo que se permite para /tmp