¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Comandos avanzados
Sección perteneciente al curso Linux para DevOps y Sysadmin.
Comando df
El comando df informe sobre la utilización de disco en un sistema de ficheros.
El uso más habitual es:
df -h
-h: legible para humanos
S.ficheros Tamaño Usados Disp Uso% Montado en tmpfs 196M 1,6M 195M 1% /run /dev/sda3 20G 12G 6,4G 65% / tmpfs 980M 0 980M 0% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock /dev/sda2 512M 6,1M 506M 2% /boot/efi tmpfs 196M 164K 196M 1% /run/user/1000
Si además quisiéramos incluir los pseudo sistemas de ficheros (/sys, /proc) y los inaccesibles, empleamos el argumento a:
$ df -ah S.ficheros Tamaño Usados Disp Uso% Montado en sysfs 0 0 0 - /sys proc 0 0 0 - /proc udev 943M 0 943M 0% /dev devpts 0 0 0 - /dev/pts tmpfs 196M 1,6M 195M 1% /run /dev/sda3 20G 12G 6,4G 65% / securityfs 0 0 0 - /sys/kernel/security tmpfs 980M 0 980M 0% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock cgroup2 0 0 0 - /sys/fs/cgroup pstore 0 0 0 - /sys/fs/pstore bpf 0 0 0 - /sys/fs/bpf systemd-1 - - - - /proc/sys/fs/binfmt_misc hugetlbfs 0 0 0 - /dev/hugepages mqueue 0 0 0 - /dev/mqueue tracefs 0 0 0 - /sys/kernel/tracing debugfs 0 0 0 - /sys/kernel/debug fusectl 0 0 0 - /sys/fs/fuse/connections configfs 0 0 0 - /sys/kernel/config ramfs 0 0 0 - /run/credentials/systemd-sysusers.service /dev/loop1 74M 74M 0 100% /snap/core22/858 /dev/loop0 128K 128K 0 100% /snap/bare/5 /dev/loop3 238M 238M 0 100% /snap/firefox/2987 /dev/loop2 64M 64M 0 100% /snap/core20/1974 /dev/loop4 350M 350M 0 100% /snap/gnome-3-38-2004/143 /dev/loop5 486M 486M 0 100% /snap/gnome-42-2204/120 /dev/loop6 92M 92M 0 100% /snap/gtk-common-themes/1535 /dev/loop7 13M 13M 0 100% /snap/snap-store/959 /dev/loop9 54M 54M 0 100% /snap/snapd/19457 /dev/loop8 512K 512K 0 100% /snap/snapd-desktop-integration/83 /dev/sda2 512M 6,1M 506M 2% /boot/efi binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc tmpfs 196M 164K 196M 1% /run/user/1000 gvfsd-fuse 0 0 0 - /run/user/1000/gvfs tmpfs 196M 1,6M 195M 1% /run/snapd/ns nsfs 0 0 0 - /run/snapd/ns/firefox.mnt /dev/sda3 20G 12G 6,4G 65% /var/snap/firefox/common/host-hunspell nsfs 0 0 0 - /run/snapd/ns/snap-store.mnt nsfs 0 0 0 - /run/snapd/ns/snapd-desktop-integration.mnt /dev/loop10 74M 74M 0 100% /snap/core22/864 /dev/loop11 486M 486M 0 100% /snap/gnome-42-2204/126
Comando du
Muestra una estimación del espacio ocupado por ficheros y directorios.
du -sh
-s: espacio utilizado real-h: muestra el tamaño en megabytes.
$ du -sh /home 17M /home
Comando grep
Este comando permite encontrar líneas de texto que contengan una cadena o patrón dentro de uno o varios archivos.
Buscar el texto ACPI en el fichero /var/log/syslog:
grep ACPI /var/log/syslog
Si añadimos el argumento --color resaltará en pantalla las coincidencias.
Otro argumento interesante es -i que permite no hacer distinción entre mayúsculas y minúsculas:
grep -i error /var/log/syslog
Si queremos que muestre el número de línea:
grep -n ACPI /var/log/syslog
El comando grep se puede concatenar con otros comandos a través de tuberías:
lscpu | grep -i model
Comando head
Imprime las primeras líneas de un fichero. Por defecto muestra las 10 primeras líneas:
head fichero
Para indicar el número de líneas a mostrar, usamos el argumento -n:
$ head -n 4 /var/log/syslog head -n5 /var/log/syslog Sep 11 17:42:15 ubuntu-devops kernel: [ 0.000000] Linux version 6.2.0-32-generic (buildd@lcy02-amd64-076) (x86_64-linux-gnu-gcc-11 (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #32~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 18 10:40:13 UTC 2 (Ubuntu 6.2.0-32.32~22.04.1-generic 6.2.16) Sep 11 17:42:15 ubuntu-devops kernel: [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.2.0-32-generic root=UUID=2e064991-4618-44cf-ae59-725ef1c9bb26 ro quiet splash Sep 11 17:42:15 ubuntu-devops kernel: [ 0.000000] KERNEL supported cpus: Sep 11 17:42:15 ubuntu-devops kernel: [ 0.000000] Intel GenuineIntel Sep 11 17:42:15 ubuntu-devops kernel: [ 0.000000] AMD AuthenticAMD
El comando head también se puede usar con otros comandos mediante tuberías:
lsusb | head -n2
Comando locate
Busca ficheros y directorios.
locate deploy
Comando more y less
El comando more muestra el resultado de un comando de forma paginada, es decir, si la salida por pantalla va a ocupar más de lo visible, lo va separando por páginas.
ps -ef | more
También se puede utilizar para visualizar cualquier fichero:
more /var/log/syslog
El comando less es más potente, no solo pagina los resultados y permite movernos, sino que además podemos hacer búsquedas.
Comando tail
Muestra la parte final de un archivo.
Por defecto imprime las últimas 10 líneas.
tail /var/log/syslog
Si queremos decir el número de líneas a mostrar, usamos el argumento -n:
tail -n 2 /var/log/syslog
Algo muy útil es usar el argumento -f que mantiene en funcionamiento tail y muestra los datos que se van añadiendo al archivo:
tail -f /var/log/syslog
Comando htop y top
El comando top muestra los procesos y más información del sistema.
top - 16:54:30 up 6:28, 4 users, load average: 0,00, 0,08, 0,16
Tareas: 186 total, 2 ejecutar, 184 hibernar, 0 detener, 0 zombie
%Cpu(s): 0,2 us, 0,3 sy, 0,0 ni, 99,3 id, 0,0 wa, 0,0 hi, 0,2 si, 0,0 st
MiB Mem : 1959,4 total, 663,8 libre, 616,3 usado, 679,3 búfer/caché
MiB Intercambio: 2140,0 total, 1981,8 libre, 158,2 usado. 1146,0 dispon Mem
PID USUARIO PR NI VIRT RES SHR S %CPU %MEM HORA+ ORDEN
380 systemd+ 20 0 14824 4096 3328 S 0,3 0,2 0:26.68 systemd-oomd
2013 jm 20 0 503460 16800 10016 S 0,3 0,8 0:00.88 update-notifier
22853 jm 20 0 21956 4096 3328 R 0,3 0,2 0:00.03 top
1 root 20 0 168000 10536 5544 S 0,0 0,5 0:05.51 systemd
2 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kthreadd
3 root 0 -20 0 0 0 I 0,0 0,0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0,0 0,0 0:00.00 rcu_par_gp
5 root 0 -20 0 0 0 I 0,0 0,0 0:00.00 slub_flushwq
6 root 0 -20 0 0 0 I 0,0 0,0 0:00.00 netns
8 root 0 -20 0 0 0 I 0,0 0,0 0:00.00 kworker/0:0H-eve+
El comando htop muestra la misma información que top, pero de forma más agradable.También podemos realizar acciones sobre los procesos mediante atajos de teclado como hacer búsquedas, filtrar por algún parámetro, etc.
En Ubuntu, el comando htop se instala mediante el paquete htop
Comando wget
Descarga ficheros de una URL de forma no interactiva.
wget https://releases.ubuntu.com/22.04.3/ubuntu-22.04.3-desktop-amd64.iso
Firejail - securiza tus aplicaciones en linux
Firejail permite “enjaular” una aplicación y que se ejecute de forma segura.
En Ubuntu, se instala con el paquete fairjail.
Si queremos ejecutar una aplicación con Fairjail:
fairjail firefox
Instalar php y python en un contenedor de docker
En Ubuntu, instaremos Docker con el paquete docker.io y Docker Compose con docker-compose.
Probamos la instalación de Docker creando un contenedor de la imagen de Ubuntu:
run -dti --name ubuntu ubuntu:latest
Nos metemos en el contenedor:
docker exec -ti ubuntu bash
Una vez dentro del contenedor, actualizamos los repositorios y el sistema:
apt update && apt upgrade
Para instalar Python en este contenedor Ubuntu:
apt install software-properties-common python3
En Ubuntu suele venir instalado Python, así que no necesitaríamos hacer los pasos anteriores.
Para instalar PHP:
apt install php
Para detener el contenedor de Docker:
docker stop ubuntu
Y para eliminarlo:
docker rm ubuntu
