Comandos de Linux para principiantes: la guía esencial de terminal con ejemplos

  1. Inicio
  2. Blog
  3. DevOps

DevOps

Comandos de Linux para principiantes: La guía esencial de terminal con ejemplos

La terminal parece intimidante hasta que conoces unas pocas docenas de comandos. Aprenda los que importan, agrupados según lo que intenta hacer, luego combínelos para responder una pregunta real sobre un archivo de registro.

9 min de lectura
Comandos de Linux para principiantes: la guía esencial de terminal con ejemplos

Puntos clave

  • Un pequeño conjunto de comandos de Linux cubre la mayor parte del trabajo diario: ls, cd, cp, mv, rm, cat y grep.
  • Las tuberías (|) conectan herramientas simples para responder preguntas más difíciles.
  • rm no tiene papelera de reciclaje, así que verifique antes de presionar Enter.
  • Utilice man o --help siempre que olvide una opción.

La mayoría de los servidores, contenedores y máquinas en la nube ejecutan Linux y, por lo general, no tienen un escritorio gráfico. Es por eso que aprender comandos de Linux es una habilidad tan útil tanto para desarrolladores como para evaluadores. No es necesario memorizar cientos. Unas pocas docenas te llevarán muy lejos.

Probamos los ejemplos de archivos, búsquedas y canalizaciones en Git Bash en Windows, que proporciona las mismas herramientas principales, y el resultado proviene de esa ejecución. No ejecutamos los comandos de permisos, servicios, paquetes y acceso remoto, porque dependen de un sistema Linux real. Los detalles pueden variar según la distribución, así que consulte la documentación de su propio sistema.

Empezando de forma segura

No necesitas instalar Linux para practicar. Las buenas opciones incluyen:

  • Windows: Subsistema de Windows para Linux (WSL) o Git Bash para lo básico.
  • macOS: la Terminal integrada, cuyos comandos son muy similares, aunque algunas opciones difieren.
  • Cualquier sistema: un contenedor. Nuestro tutorial de Docker para principiantes muestra cómo iniciar uno.

Practique en una carpeta desechable y recuerde que en Linux todo distingue entre mayúsculas y minúsculas: Notes.txt y notes.txt son ​​archivos diferentes.

Anatomía de un comando

ls -l /var/log
^  ^  ^
|  |  argument: what to act on
|  option: how to behave
command: what to run

Las opciones cortas normalmente se pueden combinar, por lo que ls -l -a y ls -la son iguales. Las opciones largas utilizan dos guiones, como en --help. Para obtener ayuda, ejecute man ls para obtener el manual completo o ls --help para obtener un resumen. Presione q para salir de una página de manual.

Comando que hace
persona con discapacidad Imprime su carpeta actual
es Listas de archivos
ls-la Enumera todos los archivos, incluidos los ocultos, con detalles
carpeta de CD Se mueve a una carpeta
discos compactos.. Sube un nivel
discos compactos ~ Va a tu carpeta de inicio
discos compactos - Regresa a la carpeta anterior

Presione Tab para completar automáticamente los nombres de los archivos y la flecha hacia arriba para recuperar comandos anteriores. Estos dos hábitos ahorran más tiempo que cualquier otro consejo aquí. Un nombre de archivo que comienza con un punto, como .env, está oculto y ls lo muestra solo con -a.

Administrar archivos y carpetas

Comando que hace
mkdir -p proyecto/registros Crea carpetas, incluidos los padres.
notas táctiles.txt Crea un archivo vacío
cp a.txt b.txt Copia un archivo
cp -r src/copia de seguridad/ Copia una carpeta
mv a.txt b.txt Cambia el nombre o mueve un archivo
rm a.txt Elimina un archivo
rm -r carpeta/ Elimina una carpeta y todo lo que contiene.

Aquí hay una breve sesión de nuestra carrera:

$ mkdir -p project/logs
$ cd project
$ touch notes.txt
$ ls
logs  notes.txt

$ cp notes.txt backup.txt
$ mv backup.txt old.txt
$ ls
logs  notes.txt  old.txt

$ rm old.txt
$ ls
logs  notes.txt

Consejo: rm no utiliza una papelera de reciclaje y los archivos eliminados generalmente desaparecen. Tenga especial cuidado con rm -r y comodines. Primero ejecute ls con el mismo patrón, para ver exactamente qué coincidiría, y use rm -i si desea un mensaje para cada archivo.

Ver contenido del archivo

Comando que hace
archivo de gato Imprime un archivo completo
menos archivo Se desplaza por un archivo largo (q para salir)
cabeza -n 5 archivo Muestra las primeras cinco líneas.
cola -n 5 archivo Muestra las últimas cinco líneas.
cola -f archivo Sigue nuevas líneas a medida que se escriben.
wc -l archivo Cuenta líneas

Para los siguientes ejemplos, creamos un pequeño archivo de registro:

$ cat logs/app.log
ERROR db down
INFO started
ERROR disk full
INFO stopped

$ head -n 1 logs/app.log
ERROR db down

$ tail -n 1 logs/app.log
INFO stopped

$ wc -l logs/app.log
4 logs/app.log

tail -f es una herramienta diaria para observar el registro de una aplicación en vivo mientras reproduces un error. Presione Ctrl+C para detenerlo.

grep busca dentro de archivos y find busca los archivos mismos:

$ grep ERROR logs/app.log
ERROR db down
ERROR disk full

$ grep -c ERROR logs/app.log
2

$ find . -name "*.log"
./logs/app.log
Opción Significado
grep -yo ignora el caso
grep-r Busca una carpeta de forma recursiva
grep -n Muestra números de línea
grep-v Muestra líneas que no coinciden
grep-c Cuenta líneas coincidentes

Tuberías y redirección

Ésta es la idea que hace que la línea de comando sea tan poderosa. Cada herramienta hace un pequeño trabajo y tú las conectas:

Símbolo que hace
| Envía la salida de un comando al siguiente
> Escribe la salida en un archivo, reemplazando su contenido
>> Agrega salida a un archivo
2> Escribe mensajes de error en un archivo.
$ echo "hello" > greeting.txt
$ echo "world" >> greeting.txt
$ cat greeting.txt
hello
world

Tenga cuidado con un solo >, porque sobrescribe silenciosamente lo que ya estaba en el archivo.

Un ejemplo real: resumir un log

¿Cuántas líneas de cada tipo hay en nuestro registro? La combinación de cuatro comandos simples da la respuesta:

$ cut -d' ' -f1 logs/app.log | sort | uniq -c
      2 ERROR
      2 INFO

Leyendo de izquierda a derecha: cut toma la primera palabra separada por espacios en cada línea, sort agrupa palabras idénticas y uniq -c cuenta cada grupo. El paso de clasificación es importante, porque uniq solo colapsa los duplicados vecinos. Agregue | sort -nr al final para enumerar primero los más comunes.

Este tipo de frases ingeniosas son de gran ayuda cuando se investigan fallas. Puede indicarle rápidamente si un error ocurrió dos o dos mil veces, lo cual es un detalle útil para incluir en un informe de error.

Permisos de archivos

Ejecute ls -l y verá algo como esto:

-rwxr-xr-- 1 asha devs 512 Nov 1 10:00 deploy.sh

Después del primer carácter, que muestra el tipo de archivo, hay tres grupos de tres caracteres, para el propietario, el grupo y todos los demás. Cada uno puede tener r (lectura), w (escritura) y x (ejecutar).

Comando que hace
chmod +x implementar.sh Hace que un script sea ejecutable
archivo chmod 644 El propietario puede leer y escribir, otros pueden leer.
chmod 755 script.sh El propietario tiene acceso completo, otros pueden leer y ejecutar
archivo chown asha cambia de dueño
comando sudo Ejecuta un comando como administrador.

Los números suman: leer es 4, escribir es 2 y ejecutar es 1. Entonces 7 significa los tres y 5 significa leer y ejecutar. Evite chmod 777, que otorga a todos acceso completo, como solución rápida para errores de permisos. En su lugar, encuentre la causa real. Y utilice sudo con cuidado, ya que elimina los controles de seguridad que normalmente protegen el sistema.

Procesos e información del sistema.

Comando que hace
ps auxiliar Listas de procesos en ejecución
top o htop Muestra una vista en vivo de la CPU y la memoria.
matar 1234 Pide que se detenga el proceso 1234
df-h Muestra espacio libre en disco
carpeta du -sh Muestra el tamaño de una carpeta.
libre -h Muestra el uso de la memoria
estado del sistema nginx Muestra el estado de un servicio.
diarioctl -u nginx Muestra los registros de un servicio.

Para instalar software, utilice el administrador de paquetes de su distribución, como sudo apt install curl en Debian y Ubuntu, o sudo dnf install curl en Fedora y RHEL.

Archivos y trabajo remoto

$ tar -czf logs.tar.gz logs
$ tar -tzf logs.tar.gz
logs/
logs/app.log

En tar, c significa crear, z significa gzip, f nombra el archivo y t enumera el contenido. Para extraer un archivo, utilice tar -xzf logs.tar.gz. Para trabajar con otras máquinas, estas tres son las que necesitas:

Comando que hace
usuario ssh@servidor Abre una terminal remota
archivo scp usuario@servidor:/ruta/ Copia un archivo a través de SSH
rizo -yo https://ejemplo.com Muestra los encabezados de respuesta de una URL

Estos mismos comandos se utilizan dentro de Dockerfiles y canalizaciones de CI/CD, por lo que este conocimiento vale la pena en el trabajo de DevOps.

Errores comunes

  • Usando rm -rf sin mirar. Primero revisa tu carpeta con pwd y ten cuidado con los espacios en las rutas.
  • Sobrescribir con >. Utilice >> cuando desee agregar.
  • Ejecutando todo con sudo. Úselo solo cuando sea necesario.
  • Pegar comandos que no entiendes. Léelos primero, especialmente cualquier cosa que canalice una descarga a un shell.
  • Olvidar comillas. Un nombre de archivo con espacios, como "my file.txt", los necesita.

Conclusión

No aprendes el terminal leyendo sobre él. Abra un shell, cree una carpeta de práctica y ejecute los comandos de cada sección. Luego intente responder una pregunta real usando una canalización, como qué error aparece con más frecuencia en un registro. Comience con la navegación y los archivos esta semana, agregue grep y canalizaciones a continuación, y el resto seguirá según lo necesite.

Preguntas frecuentes

¿Cuáles son los comandos más básicos de Linux?

Comience con pwd, ls, cd, mkdir, cp, mv, rm, cat y grep. Estos cubren el movimiento, la administración de archivos y la búsqueda, lo que constituye la mayor parte del trabajo diario en la terminal.

¿Cómo puedo practicar los comandos de Linux en Windows?

Utilice el Subsistema de Windows para Linux para un entorno completo o Git Bash para lo básico. Ejecutar un contenedor de Linux con Docker también funciona bien.

¿Cuál es la diferencia entre > y >> en Linux?

Un solo > reemplaza el contenido del archivo con la salida. Un doble >> agrega la salida al final del archivo y mantiene lo que ya está allí.

¿Puedo deshacer el comando rm?

Generalmente no, porque rm no utiliza una papelera de reciclaje. Las herramientas de recuperación a veces ayudan, pero no son confiables, así que primero guarde copias de seguridad y verifíquelas cuidadosamente.

¿Qué significa sudo?

sudo ejecuta un único comando con derechos de administrador. Es necesario para tareas como la instalación de software y debe usarse con cuidado.

sigue aprendiendo

Trabajar con Stack Quora

¿Necesitas ayuda con pruebas, WordPress o SEO?

Ayudamos a los equipos a enviar mejor software y hacer crecer sus sitios. Cuéntenos en qué está trabajando y le sugeriremos un siguiente paso claro.

Sigue leyendo

Más guías sobre testing, IA y desarrollo moderno

¿Te gustó este artículo? Elige un tema y salta directo a nuestros tutoriales más recientes.

Inteligencia artificial

Explicación de las alucinaciones de la IA: por qué los modelos de lenguaje inventan cosas y cómo reducirlas

Se explicaron las alucinaciones de la IA: qué son, por qué los modelos de lenguaje las producen, tipos comunes, cómo reducirlas con conexión a tierr…

Leer artículo →
DevOps

Explicación de las variables de entorno: archivos .env, secretos y configuración bien hechos

Variables de entorno explicadas con ejemplos de Python que ejecutamos: leerlas y configurarlas, por qué cada valor es una cadena, archivos .env, her…

Leer artículo →
Desarrollo de software

Explicación de la limitación de velocidad de API: algoritmos, encabezados y manejo de errores 429

La limitación de la tasa de API se explica con una simulación que ejecutamos: depósito de tokens, ventana fija, ventana deslizante, 429 respuestas, …

Leer artículo →
Automatización de pruebas

Burlarse en Python: unittest.mock, patch y los errores que hacen que las pruebas mientan

Burlarse en Python con unittest.mock, probado: Mock y return_value, side_effect, parches donde se usa un nombre, especificación y autospec, fechas d…

Leer artículo →
Pruebas de software

Explicación de la cobertura del código: cobertura de línea versus sucursal y lo que realmente significa 100%

Cobertura del código explicada con una ejecución real de cobertura.py: cobertura de línea, rama y condición, lectura de un informe, por qué una cobe…

Leer artículo →
Bases de datos y SQL

DELETE vs TRUNCATE vs DROP en SQL: diferencias, reversión y cuándo usar cada uno

DELETE vs TRUNCATE vs DROP explicado con SQL probado: qué elimina cada uno, reversión, activadores, restablecimiento de identidad, velocidad y en qu…

Leer artículo →
Bases de datos y SQL

Vistas SQL explicadas: cree, use y evite los errores, con ejemplos

Vistas SQL explicadas con consultas que ejecutamos: creación de una vista, resultados en vivo, ocultación de columnas, rendimiento, vistas actualiza…

Leer artículo →
Desarrollo de software

Interfaz TypeScript versus tipo: diferencias reales, probadas con el compilador

Interfaz TypeScript versus tipo, verificado con el compilador real: qué pueden hacer ambos, qué puede hacer solo uno, fusión de declaraciones, exten…

Leer artículo →
Desarrollo de software

Python *args y **kwargs explicados: funciones flexibles con ejemplos claros

Python *args y **kwargs explicados con el código que ejecutamos: empaquetado y desempaquetado, orden de parámetros, argumentos solo de palabras clav…

Leer artículo →
Desarrollo de software

Funciones Lambda de Python: sintaxis, usos reales y cuándo no utilizarlas

Funciones lambda de Python explicadas con el código que ejecutamos: sintaxis, clasificación con clave, mapa y filtro, cierres, trampa de enlace tard…

Leer artículo →
Inteligencia artificial

¿Qué son los agentes de IA? Cómo funcionan, con un bucle de agente simple que puedes ejecutar

¿Qué son los agentes de IA? Una guía sencilla sobre el bucle del agente, las herramientas, la memoria y las barreras de seguridad, con un pequeño bu…

Leer artículo →
DevOps

Monitoreo versus observabilidad: la verdadera diferencia, con registros, métricas y seguimientos

Explicación del monitoreo versus observabilidad: fallas conocidas y desconocidas, registros, métricas y seguimientos, un recorrido por incidentes de…

Leer artículo →
DevOps

Docker Volumes versus Bind Mounts: persistir los datos del contenedor de la manera correcta

Se explican los volúmenes de Docker frente a los montajes de enlace: por qué desaparecen los datos del contenedor, volúmenes con nombre, montajes de…

Leer artículo →
Automatización de pruebas

TDD vs BDD: diferencias clave, una función creada en ambos sentidos y cuándo usar cada una

TDD vs BDD explicado con una característica de descuento construida en ambos sentidos: refactor rojo-verde con el código que ejecutamos, escenarios …

Leer artículo →
Pruebas de software

Pruebas de Aceptación de Usuario (UAT): Proceso, Lista de Verificación y Ejemplos Reales

Explicación de las pruebas de aceptación del usuario: quién las ejecuta, en qué se diferencia del control de calidad, un proceso de siete pasos, una…

Leer artículo →
Bases de datos y SQL

Valores NULL de SQL explicados: IS NULL, COALESCE, NULLIF y las trampas que se deben evitar

Los valores NULL de SQL se explican con las consultas que ejecutamos: lógica de tres valores, IS NULL, COALESCE, NULLIF, cómo los agregados, las uni…

Leer artículo →
Bases de datos y SQL

Declaración SQL CASE WHEN: sintaxis, ejemplos reales y errores comunes

CASO SQL CUANDO se explicó con las consultas que ejecutamos: formularios simples y buscados, orden de condiciones, pivotes con SUMA, trucos COUNT, c…

Leer artículo →
Desarrollo de software

¿Qué es JWT? Tokens web JSON explicados con un ejemplo práctico

¿Qué es JWT? JSON Web Tokens explicó: las tres partes, un token creado y manipulado en el código que ejecutamos, JWT vs sesiones, almacenamiento, to…

Leer artículo →
Desarrollo de software

Explicación del bucle de eventos de JavaScript: pila de llamadas, microtareas y temporizadores con ejemplos

El bucle de eventos de JavaScript explicado con el código que ejecutamos: pila de llamadas, colas de tareas y microtareas, por qué setTimeout 0 no e…

Leer artículo →
Desarrollo de software

Explicación de los generadores y el rendimiento de Python: ahorre memoria con ejemplos reales

Los generadores de Python y el rendimiento se explican con el código que ejecutamos: cómo se pausan y reanudan, midieron el ahorro de memoria, canal…

Leer artículo →
Inteligencia artificial

¿Qué son las incrustaciones? Los vectores y la similitud del coseno se explican de forma sencilla

¿Qué son las incrustaciones? Una guía en lenguaje sencillo sobre vectores, similitud de cosenos y búsqueda semántica, con un pequeño ejemplo que eje…

Leer artículo →
DevOps

Implementación azul-verde versus implementación canaria: diferencias, compensaciones y cómo elegir

Explicación de la implementación azul-verde versus canaria: cómo funciona cada uno, costo, riesgo y reversión, agrupación estable de usuarios que pr…

Leer artículo →
Automatización de pruebas

Pruebas inestables: qué las causa y cómo solucionarlas para siempre

Pruebas inestables explicadas con demostraciones que realizamos: las causas principales, cómo confirmar y diagnosticar una, correcciones adecuadas p…

Leer artículo →
Pruebas de software

Pruebas de carga frente a pruebas de estrés: diferencias, métricas y ejemplos de k6

Explicación de las pruebas de carga frente a las pruebas de estrés: qué prueba cada una, pruebas de picos y de absorción, las métricas que importan,…

Leer artículo →
Pruebas de software

Caso de prueba frente a escenario de prueba: diferencias clave, ejemplos y cuándo utilizar cada uno

Caso de prueba versus escenario de prueba explicado: definiciones claras, una tabla en paralelo, una función de restablecimiento de contraseña tomad…

Leer artículo →
Bases de datos y SQL

Optimización de consultas SQL: lea planes de ejecución y corrija consultas lentas, con tiempos

Optimización de consultas SQL probada en un millón de filas: lea planes de ejecución, agregue los índices correctos, corrija filtros no sargables, u…

Leer artículo →
Bases de datos y SQL

SQL UNION vs UNION ALL: diferencias, ejemplos y rendimiento probado

SQL UNION vs UNION ALL explicado con consultas que ejecutamos: duplicados, las reglas que siguen ambos, un error de datos real, rendimiento medido, …

Leer artículo →
Desarrollo de software

Tutorial de JavaScript Fetch API: GET, POST, manejo de errores y tiempos de espera

Un tutorial de JavaScript Fetch API probado en un servidor local: GET y POST, por qué 404 no arroja, un asistente reutilizable, cadenas de consulta,…

Leer artículo →
Desarrollo de software

Manejo de archivos Python: lectura, escritura, CSV, JSON y pathlib con ejemplos

El manejo de archivos Python se explica con el código que ejecutamos: modos abiertos, lectura de archivos grandes, CSV, JSON, pathlib, archivos bina…

Leer artículo →
Desarrollo de software

Clases y objetos de Python: tutorial de programación orientada a objetos con ejemplos reales

Clases y objetos de Python explicados con el código que ejecutamos: __init__, métodos, atributos de clase versus instancia, herencia, propiedades, m…

Leer artículo →
Inteligencia artificial

¿Qué es un modelo de lenguaje grande? Cómo funcionan los LLM, explicados sin exageraciones

¿Qué es un modelo de lenguaje grande? Los LLM explicados en lenguaje sencillo: tokens, incrustaciones, atención, entrenamiento, ventanas de temperat…

Leer artículo →
DevOps

Comandos de Linux para principiantes: la guía esencial de terminal con ejemplos

Comandos de Linux para principiantes, agrupados por tarea: navegación, archivos, visualización de registros, grep, canalizaciones, permisos, proceso…

Leer artículo →
Automatización de pruebas

Selenium vs Playwright: diferencias clave, comparación de códigos y cuál elegir

Comparación de Selenium vs Playwright: arquitectura, espera, soporte de navegador e idioma, depuración, la misma prueba en ambas herramientas, conse…

Leer artículo →
Pruebas de software

Partición de equivalencia: técnica de diseño de pruebas explicada con ejemplos resueltos

Explicación de la partición de equivalencia: cómo encontrar particiones válidas e inválidas, ejemplos prácticos para edades, contraseñas y cupones, …

Leer artículo →
Pruebas de software

Severidad vs Prioridad en Pruebas de Software: Diferencias, Matriz y Ejemplos Reales

Explicación de gravedad versus prioridad en las pruebas de software: definiciones claras, una matriz de cuatro vías con ejemplos, escalas de niveles…

Leer artículo →
Bases de datos y SQL

Tutorial de subconsultas SQL: tipos, subconsultas correlacionadas y EXISTENCIAS con ejemplos

Un tutorial de subconsultas SQL con consultas que ejecutamos: subconsultas escalares, IN, FROM y SELECT, subconsultas correlacionadas, EXISTS, la tr…

Leer artículo →
Bases de datos y SQL

Transacciones SQL y ACID explicados: COMMIT, ROLLBACK y niveles de aislamiento

Transacciones SQL y ACID explicadas con una transferencia bancaria que ejecutamos: COMMIT, ROLLBACK, puntos de guardado, bloqueos, niveles de aislam…

Leer artículo →
Desarrollo de software

Git merge vs rebase: diferencias, ejemplos y cuándo usar cada uno

Git merge vs rebase explicado con salida real del log, una tabla comparativa, la regla de oro del rebase y un flujo de trabajo seguro para equipos.

Leer artículo →
Desarrollo de software

List comprehension en Python: sintaxis, ejemplos y cuándo evitarla

List comprehension en Python explicada: sintaxis, filtros, if-else, bucles anidados, tiempos medidos y cuándo es mejor un bucle for normal.

Leer artículo →