Módulo 5 - Administración de archivos y procesos del sistema

Comando Tar

  • tar es una herramienta clave en administración Linux.
  • Agrupa múltiples archivos o directorios en uno solo.
  • No comprime por defecto, solo empaqueta el contenido.
  • Ideal para respaldos, transferencias y organización.
  • La sintaxis general es: tar [opciones] archivo.tar files.
  • Es compatible con muchas opciones para extraer y listar • Su uso es común en scripts de mantenimiento y backups.
ComandoDescripción
tar -cf backup.tar *Crear un archivo .tar con todo el contenido de la ubicación actual.
mv backup.tar /varSe recomienda siempre mover el archivo .tar a otra ubicación para una mejor manipulación.
tar -xf backup.tarPermite extraer el contenido del archivo .tar creado.
tar -czf etc-back.tar.gz etc/Crear un archivo .tar comprimido formato gzip del directorio /etc.
gzip -d etc-back.tar.gzDescomprime el archivo. Posteriormente se debe de extraer el archivo .tar

Comando gzip

  • gzip reduce el tamaño de archivos eficientemente.
  • Ayuda a ahorrar espacio y acelerar transferencias.
  • Comprime codificando los datos sin perder información.
  • Es útil en backups, servidores y medios digitales.
  • Preserva la integridad del archivo original comprimido.
  • Se utiliza junto a tar para empaquetar y comprimir.
  • Soporta descompresión con gunzip o gzip -d.
ComandoDescripciónEjemplo
gzip -kMantiene el archivo original y crea el archivo comprimido.gzip -k etc-back.tar
gzipCrea el archivo comprimido sobre el archivo original.gzip backup.tar
gzip file1 file2 file3Permite comprimir varios archivos al mismo tiempo separándolos por un espacio.
gzip -r [directorio]Permite comprimir de manera individual todos los archivos contenidos dentro de un directorio.gzip -r etc/
gzip -9Permite definir el nivel de compresión sobre un archivo, siendo 1 el más "rápido" y 9 el "mejor".gzip -5 /root/backup2.tar
gzip -dPermite descomprimir un archivo.gzip -d tardoc.tar.gz

Streams

  • El sistema usa canales para comunicarse.
  • Input recibe datos desde el teclado.
  • Output muestra resultados al usuario.
  • Error canaliza mensajes de fallo visibles.
  • Son gestionados por el shell (como Bash).
  • Permiten redirigir flujos entre comandos.
  • Facilitan automatización y depuración eficiente.

Tipos de Streams

  • Standard Input Channel: Recibe datos del usuario, montado en /dev/stdin (valor "0").
  • Standard Output Channel: Muestra resultados en pantalla, montado en /dev/stdout (valor "1").
  • Standard Error Channel: Muestra errores del sistema, montado en /dev/stderr (valor "2").

Pipes (tuberías)

  • Las tuberías conectan la salida de un comando con otro.
  • Permiten ejecutar procesos en cadena de forma eficiente.
  • Son útiles para automatizar tareas repetitivas.
  • Transforman o filtran datos entre comandos.
  • Reducen líneas innecesarias en scripts.
  • Usan canales estándar de entrada y salida.
  • Ejemplos:
    ls | grep archivo # Filtra resultados
    
    cat /etc/passwd | grep vla
    cat /proc/cpuinfo | wc # Muestra la cantidad de las líneas, palabras y caracteres
    
    history | grep sudo
    grep -w vla /etc/passwd | cut -d ":" -f1
    

Comandos tee

  • tee redirige la salida estándar hacia un archivo mientras la muestra en pantalla.
  • Permite guardar y visualizar datos simultáneamente.
  • Es útil para crear registros sin perder la salida visible.
  • La sintaxis básica es: comando | tee archivo.txt.
  • Con la opción -a añade contenido sin sobrescribir.
  • Facilita el monitoreo y respaldo de información.
  • Ejemplo: cat /etc/passwd | tee passwd.txt, muestra y guarda.

Comandos xargs

  • xargs convierte la entrada estándar en argumentos para otros comandos.
  • Permite ejecutar comandos con datos provenientes de pipes.
  • Es ideal para procesar múltiples elementos de forma eficiente.
  • Transforma listas en parámetros individuales automáticamente.
  • Reduce la necesidad de bucles complejos en scripts.
  • Ejemplo: echo pera manzana uva | xargs touch, crea tres archivos.

Comandos tee y xargs

  • tee duplica la salida: pantalla + archivo.
  • xargs transforma entradas en argumentos ejecutables.
  • Ambos optimizan flujos de trabajo en terminal.
  • Se complementan con pipes para automatización.
  • Son herramientas esenciales en administración Linux.
  • Permiten procesar y guardar datos eficientemente.
  • Su uso mejora la productividad en scripts y comandos.

Comando cut

  • El comando cut extrae texto por bytes, caracteres o campos.
  • Se usa para cortar líneas y obtener datos específicos.
  • La salida puede redirigirse o encadenarse con otros comandos.
  • Es útil para procesar archivos como empleados.txt.
  • Permite filtrar columnas sin alterar el archivo original.
ComandoDescripción
cut -d ":" -f 1 empleados.txtEsta orden muestra la primera columna del archivo empleados.txt, utilizando ":" como delimitador.
cut -d ":" -f 5 empleados.txt|sortEn esta instrucción, se extrae la quinta columna del archivo empleados.txt basándose en el delimitador ":" y luego se ordena alfabéticamente utilizando el comando sort.
cut -d ":" -f 3 empleados.txt|tail -n 2Al usar esta orden, se muestra la tercera columna del archivo empleados.txt y luego se muestra las últimas dos líneas de esa columna.
cut -d ":" -f 1,3-5 empleados.txtCon esta línea de comando se extraen la primera columna y un rango que va desde la tercera hasta la quinta columna del archivo empleados.txt.
cut -d ":" -f 1,3-5 empleados.txt|head -n 3Aquí, se muestran la primera columna y las columnas del rango tercera a quinta del archivo empleados.txt, y luego se muestran solo las tres primeras líneas de esa salida.
cut -d ":" -f 1,3 empleados.txt --complementUtilizando el parámetro "–complement", esta orden muestra todas las columnas excepto la primera y la tercera del archivo empleados.txt.
cut -d ":" -f 1,3 empleados.txt --output=delimiter='|'Esta instrucción muestra las columnas primera y tercera del archivo empleados.txt, pero utilizando "|" como delimitador en lugar de \

Información de los procesos

  • Un proceso es un conjunto de instrucciones que la CPU ejecuta en un momento dado.
  • En Linux se pueden gestionar fácilmente gracias a comandos específicos.
  • El comando ps permite visualizar los procesos actualmente en ejecución.
  • Esto ayuda a controlar y administrar los recursos del sistema.
ComandoDescripción
psMuestra los procesos en ejecución.
ps -fProporciona información detallada sobre los procesos, incluyendo usuario y hora de inicio.
ps aMuestra todos los procesos, incluso los de otros usuarios.
ps uOfrece información adicional sobre los procesos del usuario actual, como el uso de CPU y memoria.
ps xMuestra procesos no asociados con una terminal.
ps -ALista todos los procesos del sistema, incluidos los de otros usuarios.
pstreePresenta una representación jerárquica de los procesos en ejecución.
ps -AlMuestra información completa de todos los procesos del sistema, incluyendo la hora de inicio y el usuario que los inició.
ps -eSimilar a ps -A, muestra todos los procesos del sistema.
ps -efCombina -e (todos) y -f (formato completo).
ps auxFormato BSD extendido: muestra todos los procesos con detalles de usuario y uso de recursos (muy usado en Linux).
ps -eoPermite personalizar las columnas mostradas (ej: ps -eo pid,ppid,cmd,%cpu,%mem).
ps --sortOrdena por criterios como %cpu, %mem, pid (ej: ps aux --sort=-%cpu).
ps -p <PID>Muestra información de un proceso específico por su PID.
ps -C <nombre>Busca procesos por nombre de comando (ej: ps -C bash).
ps -t <terminal>Muestra procesos asociados a una terminal específica.
ps -HMuestra la jerarquía de procesos (árbol de procesos).
ps -LMuestra hilos (threads) de los procesos (columna LWP).
ps -ZEn sistemas con SELinux, muestra el contexto de seguridad.
ps -mMuestra información de memoria del proceso.
ps -o lstartMuestra la fecha/hora exacta de inicio del proceso.
ps --forestSimilar a pstree, muestra procesos en formato de árbol dentro de ps.

La salida del comando ps -aux, nos proporciona lo siguiente:

ComandoDescripción
USERNombre del usuario que inició el proceso.
PIDID del proceso.
%CPUPorcentaje de uso de CPU por el proceso.
%MEMPorcentaje de uso de memoria por el proceso.
VSZTamaño total usado por el proceso en la memoria swap.
RSSTamaño total usado por el proceso en la memora RAM.
TTYTerminal asociada con el proceso.
STATEstado del proceso (como S para "durmiendo", R para "en ejecución", etc.).
STARTHora de inicio del proceso.
TIMETiempo acumulado de CPU utilizado por el proceso.
COMMANDNombre del comando o programa asociado con el proceso.

Comando top

  • El comando top es fundamental para monitorear el rendimiento del sistema en tiempo real.
  • Permite identificar procesos que consumen más recursos.
  • Ayuda a tomar decisiones rápidas en situaciones críticas.
  • Es esencial para tareas de diagnóstico y administración del sistema.
ParámetroDescripción
tCambia las pantallas de la CPU a gráficos ASCII simples que muestran el porcentaje de uso de cada CPU.
mMuestra diferentes opciones de visualización para las estadísticas de la memoria.
zAgrega un color por defecto.
yResalta en blanco las tareas en ejecución.
bResalta en blanco las filas con tareas en ejecución.
uNos abre un buscador para filtrar los procesos por usuario.
hParámetro de ayuda. Muestra otros parámetros que pueden ser usados.
nPermite definir una cantidad de líneas a mostrar.
kPermite matar un proceso.
1Muestra todas las CPUs/cores individualmente (alterna entre vista global y detallada).
lAlterna la visualización de la línea de carga promedio (load average) en la parte superior.
sCambia el intervalo de actualización (delay) en segundos (ej: 2.0 para 2 segundos).
dIgual que s - cambia el intervalo de actualización.
cAlterna entre mostrar el comando completo y solo el nombre del proceso.
iMuestra solo procesos en ejecución (idle processes).
POrdena por uso de CPU (porcentaje).
MOrdena por uso de memoria (RES).
NOrdena por ID de proceso (PID).
TOrdena por tiempo de ejecución (TIME+).
RInvierte el orden de clasificación actual.
fEntra al editor de campos para seleccionar qué columnas mostrar.
o (o mayúscula)Cambia el orden de los campos en tiempo real.
FSelecciona el campo por el cual ordenar.
VMuestra el árbol de procesos (modo jerárquico).
HMuestra threads/hilos individualmente (no solo procesos).
ZCambia la paleta de colores global (más opciones que z).
xResalta la columna de ordenación actual.
yResalta procesos en ejecución (RUNNING).
WGuarda la configuración actual en ~/.toprc para futuras sesiones.
qSale de top.

Parámetros de línea de comandos (al iniciar):

ParámetroDescripción
top -d segundosEstablece el intervalo de actualización (ej: top -d 1 para 1 segundo).
top -p PID1,PID2Monitoriza solo procesos específicos (ej: top -p 1234,5678).
top -u usuarioMuestra solo procesos de un usuario específico.
top -U usuarioIgual que -u (nombre o UID).
top -iInicia omitiendo procesos inactivos (idle).
top -n vecesEjecuta top un número fijo de veces y luego sale.
top -bModo batch/por lotes, útil para redirigir a archivos o scripts.
top -HMuestra hilos en lugar de procesos (desde inicio).
top -cMuestra la línea de comando completa desde el inicio.
top -o campoOrdena por campo específico al inicio (ej: -o %MEM).
top -ECambia la escala de memoria (KiB, MiB, GiB, etc.).

Ejemplos prácticos:

# Monitorear cada 0.5 segundos solo procesos de MySQL
top -d 0.5 -u mysql

# Ejecutar top 5 veces y guardar salida a archivo
top -b -n 5 > top_output.txt

# Monitorear procesos específicos por PID
top -p $(pgrep -d, firefox)

# Mostrar hilos y ordenar por CPU desde inicio
top -H -o %CPU

# Modo batch para procesamiento automático
top -b -n 1 -o %MEM | head -20

Comando nice

  • Cada proceso tiene un valor y prioridad únicos para acceder a los recursos del sistema.
  • Los comandos nice y renice permiten ajustar dicha prioridad.
  • nice define la prioridad antes de ejecutar el proceso (rango: -20 a 19).
  • El kernel interpreta los valores de prioridad como 0 (más alta) a 39 (más baja).
  • Nomenclatura de nice:
    • nice -[prioridad] [proceso]
  • Ejecutemos un proceso que inicie con un valor de prioridad de -15:
    • nice --15 ping google.com
  • Veamos el proceso ejecutado:
    • ps -Al | grep ping (acá veremos el PID y el valor de prioridad de nice -15).

Comando renice

  • nice asigna prioridad al iniciar un proceso.

  • renice modifica la prioridad de procesos activos.

  • Su uso mejora el rendimiento y control del sistema.

  • Nomenclatura:

    renice [val.prior] [PID]
    renice -1 2877 # Ejemplo
    
  • renice [val.prior] -u [username]: Permite cambiar el valor de prioridad de nice para todos los procesos en ejecución de un usuario. Ej: renice -15 u vla

  • renice [val.prior] -g [groupname]: Permite cambiar el valor de prioridad de nice para todos los procesos en ejecución de un grupo de usuarios. Ej: renice -15 -g vla

Característicanicerenice
Momento de usoAntes de iniciar un procesoDurante la ejecución de un proceso
Función principalAsignar una prioridad inicialCambiar la prioridad de un proceso activo
Requiere PIDNoSí
Sintaxis básicanice -n [valor] comandorenice -n [valor] -p [PID]
Permite aumentar prioridadSolo como rootSolo como root
Valor predeterminado0 (si no se especifica)No aplica (modifica prioridad existente)
Escenario de uso realEjecutar un respaldo con baja prioridad:
nice -n 10 ./backup.sh
Reducir carga de proceso activo:
renice -n 15 -p 1234

Comando jobs

  • Un job es un proceso interactivo controlado directamente desde la terminal.

  • Puede enviarse al segundo plano (background) y restaurarse al primer plano (foreground).

  • Esto permite al usuario pausar, reanudar o gestionar tareas sin cerrarlas.

  • El comando jobs es fundamental para visualizar los procesos activos asociados a la terminal actual.

    1. Ejecutamos la visualización y edición de un archivo de texto: nano script.sh (Para cerrar este job sin que quede en segundo plano ejecutamos ctrl+x.)

    2. Si ejecutamos ctrl+t y ctrl+z el job es minimizado y enviado a segundo plano (background). Veremos algo como: [1]+ Stopped nano script.sh

    3. Para maximizar el job y traerlo al primer plano (foreground) lo hacemos con el comando fg %[#job]. Ej: fg %1

  • El comando jobs nos mostrará cada job en el background y su número de job

    • (-): El símbolo - indica que es el penúltimo job enviado al background.

    • (+): El símbolo + indica que es el último job enviado al background.

    • fg %+: Lleva al primer plano el último job enviado al background.

    • fg %-: Lleva al primer plano el penúltimo job enviado al background.

    • bg %[#job]: Coloca un job que ya estaba en segundo plano como el último (+) job enviado a ese escenario, y el que estaba de último lo coloca como penúltimo (-).

    • jobs %+: Muestra el último job enviado al segundo plano.

    • jobs %-: Muestra el penúltimo job enviado al segundo plano.

Detached processes

  • Proceso detached sigue tras cerrar terminal.
  • nohup evita que el proceso se termine.
  • Ideal para tareas largas sin supervisión.
  • Permite continuar sin sesión activa.“Nohup” significa “no colgar”.
  • Muy útil al ejecutar scripts extensos. Ejemplo: backup remoto sin interrupciones.
  • nohup [command] & lo envía al segundo plano.
  • Genera el archivo nohup.out automáticamente.
  • Se guarda donde se ejecutó el comando.
  • Permite monitoreo con tail -f nohup.out o tail -f /home/user/nohup.
  • Terminal cerrada no afecta el proceso.
  • Solo se detiene si se mata manualmente.
  • nohup.out guarda toda la salida generada.

Señales de procesos

  • Las señales controlan procesos en ejecución.
  • Pueden pausar, reiniciar o finalizar procesos.
  • SIGINT (2): Interrumpe proceso (ej. ctrl+c).
  • SIGKILL (9): Mata proceso de forma forzada.
  • SIGTERM (15): Termina proceso de forma amigable.
  • SIGSTP (20): Envía proceso al segundo plano.
  • Se usan más de 25 señales distintas en Linux.
  • Matar procesos es vital para liberar recursos del sistema.
  • El comando kill usa por defecto SIGTERM (15). Ej: kill [PID]
  • kill -9 fuerza la finalización con SIGKILL. Ej: kill -9 [PID]
  • xkill permite cerrar procesos con el cursor.
  • kill -SIGTERM finaliza un proceso de manera amigable especificando el nombre de la señal. Ej: kill -SIGTERM [PID]
  • killall termina procesos por nombre (ej. ping -> killall ping).
  • Permite resolver bloqueos y cuelgues del sistema.
  • Es clave para mantener la estabilidad del entorno.
  • Ver mas información sobre señales en Linux signals

Comando watch

  • watch ejecuta comandos repetidamente a intervalos definidos.
  • Permite observar cambios del sistema en tiempo real.
  • Útil para monitorear procesos, disco o red sin intervención constante.
  • Es clave para diagnósticos dinámicos del sistema.
ParámetroDescripción
watch dateMuestra la ejecución del comando "date" cada 2 segundos por defecto.
watch -n 5 dateMuestra la ejecución del comando "date" cada 5 segundos.
watch -n 0 dateMuestra el resultado del comando "date" en tiempo real.

Más parámetros: How to Use the Linux watch Command with Examples

Comandos filtradores de texto

  • head: Muestra las primeras líneas de un archivo. Se puede especificar el número de líneas con head -[número].
  • tail: Muestra las últimas líneas del archivo. Se puede especificar el número de líneas con tail -[número].
  • more: Visualiza archivos página por página. Presiona la barra espaciadora para avanzar, q para salir y h para obtener ayuda.
  • less: Igual que more, pero con más funciones de navegación
  • cat: Despliega todo el contenido del archivo.
    • cat -n [archivo]: Muestra las líneas con numeración.
  • Todos facilitan lectura rápida de archivos.
Built with LogoFlowershow