Uso avanzado de la shell
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 !!
con!!
se repite el texto del último comando completocd !$
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
Comandos básicos
cd /var/log
cambia al directorio/var/log
cd
cambia al directorio$HOME
cd ..
retrocede un nivelcd ../..
retrocede dos nivelescd -
regresa al directorio de trabajo anteriorpwd
muestra el camino del directorio actualls
lista las entradas del directorio actualls -F
lista las entradas añadiendo un indicador de tipo a cada unals -la
lista detallada (-l
) y entradas ocultas (-a
) que empiezan por.
ls -la | grep cadena
lista las entradas que contienencadena
ls *[0-9]*
lista las entradas que contienen númerostree
muestra los ficheros y carpetas en forma de árbol (1)lstree
muestra los ficheros y carpetas en forma de árbol (2)
Apagar el sistema
shutdown -h now
init 0
telinit 0
halt
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
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 directoriosrm -f file1
borra el fichero llamadofile1
rmdir dir1
borra el directorio llamadodir1
rm -rf dir1
elimina el directoriodir1
con su contenido de forma recursivarm -rf dir1 dir2
borra dos directorios con su contenido de forma recursivamv dir1 new_dir
renombra o mueve un fichero o directoriocp file1
copia un ficherocp file1 file2
copia dos ficheros al unísonocp dir /* .
copia todos los ficheros de un directorio dentro del directorio de trabajo actualcp -a /tmp/dir1 .
copia un directorio dentro del directorio actual de trabajocp -a dir1
copia un directoriocp -a dir1 dir2
copia dos directorio al unísonoln -s file1 lnk1
crea un enlace simbólico al fichero o directorioln file1 lnk1
crea un enlace físico al fichero o directoriotouch -t 0712250000 file1
modifica el tiempo real (tiempo de creación) de un fichero o directoriofile file1
salida (volcado en pantalla) del tipo mime de un fichero textoiconv -l
listas de cifrados conocidosiconv -f fromEncoding -t toEncoding inputFile > outputFile
crea una nueva forma del fichero de entrada asumiendo que está codificado en fromEncoding y convirtiéndolo a ToEncodingfind . -maxdepth 1 -name *.jpg -print -exec convert ”{}” -resize 80×60 “thumbs/{}” \;
agrupa ficheros redimensionados en el directorio actual y enviarlos a directorios en vistas de miniaturas (requiere convertir desde ImagemagicK)
Encontrar ficheros
find / -name file1
busca fichero y directorio a partir de 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 dentro de 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 cdrom, pen-drive, etc.…locate \*.ps
encuentra ficheros con extensión.ps
ejecutados primeramente con el commandupdatedb
whereis halt
muestra la ubicación de un fichero binario, de ayuda o fuente. En este caso pregunta dónde está el comandohalt
which halt
muestra el camino a un binario/ejecutable
Montar un sistema de ficheros
mount /dev/hda2 /mnt/hda2
monta un disco llamadohda2
. Verifique primero la existencia del directorio/mnt/hda2
; si no está, debe crearloumount /dev/hda2
desmonta un disco llamado hda2. Salir primero desde el punto/mnt/hda2
fuser -km /mnt/hda2
fuerza el desmontaje cuando el dispositivo está ocupadoumount -n /mnt/hda2
corre el desmontaje sin leer el fichero/etc/mtab
. Útil cuando el fichero es de solo lectura o el disco duro está llenomount /dev/cdrom /mnt/cdrom
monta un cdrom / dvdrommount /dev/hdc /mnt/cdrecorder
monta un cd regrabable o un dvdrommount /dev/hdb /mnt/cdrecorder
monta un cd regrabable / dvdrom (un dvd)mount -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 usb pen-drive o una memoria (sin especificar el tipo de sistema de ficheros)
Análisis del sistema de ficheros
badblocks -v /dev/hda1
comprueba los bloques defectuosos en el disco hda1fsck /dev/hda1
repara / comprueba la integridad del fichero del sistema Linux en el disco hda1fsck.ext2 /dev/hda1
repara / comprueba la integridad del fichero del sistema ext 2 en el disco hda1e2fsck /dev/hda1
repara / comprueba la integridad del fichero del sistema ext 2 en el disco hda1e2fsck -j /dev/hda1
repara / comprueba la integridad del fichero del sistema ext 3 en el disco hda1fsck.ext3 /dev/hda1
repara / comprueba la integridad del fichero del sistema ext 3 en el disco hda1fsck.vfat /dev/hda1
repara / comprueba la integridad del fichero sistema fat en el disco hda1fsck.msdos /dev/hda1
repara / comprueba la integridad de un fichero del sistema dos en el disco hda1dosfsck /dev/hda1
repara / comprueba la integridad de un fichero del sistema dos en el disco hda1
Espacio de disco
df -h
muestra una lista de las particiones montadasls -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 instalados, organizados por tamaño (Ubuntu, Debian y otros)
Permisos en ficheros
ls -lh
muestra permisosls /tmp | pr -T5 -W$COLUMNS
divide la terminal en 5 columnaschmod ugo+rwx directory1
pone permisos de lectura (r), escritura (w) y ejecución(x) al propietario (u), al grupo (g) y a otros (o) sobre el directorio ‘directory1’chmod go-rwx directory1
quita permisos de lectura (r), escritura (w) y (x) ejecución al grupo (g) y otros (o) sobre el directorio ‘directory1’chown user1 file1
cambia el propietario de un ficherochown -R user1 directory1
cambia el propietario de un directorio y de todos los ficheros y directorios contenidos dentrochgrp group1 file1
cambia grupo de ficheroschown user1:group1 file1
cambia usuario y el grupo propietario de un ficherofind / -perm -u+s
visualiza todos los ficheros del sistema con SUID configuradochmod u+s /bin/file1
coloca el bit SUID en un fichero binario. El usuario que corriendo ese fichero adquiere los mismos privilegios como dueñochmod u-s /bin/file1
deshabilita el bit SUID en un fichero binariochmod g+s /home/public
coloca un bit SGID en un directorio –similar al SUID pero por directoriochmod g-s /home/public
desabilita un bit SGID en un directoriochmod o+t /home/public
coloca un bit STICKY en un directorio. Permite el borrado de ficheros solamente a los dueños legítimoschmod o-t /home/public
desabilita un bit STICKY en un directorio
Atributos especiales en ficheros
chattr +a file1
permite escribir abriendo un fichero solamente modo appendchattr +c file1
permite que un fichero sea comprimido / descomprimido automaticamentechattr +d file1
asegura que el programa ignore borrar los ficheros durante la copia de seguridadchattr +i file1
convierte el fichero en invariable, por lo que no puede ser eliminado, alterado, renombrado, ni enlazadochattr +s file1
permite que un fichero sea borrado de forma segurachattr +S file1
asegura que un fichero sea modificado, los cambios son escritos en modo synchronous como con syncchattr +u file1
permite recuperar el contenido de un fichero aún si este está canceladolsattr
muestra atributos especiales
Formatear un sistema de ficheros
mkfs /dev/hda1
crea un fichero de sistema tipo Linux en la partición hda1mke2fs /dev/hda1
crea un fichero de sistema tipo Linux ext 2 en hda1mke2fs -j /dev/hda1
crea un fichero de sistema tipo Linux ext3 (periódico) en la partición hda1mkfs -t vfat 32 -F /dev/hda1
crea un fichero de sistema FAT32 en hda1fdformat -n /dev/fd0
formatea un disco flooplymkswap /dev/hda3
crea un fichero de sistema swap
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 fichero de sistema swapswapon /dev/hda3
activa una nueva partición swapswapon /dev/hda2 /dev/hdb3
activa dos particiones swap
Redes
LAN y WiFi
ifconfig eth0
muestra la configuración de una tarjeta de red Ethernetifup eth0
activa una interface ‘eth0’ifdown eth0
deshabilita una interface ‘eth0’ifconfig eth0 192.168.1.1 netmask 255.255.255.0
configura una dirección IPifconfig eth0 promisc
configura ‘eth0’en modo común para obtener los paquetes (sniffing)dhclient eth0
activa la interface ‘eth0’ en modo dhcproute -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 ruta estática para buscar la red ‘192.168.0.0/16’route del 0/0 gw IP_gateway
elimina la ruta estáticaecho “1” > /proc/sys/net/ipv4/ip_forward
activa el recorrido iphostname
muestra el nombre del host del sistemahost 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óm ip y viceversa(2)ip 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 -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
resolución de nombre de red biosnmblookup -A ip_addr
resolución de nombre de 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 filtroiptables -t nat -L
muestra todas las cadenas de la tabla natiptables -t filter -F
limpia todas las reglas de la tabla de filtroiptables -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 sistema
arch
muestra la arquitectura de la máquina (1)uname -m
muestra la arquitectura de la máquina (2)uname -r
muestra la versión del kernel (1)cat /proc/version
muestra la versión del kernel (2)dmidecode -q
muestra los componentes (hardware) del sistemahdparm -i /dev/hda
muestra las características de un disco durohdparm -tT /dev/sda
realiza prueba de lectura en un disco durocat /proc/cpuinfo
muestra información de la CPUcat /proc/interrupts
muestra las interrupcionescat /proc/meminfo
verifica el uso de memoriacat /proc/swaps
muestra ficheros de intercambio (swap)cat /proc/net/dev
muestra adaptadores de red y estadísticascat /proc/mounts
muestra el sistema de ficheros montadolspci -tv
muestra los dispositivos PCIlsusb -tv
muestra los dispositivos USBdate
muestra la fecha del sistemacal 2019
muestra el almanaque de 2019cal 07 2019
muestra el almanaque para el mes julio de 2019date 041217002011.00
ajusta fecha y horaclock -w
guarda los cambios de fecha en la BIOS
Usuarios y grupos
groupadd nombre_grupo
crea un nuevo grupogroupdel nombre_grupo
borra un grupogroupmod -n nuevo_nombre_grupo anterior_nombre_grupo
renombra un grupouseradd -c "Nombre Apellidos" -g admin -d /home/nombre_usuario -s /bin/bash nombre_usuario
crea un nuevo usuario perteneciente al grupoadmin
useradd 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 usuariopasswd
cambia la contraseñapasswd nombre_usuario
cambia la contraseña de un usuario (sólo por root)chage -E 2020-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 2020)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 gruposnewgrp nombre_grupo
registra un nuevo grupo para cambiar el grupo predeterminado de los ficheros creados recientemente
Monitorización y depuración
top
muestra las tareas de linux usando la mayoría cpups -eafw
muestra las tareas Linuxps -e -o pid,args –forest
muestra las tareas Linux en un modo jerárquicopstree
muestra un árbol sistema de procesoskill -9 ID_Processo
fuerza el cierre de un proceso y terminarlokill -1 ID_Processo
fuerza un proceso para recargar la configuraciónlsof -p $$
muestra una lista de ficheros abiertos por procesoslsof /home/user1
muestra una lista de ficheros abiertos en un camino dado del sistemastrace -c ls >/dev/null
muestra las llamadas del sistema hechas y recibidas por un procesostrace -f -e open ls >/dev/null
muestra las llamadas a la bibliotecawatch -n1 ‘cat /proc/interrupts’
muestra interrupciones en tiempo reallast reboot
muestra historial de reiniciolsmod
muestra el kernel cargadofree -m
muestra el estado de la RAM en megabytessmartctl -A /dev/hda
monitoriza la fiabilidad de un disco duro a través de SMARTsmartctl -i /dev/hda
comprueba si SMART está activado en un disco durotail /var/log/dmesg
muestra eventos inherentes al proceso de carga del kerneltail /var/log/messages
muestra los eventos del sistema
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 cache desde los paquetes descargadosapt-cache search searched-package
retorna lista de paquetes que corresponde a la serie «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 lista de ficheros dados por un paquete instalado en el sistemadpkg –contents package.deb
muestra lista de ficheros dados por un paquete no instalado todavíadpkg -S /bin/ping
verifica a qué paquete pertenece a 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
Utilidades
Compresión de ficheros
bunzip2 file1.bz2
descomprime in fichero llamado ‘file1.bz2’bzip2 file1
comprime un fichero llamado ‘file1’gunzip file1.gz
descomprime un fichero llamado ‘file1.gz’gzip file1
comprime un fichero llamado ‘file1’gzip -9 file1
comprime con compresión máximarar a file1.rar test_file
crear un fichero rar llamado ‘file1.rar’rar a file1.rar file1 file2 dir1
comprimir ‘file1’, ‘file2’ y ‘dir1’ simultáneamenterar x file1.rar
descomprimir archivo rarunrar x file1.rar
descomprimir archivo rartar -cvf archive.tar file1
crear un tarball descomprimidotar -cvf archive.tar file1 file2 dir1
crear un archivo conteniendo ‘file1’, ‘file2′ y’dir1’tar -tf archive.tar
mostrar los contenidos de un archivotar -xvf archive.tar
extraer un tarballtar -xvf archive.tar -C /tmp
extraer un tarball en / tmptar -cvfj archive.tar.bz2 dir1
crear un tarball comprimido dentro de bzip2tar -xvfj archive.tar.bz2
descomprimir un archivo tar comprimido en bzip2tar -cvfz archive.tar.gz dir1
crear un tarball comprimido en gziptar -xvfz archive.tar.gz
descomprimir un archive tar comprimido en gzipzip file1.zip file1
crear un archivo comprimido en zipzip -r file1.zip file1 file2 dir1
comprimir, en zip, varios archivos y directorios de forma simultáneaunzip file1.zip
descomprimir un archivo zip
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 interactivamentersync -rogpav –delete /home /tmp
sincroniza entre directoriosrsync -rogpav -e ssh –delete /home ip_address:/tmp
rsync a través del túnel SSHrsync -az -e ssh –delete ip_addr:/home/public /home/local
sincroniza un directorio local con un directorio remoto a través de ssh y de compresiónrsync -az -e ssh –delete /home/local ip_addr:/home/public
sincroniza un directorio remoto con un directorio local a través de ssh y de compresióndd 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 a través de sshdd if=/dev/sda of=/tmp/file1
copia el contenido de un disco duro a un fichero. (En este caso el disco duro es “sda” y el fichero “file1”)tar -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 a través de ssh( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’
copia un directorio local en un directorio remoto a través de sshtar cf – . | (cd /tmp/backup ; tar xf – )
copia local conservando las licencias y enlaces desde un directorio a otrofind /home/user1 -name ‘*.txt’ | xargs cp -av –target-directory=/home/backup/ –parents
encuentra y copiar todos los ficheros con extensión ‘.txt’ de un directorio a otrofind /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2
encuentra todos los ficheros con extensión ‘.log’ y hacer un archivo bzipdd if=/dev/hda of=/dev/fd0 bs=512 count=1
hace una copia del MRB (Master Boot Record) a un disco floppydd if=/dev/fd0 of=/dev/hda bs=512 count=1
restaura la copia del MBR (Master Boot Record) salvada en un floppy
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 -2 file1
muestra las dos primeras líneas de un ficherotail -2 file1
muestra las dos últimas líneas de un ficherotail -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
zcat
,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 STDOUT.cat 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 resultado en un fichero existentegrep Aug /var/log/messages
busca palabras “Aug” en el fichero ‘/var/log/messages’grep ^Aug /var/log/messages
busca palabras que comienzan con “Aug” en 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 directorio ‘/var/log’ y debajosed ‘s/stringa1/stringa2/g’ example.txt
reubica “string1” con “string2” en ejemplo.txtsed ‘/^$/d’ example.txt
elimina todas las líneas en blanco desde el ejemplo.txtsed ‘/ *#/d; /^$/d’ example.txt
elimina comentarios y líneas en blanco de 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
dos2unix filedos.txt fileunix.txt
convierte un formato de fichero texto desde MSDOS a UNIXunix2dos fileunix.txt filedos.txt
convierte un formato de fichero de texto desde UNIX a MSDOSrecode ..HTML page.html
convierte un fichero de texto en htmlrecode -l | more
muestra todas las conversiones de formato disponibles
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 bus para identificar el canal scsidd if=/dev/hdc | md5sum
hace funcionar un md5sum en un dispositivo, como un CD
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 las páginas de manual de un comando; usar-k
para encontrar cualquier comando relacionadowhatis … término
muestra una lista de comandos asociados a uno o más términos del manualmkbootdisk –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 un sitio 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 shellchsh –list-shells
es un comando adecuado para saber si tienes que hacer remoto en otra terminalwho -a
muestra quién está registrado, y muestra hora del último sistema de importación, procesos muertos, procesos de registro de sistema, procesos activos producidos por init, funcionamiento actual y últimos cambios del reloj del sistema
Referencias
- Linux common commands de Xah Lee.
- Más de 400 comandos para GNU/Linux que deberías conocer, que a su vez recoge la información de aquí.
- 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.
Última revisión: 16/07/2020
Dejar un comentario
¿Quieres unirte a la conversación?Siéntete libre de contribuir!