Comandos Linux más Usados (Básicos y Avanzados)
Por FelipePublicado en:
Tal vez hayas oído de Ubuntu, Fedora, Debian, o incluso te encuentres en la terminal de un servidor remoto. En todas esas situaciones, dominar los comandos esenciales de Linux te abrirá la puerta a acciones sumamente útiles. Luego, al sentirte más confiado, podrás adentrarte en funciones más avanzadas que te harán ver como un verdadero experto en el manejo de tu sisitema.
Hoy veremos la forma de navegar por tu directorio, consultar archivos y carpetas, crear documentos o instalarlos, y muchas otras cositas que constituyen el básico de Linux. Luego, caminaremos hacia comandos avanzados que involucran ejecución de procesos, redirecciones de entrada y salida, permisos, y exploraremos también algunas utilidades que pueden ahorrarte muchísimo tiempo en tareas que exigen precisión y velocidad.
La Terminal en Linux

Generalmente se lo asocia con tareas para personas que les gusta programar, pero en realidad es un componente indispensable de la mayoría de las distribuciones. Con tan solo un par de caracteres, puedes realizar cosas que en interfaces gráficas llevarían varios clics y menús. Por eso, en entornos profesionales, la terminal linux se convierte en un recurso fundamental.
Por si fuera poco, si algún día piensas crecer y convertirte en un auténtico experto, necesitarás un dominio sólido de los comandos Linux. Las interfaces gráficas son muy cómodas, pero la terminal te da la posibilidad de automatizar con scripts o de controlar tareas múltiples. Y ese es una habilidad que no querrás dejar pasar.
Navegación y Administración de Archivos
Comencemos con la navegación de directorios y la administración de archivos. Esto se asemeja a abrir carpetas y mover objetos en un entorno visual, pero aquí se realiza con línea de comándo. Conocerás cd, ls, cp y otros códigos que te servirán en el día a día.
Moverte por Directorios y Ver Contenido
La base de la navegación por la terminal radica en cd. Con este comando, puedes saltar de un directorio a otro. Por ejemplo, si te encuentras en tu carpeta personal y quieres ir a Documentos, teclearías:
Y con eso ya estarás adentro. Si deseas retroceder un directorio, lo harías de la siguiente manera:
El doble punto (..) hace referencia al directorio padre, es decir, aquel un nivel más arriba. Para saber en qué lugar del sisitema te encuentras, puedes usar:
Ese comando te mostrará la ruta completa en la cual estás ubicado. De esa forma, nunca te perderás en las carpetas.
Para ver el contenido de un directorio, usa el comando ls. Puedes escribir simplemente:
Y obtendrás una lista de archivos y subdirectorios. Existe la posibilidad de agregarle -l para ver más detalles, como permisos y fechas de modificación:
Si prefieres una vista de archivos ocultos, agrégale -a:
Con estas combinaciones, tendrás toda la información que necesitas sobre los archivos alojados en tu carpeta.
Creación y Borrado de Directorios

En Linux, los directorios se crean con mkdir. De modo que, si necesitas una carpeta llamada “proyectos,” basta con:
Si más adelante notas que creaste una carpeta adicional por error, o simplemente deseas organizar tu sistema, el comando para borrar una carpeta es rmdir, siempre y cuando esta carpeta esté vacía:
Ahora, si pretendes eliminar un directorio que ya tiene archivos en su interior, tocará usar rm con la opción -r, que indica una eliminación recursiva:
Ten muchísimo cuidado con ese comando porque eliminará todo su contenido sin mandarlo a la papelera. Cuando tecleas rm -r, básicamente no hay marcha atrás.
Copiado y Movido de Archivos
Para copiar archivos, se emplea cp. Por ejemplo, si tienes un archivo llamado “informe.txt” en tu directorio actual y quieres duplicarlo en otra ubicación, harías algo como:
De esta manera, mantienes el original donde está y generas una copia adicional. Si quieres trasladar archivos en lugar de copiarlos, usa el comando mv.
Si no especificas un destino, por ejemplo:
Renombrarás el archivo al nuevo nombre que indiqués. Es una forma práctica de evitar el uso de combinaciones innecesarias.
Visualización de Archivos
En la terminal, puedes ver el contenido de archivos de texto con cat. Por ejemplo:
Te mostrará directamente el texto en la terminal. Si deseas explorar un archivo muy extenso y no quieres que te aparezca todo de una, podrías usar less, que te deja navegar con las flechas y cerrar con la tecla “q”:
Permisos y Propietarios
Otro tema fundamental en Linux es la gestión de permisos y la asignación de propietarios, ya que define quién puede leer, escribir o ejecutar determinados archivos o directorios. Este aspecto puede parecer enredado al comienzo, pero con algo de práctica se te hará sencillo.
Comprender la Estructura de Permisos
Los archivos en Linux cuentan con permisos básicos para el propietario, el grupo y los demás usuarios. Estas categorías se representan normalmente con letras como r (lectura), w (escritura), y x (ejecución). Por ejemplo, si ves algo como rwxr-xr--, significa que el propietario puede leer, escribir y ejecutar, el grupo solo puede leer y ejecutar, y todos los demás solo pueden leer.
Para verificar los permisos de un archivo, puedes usar:
Cambiar Permisos con chmod
Cuando quieras modificar los permisos, chmod te permite hacerlo. Una forma clásica es la que usa números, como 755, 644, etc. Por ejemplo:
Esto dará permiso de lectura, escritura y ejecución al propietario, y permiso de lectura y ejecución al grupo y a los demás. Para personalizarlo, podrías emplear algo como:
Con ello, le agregas permiso de ejecución al propietario (u = user).

Cambiar Propietario y Grupo
Hay ocasiones en que necesitas transferir la propiedad de un archivo a otro usuario. Para ello, existe chown. Por ejemplo, para asignar el archivo “documento.txt” al usuario “pedro,” teclearías:
sudo se utiliza porque solo un usuario con privilegios elevados puede cambiar propietarios. De igual modo, si precisas cambiar tanto el propietario como el grupo, lo haces así:
Estas herramientas se vuelven esenciales cuando gestionas un servidor o cuando compartes recursos con más personas.
Explorando Comandos de Búsqueda y Gestión de Procesos
En la terminal de Linux, a veces necesitas encontrar un archivo que no recuerdas en qué carpeta dejaste, o identificar qué proceso está consumiendo más recursos de tu CPU. Para esas tareas, existen find, grep, ps, top y kill. Dominarlos será un paso firme hacia tu desarrollo como usuario experimentado.
Buscar Archivos con find
El comando find te deja localizar archivos en tu disco o en un directorio específico. Un ejemplo sencillo sería:
En ese caso, estarías buscando en la carpeta /home un archivo llamado “informe.txt.” Con -iname es posible realizar una búsqueda sin distinguir mayúsculas o minúsculas:
Y si necesitas filtrar por otros criterios, como fecha de modificación o tamaño, find te ofrece opciones como -mtime, -size y más.
Filtrado de Texto con grep
A veces tienes que buscar una palabra o frase en un archivo. Para eso se usa grep. Por ejemplo, para localizar la palabra “error” dentro de un archivo “log.txt,” puedes hacerlo con:
Si deseas que se ignoren las mayúsculas y minúsculas, agrégale -i:
Con -r, puedes buscar recursivamente en todos los archivos dentro de una carpeta. De esa manera, no tendrás que revisar manualmente lineaa a linea cada documento.
Observando Procesos con ps y top
Para obtener información sobre los procesos que corren en tu sisitema, ps es el comando básico:
Te mostrará una lista de procesos con detalles como usuario, PID (identificador de proceso), uso de CPU y memoria, etc. Pero si prefieres una vista actualizada en tiempo real, top es la herramienta que necesitas. Al escribir:
Vas a ver, actualizándose al segundo, qué procesos están acaparando tu CPU, cuánta memoria se está usando, y otras estadísticas importantes. Para salir de top, presiona “q.”
Finalizar Procesos con kill
Cuando un proceso se queda congelado o te genera problemas, el comando kill permite finalizarlo. Primero, revisa el PID con ps o top. Por ejemplo, si detectas que el PID es 1234, ejecutas:
En la mayoría de situaciones, eso basta. Pero si necesitas forzar la terminación del proceso, puedes utilizar la señal -9:
Úsala con cuidado, porque mata el proceso de inmediato, sin darle tiempo de cerrar adecuadamente.
Privilegios de Superusuario y sudo
En Linux, muchas tareas administrativas exigen permisos especiales que solo un super usario, o root, puede realizar. Sin embargo, entrar siempre como root no es recomendable por cuestiones de seguridad. Ahí es donde entra el comando sudo, que otorga privilegios temporales al usuario actual para ejecutar acciones específicas.
Si deseas instalar un programa, por ejemplo, utilizarías algo como:
En distribuciones basadas en Debian, apt-get es un método muy popular para instalar software. Si estás en otras distros, como Fedora, se usa dnf. El punto es que sudo te pedirá la contraseña para asegurarse de que efectivamente tengas permiso de realizar la acción. Una vez autentificado, se ejecuta la orden con privilegios elevados.
Redirecciones y Pipes

Uno de los aspectos más llamativos de la terminal en Linux es la redirección de la salida de un comando a un archivo o a otro comando. Esto te permite encadenar acciones y crear flujos de trabajo muy potentes.
Redirección de Salida y Entrada
Si quieres almacenar la salida de un comando en un archivo, usarás el operador >:
Todo el resultado de ls -l quedará guardado en “contenido_directorio.txt.” Para agregar sin sobrescribir, usarías >>:
En cuanto a la entrada, el operador < se encarga de suministrar contenido a un comando desde un archivo. Este recurso no se usa tanto como la redirección de salida, pero puede serte útil en contextos concretos.
Encadenar Comandos con Pipes
Los pipes (|) permiten tomar la salida de un comando y usarla como entrada de otro. Esto te brinda la oportunidad de filtrar o procesar datos de manera muy flexible. Por ejemplo:
Te mostrará solo las líneas de la salida de ls -l que contengan la palabra “txt.” Y si quisieras contar cuántas líneas resultan, podrías:
De esa forma vas concatenando procesos hasta conseguir el resultado que deseas. Esta característica es una de las más destacadas del entorno de la terminal en Linux, pues te permite crear soluciones muy creativas con sencillos comandos enlazados.
Edición de Archivos en la Terminal: nano, vim y Otros
No siempre tendrás acceso a un editor gráfico. Y aunque lo tuvieras, es útil saber editar archivos de configuración directamente en la terminal. Para ello, existen editores como nano y vim.
nano: El Editor Amigable
nano es un editor simple, fácil de manejar. Al escribir:
Podrás editar el texto, moverte con las flechas, y ver en la parte inferior algunos atajos básicos. Para guardar cambios, Ctrl + O, y para salir, Ctrl + X. Es ideal para principiantes o para aquellos que no quieran lidiar con la curva de aprendizaje de vim.
vim: Potencia y Velocidad
vim es un editor veterano, muy usado en la línea de comándo, con una filosofía basada en modos de inserción, comandos y navegación. Para abrir un archivo con vim:
Al principio, puede intimidar con sus diferentes modos (normal, inserción, visual), pero, una vez aprendes, te permite moverte con rapidez, editar y manipular texto con gran eficiencia. Sin embargo, si estás empezando, no te sientas mal en optar por nano mientras te familiarizas con la terminal.
Gestión de Paquetes: Instalando y Actualizando Software
Para mantener tu sisitema al día, necesitarás instalar software y aplicar actualizaciones. Dependiendo de la distribución, el método varía, pero siempre gira en torno a un gestor de paquetes. En distribuciones basadas en Debian, encontrarás apt-get o apt. En Red Hat y Fedora, verás yum o dnf. En Arch Linux, pacman. Pero las nociones centrales son similares.
Instalación de Paquetes
En Debian/Ubuntu, para instalar un paquete, se usa:
Si tu distribución es un poco más moderna, puedes usar:
Con eso, el gestor localiza el paquete en los repositorios y lo descarga e instala, resolviendo dependencias automáticamente.
Actualización del Sistema
Para actualizar, primero sincronizas la lista de paquetes:
Luego actualizas todo:
También puedes combinar estos pasos, pero hacerlo en dos partes permite asegurarte de que todo vaya bien y de que tengas un control más fino sobre lo que se está instalando o actualizando.
Redes y Conexiones Remotas
Si gestionas un servidor o quieres acceder a equipos en la misma red, conocer algunos comandos de redes te será indispensable. Con ping, ssh, scp y otros, puedes verificar conexiones, acceder a máquinas remotas y transferir archivos con sencillez.
Verificando la Conectividad con ping
ping te ayuda a comprobar si un host está accesible. Por ejemplo:
Envía paquetes ICMP a la dirección especificada y te indica cuánto tardan en regresar. Para detenerlo, presiona Ctrl + C. De ese modo, sabes si hay buena conexión y cuál es la latencia.
Acceso Remoto con ssh
El protocolo SSH (Secure Shell) es fundamental para acceder a otros equipos de manera cifrada. Para conectarte a un servidor remoto:
Te pedirá la contraseña de “usuario,” y tras autenticarte, podrás manejar el servidor remoto como si estuvieras sentado frente a él. Suele ser la forma preferida de administrar servidores en la nube, ya que evita la necesidad de interfaces gráficas.
Transferencia de Archivos con scp
scp (secure copy) es parte de la suite de SSH y te permite transferir archivos entre tu máquina local y un servidor remoto. Por ejemplo, para enviar un archivo local “informe.txt” a tu carpeta personal en un servidor:
De igual modo, puedes traer archivos del servidor a tu equipo local:
Respaldos y Compresión
Realizar copias de seguridad es una parte crucial en cualquier sisitema. En la terminal de Linux, tienes herramientas para comprimir y empaquetar archivos que facilitan tu vida. Además, eso reduce el tamaño de tus respaldos y te permite gestionar los archivos de manera más sencilla.
tar: Empaquetador Clásico
tar es un empaquetador que combina archivos y carpetas en un único archivo tarball, el cual luego puede comprimirse con gzip. Por ejemplo, para empaquetar y comprimir una carpeta “mis_fotos” en un archivo “fotos.tar.gz,” ejecuta:
Las letras significan: -c crea un archivo, -z usa gzip para comprimir, -v muestra el progreso, y -f indica el nombre del archivo resultante. Para extraerlo:
Así descomprimes y obtienes la carpeta original.
rsync: Copia Eficiente
rsync es un comando muy poderoso para realizar copias de seguridad y sincronizaciones entre carpetas. Por ejemplo, para copiar la carpeta “proyectos” a otra ubicación:
La opción -a preserva permisos y enlaces simbólicos, mientras que -v muestra la actividad en pantalla. Si vuelves a ejecutar el mismo comando, solo actualizará los cambios, sin volver a copiar todo desde cero. Es genial para mantener respaldos incrementales.
Trabajando con Scripts y Automatización
Una ventaja enorme de Linux es la posibilidad de automatizar tareas con scripts, usualmente escritos en bash o algún otro shell. Al crear un archivo con extensión .sh, por ejemplo “respaldo.sh,” y darle permisos de ejecución, puedes agrupar varios comandos que se ejecuten en secuencia o según tus indicaciones.
Dentro del script, podrías tener algo como:
Con chmod +x respaldo.sh, lo conviertes en un ejecutable. Luego, cada vez que quieras generar un nuevo respaldo, tecleas:
Así, en pocos pasos, has creado tu propia herramienta. Con un conocimiento más profundo de bash, podrás añadir condicionales, bucles, variables y todo lo que necesites para automatizar verdaderas maravillas.
Sed y awk
Para quienes van más allá de lo básico, los comandos sed y awk son muy apreciados al momento de editar o procesar textos en bulk.
sed: Editor de Texto en Línea
sed te permite buscar y reemplazar texto dentro de un flujo sin necesidad de abrir un editor. Por ejemplo, si quieres reemplazar la palabra “hola” por “buenas” en un archivo “saludos.txt”:
La “g” al final indica que la sustitución se aplique a todas las apariciones de la palabra en cada línea. Puedes redirigir la salida a un nuevo archivo, o utilizar la opción -i para modificarlo directamente (pero asegúrate de hacer copia de seguridad si es algo sensible).
awk: Procesamiento de Datos
awk resulta muy útil para examinar archivos de texto con datos organizados por columnas. Imagina que tienes un archivo CSV con nombres y edades. Podrías extraer la segunda columna (edades) así:
La opción -F, indica que el separador de campos es una coma. Este comando imprimirá todas las edades, lo que facilita la extracción de datos sin necesidad de abrir una hoja de cálculo.
Programación de Tareas con cron
Si te gustaría que un script o un conjunto de comandos se ejecute automáticamente a una hora específica, cron es tu amigo. cron es el planificador de tareas en Linux y permite acciones periódicas sin tu intervención.
Para editar la tabla de cron, usas:
Ahí agregas una línea con la especificación de la fecha y hora, seguida del comando a ejecutar. Por ejemplo, para que un script se ejecute todos los días a las 3 de la mañana:
Los cinco campos representan minuto, hora, día del mes, mes y día de la semana, respectivamente. Con cron, puedes programar respaldos, limpiezas, envíos de correos y más.
Monitoreo de Recursos y Herramientas Extra
Conforme avanzas en tu periplo por la terminal, quizás quieras ahondar en el monitoreo de recursos. Más allá de top, existen otras utilidades como htop (muy parecida a top pero con interfaz más atractiva) y iotop (centrada en el uso de disco). Estas herramientas te proporcionan datos relevantes en tiempo real. Incluso, algunos scripts personalizados basados en bash pueden presentarte informes sobre el estado de tu CPU, memoria, disco y red, para que sepas si un servicio está saturando la máquina o si requieres optimizar algo.
De la misma manera, si te interesan aspectos como la temperatura de tu CPU o la carga que soportan tus discos, la terminal te ofrece comandos como sensors (necesitas instalar el paquete correspondiente) o df -h para ver el espacio libre en tus sistemas de archivos. Con cada herramienta que sumas a tu arsenal, te sientes menos intimidado por la terminal y más fascinado con las posibilidades que te brinda.
Contenedores y Virtualización en la Terminal
En la actualidad, muchos profesionales utilizan contenedores y entornos de virtualización para gestionar aplicaciones y servicios. Aunque estas prácticas son un poco más avanzadas, no podemos obviar que, en su mayoría, se administran desde la terminal. Si en algún momento decides dar el salto hacia el uso de contenedores con Docker o a la orquestación con Kubernetes, verás que un conocimiento sólido de los comandos Linux te facilitará enormemente el camino.
Además, para la virtualización clásica, existen hipervisores como KVM, VirtualBox o VMware, pero la interacción con ellos se puede combinar con scripts de la terminal que permitan automatizar la creación o eliminación de máquinas virtuales, copias instantáneas y otras funciones avanzadas.
Configuración del Entorno de Shell
El aspecto y funcionalidad de tu terminal pueden personalizarse de muchas formas. Por ejemplo, si empleas Bash, tienes un archivo .bashrc en tu carpeta de usuario. Si usas Zsh, tendrás un .zshrc. Estos archivos contienen variables de entorno, alias y configuraciones que hacen tu vida más sencilla.
Alias para Comandos Frecuentes
Si te aburre escribir siempre lo mismo, como ls -l --color=auto, puedes crear un alias en tu archivo de configuración. Basta con editar el archivo y agregar una línea como:
Guarda y cierra. La próxima vez que abras la terminal, con solo teclear ll, obtendrás el mismo resultado.
Variables de Entorno
En .bashrc o .zshrc, también puedes definir variables de entorno, como PATH, que indica dónde buscar los comandos. Agregar rutas extra te permite ejecutar programas locales sin escribir la ruta completa. Y si tienes proyectos en lenguajes como Python o Node.js, quizá desees configurar variables específicas para que tu sistema sepa dónde localizar dependencias.
Trucos Prácticos y Consejos para la Terminal
Aunque ya has visto un enorme conjunto de comandos, siempre es bueno conocer algunos “trucos” que pueden ahorrarte tiempo y dolores de cabeza.
Para reutilizar un comando largo que acabas de tipear, presiona la flecha hacia arriba para navegar por tu historial. Además, con Ctrl + R, puedes buscar en tu historial de comandos. Empieza a escribir algo que recuerdes del comando y verás cómo aparece. Una vez que lo encuentres, pulsa Enter para lanzarlo.
Por otra parte, si necesitas detener la ejecución de un comando que está tardando demasiado, Ctrl + C es tu vía de escape rápida. Y si un comando se está ejecutando, pero en segundo plano, puedes traerlo al primer plano con fg.
Seguridad en la Terminal
Evita ejecutar sudo a menos que sea necesario. Si vas a manipular archivos delicados o modificar configuraciones sistémicas, asegúrate de hacer respaldos. Recuerda que Linux asume que sabes lo que haces, y no siempre hay un aviso de confirmación.
También es buena práctica cambiar tus contraseñas con regularidad y tener un firewall activo si manejas un servidor público. Podrías usar herramientas como ufw (para Ubuntu) y mantener tu sisitema siempre actualizado, porque los parches de seguridad a menudo corrigen vulnerabilidades críticas.
Alcanza la Excelencia con la Práctica
La mejor forma de aprender realmente los comandos Linux es practicando. No te quedes únicamente con la teoría. Crea archivos, muévelos, cámbiales los permisos, edita scripts, experimenta con sed y awk, filtra resultados con grep y redirige salidas con >.
Explorando más Comandos
Linux incluye otra multitud de utilidades que, combinadas con lo aprendido, dan lugar a auténticas maravillas en la línea de comándo. Hay herramientas para reproducir audio, manipular imágenes, convertir formatos de vídeo, y hasta para gestionar base de datos.
Asimismo, en tu camino, descubrirás que cada distribución cuenta con peculiaridades y que la comunidad de usuarios es muy activa. Si tienes dudas o experimentas problemas, puedes consultar foros o grupos de usuarios.
Por otra parte, si te orientas al desarrollo web, te darás cuenta de que utilizar la terminal es casi innegociable. Sea para instalar entornos de ejecución (Node.js, Python, PHP, etc.), sea para lanzar servidores locales, o para trabajar con repositorios de versiones como Git, todo se hace muy rápido por medio de comandos.
Si te animas a explorar la parte más avanzada, quizás te topes con shells alternativos como Fish, que ofrecen completados más intuitivos, o con frameworks que embellecen tu terminal con colores y plugins.


