lunes, 1 de mayo de 2017

9.- Estructura de Directorios en Ubuntu Ubuntu 16.04 LTS


9.- Estructura de Directorios en Ubuntu


Para visualizar todas las carpetas del sistema que cuelgan de la raíz “ / ”, podemos hacerlo desde Archivos, es el Administrador de Archivos de Ubuntu, la aplicación se llama Nautilus, la ventana del gestor de archivos es nuestra Carpeta personal

Archivos icono

Archivos icono




Una vez que hemos pulsado sobre el icono de Archivos, nos aparece la Carpeta personal, que está situada dentro de la carpeta home. En la parte izquierda de la ventana de la carpeta personal encontramos Equipo, si pulsamos en Equipo vemos que nos dirigimos al directorio raíz “ / ”

El directorio raíz se simboliza por una barra inclinada “ / ”. De este directorio, es desde donde sale todo el resto de directorios


/ (raíz)

/ (raíz)




/ (raíz). Es el único directorio en el nivel superior del árbol jerárquico de archivos, el nivel más alto dentro de la jerarquía de directorios. Cualquier dirección de archivo o carpeta en Ubuntu, empieza por el directorio raíz “ / ”, seguido de todos los directorios y subdirectorios que lo contienen

Del directorio raíz “ / ” cuelga el resto de carpetas, particiones y otros dispositivos, cuando instalamos el sistema, seleccionamos la Partición raíz y como punto de montaje seleccionamos /





/bin (binarios)

/bin


El directorio /bin es donde se almacenan todos los binarios necesarios para garantizar las funciones básicas a nivel de usuario. Aplicaciones binarias de comando, esenciales y disponibles para que cualquier usuario pueda ejecutarlos, así como los ejecutables de los programas propios del sistema operativo

Los binarios son los ejecutables de Linux, los preinstala el sistema. No deben de haber subdirectorios en /bin

En el directorio /bin está situado el código binario o compilado de los programas y comandos que pueden utilizar todos los usuarios del sistema

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.


Comandos contenidos en /bin

Comandos contenidos en /bin



los binarios necesarios para tareas administrativas ejecutadas por root o superusuario se encuentran en otro directorio, en el directorio /sbin





/boot (arranque)

/boot



En el directorio /boot nos encontramos los archivos necesarios para el inicio del sistema, desde los archivos de configuración del Grub, hasta el propio kernel del sistema

En el directorio /boot 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 aparte 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


Archivos contenidos en /boot

Archivos contenidos en /boot






/dev (dispositivos)

/dev



En el directorio /dev 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...

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
sudo fdisk -l




Una vez que hemos puesto los comandos sudo fdisk -l en la Terminal vemos las particiones de la siguiente forma:

Disk /dev/sda – Disco Duro

/dev/sda1 - Partición principal
/dev/sda2 - Partición extendida 
/dev/sda5 - Partición Swap (partición de intercambio)

En el caso de tener mas Discos Duros, los veríamos como: /dev/sdb, /dev/sdc, /dev/sdd...


Archivos contenidos en /dev

 Archivos contenidos en /dev




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)

/etc



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


En el directorio /etc aparecen otros subdirectorios:

/etc/opt/ Subdirectorio de configuración para los programas alojados dentro del directorio /opt
/etc/X11/ Subdirectorio de configuración para el X Window System
/etc/sgml/ Subdirectorio de configuración para SGML
/etc/xml/ Subdirectorio de configuración para XML


Archivos contenidos en etc

Archivos contenidos en etc





/home (casa)

/home



El directorio /home contiene los directorios de trabajo de todos los usuarios, es la carpeta donde se guardan los archivos personales de todos los usuarios excepto el de root o superusuario, /home contiene los directorios personales (casas) de cada uno de los usuarios



Archivos contenidos en /home

Archivos contenidos en /home




Cada usuario tiene su propio directorio dentro de /home, ese directorio es la Carpeta personal de usuario


Carpeta personal de usuario

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:

Descargas, Documentos, Escritorio, Imágenes, Música, Plantillas, Público, Vídeos, Ejemplos

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


Archivos ocultos contenidos en la Carpeta personal de usuario

Archivos ocultos contenidos en la Carpeta personal de usuario




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


El administrador del sistema tiene su propio directorio home, que es /root






/lib (bibliotecas)

/lib


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


Archivos contenidos en /lib

Archivos contenidos en /lib





Puede haber una o más variantes del directorio /lib, en sistemas que admiten más de un formato binario y que requiere bibliotecas separadas. En los sistemas operativos de 64 bits, además de /lib existe otro directorio denominado /lib64, contiene bibliotecas para aplicaciones de 64 bits

Los módulos del kernel (controladores) están en el subdirectorio /lib/modules/”versión-Kernel”, donde versión-Kernel” puede ser por ejemplo 4.8.0.36-generic o 4.8.0.36-generic o ...


/lib/modules

/lib/modules





/media (media, medios de comunicación)

/media



El directorio /media es donde se montan las unidades extraíbles de almacenamiento como los dispositivos USB, disqueteras, unidades de CD/DVD

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


Archivos contenidos en /media

Archivos contenidos en /media




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)
/mnt



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:


Escribimos los siguientes comandos en Terminal para ver discos y particiones:

sudo fdisk -l
 sudo fdisk -l





Una vez que hemos puesto los comandos sudo fdisk -l en la Terminal vemos las particiones de la siguiente forma:

Disk /dev/sda – Disco Duro

/dev/sda1 - Partición Swap (partición de intercambio)
/dev/sda2 - Partición extendida
/dev/sda3 - Partición nueva (datos)
/dev/sda5 - Partición principal

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


Escribimos los siguientes comandos en Terminal:

sudo mount /dev/sda3 /mnt
sudo mount /dev/sda3 /mnt




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

El comando mount toma dos argumentos, el primero (/dev/sda3) es el archivo de dispositivo correspondiente al disco o partición que contiene el sistema de archivos, el segundo es el directorio (/mnt ) donde será montado

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:

sudo umount /dev/sda3
sudo umount /dev/sda3




Tras haber desmontado la partición /dev/sda3 volvemos a tener el directorio /mnt, vacío





/opt (opcionales)

/opt



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


Archivos contenidos en opt

Archivos contenidos en opt





/proc (procesos)

/proc



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


Archivos contenidos en /proc

Archivos contenidos en /proc




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


Archivos contenidos en /proc

Archivos contenidos en /proc




Escribimos los siguientes comandos en Terminal para ver los procesos en ejecución:

ls /proc
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)

/root



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

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






/sbin (binarios de sistema)

/sbin



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


Archivos contenidos en /sbin

Archivos contenidos en /sbin





/srv (servicios)

/srv


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


Si no tenemos ningún servidor instalado tendremos el directorio /srv vacío


Archivos contenidos en /srv

Archivos contenidos en /srv





/sys (sistema)

/sys



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


Archivos contenidos en sys

Archivos contenidos en sys





/tmp (temporales)

/tmp



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


Archivos contenidos en /tmp

Archivos contenidos en /tmp





/usr (Recursos del sistema del usuario)

/usr



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


Archivos contenidos en usr

Archivos contenidos en usr





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

El subdirectorio /usr/src/linux (Ejemplo: linux-headers-4.8.0-36) contiene las fuentes, archivos de encabezado y documentación del kernel de Linux


/usr/src/linux-headers-4.8.0-36

/usr/src/linux-headers-4.8.0-36





/var (variable)

/var



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


Archivos contenidos en /var

Archivos contenidos en /var





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/lib: Contiene información de estado perteneciente a una aplicación o al sistema, la información de estado es información que los programas modifican mientras se ejecutan, estado actual de las aplicaciones, modificable por las propias aplicaciones


/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




Estructuración del sistema de archivos según FHS (Filesystem Hierarchy Standard) http://refspecs.linuxfoundation.org/fhs.shtml




_____________________________

Fuente:
Libro Iniciación a Ubuntu 16.04
http://trastetes.blogspot.com.es/2016/10/libro-iniciacion-ubuntu-1604.html
____________________________