Diferencia entre revisiones de «Página principal»

De covid
Ir a la navegación Ir a la búsqueda
(Página reemplazada por «{|class="wikitable right" border="4" width="20%" cellpadding="3" cellspacing="3" bordercolor="#CD950C" align="right" |----- |rowspan="1" colspan="4" bgcolor="#FF8C69"…»)
Etiqueta: Reemplazo
Línea 1: Línea 1:
= Algunos comandos de GNU/Linux =
+
{|class="wikitable right" border="4" width="20%" cellpadding="3" cellspacing="3" bordercolor="#CD950C" align="right"
 
+
|-----
== Información del sistema ==
+
|rowspan="1" colspan="4" bgcolor="#FF8C69" align="center"|'''División de la [[Historia]] Europea según [[Cristóbal Cellarius]]'''
 
+
|-----
# <code>arch</code>  → mostrar la arquitectura de la máquina (1).
+
|rowspan="1" colspan="4" style="font-size: 125%;" bgcolor="#CDCDB4" align="center"|<small>[[Prehistoria]]
# <code>uname -m</code>  → mostrar la arquitectura de la máquina (2).
+
|-----
# <code>uname -r</code>  → mostrar la versión del kernel usado.
+
|rowspan="2" colspan="1" style="font-size: 125%;" bgcolor="#FFEC8B" align="center"|<small>'''[[Edad Antigua]]'''
# <code>uname -a</code>  → mostrar la información completa.
+
|rowspan="1" colspan="4" style="font-size: 125%;" bgcolor="#CAFF70" align="center"|<small>[[Antigüedad clásica]]
# <code>lsb_release -a</code> → mostrar la información completa de la distribución.
+
|-----
# <code>cat /etc/issue</code>  → mostrar el nombre de la distribución
+
|rowspan="1" colspan="4" style="font-size: 125%;" bgcolor="#CDC673" align="center"|<small>[[Antigüedad tardía]]
# <code>dmidecode -q</code>  → mostrar los componentes (hardware) del sistema.
+
|-----
# <code>hdparm -i /dev/hda</code>  → mostrar las características de un disco duro.
+
|rowspan="3" colspan="1" style="font-size: 125%;" bgcolor="#FFE7BA" align="center"|<small>'''[[Edad Media]]'''
# <code>hdparm -tT /dev/sda</code>  → realizar prueba de lectura en un disco duro.
+
|rowspan="1" colspan="4" style="font-size: 125%;" bgcolor="#CAFF70" align="center"|<small>[[Alta Edad Media]]
# <code>cat /proc/cpuinfo</code>  → mostrar información de la CPU.
+
|-----
# <code>grep -c ^processor /proc/cpuinfo</code> → mostrar número de procesadores.
+
|rowspan="2" colspan="2" style="font-size: 125%;" bgcolor="#FFEC8B" align="center"|<small>[[Baja Edad Media]]
# <code>cat /proc/interrupts</code>  → mostrar las interrupciones.
+
|rowspan="1" colspan="1" style="font-size: 125%;" bgcolor="#FFE7BA" align="right"|<small>[[Plena Edad Media]]
# <code>cat /proc/meminfo</code>  → verificar el uso de memoria.
+
|-----
# <code>cat /proc/swaps</code>  → mostrar ficheros swap.
+
|rowspan="1" colspan="1" style="font-size: 125%;" bgcolor="#CDC673" align="right"|<small>[[Crisis de la Edad Media]]
# <code>cat /proc/version</code>  → mostrar la versión del kernel.
+
|-----
# <code>cat /proc/net/dev</code>  → mostrar adaptadores de red y estadísticas.
+
|rowspan="1" colspan="4" style="font-size: 125%;" bgcolor="#CDCDB4" align="center"|<small>[[siglo XV]]
# <code>cat /proc/mounts</code>  → mostrar el sistema de ficheros montado.
+
|-----
# <code>lscpu</code>  → mostrar información sobre el microprocesador.
+
|rowspan="2" colspan="1" style="font-size: 125%;" bgcolor="#FFEC8B" align="center"|<small>'''[[Edad Moderna]]'''
# <code>lspci -tv</code>  → mostrar los dispositivos PCI.
+
</font color="#473C8B">
# <code>lsusb -tv</code>  → mostrar los dispositivos USB.
+
|rowspan="1" colspan="4" style="font-size: 125%;" bgcolor="#CAFF70" align="center"|<small>[[siglo XVI]]
# <code>lshw</code>  → listar el hardware.
+
|-----
# <code>discover</code>  → listar el hardware.
+
|rowspan="1" colspan="4" style="font-size: 125%;" bgcolor="#CDC673" align="center"|<small>[[siglo XVII]]
# <code>date</code>  → mostrar la fecha del sistema.
+
|-----
# <code>cal 2011</code>  → mostrar el almanaque de 2011.
+
|rowspan="1" colspan="4" style="font-size: 125%;" bgcolor="#CDCDB4" align="center"|<small>[[siglo XVIII]]
# <code>cal 07 2011</code>  → mostrar el almanaque para el mes julio de 2011.
+
|-----
# <code>date 041217002011.00</code>  → colocar (declarar, ajustar) fecha y hora.
+
|rowspan="3" colspan="1" style="font-size: 125%;" bgcolor="#FFE7BA" align="center"|<small>'''{{tc|Edad Contemporánea|color=#473C8B}}'''
# <code>clock -w</code>  → guardar los cambios de fecha en la BIOS.
+
|rowspan="1" colspan="4" style="font-size: 125%;" bgcolor="#CAFF70" align="center"|<small>[[siglo XIX]]
# <code>blkid</code>  → mostrar información (nombre, etiqueta, UUID, tipo de partición) sobre los dispositivos de bloque (discos rígidos, etc.)
+
|-----
 
+
|rowspan="1" colspan="4" style="font-size: 125%;" bgcolor="#CDC673" align="center"|<small>[[siglo XX]]
== Apagar, reiniciar o cerrar sesión ==
+
|-----
 
+
|rowspan="1" colspan="4" style="font-size: 125%;" bgcolor="#CDCDB4" align="center"|<small>[[siglo XXI]]
# <code>shutdown -h now</code>  → apagar el sistema (1).
+
|}
# <code>init 0</code>  → apagar el sistema (2).
 
# <code>telinit 0</code>  → apagar el sistema (3).
 
# <code>halt</code>  → apagar el sistema (4).
 
# <code>poweroff</code> → apagar sistema (5).
 
# <code>shutdown -h hours:minutes &amp;</code> → apagado planificado del sistema.
 
# <code>shutdown -c</code>  → cancelar un apagado planificado del sistema.
 
# <code>shutdown -r now</code>  → reiniciar (1).
 
# <code>reboot</code>  → reiniciar (2).
 
# <code>logout</code>  → cerrar sesión.
 
# <code>skill nombre_de_usuario</code>  → cerrar sesión (2)<sup>[[1)]]</sup>
 
# <code>exit</code>  → salir del intérprete de comandos (si solo hay uno, equivale a cerrar sesión).
 
 
 
== Gestionar archivos y directorios ==
 
 
 
# <code>cd</code>  → ir al directorio personal.
 
# <code>cd /home</code>  → cambiar al directorio “/home”.
 
# <code>cd ..</code>  → retroceder un nivel.
 
# <code>cd ../..</code>  → retroceder 2 niveles.
 
# <code>cd ~user1</code>  → ir al directorio user1.
 
# <code>cd -</code>  → ir (regresar) al directorio anterior.
 
# <code>pwd</code>  → mostrar el camino del directorio actual.
 
# <code>ls</code>  → listar el contenido de un directorio.
 
# <code>ls -F</code>  → listar el contenido de un directorio (distinguiendo los directorios con una barra)
 
# <code>ls -l</code>  → listar el contenido de un directorio, mostrando los detalles.
 
# <code>ls -lh</code>  → listar el contenido de un directorio, mostrando los detalles (y el tamaño en un formato “humanizado”).
 
# <code>ls -a</code>  → listar el contenido de un directorio, incluendo los ficheros ocultos.
 
# <code>ls *[0-9]</code>  → listar los ficheros y carpetas que contienen números.
 
# <code>ls -laR | less </code>  → listar recursivamente el contenido del directorio actual y todos los subdirectorios y archivos, incluyendo los ocultos, separados por página.
 
# <code>tree</code>  → mostrar los ficheros y carpetas en forma de árbol comenzando por la raíz.(1)
 
# <code>lstree</code>  → mostrar los ficheros y carpetas en forma de árbol comenzando por la raíz.(2)
 
# <code>mkdir dir1</code>  → crear un directorio de nombre &#039;dir1&#039;.
 
# <code>mkdir dir1 dir2</code>  → crear dos directorios a la vez (en la ubicación actual).
 
# <code>mkdir -p /tmp/dir1/dir2</code>  → crear una estructura de directorios, si no existe.
 
# <code>rm file1</code>  → eliminar el archivo &#039;file1&#039;.
 
# <code>rm -f file1</code>  → eliminar el archivo &#039;file1&#039; en modo forzado.
 
# <code>rmdir dir1</code>  → borrar el directorio &#039;dir1&#039;.
 
# <code>rm -rf dir1</code>  → eliminar recursivamente y en modo forzado el directorio &#039;dir1&#039; con todo lo que contenga.
 
# <code>rm -rf dir1 dir2</code>  → borrar dos directorios con su contenido de forma recursiva.
 
# <code>mv dir1 new_dir</code>  → renombrar o mover un fichero o carpeta (directorio).
 
# <code>cp file1 destino/</code>  → copiar un fichero al destino elegido.
 
# <code>cp file1 file2 destino/</code>  → copiar a la vez dos ficheros a un mismo directorio.
 
# <code>cp file1 file2</code>  → copiar file1 en file2.
 
# <code>cp dir /* .</code>  → copiar todos los ficheros de un directorio dentro del directorio de trabajo actual.
 
# <code>cp -a /tmp/dir1 .</code>  → copiar un directorio dentro del directorio actual de trabajo.
 
# <code>cp -a dir1</code>  → copiar un directorio.
 
# <code>cp -a dir1 dir2</code>  → copiar dos directorio al unísono.
 
# <code>ln -s file1 lnk1</code>  → crear un enlace simbólico al fichero o directorio.
 
# <code>ln file1 lnk1</code>  → crear un enlace físico al fichero o directorio.
 
# <code>touch file1</code>  → actualizar la fecha de modificación de file1, o crearlo si no existe.
 
# <code>touch -t 0712250000 file1</code>  → modificar el tiempo real (tiempo de creación) de un fichero o directorio.
 
# <code>file file1</code>  → salida (volcado en pantalla) del tipo mime de un fichero texto.
 
# <code>iconv -l</code>  → listas de cifrados conocidos.
 
# <code>iconv -f fromEncoding -t toEncoding inputFile &gt; outputFile</code>  → crea una nueva forma del fichero de entrada asumiendo que está codificado en fromEncoding y convirtiéndolo a ToEncoding.
 
 
 
== Encontrar archivos ==
 
 
 
# <code>find / -name file1</code>  → buscar fichero y directorio a partir de la raíz del sistema.
 
# <code>find / -user user1</code>  → buscar ficheros y directorios pertenecientes al usuario “user1”.
 
# <code>find /home/user1 -name \*.bin</code>  → buscar ficheros con extensión ”. bin” dentro del directorio <code>/ home/user1</code>.
 
# <code>find /usr/bin -type f -atime +100</code>  → buscar ficheros binarios no usados en los últimos 100 días.
 
# <code>find /usr/bin -type f -mtime -10</code>  → buscar ficheros creados o cambiados dentro de los últimos 10 días.
 
# <code>find / -name \*.rpm -exec chmod 755 &#039;{}&#039; \;</code>  → buscar ficheros con extensión ”.rpm” y modificar permisos.
 
# <code>find . -type f -exec grep -nH –color=auto ‘echo’ {} \;</code>  →  Buscando la palabra “echo” en todos los archivos y directorios de la ruta local, muestra el nombre del archivo y su ruta donde encontró la palabra, muestra el numero de linea donde esta la palabra y coloca en color rojo la palabra buscada.
 
# <code>find . -type f -print0 | xargs -0 chmod 644</code>  → modificar recursivamente los permisos a todos los ficheros bajo el directorio actual.
 
# <code>find / -xdev -name \*.rpm</code>  → Buscar ficheros con extensión &#039;.rpm&#039; ignorando los dispositivos removibles como  cdrom, pen-drive, etc.…
 
# <code>find . -maxdepth 1 -name *.jpg -print -exec convert &quot;{}&quot; -resize 80&times;60 &quot;thumbs/{}&quot; \;</code>  → agrupar ficheros redimensionados en el directorio actual y enviarlos a directorios en vistas de miniaturas (requiere convertir desde Imagemagick).
 
# <code>find /tmp/dir1 -depth -regextype posix-extended -regex &#039;.*(\s+|:+|\\+|&gt;+|&lt;+|&quot;+|\*+|\?+|\|+).*&#039; -execdir rename &#039;s/(\s+|:+|\\+|&gt;+|&lt;+|”+|\*+|\?+|\|+)/_/g&#039; &quot;{}&quot; \;</code>  → renombrar recursivamente todos los directorios y ficheros bajo <code>/tmp/dir1</code>, cambiando los espacios y otros caracteres extraños por guiones bajos.
 
# <code>locate \*.ps</code>  → encuentra ficheros con extensión ”.ps” ejecutados primeramente con el command <code>updatedb</code>.
 
# <code>whereis halt</code>  → mostrar la ubicación de un fichero binario, de ayuda o fuente. En este caso pregunta dónde está el comando <code>halt</code>.
 
# <code>which comando</code>  → mostrar la ruta completa a un comando.
 
 
 
== Montando un sistema de ficheros ==
 
 
 
# <code>mount /dev/hda2 /mnt/hda2</code>  → montar un disco llamado hda2. Verifique primero la existencia del directorio &#039;/ mnt/hda2&#039;; si no está, debe crearlo.
 
# <code>umount /dev/hda2</code>  → desmontar un disco llamado hda2. (Antes es necesario salir del punto &#039;/mnt/hda2&#039;.
 
# <code>fuser -km /mnt/hda2</code>  → forzar el desmontaje cuando el dispositivo está ocupado.
 
# <code>umount -n /mnt/hda2</code>  → correr el desmontaje sin leer el fichero /etc/mtab. Útil cuando el fichero es de solo lectura o el disco duro está lleno.
 
# <code>mount /dev/fd0 /mnt/floppy</code>  → montar un disco flexible (floppy).
 
# <code>mount /dev/cdrom /mnt/cdrom</code>  → montar un cdrom / dvdrom.
 
# <code>mount /dev/hdc /mnt/cdrecorder</code>  → montar un cd regrabable o un dvdrom.
 
# <code>mount /dev/hdb /mnt/cdrecorder</code>  → montar un cd regrabable / dvdrom (un dvd).
 
# <code>mount -t udf,iso9660 -o loop file.iso /mnt/cdrom</code>  → montar un fichero de imagen de un medio óptico (como un CD o DVD en formato ISO).
 
# <code>mount -t vfat /dev/hda5 /mnt/hda5</code>  → montar un sistema de ficheros FAT32.
 
# <code>mount -t ntfs-3g /dev/hda5 /mnt/hda5</code>  → montar un sistema de ficheros NTFS.
 
# <code>mount /dev/sda1 /mnt/usbdisk</code>  → montar un usb pen-drive o una memoria (sin especificar el tipo de sistema de ficheros).
 
 
 
== Espacio en disco ==
 
 
 
# <code>df -h</code>  → mostrar una lista de las particiones montadas.
 
# <code>ls -lSr | more</code>  → mostrar el tamaño de los ficheros y directorios ordenados por tamaño.
 
# <code>du -sh dir1</code>  → Estimar el espacio usado por el directorio &#039;dir1&#039;.
 
# <code>du -sk * | sort -nr</code>  → mostrar en orden descendente el tamaño de los ficheros y subdirectorios en la ubicación actual, en KiB.
 
# <code>du -h --max-depth=1 | sort -nr</code>  → mostrar en orden descendente el tamaño de todos los subdirectorios en la ubicación actual, usando unidades de medida adaptables.
 
# <code>du -k --max-depth=1 | sort -k1 -nr | awk &#039;{printf &quot;%.3f GiB\t%s\n&quot;, $1/(1048576), $2}&#039; | less</code>  → mostrar en orden descendente el tamaño de los directorios y archivos, en GiB.
 
# <code>rpm -q -a --qf &#039;%10{SIZE}t%{NAME}n&#039; | sort -k1,1n</code>  → mostrar el espacio usado por los paquetes rpm instalados organizados por tamaño (Fedora, Redhat y otros).
 
# <code>dpkg-query -W -f=&#039;${Package}\t${Installed-Size}\n&#039; | sort -k 2 -nr | grep -v deinstall | head -n 25 | awk &#039;{printf &quot;%.3f MB\t%s\n&quot;, $2/(1024), $1}</code>&#039;  → mostrar (en Debian o derivadas) un listado con los 25 paquetes instalados que más espacio consumen (en orden descendente).
 
 
 
== Usuarios y grupos ==
 
 
 
# <code>groupadd nombre_del_grupo</code>  → crear un nuevo grupo.
 
# <code>groupdel nombre_del_grupo</code>  → borrar un grupo.
 
# <code>groupmod -n nuevo_nombre_del_grupo viejo_nombre_del_grupo</code>  → renombrar un grupo.
 
# <code>adduser usuario1</code>  → Crear un nuevo usuario, mediante un asistente.
 
# <code>useradd -c &quot;Nombre Apellido&quot; -g admin -d /home/usuario1 -s /bin/bash usuario1</code>  → Crear un nuevo usuario perteneciente al grupo “admin”.
 
# <code>useradd usuario1</code>  → crear un nuevo usuario.
 
# <code>userdel -r usuario1</code>  → borrar un usuario, eliminando su directorio Home.
 
# <code>usermod -c &quot;Usuario de FTP&quot; -g system -d /ftp/usuario1 -s /sbin/nologin usuario1</code>  → cambiar los atributos de un usuario.
 
# <code>usermod -aG plugdev,dialout,pip user1</code>  → agregar el usuario user1 a otros grupos existentes, para incrementar sus permisos (en este caso, agregar la posibilidad de conectar dispositivos, configurar y utilizar el modem)
 
# <code>passwd</code>  → cambiar contraseña.
 
# <code>passwd usuario1</code>  → cambiar la contraseña de &#039;usuario1&#039; (solamente ejecutable como superusuario).
 
# <code>chage -E 2011-12-31 user1</code>  → colocar un plazo para la contraseña del usuario. En este caso dice que la clave expira el 31 de diciembre de 2011.
 
# <code>pwck</code>  → chequear la sintaxis correcta el formato de fichero de &#039;/etc/passwd&#039; y la existencia de usuarios.
 
# <code>grpck</code>  → chequear la sintaxis correcta y el formato del fichero &#039;/etc/group&#039; y la existencia de grupos.
 
# <code>newgrp grupo1</code>  → registra a un nuevo grupo para cambiar el grupo predeterminado de los ficheros creados recientemente.
 
 
 
== Permisos en ficheros (usar "+" para colocar permisos y "-" para eliminar) ==
 
 
 
# <code>ls -lh</code>  → Mostrar permisos.
 
# <code>ls /tmp | pr -T5 -W$COLUMNS</code>  → dividir la terminal en 5 columnas.
 
# <code>chmod ugo+rwx directory1</code>  → colocar permisos de lectura ®, escritura (w) y ejecución(x) al propietario (u), al grupo (g) y a otros (o) sobre el directorio &#039;directory1&#039;.
 
# <code>chmod go-rwx directory1</code>  → quitar permiso de lectura ®, escritura (w) y (x) ejecución al grupo (g) y otros (o) sobre el directorio &#039;directory1&#039;.
 
# <code>chown user1 file1</code>  → cambiar el dueño de un fichero.
 
# <code>chown -R user1 directory1</code>  → cambiar el propietario de un directorio y de todos los ficheros y directorios contenidos dentro.
 
# <code>chgrp group1 file1</code>  → cambiar grupo de ficheros.
 
# <code>chown user1:group1 file1</code>  → cambiar usuario y el grupo propietario de un fichero.
 
# <code>find / -perm -u+s</code>  → visualizar todos los ficheros del sistema con SUID configurado.
 
# <code>chmod u+s /bin/file1</code>  → colocar el bit SUID en un fichero binario. El usuario que corriendo ese fichero adquiere los mismos privilegios como dueño.
 
# <code>chmod u-s /bin/file1</code>  → deshabilitar el bit SUID en un fichero binario.
 
# <code>chmod g+s /home/public</code>  → colocar un bit SGID en un directorio –similar al SUID pero por directorio.
 
# <code>chmod g-s /home/public</code>  → desabilitar un bit SGID en un directorio.
 
# <code>chmod o+t /home/public</code>  → colocar un bit STIKY en un directorio. Permite el borrado de ficheros solamente a los dueños legítimos.
 
# <code>chmod o-t /home/public</code>  → desabilitar un bit STIKY en un directorio.
 
 
 
== Atributos especiales en ficheros (usar "+" para colocar permisos y "-" para eliminar) ==
 
 
 
# <code>chattr +a file1</code>  → permite escribir abriendo un fichero solamente modo append.
 
# <code>chattr +c file1</code>  → permite que un fichero sea comprimido / descomprimido automaticamente.
 
# <code>chattr +d file1</code>  → asegura que el programa ignore borrar los ficheros durante la copia de seguridad.
 
# <code>chattr +i file1</code>  → convierte el fichero en inmutable o invariable, por lo que no puede ser eliminado, alterado, renombrado, ni enlazado.
 
# <code>chattr +s file1</code>  → permite que un fichero sea borrado de forma segura.
 
# <code>chattr +S file1</code>  → asegura que un fichero sea modificado, los cambios son escritos en modo synchronous como con sync.
 
# <code>chattr +u file1</code>  → te permite recuperar el contenido de un fichero aún si este está cancelado.
 
# <code>lsattr</code>  → mostrar atributos especiales.
 
 
 
== Archivos y ficheros comprimidos ==
 
 
 
# <code>7za a -mx=9 -ms=on -mhe=on -p archivocomprimido directorio1 archivo1 archivo2</code>  → comprimir un directorio y dos archivos en formato 7zip, con compresión sólida máxima, y protección por contraseña (la extensión 7z se agrega automáticamente).
 
# <code>7za x archivocomprimido.7z</code>  → extraer un archivo comprimido en 7zip (7zip también permite descomprimir otros formatos, como por ejemplo, zip).
 
# <code>bunzip2 file1.bz2</code>  → descomprime in fichero llamado &#039;file1.bz2&#039;.
 
# <code>bzip2 file1</code>  → comprime un fichero llamado &#039;file1&#039;.
 
# <code>gunzip file1.gz</code>  → descomprime un fichero llamado &#039;file1.gz&#039;.
 
# <code>gzip file1</code>  → comprime un fichero llamado &#039;file1&#039;.
 
# <code>gzip -9 file1</code>  → comprime con compresión máxima.
 
# <code>rar a file1.rar test_file</code>  → crear un fichero rar llamado &#039;file1.rar&#039;.
 
# <code>rar a file1.rar file1 file2 dir1</code>  → comprimir &#039;file1&#039;, &#039;file2&#039; y &#039;dir1&#039; simultáneamente.
 
# <code>rar x file1.rar</code>  → descomprimir archivo rar.
 
# <code>unrar x file1.rar</code>  → descomprimir archivo rar.
 
# <code>tar -cvf archive.tar file1</code>  → crear un tarball descomprimido.
 
# <code>tar -cvf archive.tar file1 file2 dir1</code>  → crear un archivo conteniendo &#039;file1&#039;, &#039;file2&#039; y&#039;dir1&#039;.
 
# <code>tar -tf archive.tar</code>  → mostrar los contenidos de un archivo.
 
# <code>tar -xvf archive.tar</code>  → extraer un tarball (si el archivo además está comprimido con gzip, bzip2 o xz, descomprimirlo automáticamente).
 
# <code>tar -xvf archive.tar -C /tmp</code>  → extraer un tarball en /tmp.
 
# <code>tar -cjvf archive.tar.bz2 dir1</code>  → crear un tarball comprimido en bzip2.
 
# <code>tar -xjvf archive.tar.bz2</code>  → descomprimir un archivo tar comprimido en bzip2
 
# <code>tar -cJvf archive.tar.xz dir1</code>  → crear un tarball comprimido en xz.
 
# <code>XZ_OPT=-9e tar -cJvf archive.tar.xz dir1</code>  → crear un tarball comprimido en xz (con máxima compresión).
 
# <code>tar -xJvf archive.tar.xz</code>  → descomprimir un archivo tar comprimido en xz.
 
# <code>tar -czvf archive.tar.gz dir1</code>  → crear un tarball comprimido en gzip.
 
# <code>tar -I pigz -cf archive.tar.gz dir1</code>  → crear un tarball comprimido en gzip, pero utilizando <code>pigz</code>, que comprime en paralelo aprovechando todos los núcleos de los microprocesadores del equipo.
 
# <code>GZIP=-9 tar -czvf archive.tar.gz dir1</code>  → crear un tarball comprimido en gzip (con máxima compresión).
 
# <code>tar -xzvf archive.tar.gz</code>  → descomprimir un archive tar comprimido en gzip.
 
# <code>zip file1.zip file1</code>  → crear un archivo comprimido en zip.
 
# <code>zip -r file1.zip file1 file2 dir1</code>  → comprimir, en zip, varios archivos y directorios de forma simultánea.
 
# <code>unzip file1.zip</code>  → descomprimir un archivo zip.
 
 
 
== Paquetes rpm (Red Hat, Fedora y similares) ==
 
 
 
# <code>rpm -ivh package.rpm</code>  → instalar un paquete rpm.
 
# <code>rpm -ivh --nodeeps package.rpm</code>  → instalar un paquete rpm ignorando las peticiones de dependencias.
 
# <code>rpm -U package.rpm</code>  → actualizar un paquete rpm sin cambiar la configuración de los ficheros.
 
# <code>rpm -F package.rpm</code>  → actualizar un paquete rpm solamente si este está instalado.
 
# <code>rpm -e package_name.rpm</code>  → eliminar un paquete rpm.
 
# <code>rpm -qa</code>  → mostrar todos los paquetes rpm instalados en el sistema.
 
# <code>rpm -qa | grep httpd</code>  → mostrar todos los paquetes rpm con el nombre “httpd”.
 
# <code>rpm -qi package_name</code>  → obtener información en un paquete específico instalado.
 
# <code>rpm -qg &quot;System Environment/Daemons&quot;</code>  → mostar los paquetes rpm de un grupo software.
 
# <code>rpm -ql package_name</code>  → mostrar lista de ficheros dados por un paquete rpm instalado.
 
# <code>rpm -qc package_name</code>  → mostrar lista de configuración de ficheros dados por un paquete rpm instalado.
 
# <code>rpm -q package_name --whatrequires</code>  → mostrar lista de dependencias solicitada para un paquete rpm.
 
# <code>rpm -q package_name --whatprovides</code>  → mostar la capacidad dada por un paquete rpm.
 
# <code>rpm -q package_name --scripts</code>  → mostrar los scripts comenzados durante la instalación /eliminación.
 
# <code>rpm -q package_name --changelog</code>  → mostar el historial de revisions de un paquete rpm.
 
# <code>rpm -qf /etc/httpd/conf/httpd.conf</code>  → verificar cuál paquete rpm pertenece a un fichero dado.
 
# <code>rpm -qp package.rpm -l</code>  → mostrar lista de ficheros dados por un paquete rpm que aún no ha sido instalado.
 
# <code>rpm --import /media/cdrom/RPM-GPG-KEY</code>  → importar la firma digital de la llave pública.
 
# <code>rpm --checksig package.rpm</code>  → verificar la integridad de un paquete rpm.
 
# <code>rpm -qa gpg-pubkey</code>  → verificar la integridad de todos los paquetes rpm instalados.
 
# <code>rpm -V package_name</code>  → chequear el tamaño del fichero, licencias, tipos, dueño, grupo, chequeo de resumen de MD5 y última modificación.
 
# <code>rpm -Va</code>  → chequear todos los paquetes rpm instalados en el sistema. Usar con cuidado.
 
# <code>rpm -Vp package.rpm</code>  → verificar un paquete rpm no instalado todavía.
 
# <code>rpm2cpio package.rpm | cpio --extract --make-directories *bin</code>  → extraer fichero ejecutable desde un paquete rpm.
 
# <code>rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm</code>  → instalar un paquete construido desde una fuente rpm.
 
# <code>rpmbuild --rebuild package_name.src.rpm</code>  → construir un paquete rpm desde una fuente rpm.
 
 
 
== Actualizador de paquetes yum (Fedora, Redhat y otros) ==
 
 
 
# <code>yum install package_name</code>  → descargar e instalar un paquete rpm.
 
# <code>yum localinstall package_name.rpm</code>  → este instalará un RPM y tratará de resolver todas las dependencies para ti, usando tus repositorios.
 
# <code>yum update</code>  → actualizar todos los paquetes rpm instalados en el sistema.
 
# <code>yum update package_name</code>  → modernizar / actualizar un paquete rpm.
 
# <code>yum remove package_name</code>  → eliminar un paquete rpm.
 
# <code>yum list</code>  → listar todos los paquetes instalados en el sistema.
 
# <code>yum search package_name</code>  → Encontrar un paquete en repositorio rpm.
 
# <code>yum clean packages</code>  → limpiar un caché rpm borrando los paquetes descargados.
 
# <code>yum clean headers</code>  → eliminar todos los ficheros de encabezamiento que el sistema usa para resolver la dependencia.
 
# <code>yum clean all</code>  → eliminar desde los paquetes caché y ficheros de encabezado.
 
 
 
== Gestión de paquetes deb (Debian, Ubuntu y otros) ==
 
 
 
# <code>dpkg -i elpaquete.deb</code>  → instalar / actualizar un paquete.
 
# <code>dpkg -r elpaquete</code>  → eliminar un paquete deb del sistema.
 
# <code>dpkg -l</code>  → mostrar todos los paquetes deb instalados en el sistema.
 
# <code>dpkg -l | grep httpd</code>  → mostrar todos los paquetes deb con el nombre “httpd”
 
# <code>dpkg -s elpaquete</code>  → obtener información en un paquete específico instalado en el sistema.
 
# <code>dpkg -L elpaquete</code>  → mostar lista de ficheros utilizados por un paquete instalado en el sistema.
 
# <code>dpkg -c elpaquete.deb</code>  → mostrar contenido de un paquete (no necesariamente instalado).
 
# <code>dpkg -S /bin/ping</code>  → verificar a qué paquete pertenece un fichero dado.
 
 
 
== Actualizador de paquetes apt y aptitude (Debian, Ubuntu y otros) ==
 
 
 
# <code>apt-get install package_name</code>  → instalar / actualizar un paquete deb.
 
# <code>apt-cdrom install package_name</code>  → instalar / actualizar un paquete deb desde un cdrom.
 
# <code>apt-get update</code>  → actualizar la lista de paquetes.
 
# <code>apt-get upgrade</code>  → actualizar todos los paquetes instalados.
 
# <code>apt-get remove package_name</code>  → eliminar un paquete deb del sistema.
 
# <code>apt-get check</code>  → verificar la correcta resolución de las dependencias.
 
# <code>apt-get clean</code>  → limpiar cache desde los paquetes descargados.
 
# <code>apt-cache search searched-package</code>  → retorna lista de paquetes que corresponde a la serie «paquetes buscados».
 
# <code>aptitude search paquete</code>  → busca un paquete por el nombre.
 
# <code>aptitude search ~dpaquete</code>  → busca un paquete por la descripción.
 
# <code>aptitude show paquete | less</code>  → muestra información sobre un paquete.
 
# <code>aptitude install paquete1 paquete2 …</code>  → instala varios paquetes con sus dependencias y recomendaciones.
 
# <code>aptitude -R install paquete</code>  → instala un paquete con sus dependencias, pero sin las recomendaciones.
 
# <code>aptitude why paquete</code>  → lista las razones por las que se debería instalar el paquete.
 
# <code>aptitude why-not paquete</code>  → lista las razones por las que no se puede instalar el paquete.
 
# <code>aptitude -rsvW install paquete</code>  → simula la instalación de un paquete con sus dependencias y recomendaciones, detallando cada una.
 
# <code>aptitude remove paquete</code>  → desinstala un paquete.
 
# <code>aptitude purge paquete</code>  → desinstala un paquete y lo limpia de la cache.
 
# <code>aptitude clean</code>  → limpia la cache de paquetes.
 
# <code>apt-file -xi search &#039;sql</code>&#039;  → busca todos los paquetes que contengan un archivo o directorio con la expresión ''sql'' (sin considerar mayúsculas o minúsculas).<sup>[[3)]]</sup>
 
 
 
== Ver el contenido de un fichero ==
 
 
 
# <code>cat file1</code>  → ver los contenidos de un fichero comenzando desde la primera línea.
 
# <code>tac file1</code>  → ver los contenidos de un fichero comenzando desde la última línea.
 
# <code>more file1</code>  → ver el contenido de un fichero de manera paginada.
 
# <code>less file1</code>  → parecido al commando &#039;more&#039; pero permite avanzar, retroceder, y buscar (compatible con algunos comandos de <code>vi</code>).
 
# <code>head -2 file1</code>  → ver las dos primeras líneas de un fichero (ó 10, si no se especifica la cantidad de líneas).
 
# <code>tail -2 file1</code>  → ver las dos últimas líneas de un fichero (ó 10, si no se especifica la cantidad de líneas).
 
 
 
== Manipulación de texto ==
 
 
 
# <code>cat file1 file2 … | command &lt;&gt; file1_in.txt_or_file1_out.txt</code>  → sintaxis general para la manipulación de texto utilizando PIPE, STDIN y STDOUT.
 
# <code>cat file1 | command( sed, grep, awk, grep, etc…) &gt; result.txt</code>  → sintaxis general para manipular un texto de un fichero y escribir el resultado en un fichero nuevo.
 
# <code>cat file1 | command( sed, grep, awk, grep, etc…) &gt;&gt; result.txt</code>  → sintaxis general para manipular un texto de un fichero y añadir resultado en un fichero existente.
 
# <code>grep Aug /var/log/messages</code>  → buscar palabras “Aug” en el fichero  &#039;/var/log/messages&#039;.
 
# <code>grep ^Aug /var/log/messages</code>  → buscar palabras que comienzan con “Aug” en fichero &#039;/var/log/messages&#039;
 
# <code>grep [0-9] /var/log/messages</code>  → seleccionar todas las líneas del fichero &#039;/var/log/messages&#039; que contienen números.
 
# <code>grep Aug -R /var/log/</code>  → buscar la cadena “Aug” en el  directorio &#039;/var/log&#039; y debajo.
 
# <code>sed &#039;s/string1/string2/g&#039; ejemplo.txt</code>  → reemplazar en ejemplo.txt todas las ocurrencias de “string1” con “string2”
 
# <code>sed &#039;/^$/d&#039; ejemplo.txt</code>  → eliminar todas las líneas en blanco desde el ejemplo.txt
 
# <code>sed &#039;/ *#/d; /^$/d&#039; ejemplo.txt</code>  → eliminar comentarios y líneas en blanco de ejemplo.txt
 
# <code>echo &#039;ejemplo&#039; | tr &#039;[:lower:]&#039; &#039;[:upper:]</code>&#039;  → convertir “ejemplo” de minúsculas a mayúsculas.
 
# <code>sed -e &#039;1d&#039; ejemplo.txt</code>  → elimina la primera línea del fichero ejemplo.txt
 
# <code>sed -n &#039;/string1/p</code>&#039;  → visualizar solamente las líneas que contienen la palabra “string1”.
 
# <code>sed -r &#039;s/(cadena1)(cadena2)/\2\1/g</code>&#039;  → utilizar expresiones regulares extendidas para intercambiar el orden de dos cadenas de texto, en todas las instancias que aparezcan.
 
 
 
== Establecer caracter y conversión de ficheros ==
 
 
 
# <code>dos2unix filedos.txt fileunix.txt</code>  → convertir un formato de fichero texto desde MSDOS a UNIX.
 
# <code>unix2dos fileunix.txt filedos.txt</code>  → convertir un formato de fichero de texto desde UNIX a MSDOS.
 
# <code>recode ..HTML &lt; page.txt &gt; page.html</code>  → convertir un fichero de texto en html.
 
# <code>recode -l | more</code>  → mostrar todas las conversiones de formato disponibles.
 
 
 
== Análisis del sistema de ficheros ==
 
 
 
# <code>badblocks -v /dev/hda1</code>  → Chequear los bloques defectuosos en el disco hda1.
 
# <code>fsck /dev/hda1</code>  → reparar / chequear la integridad del fichero del sistema Linux en el disco hda1.
 
# <code>fsck.ext2 /dev/hda1</code>  → reparar / chequear la integridad del fichero del sistema ext 2 en el disco hda1.
 
# <code>e2fsck /dev/hda1</code>  → reparar / chequear la integridad del fichero del sistema ext 2 en el disco hda1.
 
# <code>e2fsck -j /dev/hda1</code>  → reparar / chequear la integridad del fichero del sistema ext 3 en el disco hda1.
 
# <code>fsck.ext3 /dev/hda1</code>  → reparar / chequear la integridad del fichero del sistema ext 3 en el disco hda1.
 
# <code>fsck.vfat /dev/hda1</code>  → reparar / chequear la integridad del fichero sistema fat en el disco hda1.
 
# <code>fsck.msdos /dev/hda1</code>  → reparar / chequear la integridad de un fichero del sistema dos en el disco hda1.
 
# <code>dosfsck /dev/hda1</code>  → reparar / chequear la integridad de un fichero del sistema dos en el disco hda1.
 
 
 
== Formatear un sistema de ficheros ==
 
 
 
# <code>mkfs /dev/hda1</code>  → crear un fichero de sistema tipo Linux en la partición hda1.
 
# <code>mke2fs /dev/hda1</code>  → crear un fichero de sistema tipo Linux ext 2 en hda1.
 
# <code>mke2fs -j /dev/hda1</code>  → crear un fichero de sistema tipo Linux ext3 (periódico) en la partición hda1.
 
# <code>mkfs -t vfat 32 -F /dev/hda1</code>  → crear un fichero de sistema FAT32 en hda1.
 
# <code>fdformat -n /dev/fd0</code>  → formatear un disco flooply.
 
# <code>mkswap /dev/hda3</code>  → crear un fichero de sistema swap.
 
 
 
== Partición de sistema swap ==
 
 
 
# <code>mkswap /dev/hda3</code>  → crear fichero de sistema swap.
 
# <code>swapon /dev/hda3</code>  → activando una nueva partición swap.
 
# <code>swapon /dev/hda2 /dev/hdb3</code>  → activar dos particiones swap.
 
 
 
== Salvas ==
 
 
 
# <code>dump -0aj -f /tmp/home0.bak /home</code>  → hacer una salva completa del directorio &#039;/home&#039;.
 
# <code>dump -1aj -f /tmp/home0.bak /home</code>  → hacer una salva incremental del directorio &#039;/home&#039;.
 
# <code>restore -if /tmp/home0.bak</code>  → restaurando una salva interactivamente.
 
# <code>rsync -rogpav --delete /home /tmp</code>  → sincronización entre directorios.
 
# <code>rsync -rogpav -e ssh --delete /home ip_address:/tmp</code>  → rsync a través del túnel SSH.
 
# <code>rsync -az -e ssh --delete ip_addr:/home/public /home/local</code>  → sincronizar un directorio local con un directorio remoto a través de ssh y de compresión.
 
# <code>rsync -az -e ssh --delete /home/local ip_addr:/home/public</code>  → sincronizar un directorio remoto con un directorio local a través de ssh y de compresión.
 
# <code>dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr &#039;dd of=hda.gz</code>&#039;  → hacer una salva de un disco duro en un host remoto a través de ssh.
 
# <code>dd if=/dev/sda of=/tmp/file1</code>  → salvar el contenido de un disco duro a un fichero. (En este caso el disco duro es “sda” y el fichero “file1”).
 
# <code>tar -Puf backup.tar /home/user</code>  → hacer una salva incremental del directorio &#039;/home/user&#039;.
 
# <code>tar -czv --exclude=/root/dir1/* -f /var/salvas/cfg_$(date +%F_%H%M).tgz /etc /root</code>  → salvar los directorios /etc y /root (excluyendo el contenido del subdirectorio /root/dir1/) en un archivo comprimido, cuyo nombre contenga la fecha y hora actual.
 
# <code>( cd /tmp/local/ &amp;&amp; tar c . ) | ssh -C user@ip_addr &#039;cd /home/share/ &amp;&amp; tar x -p</code>&#039;  → copiar el contenido de un directorio en un directorio remoto a través de ssh.
 
# <code>( tar c /home ) | ssh -C user@ip_addr &#039;cd /home/backup-home &amp;&amp; tar x -p</code>&#039;  → copiar un directorio local en  un directorio remoto a través de ssh.
 
# <code>tar cf - . | (cd /tmp/backup ; tar xf - )</code>  → copia local conservando las licencias y enlaces desde un directorio a otro.
 
# <code>find /home/user1 -name &#039;*.txt&#039; | xargs cp -av --target-directory=/home/backup/ --parents</code>  → encontrar y copiar todos los ficheros con extensión &#039;.txt&#039; de un directorio a otro.
 
# <code>find ~/ -type f -not -iname &#039;*.mp*&#039; -not \( -iregex &#039;.*\.mozilla/.*&#039; -o  -iregex &#039;.*\.thumbnails/.*&#039; \) -prune -mtime 14 -print0 | xargs -0 tar -czf /var/salvas/myhome.tgz</code>  → realizar una salva de todos los archivos de nuestro perfil de usuario modificados dentro de los últimos 14 días, exceptuando los archivos mp3, mpg y similares, y los directorios <code>.mozilla/</code> y <code>.thumbnails/</code>.
 
# <code>find /var/log -name &#039;*.log&#039; | tar cv --files-from=- | bzip2 &gt; log.tar.bz2</code>  → encontrar todos los ficheros con extensión &#039;.log&#039; y hacer un archivo bzip.
 
# <code>dd if=/dev/hda of=/dev/fd0 bs=512 count=1</code>  → hacer una copia del MRB (Master Boot Record) a un disco floppy.
 
# <code>dd if=/dev/fd0 of=/dev/hda bs=512 count=1</code>  → restaurar la copia del MBR (Master Boot Record) salvada en un floppy.
 
 
 
== CDROM ==
 
 
 
# <code>cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force</code>  → limpiar o borrar un cd regrabable.
 
# <code>mkisofs /dev/cdrom &gt; cd.iso</code>  → crear una imagen iso de cdrom en disco.
 
# <code>mkisofs /dev/cdrom | gzip &gt; cd_iso.gz</code>  → crear una imagen comprimida iso de cdrom en disco.
 
# <code>mkisofs -J -allow-leading-dots -R -V “Label CD” -iso-level 4 -o ./cd.iso data_cd</code>  → crear una imagen iso de un directorio.
 
# <code>cdrecord -v dev=/dev/cdrom cd.iso</code>  → quemar una imagen iso.
 
# <code>gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom -</code>  → quemar una imagen iso comprimida.
 
# <code>mount -t udf,iso9660 -o loop cd.iso /mnt/iso</code>  → montar una imagen iso.
 
# <code>cd-paranoia -B</code>  → llevar canciones de un cd a ficheros wav.
 
# <code>cd-paranoia -- ”-3”</code>  → llevar las 3 primeras canciones de un cd a ficheros wav.
 
# <code>cdrecord --scanbus</code>  → escanear bus para identificar el canal scsi.
 
# <code>dd if=/dev/hdc | md5sum</code>  → hacer funcionar un md5sum en un dispositivo, como un CD.
 
# <code>eject -v</code>  → expulsar un medio o disco extraíble, ofreciendo información adicional.
 
 
 
== Trabajo con la red (LAN Y WIFI) ==
 
 
 
# <code>ifconfig eth0</code>  → mostrar la configuración de una interfaz de red Ethernet.
 
# <code>ifup eth0</code>  → activar la interfaz <code>eth0</code>.
 
# <code>ifdown eth0</code>  → deshabilitar la interfaz <code>eth0</code>.
 
# <code>ifconfig eth0 192.168.1.1 netmask 255.255.255.0</code>  → configurar una dirección IP.
 
# <code>ifconfig eth0 promisc</code>  → configurar <code>eth0</code> en modo promiscuo para obtener los paquetes (''sniffing'').
 
# <code>dhclient eth0</code>  → activar la interface &#039;eth0&#039; en modo dhcp.
 
# <code>route -n</code>  → mostrar tabla de rutas.
 
# <code>route add -net 0/0 gw IP_Gateway</code>  → configurar entrada predeterminada.
 
# <code>ip route show | grep default | awk {&#039;print $3&#039;}</code> → conocer la puerta de enlace predeterminada.
 
# <code>route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1</code>  → configurar ruta estática para buscar la red <code>192.168.0.0/16</code>.
 
# <code>route del 0/0 gw IP_gateway</code>  → eliminar la ruta estática.
 
# <code>echo 1 &gt; /proc/sys/net/ipv4/ip_forward</code>  → activar el redireccionamiento de paquetes ip.
 
# <code>hostname</code>  → mostrar el nombre del host del sistema.
 
# <code>host www.example.com</code>  → buscar el nombre del host para resolver el nombre a una dirección ip (1).
 
# <code>nslookup www.example.com</code>  → buscar el nombre del host para resolver el nombre a una direccióm ip y viceversa (2).
 
# <code>ip link show</code>  → mostar el estado de enlace de todas las interfaces.
 
# <code>mii-tool eth0</code>  → mostar el estado de enlace de <code>eth0</code>.
 
# <code>ethtool eth0</code>  → mostrar las estadísticas de la interfaz de red <code>eth0</code>.
 
# <code>netstat -tup</code>  → mostrar todas las conexiones de red activas y sus PID.
 
# <code>netstat -tupl</code>  → mostrar todos los servicios de escucha de red en el sistema y sus PID.
 
# <code>netstat -punta</code>  → mostrar todas las conexiones activas por dirección IP y puerto.
 
# <code>tcpdump tcp port 80</code>  → mostrar todo el tráfico HTTP.
 
# <code>iwlist scan</code>  → mostrar las redes inalámbricas.
 
# <code>iwconfig eth1</code>  → mostrar la configuración de una interfaz de red inalámbrica.
 
# <code>whois www.example.com</code>  → buscar en base de datos Whois.
 
# <code>iftop -nNP -i eth0</code>  → mostrar en tiempo real las conexiones abiertas en eth0 y su tasa de transferencia.
 
# <code>sockstat</code>  → mostrar información sobre las conexiones abiertas.
 
# <code>arp-scan -l</code>  → descubrir en la red las direcciones IP y MAC.
 
# <code>nm-tool</code> → muestra configuración de red (en caso de usar Network Manager obtiene los DNS).
 
 
 
== Redes de Microsoft Windows (Samba) ==
 
 
 
# <code>nbtscan ip_addr</code>  → resolución de nombre de red bios.
 
# <code>nmblookup -A ip_addr</code>  → resolución de nombre de red bios.
 
# <code>smbclient -L ip_addr/hostname</code>  → mostrar acciones remotas de un host en windows.
 
 
 
== Cortafuegos (iptables) ==
 
 
 
# <code>iptables -t filter -L</code>  → mostrar todas las cadenas de la tabla de filtro.
 
# <code>iptables -t nat -L</code>  → mostrar todas las cadenas de la tabla nat.
 
# <code>iptables -t filter -F</code>  → limpiar todas las reglas de la tabla de filtro.
 
# <code>iptables -t nat -F</code>  → limpiar todas las reglas de la tabla nat.
 
# <code>iptables -t filter -X</code>  → borrar cualquier cadena creada por el usuario.
 
# <code>iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT</code>  → permitir las conexiones telnet para entar.
 
# <code>iptables -t filter -A OUTPUT -p tcp --dport http -j DROP</code>  → bloquear las conexiones HTTP para salir.
 
# <code>iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT</code>  → permitir las conexiones POP a una cadena delantera.
 
# <code>iptables -t filter -A INPUT -p tcp -m multiport --dports 80,443,8080 -m state --state NEW -m limit --limit 4/sec --limit-burst 8 -j ACCEPT</code>  → establecer un límite de 4 peticiones por segundo de nuevas conexiones, con posibles ráfagas ocasionales (útil para políticas de denegación por defecto).
 
# <code>iptables -t filter -A INPUT -p tcp -m multiport --dports 80,443,8080 -m state --state ESTABLISHED,RELATED -m connlimit ! --conlimit-above 6 -j ACCEPT</code>  → establecer un límite de 6 conexiones simultáneas por equipo a nuestro servidor web (útil para políticas de denegación por defecto).
 
# <code>iptables -t filter -A INPUT -j LOG --log-prefix “DROP INPUT”</code>  → registrando una cadena de entrada.
 
# <code>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE</code>  → configurar un PAT (Puerto de traducción de dirección) en eth0, ocultando los paquetes de salida forzada. (Indicado para enlaces tipo ppp)
 
# <code>iptables -t nat -A POSTROUTING -s 192.168.0.127 -o eth0 -j SNAT --to-source 169.158.158.169</code>  → enrutar los paquetes desde 192.168.0.127 hacia otras redes por eth0 y asignarles un dirección ip externa. (Indicado para enlaces tipo ADSL)
 
# <code>iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22</code>  → redireccionar los paquetes diriguidos de un host a otro.
 
# <code>iptables -t nat -S</code>  → Listar todas las reglas activas en la tabla nat.
 
# <code>iptables-save -c &gt; archivo</code>  → Salvar las reglas en un archivo (incluyendo los contadores de paquetes y bytes).
 
# <code>iptables-restore -c &lt; archivo</code>  → Restaurar las reglas desde un archivo (incluyendo los contadores de paquetes y bytes).
 
 
 
== Monitoreando y depurando ==
 
 
 
# <code>top</code>  → mostrar en tiempo real las tareas de linux.
 
# <code>htop</code>  → mostrar y gestionar las tareas con una interfaz amistosa.
 
# <code>ps -eafw</code>  → muestra las tareas Linux.
 
# <code>ps -e -o pid,args --forest</code>  → muestra las tareas Linux en un modo jerárquico.
 
# <code>ps -o pid,cmd -ww -C wget</code>  → listar todas las instancias del comando <code>wget</code> con sus argumentos.
 
# <code>pstree</code>  → mostrar un árbol sistema de procesos.
 
# <code>pidof pppd</code>  → mostrar el <code>pid</code> del proceso <code>pppd</code>.
 
# <code>kill -9 ID_Processo</code>  → forzar el cierre de un proceso y terminarlo.
 
# <code>kill -1 ID_Processo</code>  → forzar un proceso para recargar la configuración.
 
# <code>killall Nombre_Proceso</code>  → terminar un proceso por el nombre del comando y no por el ID.
 
# <code>kill -HUP $(ps -A -o state,pid --no-header | grep -e &#039;^[Zz]&#039; | awk &#039;{print $2}&#039; | xargs)</code>  → terminar todos los procesos ''zombies''.
 
# <code>lsof -p $$</code>  → mostrar una lista de ficheros abiertos por procesos.
 
# <code>lsof /home/user1</code>  → muestra una lista de ficheros abiertos en un camino dado del sistema.
 
# <code>strace -c ls &gt;/dev/null</code>  → mostrar las llamadas del sistema hechas y recibidas por un proceso.
 
# <code>strace -f -e open ls &gt;/dev/null</code>  → mostrar las llamadas a la biblioteca.
 
# <code>watch -n1 &#039;cat /proc/interrupts</code>&#039;  → mostrar interrupciones en tiempo real.
 
# <code>last reboot</code>  → mostrar historial de reinicio.
 
# <code>lsmod</code>  → mostrar los módulos del kernel cargados.
 
# <code>free -m</code>  → muestra el estado de la RAM en megabytes.
 
# <code>smartctl -A /dev/hda</code>  → monitorear la fiabilidad de un disco duro a través de SMART.
 
# <code>smartctl -i /dev/hda</code>  → chequear si SMART está activado en un disco duro.
 
# <code>tail -f /var/log/dmesg</code>  → mostrar eventos inherentes al proceso de carga del kernel.
 
# <code>tail -f /var/log/messages</code>  → mostrar los eventos del sistema.
 
# <code>multitail --follow-all /var/log/{dmesg,messages}</code>  → mostrar dos registros de eventos en una misma pantalla.
 
 
 
== Seguridad y Cifrado ==
 
 
 
# <code>base64 /home/archivo &gt; /home/archivo-codificado</code> → codifica “archivo” en &#039;base64&#039; y lo guarda en /home
 
# <code>base64 -d /home/archivo-codificado &gt; /home/archivo</code> → decodifica “archivo-codificado” y lo guarda en /home
 
# <code>openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -out /etc/millave.crt -keyout /etc/millave.key</code> → crea un certificado auto-firmado para cifrar el tráfico web con SSL.
 
# <code>htpasswd -c -m /etc/apache2/.htpasswd nombreusuario</code> → genera un archivo &#039;.htpasswd&#039; para proteger un sitio web con auntenticación.
 
 
 
== Otros comandos útiles ==
 
 
 
# <code>apropos palabraclave</code>  → mostrar una lista de comandos que pertenecen a las palabras claves de un programa; son útiles cuando tú sabes qué hace tu programa, pero desconoces el nombre del comando.
 
# <code>man ping</code>  → mostrar las páginas del manual on-line; por ejemplo, en un comando ping, usar la opción &#039;-k&#039; para encontrar cualquier comando relacionado.
 
# <code>man -t ping | ps2pdf - ping.pdf</code>  → convertir las páginas del manual del comando ping en un archivo pdf (para lo cual es necesario haber instalado Ghostscript).
 
# <code>mkbootdisk --device /dev/fd0 `uname -r`</code>  → crear un floppy boteable.
 
# <code>gpg -c file1</code>  → codificar un fichero con guardia de seguridad GNU.
 
# <code>gpg file1.gpg</code>  → decodificar un fichero con Guardia de seguridad GNU.
 
# <code>wget -r www.example.com</code>  → descargar un sitio web completo.
 
# <code>wget -c www.example.com/file.iso</code>  → descargar un fichero con la posibilidad de parar la descargar y reanudar más tarde.
 
# <code>echo &#039;wget -c www.example.com/files.iso&#039; | at 09:00</code>  → Comenzar una descarga a cualquier hora. En este caso empezaría a las 9 horas.
 
# <code>ldd /usr/bin/ssh</code>  → mostrar las bibliotecas compartidas requeridas por el programa ssh.
 
# <code>alias hh=&#039;history</code>&#039;  → colocar un alias para un commando. En este caso, para invocar el historial con <code>hh</code>.
 
# <code>chsh</code>  → cambiar el comando Shell.
 
# <code>chsh --list-shells</code>  → es un comando adecuado para saber si tienes que hacer remoto en otra terminal.
 
# <code>who -a</code>  → mostrar quien está registrado, e imprimir 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.
 
# <code>echo &quot;128*1024*1024&quot; | bc</code>  → calcular desde la consola el tamaño en bytes de 128 MiB.
 
# <code>sudo !!</code>  → ejecutar como superusuario el último comando tecleado.
 
# <code>clear</code>  → limpiar la pantalla.
 
# <code>uncomando &gt; archivodesalida.txt 2&gt;&amp;1</code>  → ejecuta un comando y redirige la salida a un archivo, combinando en este tanto STDOUT como STDERR.
 
# <code>uncomando &gt; archivodesalida.txt 2&gt; archivoerrores.txt</code>  → ejecuta un comando, redirige la salida (STDOUT) a un archivo, y los errores (STDERR) a otro.
 
# <code>uncomando | tee archivodesalida.txt</code>  → ejecuta un comando, muestra la salida en la pantalla y simultáneamente la escribe a un archivo.
 

Revisión del 09:42 29 ago 2020