Comandos Bash / Terminal
Comandos esenciales para navegación, archivos, búsqueda, permisos, procesos, red y archivos comprimidos
Navegación
| Comando | Opciones | Ejemplo | Salida | Descripción |
|---|---|---|---|---|
ls
|
-la, -lh, -R |
ls -la /etc |
lista de archivos | Lista el contenido del directorio; -l formato largo, -a archivos ocultos, -h tamaños legibles |
cd
|
-, ~, .. |
cd ~/projects |
cambia dir | Cambia de directorio; cd - vuelve atrás, cd ~ va al directorio personal |
pwd
|
|
pwd |
/home/user | Muestra el directorio de trabajo actual (ruta completa) |
tree
|
-L n, -a |
tree -L 2 |
vista árbol | Muestra el árbol de directorios; -L limita la profundidad (puede requerir instalación) |
find
|
-name -type -mtime |
find . -name '*.log' |
rutas de archivos | Busca archivos/directorios que coincidan con criterios |
locate
|
-i |
locate nginx.conf |
rutas de archivos | Búsqueda rápida de archivos usando índice de base de datos; ejecutar updatedb primero |
Operaciones de Archivos
| Comando | Opciones | Ejemplo | Salida | Descripción |
|---|---|---|---|---|
cp
|
-r, -i, -u |
cp -r src/ dst/ |
copia archivo | Copia archivos; -r para directorios, -i solicita confirmación antes de sobrescribir |
mv
|
-i, -n |
mv old.txt new.txt |
mueve/renombra | Mueve o renombra archivos; -i solicita confirmación antes de sobrescribir |
rm
|
-r, -f, -i |
rm -rf dist/ |
eliminado | Elimina archivos/directorios; -r recursivo, -f forzar — usar con cuidado |
mkdir
|
-p |
mkdir -p a/b/c |
nuevo dir | Crea directorio; -p crea directorios padres según sea necesario |
touch
|
|
touch index.html |
archivo vacío | Crea un archivo vacío o actualiza la marca de tiempo del archivo |
ln
|
-s |
ln -s /etc/nginx nginx |
symlink | Crea enlace duro; -s para enlace simbólico |
Ver Archivos
| Comando | Opciones | Ejemplo | Salida | Descripción |
|---|---|---|---|---|
cat
|
-n, -A |
cat -n file.txt |
contenido del archivo | Muestra archivo; -n agrega números de línea, -A muestra caracteres no imprimibles |
head
|
-n N |
head -n 20 log.txt |
primeras N líneas | Muestra las primeras líneas del archivo (10 por defecto) |
tail
|
-n N, -f |
tail -f app.log |
últimas N líneas | Muestra las últimas líneas; -f sigue el contenido nuevo en tiempo real |
less
|
/search, q |
less large.log |
vista paginada | Navega por el archivo en páginas; / para buscar, q para salir, espacio para avanzar |
wc
|
-l, -w, -c |
wc -l file.txt |
conteo | Cuenta palabras; -l líneas, -w palabras, -c bytes/caracteres |
Búsqueda y Texto
| Comando | Opciones | Ejemplo | Salida | Descripción |
|---|---|---|---|---|
grep
|
-r -i -n -v -E |
grep -rn 'error' logs/ |
líneas coincidentes | Busca patrones de texto; -r recursivo, -i sin distinción de mayúsculas, -n números de línea |
grep -v
|
|
grep -v 'debug' app.log |
no coincidentes | Inversión de coincidencia — muestra líneas que NO contienen el patrón |
grep -E
|
|
grep -E 'warn|error' log |
líneas coincidentes | regex extendido — usa | para OR, + para uno o más |
awk
|
'{print $N}' |
awk '{print $1}' f |
valor de columna | Procesamiento de texto patrón-acción; $1 primer campo, $NF último campo |
sed
|
-i 's/a/b/g' |
sed -i 's/foo/bar/g' f |
texto modificado | Editor de flujo; s/buscar/reemplazar/g sustituye globalmente |
sort
|
-n -r -k N |
sort -n numbers.txt |
salida ordenada | Ordena líneas; -n numérico, -r inverso, -k ordena por columna N |
uniq
|
-c, -d |
sort f | uniq -c |
líneas únicas | Elimina líneas adyacentes duplicadas; generalmente se usa después de sort |
Permisos
| Comando | Opciones | Ejemplo | Salida | Descripción |
|---|---|---|---|---|
chmod
|
755, 644, +x |
chmod +x script.sh |
permisos cambiados | Cambia permisos de archivo; 755=rwxr-xr-x, 644=rw-r--r-- |
chown
|
-R user:group |
chown -R www-data:www-data /var/www |
propietario cambiado | Cambia propietario y grupo del archivo; -R recursivo |
ls -la
|
|
ls -la /var/www |
listado de permisos | Muestra permisos, propietario, grupo y tamaño de todos los archivos |
umask
|
022, 027 |
umask 022 |
permisos por defecto | Establece la máscara de permisos por defecto para nuevos archivos (022 → 644 archivos) |
sudo
|
-u user |
sudo systemctl restart nginx |
comando elevado | Ejecuta comando como superusuario; -u para ejecutar como usuario diferente |
Gestión de Procesos
| Comando | Opciones | Ejemplo | Salida | Descripción |
|---|---|---|---|---|
ps
|
aux, -ef |
ps aux | grep nginx |
lista de procesos | Lista procesos; aux=todos los usuarios, -ef=formato completo |
top
|
q, k, M |
top |
vista en vivo | Monitor de procesos interactivo; q salir, k matar, M ordenar por memoria |
htop
|
F3, F9 |
htop |
vista en vivo | top mejorado con colores; F3 buscar, F9 matar (puede requerir instalación) |
kill
|
-9, -15 |
kill -9 1234 |
señal enviada | Envía señal al PID; -15 SIGTERM (graceful), -9 SIGKILL (forzar) |
killall
|
-9, -u |
killall node |
señal enviada | Mata todos los procesos por nombre |
jobs
|
-l |
jobs -l |
lista de trabajos | Lista trabajos en segundo plano/detenidos en el shell actual |
bg / fg
|
%N |
fg %1 |
reanudado | bg envía el trabajo al segundo plano, fg lo trae al primer plano |
Red
| Comando | Opciones | Ejemplo | Salida | Descripción |
|---|---|---|---|---|
curl
|
-o -L -X -H -d |
curl -O https://example.com/f |
respuesta | Transfiere datos vía HTTP/FTP; -L sigue redirecciones, -o guarda en archivo |
wget
|
-O -r -q |
wget -q https://example.com |
archivo guardado | Descarga archivos; -O renombra la salida, -r recursivo, -q silencioso |
ping
|
-c N |
ping -c 4 google.com |
RTT ms | Prueba la conectividad de red; -c limita el número de paquetes |
ssh
|
-i -p -L |
ssh user@host -p 2222 |
shell | Shell seguro; -i archivo de clave, -p puerto, -L reenvío de puerto local |
scp
|
-r -P -i |
scp file user@host:~/ |
copiado | Copia segura por SSH; -r recursivo, -P puerto (mayúscula) |
netstat
|
-tuln |
netstat -tuln |
lista de puertos | Muestra conexiones de red; -t TCP, -u UDP, -l escuchando, -n numérico |
ss
|
-tuln |
ss -tuln |
lista de puertos | Reemplazo moderno de netstat; más rápido y con más detalle |
Archivos y Compresión
| Comando | Opciones | Ejemplo | Salida | Descripción |
|---|---|---|---|---|
tar -czf
|
-czf out.tar.gz |
tar -czf arc.tar.gz dir/ |
archivo comprimido | Crea un tarball comprimido con gzip; c=crear, z=gzip, f=nombre de archivo |
tar -xzf
|
-xzf file.tar.gz |
tar -xzf arc.tar.gz -C /tmp |
extraído | Extrae un tarball gzip; x=extraer, -C directorio de destino |
tar -tf
|
|
tar -tf archive.tar.gz |
lista de archivos | Lista el contenido del tarball sin extraer |
zip
|
-r, -9 |
zip -r out.zip dir/ |
archivo zip | Crea un archivo zip; -r recursivo, -9 compresión máxima |
unzip
|
-d, -l |
unzip archive.zip -d out/ |
extraído | Extrae zip; -d destino, -l lista contenido sin extraer |
gzip / gunzip
|
-k, -d |
gzip -k file.txt |
comprimido | gzip comprime un único archivo; -k conserva el original, gunzip para descomprimir |
Entorno y Shell
| Comando | Opciones | Ejemplo | Salida | Descripción |
|---|---|---|---|---|
env
|
|
env | grep PATH |
var=valor | Muestra todas las variables de entorno; combinar con grep para filtrar |
export
|
|
export NODE_ENV=production |
variable establecida | Establece una variable de entorno para la sesión actual y procesos hijos |
echo $VAR
|
|
echo $HOME |
valor | Imprime el valor de la variable; usa ${VAR} para desambiguación en cadenas |
which
|
|
which node |
ruta | Muestra la ruta completa del ejecutable del comando |
alias
|
|
alias ll='ls -la' |
atajo | Crea un atajo de comando; agregar a ~/.bashrc para persistencia |
source
|
|
source ~/.bashrc |
recargado | Ejecuta el archivo en el contexto del shell actual (también: . ~/.bashrc) |
history
|
!N, !! |
history | tail -20 |
lista de comandos | Muestra el historial de comandos; !! repite el último, !N ejecuta el comando N |
Referencia Rápida Git
| Comando | Opciones | Ejemplo | Salida | Descripción |
|---|---|---|---|---|
git init
|
|
git init my-project |
repositorio creado | Inicializa un nuevo repositorio Git en el directorio |
git clone
|
--depth 1 |
git clone url |
repositorio clonado | Clona un repositorio remoto; --depth 1 para clon superficial |
git status
|
-s |
git status -s |
cambios | Muestra el estado del árbol de trabajo; -s formato corto |
git add
|
-A, -p |
git add -p |
preparado | Prepara cambios; -A todos, -p modo de parche interactivo |
git commit
|
-m, --amend |
git commit -m 'msg' |
confirmado | Confirma los cambios preparados; --amend modifica el último commit |
git push
|
-u origin |
git push -u origin main |
enviado | Envía al remoto; -u establece la rama de seguimiento upstream |
git pull
|
--rebase |
git pull --rebase |
sincronizado | Obtiene e integra cambios remotos; --rebase en lugar de merge |
git log
|
--oneline --graph |
git log --oneline -10 |
historial | Muestra el historial de commits; --oneline compacto, --graph ramas visuales |
git stash
|
pop, list |
git stash pop |
restaurado | Guarda temporalmente el trabajo no confirmado; pop para restaurar |
git diff
|
--staged |
git diff --staged |
diff | Muestra cambios; --staged muestra cambios preparados pero no confirmados |