
No necesitas memorizar cientos de comandos: necesitas reconocer la tarea, encontrar la herramienta y comprobar lo que va a hacer. Esta página organiza una selección práctica por tema, con un laboratorio seguro y referencias de documentación. El título hace referencia al manual de más de 500 comandos disponible al final; el texto de la página no pretende reproducir íntegramente el PDF.
Antes de copiar: entiende el tipo de ejemplo
Los ejemplos usan Bash y herramientas comunes en Linux. Algunos programas son opcionales; los nombres de paquetes y servicios varían entre distribuciones. El laboratorio de archivos debe seguirse en orden; los demás bloques son consultas independientes, no un script para ejecutar entero como root.
- Consulta: muestra información, pero puede revelar rutas, usuarios y datos sensibles. Revise la salida antes de compartirla.
- Modificación local: crea o modifica los archivos de práctica. Compruebe la carpeta actual antes de ejecutar.
- Administración: instala, elimina, reinicia o cambia permisos de sistemas reales. Exige planificación, autorización y posibilidad de recuperación; no es el primer intento de diagnóstico.
Descubrir comandos y leer la ayuda
type -a ls
command -v python3
help cd
man tar
tar --help
apropos archive
Use type para averiguar si un nombre se resuelve como alias, función o ejecutable. La ayuda de Bash cubre sus comandos internos; man abre páginas de manual. Apropos busca descripciones en la base de manuales, que debe estar instalada e indexada. En paginadores habituales, q sale y la barra inicia una búsqueda.
Ejecuta los siguientes bloques en el mismo terminal, como usuario normal. Se necesitan las herramientas GNU habituales, grep, sed, awk, tar y diff. El directorio de trabajo es nuevo y se encuentra dentro de tu carpeta personal. Si la creación o el acceso al directorio falla, el primer bloque interrumpe el shell en lugar de continuar en otro lugar.
LAB_DIR=$(mktemp -d "$HOME/linux-commands.XXXXXX") || exit 1
cd "$LAB_DIR" || exit 1
pwd
mkdir -p data copies restored
printf '%s\n' 'alpha' 'beta' 'alpha' > data/words.txt
cp -i data/words.txt copies/words.txt
ls -lah
stat data/words.txt
El listado muestra la estructura creada; stat detalla los metadatos del archivo. Las comillas protegen rutas que contienen espacios. La opción interactiva de copia pide confirmación cuando hay sobreescritura, pero no convierte cualquier operación en segura.
Leer texto, filtrar líneas y contar correctamente
cat data/words.txt
head -n 2 data/words.txt
tail -n 1 data/words.txt
wc -l data/words.txt
grep -n '^alpha$' data/words.txt
grep -c '^alpha$' data/words.txt
sort data/words.txt | uniq -c
sed 's/beta/gamma/' data/words.txt
awk '{print NR, $0}' data/words.txt
El archivo tiene 3 líneas; la búsqueda exacta de alpha encuentra 2. La opción de conteo de grep cuenta líneas seleccionadas, no todas las coincidencias dentro de una línea. Sort prepara valores iguales para uniq; el sed de este ejemplo modifica solo la salida, no el archivo original.
Para archivos grandes, es preferible usar un paginador como less a volcarlo todo en pantalla. Para editar, elige un editor instalado, como nano o vi, y aprende a guardar y salir antes de abrir un archivo de configuración importante.
Buscar archivos sin borrar nada
find data -type f -name '*.txt' -print
find data -type f -exec grep -nH 'alpha' {} +
find data -type f -mtime -1 -print
Las comillas dejan que el patrón de nombres lo interprete find. La ejecución por lotes con argumentos separados conserva nombres con espacios. El filtro de tiempo busca archivos modificados en las últimas 24 horas; no significa necesariamente desde medianoche. Primero observa la selección: una consulta no debe traer una exclusión incluida por sorpresa.
Permisos, dueños y enlaces
id
groups
chmod 640 data/words.txt
ln data/words.txt data/words-hard.txt
ln -s words.txt data/words-link.txt
ls -li data/
readlink data/words-link.txt
El permiso 640 da lectura y escritura al propietario, lectura al grupo y ningún acceso al resto. El enlace duro comparte el inodo del archivo; el enlace simbólico guarda una ruta. En este laboratorio, el directorio temporal también restringe el acceso: los bits del archivo por sí solos no demuestran el acceso por parte de otro usuario.
No resuelvas fallos con permisos abiertos para todos ni apliques cambios recursivos en un árbol de producción sin entender el efecto. Los cambios de propietario, las ACL y las reglas de sudo deben probarse en un entorno de entrenamiento, con los usuarios y directorios correctos.
Archivar, restaurar y verificar
tar -czf data.tar.gz data/
tar -tzf data.tar.gz
tar -xzf data.tar.gz -C restored
diff -r data restored/data
sha256sum data.tar.gz
Lista el contenido antes de extraer y usa un directorio vacío. La comparación no debe mostrar diferencias en este ejercicio. Esto verifica el contenido, no todos los requisitos de una copia de seguridad completa. El hash ayuda a comparar archivos, pero solo confirma el origen cuando se contrasta con una referencia fiable.
Una copia con modo de archivo intenta conservar atributos; el resultado depende de los permisos y de los sistemas de archivos involucrados. Las ACL, los atributos extendidos, los enlaces y la restauración de datos de aplicaciones merecen sus propias pruebas. No confundas un archivo comprimido existente con una recuperación demostrada.
Tuberías, redirecciones y códigos de salida
printf '%s\n' 'first' > output.txt
printf '%s\n' 'second' >> output.txt
cat output.txt | tee copies/output.txt
if grep -q '^alpha$' data/words.txt; then
printf '%s\n' 'Found'
else
printf '%s\n' 'Not found'
fi
La redirección simple sobrescribe; la doble añade. Una tubería conecta la salida estándar de un comando con la entrada del siguiente. El flujo de error es independiente. En Bash, el resultado de una tubería suele ser el del último comando; los scripts que necesiten detectar fallos previos deben considerar pipefail y tratar los códigos de salida de forma consciente.
A partir de aquí, el laboratorio está concluido. Guarda la ruta de la carpeta para revisar los resultados. Las próximas secciones son referencias independientes; no exigen borrar los archivos creados.
Procesos y rendimiento: observa antes de finalizar
ps -eo pid,ppid,user,comm
pgrep -a bash
uptime
free -h
vmstat 1 5
uname -a
lscpu
Estas consultas ayudan a separar procesos, carga, memoria y arquitectura. La primera muestra del vmstat tiene una base de tiempo diferente a las siguientes; no interpretes toda la salida como mediciones equivalentes del último segundo. Un sistema lento requiere correlación, no solo mirar un número aislado.
Antes de finalizar un proceso, identifica el PID, el usuario y la función. La finalización normal permite que el programa gestione la limpieza; la forzada no ofrece la misma oportunidad de limpieza. Evita patrones amplios que afecten a varios procesos y no uses la finalización forzada como receta universal.
Discos: diagnóstico sin formatear
df -h
df -i
du -sh "$HOME"
lsblk -f
findmnt
Compara espacio, inodos, uso de directorios y montajes. La consulta del tamaño de la carpeta personal puede tardar. El espacio libre y la cantidad de inodos son medidas diferentes; un archivo eliminado pero aún abierto por un proceso también puede mantener espacio ocupado.
El formateo, particionado y reparación de sistemas de archivos quedan fuera de los bloques de copiar y pegar de esta guía. Entrena en un disco virtual vacío, identifica el dispositivo y confirma los requisitos de la herramienta. No supongas que un nombre de disco visto en un tutorial coincide con el tuyo.
Red y HTTP: dirección, ruta, socket y respuesta
ip -brief address
ip route
ss -ltn
ss -lun
getent hosts example.com
curl --head --max-time 10 https://example.com
curl --silent --show-error --output /dev/null --max-time 10 \
--write-out '%{http_code}\n' https://example.com
Las primeras consultas son locales; la resolución del nombre y el curl hacen acceso externo. Ver un puerto en escucha no prueba que sea accesible desde otra máquina. Un error de DNS, una ruta ausente y una aplicación no disponible requieren investigaciones diferentes.
El código HTTP no es lo mismo que el código de salida del curl. Sin una opción de fallo para respuestas HTTP, recibir una página de error aún puede representar una transferencia exitosa para la herramienta. Tampoco interpretes la ausencia de respuesta al ping como prueba suficiente de que el servicio está caído.
Servicios, registros y tareas programadas
En sistemas que usan systemd, comience por consultas. El acceso a parte de los registros puede estar restringido; la ausencia de mensajes visibles no implica necesariamente la ausencia de eventos.
systemctl --failed --no-pager
systemctl list-units --type=service --state=running --no-pager
systemctl list-timers --all --no-pager
journalctl -b -p err --no-pager
journalctl --since "1 hour ago" --no-pager
journalctl --disk-usage
crontab -l
La última consulta depende de cron instalado y puede informar que no existe crontab para el usuario. No confunda listar programaciones con instalar una tarea. Un script programado necesita rutas, permisos, entorno y destino de registros definidos.
Al administrar un servicio, elija una acción cada vez. Iniciar, detener, reiniciar y recargar no son sinónimos; la recarga depende del soporte del servicio. La habilitación en el arranque es otra propiedad. Después de editar una unit, recargar las definiciones de systemd no reinicia automáticamente la aplicación.
Paquetes: use la familia de su distribución
Ejemplos de consulta, no de actualización automática. Utilice únicamente el bloque correspondiente a su distribución. En Debian y Ubuntu:
dpkg-query -W bash
dpkg-query -L bash
apt-cache policy bash
En una distribución basada en RPM con Bash instalado:
rpm -q bash
rpm -ql bash
En Arch Linux con Bash instalado:
pacman -Qi bash
pacman -Ql bash
La instalación, eliminación y actualización modifican el sistema. Lea la propuesta de transacción y la documentación de la distribución antes de confirmar. No combine alternativas con barras en medio de la línea: esto puede pasar argumentos inesperados en lugar de representar una elección.
- Debian: consultas a la base de datos de paquetes
- RPM: documentación oficial
- Arch Linux: manual de pacman
SSH y copia: valide el destino antes de transferir
Para SSH, confirme usuario, host, puerto e identidad del servidor por un canal fiable. No acepte un cambio de clave sin investigarlo y nunca envíe la clave privada al servidor. Para el paso a paso, use la guía de claves del blog.
Para practicar rsync en local, vuelva a la carpeta del laboratorio y use esta simulación, si la herramienta está instalada:
cd "$LAB_DIR" || exit 1
rsync -ani data/ copies/data/
La simulación muestra cambios sin copiarlos. La barra final en el origen indica el contenido del directorio. Quitar la opción de simulación ejecuta la transferencia; las opciones de borrado pueden eliminar archivos en el destino y requieren una revisión aparte. El modo de archivo no incluye automáticamente todas las formas de metadatos.
Herramientas complementarias y atajos útiles
tldr ofrece ejemplos cortos y ripgrep facilita búsquedas recursivas con reglas para ignorar archivos. Son complementos, no sustitutos universales de los manuales ni de las herramientas tradicionales. Confirme la instalación y los valores por defecto de cada programa: los archivos ignorados pueden no aparecer en una búsqueda.
En el modo de edición por defecto de Bash, Ctrl-R busca en el historial, Ctrl-A y Ctrl-E van al inicio y al final de la línea. Ctrl-C interrumpe la tarea en primer plano; Ctrl-Z la suspende. Son atajos, no comandos para pegar. Antes de repetir algo del historial, lea la línea entera: el contexto y el directorio pueden haber cambiado.
Hábitos que evitan accidentes
- Verifique usuario, directorio, origen y destino. Use comillas y no escriba rutas de disco o de servidor por analogía con un ejemplo.
- Realice copias de seguridad antes de editar y valide la restauración. Una instantánea o copia sin prueba no demuestra la recuperación.
- No suponga que todo comando tenga simulación o modo interactivo. Consulte el manual y lea las limitaciones de la opción.
- Evite borrados recursivos, formateos, cambios amplios de permisos y respuestas automáticas de confirmación en recetas genéricas.
- Valide las configuraciones antes de recargar y pruebe el servicio después. Guarde una forma de retorno y acceso a la consola al cambiar red o SSH.
- No pegue comandos de IA o de páginas desconocidas sin revisarlos. Identifique especialmente las descargas ejecutadas directamente, redireccionamientos y variables vacías.
PDF histórico: más de 500 comandos de Linux
El acervo mantiene la apostila de Bruno Andrade (GNU/Linux – Brasil), cuya portada indica 2016. El propio documento autoriza la descarga y el intercambio gratuitos sin fines lucrativos. Permanece en portugués y no se ha reescrito en esta revisión; la versión en inglés de esta página no convierte el PDF en una traducción.
Utilice la apostila como catálogo histórico, no como autorización para ejecutar cualquier ejemplo en un sistema actual. Verifique versiones y manuales antes de comandos administrativos. La selección revisada arriba prioriza comprender la tarea y verificar los resultados, en lugar de copiar una lista entera.
Continúe practicando
- LPIC-1: plan de estudio y laboratorio
- Serie Servidores Linux del acervo
- Guía de wget
- Asistentes de IA en la terminal: úselos con revisión
Elige una tarea, ejecútala en un entorno de prácticas y anota cómo la validaste. Saber consultar la documentación y reconocer un comando peligroso vale más que memorizar una lista de nombres.