Módulo 2 - Exploración del Sistema de Archivos

arboldir.gif (450×527)

Temas incluidos:

  • Estructura jerárquica de directorios en Linux (el sistema de archivos raíz)

  • Rutas absolutas vs relativas y navegación entre directorios (pwd, cd)

  • Listado de contenidos y atributos de archivos (ls y opciones comunes)

  • Uso de la ayuda y documentación en línea de comandos (man, --help)

Estructura jerárquica de directorios en Linux

Concepto desarrollado: En Linux, todo está organizado en un único árbol jerárquico de directorios que inicia en la raíz denotada por /. A diferencia de Windows (que tiene unidades C:, D:, etc.), en Linux todas las ubicaciones (discos, dispositivos, particiones) se montan dentro de este árbol unificado. Algunos directorios estándar que encontrarás en casi cualquier sistema Linux:

  • / (raíz): El inicio del sistema de archivos. Contiene todos los demás directorios.

  • /bin, /sbin: Programas binarios esenciales del sistema. /bin suele tener comandos de uso general (disponibles para todos los usuarios, ej. ls, cp), y /sbin comandos administrativos (solo root usualmente, ej. iptables, systemctl).

  • /etc: Archivos de configuración globales del sistema (por ejemplo, aquí están configuraciones de servicios, contraseñas de usuarios en /etc/passwd, etc.). Piensa "etcétera" o configuración estática.

  • /home: Directorios personales de los usuarios. Cada usuario normal tiene su carpeta /home/usuario donde guarda sus archivos. (En servidores, los usuarios de servicio a veces no tienen home o está en otro lado).

  • /root: Directorio home del usuario root. A diferencia de otros usuarios, root no guarda sus cosas en /home sino aquí por conveniencia/seguridad.

  • /var: Datos variables, como logs del sistema (/var/log), colas de impresión, bases de datos en ejecución, etc. Son datos que cambian constantemente durante la operación normal.

  • /usr: Software y utilidades de usuario (no confundir con "home"). Contiene subdir como /usr/bin (programas no esenciales), /usr/lib (bibliotecas), /usr/share (datos compartidos). Piensa en /usr como un lugar para aplicaciones instaladas y recursos de software.

  • /tmp: Archivos temporales. Usado por programas para almacenar datos transitorios. Se suele limpiar periódicamente.

  • /dev: Archivos de dispositivos. En Linux los dispositivos hardware (discos, USB, terminales) aparecen como archivos especiales bajo /dev (ej: /dev/sda primer disco duro, /dev/tty1 terminal de consola).

  • /mnt y /media: Puntos de montaje para dispositivos. Por convención, si conectas un disco adicional o montas una unidad, puedes usar /mnt/manualmente o /media (que a veces es usado automáticamente por entornos de escritorio para unidades USB).

  • /proc y /sys: Sistemas de archivos virtuales que reflejan información del kernel y procesos. /proc contiene info de procesos y del sistema (ej: /proc/cpuinfo detalles CPU, /proc/<PID> info de un proceso activo), y /sys expone información de hardware y drivers del kernel. No son directorios “reales” en disco sino interfases al kernel.

Esta estructura puede parecer abrumadora al inicio, pero está diseñada lógicamente. Por ejemplo, saber que todas las configuraciones están en /etc hace más fácil buscar un config de cualquier aplicación. Con el tiempo, recordarás los lugares clave. Por ahora, ten a mano un listado de sistema de archivos estándar de Linux (FHS) si necesitas consulta rápida. CentOS cumple con este estándar de jerarquía, al igual que la mayoría de distribuciones.

Comandos esenciales y sintaxis:

  • pwd: (Print Working Directory) muestra el directorio actual en el que te encuentras. Útil para orientarte en el árbol de directorios.

  • ls: lista el contenido del directorio actual (o del que especifiques). Por defecto, no muestra archivos ocultos (los que comienzan con .).

    • ls /etc listará los archivos y carpetas dentro de /etc.

    • Opciones útiles: -l (lista larga con detalles como permisos, propietario, tamaño, fecha), -a (incluye archivos ocultos, como . y .. y aquellos que comienzan con punto), -h (con -l, muestra tamaños “humanos” en KB/MB en lugar de bytes), -R (recursivo, muestra subdirectorios también).

    • Ejemplo: ls -lah /var/log muestra en formato detallado todos los archivos (incluyendo ocultos) en /var/log, con tamaños legibles.

  • tree: muestra de forma gráfica la estructura de directorios y subdirectorios en forma de árbol. No suele venir instalado por defecto, pero puedes añadirlo (sudo dnf install tree). Úsalo con cuidado en directorios enormes (puede listar mucho contenido).

  • cd <directorio>: (Change Directory) cambia tu ubicación al directorio indicado. Puedes usar rutas absolutas (p.ej. cd /etc/httpd) o relativas (p.ej. estando en /etc, cd httpd para bajar a ese subdirectorio).

    • Atajos especiales: cd ~ te lleva a tu home (equivalente a cd /home/tu_usuario), cd - vuelve al último directorio en el que estabas, cd .. sube un nivel (al directorio padre).

    • Recuerda que en Linux las rutas distinguen mayúsculas/minúsculas. cd /Home fallará porque el correcto es /home en minúsculas.

- Rutas absolutas vs relativas:

- _Absoluta:_ comienza desde la raíz `/`. Ej: `/var/log/messages` es la ruta completa al archivo de log de mensajes. Siempre funciona igual independientemente de dónde estés.

- _Relativa:_ parte de tu directorio actual. Si estás en `/var` y haces `cd log`, irás a `/var/log` (porque `log` se interpretó relativo a donde estabas). Para referir el padre, usa `..`. Ej: si estás en `/var/log` y haces `cd ..`, volverás a `/var`.

- El prompt de la terminal suele mostrar tu directorio actual como parte del texto (por ejemplo, `user@maquina ~/docs$` indica que estás en `~/docs`, que es tu home/docs). Esto te ayuda a saber dónde estás antes de ejecutar comandos como `ls` o `cd`.

Ejercicio práctico paso a paso:

  1. Ver tu posición actual: Abre una terminal y ejecuta pwd. Debería mostrar algo como /home/estudiante (si “estudiante” es tu usuario). Esto confirma en qué parte del árbol estás tras iniciar sesión (normalmente, el home del usuario).

  2. Listar contenido del home: Ejecuta ls sin argumentos. Probablemente, en tu home recién creado solo veas algunos directorios predeterminados (Documentos, Descargas, etc., si tu instalación creó alguno, o puede que esté vacío). Ahora prueba ls -l. Observa la diferencia: tendrás columnas que indican permisos, propietario, tamaño, fecha y nombre.

  3. Explorar directorios del sistema: Intenta ls /. Verás los directorios principales mencionados antes (bin, etc, home, etc.). Ahora ls -l /home. Verás los directorios de usuarios en /home (quizás solo el tuyo). Prueba ls -l /etc | head -n 10 para ver los primeros 10 items de /etc (usando head para no abrumarte con todo, aprenderemos head en breve).

  4. Navegar con cd: Cambia al directorio raíz: cd /. Ejecuta pwd para confirmar que ahora estás en /. Desde aquí, entra a /var/log con cd var/log (ruta relativa, pues partimos de /). Ejecuta pwd y debe decir /var/log. Lista los archivos allí con ls -l; verás muchos archivos de log. Ahora sube dos niveles de golpe: cd ../.. te debería llevar de /var/log a / de nuevo (un .. te llevó a /var, otro a /).

  5. Usar atajos: Vuelve a tu home fácilmente: cd ~ (te lleva a /home/estudiante). Crea un directorio de prueba para jugar: mkdir ~/prueba (crea /home/estudiante/prueba). Entra: cd prueba. Ahora escribe cd -. Esto te llevará de regreso al directorio previo (tu home) y mostrará esa ruta. cd - actúa como un toggle entre los dos últimos lugares donde has estado.

  6. Instalar y probar tree (opcional): Si deseas, instala la herramienta tree: sudo dnf install -y tree. Luego ejecuta tree /home para ver en formato jerárquico los directorios bajo /home. Ejecuta tree -L 2 /etc para listar /etc con profundidad 2 (directorios y subdirectorios inmediatos solamente). Si la lista es larga, recuerda que puedes combinar con | less.

  7. Observa /proc (virtual): Ejecuta ls /proc. Verás muchos números (cada uno corresponde a un proceso activo) y pseudoarchivos del sistema. Prueba cat /proc/cpuinfo | less para ver información de tu CPU, o cat /proc/meminfo | head para ver info de memoria. Ten en cuenta que estos “archivos” en /proc no ocupan espacio real en disco, representan info del kernel.

Puntos clave a recordar:

  • La estructura de directorios Linux es estándar y jerárquica. Conocer los directorios importantes (/, /etc, /home, /var, etc.) te ayuda a ubicarte y saber dónde buscar cada cosa (código en /usr, configs en /etc, datos cambiantes en /var, etc.).

  • Usa siempre pwd si no estás seguro de en qué directorio te encuentras, especialmente antes de ejecutar comandos que borren o muevan archivos. Un rm * ejecutado en el directorio equivocado puede causar estragos, por eso verifica tu ruta.

  • Rutas absolutas (con / inicial) te llevan al mismo lugar sin importar desde dónde las ejecutes. Úsalas en scripts o cuando estés seguro de la ruta completa. Rutas relativas dependen de tu ubicación actual; son útiles para movimientos locales y comandos interactivos, pero requieren tener contexto de dónde estás.

  • Sensibilidad a mayúsculas: Documentos no es lo mismo que documentos. Linux casi siempre distingue entre mayúsculas y minúsculas en nombres de archivos y directorios. Cuidado con esto para evitar errores de “No such file or directory”.

  • cd .. (doble punto) es tu amigo para retroceder en la jerarquía. También puedes encadenar varios como ../../ para subir múltiples niveles.

  • El comando ls es fundamental; aprende sus opciones comunes (-l, -a, -h). Muy a menudo usarás ls -l para inspeccionar permisos y propietarios de archivos (lo cual haremos en módulos futuros).

Errores comunes y cómo evitarlos:

  • Intentar usar comandos de Windows (o sintaxis incorrecta): Por ejemplo, escribir dir en lugar de ls, o C:\ en lugar de /. Es normal al inicio, pero recuerda: en Linux es ls para listar, y la raíz es /. Si vienes del mundo Windows, ten paciencia en reeducar esos hábitos.

  • Olvidar las comillas en rutas con espacios: Si algún nombre de directorio o archivo tiene espacio (p.ej. Mi Carpeta), cd Mi Carpeta fallará porque interpreta “Mi” y “Carpeta” separadamente. Debes escribir cd "Mi Carpeta" o escapar el espacio (Mi\ Carpeta). Lo mejor es evitar espacios en nombres en entornos Linux/servidor, pero si existen, recuerda las comillas.

  • Usar cd sin saber dónde estás: A veces se encadenan varios cd y pierdes la noción de ubicación, luego ejecutas algo asumiendo mal. Solución: siempre verifica con pwd en sesiones críticas. Un error podría ser pensar “estoy en /home” pero en realidad sigues en /etc, y ejecutas rm -rf tmp/*… en el lugar equivocado. Precaución ante todo.

  • No tener permisos para listar directorios: Si haces ls /root como usuario normal, verás “Permiso denegado”. Esto no es exactamente un error tuyo, sino cómo funciona la seguridad. Entiende que algunos directorios solo son accesibles a root. No intentes forzar entrada; en su lugar, usa sudo si realmente necesitas verlos (ej. sudo ls /root).

Tips de rescate si algo falla:

  • Auto-completar rutas: Si no estás seguro del nombre exacto de un directorio, escribe las primeras letras y pulsa Tab. La shell autocompletará si la ruta es única, o mostrará opciones si hay varias. Esto ayuda a evitar errores de tipeo y a descubrir nombres.

  • Alias para ls: Muchos entornos añaden alias como ll = ls -l o la = ls -a. Prueba ll en tu terminal; si funciona, úsalo para listar con detalles. Sino, puedes crear tus alias en tu archivo de configuración de shell (normalmente ~/.bashrc). Ej: añadir línea alias ll='ls -lhF' (lista detallado, human-readable, y añade / a dirs, * a ejecutables). Esto acelera tu trabajo diario.

  • Permisos denegados: Si navegando o listando te topas con “Permission denied”, recuerda qué usuario eres. Posiblemente necesites elevar privilegios. En este curso, cuando corresponda, te indicaremos si usar sudo. Como regla: directorios del sistema (fuera de /home) a menudo requieren root para modificarse, pero para solo leer/listar, muchos son abiertos excepto los sensibles.

  • Montaje de unidades adicionales: Si añadiste un segundo disco en la VM, por ejemplo, y quieres explorarlo, necesitarás montarlo (usando mount). Un tip: crea un punto de montaje bajo /mnt, ej. /mnt/disco2, y usa sudo mount /dev/sdb1 /mnt/disco2. Una vez montado, ese disco aparecerá dentro del árbol Linux. No profundizaremos en montaje aquí, pero es bueno saber cómo entra un nuevo volumen al sistema de archivos.

  • FHS a mano: Ten a la mano (impreso o en PDF) un diagrama de la Filesystem Hierarchy Standard. Esto servirá de mapa hasta que memorices los directorios. Cada vez que te preguntes “¿dónde estará X cosa?”, ese estándar es la referencia.

Criterios de evaluación del módulo:

✅ El alumno puede identificar y describir la función de los principales directorios del sistema (como /etc, /home, /var, /tmp, etc.).
✅ Sabe moverse por el sistema de archivos usando cd con rutas absolutas y relativas, y puede comprobar su ubicación con pwd en cualquier momento.
✅ Utiliza ls con soltura, aplicando opciones como -l y -a para obtener información detallada de archivos y entiende la salida básica (distinguir directorios de archivos, identificar archivos ocultos).
✅ Entiende la diferencia entre rutas absolutas y relativas, y puede dar un ejemplo de cada una.
✅ Ha practicado comandos de navegación sin perderse, usando también atajos (~, .., -) y verificado que puede listar contenido de varios directorios del sistema de forma segura.

❓ Preguntas de repaso recomendadas:

  • ¿Cuál es el directorio raíz del sistema de archivos Linux y qué carácter lo representa?

  • Menciona tres directorios importantes bajo la raíz y describe brevemente qué se guarda en cada uno.

  • ¿Qué comando y opción usarías para listar todos los archivos (incluyendo ocultos) de forma detallada en un directorio?

  • ¿Cómo regresarías al directorio personal de tu usuario desde cualquier ubicación con un solo comando? ¿Y cómo volver al directorio previo en el que estabas?

  • Si tu ubicación actual es /var/log y ejecutas cd ../../home, ¿a qué ruta absoluta llegarás? Explícalo paso a paso.

Rutas absolutas vs relativas y navegación entre directorios (pwd, cd)

Concepto desarrollado: (Este tema complementa el anterior profundizando en la navegación, por lo que parte de la explicación ya está integrada más arriba. Lo reforzaremos brevemente.)

Una ruta absoluta comienza desde la raíz / y señala una ubicación exacta sin ambigüedad. Ejemplo: /home/estudiante/prueba.txt apunta a un archivo específico sin importar dónde te encuentres en el sistema. En cambio, una ruta relativa indica una ubicación en relación con el directorio actual. Ejemplo: si estás en /home/estudiante, la ruta relativa Documentos/archivo.doc se refiere a /home/estudiante/Documentos/archivo.doc. Las rutas relativas no funcionan desde cualquier lugar, dependen del contexto (ubicación actual). Por eso, es importante saber "dónde estás" (pwd) antes de usar rutas relativas.

Al navegar con cd, si inicias la ruta con /, la shell interpretará el resto como absoluta. Si no, lo toma como relativo a tu ubicación. Algunos tips: ~ siempre representa tu home; si necesitas referirte al home de otro usuario, puedes usar ~usuario (p. ej. ~root es /root). Los especiales . (punto) representa "este mismo directorio", y .. "el directorio padre". Por ejemplo, ./script.sh ejecuta un script en el dir actual, mientras ../script.sh se referiría a un script en el directorio padre.

Dominar esto te evitará confusiones, por ejemplo, al crear enlaces simbólicos o al copiar archivos, para asegurarte de señalar correctamente los orígenes y destinos.

Comandos esenciales y sintaxis: (Ya cubiertos en la sección anterior: pwd, cd con sus variaciones, rutas con /, .., ~. Repasamos los más relevantes:)

  • pwd – imprime la ruta absoluta del directorio actual. Siempre útil antes de acciones destructivas.

  • cd <dir> – cambiar directorio. Recuerda: cd sin argumentos = lleva a home, cd - = alterna anterior, cd .. = sube nivel.

  • Rutas:

    • Absoluta: inicia con /. Ej: /usr/share/doc

    • Relativa: no inicia con /. Ej: ../../etc (dos niveles arriba y luego etc).

    • Home: ~ (tu usuario actual), ~usuario (home de otro usuario).

    • Actual: . (poco usada explícitamente salvo en ciertos contextos, ej. ./programa para ejecutar un binario en el directorio actual).

  • Tablas de referencia rápida: Puede ser útil tener una tabla mental:

    • .. = padre

    • . = actual

    • / = raíz

    • ~ = tu home

No hay comandos nuevos adicionales solo para rutas; es más la práctica de usarlas correctamente con los comandos existentes.

Ejercicio práctico paso a paso:

  1. Ruta absoluta vs relativa en acción: Supongamos estás en tu home (/home/estudiante). Ejecuta cd /etc. Usaste una ruta absoluta, ahora con pwd verás /etc. Vuelve al home: cd ~. Ahora desde tu home, usa una ruta relativa para ir a /etc: cd ../etc. ¿Qué pasó? Estando en /home/estudiante, .. te llevó a /home, y luego etc buscó un subdirectorio etc dentro de /home. Como seguramente no existe /home/etc, obtendrás error “No such file or directory”. Con esto comprobamos que ../etc no equivale a /etc cuando partías de /home/estudiante. La lección: cuidado con suposiciones; ../etc depende de donde estés.

  2. Corregir el curso: Siguiendo lo anterior, estás en /home tras el intento fallido (ya que cd .. dentro del comando te movió a /home; puedes confirmarlo con pwd). Desde /home, etc no existe. Regresa a home de estudiante: cd estudiante (relativo a /home) o cd ~ nuevamente.

  3. Crear árbol de prueba: En tu home, crea unos directorios anidados para practicar: mkdir -p proyecto1/tema1/notas. Esto crea la estructura /home/estudiante/proyecto1/tema1/notas. Ve directamente allí con ruta absoluta: cd ~/proyecto1/tema1/notas. Ejecuta pwd para ver la ruta completa. Ahora sube a proyecto1 usando una ruta relativa: cd ../.. (sube dos niveles). pwd debería mostrar /home/estudiante/proyecto1.

  4. Ejecutar desde el directorio actual: Supongamos que en proyecto1 tienes un script llamado hola.sh. Para ejecutarlo puedes hacer ./hola.sh (asumiendo tiene permisos ejecutables que veremos más adelante). El ./ le indica que busque en el actual. Si solo escribieras hola.sh, la shell no lo encontraría (por seguridad, el directorio actual no suele estar en la variable PATH). Este es un ejemplo práctico de uso de . en rutas.

  5. Practicar con tilde (~): A estas alturas, tu usuario estudiante tiene su home en /home/estudiante. Si tuvieras otro usuario invitado, su home sería /home/invitado. Puedes referirte a él como ~invitado. Por ejemplo, intenta ls ~root (si tienes permisos, listarás el home de root). Este atajo es útil en scripts multiusuario, para no tener que armar la ruta /home/<usuario> manualmente.

  6. Atajos de shell (bonus): Algunos shells permiten autocompletar ... Por ejemplo, en Bash, si escribes cd .. y luego cd .. repetidamente es tedioso, pero hay combinaciones como cd ../<tab> que pueden sugerirte ascender. No todos los shells lo tienen por defecto. Un tip clásico: cd .. seguido de cd .. puedes hacerlo más rápido con cd ../.. en un solo comando como ya hicimos.

  7. Limpiar espacio de pruebas: Si quieres borrar el directorio de prueba creado: ve a tu home (cd ~), luego rm -r proyecto1. ¡Precaución!: rm -r borra recursivamente; asegúrate de estar en el lugar correcto (/home/estudiante) antes de ejecutarlo. Así confirmas que puedes remover carpetas usando rutas relativas o absolutas con confianza.

Puntos clave a recordar:

  • Antes de usar rutas relativas complejas (con varios ..), piensa mentalmente dónde estarás después de aplicarlas secuencialmente. Hacer un pwd en medio de un camino largo puede ser útil si te pierdes.

  • Para evitar confusiones, si la ruta es crítica (por ejemplo, vas a mover muchos archivos), considera usar absoluta para no equivocarte.

  • Conocer los atajos de home (~) y directorio anterior (-) agiliza la navegación. Por ejemplo, vim ~/notas.txt abrirá un archivo en tu home sin importar dónde estés, gracias a ~.

  • Cuando escribes rutas en comandos, las expansiones como ~ y variables de entorno (ej. $HOME) son procesadas por el shell, no por el comando. Es decir, cd $HOME te lleva al home porque $HOME es una variable que contiene /home/estudiante. Esto es útil en scripts o configuraciones.

  • Siempre puedes combinar elementos: cd ../../../etc está permitido (sube 3 niveles, luego entra a etc). Pero si te descubres escribiendo muchos ../.., quizás es señal de que hay formas más sencillas (como usar absoluta desde raíz).

Errores comunes y cómo evitarlos:

  • Incluir una barra de más al construir rutas: Por ejemplo, estás en /usr y escribes cd /usr/../etc. Podría parecer que te lleva a /usr/.. o algo incorrecto, pero en realidad .. después de /usr/ hará que la ruta final sea /etc (ya que /usr/.. simplifica a /). La shell normaliza las rutas, pero puede ser confuso. Mejor evita mezclar absoluto con .. porque aunque funciona, es fácil equivocarse.

  • No escapar espacios o caracteres especiales: Ya se mencionó, pero repetimos: en rutas, espacios, $, &, (, ) pueden tener significado especial. Úsalos con cuidado (escapados con \ o comillas). Si tienes un directorio llamado Programas (Old) por ejemplo, acceder con cd Programas (Old) fallará; debería ser cd "Programas (Old)".

  • Olvidar cambiar de directorio antes de operar: A veces uno ejecuta un comando asumiendo estar en X ruta, pero no ejecutó el cd previo. Por ejemplo, "voy a borrar todos los logs, primero cd a /var/log, luego rm .log". Si olvidas el cd y ejecutas `rm .log` en el directorio actual (que quizá era tu home), borrarás otras cosas. Siempre sigue la secuencia mental: “¿Estoy donde creo? Si no, me muevo; luego ejecuto la acción”.

  • Confundir la barra invertida: En Windows, los caminos usan \ (backslash). En Linux es / (slash normal). No intentes usar \ para separar directorios (en Bash \ es un carácter de escape). Es un cambio de chip importante.

Tips de rescate si algo falla:

  • Comando mount para ubicaciones montadas: A veces no encuentras ciertos archivos porque están en otra partición montada en algún punto. findmnt o df -h pueden mostrar qué directorios son puntos de montaje (por ejemplo, /mnt/usb si insertaste un USB). Si “desapareció” algo que sabías que estaba en /mnt, verifica que la unidad esté montada.

  • Herramientas de búsqueda global: Si no recuerdas dónde está un archivo, puedes usar find / -name "archivo" para buscar en todo el sistema (aunque tardará). O locate archivo (tras instalar mlocate y actualizar la base de datos con updatedb). Esto te muestra la ruta absoluta donde se encuentra, evitando adivinar rutas relativas.

  • Prompt informativo: Personaliza tu prompt para que muestre más que el path actual. Algunos añaden el nombre de la máquina, el usuario, e incluso el estado de git si estás en un repo. Por ahora, asegurarse de ver el directorio actual es suficiente. Si no aparece, puedes modificar la variable PS1 para incluir \w (directorio actual) o \W (solo el nombre de la carpeta actual). Un prompt claro es tu brújula.

  • Zsh y otros shells: Considera que hay shells alternativos (zsh, fish) que ofrecen ayudas de navegación mejores, como sugerencias automáticas. Si en el futuro te interesa mejorar tu eficiencia, explorarlos puede ser útil (pero en este curso nos centramos en bash, que es estándar en CentOS).

  • Mapeo mental: Al explorar la estructura, muchos administradores novatos dibujan un pequeño árbol de los directorios principales para recordarlos. No dudes en tomar notas o dibujar diagramas de la jerarquía, eso fija el conocimiento.

Criterios de evaluación del módulo:

✅ Navega con confianza usando tanto rutas absolutas como relativas, y entiende cuándo conviene usar cada una.
✅ Sabe interpretar correctamente rutas con .., . y ~, evitando confusiones, y puede predecir la ubicación resultante de una ruta relativa compleja antes de ejecutarla.
✅ Puede demostrar un ejemplo práctico de ejecución de un comando en el directorio actual usando ./, explicando por qué es necesario (seguridad del PATH).
✅ Muestra buenas prácticas de comprobación (como usar pwd regularmente y un prompt informativo) para nunca perder la ubicación en el sistema de archivos durante tareas críticas.

❓ Preguntas de repaso recomendadas:

  • Explica con tus palabras la diferencia entre una ruta absoluta y una relativa. ¿Qué símbolo especial inicia una ruta absoluta?

  • Si tu prompt muestra user@host:/var/www/html$ y ejecutas cd ../../etc, ¿dónde terminas ubicado?

  • ¿Qué representa el carácter ~ en la terminal? ¿Y los caracteres . y ..? Da un ejemplo de uso de cada uno.

  • ¿Por qué podría fallar el comando cd Mi Carpeta y cómo lo solucionarías sin renombrar el directorio?

  • Estando en /home/usuario/descargas, ¿qué ocurre si ejecutas cd /home/usuario/descargas? ¿Y si ejecutas cd ~/descargas? ¿Hay alguna diferencia en el resultado final?

Requisitos previos al módulo:

  • Los mismos que el tema anterior, ya que es continuación: entorno funcionando, y comprensión de conceptos de módulo 1.

  • Para practicar con varios niveles de directorios, se asume que el estudiante puede crear directorios (con mkdir) y borrarlos (rm -r) en su espacio sin temor, lo cual fue introducido aquí aunque la gestión de archivos se profundizará en el siguiente módulo.

  • Tener permisos de escritura en algún directorio (por ejemplo su home) para crear estructuras de prueba. En CentOS, el home del usuario por defecto les pertenece, así que esto se cumple automáticamente.

Listado de contenidos y atributos de archivos (ls y opciones comunes)

Concepto desarrollado: El comando ls es la herramienta principal para listar archivos y directorios. Sin opciones, ls muestra simplemente los nombres de los elementos en el directorio actual (o en la ruta dada). Con opciones, ls puede darnos mucha más información. Interpretemos la salida de ls -l (lista larga):

Ejemplo de salida:

-rw-r--r--. 1 root root  1200 Nov  5 12:34 cron.log  
drwxr-xr-x. 2 root root  4096 Oct 21 08:10 cron.daily/  

Cada línea corresponde a un ítem. De izquierda a derecha:

  • Tipo y permisos: el primer caracter - indica tipo (- archivo normal, d directorio, l enlace simbólico, etc.). Los siguientes 9 caracteres son los permisos en 3 grupos de 3 (propietario, grupo, otros). En el ejemplo, rw-r--r-- significa: propietario tiene rw (lectura/escritura), grupo tiene r (solo lectura), otros tienen r (solo lectura). Hablaremos más de permisos después, pero hay que saber que ls -l muestra esa info.

  • Cantidad de enlaces: el número 1 tras los permisos indica enlaces duros apuntando a ese archivo (o número de subdirectorios en caso de un directorio). No profundizaremos mucho aquí, solo reconocer que aparece.

  • Propietario y grupo: en el ejemplo root root indica que el propietario es root y el grupo asociado es root.

  • Tamaño: el número (1200 bytes en cron.log, 4096 bytes para cron.daily). 4096 bytes suele indicar un directorio vacío (tamaño de un inode de directorio). Si usamos -h (human-readable), se vería 1.2K, 4.0K, etc.

  • Fecha de modificación: Nov 5 12:34 (mes, día, hora) es la última fecha y hora en que se modificó el archivo. Si la fecha no es del año actual, es posible que ls muestre el año en lugar de la hora.

  • Nombre: finalmente cron.log y cron.daily/. Observa que ls por defecto puede marcar con / los nombres de directorios (aquí cron.daily/) si usas la opción -F o tu shell está configurada para resaltarlo. En este caso aparece con slash porque hay un alias activo que incluye -F.

Opciones comunes de ls:

  • -a: muestra all (todo), incluyendo archivos ocultos (los que comienzan con .). Útil para ver, por ejemplo, .bashrc en tu home, que sin -a no se listaría.

  • -l: lista larga, como describimos.

  • -h: human readable, para tamaños. Se suele usar junto con -l (como ls -lh).

  • -R: recursivo, lista contenido de subdirectorios también. Úsalo con cautela en estructuras grandes.

  • -t: ordena por tiempo de modificación (descendente, lo más reciente primero). Perfecto para ver “qué cambió últimamente” en un dir. Combina con -l (ls -lt) para ver fechas.

  • -S: ordena por tamaño (descendente).

  • -1 (es el número uno): fuerza a listar un archivo por línea (a veces ls sin opciones lista en columnas cuando hay muchos archivos).

  • -F: añade un indicador de tipo al final de nombres (ej. / a dirs, * a ejecutables, @ a enlaces). Útil para distinguir tipos a simple vista. Muchos alias ll ya incluyen -F.

Archivos ocultos: Son aquellos cuyo nombre inicia con .. Por convención, el shell los oculta de listados normales. Ej: .bash_history. Con ls -a los verás. Recuerda que . y .. siempre aparecen con -a (representando actual y padre).

Listar archivos es algo que harás todo el tiempo, así que vale la pena dominar estas opciones para obtener la vista necesaria en cada caso.

Comandos esenciales y sintaxis:

(Resumimos los mencionados con ejemplos prácticos)

  • ls: lista simple. Ej: ls /usr/bin lista muchos archivos (ejecutables) en /usr/bin.

  • ls -l: lista detallada. Ej: ls -l ~ muestra los detalles de tu home (propiedades de archivos, etc.).

  • ls -la: combinando, muestra todo detallado. Recomendado para inspeccionar, por ejemplo, ls -la /etc/cron.daily para ver permisos de scripts de cron.

  • ls -lh /var/log: lista logs con tamaños legibles (KB, MB). Verás tamaños como "4.0K" en muchos directorios, eso es normal.

  • ls -ltr: trifecta muy usada para logs: lista largo, ordenado por tiempo inverso (así lo más reciente al final). Ej: ls -ltr /var/log te permite ver los logs más recientes abajo del todo.

  • alias ll='ls -lhF': si quieres crear un atajo para no teclear siempre muchas opciones. Puedes añadirlo a tu ~/.bashrc. (En CentOS a veces ya viene definido).

🧪 Ejercicio práctico paso a paso:

  1. Listar tu home con detalles: Ejecuta ls -la ~. Deberías ver listados . y .. (actual y padre), además de cualquier archivo oculto (como .bash_profile, .bashrc, etc.) y tus directorios. Observa los permisos y propietarios: deberían mostrar tu nombre de usuario como propietario en tus archivos personales.

  2. Identificar tipos con ls: En tu home, crea un archivo y un directorio para probar indicadores: touch archivo.txt (crea un archivo vacío) y mkdir carpeta. Ahora ls -F. La salida debería mostrar archivo.txt (sin indicador, porque es archivo normal) y carpeta/ (con / indicando que es directorio). Si marcas un script ejecutable más tarde, verías *.

  3. Ordenar por fecha: Ve a /var/log (donde hay muchos logs con distintas fechas) usando cd /var/log. Ejecuta ls -lt. Verás primero los archivos modificados recientemente. Ahora ls -ltr para verlos en orden ascendente (antiguos primero, recientes al final). Útil cuando quieras ver, por ejemplo, el log más nuevo al final.

  4. Ordenar por tamaño: En /usr/bin hay muchos archivos ejecutables. Haz ls -lS /usr/bin | head -n 10 para ver los 10 más grandes (usa pipe a head para limitar la salida). Verás quizás unos cuantos MB en los más grandes (podrían ser intérpretes como python, etc.).

  5. Comprobar enlaces simbólicos: Ejecuta ls -l /etc/system-release. En CentOS, /etc/system-release suele ser un enlace simbólico a /etc/centos-release o similar. ls -l mostrará algo como /etc/system-release -> centos-release. El l al inicio de permisos indica enlace, y -> muestra su destino. Esto te ayuda a identificar atajos en el sistema.

  6. Explorar recursivamente (con precaución): Prueba en un directorio pequeño: mkdir -p ~/demo/dir1/dir2 y crea algunos archivos: echo "hola" > ~/demo/file1.txt y echo "mundo" > ~/demo/dir1/file2.txt. Ahora ejecuta ls -R ~/demo. Verás la estructura completa: primero contenido de demo, luego contenido de dir1, luego contenido de dir2. Es útil para obtener una vista anidada, pero en estructuras grandes saca mucho texto.

  7. Uso de comodines con ls: Si quieres filtrar listados: por ejemplo, en /etc, ver solo los que empiezan con "ho": ls /etc/ho*. O en /var/log, solo logs .log: ls -l /var/log/*.log. Practica con distintos patrones para ver cómo el shell expande esos comodines (wildcards).

Puntos clave a recordar:

  • ls -l es tu amiga para inspeccionar propiedades de archivos: especialmente antes de editar o ejecutar algo, conviene verificar permisos y propietarios con ls -l.

  • Combinar opciones te da la vista deseada: no memorices cada combinación, pero sé consciente de qué existe. Por ejemplo, ls -lh es casi de uso diario (detalles con tamaño legible). ls -a para casos donde sospechas archivos ocultos (como para ver dotfiles en ~).

  • Los archivos ocultos usualmente configuran tu shell y aplicaciones (archivos de config de usuario). Para no “ensuciar” tu home visible, están ocultos. No olvides que existen si algo “mágico” ocurre, como alias predefinidos; suele ser porque en .bashrc había configuración.

  • Los comodines (*, ?) son procesados por la shell, no por ls. Si haces ls *.txt, la shell expande a todos los archivos .txt en el dir actual y ls recibe esa lista. Si no hay coincidencias, la shell puede dejar el patrón tal cual y ls dirá "no such file". Tenlo en cuenta: a veces usar comillas para prevenir expansión es útil, pero en ls raramente necesitas eso.

  • ls no muestra contenido dentro de subdirectorios a menos que uses -R o especifiques la ruta completa. O sea, ls /etc no te va a listar lo que hay dentro de /etc/httpd a menos que hagas ls /etc/httpd. Puede parecer obvio, pero a veces uno espera ver más. Estructura tu comando acorde a lo que quieres ver.

Errores comunes y cómo evitarlos:

  • Olvidar usar -a y no entender por qué no ves algo: Por ejemplo, "sé que descargué un archivo .bashrc de ejemplo, pero ls no lo muestra". Si empieza por ., estará oculto. Solución: usa ls -a o simplemente recuerda ese detalle.

  • Interpretar mal la salida de ls -l: Un error es confundir el tamaño con otra cosa, o no reconocer qué es archivo vs dir. Por ejemplo, ver 4096 bytes y pensar "¿este archivo pesa 4K?" cuando en realidad es un directorio vacío. Indicador: la d al principio de la línea. Otro: ver / al final del nombre (si usas -F). Siempre fíjate en ese primer carácter y en el nombre (slash final) para distinguir directorios.

  • Usar ls para cosas que requieren otro comando: ls es solo para listar. No lo uses para, por ejemplo, buscar dentro de archivos (eso es grep), ni para listar contenido de archivos (eso es cat o less). Parece obvio, pero a veces nuevos usuarios confunden funcionalidades (por ejemplo, ls file.txt solo mostrará "file.txt", no su contenido).

  • Listar sin pensar en cantidad: Hacer ls -R / o ls /usr/bin sin paginación en una terminal pequeña puede inundar tu pantalla y no podrás ver nada útil. Si un listado produce más de una pantalla, combínalo con less o more (ej: ls -lR /etc | less). Esto no es error grave pero sí una molestia común.

Tips de rescate si algo falla:

  • Paginando la salida: Ya mencionado, pero muy útil: canalizar la salida de ls a less o more. Especialmente cuando combinas ls -R o buscas en directorios con muchísimos archivos.

  • Color en ls: Por defecto en muchas distros, ls muestra colores (directorios en azul, ejecutables en verde, etc.). Si no fuera así y quieres colores, usa ls --color=auto (puedes alias ls a eso). Los colores ayudan a distinguir tipos de archivos rápidamente.

  • Long listing for directories vs content: Nota: ls -l /dir muestra el contenido de /dir con detalles. Si quieres ver detalles del directorio en sí (metadatos del folder), usa ls -ld /dir. Ese -d impide que ls entre al directorio y en su lugar lista el item directorio. Útil para ver permisos de un directorio específico sin listar su contenido.

  • Listar ordenado por extensión: No hay opción directa, pero puedes pipar a sort: ls -1 (uno por línea) y luego | sort con opciones. Por ejemplo, ls -1 /etc | sort ordena alfabéticamente (lo mismo hace internamente ls por defecto). ls -1 | sort -r ordena inverso. Para agrupar extensiones, podrías hacer ls -1 | sort -t. -k2 (poco necesario en prácticas diarias, pero saber que puedes manipular la lista es bueno).

  • Utiliza stat para detalles completos: Cuando necesites información más precisa que ls sobre un archivo (ej. fechas de creación, inodo, etc.), el comando stat archivo te da un reporte completo. ls -l da lo básico; stat profundiza más. Por ahora con ls es suficiente, pero existe esa alternativa.

Criterios de evaluación del módulo:

✅ El alumno emplea las opciones de ls apropiadamente según la necesidad: sabe listar con detalle, incluyendo ocultos, ordenando por fecha o tamaño cuando es útil.
✅ Interpreta correctamente la información mostrada por ls -l, identificando tipo de objeto, permisos, propietario, tamaño y fecha. Puede, por ejemplo, detectar si un archivo es ejecutable o un directorio solo con ver la columna de permisos (x presente, etc.).
✅ Aprovecha comodines para filtrar listados (p. ej. ver solo ciertos tipos de archivos) y entiende que esto es expansión de shell.
✅ Conoce las limitaciones de ls y cuándo necesitaría recurrir a otras herramientas (como paginadores, find, stat) si la situación lo requiere, mostrando criterio para seleccionar la herramienta adecuada.

❓ Preguntas de repaso recomendadas:

  • ¿Qué información básica te proporciona ls -l sobre un archivo o directorio? (Menciona al menos 4 datos que puedas obtener de esa salida).

  • ¿Cómo listarías todos los archivos, incluso ocultos, de tu directorio actual, ordenados del más antiguo al más nuevo?

  • En la salida de ls -l, ¿qué significa un carácter d al inicio de la línea? ¿Y una l? ¿Y un -?

  • Si quisieras identificar rápidamente cuáles archivos en un directorio son directorios, ejecutables o enlaces simbólicos, ¿qué opción de ls te ayuda añadiendo un caracter indicador?

  • ¿Qué comando usarías para ver únicamente los nombres de archivo en un directorio, uno por línea, sin información adicional? (Piensa en una opción de ls o un comando alternativo).

Uso de la ayuda y documentación en línea de comandos (man, --help)

Concepto desarrollado: En Linux, una habilidad fundamental es saber cómo obtener ayuda sobre los comandos y archivos de configuración. Ya vimos un adelanto en el Módulo 1 con man y --help. Profundicemos:

  • Páginas de manual (man pages): Son la documentación tradicional de Unix/Linux para comandos, llamadas al sistema, formatos de archivos, etc. Cada comando suele tener su página de manual. Por ejemplo, man ls muestra la página del comando ls, donde encontrarás su descripción, sintaxis, opciones, variables de entorno relacionadas, archivos de configuración si aplica, y autoría. Las man pages están organizadas en secciones (1 para comandos de usuario, 5 para formatos de archivo, 8 para comandos de administrador, etc., aunque no necesitas recordarlas todas). Puedes acceder a secciones específicas, p.ej. man 5 passwd muestra el formato del archivo /etc/passwd (que es sección 5), mientras man 1 passwd mostraría el manual del comando passwd. En caso de conflicto de nombre, man por defecto elige la sección 1 si no especificas otra. Navegación de man: flechas arriba/abajo, PageUp/PageDown, q para salir, /texto para buscar hacia adelante, ?texto para buscar hacia atrás, n para siguiente coincidencia.

  • Opción --help: La mayoría de comandos (especialmente los GNU coreutils como ls, cp, mv, etc., y otros) implementan una opción --help que imprime un breve resumen de uso. Por ejemplo, ls --help listará las opciones disponibles con una pequeña descripción, luego termina. Esto es útil para una referencia rápida sin salir de la terminal o abrir el manual completo. Sin embargo, no todos los comandos tienen --help (programas más antiguos o minimalistas pueden no incluirlo).

  • Páginas de info: Algunas herramientas usan info en lugar de man para documentación más estructurada (ej: info coreutils contiene docs de ls, cp, etc., en formato hipertexto navegable con enlaces). Hoy día, la mayoría consulta man o va a la web, pero conviene saber que info existe (similar navegación a man, pero con nodos y secciones).

  • Documentación en /usr/share/doc: Muchas aplicaciones instalan documentación en texto o ejemplos de config en /usr/share/doc/<paquete>. Por ejemplo, tras instalar Apache, podrías encontrar /usr/share/doc/httpd-<ver> con README, etc. No siempre se consulta, pero si no tienes Internet, es bueno saber que localmente hay referencias.

  • Archivos README o HELP: En directorios de config o en home, a veces hay archivos de texto llamados README, INSTALL, etc., con instrucciones (por ejemplo, en fuentes de software o en paquetes de ejemplo). Una buena práctica es buscar archivos de texto informativos en lugares nuevos que explores. Puedes usar ls o find para localizar esos.

  • Recursos en línea: Si bien no es “en la línea de comandos”, está muy relacionado: aprender a usar la documentación oficial en línea (por ejemplo, docs de CentOS/RHEL, wikis de la comunidad). Dado que mencionamos que en la terminal no siempre es amigable leer textos largos, un equilibrio es usar un navegador web o Lynx/Links (navegador de terminal) para consultar guías. En entornos empresariales sin internet, la sabiduría está en manuales locales (por eso man pages son vitales en servidores aislados).

En resumen, ante cualquier duda de sintaxis u opciones de un comando, lo primero debería ser consultar su manual o help. A largo plazo, esto te hace autosuficiente. Todo buen sysadmin sabe leer man pages eficientemente.

Comandos esenciales y sintaxis:

  • man <comando>: abre la página de manual del comando indicado. Ej: man chmod, man systemctl.

  • man -k <palabra>: busca en los índices de manual (apropos). Ej: man -k network listará páginas relacionadas con “network” (útil si no recuerdas el comando exacto). Esto busca en nombres y descripciones cortas.

  • whatis <comando>: muestra una línea descriptiva del comando (extraída del manual). Ej: whatis ls podría mostrar "ls (1) - list directory contents". Similar a man -f.

  • info <comando>: abre la documentación info. Ej: info ls (si existe). Navegación con flechas, n siguiente sección, p previa, u subir de nivel, q salir.

  • --help: ya cubierto. Ej: grep --help, tar --help.

  • help <builtin>: Nota: para comandos internos del shell (builtins, ej. cd, echo, alias), no tienen man page propia (son parte de man bash). En esos casos, Bash ofrece help nombre que muestra ayuda breve del builtin. Ej: help cd te dará info de cd. (También puedes hacer man bash y buscar /cd).

  • Abrir manual de configuraciones/formatos: Por ejemplo, man 5 passwd (formato del archivo /etc/passwd), man 8 useradd (comando useradd sección admin), man 5 crontab (sintaxis de la tabla cron). Saber que la sección 5 suele ser "formatos de archivo de config" es útil: muchas veces quieres saber cómo está estructurado cierto archivo de configuración y su man page lo describe.

  • man hier: Página de manual "hier" suele describir la jerarquía de sistema de archivos Linux (un repaso del FHS como vimos). Puedes leerla con calma para reforzar el conocimiento del árbol de directorios.

Puntos clave a recordar:

  • Leer la documentación primero: Antes de googlear o intentar a ciegas, consultar man puede ahorrarte mucho tiempo. Las páginas de manual en Linux suelen ser concisas pero completas, incluyendo ejemplos a veces.

  • La opción -k (apropos) es oro cuando sabes qué quieres hacer pero no recuerdas el comando. Úsala con palabras clave. Ej: man -k compress te muestra comandos de compresión (gzip, bzip2, etc.).

  • Man pages están en inglés (casi siempre): Ten esto en cuenta. Si el inglés técnico es una barrera, existen proyectos de traducción de man pages al español, pero no siempre instalados. Puedes instalar man-pages-es quizás, pero en entornos empresariales, lo usual es manejarlas en inglés. Vale la pena familiarizarse con los términos técnicos en inglés.

  • La sección de "SEE ALSO": Al final de muchas man pages hay una sección "See also" que referencia comandos relacionados. Úsala para descubrir comandos afines. Por ejemplo, en man chmod verás menciones a chown, etc. Es una guía para explorar funcionalidad relacionada.

  • Ejemplos en man/info: Algunos manuales incluyen ejemplos de uso (por ejemplo, man rsync tiene una sección de ejemplo). Búscalos con /EXAMPLE si crees que puede haber.

  • Páginas de config (sección 5): No olvides que man no es solo para comandos. Puedes aprender formatos de archivos de config (ideal cuando vayas a editar uno). P.ej., antes de editar /etc/fstab, man fstab te dice la sintaxis para no cometer errores con espacios/tabulaciones.

Errores comunes y cómo evitarlos:

  • No consultar la ayuda y asumir mal: Un error clásico es pensar "este comando seguro funciona así" y ejecutarlo sin checar. Por ejemplo, suponer que chmod -R 777 / carpeta es correcto para hacer recursivo, cuando en realidad el espacio lo hace mal (tomaría "/ carpeta" como dos cosas). Leyendo man chmod notarías que -R es la opción correcta y la ruta no debe tener espacio. En general, no temas leer antes de ejecutar.

  • Salir de man a medias sin haber encontrado la info: A veces la gente abre man, ve un tocho de texto y se abruma. Aprende a buscar dentro de man (/) para saltar a lo que te interesa. Por ejemplo, en man useradd, buscar /EXAMPLE o /adduser puede llevarte a ver diferencias.

  • Confundir man de comando con config: Ejemplo: quieres la sintaxis de crontab, pero tecleas man crontab (que muestra el comando crontab), mientras la sintaxis del archivo está en man 5 crontab. Si ves que la man no concuerda con lo que buscas ("esto habla de un comando, pero yo quería el formato del archivo"), revisa la sección. La línea de whatis o apropos te indica entre paréntesis el número de sección.

  • No saber salir de info/man: Parece tonto, pero al inicio alguno se queda "atrapado". Recuerda: q es tu salida en ambos. En info, Ctrl+C no funciona como en shell normal ya que estás dentro de un pager.

  • Ignorar mensajes de error que sugieren documentación: A veces al ejecutar un comando mal, te dice "try 'comando --help' for more information". No lo ignores, hazlo, suele aclarar el error.

Tips de rescate si algo falla:

  • tldr pages: Hay una herramienta comunitaria llamada tldr que provee resúmenes cortos con ejemplos prácticos para muchos comandos. No viene de serie, pero podrías instalarla (sudo dnf install tldr). Luego tldr tar te da ejemplos comunes. Es un buen complemento "rápido" a man. Si tu entorno no permite instalar, hay tldr websites también.

  • Uso de ejemplos en la web: Stack Overflow, blogs, etc., pueden complementar. Si tienes internet, no está mal buscar "cómo usar comando X ejemplo". Solo asegúrate de entender lo que hace antes de copiar. Contrasta con man para no ejecutar flags peligrosas sin darte cuenta.

  • Crear tu propia cheat-sheet: Mientras aprendes, anota en un documento los comandos nuevos y opciones clave que más te sirvan, con una breve descripción. Este curso te da muchos, pero filtra los que consideras esenciales y haz tu "hoja de referencia". Con el tiempo memorizarás, pero al principio un resumen personalizado es invaluable.

  • Preguntar a compañeros o mentores: Forma parte del aprendizaje. Pero intenta formular preguntas claras: "Busqué en man find cómo borrar archivos antiguos, pero no entendí la sección -mtime. ¿Podrías explicármela?". Mostrará que te esforzaste en ver la doc primero.

Criterios de evaluación del módulo:

✅ El alumno demuestra iniciativa para buscar ayuda en la terminal: recurre naturalmente a man o --help cuando enfrenta un comando nuevo o una opción desconocida.
✅ Sabe navegar eficientemente en las páginas de manual, usando la búsqueda interna para encontrar información específica.
✅ Puede distinguir cuándo usar man (documentación completa) vs --help (resumen rápido), y sabe de la existencia de info y documentación local en el sistema.
✅ Integra el uso de documentación en su flujo de trabajo: antes de preguntar o rendirse, consulta fuentes primarias (man pages, help) para resolver dudas sencillas de uso.

❓ Preguntas de repaso recomendadas:

  • ¿Qué diferencia hay entre man ls y ls --help en cuanto a la información proporcionada?

  • ¿Cómo buscarías si existe algún comando relacionado con la gestión de usuarios sin saber su nombre exacto? (Pista: piensa en man -k o similar).

  • Si man ssh te muestra la página del cliente SSH y quieres ver la del servidor SSH (sshd), ¿cómo lo harías?

  • ¿Qué comando te permite obtener una breve descripción de qué hace grep sin abrir todo el manual?

  • ¿Dónde podrías encontrar ejemplos o documentación adicional instalada localmente para un paquete que has añadido a tu sistema (por ejemplo, Nginx o MariaDB)?