Cómo crear un directorio en Linux y otros comandos útiles
Desde la aparición del primer sistema operativo gráfico en la década del 60, todos los ordenadores trabajan con la metáfora de la oficina. Los archivos se denominan documentos y se guardan en carpetas. Esas carpetas a su vez se organizan de acuerdo con su contenido en otras carpetas. Dependiendo del nivel de acceso, el usuario tendrá la posibilidad de modificar o no su contenido.
En este post veremos cómo crear un directorio en Linux y trabajar con él tanto usando el emulador de terminal (de ahora en adelante la terminal) como la terminal gráfica.
¿A qué llamamos directorio en Linux?
Tanto Linux como macOS y los derivados de BSD adoptaron la estructura de archivos y la terminología de Unix, mientras que Windows siguió un camino propio. Podríamos decir que el directorio en estos sistemas operativos es la carpeta de Windows con otro nombre, pero como UNIX es más viejo, es correcto decir que la carpeta de Windows es el directorio con otro nombre. El directorio registra su contenido en un índice haciendo más fácil su ubicación. Es decir que el directorio Documentos no contiene los documentos que se muestran cuando accedes a él. Lo que guarda es la ubicación real de esos documentos.
La estructura de directorios de Linux
No solo en la denominación los sistemas operativos inspirados en UNIX siguen un camino diferente a Windows. También en la estructura de directorios. En Windows, se identifica al dispositivo base con una letra mayúscula seguida de :\ mientras que en Linux el directorio base se identifica como /
Al igual que los otros derivados, Linux utiliza el Estándar de Jerarquías de Archivos o Filesystem Hierarchy Standard por sus siglas en inglés, aunque le hace algunas modificaciones. En un sistema Linux encontramos los siguientes directorios:
- /: Es el directorio raíz que contiene a todos los demás directorios. Aún los archivos contenidos en otras unidades de almacenamiento se encuentran listado dentro del directorio raíz.
- /bin: Aquí se almacenan los binarios esenciales para el usuario. Es decir, los programas que deben estar disponibles para el funcionamiento del sistema o para el primer uso.
- /boot: En este apartado se listan los archivos necesarios para iniciar el sistema como el gestor de arranque y las diferentes versiones del núcleo que se fueron instalando.
- /cdrom: Muestra los archivos listados en un cd o dvd insesrtado en la unidad.
- /dev: En este apartado se listan los dispositivos conectados como directorios. En /dev hay dos tipos principales de dispositivos, los llamados dispositivos de bloque son los que almacenan o guardan datos (unidades de disco), mientras que los denominados dispositivos de carácter son los que transmiten o transfieren datos (Teclado, ratón, puertos de conexión).
- /etc: Guarda los archivos de configuración de todo el sistema. Pueden modificarse con un editor de textos teniendo los permisos correspondientes.
- /home: Hay tantas carpetas /home como usuarios en un sistema. Contiene los archivos de datos y configuración de cada uno de ellos. En principio, cada usuario puede editar los de su directorio /home, pero. para editar el de otros deberá transformarse en administrador.
- /lib: Para reducir tiempo de programación y espacio en disco, los programadores suelen recurrir a programas de terceros para realizar tareas comunes como guardar o imprimir un archivo o mostrar un menú. Estos programas se llaman librerías. Este sector del directorio almacena las bibliotecas que utilizan los programas almacenados en los directorios /bin y /sbin.
- /lost+found: En caso de que se produzca una falla en el sistema de archivos, cuando se reinicie el sistema se enumerarán los archivos dañados en este apartado. De esta forma será posible detectarlos y tratar de recuperar la mayor cantidad de datos posible.
- /media: Aquí se abre un subdirectorio por cada dispositivo externo de almacenamiento que se conecte al ordenador.
- /mnt: En esta ubicación se montan sistemas de archivos a los que se accede temporalmente.
- /opt: Es el lugar donde se suelen almacenar los archivos de los programas instalados en forma manual.
- /proc: Contiene archivos especiales que representan información del sistema y de los procesos.
- /root: Es el directorio /home del usuario administrador. Por razones de seguridad no se incluye en esta carpeta con la del resto de los usuarios.
- /run: Ubicación ideal para que las aplicaciones almacenen los datos temporales sin riesgo de ser borrados por terceros en forma accidental.
- /sbin: Contiene los binarios que el usuario root necesita pra la administración del sistema.
- /selinux: SELinux es un módulo de seguridad para el núcleo Linux. En este directorio encontramos listados los archivos especiales que utiliza.
- /srv: Es un directorio utilizado por determinados servicios (Como un servidor web) para almacenar y encontrar en un solo lugar los datos que necesita.
- /tmp: Aquí se guardan los archivos que las aplicaciones necesitan en forma temporal. Se eliminan al reiniciar el sistema.
- /usr: Se reúnen aquí los archivos y aplicaciones de los usuarios y no son esenciales para el funcionamiento del sistema. Dentro de este subdirectorio hay carpetas /bin, /sbin y /lib.
- /var: Es el subdirectorio en el que se encuentran archivos en el que el sistema va escribiendo información mientra es utilizado.
Cómo crear directorios en Linux
Antes de entrar de lleno en el tema de este artículo, la creación de directorios en Linux, debemos detenernos en el tema de los tipos de usuarios en Linux y su nivel de acceso dependiendo de los permisos de los directorios.
Podemos clasificar a los usuarios según el tipo de cuenta en:
- Cuenta de usuario raíz (Root): Es la cuenta de mayor jerarquía dentro de un sistema Linux. En principio se crea automáticamente durante la instalación, aunque algunas distribuciones le asignan muchas de esas funciones al primer usuario normal creado y la inhabilitan. Esta cuenta puede realizar cualquier trabajo administrativo y acceder a cualquier lugar dentro del directorio incluyendo al /home de los demás usuarios.
- Cuenta de usuario normal: Posee privilegios moderados y solo puede realizar determinadas tareas y acceder a un número limitado de directorios.
- Cuentas de servicios: Son creadas por los programas en el momento de su instalación para poder ejecutar procesos y funciones.
Para determinar el acceso a los directorios, Linux utiliza dos parámetros:
- Permisos.
- Propietario.
En Linux cada uno de los directorios y archivos tiene tres tipos de personas con acceso:
- Usuario: Es el creador del archivo y se lo denomina también propietario.
- Grupo: Cuando varios usuarios necesitan acceso a un archivo es más fácil asignarle privilegios de acceso a un grupo y agregar a los usuarios al mismo.
- Otros: Usuarios que no entran en ninguna de las dos categorías.
Con respecto a cada directorio y archivo es posible asignar tres tipos de permisos a los diferentes tipos de usuarios:
- Lectura: Este permiso da al usuario privilegios para abrir y leer un archivo. En el caso de tratarse de un directorio, también tendrá la capacidad de listar el contenido.
- Escritura: En el caso de los archivos consiste en privilegios para poder modificar el contenido de un archivo, pero no el de moverlo, renombrarlo o eliminarlo. Eso si se puede hacer en caso de que se tenga privilegios de escritura para el directorio.
- Ejecución: Esto se usa para programas descargados manualmente y que son autocontenidos (No necesitan interactuar con bibliotecas del sistema). Permite que la aplicación se ejecute.
¿Usar la terminal o hacerlo en forma gráfica?
Dentro del directorio /home crear un directorio en forma gráfica no tiene mayor inconveniente. Solo hay que posar el puntero dentro del directorio deseado y con el botón derecho elegir la opción correspondiente y determinar el nombre. En el apartado propiedades podemos determinar los permisos de acceso desde el menú Propiedades. Acceder en forma gráfica como usuario administrador a los directorios protegidos es más complejo y varía según el escritorio. Por eso, para no alargar innecesariamente el artículo, vamos a explicar cómo hacerlo desde la terminal.
El comando para crear un directorio en Linux es mkdir, una reducción de la frase en inglés hacer un directorio. El uso es muy simple
mkdir <nombre_del_directorio>
Por ejemplo, si quieres crear el directorio linux_adictos
mkdir linux_adictos
Si lo que queremos es crear varios directorios
…
mkdir <nombre1> <nombre2> <nombre3>
Nos quedaría lo siguiente:
mkdir linux_adictos desde_linux ubuntulog
Para verificar que el directorio fue creado
ls -l <nombre1>
Supongamos que queremos crear un directorio dentro de otro con acceso restringido. Suponiendo que tenemos los privilegios correspondientes hacemos
sudo /directorio_contenedor/nombre_de archivo.
Sería algo como:
sudo mkdir/opt/linux_adictos
Se puede dar el caso de que nos interese crear un subdirectorio y el directorio que lo contienen al mismo tiempo. La estructura del comando es la siguiente:
sudo mkdir -p /directorio_existente /<nombre_directorio>/<nombre_subdirectorio>
Podemos escribir algo parecido a:
sudo mkdir -p /opt/linux_adictos/artículos
Los comandos de asignación de permisos siendo:
- r: Permiso para lectura.
- w: Permiso para escritura.
- x: Permiso para ejecución.
Son:
chmod +rwx nombre_directorio
para dar permisos.chmod -rwx nombre_directorio
para quitarlos.
Si se quiere asignar permisos dentro de los directorios protegidos debe anteponerse el comando sudo. En el caso de que se quiera asignar los permisos de grupo se pone una ge despues de chmod.
chmod g + (o -) rwx nombre_directorio.
Tengan en cuenta que solo se pone la letra correspondiente al permiso que se quiera dar o quitar.