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
nanoy debemos usarvipor 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:
-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
nanoy debemos usarvipor lo que es importante que para salir uses:q,:wq, o:q!Ojo: algunos sistemas ni si quiera tienen
viy debemos usarcat << EOF > file.txt, finalizando la edición con una línea que contenga la etiquetaEOF.
| 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:
jobsops - Recuperar procesos de background a foreground:
jobsnos da el jobID y con élfg %1(donde 1 sería el jobID). Esto es: si jobs nos arrojó[7]+ Ejecutando kate &, nosotros podremos traerlo con unfg %7. - Congelar proceso foreground: Ctrl + z
- Recuperar proceso congelado a foreground:
fg %1 - Recuperar proceso congelado a background:
bg