Anda di halaman 1dari 6

Gestin de ficheros en Linux para dummies

Un sistema de ficheros, llamado comnmente File system, determina la organizacin de los datos en un
soporte de almacenamiento, y por lo tanto como el sistema operativo gestiona y organiza los ficheros.
En este articulo pretendemos hablar sobre la gestin de ficheros en los sistemas GNU/Linux, tipos de
fichero, la nomenclatura de los ficheros, rutas, permisos de acceso, etc. Conceptos bsicos que todo el
mundo debera conocer, no solamente la gente que pretende profundizar. Ademas vamos a ofrecer una
lista de comandos bsicos que nos van a ayudar a movernos por la jerarqua de los ficheros y
gestionarla.

En Linux todo es un fichero

Linux es, como todo Unix, un sistema operativo completamente orientado a ficheros. Esto quiere decir
que todo ( o casi todo ) se representa con un fichero, tanto los datos ( ficheros de datos de cualquier
tipo, como una cancin o un programa ) como los perifricos ( ratones, teclado, tarjeta de sonido, etc) o
incluso los medios de comunicacin ( sockets, tuberas, etc.). Debido a este motivo se podra decir que
el sistema de ficheros es el corazn de los sistema Unix, pero evidentemente no todos los ficheros
tienen las mismas propiedades.

Los tipos de ficheros


En Linux existen tres tipos de ficheros: los directorios o carpetas, los ficheros ordinarios y los
especiales.
Las carpetas o directorios

Las carpetas o directorios permiten crear una jerarqua en el disco. Dentro de estas carpetas podemos
contener ficheros ordinarios, especiales y otros directorios de manera recursiva.
Un directorio no es mas que un fichero que contiene una lista de los ficheros presentes en este
directorio, ni mas ni menos.
Los ficheros ordinarios

Tambin llamados ficheros regulares ( ordinary files ), son los ficheros de toda la vida que contienen
datos. Pueden contener cualquier tipo de dato :
Texto, Audio, Imagen, Scripts, Libreras de programacin, etc.
Por defecto, nada permite diferenciar unos de otros, Linux no conoce la nocin de extensin de

fichero como componente interno de la estructura del sistema de ficheros, por lo que la extensin no
tiene importancia y se considera simplemente parte del nombre.
Los ficheros especiales

Existen varios tipos de ficheros especiales pero principalmente sirven de interfaz para los diversos
perifricos. Cuando se accede en modo lectura o escritura a estos ficheros se redirigen hacia el
perifrico ( pasando por el driver asociado si existe ) con la misin de controlarlos.
Ejem : Los drivers de perifricos estn en la carpeta /dev, estos drivers son ficheros especiales.

La nomenclatura de los ficheros


Es necesario seguir unas reglas a la hora de poner nombre a los ficheros, validas para los tres tipos de
ficheros. Actualmente se puede llegar hasta 255 caracteres ( extensin incluida ) y digo actualmente por
que en los sistemas Unix antiguos solamente se podan alcanzar los 14 caracteres. Tambin es muy
importante tener en cuenta que Linux distingue entre los nombres de ficheros con maysculas y
minsculas. De forma que el nombre del fichero prueba es diferente al de Prueba.
Lla mayora de los caracteres ( cifras, letras, ciertos signos, caracteres acentuados ) son aceptados,
incluyendo el espacio. A pesar de esto es necesario evitar ciertos caracteres reservados en la shell como
son : & ; () ~ / \ ` ? -(al principio del nombre) <espacio>.

Las rutas
Las rutas permiten definir una ubicacin en el sistema de ficheros. Es la lista de directorios y subdirectorios utilizados para acceder a un sitio determinado de la estructura hasta la posicin deseada
( directorio, fichero ).
El nombre de la ruta o path de un fichero es la concatenacin, desde la raz, de todos los directorios que
se deben cruzar para acceder a el, que estn separados cada uno por el carcter /.
Ejem : /home/usuario1/Documentos/Cuentas.odt
A esto se le llama ruta absoluta ( ruta desde el directorio root ).
Pero tambin existen las rutas relativas, estas se basan en tu posicin actual en el sistema de ficheros.
Puedes acceder a la posicin que deseas sin tener que marcar la ruta completa precisando la ruta mas
corta en relacin a tu posicin actual dentro de la estructura.
Para las rutas relativas podemos usar tanto el . ( que indica el directorio actual en el que estamos )
como .. ( que indica el directorio superior ).
Ejem : ./Documentos/Msica ( Es una ruta relativa al directorio Msica dentro del Directorio
Documentos que se encuentra en nuestra posicin actual)
La virguilla

Los permisos de acceso


Linux tiene un sistema de permisos que tiene como cometido asegurar la integridad y el acceso a datos.
A cada fichero se le asignan unos privilegios que son los propios, as como autorizaciones de acceso
individuales. Cuando se realiza un acceso a un fichero el sistema comprueba si este acceso es
autorizado.

A la hora de crear un nuevo usuario, el sistema le asigna un UID ( User Identification ) nico. Todos
los usuarios estn definidos en el fichero passwd de la carpeta /etc. De la misma manera, cada usuario
es integrado en, al menos, un grupo. Todos los grupos tienen un identificador nico, el GID ( Group
Identification ) y estn definidos en el archivo group de la carpeta /etc.
El comando id nos muestra esta informacin por pantalla, tanto los UID como los GID
El comando id
Se asignan un UID y un GID a cada fichero ( a su inodo, del que hablaremos en otro articulo ) que
define su propietario y su grupo con privilegios. El usuario asigna permisos al propietario, al grupo con
privilegios y al resto de los usuario.
El sistema sigue el siguiente proceso para comprobar que un usuario tiene privilegios sobre el fichero al
que intenta acceder.
1. Compara el UID del usuario con el del fichero. Si es el mismo el usuario es propietario
2. Si los UID son diferentes, el sistema comprueba si el GID del usuario es el mismo al del
fichero, si es el caso, el usuario pertenece al grupo con privilegios del fichero.
3. Si no se dan ninguno de estos dos casos el usuario ni es el propietario ni pertenece a un grupo
con derechos.
Tenemos diferentes tipos de permisos, no es o el todo o nada, de forma que un usuario puede que tenga
permisos para leer un archivo pero no pueda modificarlo. La siguiente tabla muestra los diferentes
permisos junto a su significado.

Tratando lo bsico
Se puede hablar sobre muchos mas aspectos dentro del tema de los permisos, pero en esta ocasin nos
vamos a conformar con lo mas bsico, en futuros artculos profundizaremos mas en este aspecto.

La jerarqua de ficheros
Linux utiliza un sistema de ficheros jerrquico, teniendo en cuenta esto es bastante recomendable
conocer los diferentes directorios que se encuentran en nuestro sistema. Los siguientes directorios se
encuentran en la mayora de las distribuciones Linux, pero pueden existir pequeas diferencias.

/mnt, /media : son directorios para


montar disquettes, CD-ROMs y otros sistemas de archivos o dispositivos ( El actual es el media, mnt
existe por compatibilidad).
/proc: contiene los archivos que reciben o envan informacin al ncleo.
/bin: contiene ficheros de comandos ejecutables utilizables por todos los usuarios.
/sbin: contiene ejecutables de uso exclusivo por el root. Son los necesarios para arrancar y montar el
directorio /usr.
/usr: Programas accesibles a usuarios finales y datos de estos programas que no requieren ser
modificados (datos de slo lectura).
/etc: Archivos de configuracin de diversos programas y servicios.
/lib: Libreras indispensables y mdulos (especialmente requeridas durante el arranque del sistema).
/dev: Ficheros especiales de los dispositivos conectados (o que podran conectarse) al ordenador.
/home: Carpetas de usuario
/tmp: Archivos temporales creados por algunos programas, que sern borrados por el sistema operativo
durante el arranque.

/root: Carpeta de usuario root


/boot: contiene el ncleo (kernel) e informacin indispensable para el arranque del sistema.
/var: en este directorio los programas que lo requieran pueden mantener archivos que deban
modificarse frecuentemente.
/opt: es un punto de montaje desde el que se instalan los paquetes de aplicacin adicionales. Podemos
usarla para instalar aplicaciones que no vienen en los repositorios.

Comandos de gestin de ficheros y directorios


Hoy en da toda la gestin de ficheros se puede hacer mediante interfaz grfica, aun as la linea de
comandos puede llegar a ser muy potente y productiva, por esto mismo os dejo los comandos bsicos
que nos van a ayudar con este cometido.
Mostrar ruta completa >pwd
Nos muestra la ruta completa del directorio actual.
Contenido del directorio actual >ls
El comando ls nos mostrara el contenido del directorio actual.
Movernos por los directorios >cd
El comando cd sirve para movernos de directorio ( changue directory ).
>cd Documentos (esto nos situara en la carpeta Documentos).
>cd /etc/systemd/system/ (de esta manera nos situaremos en esta ubicacin directamente.)
>cd .. (subiremos un nivel. Por ejemplo si estamos en home/Documentos y hacemos cd .. nos
situaremos en home)
>cd ( sin nada nos llevara a la carpeta de usuario.)
Crear directorios >mkdir
El comando mkdir ( make directory ) nos va permitir crear uno o varios directorios. Tambin podemos
crear una estructura completa.
>mkdir dir1 ( creara una carpeta dir1 en la posicin actual )
>mkdir -p dir1/dir2 ( creara una carpeta dir2 dentro de otra carpeta dir1 en la situacin actual en el
sistema de ficheros )
Borrar directorios >rmdir
El comando rmdir ( remove directory ) remueve uno o varios directorios pero no puede remover
estructuras. Funciona de la misma manera que mkdir pero sin este detalle de las estructuras.
Copiar ficheros >cp
El comando cp ( copy ) nos permite copiar uno o varios ficheros.
>cp fichero1 fichero2 ( este comando ara una copia de fichero1 y lo guardara en fichero2)
Mover o cambiar de nombre a ficheros >mv
El comando mv ( move ) permite mover y/o renombrar un fichero.
>mv fich1 hola/fich1 ( movemos el fichero fich1 a la carpeta hola ).

>mv fich1 fich1.doc ( renombramos el fichero fich1 a fich1.doc ).


Suprimir ficheros y estructuras >rm
El comando rm ( remove ) eliminara un fichero o varios. Tambin podemos eliminar estructuras.
Tenemos que tener en cuenta que el borrado sera definitivo.
>rm fich1 ( Eliminamos fich1 )
>rm -r hola ( suprime la carpeta hola y todo el contenido de esta, tanto ficheros como directorios )
>rm -r dir1/dir2 ( Elimina la estructura dir1/dir2 )

Anda mungkin juga menyukai