En este momento estás viendo Comandos varios en sistemas UNIX

Comandos varios en sistemas UNIX

Comandos varios en sistemas UNIX

En este artículo vamos a aprender a usar unos cuantos comandos básicos en sistemas UNIX. Si utilizas este tipo de sistemas, es más que recomendable, conocer la terminal, que nos permitirá optimizar nuestro rendimiento con el ordenador.

Ya dedicamos una publicación a analizar la orden «find» y otros comandos curiosos. También puedes ampliar información adicional en la sección de «scripts» de este blog.

Sumario

  • La orden banner
  • La orden date
  • La orden cal
  • Las órdenes tail y head
  • Las órdenes cmp y diff
  • Las órdenes sort y uniq
  • La orden clear
  • La orden nl
  • La orden wc
  • La orden tee
  • La orden tar

Disponemos de muchísimos comandos para la administración de sistemas Unix, independientemente de la distribución elegida. No obstante existen algunas diferencias entre familias de sistemas operativos, sobre todo con los gestores de paquetes y alguna más, como editores, etc…Vamos a ver algunos comandos.

La orden banner

Esta orden nos permite mostrar un banner en tamaño grande en nuestra terminal. Lo podemos utilizar, por ejemplo, para introducir un aviso o mostrar el nombre en un script. Lo instalamos con el comando

sudo apt install sysvbanner 
Instalación de banner

La sintaxis es sencilla

banner texto
Salida de «banner weblinus»

Consulta el manual integrado con

man banner

La orden date

UNIX controla el tiempo dentro del sistema para todas las resoluciones, desde milisegundos hasta años. Casi todos los sistemas tienen chips internos de reloj/calendario y el tiempo está, generalmente, definido correctamente cuando se arranca.

Todos los ficheros tienen asociado su tiempo de creación, del último acceso y de la última modificación. Además, hay una orden de propósito general para visualizar la fecha y la hora actual.

date
Salida del comando «date»

La orden cal

Se trata de un calendario. En alguna distribución ya viene instalado predeterminadamente, pero si no es el caso lo instalas, en sistemas Debian y derivados, con la orden

sudo apt install ncal
Instalación del paquete «ncal»

La sintaxis es sencilla

cal [ -j ] [ [ mes ] año ] 

Para obtener el calendario por la salida de la terminal ejecutamos el comando sin argumentos

cal

Si especificamos un año como argumento, obtendremos el calendario de todo el año. Tomando un segundo argumento para indicar un mes, el sistema mostrará el calendario de ese mes y año.

cal 2022

cal 11 2022
Ejemplos de uso del comando cal

Como curiosidad, con la opción «-j» nos mostrará el calendario juliano (el número de días desde el 1 de enero).

Las órdenes tail y head

La orden «tail» se utiliza para examinar las últimas lineas, o cola, del fichero especificado como argumento. Esta orden escribe las 10 últimas líneas de dicho fichero en la salida estándar del comando.

tail fichero
Salida de «tail»

Opcionalmente se puede especificar el número de líneas a visualizar.

tail -5 fichero
Selección de las últimas 5 lineas

A menudo, un proceso está escribiendo en un fichero y deseamos vigilar continuamente el fin de ese fichero conforme crece. Para ello, en lugar de ejecutar repetidamente «tail -n», la opción «-f» (follow) de esta orden, ejecuta continuamente la orden «tail», visualizando cada nueva línea del fichero.

tail -f fichero

Puesto que la orden «tail -f» no finaliza por si misma, lo haremos con «CTRL-C».

Puedes consultar el manual de la herramienta con

man tail

De forma análoga al anterior comando, la orden «head» muestra las 10 primeras líneas, o cabecera, de un fichero, aunque, también es posible especificar el número de líneas del fichero a visualizar, y también se puede utilizar para mostrar información de varios ficheros a la vez.

head fichero
head -5 fichero  (head -n 5 fichero)
Uso del comando «head»

Estos dos comando nos serán muy útiles cuando estemos trabajando con ficheros con mucho contenido, muy largos, como por ejemplo, los ficheros de log de nuestro sistema. Como siempre puedes consultar el manual integrado con

man head

Las órdenes cmp y diff

Con frecuencia es deseable comparar el contenido de dos ficheros para comprobar si son iguales. La orden cmp «compare», compara dos ficheros cualesquiera, incluso ficheros binarios, e indica los números de caracteres y líneas donde difieren. Adopta dos nombres de fichero como argumento

cmp fichero1 fichero2

Una herramienta mucho más potente es la orden diff «difference», disponible para ficheros de texto. Esta orden produce un índice completo con todas las líneas que difieren entre dos ficheros, junto con sus respectivos números de línea y lo que debe ser modificado para hacer iguales ambos ficheros.

diff fichero1 fichero2
Uso del comando «diff»

Si utilizas este comando te recomiendo ver «Comparar ficheros y directorios con diff y con meld».

La elección entre diff, comp y meld, dependerá de tu gusto, pero te invito a probar «meld», creo que es la herramienta más práctica.

Las órdenes sort y uniq

La orden sort reordena un flujo de líneas de texto en orden alfabético y escribe las líneas ordenadas en su salida estándar.

Nos encontramos muchos escenarios, en la línea de comandos, en los que necesitamos ordenar la salida, en estos casos «sort» nos ayudará en nuestro propósito.

Puede tomar una lista de nombres de fichero como argumento o leer de la entrada estándar.

sort fich1 fich2 ... fichN
Uso del comando «sort»

También admite múltiples opciones

  • -f: ignora la diferencia entre mayúsculas y minúsculas
  • -n: ordena numéricamente

La orden «uniq» muestra una única presentación de las líneas repetidas de un fichero, pero su entrada debe estar correctamente ordenada antes de que pueda funcionar. De ahí que se suela combinar con sort.

sort fichero | uniq
Uso del comando «sort»

Con el comando sin opciones, eliminará de la salida estandar, las coincidencias encontradas. Lo vemos con un ejemplo. Tenemos dos ficheros «listado1.txt» y «listado2.txt» con el siguiente contenido

cat listado1.txt
Juan Lopez
Pedro Martinez
Adolfo Ezpeleta

cat listado2.txt
Mercedes Ansó
Carmen Llopis
Pedro Martinez

sort listado1.txt listado2.txt | uniq 
Ejemplo de uso del comando «sort»

Como vemos, elimina en la salida estandar las coincidencias.

Para localizar duplicados de dos ficheros con la orden «uniq» utilizamos la opción «-d».

sort listado1.txt listado2.txt | uniq -d

Y obtendremos un recuento de apariciones con la opción «-c».

sort listado1.txt listado2.txt | uniq -c
Ordenación de la salida estandar con «sort»

La orden clear

Esta orden permite borrar la pantalla actual, colocando el cursor en la primera línea de la pantalla.

La orden nl

Esta orden, entre otras cosas, numera las líneas de un fichero y muestra el resultado por su salida estándar. Este resultado también lo presenta «cat -n», pero «nl» presenta algunas opciones adicionales al ser un comando dedicado estrictamente para esta tarea. Por ejemplo, si queremos listar también las lineas en blanco tenemos que utilizar la opción «-ba».

cat -n fichero
nl fichero
nl -ba fichero
Ejemplos de salida del comando «nl»

La orden wc

Este comando cuenta el número de líneas, palabras y caracteres del fichero o ficheros que se especifican en los parámetros, mediante las siguientes opciones, que pueden ser combinadas entre ellas

  • -l: muestra el número de líneas del fichero
  • -w: muestra el número de palabras del fichero
  • -c: muestra el número de caracteres del fichero

Por ejemplo

wc -w fichero

El comando «wc» sin parámetros adopta las tres opciones, «-lwc» y presenta una cuenta global para todos los ficheros especificados.

wc fichero
Ejemplos de uso del comando «wc»

En éste ejemplo concreto, comprobamos que el fichero contiene 228 líneas, 1991 palabras y 13232 caracteres.

La orden tee

La orden «tee» está relacionada con el redireccionamiento del flujo de la información. Su función consiste en copiar la entrada estándar a un fichero que se especifica como parámetro, al mismo tiempo que la muestra por la salida estándar.

De esta forma se visualiza la información al mismo tiempo que se almacena en un fichero. Nos resultará muy útil para guardar los resultados intermedios, archivarlos o examinarlos en busca de fuentes de error.

La sintaxis básica del comando «tee» tiene este formato

tee [OPCIONES] [FICHERO]

La opción «-a» de la orden «tee» permite añadir la información a un fichero ya existente en lugar de sobreescribirlo.

cat listado1.txt listado2.txt | sort | uniq | tee -a listado3.txt |wc -w
Ejemplo de uso del comando «tee»

Nos muestra que el fichero «listado3.txt» contiene 10 palabras. Luego comprobamos el contenido del fihero creado con «tee».

La orden tar

La orden «tar» permite salvar y restaurar ficheros desde cualquier dispositivo de almacenamiento.

Las operaciones a realizar con esta orden se especifican mediante una clave, formada por un carácter y seguida de uno o más caracteres que actúan como modificadores complementarios de la operación. El uso de ciertos modificadores, por ejemplo «f», exige además la presencia de una serie de argumentos.

La sintaxis del comando «tar» viene definida por la expresión

tar clave argumentos ficheros

Entre las operaciones o acciones a realizar con el dispositivo están

  • c: Borra la información existente en el dispositivo y almacena los ficheros al principio del dispositivo. Crea un fichero.
  • r: Añade los ficheros tras el último fichero previamente almacenado en el dispositivo. Añade información a continuación de la existente.
  • t: Lista los nombres de todos los ficheros almacenados en el dispositivo.
  • v: Expande la lista añadiendo el modo y propietario de cada fichero.
  • u: Añade cualquier fichero al dispositivo siempre que no exista o haya sido modificado desde la última vez que fue copiado en el dispositivo.

La orden tar extrae del dispositivo los ficheros indicados como parámetros y los restaura al sistema. Si un nombre de fichero concuerda con el de un directorio cuyo contenido fue escrito en el dispositivo, éste se extrae recursivamente. Si no se da ningún fichero como parámetro, se extrae el contenido total del fichero.

Las siguientes opciones complementan las acciones anteriores

  • m: Al restaurar los ficheros cambia su hora de última modificación a la hora actual.
  • w: Se muestra la acción a llevar a cabo para cada fichero, esperando la confirmación del usuario.
  • v: Muestra por pantalla los ficheros salvados.
  • f disp: Salva los ficheros en el dispositivo referenciado por disp. En lugar de un dispositivo físico disp puede ser un nombre de fichero que acumulará toda la información salvada.

Por lo tanto, la orden

tar cvf /dev/sdb1 DirectorioDestino

borrará la información existente en el dispositivo /dev/sdb1 y lo copiará en el directorio «DirectorioDestino». Además, presentará por pantalla los nombres de los ficheros copiados.

La orden

tar tf /dev/sdb1

listará todos los ficheros almacenados en el dispositivo /dev/sdb1.

Y finalmente,

tar xvf /dev/sdb1 DirectorioDestino/subdirectorio

extraerá los ficheros del subdirectorio «DirectorioDestino/subdirectorio» almacenados en /dev/sdb1 y los restaurará en su posición original.

También nos será muy útil para comprimir y descomprimir ficheros «.tar.gz».

Por ejemplo con

tar cvf NFS.txt.tar ./NFS.txt
Uso comando «tar»

Con las opciones siguientes indicamos

  • -c : indica a tar que cree un fichero.
  • -z : indica que use el compresor gzip
  • -f : indica a tar que el siguiente argumento es el nombre del fichero .tar
  • -v : indica a tar que muestre lo que va empaquetando

Y para descomprimir

tar -xzvf archivo.tar.gz

Las opciones indican

  • -x : le dice a tar que extraiga el contenido del fichero tar.gz
  • -z : le indica a tar que esta comprimido con gzip
  • -v : va mostrando el contenido del fichero
  • -f : le dice a tar que el siguiente argumento es el fichero a descomprimir.

Para ver el contenido de un fichero comprimido, ejecuta

tar -tzf archivo.tar.gz

Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.

Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.

Y para suscribirte y recibir las novedades publicadas, tienes un enlace en pie de la página o desde aquí mismo.

Esta entrada tiene 4 comentarios

  1. Josevi

    Muchas gracias Javier. Vienen muy bien estas órdenes de consola.
    Un día nos podías hacer una chuleta con el uso abreviado de órdenes por sus categorías o usos

  2. Barto

    Buen trabajo Javier

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.