Colección de comandos y tareas útiles para el uso de sistemas GNU/Linux. Este es un recopilatorio con explicaciones concisas, se supone que se aplicarán sabiendo lo que se hace.
Para cualquier mejora no dudes en añadir tus comentarios.
Uso avanzado del terminal
cmd_1 ; cmd_2 ; cmd_3
ejecuta múltiples comandos en una líneacmd_1 && cmd_2
ejecuta múltiples comandos sólo si el previo fue exitosoCTRL+R término_buscado
busca comandos anteriores por un términoCTRL+A
mueve el cursor al inicio de la líneaCTRL+E
mueve el cursor al final de la líneasudo !!
ejecuta un comando como root (!!
repite el último comando escrito)cd !$
con!$
repite el último argumento del comando anteriorALT+.
añade el último argumento de comandos previos pulsando.
- Usar
TAB
para autocompletar con la lista de entradas del directorio actual
Primer y segundo plano
CTRL+Z
suspende (detiene) y pasa a segundo plano el proceso actualjobs -l
lista procesos en segundo plano (+
señala proceso por defecto)bg
continúa la ejecución en segundo plano del proceso por defectofg %2
trae a primer plano el proceso [2] de la lista
disown -h %1
disocia el proceso [1] y no se eliminará al cerrar sesiónping -i 60 > ping.log &
lanza un proceso en segundo plano con&
nohup ping -i 60 > ping.log &
lanza un proceso en segundo plano que seguirá ejecutándose al cerrar sesión
Comandos básicos
cd /var/log
cambia al directorio/var/log
cd
cambia al directorio$HOME
del usuariocd ..
retrocede al directorio anterior al que te encuentrascd ../..
retrocede dos nivelescd -
regresa al directorio de trabajo anteriorpwd
muestra la ruta del directorio actualls
lista las entradas del directorio actualls -la
lista detallada (-l
) y entradas ocultas que empiezan por.
(-a
)ls -la | grep cadena
lista las entradas que contienencadena
ls -lh
lista detallada y legible para humanosls *[0-9]*
lista las entradas que contienen númerosls -F
lista las entradas añadiendo un indicador de tipo a cada unals -S
lista los archivos por tamaño, de mayor a menortree
muestra los ficheros y carpetas en forma de árbol (tambiénlstree
)
Información básica del sistema
uname -a
(abreviatura de Unix name) muestra información sobre el sistemauname -r
sólo muestra la versión del kerneluname -m
muestra el tipo de arquitectura de la máquina (tambiénarch
)lsb_release -a
muestra información sobre la instalación LSB (Linux Standard Base)cat /proc/version
muestra información completa de la versión del kernelhostname
muestra el nombre del servidor
uptime
muestra cuánto tiempo lleva funcionando el sistemalast reboot
muestra el historial de reinicios
Fecha y hora
date
muestra la fecha del sistemacal 2019
despliega el calendario de 2019cal 07 2019
muestra sólo el mes julio de 2019date 041217002011.00
ajusta fecha y hora del sistemaclock -w
guarda los cambios de fecha en la BIOS
Apagar el sistema
shutdown -h now
init 0
telinit 0
halt
systemctl poweroff
systemctl suspend
pone el sistema en modo de bajo consumosystemctl hibernate
guarda el estado del sistema antes de apagarlo para restaurarlo en el arranque
También se puede programar:
shutdown -h 20:15 &
planifica el apagado del sistema a las 8:15pmshutdown -c
cancela un apagado planificado del sistema
Reiniciar el sistema
shutdown -r now
reboot
systemctl reboot
Cerrar la sesión
logout
Sistema de ficheros y uso del disco
Ficheros y directorios
mkdir dir1
crea un directorio con nombredir1
mkdir dir1 dir2
crea dos directorios simultáneamentemkdir -p /tmp/dir1/dir2
crea un árbol de directorios
rm -f fic1
borra el ficherofic1
rm -rf dir1
elimina recursivamente el contenido del directoriodir1
rm -rf dir1 dir2
borra dos directorios con todo su contenidorm -ri dir1
borra un directorio y todo su contenido de forma interactivamv dir1 nuevo_dir1
renombra o mueve un fichero o directoriormdir dir1
borra el directoriodir1
cp fic1 fic2
copia el ficherofic1
afic2
(reemplazafic2
si ya existía)cp dir1/* .
copia el contenido dedir1
en el directorio actualcp -r dir1/* dir2
copia recursivamente el contenido dedir1
en otro directoriocp -a /tmp/dir1 .
copia un directorio en el directorio actualcp -a dir1 dir2
copia el directoriodir1
adir2
(reemplaza los contenidos dedir2
que ya existiesen endir1
)
ln -s fic1 lnk1
crea un enlace simbólico al fichero o directorioln fic1 lnk1
crea un enlace físico al fichero o directorio
touch fic1
crea un fichero vacío, o lo trunca si ya existetouch -t 0712250000 fic1
modifica el tiempo de creación de un fichero o directoriofile fic1
muestra las características MIME de un fichero
Buscar ficheros
find / -name fic1
busca un fichero/directorio desde la raíz del sistemafind / -user usuario1
busca ficheros y directorios pertenecientes al usuariousuario1
find /home/usuario1 -name \*.bin
busca ficheros con extensión.bin
dentro del directorio/home/usuario1
find /usr/bin -type f -atime +100
busca ficheros binarios no usados en los últimos 100 díasfind /usr/bin -type f -mtime -10
busca ficheros creados o cambiados en los últimos 10 díasfind / -name \*.rpm -exec chmod 755 ‘{}’ \;
busca ficheros con extensión.rpm
y modifica sus permisosfind / -xdev -name \*.rpm
busca ficheros con extensión.rpm
ignorando los dispositivos removibles como pendrives, cd’s, etc…
locate \*.ps
busca ficheros con extensión.ps
previamente indexados porupdatedb
whereis halt
muestra la ubicación de un fichero binario, de ayuda o fuente (en este caso pregunta por el comandohalt
)which halt
muestra el camino a un fichero binario/ejecutable
Montar un sistema de ficheros
mount /dev/hda2 /mnt/hda2
monta la particiónhda2
(debe existir el directorio/mnt/hda2
)umount /dev/hda2
desmonta la particiónhda2
(hay que salir primero de/mnt/hda2
)fuser -km /mnt/hda2
obliga a desmontar cuando el dispositivo está ocupadoumount -n /mnt/hda2
desmonta sin leer/etc/mtab
(útil si es de solo lectura o el disco duro está lleno)mount /dev/cdrom /mnt/cdrom
monta un lector de cd/dvdmount /dev/hdc /mnt/cdrecorder
monta un grabador de cd/dvdmount -o loop file.iso /mnt/cdrom
monta un fichero o una imagen ISOmount -t vfat /dev/hda5 /mnt/hda5
monta un sistema de ficheros FAT32mount /dev/sda1 /mnt/usbdisk
monta un pendrive USB o una memoria (sin especificar el tipo de sistema de ficheros)
Estado y análisis de un sistema de ficheros
badblocks -v /dev/hda1
comprueba los bloques defectuosos en la particiónhda1
fsck /dev/hda1
comprueba (repara) la integridad del sistema de ficheros existente enhda1
fsck.ext2 /dev/hda1
comprueba (repara) la integridad del sistema de ficheros ext2 enhda1
e2fsck /dev/hda1
comprueba (repara) la integridad del sistema de ficheros ext2 enhda1
e2fsck -j /dev/hda1
comprueba (repara) la integridad del sistema de ficheros ext3 (journal) enhda1
fsck.ext3 /dev/hda1
comprueba (repara) la integridad del sistema de ficheros ext3 enhda1
fsck.vfat /dev/hda1
comprueba (repara) la integridad del sistema de ficheros FAT32 enhda1
fsck.msdos /dev/hda1
comprueba (repara) la integridad de un sistema de ficheros DOS enhda1
dosfsck /dev/hda1
comprueba (repara) la integridad de un sistema de ficheros DOS enhda1
Espacio en disco
df -h
muestra las particiones montadas y el espacio de disco disponiblels -lSr | more
muestra el tamaño de los ficheros y directorios ordenados por tamañodu -sh dir1
estima el espacio usado por el directoriodir1
du -sk * | sort -rn
muestra el tamaño de los ficheros y directorios ordenados por tamañorpm -q -a –qf '%10{SIZE}t%{NAME}n' | sort -k1,1n
muestra el espacio usado por los paquetes rpm instalados organizados por tamaño (Fedora, Redhat y otros)dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n
muestra el espacio usado por los paquetes deb instalados, organizados por tamaño (Ubuntu, Debian y otros)
Permisos y propiedad de los ficheros
r-- Lectura (4) # [u]ser (propietario) | [g]roup (grupo) | [o]thers (otros)
-w- Escritura (2) # Ej. 754: rwx (7) | r-x (5) | r-- (4)
--x Ejecución (1) # lectura/escritura/ejecución | lectura/ejecución | lectura
chmod [OPCIÓN] MODO[,MODO] dir1|fic1
donde MODO es[ugoa]*([-+=]([rwxXst]))
y a=ugochmod u=rw,g=r,o= fic1
restringe el archivofic1
a-rw-r-----
, igual quechmod 640 fic1
chmod a+rwx dir1
asigna adir1
permisos de lectura, escritura y ejecución para todos los usuarioschmod go-rwx dir1
quita adir1
los permisos de lectura, escritura y ejecución para el grupo y otroschmod -R o-r /home/*
quita recursivamente el permiso de lectura para otros usuarios a todo/home
chmod u+s /bin/fic1
activa SUID en un binario (el usuario ejecutará con los privilegios del propietario)chmod u-s /bin/fic1
desactiva el bit SUID en un fichero binariochmod g+s /home/pub
activa SGID en un directorio (cambia el privilegio de ejecución según el grupo del fichero)chmod g-s /home/pub
desactiva el bit SGID en un directoriochmod +t /home/pub
activa STICKY en un directorio (sólo dejará renombrar o borrar ficheros al propietario)chmod -t /home/pub
desactiva el bit STICKY de un directorio
chown usuario1 fic1
cambia el propietario del ficherofic1
ausuario1
chown -R usuario1 dir1
cambia el propietario del directoriodir1
y de los ficheros y directorios contenidoschgrp grupo1 fic1
cambia el grupo del ficherofic1
agrupo1
chown usuario1:grupo1 fic1
cambia el propietario y el grupo del ficherofic1
chown usuario1: fic1
igual quechown usuario1:usuario1 fic1
(si coincide nombre de usuario y grupo)
find / -perm -u+s -print
busca y lista todos los ficheros del sistema con el bit SUID activo
Se puede predeterminar umask para todos los usuarios en /etc/profile
. Suele ser 022, que se resta de 777 para establecer por defecto 755 (aunque en ficheros nunca se activan los permisos de ejecución).
Atributos especiales en ficheros
chattr +a fic1
permite escribir en un fichero sólo añadiendo (modo «append»)chattr +c fic1
hace que un fichero sea descomprimido/comprimido automáticamente al leer/escribirchattr +d fic1
para que el archivo no sea candidato para respaldo al usardump
chattr +i fic1
hace inmutable el fichero y no podrá ser eliminado, alterado, renombrado ni enlazadochattr +s fic1
permite que un fichero sea borrado de forma segura y definitivachattr +S fic1
asegura que los cambios serán escritos inmediatamente en el disco, en modo síncronochattr +u fic1
permite recuperar con las herramientas adecuadas un fichero una vez borradolsattr
muestra los atributos especiales de cada fichero del listado
Formatear un sistema de ficheros
mkfs.ext4 /dev/hda1
crea un sistema de ficheros tipo Linux ext4 en la particiónhda1
mke2fs /dev/hda1
crea un sistema de ficheros tipo Linux ext2 enhda1
mke2fs -j /dev/hda1
crea un sistema de ficheros tipo Linux ext3 (journal) enhda1
mkfs -t vfat 32 -F /dev/hda1
crea un sistema de ficheros FAT32 enhda1
mkswap /dev/hda3
crea un área de intercambio (swap) enhda3
Volúmenes lógicos
LVM (Logical Volume Manager o Gestor de Volúmenes Lógicos) añade una capa de abstracción entre los dispositivos de almacenamiento y los sistemas de ficheros.
Se compone de volúmenes físicos (Physical Volumes o PV, son los dispositivos de almacenamiento, como un disco duro, una partición, una tarjeta SD, un dispositivo RAID o un dispositivo cifrado); grupo de volúmenes (Volume Group o VG, agrupa uno o más PV y puede crecer simplemente añadiendo nuevos PV); y volúmenes lógicos (Logical Volumes o LV, utiliza los PV del VG como una única partición tradicional, visible y conteniendo un sistema de ficheros como /home
).
- Inicializa dos particiones de disco (PV):
$ dd if=/dev/zero of=/dev/sda bs=1k count=1 $ dd if=/dev/zero of=/dev/sdb bs=1k count=1 $ pvcreate /dev/sda Physical volume "/dev/sda" successfully created $ pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created
- Crea el grupo lógico (VG)
vg_grupo
con las dos particiones:$ vgcreate vg_grupo /dev/sda /dev/sdb Volume group "vg_grupo" successfully created
- Crea el volumen lógico (LV)
lv1_volumen
:$ lvcreate -L1G -n lv1_volumen vg_grupo lvcreate -- doing automatic backup of "vg_grupo" lvcreate -- logical volume "/dev/vg_grupo/lv1_volumen" successfully created
- Crea un sistema de ficheros (JFS en este ejemplo) con el LV recién creado y lo monta:
$ mkfs.jfs /dev/vg_grupo/lv1_volumen $ mount -t jfs /dev/vg_grupo/lv1_volumen /mnt/volumen
- Actualiza
/etc/fstab
para hacer permanentes los cambios:$ vi /etc/fstab /dev/vg_grupo/lv1_volumen /mnt/volumen jfs defaults 0 0 :wq!
vgscan
analiza dispositivos de bloque LVM admitidos en el sistema en busca de VGvgscan --mknodes
además comprueba/dev
para crear (si no existen) o eliminar (si no son necesarios) los archivos especiales para activar los LVvgchange -ay vg_grupo
activa los LV del VGvg_grupo
(si no se indica ningún grupo se activan todos los LV)lvs
muestra información de los volúmenes lógicos (1)lvdisplay
muestra información de los volúmenes lógicos (2)mount /dev/vg_grupo/lv_volumen /mnt/grupo/volumen
monta un volumen lógico de un grupo de volúmenes en/mnt/grupo/volumen
El área de intercambio (swap)
mkswap /dev/hda3
crea un sistema de ficheros para intercambio (área swap)swapon /dev/hda3
activa una nueva partición de intercambio (swap)swapon /dev/hda2 /dev/hdb3
activa dos particiones de intercambio (swap)
Redes
LAN y WiFi
ifconfig eth0
muestra la configuración de la interfazeth0
ifup eth0
habilita la interfazeth0
ifdown eth0
deshabilita la interfazeth0
ifconfig eth0 192.168.1.1 netmask 255.255.255.0
configura la dirección IP deeth0
ifconfig eth0 promisc
configuraeth0
para obtener los paquetes (sniffing)
dhclient eth0
activa la interfazeth0
en modo DHCPecho “1” > /proc/sys/net/ipv4/ip_forward
activa el enrutado de IP (como si fuese un router)
route -n
muestra mesa de recorridoroute add -net 0/0 gw IP_Gateway
configura entrada predeterminadaroute add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
configura una ruta estática para buscar la red ‘192.168.0.0/16’route del 0/0 gw IP_gateway
elimina una ruta estática
hostname -i
muestra la dirección IP del servidor (sólo Linux)host www.example.com
busca el nombre del host para resolver el nombre a una dirección IP (1)nslookup www.example.com
busca el nombre del host para resolver el nombre a una dirección IP y viceversa (2)ping 192.168.0.100
comprueba si está accesible o habilitada la respuesta de una IPip link show
muestra el estado de enlace de todas las interfacesmii-tool eth0
muestra el estado de enlace de ‘eth0’ethtool eth0
muestra las estadísticas de tarjeta de red ‘eth0’netstat -i
muestra las interfaces de red y su estadonetstat -tup
muestra todas las conexiones de red activas y sus PIDnetstat -tupl
muestra todos los servicios de escucha de red en el sistema y sus PIDtcpdump tcp port 80
muestra todo el tráfico HTTPiwlist scan
muestra las redes inalámbricasiwconfig eth1
muestra la configuración de una tarjeta de red inalámbricawhois www.example.com
busca en base de datos Whois
SAMBA, redes de Microsoft Windows
nbtscan ip_addr
resuelve nombres de la red BIOSnmblookup -A ip_addr
resuelve nombres de la red BIOSsmbclient -L ip_addr/hostname
muestra acciones remotas de un host en Windows
Tablas IP (cortafuegos)
iptables -t filter -L
muestra todas las cadenas de la tabla de filtrosiptables -t nat -L
muestra todas las cadenas de la tabla NATiptables -t filter -F
limpia todas las reglas de la tabla de filtrosiptables -t nat -F
limpia todas las reglas de la tabla NATiptables -t filter -X
borra cualquier cadena creada por el usuarioiptables -t filter -A INPUT -p tcp –dport telnet -j ACCEPT
permite las conexiones telnet para entrariptables -t filter -A OUTPUT -p tcp –dport http -j DROP
bloquea las conexiones HTTP para saliriptables -t filter -A FORWARD -p tcp –dport pop3 -j ACCEPT
permite las conexiones POP a una cadena delanteraiptables -t filter -A INPUT -j LOG –log-prefix “DROP INPUT”
registra una cadena de entradaiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
configura un PAT (Puerto de traducción de dirección) en eth0, ocultando los paquetes de salida forzadaiptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.0.0.2:22
redirecciona los paquetes dirigidos de un host a otro
Administración del sistema
Información del hardware del sistema
dmesg
muestra el hardware detectado durante el arranque del sistemalsdev
muestra información del hardware instaladodmidecode -q
muestra información del hardware desde la BIOS (DMI/SMBIOS)hwinfo
muestra información detallada de CPU, memoria, disco, controladores…lspci -tv
lista los dispositivos conectados vía PCIlsusb -tv
muestra los dispositivos USBcat /proc/scsi/scsi
lista los dispositivos scsi (tambiénlsscsi
)
cat /proc/cpuinfo
muestra información completa de la CPU (tambiénlscpu
)cat /proc/net/dev
muestra adaptadores de red disponibles y estadísticas
cat /proc/meminfo
comprueba el uso de la memoriafree -m
muestra el estado de la memoria en megabytes
Información particiones y discos
cat /proc/swaps
muestra los archivos de intercambio (swap)cat /proc/mounts
muestra los sistemas de ficheros montadoscat /proc/partitions
muestra todas las particiones registradasmount | column -t
lista los sistemas de ficheros montados en el sistema
hdparm -I /dev/hda
muestra información obtenida directamente del discohdparm -tT /dev/sda
realiza una prueba de lectura en un disco duro
fdisk -l
muestra las tablas de partición ordenadas por nombre del dispositivofdisk -l /dev/sdb
sólo muestra las particiones del disco indicadofdisk /dev/sdb
muestra todas las opciones con un disco (usarm
para listar comandos disponibles)
lsblk -fm
muestra un diagrama de los dispositivos de bloques (particiones de discos y otros dispositivos)
smartctl -i /dev/hda
comprueba si SMART está activado en un disco duro y muestra su información básicasmartctl -a /dev/hda
muestra toda la información SMART de un disco duro
Usuarios y grupos
id
muestra el identificador del usuario activo con su inicio de sesión y grupolast
muestra los últimos inicios de sesión en el sistemawho
muestra quién ha iniciado sesión en el sistemaecho "Acceso al sistema limitado" > /etc/nologin
evita temporalmente los inicios de sesión en el sistema (excepto para root)newgrp nombre_grupo
inicia sesión con un nuevo grupo y puede cambiar el grupo predeterminado del actual directorio de trabajo
groupadd nombre_grupo
crea un nuevo grupogroupdel nombre_grupo
borra un grupogroupmod -n nuevo_nombre_grupo anterior_nombre_grupo
renombra un grupo
useradd -c "Nombre Apellidos" -g admin -d /home/nombre_usuario -s /bin/bash nombre_usuario
crea un nuevo usuario perteneciente al grupo adminuseradd nombre_usuario
crea un nuevo usuariouserdel -r nombre_usuario
borra un usuario (-r
elimina el directoriohome
)usermod -c "Usuario FTP" -g system -d /ftp/nombre_usuario -s /bin/nologin nombre_usuario
cambia los atributos del usuario
passwd
cambia la contraseña (las contraseñas cifradas se almacenan en/etc/shadow
)passwd nombre_usuario
cambia la contraseña de un usuario (sólo por root)chage -E 2021-12-31 nombre_usuario
pone plazo a la contraseña de un usuario (en el ejemplo la contraseña expira el 31 de diciembre de 2021)pwck
comprueba la sintaxis y el formato del fichero/etc/passwd
y la existencia de usuariosgrpck
comprueba la sintaxis y el formato del fichero/etc/group
y la existencia de grupos
Límites definidos
ulimit -a
muestra los límites definidos en el terminal o script actualulimit -n 10240
modifica el límite máximo de ficheros abiertos por el terminal o script
cat /etc/security/limits.conf
comprueba los límites definidos para usuarios y aplicaciones
sysctl -a
muestra todos los límites definidos en el sistema (ver/etc/sysctl.conf
)sysctl fs.file-max
muestra el número máximo posible de ficheros abiertos por el sistemasysctl fs.file-max=10240
modifica el límite máximo posible de ficheros abiertos por el sistema
Procesos
ps -auxefw
lista con información detallada de procesos en vista jerárquicaps -e -o pid,args –-forest
muestra los procesos en una vista jerárquicapstree
muestra un árbol con los procesospgrep -l sshd
devuelve PID de procesos filtrados por (parte del) nombrefuser -va 22/tcp
lista los procesos que están usando el puerto 22fuser -va /home
lista los procesos que están accediendo a la partición/home
echo $$
muestra el identificador de proceso (PID) de el terminal actualkill -9 id_proceso
fuerza la finalización de un proceso (tambiénkill -s KILL id_proceso
)kill -15 id_proceso
envía señal de finalización software (SIGTERM)fuser -k -TERM -m /home
finaliza los procesos que están accediendo a/home
(p.e. paraumount
)
Prioridades
Los procesos se ejecutan con un nivel de prioridad que puede cambiarse. Los números negativos aumentan la prioridad, siendo -20 la máxima prioridad.
nice -n -5 top
ejecutatop
con una prioridad más fuertenice -n 5 top
ejecutatop
con una prioridad más débil (tambiénnice +5 top
)renice -5 586
cambia la prioridad de un proceso en ejecución
También se puede cambiar la prioridad de acceso a disco asignando una clase 1 (real time, tiempo real), 2 (best effort, mejor esfuerzo), o 3 (idle, inactivo).
ionice -c1 -p123
cambia la clase del proceso 123 a ‘real time’ (1)ionice -c2 -n0 firefox
ejecuta firefox con ‘best effort’ (2) y alta prioridadionice -c3 -p$$
cambia el terminal actual a ‘idle’ (3), y lanzará los comandos con una prioridad menor
Monitorización, estadísticas y depuración
top
muestra los procesos ordenados por uso de CPU (pulsarh
para ayuda)htop
muestra procesos y uso de CPU de forma gráfica en el terminal (h
para ayuda)mpstat 1
muestra estadísticas relativas a los procesadores (cada segundo)
strace -c ls >/dev/null
muestra llamadas del sistema hechas y recibidas por un procesostrace -f -e open ls >/dev/null
muestra las llamadas a la librería
vmstat 2
muestra estadísticas relativas a la memoria virtual (cada 2 segundos)iostat 2
muestra estadísticas de Entrada/Salida (cada 2 segundos)watch -n1 ‘cat /proc/interrupts’
muestra interrupciones en tiempo realipcs -a
muestra información de comunicación entre procesos
lsof -p $$
muestra una lista de ficheros abiertos por procesoslsof /home/usuario1
muestra una lista de ficheros abiertos en un directorio dado
tail -n 500 /var/log/messages
muestra los últimos 500 mensajes del sistemalsmod
muestra los módulos cargados por el kernel
Instalar en Debian, Ubuntu y derivados
Actualizador de paquetes APT
apt-get install package_name
instala/actualiza un paquete debapt-cdrom install package_name
instala/actualiza un paquete deb desde un cdromapt-get update
actualiza la lista de paquetesapt-get upgrade
actualiza todos los paquetes instaladosapt-get remove package_name
elimina un paquete deb del sistemaapt-get check
verifica la correcta resolución de las dependenciasapt-get clean
limpia la caché de paquetes descargadosapt-cache search searched-package
devuelve la lista de paquetes correspondiente a «paquetes buscados»
Gestión de paquetes Deb
dpkg -i package.deb
instala/actualiza un paquete debdpkg -r package_name
elimina un paquete deb del sistemadpkg -l
muestra todos los paquetes deb instalados en el sistemadpkg -l | grep httpd
muestra todos los paquetes deb con el nombrehttpd
dpkg -s package_name
obtiene información en un paquete específico instalado en el sistemadpkg -L package_name
muestra la lista de ficheros dados por un paquete instalado en el sistemadpkg –contents package.deb
muestra la lista de ficheros dados por un paquete no instalado aúndpkg -S /bin/ping
verifica a qué paquete pertenece un fichero dado
Instalar en Red Hat, Fedora y similares
Actualizador de paquetes YUM
yum install package_name
descarga e instala un paquete rpmyum localinstall package_name.rpm
este instalará un RPM y tratará de resolver todas las dependencies para ti, usando tus repositoriosyum update package_name.rpm
actualiza todos los paquetes rpm instalados en el sistemayum update package_name
moderniza / actualiza un paquete rpmyum remove package_name
elimina un paquete rpmyum list
lista todos los paquetes instalados en el sistemayum search package_name
encuentra un paquete en repositorio rpmyum clean packages
limpia un caché rpm borrando los paquetes descargadosyum clean headers
elimina todos los ficheros de encabezamiento que el sistema usa para resolver la dependenciayum clean all
elimina desde los paquetes caché y ficheros de encabezado
Gestión de paquetes RPM
rpm -ivh package.rpm
instala un paquete rpmrpm -ivh –nodeeps package.rpm
instala un paquete rpm ignorando las peticiones de dependenciasrpm -U package.rpm
actualiza un paquete rpm sin cambiar la configuración de los ficherosrpm -F package.rpm
actualiza un paquete rpm solamente si este está instaladorpm -e package_name.rpm
elimina un paquete rpmrpm -qa
muestra todos los paquetes rpm instalados en el sistemarpm -qa | grep httpd
muestra todos los paquetes rpm con el nombre “httpd”rpm -qi package_name
obtiene información en un paquete específico instaladorpm -qg “System Environment/Daemons”
muestra los paquetes rpm de un grupo softwarerpm -ql package_name
muestra lista de ficheros dados por un paquete rpm instaladorpm -qc package_name
muestra lista de configuración de ficheros dados por un paquete rpm instaladorpm -q package_name –whatrequires
muestra lista de dependencias solicitada para un paquete rpmrpm -q package_name –whatprovides
muestra la capacidad dada por un paquete rpmrpm -q package_name –scripts
muestra los scripts comenzados durante la instalación /eliminaciónrpm -q package_name –changelog
muestra el historial de revisions de un paquete rpmrpm -qf /etc/httpd/conf/httpd.conf
verifica cuál paquete rpm pertenece a un fichero dadorpm -qp package.rpm -l
muestra lista de ficheros dados por un paquete rpm que aún no ha sido instaladorpm –import /media/cdrom/RPM-GPG-KEY
importa la firma digital de la llave públicarpm –checksig package.rpm
verifica la integridad de un paquete rpmrpm -qa gpg-pubkey
verifica la integridad de todos los paquetes rpm instaladosrpm -V package_name
comprueba el tamaño del fichero, licencias, tipos, dueño, grupo, chequeo de resumen de MD5 y última modificaciónrpm -Va
comprueba todos los paquetes rpm instalados en el sistema. Usar con cuidadorpm -Vp package.rpm
verifica un paquete rpm no instalado todavíarpm2cpio package.rpm | cpio –extract –make-directories *bin*
extrae fichero ejecutable desde un paquete rpmrpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm
instala un paquete construido desde una fuente rpmrpmbuild –rebuild package_name.src.rpm
construye un paquete rpm desde una fuente rpm
Proceso de arranque del sistema
- BIOS (Basic Input/Output System), en placa base, es el sistema básico que carga el MBR.
- MBR (Master Boot Record). Registro al inicio del disco con el sistema de arranque (GRUB/LILO).
- GRUB (GRand Unified Bootloader). Permite arrancar diferentes sistemas operativos.
- Kernel (Linux). Se carga en memoria y lanza el proceso de arranque
/sbin/init
con PID=1.- Se mantiene hasta el apagado.
- Genera un kernel panic si falla al ejecutarse.
- Es el padre de todos los procesos de primer nivel.
- Si un proceso se queda sin padre, éste pasa a ser su padre.
- Init / Systemd. Lanza los procesos de arranque del sistema operativo.
Init
Tiene diferentes niveles de ejecución (runlevels) definidos en /etc/inittab
. Los scripts de inicio se encuentran en /etc/init.d
y vinculados en /etc/rc.d/rcN.d
donde N es el nivel de ejecución.
Los scripts se ejecutan secuencialmente, hasta que un proceso no termina, no lanza el siguiente.
init 1
cambia al nivel de ejecución monousuario (tambiénS
)init 2
cambia a multiusuario sin redinit 3
cambia a multiusuario con redinit 5
cambia a multiusuario con X
chkconfig --list
lista todos los scripts de iniciochkconfig --list sshd
informa del estado del arranque de sshdchkconfig sshd --level 35 on
configura el arranque de sshd para los niveles 3 y 5chkconfig sshd off
deshabilita sshd en todo los niveles de ejecución
Systemd
Es un sistema de arranque más complejo que Init:
- Comprueba
/etc/systemd/system/default.target
para saber qué hacer. - Un target define una serie de dependencias, que pueden tener dependencias a su vez.
- Lanza las unidades en paralelo, las monitoriza y las relanza si fallan.
Las unidades pueden ser servicios (.service
), puntos de montaje (.mount
), dispositivos (.device
) o sockets (.socket
):
systemctl status
muestra el estado del sistemasystemctl
lista las unidades en ejecución (tambiénsystemctl list-units
)systemctl --failed
lista las unidades que han falladosystemctl list-unit-files
muestra todos los archivos de las unidades instaladas
Los servicios se configuran en /etc/systemd/system
, /usr/lib/systemd/system
, usando ficheros .ini
:
systemctl status sshd.service
comprueba el estado del servicio sshdsystemctl start/stop/restart sshd.service
arranca, detiene o reinicia sshdsystemctl reload sshd.service
recarga la configuración del servicio sshdsystemctl enable/disable sshd.service
habilita o deshabilita sshdsystemctl list-dependencies sshd.service
lista las dependencias de sshd
Utilidades
Compresión y empaquetado de ficheros
bzip2 file1
comprime un fichero con BZIP2bunzip2 file1.bz2
descomprime un fichero BZIP2gzip file1
comprime un fichero con GZIPgzip -9 file1
comprime un fichero con GZIP y compresión máximagunzip file1.gz
descomprime un fichero GZIPzip file1.zip file1
comprime un fichero con ZIPzip -r file1.zip file1 file2 dir1
comprime varios ficheros y directorios de forma simultáneaunzip file1.zip
descomprime un fichero ZIPrar a file1.rar test_file
comprime un fichero con RARrar a file1.rar file1 file2 dir1
comprimefile1
,file2
ydir1
simultáneamenterar x file1.rar
descomprime un fichero RAR (también sirveunrar
)
tar -cvf archive.tar file1 file2 dir1
empaqueta en un fichero TAR los archivosfile1
,file2
y el directoriodir1
tar -tf archive.tar
muestra los contenidos de un fichero TARtar -xvf archive.tar
extrae los archivos y directorios de un fichero TARtar -xvf archive.tar -C /tmp
extrae los archivos y directorios de un fichero TAR en/tmp
tar -cvfj archive.tar.bz2 dir1
crea un fichero TAR comprimido con BZIP2tar -xvfj archive.tar.bz2
descomprime un fichero TAR comprimido con BZIP2tar -cvfz archive.tar.gz dir1
crea un fichero TAR comprimido con GZIPtar -xvfz archive.tar.gz
descomprime un fichero TAR comprimido con GZIP
Copias de seguridad
dump -0aj -f /tmp/home0.bak /home
hace una copia completa del directorio/home
dump -1aj -f /tmp/home0.bak /home
hace una copia incremental del directorio/home
restore -if /tmp/home0.bak
restaura una copia interactivamente
rsync -rogpav –delete /home /tmp
sincroniza entre directoriosrsync -rogpav -e ssh –delete /home ip_address:/tmp
sincroniza usando sshrsync -az -e ssh –delete ip_addr:/home/public /home/local
sincroniza un directorio local con un directorio remoto usando ssh con compresiónrsync -az -e ssh –delete /home/local ip_addr:/home/public
sincroniza un directorio remoto con un directorio local usando ssh con compresión
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz’
hace una copia de un disco duro en un host remoto usando sshdd if=/dev/sda of=/tmp/file1
copia el contenido de un disco duro sda a un fichero file1tar -Puf backup.tar /home/user
hace una copia incremental del directorio/home/user
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’
copia el contenido de un directorio en un directorio remoto usando ssh( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’
copia un directorio local en un directorio remoto usando sshtar cf – . | (cd /tmp/backup ; tar xf – )
copia local manteniendo enlacesfind /home/user1 -name ‘*.txt’ | xargs cp -av –target-directory=/home/backup/ –parents
copia de un directorio a otro todos los ficheros con extensión ‘.txt’find /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2
crea un archivo BZIP2 con todos los ficheros con extensión ‘.log’dd if=/dev/hda of=/dev/fd0 bs=512 count=1
hace una copia del MRB (Master Boot Record) a un disquetedd if=/dev/fd0 of=/dev/hda bs=512 count=1
restaura la copia del MBR (Master Boot Record) de un disquete
Ver el contenido de un fichero
cat file1
muestra los contenidos de un fichero desde la primera líneatac file1
muestra los contenidos de un fichero comenzando por la última líneamore file1
muestra el contenido a lo largo de un ficheroless file1
parecido amore
pero con más versatilidad en la presentaciónhead -n 5 file1
muestra las cinco primeras líneas de un fichero (diez si no se indica-n 5
)tail -n 8 file1
muestra las ocho últimas líneas de un fichero (diez si no se indica-n 8
)tail -f /var/log/messages
muestra en tiempo real cada línea que se añade al ficherotail -f /var/log/messages | grep cadena
muestra cada línea que se añade si contienecadena
wc fic1
cuenta el número de líneas, palabras y bytes que tiene un archivozcat
,zmore
,zless
,zgrep
funcionan como sus equivalentes pero con archivos de texto comprimidos
Manipulación de texto
cat file1 file2 .. | command <> file1_in.txt_or_file1_out.txt
sintaxis general para la manipulación de texto utilizando PIPE, STDIN y STDOUTcat file1 | command( sed, grep, awk, grep, etc…) > result.txt
sintaxis general para manipular un texto de un fichero y escribir el resultado en un fichero nuevocat file1 | command( sed, grep, awk, grep, etc…) >> result.txt
sintaxis general para manipular un texto de un fichero y añadir el resultado en un fichero existentegrep Aug /var/log/messages
busca la cadena “Aug” en el fichero ‘/var/log/messages’grep ^Aug /var/log/messages
busca palabras que comienzan con “Aug” en el fichero ‘/var/log/messages’grep [0-9] /var/log/messages
selecciona todas las líneas del fichero ‘/var/log/messages’ que contienen númerosgrep Aug -R /var/log/*
busca la cadena “Aug” en el árbol del directorio ‘/var/log’sed ‘s/stringa1/stringa2/g’ example.txt
reemplaza “string1” por “string2” en ejemplo.txtsed ‘/^$/d’ example.txt
elimina todas las líneas en blanco del fichero ejemplo.txtsed ‘/ *#/d; /^$/d’ example.txt
elimina comentarios y líneas en blanco del fichero ejemplo.txtecho ‘esempio’ | tr ‘[:lower:]’ ‘[:upper:]’
convierte minúsculas en mayúsculassed -e ‘1d’ result.txt
elimina la primera línea del fichero ejemplo.txtsed -n ‘/stringa1/p’
visualiza solamente las líneas que contienen la palabra “string1”
Conversión de ficheros
iconv -f codificación1 -t codificación2 fic1 > fic2
convierte el ficherofic1
asumiendo que usa la «codificación1» de caracteres afic2
con «codificacion2»iconv -l | more
lista las tablas de codificación de caracteres disponibles
recode ..HTML < page.txt > page.HTML
convierte un fichero de texto en HTMLrecode -l | more
muestra todas las conversiones de formato disponibles
dos2unix filedos.txt fileunix.txt
convierte el formato de un fichero de texto MSDOS a UNIXunix2dos fileunix.txt filedos.txt
convierte el formato de un fichero de texto UNIX a MSDOS
find . -maxdepth 1 -name *.jpg -print -exec convert ”{}” -resize 80×60 “thumbs/{}” \;
redimensiona las imágenes JPG del directorio actual y las guarda en un directorio de miniaturas (requiere ImagemagicK)
Uso de la unidad CD/DVD
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force
limpia o borra un cd regrabablemkisofs /dev/cdrom > cd.iso
crea una imagen iso de cdrom en discomkisofs /dev/cdrom | gzip > cd_iso.gz
crea una imagen comprimida iso de cdrom en discomkisofs -J -allow-leading-dots -R -V “Label CD” -iso-level 4 -o ./cd.iso data_cd
crea una imagen iso de un directoriocdrecord -v dev=/dev/cdrom cd.iso
graba una imagen isogzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom –
graba una imagen iso comprimidamount -o loop cd.iso /mnt/iso
monta una imagen isocd-paranoia -B
lleva canciones de un cd a ficheros WAVcd-paranoia – ”-3”
lleva las 3 primeras canciones de un cd a ficheros WAVcdrecord –scanbus
escanea el bus para identificar el canal scsidd if=/dev/hdc | md5sum
aplica un md5sum en un dispositivo, como un CDwho -a
muestra, entre otros datos, la hora del último arranque del sistema y su nivel de inicio; procesos activos lanzados porinit
, procesos muertos, y quién ha iniciado sesión
Otros comandos útiles
apropos … término
muestra comandos asociados a uno o más términos; útil si se sabe qué hace pero no el nombreman ping
muestra el manual de un comando; usar-k
para encontrar cualquier comando relacionadowhatis comando
muestra un resumen de la función del comandomkbootdisk –device /dev/fd0 `uname -r`
crea un floppy boteablegpg -c file1
codifica un fichero con cifrado GNU Privacy Guardgpg file1.gpg
decodifica un fichero cifrado con GNU Privacy Guardwget -r www.example.com
descarga los recursos de un dominio web completowget -c www.example.com/file.iso
descarga un fichero con la posibilidad de parar y reanudar más adelanteecho ‘wget -c www.example.com/files.iso‘ | at 09:00
comienza una descarga a las 9 horasldd /usr/bin/ssh
muestra las bibliotecas compartidas requeridas por el programa sshalias hh=’history’
crea un alias para que, por ejemplo,–hh
sea–history
chsh
cambia el comando de la terminalchsh –list-shells
es un comando adecuado para saber si tienes que hacer remoto en otra terminal
Referencias
- Linux common commands de Xah Lee.
- Más de 400 comandos para GNU/Linux que deberías conocer, que a su vez recoge de aquí.
- Unix Toolbox
- 20 Linux command tips and tricks that will save you a lot of time
- How to read and work on gzip compressed log files in Linux
- Using alias command in Linux to improve your efficiency
- Linux mount an LVM volume / partition command y Logical Volume Manager para volúmenes lógicos.
- Sistema de arranque Linux (PDF)
Última revisión: 19/08/2021
Dejar un comentario
¿Quieres unirte a la conversación?Siéntete libre de contribuir!