11 septiembre 2008

El Sistema de Ficheros de Linux

Los sistemas operativos basados en Unix tratan todos los dispositivos como si fueran ficheros.Cuando queramos acceder a los archivos de un CD tendremos que "montarlo" en un directorio ya existente en el sistema y navegaremos como si fuera una carpeta más. Todo el sistema de archivos parte del directorio raiz al que denominaremos con el carácter "/". Los directorios o carpetas se organizan jerarquicamente a partir de este directorio.

Los directorios principales del sistema Linux están en las siguientes rutas:
  • /home/: directorio donde los usuarios tienen sus carpetas y archivos.
  • /root/: directorio para el usuario root.
  • /sbin/:comandos especiales para el root del sistema.
  • /bin/: comandos básicos para todos los usuarios del sistema.
  • /boot/: archivos estáticos necesarios para que el sistema arranque.
  • /dev/: dispositivos del sistema.
  • /etc/:archivos de configuración del sistema y aplicaciones instaladas.
  • /libra/: librerías esenciales para el núcleo del sistema y sus módulos.
  • /mnt/: punto de montaje temporal para los dispositivos.
  • /proc/: procesos y variables para el núcleo del sistema.
  • /usr/: lugar donde se instalan los programas.
  • /var/: directorio donde se guardan las colas de impresión y los archivos de log.
  • /tmp/: archivos temporales.
Algunos comandos útiles para manejar carpetas y archivos son:

Cuando entramos en el sistema el directorio donde nos situamos es /home/nombre, siendo "nombre" el nombre de usuario. Se puede trabajar con archivos y carpetas de dos maneras:
  • modo gráfico: para hacer un simil diremos que igual que con windows.
  • modo cónsola (con la terminal): algo parecido a ms-dos.
Ya se que a alguno no le gustará estas comparaciones pero las hago para los que nunca han trabajado con Linux. Los recien llegados al software libre se preguntarán ¿que sentido tiene trabajar en modo cónsola? ¿No es más fácil el modo gráfico?.
Bueno, pues es una pregunta que se resuelve con la práctica. Es cierto que algunas tareas no vamos a necesitar la cónsola (terminal). Cuando navegamos por internet, cuando escribimos un documento con OpenOffice, retocamos fotografías. Pero hay excepciones. Igual que con windows hay muchas aplicaciones que nos evitan la tarea de usar la terminal, pero para configurar y personalizar algunas aplicaciones es recomendable usar la terminal. Por ejemplo para dar permisos de escritura, lectura o ejecución de determinados archivos, para modificar el sistema a nuestro gusto...
Si lo único que vas a hacer es escribir alguna carta, y navegar por internet no es imprescindible saber lo que se puede hacer con la terminal, pero tarde o temprano la vas a necesitar, así que hoy puede ser un buen día para aprender algunas cosas básicas.

En Ubuntu entramos en la terminal en Aplicaciones > Accesorios > Terminal. Te aparecerá algo como "nombre@equipo:~$". Aquí es donde se escriben los comandos.

Algunos comandos con los que puedes practicar:
  • ls: hace un listado de los archivos y carpetas del directorio donde estés situado.
  • ls -a: lo mismo que el anterior pero además muestra los archivos ocultos.
  • cd (change directory): sirve para cambiar de un directorio a otro.

En la lista de directorios del sistema Linux que he mencionado antes las rutas son absolutas. Es decir si ponemos cd /tmp/ iremos a la carpeta de archivos temporales estemos donde estemos.

También existen las rutas relativas, usando el carácter "/" junto con ".." (los dos puntos significan directorio superior. Una subcarpeta pertenece a su directorio superior). Por ejemplo si estamos en /home/nombre/ y ponemos cd ../ nos iremos a la carpeta que esta por encima de nombre, que es home. Si en vez de eso ponemos cd ../../ nos vamos dos carpetas por encima de nombre que sería el directorio raiz.

Una manera muy rápida de acceder a la carpeta de usuario desde cualquier directorio es usando el comando cd ~ .El carácter "~" hace referéncia a la carpeta /home/nombre. Siendo "nombre" el nombre de usuario.

Para acceder rapidamente a carpetas o archivos podemos crear un enlace. Es muy útil cuando las rutas son muy largas:
  • creamos un enlace: "ln -s ruta nombreEnlace".
  • accedemos a un enlace "cd nombreEnlace".
Una manera sencilla de crear un archivo es con el comando:
sudo gedit nombre

Luego se puede modificar los permisos del archivo recien creado como explico en Administrar Permisos de Archivos y Carpetas . Más en linuxtotal y en Guía Ubuntu

Para buscar archivos hay tres comandos útiles:
  • find: es una búsqueda muy versátil pero lenta. Se puede buscar en base a una fecha, los permisos que tiene otorgados un fichero...
  • locate: es más rápido que el anterior porque usa una base da datos interna. Para actualizar esta base de datos se puede usar primero el comando sudo updatedb.
  • whereis: está enfocado a buscar archivos binarios, de ayuda o el código fuente de un programa determinado.

Linux no tiene en cuenta la extensión de un archivo (como hace windows) para saber de que tipo es un fichero, lo que hace es analizar su contenido mediante el sistema llamado "magic numbers". Se puede saber de que tipo es un archivo pasandole el comando "file".

Pon file --help en la terminal para saber más.

Otra utilidad es la comparación de archivos para ver la diferencia entre ellos. Los comandos para esta tarea son: diff, cmp, comm y sdiff.

No hay comentarios:

Publicar un comentario