Manejo de archivos y directorios La estructura del sistema de archivos de Linux es jerárquica. En esta estructura, se declara una ubicación precisa de un archivo con una cadena denominada Ruta o path. Una ruta está conformada por una sucesión de nombres de directorios y subdirectorios ordenados jerárquicamente de izquierda a derecha, separados en el caso de Linux por el carácter /. Archivos Un archivo es la estructura básica utilizada para almacenar información en Linux. Un archivo en una secuencia de bytes que se almacena en algún lugar del dispositivo de memoria, comúnmente el disco duro. Un archivo se identifica por el nombre que tiene asociado. El nombre de un archivo puede tener cualquier combinación de caracteres, excepto símbolos que tiene significado especial en el sistema como (/) o (*). Las mayúsculas y minúsculas son diferentes en Linux.
mismo archivo. Un enlace simbólico ayudaría a no tener inconsistencias y ahorrar espacio. El archivo tendría dos nombres de manera que los usuarios crean que tienen copias distintas del mismo archivo. Cuando un usuario realiza cambios, éstos se realizan sobre la versión común. Directorios: Un directorio contiene una lista de archivos y subdirectorios, lo mismo que información sobre localizaciones y atributos. Archivos especiales: representan los dispositivos conectados a un computador, como puede ser una impresora. De esta forma introducir información en ese archivo equivale a enviar información a la impresora. Para el usuario estos dispositivos tienen el mismo aspecto y uso que los archivos ordinarios. Existen otros archivos que no pueden ser clasificados en ninguna de las categorías anteriores, por tener propósitos específicos dentro de Linux.
Directorios Tipos de archivos en Linux Archivos ordinarios: Son los archivos que contienen la información o datos de usuario. Archivos ejecutables: Son los archivos que contienen programas de aplicación, Enlace simbólico: Un enlace simbólico es otro nombre para identificar un archivo específico. Se usa cuando, por ejemplo, dos personas deben trabajar sobre el
Es un mecanismo para agrupar archivos que se encuentren relacionados, permitiendo el manejo y administración del gran número de archivos que puede tener un usuario. En Linux, también se pueden crear subdirectorios (subcarpetas) para tener una mejor clasificación de los documentos.
Estructura jerárquica /dev Linux tiene una estructura de archivos y directorios predeterminada al realizar la instalación. Esta estructura puede alterarse añadiendo o eliminando nuevos archivos y directorios o moviendo los archivos de un directorio a otro. Los principales directorios de Linux se pueden observar en la siguiente tabla: Directorio /bin
/sbin
/etc /etc/skel
/proc
/boot
/var
/lib /usr /usr/rnan
/usr/doc /opt /home
Descripcion Archivos ejecutables de Linux Algunos ejecutables propios del sistema Archivos de configuración Archivos básicos de cada nuevo usuario Archivos de información del sistema Archivos necesarios para el arranque de Linux Usos varios. Por ejemplo log, spool correo, etc. Librerías del sistema Software instalado no comercial Directorio que contiene las ayudas del sistema Documentación del software instalado Software instalado comercial Directorios de trabajo de los
/root /losi-t-found
/mnt
usuarios Contiene los archivos asociados a los dispositivos Directorio de trabajo del root Relación de los archivos defectuosos del disco Directorios asociados a dispositivos de almacenamiento
La estructura jerárquica es una estructura de archivos en árbol, en donde la raíz generalmente se ubica en la parte superior. El directorio en el cual puede trabajar el usuario se llama /home. En cada sesión el usuario comienza en su directorio de trabajo y se puede mover hacia el interior. La posibilidad de moverse en los subdirectorios depende de permisos o privilegios asignados por el root y otros usuarios. Para acceder a dos archivos con el mismo nombre se debe especificar su ruta de acceso, Por ejemplo: /home/martha/trabajo/presentación /home/martha/clase/presentación A estas rutas de les denomina Nombres de camino, porque definen el camino a seguir por el árbol de directorios para llegar al archivo. Nombres de camino completos o absolutos: Son los nombres de camino que van desde la Raíz hasta el nombre del archivo. En estos, el primer slash / corresponde a la raíz y los demás son separadores entre nombres de directorios.
El último separa el nombre del archivo del nombre del directorio que lo contiene. Nombres de camino relativos: No siempre es necesario especificar la ruta completa para hacer referencia a los archivos. Cuando se utilizan estos, la ruta no comienza con el carácter /. Si me encuentro en el directorio /home/martha, puedo acceder a los archivos así: trabajo/presentación clase/presentación Especificación del directorio actual: Para hacer referencia el directorio actual de trabajo, se utiliza el punto (.). Por ejemplo: ./trabajo/presentación, es el nombre de camino del archivo presentación en el directorio trabajo que está en el directorio actual.
Especificación del directorio padre: (..) se utilizan para hacer referencia al directorio padre del directorio actual. El directorio padre en el siguiente directorio hacia arriba en el árbol de directorios. Puesto que el sistema de archivos es jerárquico todos los directorios tienen un directorio padre, excepto el directorio raíz. ../..: hace referencia al padre del padre ../../..: hace referencia al padre del padre del padre Visualización del directorio actual La orden pwd (print working directory) muestra en pantalla el nombre del directorio actual con el nombre de camino completo desde la raíz
El carácter comodín * El carácter * puede sustituir cualquier cadena de caracteres cuando hace referencia a un nombre de archivo. Por ejemplo, info*, puede hacer referencia a los archivos informe, información… Para asegurar que se selecciona el archivo adecuado se puede utilizar la orden - ls , ls info*, así se listaran todos los archivos que cumplan la condición.
Operaciones sobre archivos La orden Multipropósito CAT La orden cat permite crear un archivo de texto, añadir texto, mostrar su contenido y duplicar archivos. Al escribir la orden cat > nombrearchivo y <Enter> se crea el archivo. Si ya existe lo sobreescribe.
A partir de esta orden todo lo que teclee se envía al archivo especificado. Se envía una línea cada vez que pulse <Enter>. Si se desea terminar la escritura del archivo, se da la orden <Ctrl><D>, significa fin de archivo. Para añadir texto al archivo, se utiliza la orden cat >> nombrearchivo. Esto recoge lo que se escriba y lo envía al final del archivo. Para ver el contenido del archivo en pantalla se utiliza la instrucción cat nombrearchivo Para copiar el contenido de un archivo, se puede utilizar la instrucción cat nombrearchivo > nuevoarchivo
Para añadir la información de un archivo al final de otro, se puede utilizar cat nombrearchivo >> otroarchivo
ls -r ls -tr ls -l
Listado de un directorio
Mover y renombrar archivos
La orden ls (list) permite visualizar el contenido del directorio actual. Sin argumentos la orden ls no especifica si los nombres corresponden a archivos o directorios.
La orden mv permite mover un archivo de un directorio a otro. Esta orden también permite renombrar un archivo, moviéndolo al mismo directorio pero con otro nombre. Por ejemplo
Listado de archivos ocultos: Se utiliza la orden ls –a, para ver el contenido del directorio actual incluyendo los archivos ocultos.
mv tarea /home/martha/ trabajos, mueve el archivo tarea que está en directorio actual al directorio trabajo.
Listado con marcas La orden ls –F, se produce una lista donde se marcan los directorios con el carácter (/) al final, los ejecutables con asterisco (*) y los archivos ordinarios sin marca.
Linux no tiene una instrucción para renombrar los archivos. Se utiliza el comando mv.
Control del formato en pantalla: Cada línea muestra siete campos de derecha a izquierda:
Orden ls -a ls -F ls -1 ls -x ls -t
Nombre del archivo Fecha de creación o modificación Tamaño en bytes El grupo al que pertenece el usuario El usuario o propietario El tipo de archivo Los permisos o autorizaciones
Descripcion Lista todos los archivos incluidos los ocultos Listado con marcas de diferenciación El número uno significa una sola columna Ordena alfabéticamente A-Z Ordena por fecha / hora
Orden invertido Z-A Ordena por fecha / hora invertida Formato largo
mv actividad trabajo. Cambia el nombre del archivo actividad a trabajo La opción –i, informa al usuario si un archivo se va a sobreescribir. mv –i datos info
Copiar archivos La orden cp permite copiar archivos, primero se escribe el nombre del archivo que se desea copiar y a continuación el nombre del nuevo archivo usando un camino absoluto o un camino relativo. cp * /home/ martha copia todos los archivos del directorio actual en el directorio martha. Para copiar todo un directorio con su contenido se utiliza la opción –r cp –r / trabajos/ universidad
Para confirmar si se desea sobreescribir
mkdir trabajo crea el directorio trabajo en el directorio actual
cp –i tarea /martha/información Eliminación de archivos
mkdir /home/martha/ nuevo crea el directorio nuevo en el directorio del usuario martha.
La orden rm se utiliza para eliminar archivos que no se necesitan. Se puede usar el carácter * para eliminar varios archivos al mismo tiempo. La opción –i se utiliza para confirmar antes de eliminar.
Eliminación de un directorio
rm trabajo elimina el archivo trabajo rm tra* elimina todos los archivos que inicien con estos caracteres.
Se puede eliminar un directorio usando la orden rmdir nombredirectorio. Solo permite eliminar si el directorio se encuentra vacio. Movimiento entre directorios La orden cd (change directory) permite moverse entre directorios.
Eliminar un directorio con su contenido Se utiliza la orden rm –r nombredirectorio Elimina el directorio que está almacenado en el directorio actual, la opción –r indica que lo hará recursivamente, eliminado directorios y archivos que contenga. Comando ln ln [opción] origen destino Crea enlaces entre archivos ln – s Enlace simbólico suave. Al borrar el archivo se borra el enlace ln –d permite al superusuario hacer enlaces duros.
Creación de directorios. La orden mkdir permite crear directorios, especificando un nombre de camino absoluto o relativo. Por ejemplo
Se puede mover a un directorio en particular, especificando el nombre de camino completo. Se puede ir al directorio padre con cd.. o al directorio padre del padre cd../.. o al directorio raíz con cd /. Tamaño de directorios Es posible conocer el tamaño en Kbytes del directorio actual y sus subdirectorios, con al orden du. Se puede indicar el nombre de un directorio, du nombredirectorio Permisos y Privilegios
En Linux existen tres clases de autorizaciones para archivos que corresponden a tres clases de usuarios: propietario (usuario), el grupo al que pertenece el propietario (grupo) y otros usuarios del sistema (otros)
Un grupo es un conjunto de usuarios que están relacionados, el root registra el grupo en el sistema. La mayoría de los periféricos en Linux son grupos. El comando ls –l permite observar los permisos y privilegios
eliminar autorizaciones (+ o -). Luego se especifican las autorizaciones (r lectura, w escritura, x ejecución o acceder a directorios). Al final se indica el archivo o archivos a los que se hace referencia. Por ejemplo: chmod go – rx trabajo elimina las autorizaciones de lectura y ejecución al archivo trabajo para el grupo y otros usuarios. Se puede asignar permisos de forma automática:
El primer carácter indica si es un archivo ordinario (-), directorio (d) o un enlace simbólico (l). Las siguientes tres letras hacen referencia a las autorizaciones del propietario del archivo. Las siguientes tres letras son las autorizaciones del grupo y las ultimas son los permisos de otros usuarios. Lectura r Escrituraw Ejecución x Si un archivo tiene la siguiente autorización -rwxr-xr-x significa que: es un archivo ordinario (-), el usuario puede leer (r), escribir (w), y ejecutar el archivo (r). El grupo puede leer (r) y ejecutar (r) al igual que los otros. Modificar permisos La orden chmod permite fijar y modificar los permisos de acceso al contenido, de modificación y ejecución. Con chmod se especifica en primer lugar el tipo de usuario al que se le van a cambiar las autorizaciones (u para usuario, g para grupo y o para otros). En segundo lugar se indica si se desea adicionar o
chmod u=rw actividad Se puede añadir autorizaciones: chmod ugo + rwx carta chmod a +rwx carta Se añaden permisos a todos los usuarios. Se cambian los permisos a todos los archivos almacenados en un directorio Chmod –R u+r carta Añade la autorización de leer al propietario para todos los archivos pertenecientes al directorio carta de manera recursiva (-R)
Se pueden fijar permisos utilizando directamente un código numérico, representado en tres números: propietario, grupo y otros. Para autorización de lectura se suma 4, para escritura 2 y para ejecución 1. chmod 750 carta, fija permisos de lectura, escritura y ejecución al propietario, lectura
y ejecución al grupo y ningún permiso a los otros. Para el ejemplo: Usuario Grupo Otros Lectura 4 4 0 Escritura 2 0 0 Ejecución 1 1 0 Suma 7 5 0
Impresión de archivos La orden básica para imprimir un archivo es lpr (line printer). lpr nombrearchivo imprime el archivo en la impresora por defecto. Para imprimir varios archivos:
Otros comandos
lpr nombrearchivo* imprime todos los archivos que empiecen con nombrearchivo
Estado del disco El comando df, reporta el estado de las particiones en uso o dispositivos de almacenamiento. Indica por columnas, nombre de la partición o dispositivo, tamaño, espacio utilizado, espacio disponible.
Búsqueda de archivos Con al orden find se puede explorar el sistema de archivos, y localizar un archivo. find . –name nombrearchivo busca los archivos que tengan el nombre nombrearchivo y estén en el directorio actual (.) find / -name “nombrearchivo*” todos los archivos que estén en cualquier parte del sistema y comience por nombrearchivo Comando less La orden less visualiza una pantalla de texto, después solicita ordenes para realizar desplazamiento. Para hacer una búsqueda tecle / y a continuación el texto.
lpr –P laser nombrearchivo, envía a una impresora diferente de la predeterminada el archivo. Cancelar una impresión La orden lprm cancela toda la cola de impresión en la impresora por defecto. La orden lpmr –P impresora detiene la impresión en una impresora especificada.
Monitoreo de impresión La orden lpq –l o lpq informa las impresoras disponibles en el sistema y el número de trabajos planificados. Así se puede controlar los trabajos de impresión.
Bibliografía. Richard Petersen, Manual de referencia, Linux. Osborne, McGraw-Hill. 1a edición en español, 2001. Carlos Eduardo Gómez Montoya, Julián Esteban Gutiérrez Posada. Linux: comandos y conceptos. 2000