• No se han encontrado resultados

Otros comandos útiles

In document GNU/Linux Básico P07/M2102/02688 (página 36-41)

2. Conceptos y comandos básicos

2.5. Otros comandos útiles

2.5.1. La ayuda del sistema

Como hemos dicho a lo largo del documento, todos los comandos tienen mul- titud de opciones y parámetros diferentes que nos permiten manipularlos a nuestra elección. Desde el principio se tuvo muy en cuenta que es imprescin- dible contar con una buena documentación para todos ellos. Igualmente, toda esta información es necesaria para los ficheros de configuración del sistema, las nuevas aplicaciones que utilizamos, etc. Por ello, el propio sistema incor- pora un mecanismo de manuales con el que podemos consultar casi todos los aspectos de los programas, utilidades, comandos y configuraciones existentes. El comando más utilizado es el man, que nos enseña el manual del programa que le indicamos como parámetro. Por defecto, esta documentación se mues- tra por medio del programa less, con el que podemos desplazarnos hacia de- lante y hacia atrás con las teclas de "AvPág" y "RePág", buscar una palabra con el carácter "/" seguido de la palabra ("n" nos sirve para buscar las siguientes ocurrencias y "N" para las anteriores), "q" para salir, etc. Los manuales del sis- tema están divididos en diferentes secciones según su naturaleza:

1) Programas ejecutables (aplicaciones, comandos, etc.). 2) Llamadas al sistema proporcionadas por el shell. 3) Llamadas a librerías del sistema.

4) Archivos especiales (generalmente los de dispositivo). 5) Formato de los archivos de configuración.

6) Juegos.

7) Paquetes de macro.

8) Comandos de administración del sistema (generalmente aquellos que sólo

el root puede utilizar)

Si hay más de un manual disponible para una misma palabra, podemos espe- cificarlo pasándole el número correspondiente de la sección deseada antes de la palabra, por ejemplo man 3 printf. Como los otros comandos, man tie- ne multitud de opciones diferentes documentadas en su propio manual (man man), a partir de las cuales podemos realizar búsquedas automáticas, crear un fichero del manual en formato imprimible, etc. Una de estas opciones, que nos puede ir muy bien en las ocasiones que no sepamos exactamente el pro- grama que estamos buscando, es -k (el comando apropos realiza casi lo mis- mo). Con man -k seguido de una palabra que haga referencia a la acción que queramos realizar se buscará por entre todos los manuales del sistema y se mostrarán los que en su descripción o nombre aparezca la palabra indicada. Así, podemos encontrar lo que queremos sin tener que recurrir a ningún libro o referencia externa al sistema.

Comando mandb

Para realizar sus búsquedas de manera rápida, la aplicación man utiliza una base de datos interna que va a buscar por los archivos que contienen los manuales y los indexa de modo adecuado. Si queremos actualizar este manual (aunque normalmente el mismo sistema ya lo hace automáticamente), podemos utilizar el comando mandb.

Si el manual no nos proporciona toda la información que necesitamos, pode- mos usar el comando info, que es lo mismo que el manual pero aún más extendido. Si lo único que queremos es tener una breve referencia de lo que hace un determinado programa, librería, etc., podemos utilizar el comando whatis.

2.5.2. Empaquetado y compresión

Comprimir un archivo, agrupar varios en uno solo o ver qué contiene un ar- chivo comprimido son tareas que efectuaremos frecuentemente para hacer co- pias de seguridad, transportar archivos de un sitio a otro, etc. Aunque existen multitud de programas diferentes que nos permiten llevar a cabo esta clase de operaciones, generalmente en todos los sistemas GNU/Linux encontrare- mos la herramienta tar. Este programa nos permite manipular de cualquier manera uno o varios archivos para comprimirlos, agruparlos, etc. Aunque sus múltiples opciones son inacabables y tiene muchísima flexibilidad, aquí sólo explicaremos algunas de las más básicas para hacernos una idea de lo que po- demos hacer con él. La sintaxis que utiliza es la siguiente: tar opciones ar-

chivoDestino archivosOrigen, donde el archivo de destino será el nue-

vo fichero que queremos crear y los de origen serán los que se agruparán o comprimirán. Es importante tener en cuenta que si queremos agrupar toda una carpeta, por defecto el proceso es recursivo, de modo que al empaquetarla ésta recorrerá todos sus niveles y agrupará todo lo que contenga. Para crear un nuevo archivo, debemos pasarle el parámetro c, y si lo queremos guardar en un archivo, debemos pasarle el f. De este modo, tar cf final.tar o* empaquetará todos los archivos del directorio actual que empiecen por "o". Si además quisiéramos comprimirlos, podríamos utilizar czf con lo que se uti- lizaría el programa gzip después de empaquetarlos. Para desempaquetar un

determinado archivo, el parámetro necesario es el x, de modo que deberíamos escribir tar xf indicando el fichero empaquetado. Si estuviera comprimido, deberíamos pasar xzf.

Aunque con el mismo tar podemos comprimir archivos, la aplicación en sí misma no es de compresión. Como hemos dicho, para ello utiliza programas externos como el gzip. El programa gzip utiliza un formato de compresión propio y diferente del tan popularizado zip, que también podemos utilizar instalando la aplicación correspondiente. Otra aplicación de compresión bas- tante utilizada y que proporciona muy buenos resultados es el bzip2. En la siguiente tabla podemos ver la extensión que se suele utilizar para identificar qué formato utiliza un archivo comprimido o empaquetado:

Tabla 2.4 Extensión Formato .tar tar .gz gzip .tgz tar + gzip .bz2 bzip2 .zip zip .z compress 2.5.3. Operaciones de disco

La gestión y manipulación de los discos duros del ordenador es otro aspecto fundamental en las tareas de administración del sistema. Aunque más adelan- te veremos cómo configurar adecuadamente los discos que tengamos instala- dos en el ordenador, en este subapartado explicaremos cuáles son los coman- dos necesarios para ver información relativa a estos. Todo disco duro está di- vidido en particiones, a las que podemos acceder como si de un dispositivo independiente se tratara, y denominaremos unidad. Esto es muy útil porque nos permite separar de manera adecuada la información que tengamos en el sistema, tener más de un sistema operativo instalado en el mismo disco, etc. El comando df nos muestra, de cada unidad montada en el sistema, el espacio que se ha utilizado y el que está libre. Vamos a interpretar la siguiente salida de df:

Configuración de una partición

El tamaño del bloque y otros muchos parámetros se pueden configurar al formatear una partición del disco duro (con el sistema ext2 o ext3). Estos parámetros se pueden ajus- tar para hacer que el sistema se adapte mejor a nuestras necesidades y conseguir mayor eficiencia.

/dev/hda1 7787712 421288 6970828 6% /

/dev/hdb1 19541504 5742384 13799120 29% /info

/dev/hdc 664432 664432 0 100% /CD-ROM

Como podemos ver, por cada partición o dispositivo montado en el sistema el comando nos muestra la cantidad de bloques disponibles y utilizados. El bloque de disco es una unidad que se utiliza internamente en los dispositivos de almacenamiento para que el manejo de estos sea más efectivo. Por defecto, este comando nos enseña la información por bloques de 1k, aunque pasándole el parámetro -h (human readable) lo podríamos ver de manera más amena. La primera línea siempre nos muestra la raíz del sistema de ficheros (el root filesystem) y después los otros dispositivos. Fijémonos en que también nos muestra su punto de anclaje (en la última columna), que es la carpeta donde deberíamos ir para poder ver su contenido.

Otro comando muy útil es du, que nos muestra realmente lo que nos ocupa un fichero en disco. Para entender claramente qué queremos decir con esto, debemos ver con un poco más de detenimiento la organización interna de los discos y cómo el sistema operativo los manipula. Tal como decíamos an- teriormente, por razones de eficiencia el sistema operativo divide el espacio del disco en pequeños trozos denominados bloques. El tamaño del bloque es configurable y generalmente depende del tamaño del disco, aunque también lo podemos configurar para adaptarlo mejor a nuestras necesidades. Cada vez que queremos añadir un nuevo archivo, el sistema operativo le asigna un blo- que. De este modo, al leer u operar sobre él, el operativo puede leer directa- mente todo un bloque (del tamaño configurado) en un único paso. Cuando el fichero ocupa más de un bloque, se le asignan más, intentando que queden lo más juntos posible, de modo que se puedan leer consecutivamente e incre- mentando, así, la velocidad de lectura. El único inconveniente de este sistema es el desaprovechamiento que se hace de los bloques cuando los ficheros son muy pequeños, ya que si un determinado archivo no ocupa todo el bloque, el espacio restante no se puede aprovechar para ningún otro. De todos modos, este tipo de organización es el que utilizan todos los sistemas de ficheros exis- tentes, ya que es lo más rentable para aprovechar el disco duro. El comando du, pues, nos muestra el número de bloques que realmente utiliza un deter- minado archivo en el disco.

Para saber los parámetros que tenemos configurados en nuestras unidades de disco formateadas con ext2 o ext3, podemos utilizar el comando dumpe2fs, pasándole la partición concreta. Veremos cómo hay multitud de opciones di- ferentes que nos permiten ajustar muy bien su comportamiento (en el manual encontraremos qué significa cada opción). De todos modos, una vez hayamos formateado una partición, ya no podremos modificar casi ninguna de estas opciones. Si quisiéramos cambiarlas, deberíamos copiar toda la información de la partición, formatear de nuevo y volver a copiar los archivos originales.

Desfragmentación de un disco

La desfragmentación de un disco no es más que la reorganización de los bloques de los ficheros para que queden en lugares consecutivos y su acceso sea más rápido. En los sistemas de ficheros que utilizamos con GNU/Linux no es necesario desfragmentar los discos (aunque hay programas al efecto) porque el sistema se encarga automáticamente de su buena organización.

Las funciones del núcleo que se encargan de la gestión de ficheros utilizan una serie de métodos para agilizar los procesos de lectura y escritura. Uno de ellos es la utilización de una caché de disco, de modo que no se haya de es- tar constantemente leyendo y escribiendo en el dispositivo físico, que resul- ta un proceso lento y costoso. Lo único que hace el mecanismo de caché es mantener una copia del fichero con el que se está trabajando en la memoria RAM (mucho más rápida), de modo que el proceso sea transparente para el usuario (la copia a disco se realiza según algún tipo de política implementada en el núcleo). El único problema de esta gestión es que si tenemos un corte en la alimentación y no hemos cerrado correctamente el sistema, es posible que algunos ficheros no se hayan podido guardar en el disco físico y tengamos alguna inconsistencia en el sistema de ficheros. El programa fsck comprue- ba y arregla un sistema de ficheros que haya quedado en este estado. Aunque lo podemos ejecutar cuando queramos, generalmente el mismo sistema ope- rativo lo ejecuta cuando en el proceso de arranque detecta que el sistema no se cerró adecuadamente (antes de apagar el ordenador, debemos ejecutar el comando shutdown, que se encarga de lanzar todos los procesos necesarios para que los programas acaben, se desmonte el sistema de ficheros, etc.). En este sentido, el sistema de ficheros ext3 es más eficaz que su predecesor, ya que el journaling le permite recuperar más información de los ficheros perdidos y más rápidamente.

Naturalmente, si los ficheros que tratamos en nuestro sistema son muy críticos y no podemos, en ningún caso, permitirnos el hecho de perderlos, también podemos configurar el operativo para que no utilice el sistema de caché de disco. De todos modos, es muy recomendable utilizar este mecanismo porque incrementa mucho el rendimiento del sistema. Si en algún momento nos in- teresa sincronizar la información de la caché de disco con el disco físico, po- demos utilizar el comando sync. Finalmente, también podemos comprobar la integridad física de una partición utilizando el comando badblocks, que lleva a cabo un chequeo sobre el dispositivo indicado para comprobar que no haya ninguna zona dañada.

La mayoría de los comandos expuestos en este subapartado necesitan de per- misos especiales para ejecutarse, de modo que sólo el usuario root podrá uti- lizarlos.

In document GNU/Linux Básico P07/M2102/02688 (página 36-41)