¿Por que no tengo disco C:?

Supongo que la primer pregunta que se hace una persona cuando se pasa de Windows a Linux es esta, asi que voy a intentar explicar un poco el sistema de archivos de Linux.

Linux tiene un arbol de directorios bastante definido, es decir, todas las distribuciones tienen mas o menos la misma estructura. Lo primero que hay que mencionar es el directorio raíz ( / ), ahi es donde empieza todo, vendria a ser ‘Mi PC’ en Windows.

Sobre este directorio raíz se monta una partición de un disco físico, y los otros discos se montaran sobre otros directorios del arbol. Por ej:

Este es un caso clásico de estructura de directorios de un sistema basado en Linux. Como se puede apreciar, el disco físico 1 (asumimos que tiene una sola partición) esta montado sobre el directorio raíz ( / ) del sistema, y el disco físico 2 (también con una sola partición) esta montado en el directorio home.

Para el usuario esto es totalmente transparente y el directorio home se comporta como cualquier otro del sistema.

Para otros dispositivos de almacenamiento, como cdroms/dvdroms, pendrives, etc, suele existir un directorio dedicado a esto (en openSUSE es /media y también existe /mnt). En las distribuciones nuevas estos dispositivos cuentan con la función auto-mount, es decir, en el momento en que se conecta o carga un dispositivo removible se genera un directorio con el nombre del volumen dentro de /media (o /mnt) y se puede acceder a los contenidos desde ese directorio.

También se puede montar imágenes de discos (como archivos .iso por ejemplo) sobre un directorio y discos compartidos por red.

Directorios de Linux

  • /boot: Contiene el kernel y el menu de booteo (LILO o Grub)
  • /etc: Contiene archivos de configuración del sistema
  • /dev: es un directorio especial, contiene dispositivos (mas adelante lo voy a explicar con mas detalle)
  • /home: Es donde se encuentran los perfiles de los usuarios (algo así como “Documents and Settings” en Windows)
  • /proc: Este directorio es especial (y virtual), contiene informacion sobre el kernel y es mayormente de solo-lectura
  • /root: Es el /home del usuario root
  • /usr: Vendría a ser “Archivos de Programa” en Windows
  • /var: Aca se guardan archivos que varían el contenido a medida que se ejecuta el sistema

Una de las principales cosas que hay que destacar sobre el sistema de archivos de Linux es que es Case-Sensitive, esto quiere decir que distingue las mayúsculas de las minúsculas. Esto permite que en el mismo directorio puedan existir el archivo “a” y el archivo “A” y no solamente esto es valido, sino que estos archivos son independientes uno de otro, son dos archivos distintos.

Otra cosa importante son los archivos ejecutables, bajo Windows se determina que un archivo es ejecutable cuando su extesion es EXE, bajo Linux se determina a través de un atributo.

En el sistema de archivos de Linux, todos los archivos tienen un Owner (dueño) y un Group (grupo) al que pertenecen. Basicamente hay tres atributos posibles, r(ead), w(rite) y (e)x(ecutable).

La primer columna que se puede ver en la imagen de la derecha, indica los atributos de los archivos. La primer letra indica el tipo de archivo:

  • d: directorio
  • l: link (mas adelante lo explico en detalle)
  • -: archivo

Después lo siguen tres grupos de tres letras cada uno (r,w,x) que indican si el archivo en cuestión se puede leer, escribir o ejecutar para el Owner, Group y World, o sea el dueño, el grupo o el resto de los usuarios. Siguiendo el ejemplo de la imagen, el archivo resolv.conf puede ser leido (r) y escrito (w) por “root“, pero solo leido (r) por el grupo (también root) y el resto de los usuarios.

Algo para notar con respecto a los directorios, es que si no tienen el atributo x (ejecutable) no se puede acceder a ellos.

Algunos ejemplos de atributos:

-rwxrw-r-- significa que el dueño del archivo puede leer, escribir y ejecutar, el grupo puede leer y escribir y el resto de los usuarios solo leer.

drwx—— significa que es un directorio que solo el dueño puede acceder (aparte de leer y escribir)

Para marcar un archivo como oculto, a diferencia de Windows que tiene el atributo Oculto, Linux utiliza un punto ( . ) al comienzo del nombre del archivo o directorio en cuestión, por ej. “.kde4″ estaría oculto en un listado normal.

Quedaría explicar el tema de los links, un link es una referencia a un archivo o un directorio, cuando se accede al link se ve el contenido del archivo o directorio de origen del mismo. Esto permite tener (de alguna manera) un archivo o directorio en dos lugares a la vez. O tener un archivo que en el nombre lleve la versión del mismo y que se pueda acceder por un nombre mas “normal” (que es el caso mas común de las librerías en Linux)

Algunos comandos para usar en una consola

  • ls : listado de archivos (como dir), para ver archivos/directorios ocultos usar “ls -la”
  • cd : como el cd de DOS, permite cambiar a otro directorio
  • cp : copia archivos, se usa : cp [origen] [destino]
  • mv : como cp, pero mueve los archivos
  • rm : borra archivos, es bastante peligroso si estas logueado como super-usuario
  • cat : permite ver el contenido de un archivo : cat [archivo]
  • head : muestra las primeras 10 lineas de un archivo : head [archivo]
  • tail : muestra las ultimas 10 lineas de un archivo : tail [archivo]
  • mkdir : crea un directorio : mkdir [directorio]
  • ~ : hace referencia al directorio home del usuario : cd ~/temp cambia el directorio a /home/[usuario]/temp (o /root/temp si el usuario es root)
  • man : manual, muestra una pagina con la ayuda de un comando : man [comando]
  • ln : crear un link, se usa : ln -s [origen] [destino]

Comments are closed.