Skip to content

Resumen de comandos imprescindibles de GNU/Linux

Archivos y directorios:

Coman. Descripción
ls listar
cd change directory
pwd print working directory
rm remove file o directory CUIDADO: No pregunta
cp copy
mv move/rename
cat ARCHIVO “vuelca” contenido archivo
tail ARCHIVO muestra últimas líneas
nano ARCHIVO edita contenido de archivo

Ojo: algunos sistemas no tienen nano y debemos usar vi por lo que es importante que para salir uses :q, :wq, o :q!

-9 comandos-

Permisos:

Coman. Descripción
chmod change permisos chmod u+x {{archivo}}
chown change ownership (propietario)
sudo switch user do -> ejecuta como otro usuario

-3 comandos-

Process

Coman. Descripción
ps mostrar processos ps aux (ojo sin -)
top monitor de sistema
kill mata (con katana) kill -9 {{proc}}

-3 comandos-

System Info

Coman. Descripción
free muestra uso de memoria free -h

-1 comando-

Networking

Comando Descripción
sudo ss -tutapon Muestra conexiones y puertos
ip a Muestra información de las interfaces de red
ip r Muestra información de las rutas
curl http://IP:PUERTO Realiza una petición GET http o https
curl -I http://IP:PUERTO Realiza una petición HEAD
curl -L amazon.es Realiza una petición siguiendo las redirecciones
ping IP Realiza una petición “echo request” para verificar la conectividad

-4 comandos-

Remoto

Coman. Descripción
ssh secure shell
scp secure cp
rsync sincroniza directorios (no en windows) rsync -azvP origen destino

scp es mejor para pocos archivos grandes y rsync para muchos archivos pequeños.

Especial SSH:

  1. Vídeo básico ssh
  2. Parte 2
  3. Parte 3

-3 comandos-

Total: 23 comandos IMPRESCINDIBLES

Pipes (tuberías):

Investiga que hacen los siguientes comandos:

echo “hola” > uno.txt
cat uno.txt | tee dos.txt
echo “adios” >> uno.txt
cat uno.txt dos.txt
cat <<-EOF > tres.txt
hola mundo
EOF
cat tres.txt
cat uno.txt <(cat tres.txt)
cat tres.txt | cat - uno.txt

Gestión de Errores:

ls no_existe
ls no_existe 2> error.txt
cat error.txt
ls no_existe 2> /dev/null

Nota:

  • 1> es equivalente a > y es la salida. Si no se indica se utiliza la standard (monitor).
  • 2> es la salida de error. Si no se indica se utiliza la standad.
  • 2>&1 conecta ambas salidas al descriptor porporcinado.

Y la versión con extras

Archivos y directorios

Coman. Descripción
ls listar
cd change directory
pwd print working directory
echo $PWD print working directory
rm remove file o directory CUIDADO: No pregunta
cp copy
mv move/rename
cat ARCHIVO “vuelca” el contenido del archivo
cat ARCHIVO | more “vuelca” contenido archivo paginándolo
less ARCHIVO muestra el contenido del archivo (navegable)

Ojo: algunos sistemas no tienen nano y debemos usar vi por lo que es importante que para salir uses :q, :wq, o :q!

Ojo: algunos sistemas ni si quiera tienen vi y debemos usar cat << EOF > file.txt, finalizando la edición con una línea que contenga la etiqueta EOF.

Coman. Descripción
ln create link to file
touch crea archivo vacio o modifica fechas
head muestra primeras líneas
find buscar archivos y dir: por nombre, por tipo, por fecha...
grep -n {{texto}} {{archivo}} buscar el texto en el archivo. Muestra el número de línea
grep -vn {{texto}} {{archivo}} buscar las líneas que NO contengan el texto en el archivo. Muestra el número de línea
find ./ -type f -iname "*.md" -exec grep -ln "pppoe" {} + 2> /dev/null buscar, a partir del directorio actual, EN archivos regulares DE NOMBRE *.md que contengan el texto “pppoe”
du -h muestra uso disco
du -hs * 2> /dev/null | sort -nr | head -5 muestra los 5 directorios más grandes
lsblk lista dispositivos de bloque

Procesos

Coman. Descripción
kill {{PID}} solicita finalizar proceso (equivalente a -15 o SIGINT)
kill -2 {{PID}} interrumpe proceso (equivale a Ctr+c)
kill -9 {{PID}} mata un proceso
kill -18 {{PID}} solicita parar proceso (equivale a Ctr+z)
kill -19 {{PID}} solicita restaurar proceso en fg
htop ver procesos
top ver procesos (menos amigable)
nice establecer / cambiar prioridad

Permisos:

Comando Descripción
chmod +x {{archivo}} da permisos de ejecución para todos
chmod u+x {{archivo}} da permisos de ejecución para el propietario
chmod o-x {{archivo}} quita permisos de ejecución para otros
chmod g-x {{archivo}} quita permisos de ejecución para el grupo
chown -R {{propietario}}:{{grupo}} {{archivo}} cambia Recursivamente el propietario y grupo
sudo {{comando}} ejecuta comando como usuario ROOT
sudo -u {{usuario}} {{comando}} ejecuta comando como usuario

Usuarios

Comando Descripción
less /etc/passwd | cut -d':' -f1,6 | grep home Conocer los usuarios del sistema
sudo adduser nuevo_usuario Crear nuevo usuario
sudo gpasswd -a nuevo_usuario docker Añadimos el grupo docker al usuario
sudo -u nuevo_usuario -i Acceder como nuevo usuario
sudo usermod -e 1970-01-01 nuevo_usuario “Caducar” el password
sudo passwd -l nuevo_usuario Desactivar contraseña (se puede acceder aún por ssh)
sudo usermod -s /sbin/nologin nuevo_usuario Cambiar shell
sudo passwd --status nuevo_usuario Confirmar bloqueo (buscar ‘L’)
sudo grep ^nuevo_usuario /etc/passwd Confirmar ‘nologin’
sudo deluser --remove-home --backup nuevo_usuario Elimina usuario y home tras hacer un backup de sus datos

Networking

Información

Comando Descripción
sudo ss -tutapon Muestra conexiones y puertos
ip a Muestra información de las interfaces de red
ip -br a Muestra información de RED de las interfaces
ip -br l Muestra información de ENLACE de las interfaces
ip r Muestra información de las rutas
ip n Muestra información de los neighbour
whereis apache2 Muestra donde apache2 ubica sus archivos

Comunicaciones

Comando Descripción
curl http://IP:PUERTO Realiza una petición GET http o https
curl -I http://IP:PUERTO Realiza una petición HEAD
curl -c archivo_de_cookie http://IP:PUERTO Guarda las cookies
curl -c archivo_de_cookie http://IP:PUERTO Utiliza las cookies
curl --json ‘{“nombre”: “luis”}‘ http://IP:PUERTO Realiza petición POST enviando objeto JSON
curl --http2 http://IP:PUERTO Realiza una petición GET sobre http versión 2
curl --http3 http://IP:PUERTO Realiza una petición GET sobre http versión 3
curl http://IP:PUERTO -o volcado.html Realiza un volcado de la respuesta
curl -L amazon.es Realiza una petición siguiendo las redirecciones
nc -l 8080 Netcat: escucha en el puerto 8080 TCP
nc localhost 8080 Netcat: conecta con el puerto 8080 TCP
nc -ul 8080 Escucha en el puerto 8080 UDP
cat archivo | nc -4u -w1 localhost 8080 Envía archivo al puerto 8080 UDP
socat -v TCP-LISTEN:8080,fork TCP:127.0.0.1:80 Redirije streams del 8080 al 80

Información

printenv nos muestra todas las variables de entorno definidas en el sistema.

Gestión de procesos

  • Lanzar proceso en foreground (primer plano): nano archivo.txt
  • Lanzar proceso en background (segundo plano): nano archivo.txt & (añadir & al final)
  • Lanzar conjunto de procesos en _background_o subshell: (cat archivo.txt | nano - ) &
  • Ver procesos en background: jobs o ps
  • Recuperar procesos de background a foreground: jobs nos da el jobID y con él fg %1 (donde 1 sería el jobID). Esto es: si jobs nos arrojó [7]+ Ejecutando kate &, nosotros podremos traerlo con un fg %7.
  • Congelar proceso foreground: Ctrl + z
  • Recuperar proceso congelado a foreground: fg %1
  • Recuperar proceso congelado a background: bg