Resumen del nivel intermedio de Linux — procesamiento de texto y scripts de shell
Este artículo forma parte del Curso de Linux, con el que dominarás desde cero habilidades prácticas de Linux, desde los comandos básicos hasta los scripts de shell.
Reúne en una sola página las expresiones regulares de grep, sed, awk, sort uniq cut wc tr tee, tar ln diff y du df date. Añade la sintaxis de shell para variables, argumentos, condicionales, bucles, funciones, entrada, integración de comandos y salida, con mapas de categorías y tablas de referencia por área.
Un repaso general de lo que aprendiste en el nivel intermedio de Linux
Esta página no es un ejercicio para el navegador: su objetivo es recopilar todo el nivel intermedio (procesamiento de texto I1–I10 y scripts de shell S1–S10). Reúne en una sola página, con diagramas y tablas de referencia por área, todo el procesamiento de texto: búsqueda y sustitución, agregación de columnas, formateo, archivado, comparación de archivos e información del sistema. A eso se suman los scripts de shell, desde las variables hasta las funciones, la lectura de la entrada, la integración de comandos y la salida de reportes. Usa las tablas de referencia para volver a cada artículo siempre que quieras repasar.
Hoja de referencia — expresiones regulares, sed, awk
Este es el grupo central para buscar, sustituir, extraer y totalizar texto. Filtra las líneas con las expresiones regulares de grep, sustituye y manipula líneas con sed, y extrae columnas y calcula sus totales con awk. Una vez que dominas los símbolos, trabajar con logs y CSV se vuelve mucho más fácil.
| Sintaxis | Significado |
|---|---|
^ / $ | Coincidir con el inicio o el final de una línea |
. / * | Cualquier carácter / cero o más repeticiones de lo anterior |
[abc] / [a-z] | Clase de caracteres (uno cualquiera de ellos o un rango) |
grep -E | Regex extendida (quedan disponibles + | ()) |
grep -o | Imprimir solo la parte coincidente |
| Sintaxis | Significado |
|---|---|
sed 's/old/new/' | Reemplazar el primer old de cada línea por new |
sed 's/old/new/g' | Reemplazar todos los old de la línea |
sed -n 'Np' | Extraer solo la línea N |
sed '/pat/d' | Borrar las líneas que contienen pat |
sed -i | Reescribir el archivo directamente |
| Sintaxis | Significado |
|---|---|
awk '{print $1}' | Extraer la columna 1 ($NF es la última columna) |
awk -F',' | Cambiar el separador |
NR / NF | Número de línea / número de campos de esa línea |
/pat/{ … } | Aplicar la acción solo a las líneas coincidentes |
BEGIN{} … END{} | Preparar antes del procesamiento y agregar después |
Hoja de referencia — herramientas de formateo y comandos de archivos
Estas son las herramientas de formateo para ordenar, quitar duplicados, extraer columnas, contar líneas, traducir caracteres y dividir la salida, además de los comandos de archivos para archivar, enlazar, comparar y consultar el sistema. Encadénalos con pipes para preparar los datos de tus agregaciones y reportes.
| Sintaxis | Significado |
|---|---|
sort / sort -n | Ordenar (-n ordena numéricamente) |
uniq / uniq -c | Quitar duplicados consecutivos (-c añade el conteo) |
cut -d',' -f1 | Extraer una columna con un separador dado |
wc -l / wc -w | Contar líneas / palabras |
tr a-z A-Z / tr -d / tr -s | Traducir, borrar y comprimir caracteres repetidos |
tee file | Dividir la salida entre la pantalla y un archivo |
| Sintaxis | Significado |
|---|---|
tar -cf a.tar dir | Agrupar un directorio en un solo archivo (sin comprimir) |
tar -tf a.tar | Listar el contenido de un archivo tar |
tar -xf a.tar / -C dir | Extraer (-C elige el destino) |
ln -s target name | Crear un enlace simbólico (el -> de ls -l) |
ln a b | Crear un enlace físico |
diff a b / diff -u | Mostrar las diferencias (-u es el formato unificado) |
du -sh / df -h | Mostrar el uso y el espacio libre en unidades legibles |
date +%Y-%m-%d / uname -a | Dar formato a la fecha y mostrar la info del kernel |
Hoja de referencia — sintaxis de scripts de shell
Esta es la sintaxis que va de las variables, los argumentos, los condicionales, los bucles y las funciones hasta la lectura de la entrada, la integración de comandos y la salida. Empieza con #!/bin/sh, añade permiso de ejecución con chmod +x y ejecútalo con ./file. El shell de este curso es ash, así que usa [ ] con if ([[ ]] es una extensión de bash).
| Sintaxis | Significado |
|---|---|
#!/bin/sh / chmod +x f / ./f | Shebang, añadir permiso de ejecución, ejecutar |
v=x / "$v" | Asignar y referenciar una variable (entrecomíllala por seguridad) |
$1 / $@ / $# | Primer argumento / todos los argumentos / número de argumentos |
${1:-def} | Valor predeterminado cuando falta el argumento |
$(...) / $(( )) | Sustitución de comandos / expansión aritmética |
[ -f f ] / if … fi / case | Comprobaciones de archivos y ramificación condicional |
for … do … done / while | Repetir trabajo |
name() { … } / local | Definir una función y variables locales |
while read line; do … done < f | Leer un archivo línea por línea |
printf '%s\t%s\n' a b | Salida con formato (tabulador y salto de línea explícitos) |
> f / >> f / 2> err | Sobrescribir, añadir y desviar el error estándar |
<<EOF … EOF / $? | here-doc / el código de salida más reciente |
¡Buen trabajo en el nivel intermedio!
Ya tienes el conjunto completo: buscar con expresiones regulares, sustituir y totalizar con sed / awk, formatear con sort / uniq / cut / wc / tr / tee, y trabajar con archivos usando tar / ln / diff y los comandos de información del sistema. Del lado del scripting tienes variables, argumentos, condicionales, bucles y funciones, además de la lectura de la entrada, la integración de comandos y la salida de reportes. Combínalo todo y podrás cubrir de principio a fin el trabajo real del día a día: resumen de logs y automatización de tareas rutinarias.
Ten esta hoja de referencia a mano y, cuando olvides algo de la sintaxis, vuelve al artículo correspondiente y pruébalo en la práctica. A continuación, junta lo que has aprendido y empieza por un pequeño script de automatización pensado para tu propio trabajo.