Conceptos básicos de la línea de comandos
Para los usuarios nuevos en Linux, la línea de comando puede parecer desconocida o incluso intimidante. Pero, en realidad, la línea de comandos es la herramienta más poderosa y flexible en un sistema Linux. Dominar las operaciones básicas de la línea de comandos no sólo hace que la administración del sistema sea más eficiente, sino que también le ayuda a comprender cómo funciona Linux internamente.
Este artículo lo llevará desde cero hasta comprender los conceptos de terminales y shells, dominar los comandos más utilizados y aprender conocimientos básicos como rutas de archivos, canalizaciones y permisos.
¿Qué son la terminal y el shell?
terminales
Una terminal es una aplicación que proporciona una ventana donde puedes interactuar con la computadora escribiendo comandos de texto. En el entorno de escritorio de Ubuntu, la terminal es la ventana con un fondo negro (u oscuro) que ves.
La aplicación de terminal predeterminada en Ubuntu 26.04 es Ptyxis. Reemplaza la Terminal GNOME tradicional y proporciona una mejor integración de contenedores. Aún puedes instalar el clásico Terminal GNOME si es necesario.
Si desea probar una terminal más moderna acelerada por GPU, Ghostty está disponible como paquete de vista previa en el repositorio del universo 26.04:
sudo apt install ghosttyGhostty no es el terminal predeterminado. En dispositivos sin compatibilidad con OpenGL 4.3, es posible que necesite un respaldo de procesamiento de software.
Concha
Un shell es el programa detrás de la terminal que realmente procesa los comandos. Cuando escribe comandos en la terminal, el shell los analiza y ejecuta. El shell predeterminado de Ubuntu es Bash (Bourne Again Shell).
Los caparazones comunes incluyen:
| Concha | Descripción |
|---|---|
| golpe | Shell predeterminado de Ubuntu, rico en funciones y buena compatibilidad |
| Zsh | Un shell más moderno con mejores temas y autocompletado |
| pescado | Un shell fácil de usar con resaltado de sintaxis listo para usar |
| guión | Un shell liviano utilizado por Ubuntu para scripts del sistema |
Puede verificar su shell actual con el siguiente comando:
echo $SHELLFormas de abrir la terminal
En Ubuntu 26.04, hay varias formas de abrir la terminal:
Método 1: método abreviado de teclado
La forma más rápida es presionar Ctrl + Alt + T, lo que abre directamente una ventana de terminal.
Método 2: desde el menú de la aplicación
- Haga clic en el botón Actividades en la esquina superior izquierda (o presione la tecla Súper)
- Escribe “Terminal” en la barra de búsqueda
- Haga clic en el icono de la terminal para abrirlo.
Método 3: desde el Administrador de archivos
En el administrador de archivos de GNOME (Nautilus), puede hacer clic derecho en un área vacía y seleccionar “Abrir en Terminal”. El terminal navegará automáticamente al directorio actual.
Método 4: Terminal virtual TTY
Presione Ctrl + Alt + F3 (F3 a F6) para cambiar a una terminal virtual de solo texto. Presione Ctrl + Alt + F2 para volver a la interfaz gráfica. Esto es especialmente útil cuando la interfaz gráfica tiene problemas.
Comandos básicos
pwd - Imprimir directorio de trabajo
pwd (Imprimir directorio de trabajo) muestra la ruta de su directorio actual:
pwd
# Example output: /home/usernamels - Listar el contenido del directorio
ls (Lista) es uno de los comandos más utilizados para ver archivos y carpetas en un directorio:
# List current directory contents
ls
# Show detailed information (permissions, size, modification time, etc.)
ls -l
# Show hidden files (files starting with .)
ls -a
# Combined usage: detailed info + hidden files + human-readable file sizes
ls -lah
# List contents of a specific directory
ls /etc
# Sort by modification time (newest first)
ls -ltcd - Cambiar directorio
cd (Cambiar directorio) se utiliza para cambiar entre directorios:
# Enter a specific directory
cd /var/log
# Go up one level
cd ..
# Return to the home directory
cd ~
# Or simply type
cd
# Return to the previous directory
cd -
# Enter a multi-level directory
cd /usr/share/docmkdir - Crear directorios
# Create a single directory
mkdir myproject
# Create nested directories (-p auto-creates parent directories)
mkdir -p projects/web/frontend
# Create multiple directories at once
mkdir dir1 dir2 dir3cp - Copiar archivos y directorios
# Copy a file
cp file.txt backup.txt
# Copy a file to a specific directory
cp file.txt /home/username/Documents/
# Copy an entire directory (requires -r for recursive copy)
cp -r myproject myproject-backup
# Copy while preserving file attributes (permissions, timestamps, etc.)
cp -a source/ destination/mv - Mover o cambiar nombre
# Rename a file
mv oldname.txt newname.txt
# Move a file to another directory
mv file.txt /home/username/Documents/
# Move and rename
mv file.txt /home/username/Documents/newname.txt
# Move an entire directory
mv myproject /opt/rm - Eliminar archivos y directorios
# Remove a file
rm file.txt
# Remove a directory and its contents (recursive deletion)
rm -r myproject
# Force removal (no confirmation prompt)
rm -f file.txt
# Confirm before each deletion
rm -i *.txtLos archivos eliminados con rm no van a la papelera: ¡se eliminan permanentemente de inmediato! En particular, un comando como rm -rf / destruirá todo su sistema. Antes de usar rm, asegúrese siempre de eliminar los archivos correctos. Los principiantes primero deben usar ls para verificar qué archivos coinciden y luego eliminarlos solo después de confirmar.
cat - Ver contenido del archivo
# View the complete contents of a file
cat file.txt
# Display line numbers
cat -n file.txt
# Concatenate multiple files
cat file1.txt file2.txt
# Create a new file (Ctrl+D to finish input)
cat > newfile.txtmenos - Visualización paginada
Cuando el contenido del archivo es muy largo, less es más adecuado que cat:
less /var/log/syslogOperaciones comunes en less:
- Espacio: Página siguiente
- b: página anterior
- g: salta al principio del archivo
- G: Saltar al final del archivo
- /palabra clave: Buscar
- n: Siguiente resultado de búsqueda
- q: Salir
head and tail - Ver el principio y el final de los archivos
# View the first 10 lines (default)
head file.txt
# View the first 20 lines
head -n 20 file.txt
# View the last 10 lines
tail file.txt
# View the last 50 lines
tail -n 50 file.txt
# Follow file changes in real time (commonly used for viewing logs)
tail -f /var/log/syslogRutas de archivos
Comprender las rutas de los archivos es fundamental para utilizar la línea de comandos. El sistema de archivos de Linux comienza desde / (el directorio raíz) y todos los archivos y directorios están organizados en esta estructura de árbol.
Rutas absolutas vs relativas
Rutas absolutas comienzan desde el directorio raíz / y proporcionan la ubicación completa de un archivo:
# Absolute path examples
/home/username/Documents/file.txt
/etc/nginx/nginx.conf
/var/log/syslogLas rutas relativas se calculan a partir del directorio actual:
# Assuming you are in /home/username
# The following two are equivalent:
cat /home/username/Documents/file.txt # Absolute path
cat Documents/file.txt # Relative pathSímbolos de ruta especiales
| Símbolo | Significado | Ejemplo |
|---|---|---|
/ | directorio raíz | cd / |
~ | Directorio de inicio del usuario actual | cd ~ es lo mismo que cd /home/username |
. | directorio actual | ./script.sh ejecuta un script en el directorio actual |
.. | Directorio principal | cd ../.. sube dos niveles |
- | Directorio anterior (sólo para cd) | cd - |
# Practical examples
# Return to the home directory from anywhere
cd ~
# View the contents of the parent directory
ls ..
# Run a script in the current directory
./my-script.sh
# Copy a file from two levels up to the current directory
cp ../../config.txt .Tuberías y redirección
Las canalizaciones y la redirección son características extremadamente poderosas de la línea de comando. Le permiten combinar múltiples comandos simples para realizar tareas complejas.
Tuberías (|)
Una tubería pasa la salida de un comando como entrada a otro comando:
# View all processes and search for lines containing "nginx"
ps aux | grep nginx
# List directory contents and display them page by page
ls -la /etc | less
# Count the number of files in the current directory
ls | wc -l
# View disk usage, sorted by size
du -sh * | sort -h
# Multi-level pipe: find errors in logs, deduplicate, and sort
cat /var/log/syslog | grep "error" | sort | uniq -c | sort -rnRedirección de salida (> y >>)
# Write command output to a file (overwrites existing content)
echo "Hello, Ubuntu!" > hello.txt
# Append command output to the end of a file
echo "Another line" >> hello.txt
# Save a command listing to a file
ls -la > filelist.txt
# Redirect error output to a file
command 2> errors.log
# Redirect both standard output and error output
command > output.log 2>&1
# Or the shorter version
command &> output.logRedirección de entrada <
# Read input from a file
wc -l < file.txt
# Common usage: import an SQL file into a database
mysql -u root -p database_name < backup.sqlConceptos básicos de permisos
Linux es un sistema multiusuario y la gestión de permisos garantiza la seguridad del sistema.
sudo - Ejecutar como administrador
sudo (Superusuario Do) permite a los usuarios normales ejecutar comandos con privilegios de administrador (root):
# Install software
sudo apt install vim
# Edit a system configuration file
sudo nano /etc/hosts
# Open a shell as root (use with caution)
sudo -i
# Check sudo privileges
sudo -lCuando utilice sudo por primera vez, le pedirá su propia contraseña de usuario (no la contraseña de root). La contraseña se recordará durante un período de tiempo.
chmod - Modificar permisos de archivos
Los permisos de archivos de Linux se dividen en tres grupos: propietario (u), grupo (g) y otros (o). Cada grupo tiene permisos de lectura (r=4), escritura (w=2) y ejecución (x=1).
# View file permissions
ls -l file.txt
# Example output: -rw-r--r-- 1 user group 1024 Jan 1 12:00 file.txt
# Add execute permission to a file
chmod +x script.sh
# Set exact permissions (owner: rwx, group: rx, others: rx)
chmod 755 script.sh
# Common permission combinations
chmod 644 file.txt # Owner read/write, others read-only
chmod 600 secret.key # Owner read/write only
chmod 777 shared.txt # Full permissions for everyone (not recommended)
# Recursively modify directory permissions
chmod -R 755 /var/www/htmlAtajos de teclado comunes
Dominar los atajos de teclado puede mejorar significativamente la eficiencia de su línea de comandos:
| Atajo | Función |
|---|---|
| Pestaña | Comandos de autocompletar, nombres de archivos, nombres de directorios |
| Pestaña Pestaña | Mostrar todas las opciones de finalización posibles |
| Ctrl+C | Interrumpir el comando actualmente en ejecución |
| Ctrl + D | Salga del shell actual (equivalente a escribir exit) |
| Ctrl+R | Búsqueda inversa a través del historial de comandos |
| Ctrl+L | Borrar la pantalla (equivalente al comando clear) |
| Ctrl + A | Mover el cursor al principio de la línea. |
| Ctrl + E | Mover el cursor al final de la línea. |
| Ctrl + W | Eliminar la palabra antes del cursor |
| Ctrl + U | Eliminar desde el cursor hasta el principio de la línea. |
| Ctrl + K | Eliminar desde el cursor hasta el final de la línea. |
| Flechas arriba/abajo | Explorar el historial de comandos |
| !! | Vuelva a ejecutar el último comando |
| !$ | Hacer referencia al último argumento del comando anterior. |
# Tab completion example
cd /etc/ng[Tab] # Auto-completes to cd /etc/nginx/
# Typical usage of !!: forgot to add sudo
apt install vim
# Permission error, then:
sudo !!
# Equivalent to sudo apt install vim
# Ctrl+R search history
# Press Ctrl+R, type "docker", and the most recent command containing "docker" will appearObtener ayuda
En Linux, hay muchas maneras de obtener ayuda:
hombre - Páginas del manual
man (Manual) es la documentación de comando más autorizada:
# View the manual for the ls command
man ls
# Search manuals (by keyword)
man -k "copy file"
# View a specific section of the manual
man 5 crontab # View the crontab file format (section 5)La bandera —help
La mayoría de los comandos admiten el indicador --help, que muestra un resumen de uso conciso:
ls --help
cp --help
systemctl --helptldr - Manual simplificado
tldr (Demasiado largo; No leído) proporciona ejemplos de comandos prácticos y concisos, perfectos para principiantes:
# Install tldr
sudo apt install tldr
# Update the database
tldr --update
# View command usage
tldr tar
tldr rsync
tldr systemctlOtros recursos de ayuda
# View a brief description of a command
whatis ls
# Find the path of a command
which python3
whereis nginx
# Check the command type (built-in, external, alias, etc.)
type cd
type lsHoja de trucos de comandos esenciales para principiantes
Aquí están los 20 comandos más utilizados para principiantes. ¡Marque esto como referencia! No es necesario que los memorice todos a la vez; simplemente búsquelos cuando sea necesario y, con el tiempo, se convertirán en algo natural.
| Comando | Propósito | Ejemplo común |
|---|---|---|
pwd | Mostrar directorio actual | pwd |
ls | Listar el contenido del directorio | ls -lah |
cd | Cambiar directorio | cd /var/log |
mkdir | Crear directorios | mkdir -p a/b/c |
cp | Copiar archivos/directorios | cp -r src/ dst/ |
mv | Mover/cambiar nombre | mv old.txt new.txt |
rm | Eliminar archivos/directorios | rm -r dirname |
cat | Ver contenido del archivo | cat file.txt |
less | Ver archivos página por página | less /var/log/syslog |
head/tail | Ver principio/final de archivos | tail -f log.txt |
grep | Buscar texto | grep "error" log.txt |
find | Buscar archivos | find / -name "*.conf" |
sudo | Ejecutar con privilegios de administrador | sudo apt update |
apt | Administrador de paquetes | sudo apt install vim |
chmod | Modificar permisos | chmod +x script.sh |
nano/vim | Editores de texto | nano file.txt |
df | Verificar el uso del disco | df -h |
top/htop | Ver procesos | htop |
systemctl | Gestionar servicios del sistema | systemctl status nginx |
history | Ver historial de comandos | history | grep ssh |
Consejos avanzados
Alias de comando
Puede crear alias cortos para comandos utilizados con frecuencia:
# Temporary alias (only valid for the current session)
alias ll='ls -lah'
alias gs='git status'
# Permanent alias (written to ~/.bashrc)
echo "alias ll='ls -lah'" >> ~/.bashrc
echo "alias update='sudo apt update && sudo apt upgrade -y'" >> ~/.bashrc
# Apply aliases immediately
source ~/.bashrcHistorial de comandos
# View command history
history
# Search command history
history | grep "apt install"
# Execute command #42 from history
!42
# Clear history
history -ccomodines
# * matches any characters
ls *.txt # All .txt files
cp *.jpg photos/ # Copy all .jpg files
# ? matches a single character
ls file?.txt # Matches file1.txt, fileA.txt, etc.
# [] matches a specified range
ls file[1-3].txt # Matches file1.txt, file2.txt, file3.txtDespués de aprender estos conceptos básicos, ya podrá manejar la mayoría de las operaciones diarias en la línea de comandos de Ubuntu. Puede continuar aprendiendo temas más avanzados, como scripts de shell, administración de sistemas, configuración de red y más. Recuerde, la práctica hace la perfección: la experiencia práctica es la mejor manera de dominar la línea de comandos.