Guía rápida de referencia de comandos útiles de Linux:
- Saber versión de Linux instalada:
cat /etc/*release
- Saber versión de Linux instalada:
- Buscar un fichero:
locate -i fichero
- Buscar un fichero:
- Actualizar indice de búsqueda de ficheros:
updatedb
- Saber hasta cuando tiene soporte Ubuntu:
ubuntu-support-status
- Actualizar indice de búsqueda de ficheros:
- Montar carpeta de red en una carpeta local (crear unidad de red):
sudo mount -t cifs //servidor/carpeta /media/carpeta -o user=usuario%contraseña
- Montar carpeta de red en una carpeta local (crear unidad de red):
- Tamaño de las carpetas del directorio actual, incluidas las ocultas y ordenado por tamaño:
du -sh */ .[^.]*/ | sort -nr
- Tamaño de las carpetas del directorio actual, incluidas las ocultas y ordenado por tamaño:
- Recuperar un listado de paquetes instalados:
apt list --installed
dpkg --get-selections | grep -v deinstall
dpkg-query -l
- Recuperar un listado de paquetes instalados:
- Comprimir archivos y/o carpetas:
tar -cvzf fichero.tar.gz carpeta_a_comprimir
- Comprimir archivos y/o carpetas:
- Descomprimir archivos:
tar -xvzf fichero.tar.gz
- Descomprimir archivos:
- Ver el contenido de un fichero comprimido:
tar -tzf fichero.tar.gz
- Ver el contenido de un fichero comprimido:
- Ver últimos comandos introducidos:
history
- Ver últimos comandos introducidos:
- Vaciar listado de últimos comandos introducidos:
history -c
- Vaciar listado de últimos comandos introducidos:
- Saber nombre del equipo:
hostname
- Saber nombre del equipo:
- Cerrar programa:
pkill nombreprograma
- Cerrar programa:
- Matar proceso:
kill -9 numeroproceso
- Matar proceso:
- Obtener PID del último proceso arrancado:
echo $!
- Obtener PID del último proceso arrancado:
- Obtener PID del proceso indicado:
pidof nombreproceso
- Borrar todas las carpetas .svn del directorio actual :
find . -name .svn -print0 | xargs -0 rm -rf
- Cambiar todos los archivos de un grupo concreto a otro grupo:
find -type f -group users -exec chgrp newusers {} +
- Exportar resultado de una consulta MySQL a un fichero de texto:
SELECT * INTO OUTFILE '/tmp/fichero.txt' FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' FROM tabla;
- Comprobar accesos por SSH en el log:
cat /var/log/auth.log | grep sshd
- Contar ficheros de un directorio:
ls -1 | wc -l
- Borrar ficheros con fecha de creación anterior a 50 días:
find . -maxdepth 2 -ctime +50 -exec rm {} \; //borra uno por uno
find . -maxdepth 2 -ctime +50 -exec rm {} + //borra varios a la vez
- Buscar los archivos de un directorio que contengan la palabra indicada:
grep -r "palabra" /home/directorio/
- Conexión FTP con usuario y contraseña desde Midnight Commander:
cd ftp://usuario:contraseña@ftp.tuweb.com
- Midnight Commander: Abrir la misma carpeta en ambos paneles:
Alt i
- Midnight Commander: Abrir en el otro panel la carpeta seleccionada:
Alt o
- POSTFIX: Forzar envío de mensajes de la cola de correo:
postfix flush
- POSTFIX: Mostrar contenido de un correo en cola:
postcat -q IDCORREO
- POSTFIX: Vaciar cola de mensajes de correo:
postsuper -d ALL
- POSTFIX: Vaciar cola de mensajes para un dominio concreto:
mailq | tail -n +2 | awk 'BEGIN { RS = "" }
# $7=sender, $8=recipient1, $9=recipient2
{ if ($7 == "abc@domain.tld")
print $1 }
' | tr -d '*!' | postsuper -d - - Herramienta para administrar cola de mensajes de correo postfix:
pfqueue
- Borrar todos los ficheros, del directorio actual y subdirectorios, con una determinada extension:
find . -name "*.tmp" -delete
find -name "*.tmp" -exec ls {} \;
- Borrar todos los ficheros del directorio actual con una determinada extension:
find -name "*.tmp" -exec rm {} \;
- Matar todos los procesos cuyo nombre contenga una cadena:
ps aux |grep cadena|grep -v 'grep' |kill -9 $(awk 'print $2}')
- Mostrar datos del último acceso de todos los usuarios, o del usuario indicado
lastlog
- Análisis antivirus con ClamAV:
clamscan -ir
- Actualizar base de datos de ClamAV:
freshclam
- Comprimir varios directorios en archivos tar separados:
ls | awk '{system("tar -czf \""$0"\".tar.gz \""$0"\"")}'
- Ver IPs desde donde hay intentos de acceso por ssh fallidos y mostrar número de intentos:
cat /var/log/auth.log | grep invalid | cut -d " " -f 13-13 | sort| uniq -c
- Ver tiempo que lleva encendido el equipo y carga del sistema (load average):
uptime
w
- Ver cuando se reinicio el sistema:
last reboot
- Borrar todos los archivos indicados en un fichero de texto:
xargs rm < file.txt
- Dar todos los permisos a todas las carpetas del mismo nombre (imagenes):
find . -name imagenes -type d | xargs chmod 777
- Crear Enlaces simbólicos:
ln -s /rutacarpeta nombreenlace
- Buscar ficheros mayores de 300 MBs en el directorio actual:
find . -xdev -type f -size +300M | xargs du -sh
- Saber puertos usados por una aplicación:
netstat -putona | grep PID o PUERTO
- Saber fecha instalacion Linux:
dumpe2fs -h /partición | grep created
tune2fs -l /partición | grep created
ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'
- Buscar en directorio actual archivos modificados los últimos 2 dias:
find . -mtime -2 -print
- Buscar en directorio actual archivos modificados en 2023 y moverlos a carpeta /home:
find -type f -newermt 2023-01-01-not -newermt 2023-12-31 -exec mv {} /home \;
- Liberar espacio en disco eliminando versiones del kernel antiguas:
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
- Reemplazar un texto por otro en todos los .txt del directorio actual (no subdirectorios):
sed -i 's/palabravieja/palabranueva/g' *.txt
- Reemplazar un texto por otro en todos los documentos de cualquier tipo del directorio actual y los subdirectorios:
find . -type f -print0 | xargs -0 sed -i 's/palabravieja/palabranueva/g'
- Montar archivo ISO en unidad virtual:
sudo mount -t udf -o loop imagen.iso /media/imageniso
- Probar puertos UDP abiertos:
nmap -p PUERTO -sU IP_REMOTA
- Obtener MAC de todos los dispositivos de la red local:
sudo nmap -sn 192.168.0.0/24
- POSTFIX: Borrar de la cola de correo los mensajes de una cuenta específica, ej: usuario@dominio.com
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / usuario@dominio\.com/ { print $1 }' | tr -d '*!' | postsuper -d -
- Añadir comillas al inicio de cada línea de un fichero:
sed 's/^/"/' fichero.txt
- Añadir comillas al final de cada línea de un fichero:
sed 's/$/"/' fichero.txt
- Buscar aplicaciones de apt-get:
apt-cache search nombre_aplicacion
- Saber versión de MySQL instalada:
mysql -V
- Saber versión de PHP instalada:
php -v
- Saber versión de apache instalada:
apache2ctl -v
- Listar modulos de apache activados:
apache2ctl -M
- Ver módulos cargados en apache:
/usr/sbin/apache2ctl -t -D DUMP_MODULES
- Activar un modulo de apache (ej. rewrite, mod-evasive...):
a2enmod modulo
- Desactivar un modulo de apache (ej. rewrite, mod-evasive...):
a2dismod modulo
- Mostrar información de samba (ficheros en uso, usuarios conectados...):
smbstatus
- Listar usuarios de samba:
pdbedit -L
- Añadir usuario de samba:
smbpasswd -a nombreusuario
- Crear nuevo usuario con permisos de sudo y creando su carpeta /home:
sudo adduser --ingroup sudo nombreusuario
- Añadir usuario a grupo para que pueda hacer sudo:
sudo usermod -aG sudo nombreusuario
- Encontrar y borrar ficheros vacios en el directorio actual:
find . -empty -type f -delete
- Buscar en el directorio actual ficheros modificados en la última semana, mostrando la fecha de modificación:
find . -mtime -7 -type f -printf "%p %Td-%Tm-%TY %TH:%TM\n"
- Saber versión SSL y TLS soportada por el sistema:
openssl ciphers -v | awk '{print $2}' | sort | uniq
- Saber IP pública:
wget -qO- http://ipecho.net/plain ; echo
- Análisis de sectores defectuosos del disco duro (modo solo-lectura):
badblocks -sv /dev/sda1
- Actualizar cambios en smb.conf sin tener que parar samba:
killall -HUP smbd
- Ver paquetes actualizables:
apt list --upgradable
- Actualizar un único paquete sin que intente instalarlo primero:
apt --only-upgrade install nombre-paquete
- Mostrar cantidad de paquetes para actualizar y cuales de ellos son de seguridad:
/usr/lib/update-notifier/apt-check --human-readable
- Instalar solo actualizaciones de seguridad:
sudo unattended-upgrades -d
- Saber marca, modelo y número de serie del equipo:
sudo dmidecode -t system
- Busca actualizaciones en los repositorios, actualiza los paquetes, borra los paquetes que ya no se usan y borra los paquetes con versiones antiguas sin pedir confirmación:
apt-get update && apt-get upgrade -y && apt-get autoremove -y && apt-get autoclean
- Cambiar idioma del teclado:
sudo dpkg-reconfigure keyboard-configuration
loadkeys us
- Comprobar puertos abiertos de una IP remota
nmap -Pn IP
- Comprobar puertos abiertos y obtener versión sistema operativo
nmap -n -O IP_remota -v
- Analizar tráfico de red:
tcpdump
- Renombrar archivos cambiando el formato de fecha, para pasar por ejemplo de archivo31-12-2018.zip a archivo2018-12-31.zip:
rename 's/([0-9]{2})-([0-9]{2})-([0-9]{4})/$3-$2-$1/' *.zip
- Devolver de log de apache la IP que más se repite y el número de veces que se repite:
cat access.log | cut -d ' ' -f1 | sort | uniq -c | sort -nr |head -n1
- Desactivar y activar tarjeta de red eth0 respectivamente (obsoleto)
ifdown eth0
ifup eth0 - Desactivar y activar tarjeta de red eth0 respectivamente (netplan)
sudo ip link set dev eth0 down
sudo ip link set dev eth0 up