Saltar al contenido

Fundamentos de la línea de mando de Linux

A menudo se dice que en Unix y sus derivados todo es un archivo , y por lo tanto la necesidad de dominar las herramientas de procesamiento de texto en línea de comandos. Cuando en la comunidad Linux hablamos de todo es un archivo , queremos decir que todo objeto del sistema puede ser abierto, leído y escrito como un archivo en el sentido normal de la palabra (siempre que se tengan los permisos necesarios para hacerlo).

  • Para mostrar las primeras o las últimas diez líneas de un archivo, use la cabeza o la cola, respectivamente.

Si está interesado en inspeccionar un número diferente de líneas desde el principio o el fondo del archivo, puede usar head -n o tail -n seguido de un número entero y el nombre del archivo. Por ejemplo,

Fundamentos de la línea de mando de Linux
Fundamentos de la línea de mando de Linux
1 cabeza -n 2 /etc/passwd

devolverá las dos primeras líneas de /etc/passwd . A menudo, nos interesará ver las últimas líneas de un archivo y monitorearlo a medida que se agregan más líneas. Este es el caso cuando queremos monitorizar un registro del sistema a medida que se registran los eventos. Para ello, usamos tail -f seguido de la ruta del archivo de registro, como

1tail -f /var/log/httpd/access_log

Por cierto, el comando anterior le permitirá monitorear el registro de acceso del servidor web Apache en un servidor CentOS 7.

  • Para buscar patrones y expresiones regulares en los archivos, el grep es la herramienta para el trabajo.

Este comando debe ir seguido de un patrón, clase de carácter o expresión regular y el archivo donde debe realizarse la búsqueda.

Para ilustrarlo, devolvamos la(s) línea(s) en /etc/passwd donde se encuentra la palabra estudiante (un patrón simple):

1grep student /etc/passwd

Para ignorar el caso de modo que tanto Student como StUdEnT sean también coincidentes, usar

1grep -i student /etc/passwd

en su lugar.

También puedes usar una expresión regular en lugar de un simple patrón. Para ello, añade el interruptor -E como en

1grep -E $0027svm|vmx$0027 /proc/cpuinfo

donde $0027svm|vmx$0027 es una expresión regular que coincide con la cadena svm o vmx . Por cierto, este comando comprueba si la virtualización está habilitada en su(s) CPU(s).

  • Para buscar objetos del sistema (lo más probable es que se trate de archivos o directorios que queremos localizar o con los que queremos trabajar), usaremos find.

Primero, necesitamos indicar el directorio donde debemos comenzar la búsqueda, el tipo de objeto y el nombre. Aunque hay otros criterios de filtro que podemos añadir para acotar nuestra búsqueda, este es un ejemplo típico del uso de la búsqueda. Por ejemplo,

1find /etc -type f -name sshd_config

buscará un archivo normal (tipo f) llamado sshd_config que comience en /etc .

  • Para extraer secciones de cada línea en un archivo, el corte será nuestro mejor aliado.

Esta herramienta se utiliza a menudo con -d para especificar un delimitador rodeado de comillas simples, y -f seguido de un número, rango o una lista de archivos separados por comas que indican qué sección o secciones nos interesan.

Si quieres listar los usuarios (1er campo) que se encuentran en /etc/passwd con su shell por defecto (7º campo), puedes usar

1cut -d$0027:$0027 -f1,7 /etc/passwd

Para añadir los directorios de inicio (6º campo), utilizarías

1cut -d$0027:$0027 -f1,6-7 /etc/passwd

en su lugar.