Professional Documents
Culture Documents
El manejo de archivos es critico para utilizar el sistema, ya que el mismo trata casi
todo como un archivo, incluyendo al hardware y las interfaces. Es por esto por lo
que la habilidad de crear, eliminar, mover, renombrar, archivar y manipular
archivos es tan importante.
Empezaremos por comprender algunas de las reglas que aplican a los nombres de
archivos y atajos que podemos utilizar. Con esta informacin, aprenderemos a
manipular los archivos, directorios, y dems.
Los nombres tambien pueden empezar con un punto (.). Estos archivos tienen la
particularidad de que estan escondidos de la vista de muchas de las aplicaciones
que muestran archivos, por lo que son utilizados para guardar archivos de
configuracion en el home directory.
E-Learning
1 / 10
walter, duran
(.): El nombre con un solo punto (sin los parentesis), refieren al directorio actual.
(..): El nombre con dos puntos refiere al directorio superior.
Una diferencia critica entre Linux y otros sistemas, es que Linux toma en cuenta las
mayusculas y minusculas en el nombre de archivo, por lo que Prueba.txt, prueba.txt
y PRUEBA.TXT sern tratados como tres archivos distintos, que pueden coexistir en
un mismo directorio.
Wildcards: Comodines
E-Learning
2 / 10
walter, duran
Paquetes y Links
Comandos de archivos:
touch: Los sistemas de archivos Linux mantienen tres registros de tiempo:
Tiempo de creacin
Ultima fecha de modificacion
Ultimo acceso
Algunas veces, sin embargo, puede ser necesario cambiar estos valores. Podemos,
entonces, utilizar el comando touch para modificar el tiempo de modificacion y
acceso a la hora actual. Esto es util, por ejemplo, en la compilacion de codigo fuente
del cual existe una nueva version.
Empaquetando archivos
Podemos archivar elementos dentro de un paquete, de forma de poder envarlo para
su posterior descarga e instalacion, realizar backups, y muchas otras funciones mas.
Los comandos ms utilizados para estas funciones son:
tar (tape archiver): podemos usar tar para guardar archivos. En efecto, las tarballs
(archivos creados por tar y comprimidos con gzip o bzip2) son normalmente
utilizados para transferencia de archivos, por ejemplo en la distribucion de codigo
fuente.
Si bien el comando tar es complejo, la gran mayoria de las acciones a realizar
pueden ser vistas con unos pocos comandos
--create (c)
--extract (x)
--list (t)
--file (f)
--verbose (v)
--gzip o ungzip (z)
Por ejemplo, si necesitamos comprimir un directorio de nuestro home directory,
utilizaremos el siguiente comando:
tar cvzf /home/cbonomo/Prueba.tar.gz ~/Prueba
Para descomprimir el mismo, usaremos el siguiente comando:
E-Learning
3 / 10
walter, duran
4 / 10
walter, duran
Manejando links
En linux, un link es una forma de darle a un archivo multiples identidades, de una
forma similar a los accesos directos de Windows. De esta forma, podremos hacer
los archivos mas accesibles, darle a los comandos multiples nombres, y habilitar a
programas que buscan los mismos archivos en diferentes ubicaciones.
Mediante el comando ln podremos crear links. La sintaxis es la siguiente:
ln [opciones] fuente link
La fuente es el archivo original, y el link es el nombre del link que queremos crear.
Este comando soporta opciones que tienen diferentes efectos:
Remover links existentes: el comando -f o force eliminar cualquier link existente
con el mismo nombre que el link a crear. La opcion -i o interactive funciona de la
misma forma, pero nos pregunta antes de realizar el cambio.
Crear un hard link a directorios: normalmente, no se pueden crear hard links a
directorios. El usuario root puede intentarlo, mediante la opcion directory o -d. Sin
embargo, muchos sistemas no soportan esta funcion.
Crear un link simbolico: ln normalmente crea hard links por defecto. Para crear un
link simbolico, debemos agregar la opcion -s o symbolic.
Que son los links simbolicos?
Podemos comparar los enlaces simbolicos con los accesos directos de Windows. El
archivo o directorio se encuentra ubicado en un unico punto del disco, y los links
son un puntero hacia el. Cada enlace simbolico tiene su propio identificador
(numero de inodo), lo que permite hacer links entre distintos sistemas de archivos.
Creemos un enlace por medio de ln para entender mejor el concepto. En este caso,
crearemos un archivo test, y luego crearemos un link simbolico del mismo:
echo este es el archivo test > test
ln -s test link-a-test
Si listamos ambos, veremos que el link tiene el carcter l, que lo identifica como
link simbolico:
ls -l
E-Learning
5 / 10
walter, duran
lrwxrwxrwx 1 cbonomo cbonomo 4 2013-01-10 18:59 enlace-a-test -> test
-rw-r--r-- 1 cbonomo cbonomo 0 2013-01-10 18:58 test
stat test
File: test
Size: 0 Blocks: 0 IO Block: 4096 archivo regular vaco
Device: 804h/2052d Inode: 73793 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ cbonomo) Gid: ( 1000/ cbonomo)
Access: 2013-01-10 18:58:53.124142406 +0200
Modify: 2013-01-10 18:58:53.124142406 +0200
Change: 2013-01-10 18:58:53.124142406 +0200
stat enlace-a-test
File: enlace-a-test -> test Size: 4 Blocks: 0 IO Block: 4096 vnculo simblico
Device: 804h/2052d Inode: 77212 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 1000/ cbonomo) Gid: ( 1000/ cbonomo)
Access: 2013-01-10 18:59:07.812139890 +0200
Modify: 2013-01-10 18:59:06.460112888 +0200
Change: 2013-01-10 18:59:06.460112888 +0200
Podemos comprobar que cada uno tiene su propio inodo. Esta es la principal
diferencia que haremos con los hard links.
Hard links
Los hard links lo que hacen es asociar dos o mas archivos compartiendo el mismo
inodo. Esto hace que cada hard link sea una copia exacta del resto de los archivos
asociados, en sus datos, permisos, propietarios, etc. Esto implica que cuando
hagamos cambios en uno de los links o en el archivo, estos cambios tambien
aplicaran en el resto de los links.
E-Learning
6 / 10
walter, duran
Los hard links no pueden hacerse contra directorios y tampoco fuera del sistema de
archivos.
E-Learning
7 / 10
walter, duran
Ubicacin de archivos
E-Learning
8 / 10
walter, duran
E-Learning
9 / 10
walter, duran
/opt: Este directorio contiene paquetes que no vienen normalmente con el sistema
operativo, como juegos o procesadores de texto. Normalmente, estos programas
residen en subdirectorios del mismo.
/home: este directorio contiene la informacion de los usuarios, y es compartido y
dinamico. Normalmente, este directorio reside en su propia particion.
/root: este es el home directory del usuario root, el cual necesita mas proteccion
que los usuarios normales, por lo que no es compartido.
/var: Este directorio contiene logs del sistema, archivos de cola de impresion, mails
y noticias, y ms. Se caracteriza por poseer contenido variable. Si bien algunos
subdirectorios son compartidos, la mayoria no lo son. Muchos administradores
colocan este directorio en su propia particion.
/tmp: Este directorio contiene archivos temporales generados por programas.
Muchas distribuciones incluyen tareas que limpian este directorio diariamente.
/mnt: Linux monta los dispositivos removibles en la estructura de directorios, y esto
se realiza en este directorio. Se crean subdirectorios partiendo de /mnt, como
/mnt/floppy o /mnt/cdrom, para funcionar como puntos de montaje.
/media: Este directorio es opcional, cumpliendo una funcion similar a /mnt, pero
contiene subdirectorios para tipos especificos de dispositivos removibles, como
/media/floppy o /media/cdrom.
/dev: Ya que Linux trata a la mayoria de los dispositivos de hardware como si fueran
archivos, deben tener una ubicacin en el filesystem donde quedar almacenados.
/dev cumple esa funcion, conteniendo un gran numero de archivos que funcionan
como interfaces de hardware. Si el usuario tiene suficientes privilegios, podr
acceder al dispositivo de hardware leyendo su archivo asociado.
/proc: Este directorio se diferencia de todos los demas, ya que en realidad lo que
hace es montar un filesystem virtual que es creado dinamicamente por el sistema
operativo para proveer acceso a ciertos tipos de hardware que no son accesibles a
traves de /dev.
El conocimiento de estos directorios es bsico para administrar apropiadamente un
sistema Linux. Por ejemplo,si instalamos un programa en una ubicacin incorrecta,
eso puede causar problemas mas adelante. Si ponemos un binario en /bin, cuando
deberia ir en /usr/local/bin, ese programa podra ser borrado en un upgrade del
sistema.
E-Learning
10 / 10