3.3. Comandos importantes de Linux

En esta sección se describen los comandos más importantes del sistema SUSE Linux. Hay muchos más comandos que los mostrados en este capítulo. Junto a cada comando se presenta una lista de parámetros y, donde resulta preciso, un ejemplo típico de aplicación. Para obtener más información sobre los distintos comandos, utilice las páginas de manual (Man), a las que se accede con el comando man seguido del nombre del comando, por ejemplo, man ls.

Desplácese en las páginas Man con las teclas Re Pág y Av Pág. Desplácese al principio o al final del documento con las teclas Inicio y Fin. Salga de este modo de visualización pulsando Q. Encontrará más información sobre el comando man indicando el propio comando man man.

En la siguiente descripción general se utilizan distintas tipografías para los elementos de comandos individuales. El comando real y sus opciones obligatorias siempre se indican como comando opción. Las especificaciones o parámetros que no son necesarios se colocan entre [corchetes].

Puede configurar los ajustes según sus necesidades. No tiene sentido escribir ls archivo si no existe realmente ningún archivo llamado archivo. Normalmente es posible combinar varios parámetros, por ejemplo escribiendo ls -la en lugar de ls -l -a.

3.3.1. Comandos de archivos

En la siguiente sección se describen los comandos más importantes para la gestión de archivos. Tratan desde la administración general de archivos a la manipulación de ACLs del sistema de archivos.

3.3.1.1. Administración de archivos

ls [opciones] [archivos]

Si ejecuta el comando ls sin ningún parámetro adicional, el programa muestra una lista del contenido del directorio actual en formato abreviado.

-l

Lista detallada.

-a

Muestra archivos ocultos.

cp [opciones] origen destino

Copia el origen en el destino.

-i

Espera que se produzca una confirmación, si es necesaria, antes de sobreescribir un destino existente.

-r

Copia repetidamente (incluidos los subdirectorios).

mv [opciones] origen destino

Copia el origen en el destino y borra el archivo de origen original.

-b

Crea una copia de seguridad del origen antes de moverlo.

-i

Espera confirmación, si es necesaria, antes de sobreescribir un destino existente.

rm [opciones] archivos

Borra los archivos indicados del sistema de archivos. Los directorios no se suprimen con el comando rm a no ser que se use la opción -r.

-r

Suprime los subdirectorios existentes.

-i

Espera que se produzca una confirmación antes de borrar cada archivo.

ln [opciones] origen destino

Crea un enlace interno del origen al destino. Habitualmente, este enlace señala directamente al origen en el mismo sistema de archivos. No obstante, si se ejecuta el comando ln con la opción -s, se crea un enlace simbólico que sólo señala al directorio en el que se encuentra el origen, lo que permite enlazar con sistemas de archivos distintos.

-s

Crea un enlace simbólico.

cd [opciones] [directorio]

Cambia el directorio actual. Si no se indica ningún parámetro con el comando cd los cambios se realizan en el directorio personal del usuario.

mkdir [opciones] directorio

Crea un directorio nuevo.

rmdir [opciones] directorio

Suprime el directorio indicado, si ya está vacío.

chown [opciones] nombre_usuario[:[grupo]] archivos

Transfiere la propiedad de un archivo al usuario con el nombre de usuario indicado.

-R

Cambia los archivos y directorios de todos los subdirectorios.

chgrp [opciones] nombre_grupo archivos

Transfiere la propiedad de grupo de un archivo determinado al grupo con el nombre de grupo indicado. El propietario del archivo sólo puede cambiar la propiedad de grupo si es miembro tanto del grupo actual como del nuevo.

chmod [opciones] modo archivos

Cambia los permisos de acceso.

El parámetro de modo tiene tres partes: grupo, acceso y tipo de acceso. En grupo se aceptan los siguientes caracteres:

u

usuario

g

group

o

otros

Para acceso, se otorga el acceso con + y se deniega con -.

El tipo de acceso se controla con las siguientes opciones:

r

read

w

write

x

execute: ejecución de archivos o cambio al directorio

s

bit de setuid: la aplicación o el programa se inician como si los hubiera abierto el propietario del archivo.

Como alternativa, se puede utilizar un código numérico. Los cuatro dígitos de este código están compuestos por la suma de los valores 4, 2 y 1: el resultado decimal de una máscara binaria. El primer dígito define el ID del usuario (SUID) (4), el ID de grupo de conjunto (2) y los bits adhesivos (1). El segundo dígito define los permisos del propietario del archivo. El tercer dígito define los permisos de los miembros del grupo y el último dígito los permisos para todos los usuarios. El permiso de lectura se define con un 4, el de escritura con un 2 y el de ejecución con un 1. El propietario de un archivo recibe normalmente un 6 o un 7 para los archivos ejecutables.

gzip [parámetros] archivos

Este programa comprime el contenido de los archivos mediante complejos algoritmos matemáticos. Los archivos comprimidos de esta forma reciben la extensión .gz y es preciso descomprimirlos antes de que se puedan utilizar. Para comprimir varios archivos, o incluso directorios, utilice el comando tar.

-d

Descomprime los archivos gzip empaquetados para que vuelvan a tener su tamaño original y puedan procesarse con normalidad (igual que el comando gunzip).

tar opciones archivo de reserva archivos

El comando tar coloca uno o más archivos en un archivo de reserva. La compresión es opcional. El comando tar es muy complejo y dispone de muchas opciones disponibles. Las usadas con más frecuencia son estas:

-f

Escribe el resultado en un archivo y no en la pantalla, como es habitual.

-c

Crea un archivo de reserva tar nuevo.

-r

Añade archivos a un archivo de reserva existente.

-t

Da como resultado el contenido de un archivo de reserva.

-u

Añade archivos, pero sólo si son más actuales que los que ya hay incluidos en el archivo de reserva.

-x

Desempaqueta los archivos de un archivo de reserva (extracción)

-z

Comprime el archivo de reserva resultante con gzip

-j

Comprime el archivo de reserva resultante con bzip2

-v

Muestra una lista de los archivos procesados

Los archivos del archivo de reserva creados con tar terminan con la extensión .tar. Si el archivo de reserva tar también se ha comprimido usando gzip, la extensión es .tgz o .tar.gz. Si se ha comprimido usando bzip2, será .tar.bz2. Encontrará ejemplos de aplicación en la Sección 3.1.5, “Archivos de reserva y compresión de datos”.

locate patrones

Este comando sólo está disponible si se ha instalado el paquete findutils-locate. El comando locate puede localizar en qué directorio se encuentra un archivo. Se pueden utilizar comodines para indicar los nombres de los archivos. El programa es muy rápido, ya que utiliza una base de datos creada específicamente para este propósito (en lugar de buscar en todo el sistema de archivos). Pero esta ventaja, no obstante, también tiene un grave inconveniente: locate no puede localizar archivos creados tras la última actualización de esta base de datos. El usuario Root puede generar la base de datos con el comando updatedb.

updatedb [opciones]

Este comando realiza una actualización de la base de datos utilizada por el comando locate. Para incluir los archivos de todos los directorios existentes, ejecute el programa como usuario Root. También resulta de utilidad colocarlo en segundo plano añadiendo un símbolo de unión (&) y poder así continuar de inmediato con el trabajo en la misma línea de comandos (updatedb &). Este comando se ejecuta normalmente como trabajo de cron diario (consulte cron.daily).

find [opciones]

Con el comando find se pueden buscar archivos en un directorio concreto. El primer argumento indica el directorio en el que iniciar la búsqueda. La opción -name debe ir seguida de una cadena de búsqueda, que también puede incluir comodines. A diferencia de locate, que utiliza una base de datos, el comando find busca en el directorio real.

3.3.1.2. Comandos para acceder al contenido de los archivos

file [opciones] [archivos]

El comando file detecta el contenido de archivos específicos.

-z

Intenta buscar dentro de archivos comprimidos.

cat [opciones] archivos

El comando cat muestra el contenido de un archivo, imprimiendo todo el contenido en la pantalla sin interrupciones.

-n

Numera el resultado en el margen izquierdo.

less [opciones] archivos

Este comando se puede utilizar para examinar el contenido del archivo indicado. Es posible saltar media pantalla hacia arriba o hacia abajo con las teclas Re Pág y Av Pág o una página completa de la pantalla con la barra espaciadora. También se puede ir al principio o al final del archivo con las teclas Inicio y Fin. Pulse Q para salir del programa.

grep [opciones] cadena_búsqueda archivos

El comando grep busca una cadena específica en los archivos indicados. Si se encuentra, se muestra la línea en la que se halla la cadena_de_búsqueda junto al nombre del archivo.

-i

No tiene en cuenta mayúsculas ni minúsculas.

-H

Muestra sólo los nombres de los archivos respectivos, pero no las líneas de texto.

-n

Muestra además los números de las líneas en las que se ha encontrado una coincidencia.

-l

Muestra sólo los archivos en los que no aparece la cadena_de_búsqueda.

diff [opciones] archivo1 archivo2

El comando diff compara el contenido de dos archivos cualquiera. El resultado del programa muestra una lista de todas las líneas que no coinciden. Suelen utilizarlo los programadores que sólo necesitan enviar los cambios realizados en los programas, y no todo el código fuente.

-q

Sólo informa de si dos archivos son distintos.

-u

Produce un archivo de diferencias “unificado” que resulta más fácil de leer.

3.3.1.3. Sistemas de archivos

mount [opciones] [dispositivo] punto_montaje

Este comando se puede utilizar para montar cualquier soporte de datos, como discos duros, unidades de CD-ROM y otras unidades en un directorio del sistema de archivos Linux.

-r

El montaje es de sólo lectura.

-t sistema_archivos

Indica el sistema de archivos, habitualmente ext2 para los discos duros de Linux, msdos para los soporte MS-DOS, vfat para el sistema de archivos de Windows y iso9660 para CD.

Para los discos duros no definidos en el archivo /etc/fstab, también es preciso indicar el tipo de dispositivo. En este caso, sólo el usuario Root podrá montarlos. Si otros usuarios también deben montar el sistema de archivos, escriba la opción user en la línea adecuada del archivo /etc/fstab (separada con comas) y guarde este cambio. Encontrará más información en la página Man mount(1).

umount [opciones] punto_montaje

Este comando desmonta una unidad montada del sistema de archivos. Para evitar la pérdida de datos, ejecute este comando antes de retirar el soporte de datos extraíble de la unidad. Normalmente, sólo el usuario Root tiene permiso para ejecutar los comandos mount y umount. Para permitir que otros usuarios pueden ejecutarlos, edite el archivo /etc/fstab para indicar la opción user para la unidad correspondiente.

3.3.2. Comandos del sistema

En la siguiente sección se describen algunos de los comandos más importantes necesarios para recuperar información del sistema, realizar procesos y controlar redes.

3.3.2.1. Información del sistema

df [opciones] [directorio]

El comando df (disk free, disco libre), cuando se usa sin ninguna opción, muestra información acerca del espacio total de disco, el espacio de disco en uso en la actualidad y el espacio libre en todas las unidades montadas. Si se indica un directorio, la información se limita a la unidad en la que se encuentra ese directorio.

-h

Muestra el número de bloques ocupados en gigabytes, megabytes o kilobytes: en formato legible para las personas.

-T

Tipo del sistema de archivos (ext2, nfs, etc.).

du [opciones] [vía]

Este comando, cuando se ejecuta sin parámetros, muestra el espacio total de disco ocupado por los archivos y subdirectorios del directorio actual.

-a

Muestra el tamaño de cada archivo individual.

-h

El resultado se genera en formato que pueden leer las personas.

-s

Muestra sólo el tamaño total calculado.

free [opciones]

El comando free muestra información sobre el uso de RAM y de espacio de intercambio presentando la cantidad total y usada en cada categoría. Si desea obtener más información, consulte la Sección 10.1.6, “Comando free” (↑Referencia).

-b

Resultado en bytes.

-k

Resultado en kilobytes.

-m

Resultado en megabytes.

date [opciones]

Este sencillo programa muestra la hora actual del sistema. Si lo ejecuta el usuario Root también se puede utilizar para cambiar la hora del sistema. Hay detalles sobre el programa disponibles en la página Man date(1).

3.3.2.2. Procesos

top [opciones]

El comando top ofrece una descripción rápida de los procesos actualmente en ejecución. Pulse H para acceder a una página que explica brevemente las opciones principales para personalizar el programa.

ps [opciones] [ID de proceso]

Si se ejecuta sin opciones, este comando muestra una tabla de todos los programas o procesos propios, es decir, los que ha empezado el usuario. Las opciones de este comando no van precedidas de guión.

aux

Muestra una lista detallada de todos los procesos, independientemente del propietario.

kill [opciones] ID de proceso

Desafortunadamente, a veces un programa no se puede terminar de forma normal. En la mayoría de los casos, aún será posible detener estos programas rebeldes ejecutando el comando kill e indicando el ID de proceso respectivo (consulte los comandos top y ps). El comando kill envía una señal TERM que ordena al programa que se apague a sí mismo. Si esto no ayuda, se puede utilizar el siguiente parámetro:

-9

Envía una señal KILL en lugar de una señal TERM, lo que finaliza el proceso especificado en casi todos los casos.

killall [opciones] nombre_proceso

Este comando es similar a kill, pero utiliza el nombre del proceso (en lugar de su ID) como argumento, interrumpiendo todos los procesos con ese nombre.

3.3.2.3. Red

ping [opciones] nombre de host o dirección IP

El comando ping es la herramienta estándar para probar el funcionamiento básico de las redes TCP/IP. Envía un pequeño paquete de datos al host de destino y pide una respuesta inmediata. Si funciona, ping muestra un mensaje al respecto que indica que el enlace de red funciona.

-c número

Determina el número total de paquetes que se deben enviar y termina cuando se han enviado (por defecto, no se define límite).

-f

ping fluido: envía todos los paquetes de datos que puede. Se trata de un método muy popular, reservado al usuario Root, para probar redes.

-i valor

Indica el intervalo entre dos paquetes de datos en segundos (por defecto: un segundo).

nslookup

El sistema de nombres de dominios traduce nombres de dominios a direcciones IP. Con esta herramienta se envían consultas a los servidores de nombres (servidores DNS).

telnet [opciones] nombre de host o dirección IP [puerto]

Telnet es en realidad un protocolo de Internet que permite trabajar en hosts remotos a través de una red. Es también el nombre de un programa de Linux que utiliza este protocolo para permitir operaciones en equipos remotos.

[Warning]Aviso

No utilice telnet en redes en las que puedan “echar un vistazo” terceras partes. Particularmente en Internet, utilice métodos de transferencia cifrados, como ssh, para evitar el riesgo de un uso malicioso de las contraseñas (consulte la página Man para el comando ssh).

3.3.2.4. Otros

passwd [opciones] [nombre_usuario]

Los usuarios pueden cambiar sus propias contraseñas en cualquier momento mediante este comando. El administrador Root puede utilizar el comando para cambiar la contraseña de cualquier usuario del sistema.

su [opciones] [nombre_usuario]

El comando su hace posible iniciar sesión con un nombre de usuario distinto desde una sesión en ejecución. Indique un nombre de usuario y su correspondiente contraseña. El usuario Root no necesita indicar la contraseña, ya que está autorizado para asumir la identidad de cualquier usuario. Si se utiliza el comando sin indicar un nombre de usuario, se le preguntará la contraseña del Root y pasará a ser el superusuario (Root).

-

Utilice su - para abrir una shell de inicio de sesión para el otro usuario.

halt [opciones]

Para evitar la pérdida de datos se debe usar siempre este programa para apagar el sistema.

reboot [opciones]

Tiene la misma función que el comando halt, solo que el sistema se vuelve a iniciar inmediatamente después.

clear

Este comando limpia el área visible de la consola. No dispone de opciones.

3.3.3. Información adicional

Hay muchos más comandos que los mostrados en este capítulo. Para obtener más información acerca de otros comandos o información más detallada, se recomienda la publicación de O'Reilly Linux in a Nutshell (Linux en pocas palabras).