MANDATOS EN LINUX
IES Peset Aleixandre
MANDATOS EN LINUX Contenido 1.INTERFAZ DE MANDATOS DE LINUX..............................................................2 Iniciar una sesión en Linux...........................................................................3 2.MANDATOS EN LINUX...................................................................................5 Mayúsculas y minúsculas.............................................................................5 Construcción de expresiones.......................................................................5 Edición de la línea de mandatos...................................................................6 Mandatos múltiples................................................................................ ......7 Redireccionamiento de mandatos................................................................7 Redireccionamiento de los errores...............................................................8 Algunos Comandos Sencillos de LINUX.........................................................8 3.ALMACENAMIENTO DE LA INFORMACIÓN......................................................9 Estructura física...........................................................................................9 Tipos de discsos duros...............................................................................10 Estructura lógica........................................................................................10 Tipos de particiones...................................................................................11 4.SISTEMAS DE FICHEROS.............................................................................11 Estructura del sistema de archivos en LINUX.............................................12 Organización de directorios........................................................................13 5.TRABAJANDO CON DIRECTORIOS................................................................14 Crear directorios........................................................................................14 Eliminar directorios....................................................................................15 Renombrar o mover directorios..................................................................16 Desplazándose entre directorios................................................................16 6.TRABAJANDO CON ARCHIVOS.....................................................................17 Página 1 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Crear archivos....................................................................................... .....17 Copiar archivos..........................................................................................18 Renombrar o mover archivos.....................................................................19 Eliminar archivos.......................................................................................19 Examinar el contenido de un archivo.........................................................20 La instrucción ls.........................................................................................21 Buscar archivos......................................................................................... .23 Búsquedas de texto en los archivos...........................................................24 Cambio de modo de los ficheros comandos chmod, chown y chgrp............25 Espacio ocupado en el disco. Comandos du y df........................................27 7.VISUALIZACION DE ARCHIVOS....................................................................27 Visualización sin formato de un fichero. Comando cat................................27 Visualización de ficheros con formato. Comando pr....................................28 Visualización de ficheros pantalla a pantalla. Comandos more y less.........28 Otros comandos de visualización de ficheros.............................................29 Búsqueda en ficheros. Comandos grep, fgrep y egrep................................29 Compresión y descompresión de ficheros. Comandos tar y gzip.................30 Comandos de impresión. Comando lpr.......................................................31 Redirecciones........................................................................................... ..31 8.ACCESO A UNIDADES DE DISCO..............................................................32 Montar desde entornos gráficos.................................................................34
Página 2 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
1. INTERFAZ DE MANDATOS DE LINUX En linux es posible trabajar de dos formas diferentes : utilizando el interfaz de mandatos o empleando el interfaz gráfico. Vamos a analizar el trabajo desde el interfaz de comandos ya que es la única manera de realizar determinadas operaciones , y porque de esta forma podemos tener un mayor control y comprensión del sistema operativo. El interfaz de comandos de Linux es el shell, se trata de un programa que se inicia una vez ha comenzado una sesión de trabajo. El shell proporciona una interfaz entre el kernel del sistema operativo y el usuario. En Linux disponemos de diferentes shells, siendo los más utilizados el shell denominado bash o Bourne Shell.
Iniciar una sesión en Linux Si Linux se ha arrancado en modo texto el sistema arranca de forma directa el shell y queda a la espera de introducción de nuevos comandos. Si se ha arrancado en modo gráfico se puede acceder al shell de dos formas: • Se puede acceder al shell del sistema presionando alguna de las siguientes combinaciones de teclas: o
++ o ++ o ++ o ++ o ++ o ++
•
Esto hace que el sistema salga del modo gráfico y acceda a alguna de las seis consolas virtuales de Linux, a las cuales también se puede acceder cuando se arranca en modo de texto. Para volver al modo gráfico hay que presionar ++ o ++. Una de las principales ventajas del trabajo con múltiples consolas, consiste en la posibilidad de poder finalizar algún proceso o aplicación que haya podido bloquear otro terminal. Evitando de esta forma tener que reiniciar el sistema. Se puede acceder al shell haciendo clic sobre el icono de terminal.
Una vez finalizada la carga del sistema, se visualizará una pantalla en la cual se nos solicita que introduzcamos la información necesaria para iniciar una sesión de trabajo. La información que debemos introducir es nuestro nombre de usuario (localhost login) y la contraseña (Password). Localhost es lel nombre de la máquina Linux utilizada, vosotros tendréis como nombres de máquina ordxx siendo xx el número de ordenador en el aula. Una vez introducida la contraseña, si no se ha cometido ningún error, la pantalla se limpiará y aparecerá la línea de mandatos (prompt), representada por el símbolo # si has entrado como root y por el símbolo $ si has entrado como cualquier otro usuario distinto del administrador. Cambiar la contraseña : cuando queramos cambiar nuestra contraseña, utilizaremos la instrucción passwd, la teclearemos y pulsaremos ENTER. A continuación, Linux nos solicitará la nueva contraseña. Cuando establezcas Página 3 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
una contraseña debes tener presente que es recomendable que como mínimo tenga 6 caracteres, que no sea una fecha, número o nombre que sea asociable contigo o fácilmente reconocible. La contraseña te será solicitada dos veces para evitar posibles errores. Finalizar una sesión de trabajo : Cuando deseamos dejar de trabajar en Linux sin apagar el sistema, o en el caso de que estemos utilizando un usuario cuyos permisos sobre el mismo no incluyan la posibilidad de apagar el sistema, deberemos finalizar la sesión de trabajo. Para ello podemos utilizar el mandato exit o logout : 1. Sitúate en la consola virtual en la que has iniciado una sesión de trabajo. 2. Escribe logout y pulsa Enter. $ logout Como puedes observar deslpués de unos breves instantes se limpiará la pantalla y volverá a aparecer la pantalla de inicio de sesión. Reinicializar o apagar Linux : En ningún momento debes apagar el ordenador o reinicializarlo fisicamente, ya que esto podría provocar la pérdida de datos o errores de disco. Para reiniciar Linux podemos utilizar dos mandatos diferentes, reboot o shutdown -r, y si deseamos apagar el sistema emplearemos los mandatos shutdown -h o halt. El comando shutdwon dispone de diversas opciones que lo convierten en una opción más flexible y útil que los mandatos reboot y halt. A diferencia de estos dos últimos con shutdown podemos especificar en qué momento deseamos detener o reiniciar el sistema, indicando para ello la hora o el tiempo restante en minutos. En el siguiente ejemplo indicamos al sistema que éste va a detenerse a las 23:15. # shutdown -h 23:15 Si queremos reiniciar el sistema dentro de cinco minutos lo podríamos hacer de la siguiente forma : # shutdown -r +5 Es posible cancelar un shutdown desde otra consola utilizando el comando : # shutdown -c Para reiniciar el sistema inmediatamente utilizaremos la palabra now. #shutdown -r now Ten en cuenta que estos mandatos no pueden ser empleados por un usuario que no sea el administradordel sistema. Obtener ayuda : Una de las características de Linux es la amplia documentación que se incluye en la mayoría de las distribuciones existentes. Esta documentación se encuentra ubicada en el directorio /etc/doc. Si deseamos obtener información sobre los parámetros y funcionamiento de las diversas instrucciones o mandatos de Linux deberemos utilizar el comando man indicando a continuación la instrucción sobre la cual necesitamos obtener información. # man shutdown Una vez cargada la ayuda podemos desplazarnos por ella utilizando los cursores. Cuando hayamos terminado podremos salir pulsando la tecla q. En Página 4 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
cualquier momento podemos obtener ayuda sobre el funcionamiento de man pulsando la tecla h mientras estamos visualizado la pantalla de ayuda.
2. MANDATOS EN LINUX Aunque en la actualidad ya es posible realizar muchas operaciones desde X Window, el interfaz gráfico de Linux, sigue siendo imprescindible utilizar el shell para determinadas operaciones. Antes de examinar las instrucciones más importantes que podemos emplear desde la línea de comandos analizaremos algunos aspectos importantes que debemos tener presentes para poder utilizar correctamente los mandatos que veremos en capítulos posteriores. Ten presente que alguno de los aspectos analizados en este capítulo son también válidos cuando utilicemos X Window.
Mayúsculas y minúsculas Uno de los aspectos importantes que debemos tener presente al utilizar Linux es que este, al igual que sucede con Unix , y a diferencia de Windows, distingue las mayúsculas de las minúsculas. Esto quiere decir que no es lo mismo crear un usuario denominado Albert que albert, de la misma forma no es lo mismo el archivo listaNombres.txt que listanombres.txt. En ambos casos los nombres simplemente se diferencian por el uso de las mayúsculas. Así por ejemplo, cualquiera de los siguientes son nombres de archivos o directorios válidos, pero ninguno de ellos es igual a otro : Nombrrres.txt nombres.txt archivos.nombres.txt ARCHIVOS.nombres.txt listadoDeNombresDeClientesDeLaEMpresaOrdenadosPorApellidos Un nombre de archivo puede tener hasta 256 caracteres, pero no podemos utilizar ninguno de los siguientes caracteres reservados :
*, ' & ( ) / ! ' ? \ | < > ; Construcción de expresiones En determinadas ocasiones necesitamos hacer referencia a más de un archivo simultáneamente, o deberemos realizar búsquedas en las cuales no podemos especificar un nombre en particular. Por ejemplo, puede ser necesario localizar todos los archivos que empiecen por la letra n, o encontrar los archivos que contengan la sílaba on. Para poder realizar estas tareas disponemos de los comodines, gracias a los cuales podemos construir expresiones regulares. Un comodín es un carácter que se emplea para sustituir un conjunto de caracteres. Una expresión regular es un modelo formado por comodines y un conjunto de caracteres. Así , por ejemplo, podemos utilizar comodines para listar todos los archivos de extensión conf del directorio /etc. Página 5 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
# ls /etc/*.conf Los principales comodines o meta caracteres que podemos emplear en Linux y en la mayoría de versiones Unix son los siguientes :
Comodín
Descripción
? * [] ^
Sustituye un carácter en la posición que ocupa. Sustituye uno o más caracteres. Sustituye un rango de valores Compara la coincidencia del texto al principio de la línea
$
Compara la coincidencia del texto al final de la línea
Si en lugar de listar como en el caso anterior todos los archivos de extensión conf quisiéramos localizar todos los archivos cuyo nombre tenga cuatro caracteres siendo el primero un l y su extensión sea conf escribiríamos el siguiente mandato :
# ls /etc/l????.conf En el caso de que tuvieran que empezar por una letra de entre la a y la m, fuera cual fuera el número de caracteres emplearíamos la siguiente instrucción :
# ls /etc/[a-m]*.conf Si tan sólo queremos los archivos que empiecen por a, do o m escribiríamos
# ls /etc/[a,d,m]*.conf Opciones para listar los archivos:
Edición de la línea de mandatos Algunos de los shell incluidos en Linux nos permiten realizar algunas operaciones básicas de edición cuando estamos introduciendo un comando. Una de estas acciones es con la tecla Tab que nos permite obtener un listado de todas las instrucciones que empiecen con el carácter o caracteres introducidos.. Por ejemplo, si introducimos en la línea de comandos los caracteres fi y pulsamos la tecla Tab conseguiremos ver en la pantalla un listado de mandatos, entonces simplemente tendremos que terminar de teclear el comando deseado. Página 6 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Mandatos múltiples En determinadas ocasiones podemos encontrarnos con la necesidad de ejecutar más de un comando simultáneamente. La forma más simple de hacerlo es utilizar el carácter ;. Por ejemplo: # ls /; cat /etc/shells Con esta sentencia se ejecutan las dos instrucciones visualizándose el resultado de ambas por pantalla.
Redireccionamiento de mandatos Otra posibilidad que nos brinda Linux es la de redireccionar la salida de los comandos. En alguna ocasión puede resultar interesante desviar la salida estándar de un comando. Por ejemplo, si deseamos guardar en un archivo el listado con el contenido del directorio /etc simplemente deberemos escribir : # ls /etc > listado.txt De esta forma se creará un archivo denominado listado.txt en el directorio actual con el listado de /etc. Si el archivo existiera sería previamente borrado. En el caso de que no queramos borrar el archivo existente y tengamos que añadir más información a él deberemos utilizar la doble redirección, >>, en lugar de la simple empleada en el ejemplo anterior. # ls /usr >> listado.txt. Al ejecutar el comando anterior hemos añadido el listado del directorio /usr al archivo listado.txt. En el caso de que el archivo no existiera se crearía de forma automática. Para ver su contenido podemos utilizar el comando cat. # cat listado.txt Si quieres realizar una pausa cada vez que se llene la pantalla recuerda que puedes emplear el mandato more. Otra función de la redirección es indicar a un mandato con qué datos debe trabajar. # more < listado.txt En este caso la doble redirección se emplea para indicar cuando debe detener la lectura. Así, si introducimos el siguiente comando podremos escribir nombres en el fichero nombres2.txt hasta que escribamos la palabra fin. # cat > nombres2.txt << fin
Redireccionamiento de los errores También es posible redireccionar los errores que puedan producirse en la ejecución de un comando. Los errores pueden redireccionarse a un archivo Página 7 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
como hemos hecho anteriormente en el caso de la salida estándar o bien a un dispositivo nulo en el caso de que queramos ignorarlos. Los operadores utilizados para redireccionar los mensajes de error son los mismos que hemos utilizado anteriormente pero precedidos por el número 2. En el shell de Linux o cualquier otro Unix la salida y entrada estándar tienen números de archivos asignados: • La salida es el 1, • La entrada el 0 • Los mensajes de error el 2. En el siguiente ejemplo hemos redireccionado la salida de errores a un archivo denominado errores.log # ls /etc/ddoc 2 > errores.log Después de ejecutar el comando anterior podemos imprimir el contenido de dicho archivo para comprobar los errores que se han producido. # cat errores.log Si no queremos que se visualicen los mensajes de error ni que se almacenen en un archivo deberemos redirigir la salida de errores a un dispositivo nulo. Este dispositivo ya se encuentra definido en el sistema dentro del directorio /dev y su nombre es null. # ls /etc/ddoc 2 > /dev/null
Algunos Comandos Sencillos de LINUX A continuación se describen algunos comandos sencillos de que pueden ser útiles para familiarizarse con los comandos del sistema.
date Muestra por pantalla el día y la hora. cal 1949 Muestra el calendario del año 1949. cal 05 1949 Muestra el calendario de mayo de 1949. who Indica qué usuarios tiene el ordenador en ese momento, en qué terminal están y desde qué hora. whoami Indica cuál es la terminal y la sesión en la que se está trabajando. clear Este comando limpia la consola
3. ALMACENAMIENTO DE LA INFORMACIÓN Cuando trabajamos con el ordenador, nos vemos en la necesidad de guardar la información en el disco duro, ya que de lo contrario se perdería esta información al apagar el equipo. Actualmente existen en el mercado varios estádares de conexión, que son, por orden de antigüedad: SCSI 1, IDE, SATA Y SATA II. Todos ellos tienen distintas cualidadesde velocidad y usan distintas controladoras en la placa base del equipo.
Página 8 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Estructura física
Tipos de discos duros
Página 9 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Estructura lógica La estructura lógica se refiere a la distribución y el orden con los que se debe de organizar toda la información del disco duro.
Página 10 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Tipos de particiones Primaria: Divisiones principales del disco.Como máximo, un disco puede tener cuatro particiones primarias. Extendida: Forma de partición primaria que permite contener unidades lógicas en su interior . Un discoduro sólo puede contener una partición extendida . Por sí mismo, no puede contener archivos; debe de disponer de al menos una unidad lógica con un formato de tipos de archivos. Unidades lógicas: Particiones creadas dentro de la partición extendida. No existe un límite de unidades lógicas. Cada una puede contener distintas estructuras de archivos y sistemas operativos.
Página 11 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
4. SISTEMAS DE FICHEROS El kernel de Linux soporta distintos sistemas de ficheros. Un sistema de ficheros (filesystem) es la parte de un sistema operativo que determina el modo en el que se almacena la información en el disco duro de nuestro ordenador o en cualquier otro soporte de almacenamiento: disquetes, almacenamiento especial en memorias, CD-ROMS, etc. Un sistema operativo soportará un sistema de ficheros cuando conozca o disponga de todas las funciones para manejarlo accediendo a datos de una partición que lo utilice y manipulando los datos contenidos en ella, por supuesto sin provocar errores o pérdidas de información. Entre los sistemas de ficheros soportados en el kernel de linux se encuentran los siguientes : •
•
• •
•
•
•
Apple Macintosh FS : el soporte de ficheros Apple Macintosh permitirá acceder tanto en modo de lectura como de escritura de las particiones creadas por el sistema operativo MacOs. DOS FAT : El sistema FAT de MS-DOS es utilizado por las versiones más antiguas de Windows, y MSDOS, el sistema operativo disseñado por Microsoft. VFAT : El sistema de ficheros utilizado por Windows95, Windows98, por la versión 4.0 de Windows NT y también por Windows XP. NTFS Es el sistema de ficheros utilizado por las versiones de Windows NT anteriores a la versión 4.0.También lo podemos utilizar en Windows XP Extended2 : el sistema de ficheros utilizado mayoritariamente en las distribuciones GNU/Linux hasta la aparición de los primeros sistemas de ficheros con journaling. También conocido como Second Extended. Ext3 : Es la versión con journaling del sistema de ficheros secundario extendido (ext2) habitualmente utilizado en las instalaicones GNU/Linux. Al disponer de journaling, esta versión del sistema de ficheros dispone de una mayor tolerancia a fallos hardware, cortes de luz, etc. El journaling en los sistemas de ficheros es una característica que aumenta su fiabilidad. Esta técnica, basada en el funcionamiento de bases de datos, permite asegurar las operaciones realizadas en el movimiento o midificación de datos en el sistema de ficheros quedando reflejadas en un log o journal que facilita la resolución de problemas en caso de fallos eléctricos o similares. UDF Sistema de ficheros alternativo a ISO9660 desarrollado para unidades de CD-ROM y DVD esencialmente.
Imaginemos que disponemos de un disco duro en el que hay un sistema operativo instalado (por ejemplo Windows) que ha dejado de funcionar correctamente, podremos utilizar un kernel de Linux con soporte para ese tipo de particiones para montarlas y hacer copias de seguridad salvando los datos contenidos en el disco duro antes de rehacer y formatear las particiones para reinstalar el sistema operativo en cuestión de nuevo. Será en estas ocasiones cuando comprobaremos la gran utilidad del kernel de Linux al permitirnos añadir soporte de diversos filesystems.
Estructura del sistema de archivos en LINUX En Linux, al igual que en cualquier otro Unix, todo es un proceso o archivo. Un ejemplo de este hecho lo podemos encontrar en el dispositivo NULL. Este Página 12 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
dispositivo no es más que un archivo que se encuentra ubicado en el directorio /dev, y un ejemplo de utilización del mismo es redirigir la salida de los errores hacia ese dispositivo para que no se visualicen. # ls /etc/ddoc 2 > /dev/null Dentro del directorio /dev podemos encontrar diferentes archivos que están asociados a dispositivos tan diferentes como pueden ser un módem (/dev/modem), un ratón (/dev/mouse) o un disco duro (/dev/hda). Por ello es importante conocer y entender cómo funciona el sistema de archivo de Linux. El sistema de archivos de Linux está diseñado para almacenar la información de forma ordenada y jerarquizada. Los archivos se agrupan en directorios formando una estructura de árbol. Siguiendo esta jerarquía, cada usuario es propietario de los archivos y directorios que ha creado y tiene plenos derechos sobre ellos. Cada usuario tiene un directorio de trabajo en el que almacenará sus archivos y subdirectorios. Los demás usuarios no podrán acceder a menos que tengan permisos asignados para ello. Internamente el sistema de archivos de Linux está estructurado como un árbol, cada uno de los punteros que forman este árbol se denomina inodo. Un inodo es una estructura de datos que contiene toda la información sobre el archivo : tamaño, permisos, ubicación en el disco o discos, propietarios, tipo de archivo,
Organización de directorios Al instalar Linux se crearán por defecto una serie de directorios. Todos ellos se encuentran ubicados en el directorio raíz, que se representa por el símbolo /. Este directorio engloba todos los demás archivos y directorios, siendo su propietario el administrador del sistema. A diferencia de otros sistemas operativos, como es el caso de Windows en cualquiera de sus versiones, en Linux no existe el concepto de unidades de disco, es decir no hay un directorio raíz para c:, otro para d:, etc. Sino que las unidades de disco son directorios del directorio raíz. Si examinamos el contenido del directorio /mnt veremos dos directorios que representan la unidad de CD-ROM y dle disquete. Los principales directorios que podemos encontrar en Linux son los siguientes : Investigación : deduce tú mismo y completa el contenido de la siguiente tabla : Directorio Descripción Bin Dev Etc
Página 13 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Lib Lost+foun d Mnt Tmp Usr Home
5. TRABAJANDO CON DIRECTORIOS Cuando trabajamos con Linux, al igual que con la mayoría de sistemas operativos, es importante saber movernos por su sistema de archivos. En primer lugar aprenderemos a trabajar con los directorios, veremos cómo crear , eliminar, copiar , renombrar o listar directorios. El directorio actual Normalmente podemos ver en el prompt del sistema el nombre del directorio en el que nos encontramos, pero no nos indica la ubicación exacta del mismo. En caso necesario podemos obtener el nombre completo del directorio actual, incluyendo todo el trayecto hasta el mismo con la instrucción pwd. # pwd
Crear directorios Cuando al trabajar diariamente con Linux nos encontremos con la necesidad de agrupar y clasificar la información y documentos que generemos de una forma lógica, no podemos tener todos los documentos dentro del directorio de trabajo. La forma de clasificar la información es situándola dentro de directorios, pero para poder hacerlo deberemos aprender a crear nuestros propios directorios. La instrucción de Linux que nos permite crear un directorio es mkdir. A continuación crearemos un directorio llamado ejemplos. $ mkdir ejemplos De esta forma crearíamos el directorio ejemplos dentro del directorio actual. Es decir, si nos encontrábamos dentro del directorio /home/elisa nuestro directorio ejemplos s encontraría en /home/elisa/ejemplos. También es posible crear un directorio en un lugar determinado, así, para crear el directorio anterior podríamos haber especificado todo el trayecto o Página 14 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
árbol de directorios como hemos hecho en el siguiente ejemplo para crear el directorio pruebas. $ mkdir /home/elisa/pruebas El nombre del directorio de trabajo coincide con el nombre de usuario. Otra posibilidad es, por ejemplo, crear un directorio denominado MisImagenes dentro de otro llamado MisDocumentos. $ mkdir MisDocumentos/MisImagenes Si ejecutamos la instrucción anterior observaremos como se produce un error, esto es debido a que no existe el directorio MisDocumentos . Para solucionar este contratiempo tenemos dos posibilidades. La primera de ellas es crear el directorio MisDocumentos y posteriormente volver a ejecutar la anterior instrucción para crear MisImagenes. La segunda posibilidad es indicar a mkdir que si no existe alguno de los directorios del árbol deberá crearlo de forma automática, para ello debemos utilizar el parámetro -p. $ mkdir -p MisDocumentos/MisImagenes
Eliminar directorios De la misma forma que nos puede ser necesario crear un directorio para guardar archivos en él, también podemos encontrarnos con que tengamos que eliminar un directorio que habíamos creado para guardar algún archivo de forma temporal. Para eliminar un directorio utilizaremos la instrucción rmdir. Así, por ejemplo, para eliminar el directorio pruebas creado en el apartado anterior escribiremos : $ rmdir pruebas En el caso de que tengamos que eliminar una estructura de directorios como la creada anteriormente utilizaremos el parámetro -p. Ten en cuenta que para poder eliminar un directorio éste debe estar vacío, no pudiendo contener archivos. Por tanto:
Renombrar o mover directorios La instrucción empleada para renombrar o mover un directorio es mv. Así para cambiar el nombre del directorio ejemplos por el de pruebas escribiríamos : $ mv ejemplos pruebas En el caso de que existiera un directorio con el nombre pruebas, Linux no renombraría el directorio ejemplos, sino que lo movería dentro del directorio Página 15 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
pruebas. La siguiente instrucción mueve el directorio pruebas dentro de MisDocumentos. $ mv pruebas MisDocumentos Si comprobamos el contenido del directorio MisDocumentos observaremos como contiene los directorios MisImágenes y pruebas. $ ls -l MisDocumentos
Desplazándose entre directorios Ahora ya que sabemos cómo manipular directorios veremos cómo podemos movernos de un directorio a otro. Para desplazarnos dentro del árbol de directorios utilizaremos el comando cd. Para situarnos en el directorio MisDocumentos simplemente deberemos introducir el siguiente comando. $ cd MisDocumentos Si ahora comprobamos el directorio actual con pwd podremos observar cómo hemos cambiado de directorio. En cualquier momento podemos volver a nuestro directorio de trabajo simplemente introduciendo el comando cd sin especificar un directorio de destino. $ cd También es posible especificar la ruta completa del directorio al que queremos desplazarnos, por ejemplo : $ cd /home/elisa/MisDocumentos/MisImagenes O $ cd /user/bin Para desplazarnos al directorio padre del directorio en el que estemos situados escribiremos : $ cd .. Si estábamos situados en /usr/bin después de introducir la instrucción anterior nos encontramos en /usr. En el caso de que queramos ir al directorio principal o raíz el comando será : $ cd /
6. TRABAJANDO CON ARCHIVOS A continuación veremos algunos de los comandos más importantes que pone a nuestra disposición Linux para manipular archivos.
Página 16 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Crear archivos Cuando trabajamos con un sistema operativo disponemos de diversos métodos para crear archivos. Normalmente los archivos se crearán utilizando aplicaciones concretas. Por ejemplo, podemos utilizar un tratamiento de textos como Corel WordPerfect para crear archivos en los cuales se guardarán nuestros documentos o alguna de las aplicaciones de la suit StarOffice para crear una hoja de cálculo o base de datos que evidentemente se almacenarán en forma de archivos. En capítulos anteriores hemos visto cómo crear archivos redirigiendo la salida de un comando como ls a un archivo. A diferencia de otros sistemas operativos en Linux podemos crear un archivo vacío con el comando del sistema, touch. $ touch unarchivovacio De esta forma hemos creado un un archivo denominado unarchivovacio. En el caso de que el archivo existiera se cambiará la fecha del último acceso y modificación del archivo a la fecha actual del sistema. Podemos asignar otra fecha diferente a la del sistema utilizando el parámetro -t seguido de la fecha en formato AAAAMMDDhhmm.ss. $ touch -t 200011052315.45 unarchivo Podemos ver la nueva fecha realizando un listado del directorio con el formato lago y la fecha completa. $ ls -l –full-time Como puedes observar se ha modificado la fecha del archivo que habíamos creado anteriormente por la especificada en el comando touch. Opciones de touch:
Copiar archivos Para copiar archivos en Linux utilizaremos el mandato cp. Este comando nos permitirá realizar duplicados de los ficheros de una forma rápida. El formato más simple de esta instrucción es indicando el nombre del fichero a copiar y el nombre de la copia. $ cp listado.txt copialistado.txt Si el nombre de la copia es el de un directorio, Linux copiará el archivo origen en el directorio especificado. $ cp listado.txt MisDocumentos Página 17 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
También es posible copiar más de un archivo simultáneamente utilizando los comodines. Así, por ejemplo, podemos copiar todos los archivos que empiecen por lis al directorio MisDocumentos/MisImagenes. $ cp lis* MisDocumentos/MisImagenes Una de las precauciones que hemos de tener al realizar copias es que Linux sustituirá el archivo destino si éste existiera por el nuevo archivo. Para evitar eliminar de esta forma algún archivo accidentalmente podemos utilizar dos parámetros diferentes del comando cp. El primero de ellos es -i. Este parámetro fuerza a Linux a realizar la copia de forma interactiva, es decir, si el destino existiese se nos mostraría un mensaje de advertencia antes de sobrescribirlo $ cp -i listado.txt MisDOcumentos El segundo parámetro que podemos utilizar es -b, el cual realiza una copia de seguridad del archivo destino antes de sobreescribirlo $ cp -b listado.txt MisDocumentos
~
La copia de seguridad tiene una tilde, al final de su nombre. También podemos utilizar este comando para copiar directorios, pero para ello tendremos que utilizar el parámetro -r, de esta forma se realiza una copia recursiva, del directorio y su contenido. $ cp -r MisDocumentos CopiaDocumentos En caso necesario podemos combinar diversos parámetros, por ejemplo si queremos realizar una copia como la anterior de forma interactiva escribiríamos : $ cp -ri MisDocumentos CopiaDocumentos EL comando cp nos obliga siempre a especificar un nombre origen y un destion, así por ejemplo si queremos copiar el archivo passwd del directorio /etc en el directorio actual deberíamos hacerlo de la siguiente forma : $ cp /etc/passwd . Donde el punto representa el directorio actual. Si tan sólo indicamos el nombre del archivo origen, Linux nos devolverá un mensaje de error. Resumiendo:
Renombrar o mover archivos La instrucción utilizada para mover o renombrar un archivo es la misma que habíamos examinado anteriormente para realizar estas operaciones con los Página 18 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
directorios. Para cambiar el nombre del archivo listado.txt por lista.txt utilizaríamos el siguiente comando. $ mv listado.txt lista.txt Si el nuevo nombre coincide con el de un directorio, Linux moverá el archivo al directorio especificado. También es posible cambiar el nombre del archivo al mismo tiempo que lo movemos a un nuevo directorio. Al igual que con la instrucción cp hemos de tener cuidado al mover o cambiar el nombre a un archivo, siendo posible utilizar también los parámetros -i y -b vistos anteriormente.
Eliminar archivos El comando empleado para eliminar archivos es el rm. Este comando nos permitirá borrar tanto archivos como directorios. Para eliminar un archivo tan sólo tendremos que introducir el mandato rm seguido del nombre del archivo o archivos a eliminar. $ rm unarchivovacio copialistado.txt Recuerda que podemos utilizar los comodines para especificar más de un archivo a borrar. En el caso de eliminar más de un archivo podemos emplear el parámetro -i para que rm solicite confirmación antes de eliminar un archivo. $ rm -i CopiaDocumentos/l* Si tenemos que eliminar todos los archivos de un directorio, así como el propio directorio podemos hacerlo utilizando el parámetro -r. $ rm -r CopiaDocumentos/MisImagenes Es posible combinar los dos parámetros anteriores para evitar eliminar algún fichero accidentalmente. $ rm -ri CopiaDocumentos Para evitar que Linux nos solicite confirmación podemos emplear el comando -f. $ rm -rf MisDocumentos/pruebas Resumiendo:
Examinar el contenido de un archivo Junto con la instrucción cat que nos permite visualizar el contenido de un archivo de texto, tenemos otras dos instrucciones que nos aportan una mayor Página 19 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
flexibilidad al examinar un archivo, principalmente si su contenido ocupa más de una pantalla. Estas dos instrucciones son less y more. Ambos comandos nos permiten realizar una pausa cada vez que se llena la pantalla, así como la posibilidad de realizar determinadas operaciones de desplazamiento en el texto. En la siguiente tabla se listan las teclas que nos permiten interactuar con dichos comandos.
Podemos utilizar ambos comandos de formas diferentes, ya sea empleando las redirecciones : $ more < lista.txt $ less < lista.txt El carácter | (AltGr+1) combinando dos instrucciones : $ ls /etc | more $ ls /etc | less O indicando directamente el nombre del archivo o archivos a visualizar $ less lista.txt $ less lista.txt nombres.txt $ less n* Como puede observar, el comando less una vez finalizado el listado visualiza dos puntos en la última línea de la pantalla donde podemos introducir la tecla de la acción deseada.
La instrucción ls La instrucción utilizada en Linux para visualizar el contenido de un directorio es ls. A diferencia del dir del antiguo MS_DOS las posibilidades de este comando son muy extensas. ls dispone de más de 40 parámetros diferentes que permiten obtener más o menos información al realizar el listado de archivos y directorios. Investigación : escribe la función de cada uno de los parámetros del comando ls indicados en la tabla siguiente:
Página 20 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Recuerda que podemos combinar los parámetros anteriores en una única instrucción. Así, por ejemplo, podemos obtener un listado del directorio /etc en formato largo, ordenándolo por tamaño de archivo y visualizando el tamaño de los archivos en kilobytes. $ ls -lSh /etc Si tenemos que realizar pausas debido al tamaño del listado deberemos utilizar los comandos less o more. $ ls -lSh /etc | more También podemos añadir un poco de color a nuestro listado : $ ls -lSh –color=auto /etc Al igual que con otros comandos vistos anteriormente podemos utilizar comodines para filtrar el resultado. Página 21 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Por ejemplo, podemos obtener el listado de todos los archivos que empieden por n de nuestro directorio de trabajo. $ ls n* Junto con la instrucción ls disponemos de otros comandos que nos permiten realizar un listado del contenido de un directorio. Se trata de casos particulares de ls. Así, por ejemplo, la instrucción dir o d es equivalente a un ls -C -b y vdir o v a ls -l -b $ dir $ ls -C –b
Buscar archivos Aunque podemos intentar localizar un archivo o archivos realizando listados de lso diferentes directorios de Linux, encontrar un archivo de esta forma si no sabemos aproximadamente donde se encuentra puede convertirse en una tarea titánica. Linux pone a nuestra disposición diversas instrucciones que nos van a facilitar el trabajo que puede suponer localizar un archivo si no sabemos dónde se encuentra. La más importante de ellas es find. Esta instrucción nos permite localizar archivos o directorios a partir de alguna información conocida del mismo. Si quisiéramos encontrar todos los archivos existentes que empiecen por passw simplemente tendríamos que escribir la siguiente instrucción : $ find / -name passw* -print Puedes cortar en cualquier momento el listado pulsando CTRL + C. El primer valor especificado después del comando find es el directorio a partir dle cual se iniciará la búsqueda, a continuación hemos empleado el parámetro -name para poder indicar el nombre del archivo a buscar, y por último el parámetro -print se emplea para que se visualice por pantalla el resultado de la búsqueda. Para limitar el resultado de la búsqueda podemos especificar un directorio en particular como puede ser /etc, en lugar de empezar la búsqueda a partir del directorio raíz, /. Pero find, no sólo permite realizar búsquedas por nombre, sino que también es posible localizar archivos en función de su tamaño o fecha de creación entre otros conceptos. En el siguiente ejemplo hemos buscado todos los archivos de más de 750 Kb en el sistema de archivos actual. $ find / -size +750k -type f –print Para limitar la búsqueda a los archivos hemos utilizado el parámetro –type Otra posibilidad es buscar en función de la fecha del archivo, por ejemplo los archivos a los que no se ha accedido en los últimos dos meses : $ find / -atime +60 -print En los accedidos en los dos últimos días : $ find / -atime -1 -print Página 22 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
O incluso los archivos a los que se ha accedido en los últimos 60 minutos : $ find / -amin -60 –print
Búsquedas de texto en los archivos Linux también nos proporciona una serie de herramientas que nos permiten realizar búsquedas dentro de los archivos, se trata de la familia de comandos grep. Entre los que se incluyen grep, egrep, fgrep, y zgrep. El primero de ellos, grep , nos permite realizar búsquedas empleando expresiones regulares. Con el segundo, egrep, podemos emplear expresiones regulares extendidas para localizar un texto dentro de un archivo. El tercer comando, fgrep, se utiliza para la búsqueda de cadenas fijas, mientras que el último miembro de la familia, zgrep, nos permite buscar dentro de archivos comprimidos. El funcionamiento básico de grep es muy simple, debemos especificar la cadena buscada y el archivo donde realizamos la búsqueda. $ grep root L/etc/passwd En el ejemplo anterior hemos indicado a root dentro del archivo /etc/passwd, y él las líneas que contiene el texto root. también nos muestre el número de línea. .n.
grep que queríamos buscar el texto nos ha mostrado por pantalla todas Si queremos podemos hacer que Para ello emplearemos el parámetro
$ grep -n root /etc/passwd Podemos delimitar más la búsqueda empleando expresiones regulares. De esta forma le indicaremos a grep que el texto root debe encontrarse al principio de la línea. $ grep '^root' /etc/passwd En algunas ocasiones, si utilizamos expresiones regulares extendidas, el comando grep no funcionará correctamente, como sucede en el siguiente ejemplo: $ grep '\(file' /etc/info-dir En estas ocasiones deberemos emplear la instrucción egrep, la cual sí que nos permite utilizar expresiones regulares extendidas. $ egrep '\(file' /etc/info-dir Pero egrep también soporta expresiones regulares como grep o fgrep, es por ello que podemos emplear este comando indistintamente, siendo en más de una ocasión más práctico y flexible que sus homólogos. Página 23 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Opciones de grep:
Investigación : Completa la siguiente tabla.
Cambio de modo de los ficheros comandos chmod, chown y chgrp Los permisos de cada fichero se pueden ver con el comando ls -l. Para cambiar los permisos de un fichero se emplea el comando chmod, que tiene el formato siguiente: chmod [quien] oper permiso files quien Indica a quien afecta el permiso que se desea cambiar. Es una combinación cualquiera de las letras u para el usuario, g para el grupo del usuario, o para los otros usuarios, y a para todos los anteriores. Si no se da el quien, el sistema supone a. oper Indica la operación que se desea hacer con el permiso. Para dar un permiso se pondrá un +, y para quitarlo se pondrá un -. permiso Indica el permiso que se quiere dar o quitar. Será una combinación cualquiera de las letras anteriores : r,w,x,s. files Nombres de los ficheros cuyos modos de acceso se quieren cambiar. Por ejemplo, para quitar el permiso de lectura a los usuarios de un fichero el comando es: Página 24 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
chmod a -r fichero.txt Los permisos de lectura, escritura y ejecución tienen un significado diferente cuando se aplican a directorios y no a ficheros normales. En el caso de los directorios el permiso r significa la posibilidad de ver el contenido del directorio con el comando ls; el permiso w da la posibilidad de crear y borrar ficheros en ese directorio, y el permiso x autoriza a buscar y utilizar un fichero concreto. Por otra parte, el comando chown se emplea para cambiar de propietario (“change owner”) a un determinado conjunto de ficheros. Este comando sólo lo puede emplear el actual propietario de los mismos. Los nombres de propietario que admite Linux son los nombres de usuario, que están almacenados en el fichero /etc/passwd. La forma general del comando chown es la siguiente: chown newowner file1 file2 ... Análogamente, el grupo al que pertenece un fichero puede ser cambiado con el comando chgrp, que tiene una forma general similar a la de chown, chgrp newgroup file1 file2... Los grupos de usuarios están almacenados en el fichero /etc/group. Resumiendo:
Página 25 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Espacio ocupado en el disco. Comandos du y df El comando du permite conocer el espacio ocupado en el disco por un determinado directorio y todos los subdirectorios que cuelgan de él. Para usarlo basta simplemente colocarse en el directorio adecuado y teclear, du, éste comando da el espacio de disco utilizado en bloques. Para obtener la información en bytes se debe emplear el comando con la opción –h: du -h El comando df por el contrario informa del espacio usado por las particiones del sistema que se encuentren montadas.
7. VISUALIZACION DE ARCHIVOS Visualización sin formato de un fichero. Comando cat Este comando permite visualizar el contenido de uno o más ficheros de forma no formateada. También permite copiar uno o más ficheros como apéndice de otro ya existente. Algunas formas de utilizar este comando son las siguientes, cat filename Saca por pantalla el contenido del fichero filename.cat file1 file2... Saca por pantalla, secuencialmente y según el orden especificado, el contenido de los ficheros indicados. cat file1 file2 >file3 El contenido de los ficheros file1 y file2 es almacenado en file3. Página 26 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
cat file1 file2 >>file3 El contenido de file1 y file2 es añadido al final de file3. cat >file1 Acepta lo que se introduce por el teclado y lo almacena en file1 (se crea file1). Para terminar se emplea d
Visualización de ficheros con formato. Comando pr Este comando, a diferencia de cat, imprime por consola el contenido de los ficheros de una manera formateada, por columnas, controlando el tamaño de página y poniendo cabeceras al comienzo de las mismas. Está muy en relación con el comando lp de salida por impresora. Las formas más importantes que admite son las siguientes: •
•
• • • • • •
pr file Produce una salida estándar de 66 líneas por página, con un encabezamiento de 5 líneas (2 en blanco, una de identificación y otras 2 líneas en blanco). pr -ln file Produce una salida de n líneas por página (cuando el tamaño de papel de impresora, por ejemplo, tiene un número de líneas distinto de 66) pr -p file Hace una pausa para presentar la página, hasta que se pulsa para continuar pr -t file Suprime las 5 líneas del encabezamiento y las del final de página. pr -wn file Ajusta la anchura de la línea a n posiciones. pr -d file Lista el fichero con espaciado doble. pr -h `caracteres` file el argumento o cadena de caracteres `caracteres` se convertirán en la cabecera del listado. pr +n file Imprime el fichero a partir de la página n.
Además de los ejemplos anteriores, se pueden combinar varias opciones en un mismo comando, como por ejemplo en: pr -dt file la salida de este comando es por la consola, pero puede redireccionarse a otro fichero, por ejemplo, si ejecutamos el comando: pr file1 > file2 se crea un fichero nuevo llamado file2 que es idéntico a file1, pero con formato por páginas y columnas.
Visualización de ficheros pantalla a pantalla. Comandos more y less Estos comandos permiten visualizar un fichero pantalla a pantalla. El número de líneas por pantalla es de 23 líneas de texto y una última línea de mensajes, donde aparecerá la palabra more. Cuando se pulsa la barra espaciadora (el espacio en blanco), se visualizará la siguiente pantalla. Para salir de este comando (terminar la visualización) se pulsa d o q. Por ejemplo: more file
Página 27 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
El comando less es muy similar al anterior pero permite el desplazamiento a lo largo del texto empleando las teclas de cursores pudiendo desplazarse hacia arriba o abajo de un fichero.
Otros comandos de visualización de ficheros
Búsqueda en ficheros. Comandos grep, fgrep y egrep El comando grep localiza una palabra, clave o frase en un conjunto de directorios, indicando en cuáles de ellos la ha encontrado. Este comando rastrea fichero por fichero, por turno, imprimiendo aquellas líneas que contienen el conjunto de caracteres buscado. Si el conjunto de caracteres a buscar está compuesto por dos o más palabras separadas por un espacio, se colocará el conjunto de caracteres entre apóstrofes ('). Su formato es el siguiente: grep 'conjuntocaracteres' file1 file2 file3 siendo 'conjuntocaracteres' la secuencia de caracteres a buscar, y file1, file2, y file3 los ficheros donde se debe buscar. Veamos un nuevo ejemplo: grep 'TRIANGULARIZACION MATRIZ' matrix.f scaling.f Este comando buscará TRIANGULARIZACION MATRIZ entre las líneas de los ficheros matrix.f y scaling.f. Este comando permite seleccionar, entre todas las líneas de uno o más ficheros, aquellas que contienen un motivo que satisface una expresión regular determinada. grep [-opcion] expresión_regular [referencia...] Las opciones principales son: • c lo único que se hace es escribir el número de las líneas que satisfacen la condición. • i no se distinguen mayúsculas y minúsculas. • l se escriben los nombres de los ficheros que contienen líneas buscadas. • n cada línea es precedida por su número en el fichero. Página 28 de 33
MANDATOS EN LINUX • •
IES Peset Aleixandre
s no se vuelcan los mensajes que indican que un fichero no se puede abrir. v se muestran sólo las líneas que no satisfacen el criterio de selección.
A continuación se muestra una serie de ejemplos. • grep ‘ˆd’ text líneas que comienzan por d. • grep ‘ˆ[ˆd]’ text líneas que no comienzan por d. • grep -v ‘ˆC’ file1 > file2 quita las líneas de file1 que comienzan por C y lo copia en file2.
Compresión y descompresión de ficheros. Comandos tar y gzip Tanto el comando tar como gzip son ampliamente empleados para la difusión de programas y ficheros en Linux. El primero de ellos agrupa varios ficheros en uno solo o “archivo”, mientras que el segundo los comprime. En conjunto estos dos programas actúan de forma muy similar a programas como Winzip •
Para crear un nuevo archivo se emplea: tar –cvf nombre_archivo.tar fichero1 fichero2 …
donde fichero1, fichero2 etc. son los ficheros que se van a añadir al archivo tar. • •
Si se desea extraer los ficheros se emplea tar –xpvf nombre_archivo.tar fichero1 … Al contrario que tar que agrupa varios ficheros en uno, gzip comprime un único fichero con lo que la información se mantiene pero se reduce el tamaño del mismo. El uso de gzip es muy sencillo gzip fichero con lo que se comprime fichero (que es borrado) y se crea un fichero con nombre fichero.gz.
•
Si lo que se desea es descomprimir un fichero se emplea entonces: gzip –d fichero.gz recuperando el fichero inicial. Como se ha comentado al principio es típico emplear tar y gzip de forma consecutiva, para obtener ficheros con extensión tar.gz o tgz que contienen varios ficheros de forma comprimida (similar a un fichero zip). El comando tar incluye la opción z para estos ficheros de forma que para extraer los ficheros que contiene: tar –zxf fichero.tar.gz
Comandos de impresión. Comando lpr El comando lpr se emplea para imprimir una serie de ficheros. Si se emplea sin argumentos imprime el texto que se introduzca a continuación en la Página 29 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
impresora por defecto. Por el contrario, lpr nombre_fichero imprime en la impresora por defecto el fichero indicado.
Redirecciones Los comandos de Linux tienen una entrada estándar (número 0) y dos salidas estándar (número 1 para la salida normal del comando, y número 2 para la salida de los mensajes de error que se puedan producir en su ejecución). Por defecto tanto la entrada como las salidas estándar de los comandos son la propia terminal, a no ser que por la propia naturaleza del comando se den en él los nombres de algunos ficheros que hagan el papel de entrada y de salida. Por ejemplo, en el comando cp file1 file2 file1 es la entrada y file2 es la salida; aquí no intervienen las entradas y salidas estándar. Sin embargo, cuando utilizamos por ejemplo el comando ls (listado de directorio), la salida de este comando se dirige hacia la terminal. Si queremos que la salida de este comando se dirija a un fichero llamado file, podríamos escribir, ls >file el (>) es uno de los llamados operadores de redirección y dirige la salida estándar hacia el fichero indicado a continuación; si este fichero no existe, se crea en ese momento. Otros operadores de redirección son el operador (<) que redirige la entrada estándar desde un determinado fichero, y el operador (>>) que redirige la salida estándar hacia otro fichero, pero añadiendo dicha salida al final de ese fichero, sin sobreescribir el contenido original. Por ejemplo, si cada vez que entramos en el sistema ejecutamos el comando, date >>archivo tendremos un fichero llamado archivo que contiene información sobre todas las veces que hemos entrado en el sistema. Otro ejemplo, para añadir al fichero file2 al final de file1 y al conjunto llamarle file3, sería cat file1 file2 >file3 o, si quisiéramos que el fichero resultante fuera el mismo file1, cat file2 >>file1. Un ejemplo en redirección a la entrada podría ser el siguiente, mail juan
8. ACCESO A UNIDADES DE DISCO Linux a diferencia de Windows no utiliza letras ("a:", "c:", "d:", ...) para acceder a las distintas unidades de disco de un ordenador. En Linux para acceder al contenido de una unidad de disco o de un CD-ROM este tiene que haber sido previamente "montado". Montar un dispositivo o unidad es enlazarlo o incluirlo como parte de su sistema. Es decir, al montar un dispositivo en nuestra instalación de GNU/Linux podremos tener acceso a él a partir del punto de montaje asignado. Montar es, en definitiva, hacer físicamente accesible un dispositivo o sistema de ficheros desde un punto concreto en el sistema de ficheros de nuestro sistema GNU/Linux. Página 30 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Por ejemplo, las distribuciones de GNU/Linux incluyen normalmente un directorio vacío denominado floppy en el raiz del sistema. Este directorio se ha creado para que pueda ser utilizado para montar en él la unidad de disquetes, de modo que una vez montada y con un simple ls podamos ver el contenido de nuestro disquete. De igual forma , el directorio /cdrom se encuentra vacío ya que está pensado para ser utilizado al montar nuestra unidad lectora de CD-ROM. Los dispositivos montados en nuestro sistema no necesitan ser unidades físicamente conectadas a nuestro sistema local, sino que también pueden montarse unidades y dispositivos remotos por red. Para que un sistema GNU/Linux pueda tener acceso a una unidad o sistema de ficheros, ya sea ésta una partición de nuestro disco duro o el contenido de una tarjeta Compact Flash (como las que se utilizan para almacenar fotos en una cámara digital) o cualquier otro dispositivo, es necesario que procedamos a montar dicha unidad. Las particiones de datos de nuestro sistema son accesibles al mismo porque han sido montadas en el arranque tras la detección del hardware del sistema. Esto explica que al instalar ciertas distribuciones, se nos solicite el punto de montaje para las distintas particiones creadas. De todas las particiones creadas en la instalación de una distribución GNU/Linux existe una que no se montará en ningún punto del sistema, ya que en ningún caso se quiere que sean accesibles a los usuarios, es la partición de swap. La partición de intercambio de memoria, swap, debe activarse para que el sistema operativo pueda hacer uso de ella, aunque nunca se montará como parte de nuestro sistema de ficheros. Es importante comprender que una unidad montada se considera parte del sistema y como tal debe permanecer accesible físicamente. Esto es lo que justifica el que nuestro sistema GNU/Linux deshabilite la posibilidad de apertura de una unidad de CD-ROM mientras ésta está montada en el sistema, es decir, que una vez montado el CD-ROM no podremos abrir el lector pulsando el botón de apertura. En el momento en el que desmontamos la unidad ésta vuelve a comportarse de forma habitual y podemos abrirla pulsando el botón Eject. En el caso de otros dispositivos como la disquetera, el sistema no dispone de la posibilidad de bloquear la extracción de la unidad montada, pero hemos de ser muy cuidadosos y asegurar que la unidad está desmontada antes de proceder a su extracción. Como veremos, podemos ejecutar mount sin ningún tipo de parámetros para visualizar una lista de dispositivos montados en nuestro sistema. Si extraemos un disquete de la disquetera sin desmontarlo previamente observaremos errores de acceso a la misma en nuestra pantalla. Para montar una unidad hemos de saber determinar : ➔ Cuál es el identificador para esta unidad (/dev/fd0) ➔ Cuál es el punto de montaje para la misma (/floppy) ➔ Qué tipo de sistema de ficheros tiene la unidad. (ext2, auto, ext3...) Es imprescindible saber qué dispositivo queremos montar. En los sistemas GNU/Linux los dispositivos se identifican teniendo en cuenta su localización. En el directorio /dev/ de nuestro sistema podemos encontrar los ficheros que nos permiten identificar a los distintos dispositivos. Entre ellos encontraremos los que hacen referencia a particiones de nuestros discos duros. Los discos duros se referencian como hd o sd según sean discos IDE o SCSI, además se utiliza una letra que indicará de cuál de los dispositivos IDE o SCSI de los que dispongamos se trata. Por ejemplo, en el caso de discos IDE, que Página 31 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
es la situación más común, denotamos como hda al dispositivo conectado como maestro en el IDE primario (conector IDE0 en nuestra placa), hdb al esclavo de ese mismo ide, y finalmente hdc y hdd al maestro y esclavo, respectivamente, del IDE secundario. Además para cada disco duro se denota un número que determina de forma unívoca la partición referenciada con esta notación. Así : hda1 hace referencia a la primera partición primaria del disco maestro conectado al IDE primario de nuestra placa base. El segundo punto a tener en cuenta a la hora de montar un dispositivo es el path o ruta concreto al que se añade o enlaza el dispositivo o sistema de ficheros. Esta ruta en la que enlazaremos el dispositivo, es decir, donde montaremos nuestra unidad se denomina “punto de montaje”. Y por último deberemos indicar el tipo de sistema de ficheros del dispositivo a montar. El montado se realiza mediante el comando mount, con lo que el contenido de la unidad se pone a disposición del usuario en el directorio de Linux que se elija. Por ejemplo para acceder al CD-ROM se teclearía el siguiente comando: mount -t iso9660 /dev/cdrom /mnt/cdrom donde -t iso9660 indica el tipo de sistema que usa la unidad de disco para guardar los ficheros (las más usuales son: iso9660 en el caso de un CD-ROM, vfat en el caso de Windows, y ext2 o ext3 en el caso de Linux), /dev/cdrom indica el dispositivo que se va a montar. Todos los dispositivos están representados por un fichero del directorio /dev, por ejemplo en el caso de un disquete será seguramente /dev/fd0, por último /mnt/cdrom es el directorio en el que se pondrá a disposición del usuario el contenido del CD-ROM. Para montar disquetes se suele utilizar el directorio /mnt/floppy. De todas formas el usuario siempre puede crear un directorio vacío con el nombre que el elija para montar las unidades de disco que desee donde desee. Cuando el usuario haya dejado de usar ese disco deberá "desmontarlo" mediante el comando umount antes de sacar el disquete o el CD-ROM. En este último caso debería escribir: umount /mnt/cdrom La ejecución de mount sin parámetros nos da información sobre las unidades o dispositivos montados en nuestro sistema. Para utilizar el comando mount de la forma anterior hace falta ser administrador o root. Para que un usuario común pueda utilizar disquetes, CD-ROM, etc. hay que editar el fichero /etc/fstab Por ejemplo para que cualquier usuario pueda acceder a un disquete habrá que indicar la siguiente línea: /dev/fd0 /mnt/floppy vfat user,noauto 0 0 También habrá que asegurarse de que el directorio /mnt/floppy sea accesible por todos los usuarios. Una vez seguidos los pasos anteriores cualquier usuario podrá "montar" un disquete escribiendo el siguiente comando: mount /mnt/floppy Página 32 de 33
MANDATOS EN LINUX
IES Peset Aleixandre
Al igual que antes el usuario deberá ejecutar el comando umount /mnt/floppy antes de sacar el disquete. Cualquier dispositivo puede montarse manualmente si disponemos de permisos de superusuario, sin más que especificar el dispositivo, su punto de montaje y tipo de sistema de ficheros a utilizar. No obstante, en el arranque de nuestor sistema se montan automáticamente algunas unidades. El fichero de configuración fstab que podemos encontrar en el directorio /etc contiene la información relativos al montaje de unidades en el arranque de nuestro sistema. Este fichero contiene además información sobre unidades que, no siendo automáticamente montadas, podrán ser montadas con posterioridad al arranque de manera sencilla. El fichero fstab almacena no sólo los parámetros necesarios para montar algunas unidades en el arranque, sino que a la hora de montar dispositivos, podremos indicar únicamente el punto de montaje, y si éste se encuentra en alguna de las líneas del fichero fstab y poseemos los permisos necesarios se procederá al montaje de la misma utilizando los parámetros y datos indicados en este fichero.
Montar desde entornos gráficos En los entornos gráficos de sobremesa KDE y GNOME encontramos la posibilidad de crear iconos en el Escritorio, cada uno de los cuales nos permitirá montar una unidad concreta ateniéndonos a lo que sobre la misma se haya indicado en el fichero fstab con solo pulsar dos veces sobre el mismo como si se tratara de una aplicación cualquiera que quisiéramos lanzar. Para desmontar estas unidades bastará pulsar con el botón derecho sobre el mismo icono y escoger la opción que desmontará la unidad.
Página 33 de 33