Comandos básicos GNU/Linux#
Control de procesos#
ps ver procesos ps -ef
top, htop monitorización de procesos
[Espacio] Realiza un refresco de la pantalla
[h] Muestra la pantalla de ayuda
[k] Mata un proceso, pedirá la ID del proceso y la señal que hay que enviarle.
[n] Cambia el número de procesos que se muestran en pantalla.
[u] Ordena por usuario.
[M] Ordena por uso de memoria.
[P] Ordena por uso del CPU.
nice ejecuta un comando con una prioridad determinada, o modifica la prioridad a de un proceso
kill mata procesos
pstree muestra en vista de árbol (de forma jerárquica) una lista de los procesos en ejecución.
nohup permite mantener la ejecución de un comando pese a salir de la terminal
jobs, fg %2, bg %1, ctrol+c, ctrol+z
$ sleep 10m & #mandamos al segundo plano añadiendo & al final
[1] 7768
$ sleep 10m &
[2] 7770
$ sleep 10m &
[3] 7771
$ jobs
[1] Ejecutando sleep 10m &
[2]- Ejecutando sleep 10m &
[3]+ Ejecutando sleep 10m &
$ fg %1 #lo traemos al primer plano, bloquea la terminal
sleep 10m #para desbloquear terminal y no matar el proceso Ctrol+z
^Z
[1]+ Detenido sleep 10m
$ jobs
[1]+ Detenido sleep 10m
[2] Ejecutando sleep 10m &
[3]- Ejecutando sleep 10m &
$ bg %1 #lo volvemos a mandar al segundo plano
[1]+ sleep 10m &
$ jobs
[1] Ejecutando sleep 10m &
[2]- Ejecutando sleep 10m &
[3]+ Ejecutando sleep 10m &
$ kill %1 #matamos el proceso 1
$ jobs
[1] Terminado sleep 10m
[2]- Ejecutando sleep 10m &
[3]+ Ejecutando sleep 10m &
$ fg %2 #mandamos el proceso 2 al segundo plano
sleep 10m #para desbloquear terminal y matar el proceso Ctrol+c
^C
$ jobs
[3]+ Ejecutando sleep 10m &
sleep 10 & # Ponemos tarea en segundo plano añadiendo & al final del comando.
fg %1 # Ponerlo en primer plano
bg %1
Ctrl+Z # para detener una tarea en primer plano
Ctrl+C # para cancelar una tarea en primer plano
/etc/security/limits.conf es utilizado en sistemas Unix y Linux para configurar límites de recursos y privilegios para usuarios y grupos. Este archivo permite establecer restricciones específicas sobre cómo los usuarios pueden utilizar los recursos del sistema, como la cantidad de memoria, la cantidad de procesos, el número de archivos abiertos, entre otros. También se utiliza para establecer prioridades y políticas de programación para procesos específicos.nLos límites definidos en «/etc/security/limits.conf» son aplicados por el sistema de gestión de límites de recursos (RLIMIT) del kernel. Esto permite evitar el uso excesivo de recursos por parte de usuarios o grupos, lo que podría llevar a una degradación del rendimiento del sistema o incluso a problemas de seguridad.
/proc/self es un atajo que permite a un proceso acceder a información sobre sí mismo a través del sistema de archivos virtual /proc, que proporciona una ventana al kernel para monitorear y gestionar procesos y recursos del sistema.
Ficheros y directorios#
ls listar archivos y carpetas
ls -la #ver archivos ocultos ls -ai #ver inodos ls *dat #ver los archvios acabados en dat ls *T* #ver archivos que contienen T ls ???.dat #ver archivos que tienen 3 caracteres y termian en .dat
ln -s hacer links simbólicos -P son links duros sobre archivos
$ ln -s date.dat links $ ln date.dat linkh $ ls -la -rw-r--r--. 2 dani profesores 31 mar 29 09:40 date.dat -rw-r--r--. 2 dani profesores 31 mar 29 09:40 linkh lrwxrwxrwx. 1 dani profesores 8 mar 29 09:40 links -> date.dat $ ls -ai 238052 date.dat 238052 linkh 238053 links $ rm -fr date.dat $ ls -la $ head link* ==> linkh <== mié mar 29 09:40:27 CEST 2023 head: no se puede abrir 'links' para lectura: No such file or directory
stat muestra información del inodo
cp -r copiar
mv mover, renombrar
rm -fr borrar
mkdir crear directorio
cd cambiar directorio
whereis muestra donde esta el comando
pwd print working directory, se utiliza para imprimir el nombre del directorio actual
locate fichero #busca el fichero
find buscar;
find -name *dat find -not -name *dat find . -type f -size +20M
Visualizadores de archivos#
cat visualizar el contenido archivo
more mostrar archivos haciendo pausa en cada pantalla
Editor vi#
vi hola.dat abrir y editar el archivo hola.dat
i -> modo insertar
<esc> -> modo comandos
:w -> guardar
:q -> salir
:wq -> guardar y salir
:q! -> salir sin guardar
/cadena -> buscar cadena
N yy -> copiar N lineas
N dd -> borrar N lineas
p -> pegar
u -> undo
:%s/cadena1/cadena2/g -> sustituir una cadena
G -> ir al final del archivo
:set number -> ver los número de linea
Para configurar configuración por defecto en el archivo .vimrc como por ejemplo:
$ cat ~/.vimrc filetype indent off
Para configurar que el editor vi sea nuestro editor de forma predeterminaada:
export EDITOR=/usr/bin/vim
Esta configuración se aplica solo para la sesión actual, para que sea permanente agrega esta línea al archivo .bashrc
echo 'export EDITOR=/usr/bin/vi' >> ~/.bashrc bash
Compresión#
tar se utiliza para comprimir una colección de archivos y carpetas
tar -cf new.tar archivo tar -xvf new.tar
gzip, gunzip, zip
Instalar software#
apt-get update actualiza la lista de paquetes disponibles
apt-get upgrade actualiza el paquete indicado si existe versión nueva en repositorio.
apt-get install instala un paquete y sus dependencias (+install -remove)
con la opción –reinstall reinstala el paquete.
apt-get remove desinstala un paquete instalado (+install -remove)
apt-get purge desinstala eliminando ficheros de configuración.
apt-get install -f resuelve las dependencias de paquetes rotos instalando lo necesario.
dpkg –configure -a intenta reconfigurar todos los paquetes desplegados no configurados
dpkg -i instalación manual
Configuración de la red#
Optener IP local
ip a
Reiniciar tarjeta de red
sudo service networking restart
Activar/desactivar tajeta red
sudo ip link set enp0s3 down/up
NetPlan es la nueva utilidad para configurar la red, el antiguo /etc/network/interfaces ya no funciona. Debemos configurar /etc/netplan/01-*.yaml, por ejemplo:
network: ethernets: enp0s3: addresses: - 10.4.105.100/8 routes: - to: default via: 10.0.0.2 nameservers: addresses: [8.8.8.8] version: 2
Probar NetPlan
sudo netplan --debug apply
Aplicar NetPlan
sudo netplan apply
virtualBox#
VBoxManage list vms
VBoxManage list runningvms
VBoxManage startvm 'ubuntu-server' --type headless
VBoxManage controlvm 'ubuntu-server' savestate
Gestión de particiones#
gparted editor de particiones para el entorno de escritorio GNOME
cfdisk similar a fdisk, pero con una interfaz diferente
fdisk
fdisk -l # muestra discos y particiones que hay en el sistema fdisk /dev/sdX #para hacer el particionado del disco /dev/sdX # o crear nueva tabla de particiones (MSDOS) # n crear nueva particion # w escribir los cambios
mkfs.ext4 /dev/sdX1 dar formato ext4 a la partición sdX1
fsck Utilidad para detectar, verificar y corregir los errores del sistema de archivo
mkswap /dev/sdX1 para convertir la partición /dev/sdX1 al formato SWAP
mkswapon activan particiones de swap
mkswapoff desactivan particiones de swap
df -h muestra el estado actual de las particiones montadas
du -skh tamaño de archivos
mount Montar particiones
mount /dev/sda1 /media/carpeta1 mount -t ext3 /dev/sdb3 /home mount /dev/sdaX /punto_de_montaje
umount desmontar particiones
umount punto de montaje umount /media/carpeta1
lsblk -a nos muestra información de todos los dispositivos de bloque
file sirve para determinar el tipo archivo
dd copia y clona datos discos y particiones. Podemos usarlo para limpiar nuestro MBR y la tabla de particiones
dd if=/dev/zero of=/dev/sda bs=512 count=1
/etc/fstab # contiene información sobre sistemas de archivos del sistema y sus puntos de montaje y opciones, las distribuciones recientes, se implementa un sistema de automontaje automático.
$ cat /etc/fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sda2 during curtin installation /dev/disk/by-uuid/4609be84-f57c-4ee0-b876-3839f95d628c / ext4 defaults 0 1 /dev/disk/by-uuid/f7832f7d-90b0-4c39-9145-4d5dfaaf5d47 none swap sw 0 0 # /home was on /dev/sdb during curtin installation /dev/disk/by-uuid/093e58be-28c0-4620-87cc-c77e3cb03b8c /home ext4 defaults 0 1 /swap.img none swap sw 0 0 $ sudo file -Ls /dev/sdb /dev/sdb: Linux rev 1.0 ext4 filesystem data, UUID=093e58be-28c0-4620-87cc-c77e3cb03b8c (needs journal recovery) (extents) (64bit) (large files) (huge files)
La estructura de las instrucciones es de 6 columnas separadas por espacios o tabuladores
<dispositivo> <punto_de_montaje> <sistema_de_archivos> <opciones> <dump-freq> <pass-num>
<dispositivo> es el directorio lógico que hace referencia a una partición o recurso. Nombre del dispositivo o etiqueta, podríamos sustituir la segunda linea por:
/dev/sdb1 /HOME ext4 defaults 0 2
<punto_de_montaje> es la carpeta en que se proyectarán los datos del sistema de archivos, en la liea anterior /HOME
<sistema de archivos> es el algoritmo que se utilizará para interpretarlo.
<opciones> es el lugar donde se especifican los parámetros que mount utilizará para montar el dispositivo, deben estar separadas por comas. Las opciones de montaje son numerosas. Las más usadas se listan a continuación:
auto : indica que el dispositivo se monta siempre que se inicie el sistema. La opuesta es noauto.
rw: indica que el dispositivo se monta con permisos de lectura y escritura.
ro: indica que el dispositivo se monta con permisos de lectura solamente.
owner: indica que el usuario conectado al sistema localmente en primer lugar tiene derechos a montar y desmontar el dispositivo (se adueña de este).
user : indica que cualquier usuario puede montar y solo el mismo usuario podrá desmontar el dispositivo. La opción opuesta es nouser. users : indica que cualquier usuario puede montar y cualquiera también, puede desmontar el dispositivo.
suid : indica que el permiso ``s”” tenga efecto para los ejecutables presentes en el dispositivo. La opción opuesta es nosuid. (Todos los ejecutables del sistema se ejecutan como si fueran invocados por el root)
exec : indica que los binarios ejecutables almacenados en el dispositivo se pueden ejecutar. La opción opuesta es noexec.
async : expresa que todas las operaciones de entrada y salida se hacen de forma asíncrona, o sea, no necesariamente en el momento en que se invocan. La opción opuesta es sync.
dev : indica que se interprete como tal a los dispositivos especiales de bloques y de caracteres presentes en el dispositivo. La opción opuesta es nodev.
defaults : es una opción equivalente a la unión de rw, suid, dev, exec, auto, nouser y async.
<dump-freq> es el comando que utiliza dump para hacer respaldos del sistema de archivos, si es cero no se toma en cuenta ese dispositivo.
<pass-num> indica el orden en que la aplicación fsck revisará la partición en busca de errores durante el inicio, si es cero el dispositivo no se revisa.,23
rsync#
rsync sirve para sincronización de archivos
rsync [opciones] [origen] [destino]
Opciones comunes
-v (verbose): Muestra información detallada sobre el proceso de sincronización.
-r (recursive): Copia directorios recursivamente.
-a (archive): Modo de copia de seguridad, que conserva metadatos como permisos, propiedades y fechas de modificación.
–delete: Elimina archivos en el destino que no existen en el origen (útil para mantener los dos sistemas iguales).
–exclude: Permite excluir ciertos archivos o patrones de archivos de la sincronización.
-n (dry-run): Realiza una simulación de la sincronización sin realizar cambios en el sistema de archivos.
-P (progress): Muestra el progreso de la transferencia.
Ejemplos de uso
#Copiar un directorio local a otro lugar local
rsync -av /ruta/de/origen/ /ruta/de/destino/
#Copiar de local a un servidor remoto (SSH)
rsync -av -e ssh /ruta/local/ usuario@servidor:/ruta/destino/
#Copiar de un servidor remoto a local
rsync -av -e ssh usuario@servidor:/ruta/origen/ /ruta/local/destino/
#Eliminar archivos en el destino que no existen en el origen
rsync -av --delete /ruta/de/origen/ /ruta/de/destino/
Consejos adicionales
Usa
-n
para simular una sincronización antes de ejecutarla realmente. Esto te permitirá ver qué cambios se realizarán sin efectuarlos.Usa
--exclude
para evitar copiar ciertos archivos o directorios. Por ejemplo,--exclude=archivo.txt
evitará la copia del archivo llamado archivo.txt.