- Aprender
- Informática
- TI, redes y nube
- Introducción a Linux
- Procesos, paquetes y servicios en Linux
Procesos, paquetes y servicios en Linux con systemd
ps, top y free, detenlos y cambia su prioridad mediante señales y nice, e inspecciona el hardware con herramientas como lscpu, lsblk y lspci. Instala, actualiza y elimina software con apt y dnf, gestiona servicios con systemctl, lee registros con journalctl, /var/log y dmesg para diagnosticar y resolver fallos de servicios, y crea copias de seguridad de archivos con tar, gzip, xz y zip.PrincipianteUnidad 6 de 7 del curso Curso de Introducción a Linux
Lo que aprenderás
- Encuentra los programas que se ejecutan en un sistema Linux, observa cuánta CPU y memoria utilizan, y detenlos, páusalos o cambia su prioridad de forma segura.
- Lista los procesos e interpreta la información de psExplica qué es un proceso, identifícalo por su identificador y utiliza
ps,pgrepy/procpara encontrar procesos y consultar su estado. - Supervisa la CPU, la memoria y la carga con top, free y uptimeInterpreta la vista de procesos en tiempo real de
top, evalúa la memoria confreey determina a partir de la carga media si un sistema está sobrecargado. - Detén procesos mediante señalesEnvía señales con
kill,pkillykillall, elige entre una parada ordenada y una forzada, y comprueba el resultado. - Ejecuta trabajos en segundo plano y establece prioridadesMueve comandos entre el primer y el segundo plano, mantenlos en ejecución después de cerrar sesión y cambia su prioridad de CPU con
niceyrenice.
- Lista los procesos e interpreta la información de ps
- Averigua qué procesador, memoria, discos y dispositivos tiene un equipo Linux, y qué núcleo y controladores utiliza, sin abrir la carcasa.
- Identifica el procesador, la memoria y el sistemaUtiliza
uname,lscpu,nproc,/procydmidecodepara obtener información sobre la arquitectura, las CPU, la memoria y el núcleo de un equipo. - Lista discos, dispositivos PCI y USB y sus controladoresIdentifica correctamente los dispositivos de almacenamiento, lista los dispositivos conectados a un equipo con
lsblk,lspciylsusb, y encuentra sus controladores y los mensajes del núcleo relacionados.
- Identifica el procesador, la memoria y el sistema
- Utiliza los gestores de paquetes de las familias Debian y Red Hat para instalar, actualizar, eliminar e inspeccionar software de forma segura desde repositorios de confianza.
- Comprende los paquetes, los repositorios y las dependenciasExplica qué son un paquete, un repositorio y una dependencia, cómo se reparten el trabajo las herramientas de paquetes de alto y bajo nivel y qué herramientas utiliza cada familia de distribuciones.
- Instala, actualiza y elimina software con apt y dnfActualiza la información de los paquetes, instala y actualiza software y elimínalo de forma limpia con
apten sistemas de la familia Debian ydnfen sistemas de la familia Red Hat. - Busca paquetes e inspecciona el software instaladoEncuentra el paquete que necesitas, comprueba qué está instalado y en qué versión, consulta los archivos que instaló un paquete y a qué paquete pertenece un archivo, y revisa el historial de paquetes.
- Comprende los paquetes, los repositorios y las dependencias
- Comprueba, inicia, detén, habilita y personaliza servicios en segundo plano con
systemctl, y comprende cómo decide systemd qué se ejecuta al arrancar.- Comprende systemd, las unidades y el estado de los serviciosExplica qué son un servicio y una unidad de systemd, interpreta la salida de
systemctl statusy distingue entre un servicio en ejecución y uno habilitado. - Inicia, detén, habilita y deshabilita serviciosControla los servicios con
systemctlen el momento y al arrancar, aplica cambios de configuración de forma segura y elige la unidad de destino predeterminada para el arranque. - Lee y personaliza archivos de unidadEncuentra y lee el archivo de unidad de un servicio, cambia sus ajustes de forma segura mediante archivos de configuración complementaria y escribe un servicio sencillo propio.
- Comprende systemd, las unidades y el estado de los servicios
- Encuentra los mensajes que explican qué hicieron un sistema y sus servicios mediante el registro de systemd, los archivos de registro de
/var/logy los mensajes del núcleo, y utilízalos para reparar un servicio que falla.- Consulta el registro de systemd con journalctlLee el registro de systemd con
journalctl, filtrado por servicio, arranque, prioridad y hora, y conoce dónde se almacena. - Lee los archivos de registro de /var/log y los mensajes del núcleoEncuentra y lee archivos de registro de texto en
/var/log, incluidos los archivos antiguos rotados, y usadmesgpara leer los mensajes del núcleo sobre hardware y controladores. - Diagnostica y resuelve paso a paso los fallos de un servicioCombina
systemctl,journalctly las comprobaciones propias del programa en un procedimiento repetible que permita descubrir por qué falla un servicio y confirmar la reparación.
- Consulta el registro de systemd con journalctl
- Agrupa archivos y directorios en archivos contenedores con
taryzip, comprímelos y descomprímelos con gzip, bzip2 y xz, y elige el formato adecuado para copias de seguridad y para compartir.- Crea archivos tar, lista su contenido y extráeloUsa
tarpara crear archivos contenedores comprimidos, comprobar su contenido y extraerlo en el lugar adecuado sin sobrescribir archivos por accidente. - Comprime archivos con gzip, bzip2, xz y zipComprime y descomprime archivos individuales, lee registros comprimidos sin descomprimirlos, usa
zippara compartir y elige un formato según la velocidad, el tamaño y el propósito.
- Crea archivos tar, lista su contenido y extráelo
Guía de estudio de Procesos, paquetes y servicios en Linux
1Supervisa y controla los procesos en ejecución
Un comando lento, un servidor ocupado y un programa que no se cierra plantean la misma pregunta: ¿qué se está ejecutando? Las herramientas de procesos permiten relacionar el nombre de un programa con su propietario, identificador de proceso y uso de recursos. Interpretarás una instantánea, observarás los cambios a lo largo del tiempo y después elegirás cómo detener o pausar el trabajo. El control de trabajos del intérprete y las prioridades de CPU te dan más control sobre las tareas largas sin perder el indicador de comandos del terminal.
1.1 Lista los procesos e interpreta la información de ps
Un programa como /usr/bin/sleep es un archivo en el disco. Un proceso es una instancia en ejecución de ese programa, con su propia memoria y sus propios recursos. Tres comandos que ejecutan el mismo programa crean tres procesos. Cada proceso activo tiene un PID, un identificador de proceso; Linux puede reutilizar ese número después de que termine.
Encuentra el proceso y su padre
Normalmente, un proceso es iniciado por otro proceso, su padre. La columna PPID indica el PID de ese padre. Los comandos que inicias en un intérprete de comandos son sus hijos. El PID 1 corresponde al primer proceso iniciado por el núcleo; en un sistema con systemd, es systemd. pstree -p dibuja estas relaciones familiares cuando está instalado.
ps toma una instantánea. Su selección predeterminada son los procesos con tu identificador de usuario efectivo en el terminal actual. Para obtener una vista de todo el sistema, elige las columnas que necesitas:
| Comando | Columnas útiles |
|---|---|
ps -ef | UID, PID, PPID, STIME, TIME, CMD |
ps aux | USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND |
La forma de estilo BSD ps aux no lleva guion. El campo USER identifica la cuenta cuyos permisos usa el proceso. Un proceso de superusuario puede acceder a recursos a los que no puede acceder un proceso de usuario normal.
Interpreta una línea
Considera este ejemplo de ps aux:
www-data 2417 0.3 1.2 214560 48212 ? S 09:14 0:02 nginx: worker process
El propietario es www-data, el PID es 2417 y el uso medio de CPU ha sido del 0,3 % desde el inicio. El proceso ocupa actualmente el 1,2 % de la RAM. RSS es la memoria residente: 48 212 KiB, aproximadamente 47,1 MiB. VSZ, 214 560 KiB, también incluye espacio de direcciones virtuales que no reside en la RAM. Un VSZ grande por sí solo no demuestra que falte memoria.
El ? significa que no hay un terminal de control. El estado S significa que el proceso está en espera, normalmente de trabajo. START es 09:14; TIME son dos segundos de trabajo de CPU. TIME no es el tiempo transcurrido: un servidor puede ejecutarse durante días usando muy poca CPU.
Reconoce los estados de proceso
| Estado | Significado |
|---|---|
R | En ejecución o listo para recibir tiempo de CPU |
S | En espera de un evento |
D | En espera ininterrumpible, a menudo de almacenamiento |
T | Detenido o pausado |
Z | Zombi: terminado, a la espera de que su padre recoja su estado |
I | Hilo inactivo del núcleo |
STAT puede añadir indicadores: + para un grupo de primer plano del terminal, s para un líder de sesión, l para varios hilos, N para una prioridad de CPU reducida y < para una prioridad elevada. Estar en espera es normal. Un proceso zombi ya ha terminado y no usa CPU; enviarle otra señal de terminación no permite recoger su estado de salida. Un número creciente de procesos zombi apunta a un programa padre que necesita atención.
Acota la búsqueda
pgrep -a nginx muestra los PID y las líneas de comandos coincidentes. Los patrones pueden coincidir con varios nombres: pgrep ssh puede encontrar tanto sshd como ssh-agent. pgrep -u alice selecciona por propietario; pidof nginx busca un nombre de programa. Una cadena que conecta ps con grep también puede mostrar el propio proceso de grep.
Para ver los cinco procesos que más memoria usan, ejecuta:
ps -eo pid,ppid,user,%mem,cmd --sort=-%mem | head -n 6
Hay seis líneas porque la primera es un encabezado. ps -p 2417 comprueba un PID. /proc/2417/status proporciona su nombre, estado, padre y detalles de memoria. /proc es una vista virtual proporcionada por el núcleo, no informes de procesos guardados en disco; el directorio del PID desaparece cuando el proceso termina.
Puntos clave
- Un proceso es una instancia en ejecución; su PID lo identifica mientras está activo.
ps -efmuestra los procesos padre;ps auxañade columnas de CPU y memoria.- TIME mide el trabajo de CPU, mientras que START indica cuándo comenzó el proceso.
- RSS mide la RAM residente; VSZ incluye otra memoria virtual.
- Los procesos en espera son normales; los procesos zombi ya han terminado.
pgrepacota una búsqueda y/proc/PID/statusproporciona información del núcleo.
1.2 Supervisa la CPU, la memoria y la carga con top, free y uptime
Una instantánea muestra lo que existe; las observaciones repetidas muestran lo que cambia. top combina una lista de procesos en tiempo real con totales de actividad de CPU, carga, memoria y espacio de intercambio. Lee el resumen y los procesos ocupados en conjunto antes de decidir qué recurso está bajo presión.
Trabaja con top
Ejecuta top. Pulsa P para ordenar por CPU, M para ordenar por memoria, 1 para mostrar cada CPU, h para obtener ayuda y q para salir. Sus comandos k y r envían señales y cambian los valores de ajuste de prioridad. htop ofrece otra vista interactiva, pero puede que necesite instalación.
Las columnas de procesos incluyen PID, USER, PR, NI, VIRT, RES, SHR, estado, %CPU, %MEM, TIME+ y COMMAND. RES es la RAM residente, como RSS en ps; VIRT incluye espacio de direcciones reservado. En el modo predeterminado de top por CPU, un proceso multihilo puede alcanzar el 400 % si mantiene ocupadas cuatro CPU. Al pulsar I, la visualización pasa a dividir el uso entre el número de CPU.
Identifica el tipo de actividad de CPU
El resumen de CPU divide el tiempo en categorías:
| Campo | Qué indica |
|---|---|
us, sy | Trabajo de programas de usuario y del núcleo |
ni | Trabajo de usuario con prioridad ajustada mediante nice |
id | Tiempo inactivo |
wa | Tiempo inactivo mientras hay operaciones de entrada/salida pendientes |
hi, si | Trabajo de interrupciones de hardware y software |
st | Tiempo de CPU que una máquina virtual perdió en favor de su anfitrión |
Un uso alto de CPU por parte de los usuarios indica que se están realizando cálculos. Un valor wa alto con poco trabajo de usuario dirige la atención hacia las esperas de almacenamiento. En una máquina virtual, un valor st alto apunta a tiempo de CPU retenido por el anfitrión. Son causas distintas de una respuesta lenta.
Compara la carga con la capacidad de CPU
uptime y top muestran las cargas medias de los últimos 1, 5 y 15 minutos. Linux cuenta las tareas ejecutables y las tareas en espera ininterrumpible, incluidas las esperas de almacenamiento. La carga no es un porcentaje de CPU. nproc indica las CPU disponibles para el proceso actual, lo que resulta útil para interpretar la capacidad.
Para tareas limitadas por la CPU y con poca espera de almacenamiento, supongamos que nproc indica 4 y la carga es 6.00, 5.20, 3.10. La carga reciente es de 1,5 tareas por CPU, por lo que ha habido trabajo en espera. El valor del periodo más corto supera al del periodo más largo, lo que indica un aumento reciente. Con 16 CPU, una carga de 6 sería mucho más ligera. En cambio, una carga alta con CPU inactivas puede deberse a tareas en estado D.
Evalúa la memoria con available
Ejecuta free -h. Su fila Mem incluye total, used, free, shared, buff/cache y available. Linux llena la RAM libre con cachés de disco útiles y puede recuperar gran parte de ella. Free cuenta la RAM completamente sin usar; available estima cuánta memoria puede utilizar el trabajo nuevo sin recurrir al espacio de intercambio.
Por ejemplo, un equipo indica un total de 7.6Gi, used de 3.1Gi, free de 0.4Gi, buff/cache de 4.6Gi y available de 4.5Gi. El valor pequeño de free no indica escasez: aproximadamente el 59 % sigue disponible. En las versiones actuales de procps, used es total menos available; free, used y la caché no son partes independientes que simplemente se suman.
Los sufijos Ki, Mi y Gi son unidades binarias. Un GiB equivale a 1 073 741 824 bytes; un GB equivale a 1 000 000 000 bytes. free -m usa MiB y free -g usa GiB enteros, lo que puede ocultar cantidades pequeñas por el redondeo.
El espacio de intercambio traslada parte del contenido de la memoria al almacenamiento en disco, que es más lento. Presta atención a una memoria available baja junto con un uso creciente del espacio de intercambio. Si la memoria se agota, el mecanismo del núcleo que termina procesos por falta de memoria puede finalizar uno. Comprueba si hay un mensaje OOM con sudo journalctl -k antes de suponer que una aplicación falló por sí sola.
Puntos clave
- Utiliza tanto el resumen del sistema como la lista de procesos de
top. - La carga de Linux cuenta las tareas ejecutables y las esperas ininterrumpibles; no es un porcentaje.
- Evalúa la carga en relación con las CPU disponibles y comprueba si hay esperas de almacenamiento.
- La columna available es más útil que free para evaluar el margen de RAM.
- Una memoria available baja y un uso creciente del espacio de intercambio indican presión; los eventos OOM aparecen en los registros del núcleo.
1.3 Detén procesos mediante señales
Una señal es una breve notificación que se entrega a un proceso. Puede solicitar una salida, pausar el trabajo o indicar a un servicio que vuelva a leer sus ajustes. El comando kill envía señales; su nombre no significa que todas las señales terminen el proceso que las recibe.
Elige la señal
| Señal | Propósito |
|---|---|
SIGTERM | Solicitar una salida ordenada; es la señal predeterminada de kill |
SIGKILL | Forzar la terminación sin que la aplicación pueda limpiar sus recursos |
SIGINT | Interrumpir el programa en primer plano, normalmente con Ctrl+C |
SIGTSTP | Solicitar una pausa, normalmente con Ctrl+Z |
SIGSTOP | Forzar una pausa |
SIGCONT | Reanudar un proceso detenido |
SIGHUP | Notificar el cierre del terminal; algunos servicios la usan para recargar |
SIGQUIT | Salir, posiblemente con un volcado de memoria; se envía con Ctrl+\ |
El programa puede gestionar o ignorar la mayoría de las señales. SIGKILL y SIGSTOP no se pueden capturar, bloquear ni ignorar. kill -l lista los nombres y números. Entre los números habituales en x86 y ARM están TERM 15, KILL 9, INT 2, HUP 1, QUIT 3, CONT 18, STOP 19 y TSTP 20. Los nombres evitan la numeración dependiente de la arquitectura.
Detén un proceso con cuidado
Primero determina qué proceso es. ps -p 5120 -o pid,user,stat,cmd permite inspeccionar el PID, el propietario, el estado y el comando. Después, solicita una salida ordenada:
kill -TERM 5120
kill 5120, kill -15 5120 y kill -s TERM 5120 envían la misma solicitud. Una salida ordenada permite que la aplicación guarde el trabajo, cierre archivos y elimine archivos de bloqueo. Dale tiempo para responder y después vuelve a ejecutar ps -p 5120. Si solo aparece el encabezado, ha terminado.
Si el mismo proceso activo sigue bloqueado después de la espera, kill -KILL 5120 es la alternativa forzada. La aplicación pierde la oportunidad de limpiar sus recursos, por lo que puede perderse el trabajo no guardado y pueden quedar archivos temporales. Vuelve a comprobar la identidad antes de recurrir a la señal forzada: los PID pueden reutilizarse después de que un proceso termine.
Comprueba los nombres antes de actuar
pkill selecciona por un patrón de nombre; killall selecciona un nombre de programa. Ambos envían normalmente SIGTERM. Comprueba un patrón amplio con pgrep -a fire antes de usar pkill fire: ese patrón puede seleccionar más procesos de los previstos. pkill -u bob selecciona todos los procesos de bob, no una sola aplicación.
killall -HUP rsyslogd envía HUP a los procesos de registro coincidentes. El efecto de HUP depende de la aplicación: comprueba que admita la recarga antes de tratar la señal como un comando de recarga. Para un servicio gestionado por systemd, usa sudo systemctl stop NAME; el gestor se ocupa del grupo de procesos del servicio y no trata la parada solicitada como un fallo que deba reparar automáticamente.
Comprende los permisos y los estados
Una cuenta normal controla normalmente sus propios procesos. Un intento de enviar una señal al proceso de otra cuenta puede producir «Operation not permitted»; sudo proporciona autoridad de superusuario cuando es necesario. Verifica el destino antes de usar esa autoridad, porque detener el servicio equivocado afecta a otros usuarios.
Un proceso en estado D puede seguir visible después de SIGKILL mientras espera una respuesta del almacenamiento. Repetir la señal no repara ese almacenamiento. Un proceso zombi en estado Z ya ha terminado; su padre debe recoger su estado de salida. Por tanto, es importante inspeccionar el estado cuando el proceso no desaparece.
Los atajos de teclado actúan sobre el grupo de procesos en primer plano. Ctrl+C suele terminar el trabajo; Ctrl+Z lo pausa y conserva su memoria y sus archivos abiertos. El cierre del terminal suele provocar el envío de HUP y la terminación de los trabajos asociados, por lo que las tareas largas requieren una gestión cuidadosa.
Puntos clave
- SIGTERM solicita una limpieza ordenada; SIGKILL fuerza la salida sin ella.
- Comprueba las coincidencias del patrón y verifica el PID antes de enviar una señal.
- SIGSTOP pausa y SIGCONT reanuda;
killpuede hacer más que terminar procesos. - Un proceso zombi no puede volver a terminarse y las esperas de almacenamiento pueden retrasar la terminación.
- Usa
systemctl stoppara un servicio gestionado.
1.4 Ejecuta trabajos en segundo plano y establece prioridades
Un trabajo en primer plano ocupa el terminal hasta que termina o se detiene. Un trabajo en segundo plano permite que el intérprete de comandos acepte otro comando mientras se ejecuta. El control de trabajos cambia dónde se ejecuta el trabajo; la prioridad de CPU cambia cómo compite con otras tareas.
Mueve el trabajo entre el primer y el segundo plano
Un signo de unión inicia un comando en segundo plano:
sleep 300 &
El intérprete puede mostrar [1] 6431. Aquí 1 es su número de trabajo local y 6431 es el PID válido en todo el sistema. jobs lista solo los trabajos de este intérprete. fg %1 lleva el trabajo 1 al primer plano. Si pausas ese trabajo en primer plano con Ctrl+Z, bg %1 lo reanuda en segundo plano. Sin un número, fg y bg eligen el trabajo marcado con +.
Prueba la secuencia con sleep 300: ejecútalo en primer plano, pulsa Ctrl+Z, ejecuta bg, consulta jobs, ejecuta fg y pulsa Ctrl+C. «Stopped» significa pausado, no terminado. Un trabajo detenido no usa CPU, pero sigue ocupando memoria y mantiene archivos abiertos. Bash puede mostrar la advertencia «There are stopped jobs» cuando intentas salir.
Controla la salida y el cierre de sesión
Un comando en segundo plano todavía puede escribir en el terminal. Redirige ambos flujos de salida para una tarea larga:
./report.sh > report.log 2>&1 &
La primera redirección envía la salida normal al archivo. 2>&1 envía la salida de error al mismo destino. El & final devuelve el indicador de comandos mientras se ejecuta la tarea.
Pasar un trabajo a segundo plano no lo protege por sí solo del cierre del terminal. Para iniciar una tarea que ignore SIGHUP, usa:
nohup ./long-task.sh > task.log 2>&1 &
Sin una redirección explícita, nohup suele escribir en nohup.out la salida destinada al terminal. En Bash, disown %1 elimina un trabajo existente de la tabla de trabajos del intérprete, de modo que Bash no le transmite HUP. El programa sigue necesitando destinos de entrada y salida utilizables. Un programa destinado a ejecutarse permanentemente se gestiona mejor como servicio.
Deja espacio para el trabajo interactivo
El valor de ajuste de prioridad expresa la prioridad de planificación de CPU de los procesos normales. Los valores van de -20, la prioridad más alta, a 19, la más baja; el valor inicial habitual es 0. Los valores más altos dan más oportunidades a las tareas que compiten. Un proceso con valor 19 aún puede utilizar por completo una CPU que de otro modo estaría inactiva.
nice -n 10 xz -9 big.log
renice -n 15 -p 6431
El primer comando inicia la compresión con un ajuste positivo del valor de prioridad; desde el valor habitual 0 pasa a 10. El segundo cambia a 15 el valor del proceso en ejecución. nice sin -n aplica un ajuste de 10. Un usuario normal generalmente puede aumentar el valor de sus propios procesos, reduciendo su prioridad de CPU. Aumentar la prioridad mediante la reducción del valor normalmente requiere ser superusuario, por ejemplo sudo renice -n -5 -p 6431.
En top, NI muestra el valor de ajuste de prioridad; para los procesos normales de tiempo compartido, PR suele ser 20 más NI. Por tanto, el valor 10 aparece como PR 30. En ps aux, N indica prioridad reducida y <, prioridad elevada. Este ajuste afecta a la competencia por la CPU, no a la prioridad de acceso al disco; ionice controla un recurso independiente.
Puntos clave
&inicia trabajo en segundo plano;jobs,fgybgusan números de trabajo locales al intérprete.- Ctrl+Z pausa un trabajo; no lo termina.
- Usa la redirección de salida y
nohupde forma consciente para una tarea larga en el terminal. - Los valores de ajuste de prioridad más altos reducen la prioridad de CPU cuando hay competencia, no la velocidad máxima con una CPU inactiva.
2Inspecciona el hardware desde la línea de comandos
La información de hardware te ayuda a elegir un paquete compatible, interpretar el uso de recursos y describir claramente un fallo. Linux proporciona información sobre el núcleo en ejecución, la disposición de la CPU, la memoria utilizable y los dispositivos conectados mediante herramientas de línea de comandos. Distinguirás las CPU lógicas de los núcleos físicos, las etiquetas decimales de almacenamiento de los tamaños binarios y un dispositivo detectado de uno que tiene un controlador funcional. Las mismas comprobaciones ayudan cuando el hardware es virtual.
2.1 Identifica el procesador, la memoria y el sistema
Antes de instalar software o dimensionar una carga de trabajo, averigua qué ofrece realmente el sistema. La arquitectura determina qué paquetes de código máquina se ejecutan. La disponibilidad de CPU ayuda a explicar la carga y la RAM utilizable limita el trabajo que cabe en memoria.
Distingue el núcleo de la distribución
| Comando | Información |
|---|---|
uname -r | Versión publicada del núcleo en ejecución, como 6.8.0-45-generic |
uname -m | Arquitectura, como x86_64 o aarch64 |
uname -a | Todos los campos de uname |
cat /etc/os-release | Nombre y versión de la distribución |
hostnamectl | Resumen del equipo, sistema operativo, núcleo y arquitectura |
Ubuntu 24.04 es una versión de distribución; un valor como 6.8.0-45-generic identifica el núcleo que se ejecuta en ella. Instalar un núcleo nuevo no cambia inmediatamente el núcleo en ejecución: eso sucede al reiniciar.
Las etiquetas de arquitectura difieren entre familias de paquetes. Los paquetes Debian usan amd64 para la arquitectura que uname identifica como x86_64, y arm64 para aarch64. Los paquetes RPM suelen usar directamente x86_64 y aarch64. Comprueba que la compilación corresponda al equipo antes de instalarla.
Cuenta núcleos y CPU lógicas
lscpu indica la arquitectura, el modelo, los zócalos, los núcleos por zócalo, los hilos por núcleo y las CPU lógicas. Para una disposición uniforme de CPU:
Un zócalo con seis núcleos y dos hilos por núcleo proporciona 12 CPU lógicas. Sigue habiendo seis núcleos físicos. Dos hilos de hardware comparten recursos dentro de un núcleo, por lo que 12 CPU lógicas no garantizan el doble de rendimiento que seis núcleos.
nproc indica las unidades de procesamiento disponibles para el proceso actual; la afinidad de CPU o los límites de recursos pueden hacer que esta cifra sea menor que el total del equipo. /proc/cpuinfo proporciona detalles de CPU directamente. En x86, grep -c ^processor /proc/cpuinfo cuenta las entradas de procesador y los indicadores vmx o svm muestran que se admite la virtualización por hardware. ARM expone campos diferentes.
Consulta la memoria utilizable e instalada
free -h proporciona un resumen práctico de la RAM. /proc/meminfo ofrece detalles: MemTotal es la RAM utilizable y MemAvailable estima la capacidad que puede usar el trabajo nuevo. Este archivo identifica sus cifras como kB, pero son kibibytes, o 1024 bytes cada uno.
Por ejemplo, MemTotal: 16303448 kB equivale aproximadamente a 15,5 GiB tras dividir dos veces entre 1024. Un equipo con 16 GiB de módulos físicos puede mostrar menos RAM utilizable porque el firmware y el núcleo reservan una parte.
Para inspeccionar los módulos y las ranuras instalados, ejecuta sudo dmidecode -t memory. sudo dmidecode -t system informa del fabricante, el modelo y el número de serie proporcionados por el firmware. Una máquina virtual informa de su hardware virtual. sudo lshw -short, cuando está instalado, proporciona un inventario compacto del hardware.
Comprueba un requisito mediante pruebas separadas
Supongamos que un software necesita un sistema ARM de 64 bits, al menos cuatro CPU disponibles y 8 GB de RAM. Si uname -m devuelve aarch64, se cumple el requisito de arquitectura. Si nproc devuelve 4, se cumple el requisito de CPU. Un total de 3.7Gi equivale solo a unos 4,0 GB, por lo que la memoria es insuficiente. Cumplir dos comprobaciones no compensa fallar la tercera.
Puntos clave
- Usa
/etc/os-releasepara consultar la distribución yuname -rpara el núcleo en ejecución. - Las etiquetas de arquitectura de los paquetes difieren:
amd64de Debian corresponde ax86_64. - Los zócalos, núcleos e hilos de hardware determinan el número de CPU lógicas.
nprocindica las CPU disponibles para el proceso actual.- La RAM utilizable puede ser menor que la memoria instalada;
/proc/meminfousa kilobytes binarios.
2.2 Lista discos, dispositivos PCI y USB y sus controladores
Linux asigna nombres a los dispositivos de hardware en /dev y publica su vista de los dispositivos en /sys. Varias herramientas de listado responden a preguntas diferentes: qué dispositivos de almacenamiento existen, qué buses han detectado dispositivos y qué controladores los gestionan.
Identifica discos y particiones
Los discos SATA, SAS y USB suelen aparecer como /dev/sda, /dev/sdb y letras posteriores. Sus particiones añaden un número, como /dev/sda1. NVMe usa nombres como /dev/nvme0n1, con /dev/nvme0n1p1 para una partición. Una máquina virtual puede usar /dev/vda.
lsblk muestra los dispositivos de bloques como un árbol. TYPE distingue un disco de una partición; RM indica si es extraíble y RO indica si es de solo lectura. SIZE da la capacidad y MOUNTPOINTS muestra dónde se está usando un dispositivo. Elige detalles adicionales con:
lsblk -o NAME,SIZE,MODEL
lsblk -f
El primero facilita la comparación del modelo y el tamaño. El segundo añade el tipo de sistema de archivos, la etiqueta y el UUID. Los nombres como sdb pueden cambiar según el orden de detección. Antes de escribir en un disco, confirma su identidad con algo más que la letra: escribir en el dispositivo equivocado destruye sus datos.
Una unidad vendida como de 512 GB contiene 512 000 millones de bytes. En GiB son aproximadamente 476,8, que lsblk muestra como 476.8G. El dispositivo no ha perdido capacidad: su etiqueta y la visualización usan unidades distintas.
Encuentra dispositivos y controladores asociados
| Herramienta | Qué buscar |
|---|---|
lspci | Dispositivos PCI y PCI Express, como controladores de red y almacenamiento |
lspci -k | El controlador en uso y los posibles módulos del núcleo |
lsusb | Identificadores y descripciones de dispositivos USB |
lsusb -t | Conexiones USB en forma de árbol, con sus velocidades |
lsmod | Módulos del núcleo cargados |
modinfo e1000e | Información sobre un módulo |
Un identificador USB como 046d:c52b identifica al proveedor y al producto con más fiabilidad que un nombre general como «receptor inalámbrico». En la salida de PCI, distingue Kernel modules, que nombra los posibles módulos, de Kernel driver in use, que identifica un controlador asociado. La detección por sí sola no equivale a contar con soporte funcional.
La mayoría de los controladores se pueden cargar como módulos del núcleo, partes del código del núcleo que se añaden cuando se necesitan. Cargar o eliminar módulos cambia el núcleo en ejecución y requiere autoridad de superusuario. Otros controladores están integrados en el núcleo. En las placas ARM, muchos dispositivos integrados no están en PCI, por lo que una lista breve de lspci no significa necesariamente que falte hardware.
Sigue una conexión en el registro del núcleo
Cuando conectes un disco USB, ejecuta sudo dmesg | tail, o inicia sudo dmesg -w antes de conectarlo. Un mensaje como [sdb] 60437492 512-byte logical blocks identifica el nuevo disco como /dev/sdb e indica su capacidad. Multiplicar el número de bloques por su tamaño da 30 943 995 904 bytes: aproximadamente 30,9 GB o 28,8 GiB.
Después compara la nueva entrada de lsblk con ese mensaje y el modelo del dispositivo. Si un adaptador detectado no funciona, usa lspci -k para comprobar el controlador y dmesg para leer los errores de inicialización. La ausencia de un controlador asociado y un controlador que informa de un error requieren comprobaciones posteriores diferentes.
Puntos clave
- Usa
lsblkpara dispositivos de bloques,lspcipara PCI ylsusbpara USB. - Los nombres de disco siguen el orden de detección; verifica el dispositivo antes de escribir.
- Una unidad de 512 GB decimales equivale aproximadamente a 476,8 GiB.
- Comprueba el controlador asociado y los mensajes del núcleo después de detectar un dispositivo.
3Instala y gestiona software con gestores de paquetes
Un gestor de paquetes relaciona los archivos de software con sus versiones, dependencias y fuentes de confianza. Elegir la herramienta adecuada para la distribución te permite instalar y mantener software sin tener que seguir cada biblioteca por tu cuenta. Aprenderás las familias de comandos de Debian y Red Hat, distinguirás la actualización de la información de paquetes de la aplicación de nuevas versiones y rastrearás un comando instalado hasta el paquete y la transacción que lo proporcionaron.
3.1 Comprende los paquetes, los repositorios y las dependencias
Un paquete agrupa archivos de software con la información utilizada para instalarlos y mantenerlos. Sus metadatos indican la versión, la arquitectura y los paquetes necesarios, y puede incluir guiones de instalación. Un gestor de paquetes registra qué archivos pertenecen a cada paquete instalado.
Identifica la familia de la distribución
| Sistemas | Formato de paquete | Herramienta de repositorio | Herramienta de bajo nivel |
|---|---|---|---|
| Debian, Ubuntu, Linux Mint | .deb | apt | dpkg |
| Fedora, RHEL, Rocky Linux, AlmaLinux, CentOS Stream | .rpm | dnf | rpm |
| openSUSE, SUSE Linux Enterprise | .rpm | zypper | rpm |
Arch Linux usa pacman; Alpine Linux usa apk. El nombre antiguo yum pertenece a la familia Red Hat. Si no tienes claro qué sistema usas, consulta cat /etc/os-release antes de elegir los comandos.
Un archivo como nginx_1.24.0-2_amd64.deb indica nginx, su versión de software, la revisión del empaquetado y la arquitectura. Estos campos ayudan al gestor de paquetes a seleccionar una compilación compatible. Que el nombre de una aplicación te resulte familiar no significa que cualquier paquete descargado sea adecuado para todas las distribuciones.
Deja que la herramienta de alto nivel resuelva las dependencias
Una dependencia es otro paquete que necesita el software, a menudo una biblioteca compartida. Por tanto, instalar una aplicación puede añadir varios paquetes. Una herramienta de alto nivel como apt o dnf encuentra un conjunto compatible, lo descarga y pide a la herramienta de nivel inferior que lo instale.
dpkg y rpm trabajan con archivos de paquetes locales y mantienen la base de datos de paquetes instalados. No obtienen las dependencias que faltan de los repositorios. Si los usas para instalar un archivo, pueden quedar requisitos pendientes que tendrás que resolver. Las herramientas de alto nivel también pueden instalar archivos locales mientras resuelven sus requisitos desde los repositorios configurados.
Las búsquedas y consultas funcionan con un usuario normal. La instalación, la eliminación y las actualizaciones modifican archivos del sistema y normalmente requieren sudo. La pantalla de confirmación proporciona información útil: revisa los paquetes adicionales y las eliminaciones propuestas antes de aceptar.
Comprende la confianza en los repositorios
Un repositorio proporciona archivos de paquetes e índices que describen las versiones y dependencias disponibles. Los repositorios propios de una distribución ofrecen un conjunto creado para su versión.
APT verifica los metadatos firmados del repositorio y usa las sumas de comprobación de esos metadatos para verificar los archivos descargados. Normalmente no comprueba una firma independiente en cada .deb. DNF verifica normalmente las firmas de los RPM de la distribución; la comprobación de firmas de los metadatos del repositorio se configura por separado. Estas comprobaciones establecen una cadena hasta un proveedor de confianza y ayudan a detectar manipulaciones.
Añadir un repositorio de terceros también implica confiar en el software y los guiones de instalación de ese proveedor. Obtén su clave de firma mediante las instrucciones auténticas del proveedor. No omitas las comprobaciones de firma para superar un error como «NO_PUBKEY». Un archivo de una página de descarga desconocida también necesita un origen fiable; la extensión del paquete por sí sola no proporciona esa confianza.
Busca el nombre correcto
Los nombres del software y del paquete pueden diferir. Apache se empaqueta como apache2 en sistemas de la familia Debian y como httpd en sistemas de la familia Red Hat. El comando dig procede de bind9-dnsutils o bind-utils. Busca antes de suponer que el nombre de un comando también es el de su paquete.
Otros sistemas de instalación mantienen registros separados. Snap, Flatpak y AppImage agrupan aplicaciones con muchas dependencias; pip y npm gestionan bibliotecas de programación. Instalar una biblioteca de Python con pip no la convierte en un paquete gestionado por apt.
Puntos clave
- Usa la familia de paquetes y la herramienta de repositorio que correspondan a
/etc/os-release. - Las herramientas de alto nivel obtienen dependencias;
dpkgyrpmoperan con paquetes y registros locales. - Los repositorios proporcionan índices de paquetes y una cadena de confianza hasta un proveedor.
- Los nombres de los paquetes pueden diferir de los nombres de los programas y entre distribuciones.
- Los gestores de paquetes del sistema y los gestores de aplicaciones o lenguajes mantienen registros separados.
3.2 Instala, actualiza y elimina software con apt y dnf
El mantenimiento de paquetes tiene tres tareas separadas: conocer lo que está disponible, aplicar los cambios seleccionados y eliminar el software que ya no se necesita. Lee la transacción prevista antes de confirmarla, especialmente cuando elimina paquetes.
Actualiza las listas e instala nuevas versiones
| Tarea | Familia Debian | Familia Red Hat |
|---|---|---|
| Actualizar las listas de paquetes | sudo apt update | DNF actualiza automáticamente los metadatos obsoletos |
| Instalar nuevas versiones | sudo apt upgrade | sudo dnf upgrade |
| Instalar nginx | sudo apt install nginx | sudo dnf install nginx |
| Eliminar nginx | sudo apt remove nginx | sudo dnf remove nginx |
| Eliminar dependencias innecesarias | sudo apt autoremove | sudo dnf autoremove |
apt update no actualiza el software. Descarga las listas de paquetes actuales. Después, ejecuta sudo apt upgrade para instalar versiones más recientes. El comando de actualización de DNF gestiona los metadatos obsoletos del repositorio como parte de su trabajo. DNF4 usa dnf check-update para listar los cambios disponibles; DNF5 usa dnf check-upgrade.
apt upgrade no elimina un paquete instalado para completar una actualización. Un paquete que necesite ese cambio puede quedar retenido. sudo apt full-upgrade permite eliminaciones, así que revisa su plan con cuidado. -y acepta una transacción automáticamente y elimina la oportunidad de revisarla de forma interactiva.
Instala desde un repositorio o un archivo local
En Ubuntu, ejecuta sudo apt update y después sudo apt install htop. APT lista los paquetes nuevos y las dependencias antes de descargarlos. htop --version comprueba el programa instalado. En Fedora, usa sudo dnf install htop.
Ejecutar apt install para un paquete existente puede actualizarlo a la candidata actual; no cambia nada si esa versión ya está instalada. Para instalar un archivo local de confianza, indica su ruta:
sudo apt install ./app_2.1.0_amd64.deb
sudo dnf install ./app-2.1.0-1.x86_64.rpm
./ indica una ruta de archivo. En cambio, sudo dpkg -i file.deb y sudo rpm -i file.rpm no obtienen las dependencias que faltan. Si dpkg deja dependencias sin satisfacer, sudo apt --fix-broken install puede resolverlas; revisa la reparación propuesta.
Elimina software y ajustes de forma deliberada
La operación remove de APT conserva la configuración del sistema gestionada por el paquete; purge también la elimina. Ninguna elimina archivos de los directorios personales de los usuarios. Autoremove se ocupa de las dependencias instaladas automáticamente que ya no necesitan los paquetes instalados. Es una decisión distinta de eliminar una aplicación por su nombre.
Las entradas de origen de APT se encuentran en /etc/apt/sources.list y /etc/apt/sources.list.d/; Ubuntu 24.04 suele usar ubuntu.sources en ese directorio. Actualiza las listas después de cambiar los orígenes. DNF lee los archivos .repo de /etc/yum.repos.d/; dnf repolist muestra los repositorios habilitados.
Termina el mantenimiento de forma ordenada
apt está diseñado para el uso interactivo. Los guiones suelen usar las interfaces más estables de apt-get y apt-cache. Sus comandos cubren las mismas tareas generales, aunque los valores predeterminados pueden diferir.
Un núcleo recién instalado pasa a ser el núcleo en ejecución después de reiniciar. Los programas que usan bibliotecas sustituidas necesitan reiniciarse para cargar el código nuevo. Ubuntu puede indicar que es necesario reiniciar mediante /var/run/reboot-required.
Un bloqueo de paquetes suele significar que hay una actualización automática u otra operación de paquetes activa. Espera a que termine; eliminar el archivo de bloqueo puede dañar los registros de paquetes. Un error de permisos, en cambio, indica falta de autoridad, así que confirma si la operación necesita sudo.
Puntos clave
apt updateactualiza las listas;apt upgrademodifica el software instalado.- DNF actualiza los metadatos obsoletos durante la actualización; DNF4 y DNF5 usan nombres distintos para comprobar las actualizaciones.
- Remove de APT conserva la configuración del sistema gestionada; purge la elimina.
- Usa una ruta con apt o dnf para instalar un archivo local y resolver las dependencias.
- Revisa las eliminaciones de una actualización completa y las dependencias propuestas para eliminación automática.
- Espera a que termine la operación que mantiene el bloqueo de paquetes y reinicia el programa o el equipo cuando el código actualizado lo requiera.
3.3 Busca paquetes e inspecciona el software instalado
Cuando falta un comando o cambia una versión, las consultas de paquetes permiten investigar a partir del síntoma. Empieza por decidir si necesitas información del repositorio, información de los paquetes instalados o el paquete al que pertenece un archivo concreto.
Busca antes de instalar
apt search json y dnf search json buscan en los nombres y las descripciones de los paquetes. Inspecciona un resultado prometedor con apt show NAME o dnf info NAME. Estos comandos muestran detalles como la versión, el tamaño, la descripción y el repositorio. La salida de show de APT también lista las dependencias; los requisitos de DNF se pueden consultar con dnf repoquery --requires NAME.
La información del repositorio indica lo que podrías instalar. Por sí sola no establece lo que ya está instalado. apt policy NAME distingue la versión instalada de la candidata, la versión que APT seleccionaría actualmente. apt list --upgradeable o dnf list --upgrades muestra los paquetes instalados con actualizaciones disponibles.
Consulta los registros de instalación
| Pregunta | Familia Debian | Familia Red Hat |
|---|---|---|
| ¿Qué está instalado? | apt list --installed o dpkg -l | dnf list --installed o rpm -qa |
| ¿Qué versión de un paquete está instalada? | dpkg -l nginx | rpm -q nginx |
| ¿Qué archivos proceden de htop? | dpkg -L htop | rpm -ql htop |
| ¿A qué paquete pertenece este archivo instalado? | dpkg -S /usr/bin/htop | rpm -qf /usr/bin/htop |
En dpkg -l, el estado ii identifica un paquete instalado. La dirección de la consulta importa: -L parte de un paquete y lista sus archivos; -S parte de un archivo y encuentra el paquete al que pertenece. En sistemas RPM, la distinción equivalente es entre -ql y -qf.
Rastrea un comando hasta su paquete
Supongamos que which openssl muestra /usr/bin/openssl. En Debian, dpkg -S /usr/bin/openssl identifica openssl como el paquete al que pertenece. Después, apt policy openssl muestra la versión instalada, la candidata y los repositorios. Esto evita suponer que el nombre del comando siempre debe coincidir con el de su paquete.
Para un comando ausente, puede que no haya ningún paquete instalado que consultar. dnf provides /usr/bin/rsync busca en las listas de archivos de los repositorios. Los sistemas de la familia Debian ofrecen la herramienta independiente apt-file: después de actualizar su índice con sudo apt-file update, apt-file search bin/rsync encuentra los paquetes que lo proporcionan. Ubuntu también puede sugerir un paquete cuando no se encuentra un comando.
Relaciona un fallo con una transacción
APT registra las transacciones en /var/log/apt/history.log; dpkg registra las acciones de nivel inferior en /var/log/dpkg.log. En DNF4, dnf history lista las transacciones; DNF5 usa dnf history list. dnf history info 12 muestra los paquetes modificados en la transacción 12.
sudo dnf history undo 12 solicita revertir esa transacción. Revisa su plan: la reversión depende de que las versiones necesarias de los paquetes sigan disponibles y no restaura datos arbitrarios de las aplicaciones. Para el diagnóstico, lee el historial antes de realizar otro cambio. Una actualización reciente de una biblioteca puede explicar por qué cambió el comportamiento de un programa aunque nadie reinstalara la aplicación principal.
Puntos clave
- Distingue las versiones del repositorio de la versión realmente instalada.
- Usa
dpkg -Lorpm -qlpara consultar los archivos de un paquete. - Usa
dpkg -Sorpm -qfpara consultar el paquete al que pertenece un archivo instalado. - Un archivo ausente requiere buscar qué paquete lo proporciona en el repositorio, no consultar paquetes instalados.
- El historial de transacciones ayuda a relacionar un problema nuevo con un cambio reciente de paquetes.
4Gestiona servicios con systemd
Los servicios siguen realizando tareas útiles después de que un usuario abandona el terminal. systemd gestiona su inicio, estado actual y respuesta a los fallos, mediante archivos de unidad que describen qué debe ejecutarse. Aprenderás a interpretar el estado sin confundirlo con la configuración de arranque, a controlar los servicios ahora y en futuros arranques, y a hacer pequeños cambios de configuración que se conservan tras las actualizaciones de paquetes. Un archivo de servicio sencillo muestra cómo encajan estos ajustes.
4.1 Comprende systemd, las unidades y el estado de los servicios
Un servicio, a menudo llamado demonio, proporciona una función en segundo plano, como servir páginas web o aceptar conexiones SSH. Normalmente no tiene terminal. Muchos nombres de demonios terminan en d, como sshd y chronyd.
Encuentra el gestor de servicios
En la mayoría de las distribuciones principales, systemd se ejecuta con el PID 1 e inicia los servicios en el orden necesario. Compruébalo con ps -p 1 -o comm=. systemd puede supervisar procesos, reiniciar servicios fallidos y organizar la recopilación de sus registros. Algunas distribuciones usan otro gestor, como OpenRC de Alpine Linux.
systemd gestiona unidades. Sus sufijos identifican sus funciones:
| Sufijo | Función |
|---|---|
.service | Ejecutar y gestionar un programa o tarea |
.socket | Escuchar en un socket y activar un servicio cuando sea necesario |
.timer | Programar una activación |
.mount | Representar un sistema de archivos montado |
.target | Agrupar unidades en un estado del sistema con nombre |
En los comandos de servicio, nginx es la forma abreviada de nginx.service. Los nombres varían: SSH suele usar ssh en Debian y Ubuntu, y sshd en Fedora y RHEL. Apache es apache2 o httpd. systemctl list-unit-files | grep ssh ayuda a encontrar el nombre local.
Lee las dos líneas importantes del estado
Ejecuta systemctl status nginx. Un ejemplo puede incluir:
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Wed 2026-10-21 09:14:03 UTC
Main PID: 2410 (nginx)
Loaded indica el archivo de unidad y su estado de habilitación. Active informa del estado actual y de cuándo comenzó. Main PID identifica el proceso principal; después aparecen las líneas de registro recientes. Un usuario normal puede inspeccionar el estado, pero ver los registros del sistema puede requerir privilegios adicionales.
Activo y habilitado son independientes. Activo describe el presente. Habilitado significa que se han creado enlaces de habilitación, normalmente para que una unidad de destino inicie el servicio al arrancar. Un servicio deshabilitado puede iniciarse manualmente o activarse mediante otra unidad. Un servicio habilitado puede estar detenido o fallido.
Interpreta el estado con precisión
| Estado Active | Interpretación |
|---|---|
active (running) | El programa del servicio está en ejecución |
active (exited) | Una tarea completada aún se considera activa |
inactive (dead) | No está activo |
failed | Falló el inicio o la ejecución; examina el resultado y los registros |
activating | El inicio está en curso |
El color del punto de estado ayuda a examinar la información rápidamente, pero el texto del estado es la prueba útil. systemctl is-active nginx informa del estado actual; systemctl is-enabled nginx informa de la habilitación. static significa que la unidad no tiene instrucciones de habilitación y puede activarse por otra vía. masked significa que su inicio está bloqueado.
Elige la vista general adecuada
systemctl list-units --type=service muestra las unidades de servicio cargadas actualmente, con su filtro de estado predeterminado. Añade --all para incluir las unidades cargadas inactivas, o --state=running para centrarte en los servicios en ejecución. systemctl --failed muestra únicamente las unidades fallidas. systemctl list-unit-files --type=service lista los archivos de servicio instalados y sus estados de habilitación, incluidos los servicios que no se ejecutan en ese momento.
Puntos clave
- systemd gestiona unidades; una unidad
.servicedescribe un programa o tarea. - Lee Loaded para conocer el archivo de unidad y la habilitación, y Active para el estado actual.
- Un servicio habilitado puede estar detenido; un servicio deshabilitado puede estar en ejecución.
active (exited)puede describir una tarea completada correctamente.- Usa list-unit-files para las definiciones instaladas y list-units para las unidades cargadas.
4.2 Inicia, detén, habilita y deshabilita servicios
El control de servicios tiene dos horizontes temporales: qué debe ejecutarse ahora y qué debe iniciarse automáticamente más adelante. Mantén separadas esas decisiones al instalar software o reparar un servicio.
Controla el estado actual
| Comando | Efecto |
|---|---|
sudo systemctl start nginx | Iniciar ahora |
sudo systemctl stop nginx | Detener ahora |
sudo systemctl restart nginx | Detener e iniciar, interrumpiendo el trabajo actual |
sudo systemctl reload nginx | Pedir a un servicio que admita la recarga que vuelva a leer la configuración |
sudo systemctl reload-or-restart nginx | Recargar si se admite; en caso contrario, reiniciar |
Usa systemctl status nginx después de un cambio. Para una comprobación silenciosa, systemctl is-active --quiet nginx devuelve éxito cuando está activo. No muestra texto de estado, lo que lo hace útil en condiciones del intérprete de comandos.
La posibilidad de recargar depende del servicio. Para nginx, prueba una configuración modificada con sudo nginx -t antes de sudo systemctl reload nginx. Una recarga correcta puede aplicar nuevos ajustes sin detener el servicio. Si la configuración es incorrecta, nginx conserva la configuración anterior en ejecución al recargar; en cambio, reiniciar con el archivo incorrecto puede dejarlo fuera de servicio.
Configura el inicio automático
sudo systemctl enable nginx crea enlaces de habilitación; no inicia nginx ahora. sudo systemctl disable nginx elimina esos enlaces; no detiene el proceso actual. Para realizar ambos cambios a la vez:
sudo systemctl enable --now nginx
sudo systemctl disable --now nginx
El primero habilita e inicia; el segundo deshabilita y detiene. En Fedora, la instalación de nginx suele dejarlo detenido y deshabilitado, mientras que la instalación del paquete en la familia Debian suele iniciarlo y habilitarlo. Comprueba el estado real después de la instalación.
Después de iniciar un servicio web, curl -I http://localhost puede comprobar su respuesta local. Obtener una respuesta local y acceder desde otro equipo son pruebas distintas; un cortafuegos aún puede bloquear el acceso remoto.
Bloquea la activación cuando sea necesario
Deshabilitar un servicio no impide que una dependencia o un socket lo active. El enmascaramiento bloquea el inicio al enlazar el nombre de la unidad a /dev/null:
sudo systemctl mask bluetooth
sudo systemctl unmask bluetooth
El enmascaramiento por sí solo no detiene una unidad que ya está en ejecución. Detenla también cuando deba dejar de ejecutarse. Desenmascarar elimina el bloqueo; por sí solo no inicia ni habilita el servicio. Al intentar iniciar una unidad enmascarada, se informa de que está enmascarada.
Elige el estado predeterminado del sistema
Una unidad de destino agrupa unidades. multi-user.target proporciona el entorno multiusuario normal sin interfaz gráfica, utilizado habitualmente en servidores. graphical.target añade el escritorio. systemctl get-default informa de la unidad de destino predeterminada y sudo systemctl set-default multi-user.target cambia la unidad seleccionada para futuros arranques; no cierra inmediatamente el escritorio actual.
sudo systemctl reboot reinicia el equipo y sudo systemctl poweroff lo apaga. Para un solo servicio, usa en su lugar sus propios comandos de control. Terminar el PID de un servicio gestionado puede provocar un reinicio automático; un systemctl stop intencionado indica a systemd que lo mantenga detenido.
Puntos clave
- Start y stop afectan al presente; enable y disable cambian los enlaces de habilitación.
enable --nowydisable --nowcombinan ambos horizontes temporales.- Deshabilitar permite otras vías de activación; enmascarar bloquea el inicio.
- El enmascaramiento por sí solo deja en ejecución un servicio que ya estaba activo.
- Prueba la configuración de la aplicación antes de recargar o reiniciar.
- Cambiar la unidad de destino predeterminada selecciona el comportamiento de futuros arranques.
4.3 Lee y personaliza archivos de unidad
Un archivo de unidad indica a systemd cómo ejecutar un servicio. Lee la configuración efectiva con systemctl cat NAME: muestra el archivo base y las modificaciones junto con sus rutas.
Conoce dónde van los ajustes
Las unidades proporcionadas por paquetes se encuentran en /usr/lib/systemd/system/, al que también se accede como /lib/systemd/system/ en sistemas de la familia Debian. Los archivos locales del administrador y las modificaciones van en /etc/systemd/system/, que tiene prioridad. Una actualización de paquete puede sustituir su propio archivo, así que guarda los cambios locales en una configuración complementaria.
Un archivo de unidad tiene secciones y ajustes Key=value:
| Sección | Ajustes importantes |
|---|---|
[Unit] | Description=, orden mediante After=, dependencias mediante Wants= o Requires= |
[Service] | ExecStart=, User=, WorkingDirectory=, Environment=, Restart= |
[Install] | WantedBy=, usado al habilitar la unidad |
After=network.target establece el orden; por sí solo no inicia esa unidad de destino ni garantiza la conexión a Internet. WantedBy=multi-user.target indica a enable que cree un enlace en multi-user.target.wants/. Una unidad estática no tiene instrucciones de habilitación, pero otra unidad aún puede activarla.
Crea un servicio sencillo
Para un pequeño servidor de prueba, prepara primero /srv/hello con archivos legibles y una cuenta del sistema:
sudo useradd --system --no-create-home hello
Con Python 3 instalado en /usr/bin/python3, escribe /etc/systemd/system/hello-web.service:
[Unit]
Description=Hello web server
After=network.target
[Service]
ExecStart=/usr/bin/python3 -m http.server 8080 --directory /srv/hello
User=hello
Restart=on-failure
[Install]
WantedBy=multi-user.target
Ejecuta sudo systemctl daemon-reload y después sudo systemctl enable --now hello-web. Inspecciona systemctl status hello-web y solicita http://localhost:8080 con curl. La cuenta del servicio necesita permiso para leer el directorio y atravesar sus directorios padre.
Con el valor predeterminado Type=simple, el programa permanece en primer plano para que systemd pueda supervisarlo. ExecStart= acepta una ruta absoluta al ejecutable o un nombre de archivo simple de la ruta de búsqueda de systemd. Una ruta relativa con una barra, como ./server, no es válida. Un programa que crea un proceso hijo en segundo plano necesita un tipo de servicio adecuado, como Type=forking.
Modifica un ajuste proporcionado por un paquete
sudo systemctl edit nginx abre un archivo de configuración complementaria. Por ejemplo:
[Service]
Restart=on-failure
RestartSec=5s
Guardar mediante systemctl edit recarga la configuración de unidades de systemd. Reinicia el servicio para aplicar los ajustes de ejecución modificados. Cuando edites archivos directamente, ejecuta tú mismo sudo systemctl daemon-reload antes de reiniciar. Esto recarga las definiciones de unidades, no la configuración propia de la aplicación.
Para sustituir un ajuste de lista como ExecStart se necesita una línea ExecStart= vacía antes de la nueva. sudo systemctl revert nginx elimina las modificaciones locales y restaura la configuración del proveedor.
Restart=no deja detenido un proceso que ha terminado. on-failure lo reinicia tras los fallos que cumplen las condiciones; always también incluye las salidas ordenadas. Un systemctl stop intencionado impide el reinicio automático. Los fallos rápidos pueden alcanzar un límite configurado de frecuencia de arranque. Los valores predeterminados del gestor permiten cinco inicios en 10 segundos; la configuración local puede cambiarlos. Corrige la causa antes de borrar el estado fallido y volver a intentarlo.
Puntos clave
- Guarda los ajustes locales en
/etc/systemd/system/e inspecciónalos consystemctl cat. - Las secciones de una unidad separan la descripción y las dependencias, la ejecución y la habilitación.
- Ejecuta un servicio sencillo en primer plano con una cuenta adecuada.
- Recarga las definiciones de unidades después de editarlas directamente y reinicia para aplicar los cambios de ejecución.
- Un archivo de configuración complementaria se conserva tras las actualizaciones de paquetes; los ajustes de lista pueden necesitar una línea vacía de restablecimiento.
- La política de reinicio gestiona las salidas de procesos, mientras que los límites de frecuencia evitan intentos rápidos interminables.
5Lee los registros del sistema para diagnosticar y resolver problemas
El estado de un servicio indica que algo ha fallado; los registros ayudan a explicar por qué. Linux registra mensajes en el registro de systemd, en archivos de registro de aplicaciones y en el búfer de mensajes del núcleo. Limitarás esos registros por servicio, arranque, hora y gravedad, y relacionarás el primer error útil con una comprobación concreta. Una reparación ordenada modifica una causa cada vez y verifica tanto el servicio en ejecución como su comportamiento de inicio previsto.
5.1 Consulta el registro de systemd con journalctl
El registro de systemd recopila mensajes del núcleo, del arranque y de los servicios, incluida la salida que los programas gestionados envían al registro. systemd-journald almacena registros binarios indexados. Léelos con journalctl; un lector de archivos de texto como less no puede interpretar los propios archivos del registro.
Lee suficiente información del registro
El acceso al registro del sistema depende de los permisos y de la política local. El superusuario y los grupos autorizados como systemd-journal o adm pueden leer las entradas del sistema. Si una cuenta normal solo ve un conjunto limitado, usa sudo journalctl para investigar el sistema.
La vista predeterminada comienza con mensajes antiguos en un paginador. Usa las teclas de dirección para desplazarte, / para buscar y q para salir. Elige una vista más concreta:
| Opción | Efecto |
|---|---|
-r | Las más recientes primero |
-e | Saltar al final |
-n 50 | Últimos 50 registros |
-f | Seguir los registros que llegan hasta pulsar Ctrl+C |
--no-pager | Mostrar directamente, útil para tuberías |
-n sin un número selecciona diez entradas. La salida de estado suele mostrar solo unas pocas líneas recientes, así que lee el registro cuando esas líneas no expliquen el fallo.
Combina filtros de unidad, arranque y tiempo
sudo journalctl -u nginx -b selecciona los registros de nginx de este arranque. -b -1 selecciona el arranque anterior; --list-boots lista los registros de arranques conservados. -k selecciona los mensajes del núcleo y normalmente implica el arranque actual. Para consultar registros anteriores del núcleo, indica el arranque explícitamente.
Los filtros de tiempo admiten tiempos relativos y fechas completas:
sudo journalctl -u nginx --since "2026-10-22 08:00" --until "2026-10-22 09:30"
--since today significa desde la medianoche de hoy, mientras que --since "1 hour ago" establece una ventana de tiempo móvil. Las cadenas de fecha y hora entre comillas permanecen juntas como un solo argumento. Una fecha sin hora comienza a medianoche.
Comprende el límite de prioridad
Las prioridades van de 0, emergencia, a 7, depuración. Entre ellas están alerta, crítico, error, advertencia, aviso e información. Los números menores indican mayor gravedad. -p err incluye los niveles del 0 al 3, no solo error. Usa un rango explícito como -p err..warning para seleccionar esa franja.
Un filtro de gravedad demasiado limitado puede ocultar la información que necesitas. Por ejemplo, SSH puede registrar los mensajes de contraseñas fallidas con el nivel de información. En Ubuntu, sudo journalctl -u ssh --since today --grep "Failed password" encuentra los mensajes coincidentes sin descartarlos mediante un límite de advertencia.
Una línea como «Failed password for invalid user admin from 203.0.113.45» identifica la cuenta utilizada en el intento y la dirección de origen. La marca de tiempo y el PID del programa la sitúan en la actividad circundante. -o short-iso facilita la comparación de fechas completas; -o verbose muestra los campos, -o json-pretty muestra registros estructurados y -x añade el texto explicativo disponible.
Conoce qué se conserva tras un reinicio
Los registros persistentes se encuentran en /var/log/journal/; los volátiles, en /run/log/journal/, desaparecen al apagar. El comportamiento de almacenamiento se controla mediante Storage= en la configuración de journald. Que solo haya un arranque registrado puede significar que los registros anteriores nunca se guardaron de forma persistente o que ya se eliminaron.
journalctl --disk-usage incluye los archivos de registro activos y archivados. sudo journalctl --vacuum-size=500M elimina archivos archivados antiguos hasta alcanzar un límite de 500 MiB para ellos. Esa operación no elimina los archivos activos, por lo que el total de uso de disco indicado puede seguir siendo mayor.
Puntos clave
- Filtra por unidad, arranque y tiempo antes de limitar por prioridad.
- Un límite de prioridad incluye los niveles más graves, no solo el nivel indicado.
- Los registros de nivel informativo pueden contener la causa de un problema.
- Los registros persistentes se conservan tras reiniciar; los volátiles no.
- La depuración elimina archivos archivados, mientras que el uso de disco también cuenta los archivos activos.
5.2 Lee los archivos de registro de /var/log y los mensajes del núcleo
El registro de systemd no es la única fuente de registros. Algunos sistemas también ejecutan rsyslog y las aplicaciones pueden escribir sus propios registros de texto. El núcleo mantiene un búfer de mensajes independiente en memoria. Elige la fuente que registró el evento que investigas.
Encuentra el registro de texto adecuado
| Fuente | Ubicación habitual |
|---|---|
| Mensajes generales de Debian/Ubuntu, con syslog configurado | /var/log/syslog |
| Autenticación de Debian/Ubuntu | /var/log/auth.log |
| Registro de texto del núcleo de Debian/Ubuntu | /var/log/kern.log |
| Mensajes generales y autenticación de la familia RHEL | /var/log/messages, /var/log/secure |
| Acciones de APT y dpkg | /var/log/apt/history.log, /var/log/dpkg.log |
| Acciones de DNF | /var/log/dnf.log |
| Solicitudes y problemas de nginx | /var/log/nginx/access.log, /var/log/nginx/error.log |
La presencia de un archivo depende de los servicios de registro instalados y de su configuración. Debian 12 y posteriores suelen depender del registro de systemd salvo que se instale rsyslog. Las aplicaciones aún pueden mantener sus propios registros en un equipo así.
Lee un archivo de texto con sudo less /var/log/auth.log, inspecciona su final con sudo tail -n 20 /var/log/syslog o sigue las entradas nuevas con sudo tail -f /var/log/nginx/error.log. Para seleccionar una palabra sin distinguir entre mayúsculas y minúsculas, usa sudo grep -i "error" /var/log/syslog.
Lee los campos y los archivos antiguos
Un ejemplo clásico es:
Oct 22 08:01:17 web1 sshd[3141]: Accepted publickey for alice from 198.51.100.7 port 50522 ssh2
Indica la hora, el equipo, el programa con su PID y el mensaje del evento. Algunos sistemas usan en su lugar marcas de tiempo ISO completas con desplazamientos de zona horaria. El mensaje describe un inicio de sesión correcto mediante clave, no un intento fallido con contraseña; leer solo el nombre del programa hace que se pierda esa distinción.
La rotación de registros limita su crecimiento al cambiar el nombre de los archivos antiguos, crear otros nuevos y finalmente eliminar los caducados. La configuración de logrotate se encuentra en /etc/logrotate.conf y /etc/logrotate.d/. Una secuencia como syslog, syslog.1 y syslog.2.gz abarca registros actuales y anteriores. Usa zless o zgrep para el texto comprimido con gzip sin extraerlo primero. Una búsqueda solo en el archivo actual puede pasar por alto el fallo de ayer.
Lee los eventos del núcleo
El búfer circular del núcleo contiene mensajes recientes y sobrescribe las entradas más antiguas a medida que se llena. Registra la detección de dispositivos, fallos de controladores, errores de almacenamiento y terminaciones de procesos por falta de memoria. dmesg lo muestra; usa sudo cuando el acceso esté restringido. dmesg -T proporciona horas legibles, dmesg -l err,warn selecciona errores y advertencias, y dmesg -w sigue los mensajes nuevos.
sudo journalctl -k lee las entradas del núcleo conservadas en el registro de systemd. sudo journalctl -k -b -1 puede acceder a un arranque anterior que el búfer circular activo ya no contiene.
Si un proceso Java desaparece, una línea del núcleo como «Out of memory: Killed process 4810 (java)» relaciona su salida con la presión sobre la memoria. Comprueba free -h y top, y después reduce la demanda de memoria o añade capacidad. Para problemas de inicio de servicios, comienza por el registro de la unidad; para detalles específicos de la aplicación, lee su propio registro de errores.
Usa la rotación o los controles de conservación del registro de systemd para gestionar el espacio ocupado. Eliminar manualmente un registro de texto borra pruebas y puede dejar su espacio de disco asignado hasta que el programa que escribe cierre el archivo.
Puntos clave
- Las ubicaciones de los registros de texto dependen de la configuración; las aplicaciones pueden mantener sus propios archivos.
- Usa less, tail y grep para registros de texto, y zless o zgrep para registros antiguos comprimidos.
- La rotación distribuye el historial de eventos entre varios archivos.
- dmesg muestra el búfer actual del núcleo; el registro de systemd puede conservar arranques anteriores.
- Los mensajes OOM del núcleo pueden explicar la desaparición de una aplicación sin un error propio.
5.3 Diagnostica y resuelve paso a paso los fallos de un servicio
Los reinicios repetidos rara vez explican un fallo. Comienza por el síntoma visible, recopila el mensaje que indica su causa y cambia una cosa. Después, prueba el servicio reparado tanto mediante su gestor como mediante la función que proporciona.
Sigue una investigación repetible
- Confirma el síntoma: por ejemplo, falla una solicitud web local.
- Ejecuta
systemctl status NAMEy lee Active, Result y el código de salida. - Lee
sudo journalctl -u NAME -b, o las últimas 50 entradas con-n 50 --no-pager. - Usa el registro de errores y la prueba de configuración de la propia aplicación.
- Corrige una causa identificada y repite la comprobación pertinente.
- Inicia o reinicia, inspecciona el estado y prueba la función real.
- Comprueba
systemctl is-enabled NAMEfrente al comportamiento de arranque previsto.
Lee el primer error significativo del intento fallido. Una línea posterior «Failed to start» resume el resultado; puede que no indique la causa. Mantener coordinados los filtros de tiempo y unidad ayuda a distinguir el último intento de los fallos anteriores.
Resuelve un conflicto de puerto
Falla un reinicio de nginx. Su registro contiene «bind() to 0.0.0.0:80 failed (98: Address already in use).». Algo ya está en escucha en ese puerto. Ejecuta:
sudo ss -tlnp | grep ':80 '
Supongamos que identifica apache2. Si este equipo está destinado a usar nginx y Apache ya no es necesario, sudo systemctl disable --now apache2 detiene Apache y elimina sus enlaces de habilitación. Después, sudo systemctl start nginx puede ocupar el puerto. Comprueba systemctl status nginx y una solicitud web local.
La condición importa: no elimines un servicio necesario solo para que se inicie otro. Si ambos deben ejecutarse, su configuración de escucha necesita un cambio deliberado. El registro identifica el conflicto de recursos, mientras que la función prevista del sistema determina la reparación.
Resuelve un error de configuración
Supongamos que el registro informa de una llave de cierre inesperada en /etc/nginx/sites-enabled/default:24. Ejecuta sudo nginx -t; identifica el mismo archivo y línea. Corrige la llave mal colocada, vuelve a ejecutar la prueba y reinicia solo después de que la prueba sea correcta. Esto aísla el cambio y evita sustituir una configuración que se sabe que funciona por otra incorrecta.
Usa el código de resultado para acotar la búsqueda
| Estado o resultado | Siguiente comprobación |
|---|---|
203/EXEC | Ruta del ejecutable, permiso de ejecución y capacidad para iniciarlo |
217/USER | Cuenta de User= y capacidad para establecer sus credenciales |
1/FAILURE | Mensajes de error de la propia aplicación |
oom-kill | Registros OOM del núcleo y uso de memoria |
La ausencia de un ejecutable y un programa que se inicia pero rechaza sus ajustes son fallos diferentes. Para «Permission denied», compara la salida de ls -l y el acceso a los directorios con el usuario configurado para el servicio. Si el disco está lleno, comprueba df -h; si hay poca RAM, comprueba free -h; si hay presión sobre la CPU, inspecciona top.
Si systemd informa «start request repeated too quickly», repara primero la causa. Después, sudo systemctl reset-failed NAME borra el estado fallido y los contadores del límite de arranque para que puedas iniciarlo de nuevo. Restablecer el contador por sí solo no repara el programa.
Puntos clave
- Confirma el síntoma, inspecciona el estado y lee el primer error que explique la causa.
- Usa las comprobaciones de la aplicación y cambia una causa cada vez.
- Si un puerto está ocupado, identifica qué está en escucha antes de reparar el problema.
- Los códigos de salida distinguen fallos de ejecución, credenciales de usuario, aplicación y memoria.
- Borra el límite de arranque después de corregir la causa y verifica el estado, la función y el comportamiento de arranque previsto.
6Agrupa archivos en contenedores y comprímelos
Un archivo contenedor reúne archivos en un solo objeto; la compresión cambia el espacio que ocupa ese objeto. Mantener separadas estas tareas facilita la lectura de los comandos de copia de seguridad y la restauración. Crearás e inspeccionarás archivos tar, extraerás su contenido en un directorio elegido y compararás gzip, bzip2, xz y zip. La elección del formato depende de la velocidad, el tamaño, las necesidades de intercambio y los metadatos de los archivos, mientras que una restauración comprobada ofrece una prueba más sólida que un nombre de archivo conocido.
6.1 Crea archivos tar, lista su contenido y extráelo
Un archivo contenedor agrupa archivos y directorios con sus nombres y metadatos. La compresión reduce los bytes necesarios para almacenar datos. Un archivo tar sin comprimir agrupa archivos sin comprimirlos; añadir un compresor produce archivos como .tar.gz, .tar.bz2 o .tar.xz.
Lee las opciones como una frase breve
| Opción | Función |
|---|---|
-c, -t, -x | Crear, listar o extraer; elige una operación |
-f FILE | Indicar el nombre del archivo contenedor |
-v | Mostrar los nombres o detalles de los elementos |
-z, -j, -J | Usar gzip, bzip2 o xz |
-C DIR | Cambiar de directorio para los siguientes elementos o para la extracción |
GNU tar también acepta opciones combinadas y la forma antigua sin guion. En un grupo combinado, coloca f al final y su nombre de archivo a continuación. La J mayúscula selecciona xz; la j minúscula selecciona bzip2.
Crea un archivo contenedor con nombres de elementos útiles
tar -czvf site-backup.tar.gz -C /var/www site
Esto crea site-backup.tar.gz en el directorio actual del intérprete de comandos. Tar cambia su ubicación de entrada a /var/www y después añade site, por lo que los nombres guardados comienzan por site/. Conserva la estructura de directorios, los modos, los metadatos de propiedad y las marcas de tiempo.
Indicar directamente /var/www/site también funciona. GNU tar normalmente elimina la barra inicial y guarda var/www/site/...; después, la extracción reconstruye esa ruta dentro del destino. Elegir el directorio de entrada con -C proporciona una estructura de restauración más corta y cómoda.
Lista antes de restaurar
Ejecuta tar -tzvf site-backup.tar.gz. Lista los nombres y metadatos sin extraer. Comprueba si todos los elementos están dentro de un solo directorio. Si no es así, la extracción puede dispersar archivos por el destino. GNU tar detecta los formatos de compresión habituales al leer, por lo que tar -tvf site-backup.tar.gz también funciona.
Para restaurar en un directorio vacío existente:
tar -xzvf site-backup.tar.gz -C /tmp/restore
El destino ya debe existir. La extracción puede sobrescribir archivos con nombres coincidentes, así que usa un directorio de restauración vacío cuando compruebes un archivo contenedor desconocido. Para extraer un elemento, indica su nombre exactamente como aparece en la lista: tar -xzvf site-backup.tar.gz site/index.html.
Protege el nombre y los metadatos del archivo contenedor
La palabra que sigue a -f es el nombre del archivo contenedor. En tar -cfz backup.tar.gz docs, tar trata z como ese nombre y las palabras posteriores como entradas. De forma similar, tar -cf *.txt permite que la expansión del intérprete elija el primer archivo de texto como archivo contenedor de salida y puede sobrescribirlo. Indica siempre explícitamente el nombre del archivo contenedor.
Un usuario normal restaura los archivos como propietario; el superusuario puede restaurar los propietarios registrados. Crear una copia de seguridad requiere acceso de lectura al origen. Para archivos del sistema protegidos, usa un comando autorizado como sudo tar -czf /root/etc-2026-10-22.tar.gz /etc y comprueba sus errores para detectar archivos omitidos.
--exclude='*.log' omite las rutas coincidentes. La opción -a de GNU tar selecciona un compresor según el sufijo, como en tar -caf backup.tar.xz docs. Antes de eliminar los originales, lee el archivo contenedor con tar -tzf backup.tar.gz > /dev/null y confirma que la lista contiene los archivos esperados. Una lectura correcta comprueba que se puede leer; inspeccionar una restauración también comprueba que el contenido elegido es útil.
Puntos clave
- La agrupación reúne archivos y metadatos; la compresión reduce el tamaño.
- Elige una operación de tar e indica a
-fun nombre explícito de archivo contenedor. -Ccontrola la estructura de entrada o el destino de extracción.- Lista antes de extraer y restaura en un directorio vacío para evitar sobrescrituras.
- Las copias de seguridad necesitan permiso de lectura y el superusuario puede restaurar la propiedad registrada.
- Comprueba que el contenido se puede leer y prueba una restauración antes de confiar en el archivo contenedor.
6.2 Comprime archivos con gzip, bzip2, xz y zip
Las herramientas de compresión difieren en velocidad, tamaño y forma de tratar los originales. Elige un formato según la tarea: reducir rápidamente un registro, crear una copia de seguridad de Linux o preparar una descarga para usuarios de varios sistemas operativos.
Comprime un archivo y conserva el original cuando sea necesario
| Compresor | Sufijo comprimido | Comando de descompresión |
|---|---|---|
gzip | .gz | gunzip o gzip -d |
bzip2 | .bz2 | bunzip2 o bzip2 -d |
xz | .xz | unxz o xz -d |
Estas herramientas normalmente sustituyen un archivo de entrada por su versión comprimida. gzip access.log deja access.log.gz y elimina el original si la operación tiene éxito. Añade -k para conservarlo. Sus formas con -d invierten la operación.
No crean un archivo contenedor de directorio con varios archivos. gzip project rechaza un directorio; gzip recursivo comprime sus archivos por separado. Para conservar un árbol de directorios como un solo objeto comprimido, crea un archivo tar con el compresor elegido.
Equilibra tiempo, memoria y tamaño
Gzip suele ser rápido, xz suele crear archivos más pequeños a un mayor coste de tiempo y memoria, y bzip2 suele situarse entre ambos. Los resultados dependen de la entrada y los ajustes. Los niveles de -1 a -9 favorecen la velocidad en el extremo bajo y la compresión en el alto. Los valores predeterminados son 6 para gzip y xz y 9 para bzip2.
Los registros de texto suelen reducirse mucho. Las imágenes JPEG, los vídeos MP4 y los archivos contenedores comprimidos suelen beneficiarse poco de otra pasada. Volver a comprimirlos puede consumir tiempo de CPU sin un ahorro útil de espacio.
En una muestra de 240 MiB de registros, gzip produjo 31 MiB y xz, 22 MiB. Esas salidas conservan aproximadamente el 12,9 % y el 9,2 % del tamaño original. En esa muestra, el archivo más pequeño requiere más tiempo de compresión; las cifras no predicen el resultado con otros datos.
Lee y comprueba contenido comprimido
zcat, zless y zgrep leen texto comprimido con gzip; bzcat y xzcat manejan sus respectivos formatos. Por ejemplo, zgrep "error" /var/log/syslog.2.gz busca en un registro rotado sin dejar una copia descomprimida en el disco.
Usa gzip -t file.gz o xz -t file.xz para comprobar la integridad. Un sufijo es solo una convención de nombres: file backup.bin puede identificar contenido gzip incluso sin .gz. sha256sum backup.tar.gz produce una suma de comprobación para compararla después de la transferencia. Las sumas coincidentes muestran que las copias coinciden, no que se hayan incluido todos los archivos de origen deseados.
Comparte un directorio con zip
ZIP agrupa y comprime mientras conserva los archivos de origen:
zip -r project.zip project
unzip -l project.zip
unzip project.zip -d /tmp/project
-r incluye recursivamente el contenido del directorio. unzip -l lo lista; -d elige el destino de extracción. Puede que sea necesario instalar primero los comandos. ZIP resulta práctico para usuarios de Windows y macOS. Las herramientas ZIP de Linux pueden guardar metadatos de Unix, pero restaurar la propiedad y los modos en otros sistemas es menos portable que usar tar para una copia de seguridad de Linux.
Elige .tar.gz para una copia de seguridad habitual de Linux, .tar.xz cuando reducir una descarga importe más que el tiempo de compresión, .zip para compartir ampliamente entre equipos de escritorio y gzip para un archivo de texto grande. Conserva los archivos de origen hasta que las comprobaciones y una restauración de prueba establezcan que el archivo contenedor incluye lo que necesitas.
Puntos clave
- Gzip, bzip2 y xz comprimen archivos individuales y normalmente sustituyen sus entradas.
- Usa
-kpara conservar un original y tar para agrupar un directorio. - La reducción por compresión y el coste en recursos dependen de la entrada y los ajustes.
- Usa lectores de texto comprimido y pruebas de integridad sin extraerlo todo.
- ZIP es práctico para compartir; tar es la opción habitual para copias de seguridad de Linux que conservan metadatos.
Ejemplos de Procesos, paquetes y servicios en Linux
1Encuentra y controla una tarea ocupada
17 pasos
- 1IntroducciónComienza por el trabajo en ejecución
Un terminal se ha vuelto lento mientras se ejecuta una tarea larga de compresión. Antes de detener nada, relaciona el síntoma visible con un proceso y un recurso.
Pasarás de una instantánea de procesos a información de CPU y memoria en tiempo real y después decidirás cómo pausar, detener o reducir la prioridad del trabajo. El PID identifica el proceso; el número de trabajo del intérprete tiene otro propósito al moverlo entre el primer y el segundo plano.
- 2ExplicaciónEncuentra el propietario y la identidad
Ejecuta
ps -efpara obtener una instantánea de todo el sistema con PID y PPID. Un comando iniciado desde tu terminal suele ser hijo de ese intérprete.Para obtener columnas de CPU y memoria, usa
ps aux. Un programa puede tener varias instancias en ejecución, cada una con su propio PID. Comprueba tanto el comando como el propietario al elegir un destino: un nombre conocido puede identificar varios procesos y un PID puede reutilizarse después de que termine el proceso anterior. - 3EjemploInterpreta correctamente el tiempo de CPU
Una fila de ps muestra START
09:00, TIME0:08y estadoS. El programa comenzó a las 09:00 y ha acumulado ocho segundos de trabajo de CPU. Está en espera de un evento.El tiempo transcurrido desde el inicio no es el campo TIME. Un servicio puede esperar solicitudes durante horas y usar muy poca CPU. Usa
pgrep -a NAMEpara encontrar las líneas de comandos pertinentes y/proc/PID/statuscuando necesites la vista detallada del núcleo. - 4DesafíoInterpreta un servidor en espera
Un servidor se inició ayer. Su fila de ps tiene TIME
0:12, TTY?y estadoS. ¿Demuestra esto que no se ejecutó durante la mayor parte del día? Explica los tres campos.---reveal---
No. Ha utilizado 12 segundos de trabajo de CPU, no tiene terminal de control y actualmente está en espera. Esperar solicitudes es un comportamiento normal de un servicio. Estos campos no indican cuántas horas ha estado disponible el servidor ni si una solicitud concreta tuvo éxito.
- 5ExplicaciónObserva el recurso que cambia
Abre
top. PulsaPpara ordenar por CPU,Mpara ordenar por memoria y1para ver las CPU individuales. Pulsaqpara salir.Lee el resumen junto con la lista de procesos. Un trabajo alto de CPU de usuario indica cálculos; un valor
waalto dirige la atención hacia operaciones de entrada/salida pendientes y un valorstalto en una máquina virtual indica tiempo de CPU que el anfitrión no ha proporcionado al invitado. RES mide la RAM residente; una asignación VIRT grande por sí sola no es una buena medida del uso de memoria física. - 6EjemploCompara la carga con la capacidad de CPU
Supongamos que
nprocindica 4 y una carga de trabajo limitada principalmente por la CPU muestra la carga6.00, 5.20, 3.10. Con poca espera de entrada/salida, la carga reciente significa que hay más tareas ejecutables de las que cuatro CPU pueden ejecutar a la vez.El valor de un minuto supera las medias de los periodos más largos, lo que indica un aumento reciente. La carga de Linux también cuenta las esperas ininterrumpibles, así que repite esta comparación teniendo a la vista el resumen de CPU y los estados de los procesos; el número no es un porcentaje de CPU.
- 7Idea claveConsulta la RAM available antes que free
free -hpuede mostrar poca RAM completamente libre mientras siguen disponibles varios GiB. Linux usa la RAM sobrante para caché y puede recuperar gran parte de ella para trabajo nuevo.Available estima la capacidad sin recurrir al espacio de intercambio. Observa si hay poca memoria available junto con un uso creciente del intercambio para obtener una señal más clara de presión. Si el núcleo termina tareas porque se agota la memoria, un registro OOM en
sudo journalctl -kpuede explicar la salida repentina. - 8DesafíoElige el recurso que debes investigar
Un servidor tiene muchas tareas en estado D, un valor
waalto, un uso bajo de CPU de usuario y mucha RAM disponible. ¿Qué recurso deberías investigar primero y por qué puede seguir siendo alta la carga?---reveal---
Investiga primero el almacenamiento u otras esperas de entrada/salida. Linux incluye las tareas ininterrumpibles en la carga, por lo que una carga alta puede coexistir con CPU inactivas. Las cifras de memoria no indican una falta inmediata de RAM y una carga alta por sí sola no permite identificar los cálculos de CPU como causa.
- 9ExplicaciónSolicita primero una salida ordenada
Una señal pide a un proceso que actúe.
kill PIDenvía SIGTERM, que da al programa la oportunidad de guardar su estado y cerrar sus recursos. SIGKILL fuerza la salida sin ejecutar su código de limpieza.Verifica el destino, envía TERM, dale tiempo y vuelve a comprobar antes de recurrir a una señal forzada. Un PID que ahora pertenece a un comando nuevo corresponde a otro proceso. Para un servicio supervisado por systemd, solicita
sudo systemctl stop NAMEmediante su gestor. - 10EjemploPausa y reanuda de forma deliberada
kill -STOP 5120pausa el proceso 5120;kill -CONT 5120lo reanuda. El proceso conserva su memoria y sus archivos abiertos durante la pausa.Ctrl+Z envía una solicitud de pausa al trabajo en primer plano del terminal, mientras que Ctrl+C envía una interrupción que normalmente lo termina. Un proceso zombi ya ha terminado y no puede volver a terminarse. Una tarea en una espera ininterrumpible de almacenamiento puede seguir visible hasta que termine esa espera, incluso después de una señal de terminación forzada.
- 11DesafíoMantén detenido un servicio gestionado
Un proceso de trabajo gestionado se reinicia después de que terminas su PID. Quieres detenerlo ahora para realizar tareas de mantenimiento. ¿Qué acción es adecuada y por qué terminar el nuevo PID es una mala práctica habitual?
---reveal---
Usa
sudo systemctl stop NAME. El gestor de servicios entiende que esta parada es intencionada y se ocupa de los procesos gestionados. Terminar otro PID puede repetir el mismo ciclo de recuperación ante fallos porque systemd puede interpretar la salida del proceso como un motivo para reiniciarlo. - 12EjemploMueve un trabajo sin perderlo
Inicia
sleep 300en primer plano y después pulsa Ctrl+Z. Bash informa de que el trabajo está detenido, Stopped.bg %1reanuda el trabajo 1 y devuelve el indicador de comandos, yfg %1lo lleva de nuevo al primer plano.%1es una selección de trabajo local al intérprete, no el PID 1. Un trabajo detenido no ha terminado: conserva recursos. Si la salida del trabajo en segundo plano interfiere con el terminal, envíala a un archivo antes de dejar la tarea en ejecución. - 13ConsejoPrepara una tarea para cerrar sesión
Para una nueva tarea larga, usa
nohup ./long-task.sh > task.log 2>&1 &. Nohup hace que ignore HUP, la redirección coloca ambos flujos de salida en un archivo y el signo de unión la lleva a segundo plano.Cada parte tiene una función distinta. Un signo de unión por sí solo no protege frente al cierre del terminal.
disown %1de Bash puede eliminar un trabajo existente de la tabla de trabajos del intérprete, pero su entrada y salida siguen necesitando destinos adecuados. - 14ExplicaciónReduce la prioridad sin limitar la velocidad
Inicia un trabajo exigente con
nice -n 10 COMMANDdesde el valor de ajuste habitual 0, o modifica una tarea en ejecución conrenice -n 15 -p PID. Los valores de ajuste más altos reducen la prioridad normal de planificación de CPU.El intervalo va de -20 a 19. Un usuario normal generalmente puede hacer que su propio trabajo sea menos competitivo; aumentar su prioridad suele requerir ser superusuario. Una tarea con valor 19 sigue usando por completo una CPU inactiva y este ajuste no establece la prioridad de acceso al disco.
- 15DesafíoAjusta un trabajo en segundo plano en ejecución
Tu propia tarea de compresión en segundo plano tiene el PID 9328 y un valor de ajuste de prioridad 0. Quieres que permita al trabajo interactivo que compite con ella disponer de más CPU sin pausarla. ¿Qué comando y efecto son adecuados?
---reveal---
renice -n 15 -p 9328reduce su prioridad de CPU al aumentar su valor de ajuste. La tarea sigue ejecutándose y recibe menos oportunidades cuando hay competencia por la CPU. Enviar STOP la pausaría por completo, mientras que elegir un valor negativo aumentaría su prioridad. - 16DesafíoRelaciona la información con una respuesta
Una copia de seguridad está activa con un valor de ajuste de prioridad 0. Top muestra que usa varias CPU, hay poca espera de entrada/salida y suficiente RAM disponible; el trabajo interactivo va lento. ¿Debes terminar la copia de seguridad para ayudar a la tarea interactiva?
---reveal---
No. La información indica competencia por la CPU, por lo que aumentar el valor de ajuste de la copia de seguridad puede dar más oportunidades al trabajo interactivo mientras aquella continúa. Si más adelante es necesario detenerla, vuelve a identificar el proceso y solicita una salida ordenada antes de considerar la fuerza.
- 17RepasoAdapta la acción a la información
Usa ps y pgrep para establecer la identidad y después top, free y la carga para comprender la presión sobre los recursos. Lee el estado antes de interpretar un proceso que parece bloqueado.
Una salida ordenada, una pausa, el paso a segundo plano y un cambio de prioridad resuelven problemas distintos. Deja el control de servicios a systemd, distingue los trabajos locales de los PID y verifica el resultado después de cambiar el trabajo en ejecución.
2Crea un informe de hardware útil
10 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónRecopila datos que respondan al requisito
- 2ExplicaciónIdentifica las capas del sistema
- 3EjemploCuenta la disposición de la CPU
- 4ExplicaciónCompara la memoria instalada y la utilizable
- 5DesafíoComprueba un requisito mínimo
- 6EjemploInterpreta un árbol de almacenamiento
- 7ExplicaciónRelaciona un dispositivo con su controlador
- 8DesafíoIdentifica un disco recién conectado
- 9DesafíoDistingue la capacidad del soporte del controlador
- 10RepasoHaz que el informe sea preciso
3Instala software y rastrea qué cambió
14 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónMantén relacionados los archivos y los registros de paquetes
- 2ExplicaciónElige la herramienta de repositorio
- 3Idea claveIncluye las dependencias en el plan
- 4DesafíoExplica los paquetes adicionales
- 5EjemploActualiza las listas antes de instalar
- 6ExplicaciónComprende qué permite una actualización
- 7ConsejoDecide qué debe conservar la eliminación
- 8DesafíoDistingue actualizar la información de aplicar cambios
- 9EjemploRastrea un comando hasta su paquete
- 10ExplicaciónBusca más allá de los archivos instalados
- 11DesafíoElige la dirección de la consulta
- 12ConexiónRelaciona un fallo con el mantenimiento reciente
- 13DesafíoRepara a partir de la información
- 14RepasoComprueba el estado que realmente necesitas
4Ejecuta un servicio ahora y después de reiniciar
14 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónPlantea dos preguntas sobre el estado
- 2EjemploLee Loaded y Active
- 3Idea claveUna unidad activa no tiene por qué tener un proceso en ejecución
- 4DesafíoInterpreta un servicio deshabilitado pero en ejecución
- 5ExplicaciónElige ahora, más adelante o ambos
- 6EjemploAplica una configuración de aplicación
- 7DesafíoBloquea un servicio sin olvidar su proceso
- 8ExplicaciónLee la definición efectiva de la unidad
- 9EjemploDescribe un servidor sencillo en primer plano
- 10EjemploHaz que una configuración complementaria se conserve tras las actualizaciones
- 11DesafíoAplica un comando editado directamente
- 12Idea claveLas reglas de reinicio respetan una parada solicitada
- 13DesafíoVerifica un servicio después de cambiar una unidad
- 14RepasoDistingue cada capa
5Encuentra la causa del fallo de un servicio
13 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónComienza con un síntoma observable
- 2ExplicaciónSelecciona el servicio y el intento
- 3EjemploConserva los mensajes útiles de baja prioridad
- 4DesafíoBusca en el arranque correcto
- 5ExplicaciónEncuentra registros de aplicaciones y registros rotados
- 6EjemploComprueba una salida silenciosa de una aplicación
- 7DesafíoElige una fuente de texto más antigua
- 8EjemploComienza por el primer error que explique la causa
- 9EjemploAverigua quién ocupa un puerto
- 10Idea claveUsa los códigos de resultado para elegir la siguiente comprobación
- 11DesafíoRecupérate de un fallo con límite de frecuencia
- 12DesafíoVerifica sin perder pruebas
- 13RepasoDeja que cada hallazgo acote el siguiente paso
6Crea un archivo contenedor que puedas restaurar
11 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónPlanifica la restauración antes de crear el archivo contenedor
- 2ExplicaciónDistingue la agrupación de la reducción de tamaño
- 3EjemploCrea rutas relativas útiles
- 4EjemploInspecciona y extrae en pasos separados
- 5DesafíoPredice la estructura de extracción
- 6ConsejoMantén f junto a su nombre de archivo
- 7ExplicaciónConoce qué originales permanecen
- 8EjemploElige un formato para la tarea
- 9DesafíoConserva un registro mientras lo comprimes
- 10DesafíoComprueba tanto la copia como el contenido
- 11RepasoUsa el formato y las comprobaciones adecuados
Ejercicios de Procesos, paquetes y servicios en Linux
Set 1: Aplica comandos cotidianos de mantenimiento de Linux10 Preguntas de Práctica
Pregunta 1 de 10
[3] 9026 después de iniciar un trabajo. ¿Cómo llevas ese trabajo al primer plano?Mostrar respuestaOcultar respuesta
Pregunta 2 de 10
12.0, 8.0, 4.0. ¿Cuál es la mejor interpretación?Mostrar respuestaOcultar respuesta
Pregunta 3 de 10
Kernel driver in use. ¿Qué deberías investigar a continuación?Mostrar respuestaOcultar respuesta
Pregunta 4 de 10
/usr/bin/less?Mostrar respuestaOcultar respuesta
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Pregunta 7 de 10
app.log.2.gz. ¿Cómo puedes buscar directamente en ese archivo más antiguo?Mostrar respuestaOcultar respuesta
Pregunta 8 de 10
203/EXEC. Su registro no contiene ningún mensaje de inicio de la aplicación. El archivo de unidad indica /opt/worker/run, pero esa ruta no existe. ¿Qué secuencia de reparación corresponde a la información disponible?Mostrar respuestaOcultar respuesta
Pregunta 9 de 10
report.log con gzip y conservar el archivo sin comprimir. ¿Qué comando es adecuado?Mostrar respuestaOcultar respuesta
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Set 2: Interpreta procesos, paquetes y estados de servicios10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
06:20 y TIME 0:04. ¿Qué indica TIME?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
sudo apt update. ¿Qué ha cambiado cuando el comando termina correctamente?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
enabled e inactive (dead). ¿Cómo debes interpretar esa combinación?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
/srv/notes/day.txt, propiedad de root, con tar -czf notes.tar.gz -C /srv notes. Después, como usuario normal, ejecutas tar -xzf notes.tar.gz -C /tmp/inspect en ese directorio vacío existente. ¿Qué ruta y propietario tiene normalmente el archivo restaurado?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 3: Relaciona la información con la acción adecuada10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Z y su padre sigue ejecutándose. ¿Por qué enviar SIGKILL a ese PID no elimina la entrada?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
pgrep encuentra dos procesos data-export: el PID 8550 es tu data-export --daily; el PID 8551 es el data-export --weekly de otro usuario. Solo quieres que tu trabajo diario termine de forma ordenada. ¿Qué acción es adecuada?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
active (exited) después de completar correctamente una tarea de configuración puntual. ¿Qué significa este estado?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
journalctl -p err?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 4: Diagnostica problemas de mantenimiento con distintas herramientas10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
/dev/sdb. Hoy se conectó primero otro dispositivo y escribir en el disco equivocado borraría archivos necesarios. ¿Qué debe determinar ahora el destino?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
/usr/bin/scan. Quieres averiguar qué paquete del repositorio proporciona esa ruta exacta. ¿Qué consulta es adecuada?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
After=network.target?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
bundle/a.txt y bundle/b.txt. Quieres restaurar solo b.txt. ¿Qué nombre de elemento debes solicitar?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 5: Planifica y verifica reparaciones completas de Linux10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
nginx -t detecta un error de sintaxis. ¿Qué secuencia aplica ambos cambios previstos con una configuración probada?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
¿Te atascas con una pregunta tuya? Ayuda con Tareas
Términos Clave
A
Actualización de la lista de paquetes
apt update, una aplicación más reciente puede aparecer como disponible mientras la anterior sigue instalada.Actualización de versión
Archivo contenedor
Archivo de configuración complementaria
Archivo de dispositivo
/dev, mediante el cual el software accede a un dispositivo representado por el núcleo./dev/nvme0n1p2 identifica una partición, no un directorio de archivos.Archivo de unidad
Arquitectura
B
Bloqueo de la base de datos de paquetes
Búfer circular
C
Carga media
Compresión
Comprobación de la configuración
nginx -t correcto después de una corrección da motivos para continuar con la recarga o el reinicio previstos.Conflicto de puerto
Consulta del paquete al que pertenece un archivo
rpm -qf para un ejecutable instalado cuyo nombre de paquete desconoces en un sistema RPM.Controlador
CPU lógica
D
Dependencia
Depuración de registros archivados
Dispositivo de bloques
/dev.E
Elemento del archivo contenedor
Eliminación automática de dependencias innecesarias
Enmascaramiento
/dev/null, incluidos los inicios manuales y por dependencias.Espacio de intercambio
Espera de entrada/salida
Estado de actividad
Estado de salida
ExecStart
./worker tiene una ruta relativa con una barra y no es una forma válida de indicar el ejecutable.Extracción
G
gzip
H
Habilitación
I
Identificador de proceso (PID)
Identificador del proceso padre (PPID)
Identificador único universal (UUID)
L
Límite de frecuencia de arranque
M
Mecanismo de terminación de procesos por falta de memoria
Memoria disponible
MemTotal
/proc/meminfo, excluida la memoria reservada antes del uso normal.Metadatos del archivo
Metadatos del paquete
Módulo del núcleo
N
Núcleo físico
Número de trabajo
[2] 7164, fg %2 selecciona el trabajo; 7164 identifica su proceso en el sistema operativo.P
Paquete
Política de reinicio
systemctl stop intencionado mantiene detenido el servicio.Prioridad
Proceso
sleep independientes crean dos procesos aunque ejecuten el mismo programa.Proceso zombi
Purga
R
Recarga
Recarga de las definiciones de unidades
Registro de systemd
Registro del núcleo
Registro persistente
/var/log/journal, lo que permite consultar arranques anteriores hasta que la política de conservación las elimina.Registro volátil
/run/log/journal, por lo que se pierden al apagar en lugar de mantenerse para el siguiente arranque.Reinicio
Repositorio
Rotación de registros
S
Señal
Servicio
SIGKILL
SIGSTOP
SIGTERM
Suma de comprobación
syslog
systemd
T
Tabla de firmware
Tamaño del conjunto residente (RSS)
Trabajo en primer plano
fg %2, los atajos de teclado como Ctrl+C actúan sobre el trabajo que está ahora en primer plano.Trabajo en segundo plano
Transacción
U
Unidad
nginx.service identifica la unidad como servicio, no como socket o unidad de destino.Unidad de destino
V
Valor de ajuste de prioridad
Verificación de firma
Versión candidata
Versión instalada
X
xz
Z
ZIP
zip -r para empaquetar un directorio y su contenido para compañeros que usan Windows o macOS.- 1Linux y el código abierto
- 2Línea de comandos de Linux
- 3Tuberías y redirección en Linux
- 4Guiones de Bash
- 5Usuarios, grupos y permisos en Linux
- 6Procesos, paquetes y servicios en Linux
- 7Almacenamiento y redes en Linux
Sobre esta unidad
Crea tus propios Materiales de Estudio
Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.