Programación

Los 50 comandos de Linux más útiles para expertos y principiantes

La terminal de Linux representa la verdadera esencia del control sobre un sistema operativo. Mientras que las interfaces gráficas han simplificado muchas tareas, dominar los comandos de Linux básicos te otorga un poder incomparable sobre tu máquina. ¿Te has preguntado alguna vez cómo los administradores de sistemas pueden realizar tareas complejas en cuestión de segundos?

Los comandos de Linux básicos son la respuesta. Esta guía te llevará por los 50 comandos de Linux básicos fundamentales que todo usuario debería conocer, desde principiantes hasta aquellos que buscan reforzar sus conocimientos.

¿Qué son los comandos de Linux?

Los comandos de Linux básicos son instrucciones que se ingresan en la interfaz de línea de comandos (CLI) para interactuar directamente con el sistema operativo. A diferencia de las interfaces gráficas donde usas el ratón, en la terminal escribes instrucciones específicas que el sistema interpreta y ejecuta. Estos comandos de Linux básicos permiten realizar desde operaciones simples como crear archivos hasta tareas complejas como configurar servidores web o analizar el rendimiento del sistema.

Los comandos de Linux se caracterizan por su sintaxis específica:

comando [opciones] [argumentos]

Donde el «comando» es la instrucción principal, las «opciones» modifican el comportamiento del comando (generalmente precedidas por guiones), y los «argumentos» especifican sobre qué elementos actuará el comando.

Comandos de Linux básicos para navegación del sistema

La navegación eficiente por el sistema de archivos es fundamental para cualquier usuario de Linux. Estos comandos de Linux básicos te permitirán moverte por tu sistema como un profesional:

pwd (Print Working Directory): Este comando muestra la ruta completa del directorio en el que te encuentras actualmente. Es especialmente útil cuando trabajas con múltiples terminales o necesitas confirmar tu ubicación exacta.

$ pwd
/home/usuario/documentos

ls (List): Probablemente uno de los comandos de Linux básicos más utilizados, ls muestra el contenido del directorio actual. Puede personalizarse con numerosas opciones:

  • ls -l: Muestra información detallada en formato largo
  • ls -a: Muestra archivos ocultos
  • ls -h: Muestra tamaños en formato legible para humanos

cd (Change Directory): Te permite navegar entre directorios. Puedes usar rutas relativas o absolutas:

  • cd /: Te lleva al directorio raíz
  • cd ~: Te lleva a tu directorio personal
  • cd ..: Te lleva al directorio padre

mkdir (Make Directory): Crea nuevos directorios en el sistema. Puedes crear múltiples directorios simultáneamente o crear estructura anidada con opciones adicionales:

$ mkdir -p proyectos/web/css

La opción -p crea automáticamente los directorios padres si no existen.

rmdir (Remove Directory): Elimina directorios vacíos. Si necesitas eliminar directorios con contenido, deberás utilizar comandos más avanzados como rm -r.

Comandos de Linux básicos para gestión de archivos

La manipulación eficiente de archivos es esencial en cualquier sistema operativo. Los comandos de Linux básicos ofrecen potentes herramientas que simplifican estas tareas cotidianas:

touch: Crea archivos vacíos o actualiza la marca de tiempo de archivos existentes. Es extremadamente útil para crear archivos de placeholder o para forzar la actualización de la fecha de modificación.

$ touch informe.txt

cp (Copy): Copia archivos y directorios de un lugar a otro. Con las opciones adecuadas, puedes preservar atributos, realizar copias recursivas o interactivas:

$ cp -r documentos/ respaldo/

mv (Move): Mueve o renombra archivos y directorios. A diferencia de cp, después de la operación el archivo original ya no existe en la ubicación inicial.

rm (Remove): Elimina archivos y directorios. Es importante recordar que, a diferencia de otros sistemas operativos, Linux no tiene una «papelera de reciclaje» para la línea de comandos. Una vez ejecutado rm, los archivos se eliminan permanentemente.

¿Necesitas eliminar un archivo protegido contra escritura? Utiliza:

 
$ rm -f archivo_protegido.txt 

cat (Concatenate): Muestra el contenido de archivos. También puede utilizarse para combinar múltiples archivos o crear nuevos archivos mediante redirección.

$ cat archivo1.txt archivo2.txt > combinado.txt

less: Visualiza archivos grandes de manera paginada, permitiendo desplazarse hacia adelante y hacia atrás. Es superior a cat para archivos extensos ya que carga el archivo por partes.

Comandos de Linux básicos para búsqueda

Localizar archivos y contenido específico es una tarea común en Linux. Estos comandos de Linux básicos te ayudarán a encontrar exactamente lo que estás buscando:

find: Uno de los comandos de Linux básicos más versátiles para buscar archivos y directorios basándose en diversos criterios como nombre, tamaño, fecha de modificación, permisos y más.

$ find /home -name "*.txt" -size +1M

Este comando busca todos los archivos .txt mayores a 1MB en el directorio /home.

grep (Global Regular Expression Print): Busca patrones específicos dentro de archivos. Es increíblemente potente para análisis de logs, búsqueda de código y cualquier tarea que requiera localizar texto.

$ grep -r "function" --include="*.js" .

Este comando busca recursivamente la palabra «function» en todos los archivos JavaScript del directorio actual.

whereis: Localiza los binarios, manuales y códigos fuente de los comandos.

locate: Ofrece una búsqueda rápida utilizando una base de datos precompilada. A diferencia de find, que busca en tiempo real, locate es mucho más rápido pero requiere que la base de datos esté actualizada con updatedb.

Comandos de Linux básicos para gestión de procesos

Monitorear y controlar los procesos en ejecución es crucial para mantener un sistema Linux saludable. Estos comandos de Linux básicos te dan el control total sobre las aplicaciones en ejecución:

ps (Process Status): Muestra información sobre los procesos activos. Combinado con opciones como aux, proporciona una visión completa de todos los procesos del sistema.

$ ps aux | grep firefox

Este comando muestra todos los procesos relacionados con Firefox.

top: Ofrece una vista dinámica en tiempo real de los procesos en ejecución, ordenados por uso de CPU. Es esencial para monitorear el rendimiento del sistema.

htop: Una versión mejorada de top con una interfaz más amigable, desplazamiento horizontal/vertical y soporte para mouse.

kill: Termina procesos utilizando su ID (PID). Puedes enviar diferentes señales para terminar procesos de manera limpia o forzosa.

 
$ kill -9 1234 

bg y fg: Controlan procesos en segundo plano (background) y primer plano (foreground), permitiéndote gestionar múltiples tareas desde una sola terminal.

Comandos de Linux básicos para permisos y usuarios

La seguridad es uno de los pilares fundamentales de Linux. Estos comandos de Linux básicos te permiten gestionar usuarios y permisos de archivos:

chmod (Change Mode): Modifica los permisos de archivos y directorios. Puedes utilizar notación simbólica (u+x) o numérica (755).

 
$ chmod 755 script.sh 

chown (Change Owner): Cambia el propietario de un archivo o directorio. Es fundamental para la administración de sistemas multiusuario.

 
$ chown usuario:grupo archivo.txt 

su (Switch User): Permite cambiar a otro usuario, generalmente al superusuario (root).

sudo (Superuser Do): Ejecuta comandos con privilegios de superusuario. Es la forma recomendada de realizar tareas administrativas sin iniciar sesión directamente como root.

passwd: Cambia la contraseña de un usuario. Sin argumentos, cambia la contraseña del usuario actual.

Comandos de Linux básicos para redes

La conectividad de red es esencial en cualquier sistema moderno. Estos comandos de Linux básicos te ayudarán a diagnosticar y configurar tus conexiones:

ifconfig/ip: Muestra y configura interfaces de red. Aunque ifconfig se considera legacy, sigue siendo ampliamente utilizado. Su reemplazo moderno es el comando ip.

 
$ ip addr show 

ping: Envía paquetes ICMP a un host para verificar la conectividad. Es el primer paso en cualquier diagnóstico de problemas de red.

 
$ ping -c 4 google.com 

netstat/ss: Muestra conexiones de red, tablas de enrutamiento y estadísticas de interfaces. Al igual que ifconfig, netstat está siendo reemplazado gradualmente por ss.

wget y curl: Descargan archivos desde la web. Mientras que wget es ideal para descargas simples, curl ofrece más opciones para interacciones HTTP avanzadas.

$ wget https://example.com/archivo.zip
$ curl -O https://example.com/archivo.zip

ssh (Secure Shell): Establece conexiones seguras con sistemas remotos. Es el estándar para administración remota de servidores Linux.

 $ ssh <a href="mailto:usuario@servidor.com">usuario@servidor.com</a> 

Comandos de Linux básicos para compresión de archivos

La gestión eficiente del espacio es importante en cualquier sistema. Estos comandos de Linux básicos te ayudarán a comprimir y descomprimir archivos:

tar: Agrupa múltiples archivos en un solo archivo (tarball). Combinado con opciones de compresión, crea archivos comprimidos.

 
$ tar -czvf archivo.tar.gz directorio/ 

gzip/gunzip: Comprime/descomprime archivos utilizando el algoritmo gzip. Es uno de los formatos de compresión más comunes en Linux.

zip/unzip: Crea y extrae archivos en formato ZIP, útil para compartir archivos con usuarios de otros sistemas operativos.

 
zip -r archivo.zip directorio/ 
unzip archivo.zip 

Comandos de Linux básicos para gestión del sistema

Mantener un sistema Linux funcionando óptimamente requiere herramientas específicas. Estos comandos de Linux básicos te ayudarán a monitorear y administrar tu sistema:

df (Disk Free): Muestra el espacio disponible en los sistemas de archivos montados. La opción -h muestra tamaños en formato legible para humanos.

 
$ df -h 

du (Disk Usage): Calcula el uso de espacio de archivos y directorios. Es especialmente útil para identificar qué está consumiendo espacio en tu sistema.

 
$ du -sh /home/* 

free: Muestra la cantidad de memoria libre y utilizada en el sistema.

lsblk (List Block Devices): Muestra información sobre todos los dispositivos de bloque (discos, particiones, etc.).

uname: Muestra información sobre el sistema, como kernel, hostname y arquitectura.

 
$ uname -a 

Comandos avanzados de Linux que deberías conocer

Para usuarios que buscan llevar sus habilidades al siguiente nivel, estos comandos de Linux básicos ofrecen funcionalidades avanzadas:

awk y sed: Potentes procesadores de texto que permiten manipulación avanzada de archivos de texto. Son herramientas esenciales para cualquier administrador de sistemas o programador.

$ awk '{print $1,$3}' archivo.txt
$ sed 's/antiguo/nuevo/g' archivo.txt

cron: Programa tareas para que se ejecuten automáticamente en momentos específicos. Es fundamental para la automatización de mantenimiento del sistema.

systemctl: Controla el sistema systemd y los servicios. Ha reemplazado a comandos más antiguos como service e init.d en muchas distribuciones modernas.

 
$ systemctl status apache2 

lsof (List Open Files): Muestra archivos abiertos y los procesos que los están utilizando. Es invaluable para diagnóstico de problemas.

Conclusión

Dominar los 50 comandos de Linux básicos es el primer paso para convertirte en un usuario avanzado o administrador de sistemas competente. La terminal, lejos de ser intimidante, se convierte en tu mejor aliada una vez que te familiarizas con estos comandos de Linux básicos. Lo maravilloso de Linux es que siempre hay más por aprender; estos 50 comandos de Linux básicos son solo el comienzo de un viaje fascinante hacia el control total de tu sistema.

¿Quieres profundizar aún más en el mundo de los comandos de Linux básicos? Te recomendamos consultar la documentación oficial del proyecto GNU para obtener información detallada sobre cada comando y sus opciones disponibles.

Recuerda que la práctica constante es la clave para dominar los comandos de Linux básicos. No temas experimentar en un entorno seguro, pues es así como verdaderamente se aprende a aprovechar todo el potencial que los 50 comandos de Linux básicos tienen para ofrecer.

TutorDigital

Soy docente universitario en Estadística, Matemáticas e Informática, apasionado por compartir conocimientos con métodos innovadores y tecnología. Mi objetivo es hacer que los conceptos sean accesibles y relevantes para mis estudiantes, inspirando a la próxima generación de profesionales en estas áreas.

Publicaciones relacionadas

Botón volver arriba