Atajos y Productividad

Practica estos atajos que te ayudarán en Bandit:
Tab- autocompletar nombres de archivos (muy útil cuando no sabes qué hay)Ctrl + C- cancelar un comando (si algo se queda pegado)↑- repetir comandos anterioresCtrl + L- limpiar pantalla
Usa estos atajos mientras resuelves los niveles de Bandit.
Dominar estos atajos te hará mucho más eficiente. Apréndelos ahora y practícalos en las siguientes secciones.
Importante: Practica estos atajos mientras avanzas en el módulo. Cada vez que escribas un comando largo, piensa si hay un atajo que puedas usar.
Atajos de Teclado Esenciales
Navegación en la Línea
| Atajo | Acción |
|---|---|
Ctrl + A |
Ir al inicio de la línea |
Ctrl + E |
Ir al final de la línea |
Ctrl + ← o Alt + B |
Retroceder una palabra |
Ctrl + → o Alt + F |
Avanzar una palabra |
- Escribe (sin ejecutar):
echo "esta es una linea muy larga de ejemplo" - Presiona
Ctrl + A- cursor al inicio - Presiona
Ctrl + E- cursor al final - Presiona
Ctrl + ←varias veces - salta palabras - Presiona
Enterpara ejecutar
Edición de Texto
| Atajo | Acción |
|---|---|
Ctrl + U |
Borrar desde cursor hasta el inicio |
Ctrl + K |
Borrar desde cursor hasta el final |
Ctrl + W |
Borrar la palabra anterior |
Alt + D |
Borrar la palabra siguiente |
Ctrl + Y |
Pegar lo último borrado (yank) |
Ctrl + _ |
Deshacer |
- Escribe:
echo "texto que voy a borrar parcialmente" - Presiona
Ctrl + Apara ir al inicio - Presiona
Ctrl + K- borra todo - Presiona
Ctrl + Y- recupera el texto - Presiona
Ctrl + W- borra última palabra
Control de Procesos
| Atajo | Acción |
|---|---|
Ctrl + C |
Cancelar comando actual |
Ctrl + Z |
Suspender comando (background) |
Ctrl + D |
Salir / EOF (cierra terminal si está vacía) |
Ctrl + L |
Limpiar pantalla (como clear) |
Búsqueda en Historial
| Atajo | Acción |
|---|---|
↑ / ↓ |
Navegar historial |
Ctrl + R |
Buscar en historial (reverse search) |
Ctrl + G |
Salir de búsqueda |
!! |
Repetir último comando |
!$ |
Último argumento del comando anterior |

Tab Completion (Autocompletado)
El Tab es tu mejor amigo. Presiona Tab para:
Autocompletar nombres de archivos
cd Doc[Tab]
# Se completa a: cd Documents/
ls Down[Tab]
# Se completa a: ls Downloads/
Ver opciones disponibles
cd D[Tab][Tab]
# Muestra: Desktop/ Documents/ Downloads/
Autocompletar comandos
sys[Tab][Tab]
# Muestra todos los comandos que empiezan con "sys"
- Escribe
cd /uy presionaTab→ se completa a/usr/ - Escribe
ls /ey presionaTab→ se completa a/etc/ - Escribe
cd ~y presionaTabdos veces → muestra carpetas en tu home

Historial de Comandos
Navegar con flechas
↑ # Comando anterior
↓ # Comando siguiente
Buscar con Ctrl + R
# Presiona Ctrl + R
(reverse-i-search)`':
# Escribe parte del comando que buscas
(reverse-i-search)`git': git push origin main
# Presiona Enter para ejecutar o → para editar
Ver historial completo
history
# Muestra todos los comandos numerados
history | tail -20
# Muestra los últimos 20
Ejecutar comandos del historial
!! # Ejecuta el último comando
!42 # Ejecuta el comando #42 del historial
!git # Ejecuta el último comando que empezó con "git"
!$ # Usa el último argumento del comando anterior
Ejemplo práctico de !$
mkdir nuevo_proyecto
cd !$
# Equivale a: cd nuevo_proyecto
Expansión y Comodines
Comodines (Wildcards)
| Comodín | Significado | Ejemplo |
|---|---|---|
* |
Cualquier cosa | *.txt = todos los .txt |
? |
Un solo carácter | archivo?.txt = archivo1.txt, archivoA.txt |
[abc] |
Uno de estos caracteres | archivo[123].txt |
[a-z] |
Rango de caracteres | [a-z]*.txt |
# Listar todos los archivos .py
ls *.py
# Listar archivos que empiezan con "test"
ls test*
# Listar archivo1.txt, archivo2.txt, archivo3.txt
ls archivo[1-3].txt
Llaves (Brace Expansion)
# Crear múltiples archivos
touch archivo{1,2,3}.txt
# Crea: archivo1.txt, archivo2.txt, archivo3.txt
# Crear secuencia
touch test{01..10}.py
# Crea: test01.py, test02.py, ..., test10.py
# Combinar extensiones
ls *.{py,txt,md}
# Lista archivos .py, .txt y .md
El Pipe | - Conectar Comandos
El pipe (tubo) es uno de los conceptos más poderosos de Unix. Te permite conectar la salida de un comando con la entrada de otro.
¿Qué es un Pipe?
comando1 | comando2
Significa: “toma lo que produce comando1 y pásaselo a comando2”.
graph LR
A[comando1] -->|salida| B[pipe |]
B -->|entrada| C[comando2]
C --> D[resultado]
Analogía
Piensa en una fábrica con máquinas conectadas por tubos:
- La primera máquina produce algo
- El tubo lleva ese producto a la siguiente máquina
- La segunda máquina lo procesa y produce el resultado final
Ejemplos Básicos
# Sin pipe: ls muestra archivos en pantalla
ls -la
# Con pipe: ls pasa su salida a 'head' que muestra solo las primeras 5 líneas
ls -la | head -5
# Sin pipe: cat muestra todo el archivo
cat archivo_largo.txt
# Con pipe: cat pasa el contenido a 'grep' que filtra líneas con "error"
cat archivo.log | grep "error"
Ejemplos Prácticos
# Ver los últimos 10 comandos del historial
history | tail -10
# Contar cuántos archivos hay en un directorio
ls | wc -l
# Buscar un proceso específico
ps aux | grep python
# Ver archivos ordenados por tamaño (más grande primero)
ls -la | sort -k5 -n -r | head -10
# Buscar "TODO" en archivos y contar ocurrencias
grep -r "TODO" . | wc -l
Encadenando Múltiples Pipes
Puedes conectar muchos comandos:
# comando1 | comando2 | comando3 | comando4
# Ejemplo: encontrar las 5 palabras más frecuentes en un archivo
cat texto.txt | tr ' ' '\n' | sort | uniq -c | sort -nr | head -5
¿Qué hace cada parte?
| Paso | Comando | Qué hace |
|---|---|---|
| 1 | cat texto.txt |
Lee el archivo |
| 2 | tr ' ' '\n' |
Reemplaza espacios por saltos de línea (una palabra por línea) |
| 3 | sort |
Ordena alfabéticamente |
| 4 | uniq -c |
Cuenta repeticiones consecutivas |
| 5 | sort -nr |
Ordena por número (mayor primero) |
| 6 | head -5 |
Muestra solo los primeros 5 |
Comandos Útiles para Usar con Pipes
| Comando | Qué hace | Ejemplo |
|---|---|---|
head -n X |
Primeras X líneas | cat log | head -20 |
tail -n X |
Últimas X líneas | history | tail -10 |
grep "texto" |
Filtra líneas que contienen “texto” | ps aux | grep python |
wc -l |
Cuenta líneas | ls | wc -l |
sort |
Ordena líneas | cat nombres.txt | sort |
uniq |
Elimina duplicados consecutivos | sort lista.txt | uniq |
cut |
Extrae columnas | cat datos.csv | cut -d',' -f1 |
less |
Ver con scroll | cat archivo_largo | less |
Ejecuta estos comandos y entiende qué hace cada pipe:
# 1. ¿Cuántos archivos/carpetas hay en /etc?
ls /etc | wc -l
# 2. ¿Cuáles son los últimos 5 comandos que ejecutaste?
history | tail -5
# 3. ¿Hay algún proceso de "bash" corriendo?
ps aux | grep bash
# 4. Muestra los archivos de tu home ordenados por tamaño
ls -la ~ | sort -k5 -n
# 5. Cuenta cuántas líneas tienen la palabra "error" en /var/log/syslog
cat /var/log/syslog | grep -i error | wc -l
Múltiples Comandos (sin pipe)
A diferencia del pipe que conecta salida→entrada, estos operadores ejecutan comandos en secuencia:
Ejecutar en secuencia
# ; ejecuta todos, sin importar si fallan
comando1 ; comando2 ; comando3
# && ejecuta el siguiente SOLO si el anterior tuvo éxito
comando1 && comando2 && comando3
# || ejecuta el siguiente SOLO si el anterior falló
comando1 || comando2
Diferencia entre ;, && y |
| Operador | Nombre | Qué hace |
|---|---|---|
; |
Secuencia | Ejecuta uno después del otro |
&& |
AND | Ejecuta el siguiente si el anterior funcionó |
|| |
OR | Ejecuta el siguiente si el anterior falló |
| |
Pipe | Conecta salida de uno con entrada de otro |
# ; - Ejecuta ambos sin importar qué pase
ls archivo_que_no_existe ; echo "esto se imprime igual"
# && - Solo ejecuta echo si ls funciona
ls archivo_que_no_existe && echo "esto NO se imprime"
# | - Pasa la salida de ls a grep
ls -la | grep ".txt" # Filtra, no ejecuta en secuencia
Ejemplos de && y ||
# Actualizar sistema (solo upgrade si update funciona)
sudo apt update && sudo apt upgrade
# Crear directorio e ir a él
mkdir proyecto && cd proyecto
# Intentar algo, si falla mostrar mensaje
comando_que_falla || echo "Falló el comando"
# Combinado: intenta, si falla avisa, si no continúa
make && echo "Compilación exitosa" || echo "Error al compilar"
Tips de Productividad
1. Usa alias para comandos frecuentes
# Ver alias existentes
alias
# Crear un alias (temporal)
alias ll='ls -la'
alias ..='cd ..'
alias ...='cd ../..'
Para hacer alias permanentes, agrégalos a ~/.bashrc o ~/.zshrc.
2. Repite comandos con sudo
apt update
# Error: Permission denied
sudo !!
# Ejecuta: sudo apt update
3. Corrige errores rápido
# Escribiste mal
sl # comando no encontrado
# Corrige y ejecuta
^sl^ls
# Ejecuta: ls
4. Usa variables para paths largos
# Guarda un path largo
PROYECTO="/home/usuario/Documents/trabajo/proyecto_importante"
# Úsalo
cd $PROYECTO
ls $PROYECTO
Resumen de Atajos Clave
Los 10 más importantes
| # | Atajo | Acción |
|---|---|---|
| 1 | Tab |
Autocompletar |
| 2 | Ctrl + C |
Cancelar |
| 3 | Ctrl + L |
Limpiar pantalla |
| 4 | Ctrl + R |
Buscar en historial |
| 5 | ↑ / ↓ |
Navegar historial |
| 6 | Ctrl + A |
Inicio de línea |
| 7 | Ctrl + E |
Final de línea |
| 8 | Ctrl + U |
Borrar hasta inicio |
| 9 | Ctrl + W |
Borrar palabra |
| 10 | !! |
Repetir último comando |
Realiza estas tareas usando atajos:
- Escribe
echo "hola mundo"y ejecútalo - Presiona
↑para recuperarlo, cambia “hola” por “adios” usandoCtrl + AyCtrl + → - Ejecuta
history | tail -5para ver tus últimos comandos - Usa
Ctrl + Ry busca “echo” - Crea un alias:
alias c='clear'y pruébalo
Ejercicios de Práctica
Practica estos atajos hasta que sean automáticos:
- Escribe:
echo "Este es un comando muy largo que quiero editar rápidamente" - Ve al inicio con
Ctrl + A - Ve al final con
Ctrl + E - Borra todo con
Ctrl + U - Recupera con
Ctrl + Y - Borra la última palabra con
Ctrl + W
Repite 5 veces hasta que no tengas que pensar.
-
Ejecuta estos comandos:
echo "primero" ls -la echo "segundo" pwd echo "tercero" -
Usa
Ctrl + Ry busca “echo” -
Presiona
Ctrl + Rotra vez para ir al siguiente resultado -
Presiona
→para editar el comando encontrado -
Ejecuta
history | grep echopara ver todos los echo
-
Crea archivos de prueba:
mkdir ~/practica_comodines && cd ~/practica_comodines touch archivo{1..5}.txt documento{A,B,C}.md imagen{01..03}.png -
Practica comodines:
ls *.txt # Solo .txt ls archivo?.txt # archivo + 1 carácter + .txt ls documento[AB].md # documentoA o documentoB ls imagen0[1-2].png # imagen01 o imagen02 ls *.{txt,md} # .txt y .md -
Limpia:
cd ~ && rm -r practica_comodines
Crea estos alias y pruébalos:
# Alias temporales (se pierden al cerrar terminal)
alias ll='ls -lah'
alias ..='cd ..'
alias ...='cd ../..'
alias cls='clear'
alias myip='curl -s ifconfig.me'
Bonus: Agrega los que más uses a ~/.bashrc para hacerlos permanentes:
echo "alias ll='ls -lah'" >> ~/.bashrc
source ~/.bashrc
Prompts para LLM
Soy estudiante de ciencia de datos y uso mucho la terminal. Dame 10 alias útiles para:
- Navegar más rápido
- Trabajar con Git
- Activar entornos virtuales de Python
- Ver logs y procesos
Explícame cómo agregarlos permanentemente a mi .bashrc
Estoy en [macOS/Linux/WSL2] y el atajo [Ctrl + algo] no funciona.
¿Por qué puede ser? ¿Hay un equivalente o configuración que deba cambiar?
Quiero personalizar cómo se ve mi prompt de bash/zsh. Actualmente se ve así:
usuario@computadora:~$
Quiero que muestre:
- El directorio actual de forma abreviada
- La rama de Git si estoy en un repositorio
- Colores para distinguir cada parte
Dame el código para agregar a mi .bashrc
Recuerda: En las siguientes secciones, cada vez que veas un recordatorio de atajos, practícalo. La única forma de aprenderlos es usándolos.