Tema 3 / 10
Comandos GNU y Unix
Domina la línea de comandos, procesamiento de texto, gestión de archivos y procesos en Linux.
103.1 Trabajar desde la línea de comandos
Obteniendo información del sistema
pwd: Muestra el directorio actual.touch: Crea un archivo vacío.ls: Lista archivos y carpetas.uname -a: Muestra información completa del sistema.
Información de los comandos
man: Muestra el manual de un comando.apropos: Busca páginas de manual por palabra clave.type: Indica el tipo de comando (integrado, alias).which: Muestra la ruta absoluta de un comando.history: Lista comandos ejecutados.
Variables de entorno
env: Muestra todas las variables de entorno.echo $VAR: Muestra el valor de una variable.export VAR: Crea o exporta una variable.unset VAR: Elimina una variable.
Caracteres especiales
Para interpretar caracteres especiales literalmente (como espacios), usa:
- Comillas simples
'': Interpreta todo literalmente. - Comillas dobles
"": Interpreta$,`y\. - Contrabarra
\: Escapa el siguiente carácter.
103.2 Procesar secuencias de texto usando filtros
Redirecciones y Tuberías
>: Redirige salida (sobrescribe).>>: Añade salida.|: Envía salida de un comando a otro.grep: Filtra texto (-iignora mayúsculas).
Archivos comprimidos
gzip/gunzip: Compresión estándar.bzip2/bunzip2: Compresión alternativa.xz/unxz: Alta compresión.zcat,bzcat,xzcat: Leen contenido sin descomprimir.
Ver y manipular texto
less: Navega página por página.head/tail: Muestra principio o final de un archivo.wc -l: Cuenta líneas.cut: Extrae campos (ej.cut -d' ' -f1).sort: Ordena líneas.tr: Sustituye caracteres.
Integridad de datos
sha256sum archivo: Genera hash.sha256sum -c archivo_hash: Verifica integridad.
103.3 Administración básica de archivos
Comandos básicos
ls -l: Lista con detalles (permisos, propietario).cp: Copia archivos (-rpara directorios).mv: Mueve o renombra.rm: Elimina (-rrecursivo).mkdir/rmdir: Crea/Elimina directorios.
Globbing y Wildcards
*: Coincide con cualquier cadena.?: Coincide con un carácter.[...]: Coincide con un conjunto o rango.
Encontrar archivos (find)
- Por nombre:
find / -name "archivo.txt". - Por tipo:
find / -type d(directorios). - Por tamaño:
find /home -size +5M. - Ejecutar acción:
find ... -exec comando {} \;.
Archivado (tar)
- Crear:
tar -czvf archivo.tar.gz dir/. - Extraer:
tar -xzvf archivo.tar.gz. - Ver:
tar -tzvf archivo.tar.gz.
103.4 Uso de secuencias, tuberías y redirecciones
Redirecciones de E/S
<: Entrada desde archivo.>/>>: Salida estándar (sobrescribir / añadir).2>/2>>: Salida de error.&>: Redirige salida y error juntos.
Here Document y Here String
- Here Document:
comando << EOF ... EOF(varias líneas). - Here String:
comando <<< "texto"(una línea).
Tuberías (Pipes)
Conectar salida de un comando con entrada de otro: cmd1 | cmd2.
Ejemplo: ps aux | grep python | sort.
Sustitución de comando
- Comillas invertidas:
`comando`. - Dólar paréntesis:
$(comando). - xargs: Construye y ejecuta líneas de comando desde la entrada estándar.
103.5 Crear, supervisar y matar procesos
Control de trabajos
&: Ejecuta en segundo plano.jobs: Lista trabajos en segundo plano.fg/bg: Trae a primer plano / envía a segundo plano.nohup: Ejecuta inmune a cierres de sesión.kill: Envía señales a procesos (-9para forzar).
Monitoreo
top: Vista en tiempo real (teclas: M por memoria, P por CPU).ps: Vista estática (ps aux,ps -ef).pgrep/pkill: Busca y mata por nombre.
Multiplexores (Screen / Tmux)
| Acción | Screen | Tmux |
|---|---|---|
| Crear ventana | Ctrl + a c | Ctrl + b c |
| Cambiar ventana | Ctrl + a 0-9 | Ctrl + b 0-9 |
| Desconectar (Detach) | Ctrl + a d | Ctrl + b d |
| Reconectar | screen -r | tmux attach |
103.6 Modificar la prioridad de ejecución de los procesos
El planificador y Prioridades
Valores nice van de -20 (alta prioridad) a 19 (baja). Por defecto es 0.
- Procesos tiempo real: Prioridad 0-99.
- Procesos normales: Prioridad 100-139 (nice mapeado aquí).
Gestión de Niceness
nice -n 10 comando: Inicia con prioridad 10.renice 15 PID: Cambia prioridad en ejecución.top: Muestra columna PRI/NI.
103.7 Búsquedas con expresiones regulares
RE Básicas (grep)
.: Cualquier carácter.^: Inicio de línea.$: Final de línea.[...]: Conjunto de caracteres.
Clases de caracteres
[:alpha:] (letras), [:digit:] (números), [:lower:] (minúsculas).
Cuantificadores (Extended grep -E)
*: 0 o más.+: 1 o más.?: 0 o 1.{n}: Exactamente n.
Comandos
grep: Busca texto.sed: Edita flujos de texto (ej.sed 's/old/new/g').find -regex: Busca archivos por patrón.
103.8 Edición básica de archivos
vi / vim
- Modos: Normal (navegar) e Inserción (escribir, tecla
i). - Navegación:
h,j,k,l,w(palabra),G(fin). - Acciones:
x(borrar),yy(copiar),p(pegar),u(deshacer).
Comandos Colon (:)
:w: Guardar.:q: Salir.:wq: Guardar y salir.:s/old/new/g: Reemplazar en línea actual.
Editores alternativos
- nano: Simple, menú visual (
Ctrl+Oguardar,Ctrl+Xsalir). - emacs: Potente, personalizable.