# Manual de consola Bash de Linux
## Combinación de teclas

ctrl+l o ctrl+L - borra pantalla
ctrl+alt+F1... F6 - cambio de consola
ctrl+alt+F7...F12 - cambio a escritorio
ctrl+z - suspender proceso
ctrl+d - final de archivo EOF - cancela
tab - completa nombre de carpetas o archivos
ctrl+backspace - cierra X o sea sales del sistema X y vuelves a Consola Linux

## Árbol de directorios

● / "root" punto de montaje de particiones
● /bin archivos binarios ejecutables; contiene todos los comandos básicos del sistema, accesibles a todos los usuarios
● /boot archivos para bootear el sistema, como son el kernel y los archivos necesarios para el booteador
● /dev archivos de dispositivos; archivos que representan los dispositivos periféricos /dev/eth0 primera tarjeta de red Ethernet /dev/hda disco en la primera línea IDE /dev/hdb disco en la segunda línea IDE /dev/scd0 disco en la primera puerta SCSI /dev/ttyS0 primer puerto serial
● /etc archivos de configuración del sistema /etc/bashrc configuración del shell bash /etc/fstab información sobre el sistema de archivos /etc/passwd definición de los del sistema /etc/profile configuración del entorno (rutas, variables de entorno, aliases, etc) /etc/shadow contraseña encriptada de cada usuario
● /home directorio que contiene subdirectorios para los archivos personales de cada uno de los usuarios
● /lib librerías compartidas; archivos de librerías dinámicas para C y otros lenguajes
● /mnt punto de montaje para particiones temporales /mnt/cdrom /mnt/floppy
● /proc sistema de archivos virtual con información sobre el kernel y los procesos; son archivos virtuales y no ocupan espacio en el disco
● /root directorio home del administrador root
● /sbin binarios esenciales del sistema; ejecutables por el administrador (root), accesibles durante el booteo y en modo monousuario
● /tmp directorio para archivos temporarios
● /usr segundo nivel de jerarquía en el sistema de archivos; contiene subdirectorios con archivos del software de usuario /usr/bin comandos/programas de usuario, ejecutables no necesarios durante el booteo ni en modo monousuario /usr/doc documentación /usr/etc configuraciones de usuario /usr/include archivos de cabecera (headers) de C /usr/lib librerías /usr/local jerarquía local, usada en software instalado localmente o /usr/local/bin /usr/local/lib /usr/local/sbin /usr/local/share /usr/man manuales; archivos utilizados por el comand man /usr/sbin binarios no esenciales de administración del sistema, accesibles después del booteo /usr/X11R6 X Window system (servidor del entorno gráfico)
● /var archivos variables del sistema /var/log /var/mail /var/spool datos de la cola de impresión

## Comandos de Consola Básicos

ls Descripción: = list. listar contenido de directorios.
Para listar todos los archivos, incluido los archivos ocultos
Para listar en orden de creacion (por fecha)
cp Descripción: = copy. copiar ficheros/directorios.
rm Descripción: =remove. borrar ficheros/directorios. Ejemplos:
mkdir Descripción: =make dir. crear directorios.
rmdir Descripción: =remove dir. borrar directorios, deben estar vacíos.
mv Descripción: =move. renombrar o mover ficheros/directorios.
cat Descripción: Visualiza y concatena ficheros. Para salir [ Contr + D ]
chmod Descripción: cambia los permisos de lectura/escritura/ejecución de ficheros/directorios, para poder modificar los permisos de un fichero debes ser propietario del mismo o root.
chown Descripción: =change owner. Permite al propietario de un fichero asignarle otro usuario como propietario
chgrp Descripción: similar a chown pero cambia el grupo propietario
ln Descripción: =link. para crear enlaces, accesos directos.
En los enlaces simbólicos, si se borra el archivo apuntado el enlace queda inservible, mientras que en los enlaces duros no hay diferencia entre el archivo apuntado y sus enlaces, por lo que eliminar uno no afecta a los otros.
file Descripción: nos dice de que tipo es un fichero.
echo Descripción: muestra en pantalla el texto que le siga.
clear Descripción: limpia la pantalla de la terminal
date Descripción: indica la fecha y hora. Para ver un calendario usar
cal Descripción: muestra un calendario con el mes actual en pantalla
man Descripción: muestra la pagina de manuales de un comando o programa para ver todas sus opciones y posibilidades
pwd Descripción:muestra el directorio en el que nos encontramos
less Descripción: muestra el contenido de un texto por pantalla permitiendo desplazarse por el mismo (mejor que 'more')
more Descripción:muestra el contenido de un texto por pantalla permitiendo desplazarse por el mismo

## Tuberías

En el mundo Unix una tubería es una forma de comunicar dos comandos. Con ellas se consigue conectar la salida estándar de un programa con la entrada estándar de otro. Veamos algunos ejemplos: ls -R | less ls -R | more

## Redirecciones

Permiten modificar el comportamiento de algunos programas de forma que no generen o reciban información por la vía habitual sino redirigiendo los datos por otra vía, fácil de comprender con algunos ejemplos: Almacena el listado de un directorio en un fichero: ls > listado.txt Crea un fichero de la salida del programa cat: cat > fichero.text [para salir: Contr + D] Redirige la entrada a un proceso desde un fichero: proceso < file.text Concatena la salida con un fichero ya existente: cat 2.dat >> 1.dat (mas...)

## Comodines

Podemos utilizar comodines para sustituir parte del nombre de un fichero o un grupo de ellos. Esta es una forma cómoda de referirnos a un conjunto de ficheros o directorios.
* cualquier cadena
? cualquier carácter [axdf] uno de los caracteres entre corchetes [!asxd] cualquier carácter que no sea uno de los especificados Encadenamiento de órdenes Varias órdenes pueden ser encadenadas de diversas formas. Algo que debemos saber para poder aplicar esta posibilidad es que cada vez que una orden finaliza con éxito esta devuelve un valor 0 al sistema operativo. En caso de error se devuelve un valor distinto de 0 que podría utilizarse para descubrir que ha pasado. Veamos a continuación que posibilidades existen:

### - ejecuta órdenes de forma secuencial independientemente del

resultado de cada una de ellas Ejemplo ls; ps && - ejecuta órdenes de forma secuencial mientras el resultado de cada una de ellas sea 1 Ejemplo sort 1.dat && echo "ok" || ejecuta órdenes de forma secuencial mientras el resultado de cada una de ellas sea 0 Ejemplo sort 1.dat || echo "error"

## Comandos Avanzados

alias Descripción: permite generar un comando personalizado por el usuario Ejemplos: alias move='mv -vi' // crea la operación move idéntica a 'mv -vi' alias -p // muestra los alias del usuario
dd Descripción: (duplicate disk) es un comando bastante útil para transferir datos desde un dispositivo/archivo hacia un dispositivo/archivo/etc. If = (Input file) Of = (Out file) Ejemplo: dd if=/dev/fd0 of=~/diskette.img dd if=/dev/zero of=administracion bs=1048576 count=15 // como /dev/zero/ no existe crea un fichero ‘administracion’ de leer 15 paquetes de 1048 kb de la entrada /dev/zero
split Descripción: partir ficheros en partes de un tamaño máximo Ejemplo: split -d -C 1400k administracion.pst trozo // parte el fichero administracion en 1,4 mb usando como prefijo trozoXX cat trozo* >> administracion.pst // recupera el fichero original
touch Descripción: actualiza la fecha de un archivo, si no existe el fichero lo crea. Ejemplo: touch file fecha
history Descripción: muestra un listado con los comandos ejecutados desde consola
whereis Descripción: muestra la ubicación de un comando o aplicación Ejemplo: whereis cat : nos localiza el binario ‘cat’, el manual y los source codes si estuvieran en la maquina
whatis Descripción: muestra una descripción del comando
nano Descripción: editor de texto rápido y cómodo
vi o vim Descripción: editor de texto mejor que cat, muy potente.
pico Descripción: editor de texto también bastante potente
read Descripción: lee una variable de entrada estándar y la guarda en una variable
seq Descripción: genera una secuencia de números

## Filtros

Las órdenes find, grep, sort, cut, paste, join, tr, wc, nl, head y tail (a veces conocidas con el sobrenombre de filtros), entre otras, realizan operaciones de búsqueda y manipulación de diversa naturaleza sobre ficheros de texto y, como veremos, se utilizan con frecuencia en la construcción de guiones shell.
head
tail
este comando es útil ya que los archivos de registros "logs" crecen constantemente
tac
wc
sed
diff
texto
cmp
comm
locate
find
cumplan cierta coincidencia con una patrón y sus nombres a partir de directorio recursivamente. Además podemos indicar que hacer con los ficheros que encuentren.
Algunos de los criterios que se pueden utilizar para realizar la búsqueda son:
El comando find permite el uso de comodines: ? * [...]
Algunos de las actuaciones que se pueden realizar para los resultados de la búsqueda son:
El fichero encontrado es especificado en el comando por \{\}. El comando debe terminar con \; .Notese que la expresión exec devuelve true si ha finalizado con éxito y false en caso contrario.
grep Descripción: herramienta flexible y potente que busca cadenas ’patron’ de texto en ficheros.
Algunos de las opciones de búsqueda
Patrones en grep incluye el uso de comodines, rangos de caracteres y búsquedas en el principio o final de linea. Símbolos para la interpretación de patrones
tr Descripción: reemplaza o elimina cadenas/caracteres en un fichero de texto por la entrada estándar. El resultado lo imprime por la salida estándar.
Cuando especificamos string1 y string2 ambos deben tener la misma longitud, ya que cada carácter correspondiente a string1 se sustituirá por el correspondiente del string2.
Especificar un rango de caracteres. Por ejemplo a-d incluye los caracteres a,b,c,d. Los rangos no van entrecomillados.
Existen clases definidas por su uso común en el comando tr, de modo que no deberán definirse sus caracteres:
join Descripción: cruza la información de dos archivos,Normalmente, el primer campo de cada fichero registro se considera un "campo de unión o etiqueta". El comando join muestra en pantalla el campo de unión seguido del resto de la línea del primer fichero y a continuación del resto de la línea del segundo fichero excepto la etiqueta. Los resultados son mostrados por la salida estándar ha pantalla o pueden ser capturados por una redirección
si consideramos dos máquinas que deseamos registrar el arranque, y cada maquina genera un fichero de registro MAQUINA 1 MAQUINA 2
usamos el comando
y obtenemos:
Menú de Opciones
uniq Descripción: elimina lineas repetidas adyacentes del archivo entrada (solo deja una de ellas), la salida se ofrece por la salida estándar o genera un archivo salida si se especifica
Opciones
cut Descripción: Captura partes de ficheros, en un fichero por columnas de una tabla o campos para cada linea del archivo... captura la columna deseada para las lineas del fichero
Las columnas pueden ser especificadas como octetos, caracteres o delimitadas campos.
Por ejemplo
Por ejemplo, sea un fichero:
Paste Concatena las líneas correspondientes de archivos en columnas verticales e imprime los resultados a la pantalla, similar a join pero sin entender como etiquetas la primera parte de la linea, junta las lineas tal cual.
Si uno de los ficeros tiene menos lineas que el otro, el fichero largo se continuara mostrando sin lineas del archivo acabado o con lineas en blanco Option
Escape sequences should be surrounded by quotes to keep the shell from interpreting them. You can separate columns with different characters by specifying more than one value for char.
input is used.
Sort Ordenando el contenido de fichero. Este comando toma una serie de datos por la entrada estándar. Y la saca por la salida estándar. sort [-fr] <file/s>
Esto ordenaría el contenido de file1 y lo direcciona al fichero file2. sort > file Esto redireccionará lo que se introduce por stdin (teclado) hacia un fichero llamado file. Existen tres modos de ordenar un fichero con sort: 1. Simple sort. Ordena las lineas de un fichero en orden numérico primero y alphabetical despues, los caracteres especiales son despreciados y ordena según el primer alfanumérico que encuentre, en caso de no haber, la linea de caracteres especiales se pondrá al inicio de las lineas de salida. Ejemplo, supongamos el siguiente documento, y observemos el efecto del comando sort: $ cat myfile .aborada caca almeja borneo =seaaa . judia almandraba kilo %%algibe
345 fjb 9553
** almendras
@@123 !!bee zeta $ sort myfile
. @@123 345 9553 .aborada caca almeja %%algibe almandraba
** almendras
!!bee borneo fjb judia kilo =seaaa zeta Simple Sort Option Description -o filename Saves output in the file, filename. -u (unique) líneas idénticas y adyacentes solo se muestran una vez. -c Check si la ordenación ha sido correcta, si se detecta un error por su salida se muestra un standard error por la salida estándar. -d Sort in dictionary order. Ignore all characters except letters, digits and blanks when determining sort order. -n Sort in numerical order (For example: -2.5, -1, 0, 0.54, 3, 18). Numerical order ignores leading spaces when determining the sort order and interprets a leading minus sign (-) as a negative number. Numbers may include a comma to separate thousands (e.g. 1,000 or 10,000). Las entradas no numeradas, estarán entre el negativos-cero y los números positivos. -f Ignore the uppercase/lowercase distinction. -M Order the first three characters as months. (e.g. jan < feb < mar ...). Uppercase letters precede a lowercase letters for the same month (e.g. JAN < Jan < jan < FEB) Las entradas inválidas son ordenadas antes que los meses. (e.g. misspelled < nomonth < jan). -i Ignore non-printing characters. Non-printing characters include control characters such as tab, form feed, carriage return, etc. Non-printing characters are those outside the ASCII range 040- -r Reverse the sort order. 2. Column sort.Se usa uno o varios campos separados en columnas. La orden de columna individualmente puede ser especificada. For example the file has two fields, first name and last name.The following command, sorts file by the second field. $ cat file Susan Jones Jill Zane John Smith Andrew Carter $ sort -k 2 file Andrew Carter Susan Jones John Smith Jill Zane Column Sorting Options Description -tc Specifies the character, c, that separates fields. For example, "-t," indicates that commas separate fields. Each occurrence of c is significant so cc represents an empty field. For example, if the separator character is a comma then in "a,,d" field one is "a", field two is empty and field three is "d". The default separator is any whitespace. -b Ignore leading whitespace (spaces and tabs) when determining the starting character of columns. When whitespace is used to separate columns, the -b option overrides the significance of multiple column separators. For example, "c" is the first character of the second field of "ab<space>cd", "ab<space><space>cd", and "ab<space><space><space>cd". -k Start[,End] Defines a sort key or a section of each line used for ordering. The sort key will begin with the field Start and end with the field End. If End is not specified, the key begins with Start and continues to the end of the line. More details on specifying sort keys below. 3. Merging . Files (presorted and unsorted) can be merged by sort order. For example, assume you have two files, f1 and f2, $ sort -o soutput f1 f2 merges files f1 and f2, sorts them and saves the output in the file soutput. It is equivalent to executing the following commands. $ cat f1 f2 > f3 $ sort -o soutput f3 $ rm f3 One command line option affects file merging. Option Description -m Merge only. Use on presorted input files. For example, if two files sf1 and sf2 are already sorted $ sort f1 -o sf1 $ sort f2 -o sf2 then $ sort -m -o soutput sf1 sf2 saves time by not resorting sf1 and sf2. It just integrates them.

## Los bits SUID , SGID y sticky

Habitualmente, los permisos de los archivos en Unix se corresponden con un número en octal que varía entre 000 (- | --- | --- | ---) y 777 (- | rwx | rwx | rwx); sin embargo, existen unos permisos especiales que hacen variar ese número entre 0000 y 7777: se trata de los bits de permanencia (1000), SGID (2000) y SUID (4000). El bit de SUID o setuid se activa sobre un fichero añadiéndole 4000 a la representación octal de los permisos del archivo y otorgándole además permiso de ejecución al propietario del mismo; al hacer esto, en lugar de la x en la primera terna de los permisos, aparecerá una s o una S si no hemos otorgado el permiso de ejecución correspondiente (en este caso el bit no tiene efecto): chmod 4777 /tmp/file1 chmod 4444 /tmp/file2 ls -l /tmp/file1 -rwsrwxrwx 1 root other 0 Feb 9 17:51 /tmp/file1* ls -l /tmp/file2 -r-Sr--r-- 1 root other 0 Feb 9 17:51 /tmp/file2* El bit SUID activado sobre un fichero indica que todo aquél que ejecute el archivo va a tener durante la ejecución los mismos privilegios que quién lo creó; dicho de otra forma, si el administrador crea un fichero y lo setuida, todo aquel usuario que lo ejecute va a disponer, hasta que el programa finalice, de un nivel de privilegio total en el sistema (Peligroso). Todo lo que acabamos de comentar con respecto al bit setuid es aplicable al bit SGID setgid pero a nivel de grupo del fichero en lugar de propietario: en lugar de trabajar con el EUID del propietario, todo usuario que ejecute un programa setgidado tendrá los privilegios del grupo al que pertenece el archivo. Para activar el bit de setgid sumaremos 2000 a la representación octal del permiso del fichero y además habremos de darle permiso de ejecución a la terna de grupo; si lo hacemos, la s o S aparecerá en lugar de la x en esta terna. Si el fichero es un directorio y no un archivo plano, el bit setgid afecta a los ficheros y subdirectorios que se creen en él: estos tendrán como grupo propietario al mismo que el directorio setgidado, siempre que el proceso que los cree pertenezca a dicho grupo. Pero, >cómo afecta todo esto a la seguridad del sistema? Evidentemente, estas tareas han de estar controladas de una forma exhaustiva, ya que si una de ellas se comporta de forma anormal (un simple core dump) puede causar daños irreparables al sistema; Veamos un ejemplo: un fichero setuidado clásico en cualquier clon es /bin/passwd, la orden para que los usuarios puedan cambiar su contraseña de entrada al sistema. Está claro que un usuario no tiene el nivel de privilegio necesario para ni siquiera pueda leer el fichero de claves, por lo que frente a este problema tan simple existen varias soluciones: podemos asignar permiso de escritura para todo el mundo al fichero de contraseñas, podemos denegar a los usuarios el cambio de clave o podemos obligar a pasar por el root cada vez que quieran cambiar su contraseña. Parece obvio que ninguna de ellas es apropiada para la seguridad del sistema (quizás la última lo sea, pero es impracticable en máquinas con un número de usuarios considerable). Por tanto, debemos asumir que el bit de setuid en /bin/passwd es imprescindible para un correcto funcionamiento del sistema. Si es creación propia es conveniente resetear su bit de setuid mediante chmod: Por otra parte, el sticky bit o bit de permanencia se activa sumándole 1000 a la representación octal de los permisos de un determinado archivo y otorgándole además permiso de ejecución; si hacemos esto, veremos que en lugar de una x en la terna correspondiente al resto de usuarios aparece una t (si no le hemos dado permiso de ejecución al archivo, aparecerá una T): chmod 1777 /tmp/file1 chmod 1774 /tmp/file2 ls -l /tmp/file1 -rwxrwxrwt 1 root other 0 Feb 9 17:51 /tmp/ file1* ls -l /tmp/file2 -rwxrwxr-T 1 root other 0 Feb 9 17:51 /tmp/ file2* Si el bit de permanencia de un fichero está activado (recordemos que si aparece una T no lo está) le estamos indicando al sistema operativo que se trata de un archivo muy utilizado, por lo que es conveniente que permanezca en memoria principal el mayor tiempo posible; esta opción se utilizaba en sistemas antiguos que disponían de muy poca RAM, pero hoy en día prácticamente no se utiliza. Lo que si que sigue vigente es el efecto del sticky bit activado sobre un directorio: en este caso se indica al sistema operativo que, aunque los permisos `normales' digan que cualquier usuario pueda crear y eliminar ficheros (por ejemplo, un 777 octal), sólo el propietario de cierto archivo y el administrador pueden borrar un archivo guardado en un directorio con estas características. Este bit, que sólo tiene efecto cuando es activado por el administrador (aunque cualquier usuario puede hacer que aparezca una t o una T en sus ficheros y directorios), se utiliza principalmente en directorios del sistema de ficheros en los que interesa que todos puedan escribir pero que no todos puedan borrar los datos escritos, si el equivalente octal de los permisos de estos directorios fuera simplemente 777 en lugar de 1777, cualquier usuario podría borrar los ficheros del resto.

## Comandos para Control de Procesos y Tareas

ps Descripción: Despliega todos los procesos del sistema, con nombre y tiempo de inicio. Ejemplos: ps – au ps -aux ps -l //despliega dos parámetros PRI y NI. El parámetro PRI indica la prioridad actual del proceso, el valor de NI es tomado en cuenta cuando se determina el PRI. Que es NI? : NI es llamado el número gentil o "nice number", este número es especificado por el "superusuario"("root") o dueño del proceso y afecta el orden final del PRI, le da prioridad a los menos gentiles. Sus valores oscilan desde -20 (menos gentil = más prioridad) y 20 (más gentil = menos prioridad)
jobs Descripción: Muestra todos los procesos en segundo plano
[comando] & Descripción: lanza el proceso en segundo plano
bg Descripción: reanuda un proceso en segundo plano
ctrl+z Descripción: detiene un proceso
fg Descripción: reanuda un proceso en primer plano tras haberlo detenido [control + z]
nohup Descripción: lanza un proceso independizandolo de la sesion, si esta se cierra el proceso sigue vivo
proc Descripción:
kill Descripción: Es utilizado para mandar señales a los procesos en Unix. Ejemplos: kill -HUP <pid>: Señala al proceso con numero <pid>, que vuelva a leer sus archivos de configuración. kill -INT <pid>: Señala al proceso con numero <pid>, que será interrumpido . kill -TERM <pid>: Señala al proceso con numero <pid>,que debe de terminar, a diferencia de -KILL , esta opción da la oportunidad al proceso de terminar. kill -STOP <pid>: Señala al proceso con numero <pid>, que pare momentáneamente. kill -CONT <pid>: Señala al proceso con numero <pid>, que continué, este comando se utiliza para reanudar un proceso que le fue aplicado -STOP. kill -KILL <pid>: Señala al proceso con numero <pid>,que termine de inmediato, el proceso es terminado abruptamente. killall: A diferencia de kill , killall permite mandar un señal al proceso por nombre. killall <nombre del proceso >: Envía la señal -TERM al proceso con el nombre especificado. NOTA: Por "default" la señal que toma kill y killall es -TERM.
nice Descripción: Este comando especifica/modifica el número NI de cada proceso. Ejemplo: nice -10 named: Esto bajaría la prioridad de named en 10 unidades. nice +10 named: Esto incrementaría la prioridad de named en 10 unidades.
snice y renice Descripción: El mismo funcionamiento que nice, excepto que utiliza el número de proceso : Ejemplo: snice -10 <pid>
top & htop: Descripción : (MONITOR DE PROCESOS) Esta herramienta muestra información sobre varios recursos del sistema y tiene un carácter dinámico, muestra uso de CPU por proceso, cantidad de memoria, tiempo desde su inicio, etc.
vmstat: Descripción: Es muy similar a top ya que es un condensado de los procesos del sistema, para que esta herramienta se vuelva dinámica se deben especificar los argumentos: vmstat -n <número de segundos por actualización >
free Descripcion: Estadísticas de uso de Memoria.
at
crontab

## Comandos de Gestión/Administración del Sistema

who Descripción: muestra quien esta usando el sistema, todos los usuarios autenticados
whoami Descripción: muestra con que usuario estas autenticado en el sistema
dmesg Descripción: Imprime los mensajes desplegados por el "kernel" al inicio.
depmod -a Descripción: Genera un archivo que contiene las dependencias de los módulos que son cargados para el "Kernel", capaz de reconocer cuáles módulos deben ser cargados para que un tercero sea utilizado en el sistema.
init q Descripción: Comando que vuelve a leer los parámetros que se encuentran en inittab .
halt descripción:
reset descripción: resetea la consola de texto
reboot descripción: reinicia el sistema
shutdown descripción:
exit descripción:
logout descripción:
sudo Descripción:
su ("Switch User" Cambiar de Usuario) Descripción: Sirve para cambiar de usuario sin desloguearse. Si no se indica ningún usuario, el usuario al que se cambia por defecto es el usuario ROOT.
passwd Descripción: modifica la contraseña de ingreso al sistema. El usuario ROOT tiene permiso para cambiarle la contraseña a cualquier usuario del sistema.
insmod Descripción: Habilita ("loads") el modulo que se especifica en la línea, para que el "kernel" sea capaz de utilizarlo.(ejemplo: insmod ip_alias.o )
ldconfig Descripción: Actualiza las librerías utilizadas por el sistema, recomendable ejecutarlo cada vez que se instale un programa.
env Descripción: Muestra las variables de entorno.
lsmod Descripción: Despliega la información referente a los módulos que están habilitados por el "kernel". slocate: Actualiza la base de información que es utilizada para encontrar archivos con el comando locate .
fuser Descripción: muestra que usuario tiene en uso o bloqueado un archivo o recurso
stat Descripción: Despliega información detallada sobre el archivo especificado como: fechas de modificación y cambio, dueño del archivo, etc.
uname -a Descripción: Información completa sobre el "Host".
uptime Descripción: Hora actual, tiempo que lleva el sistema corriendo desde el último "reboot", usuarios conectados al servidor, carga del sistema en los últimos 1,5 y 15 minutos.
ldd descripción: muestra las librerías que usa un programa
sysctl Descripción: Configurar los parámetros del kernel en tiempo de ejecución. Ejemplos: sysctl -a
ulimit Descripción: muestra los limites del sistema (máximo de ficheros abiertos, etc...) Ejemplos: ulimit
adduser o useradd Descripción: añadir usuario de sistema. Ejemplos: adduser pepe, adduser -s /bin/false pepe
userdel o deluser Descripción: = eliminar usuario de sistema Ejemplos: userdel pepe
usermod Descripción: = modificar usuario de sistema Ejemplos: usermod -s /bin/bash pepe
groupadd Descripción: agrego nuevo grupo
groupmod Descripción: modificar grupo
groupdel Descripción: borrar grupo
uname Descripción: = unix name. Información sobre el tipo de Unix en el que estamos, kernel, etc. Ejemplos: uname, uname -a
lsof Descripción: muestra los ficheros (librerías, conexiones) que utiliza cada proceso Ejemplos: lsof, lsof -i, lsof | grep fichero
lsmod Descripción: Muestra los módulos de kernel que están cargados. Ejemplos: lsmod
modprobe Descripción: Trata de instalar un modulo, si lo encuentra lo instala pero de forma temporal. Ejemplos: modprobe ip_tables, modprobe eepro100
rmmod Descripción: Elimina módulos del kernel que están cargados Ejemplos: rmmod <nombre de modulo>
logname Descripción: muestra el nombre de usuario
id Descripción: muestra datos de identificación del usuario
finger Descripción: da información de usuario
chfn Descripción: cambia la información del finger
w Descripción: muestra un detalle de los usuarios
last Descripción: información de los últimos usuarios que han usado el sistema set
Descripción: da información sobre el entorno del usuario
users Descripción: usuarios que acceden al sistema
groups Descripción: groups a los que pertenece el usuario

## Comandos Para manejo de dispositivos

Montar usb, cd, floppy, particiones windows fat32 y ntfs para ver las particiones y discos de nuestro equipo en el fichero /proc/partitions se nos mostraran las particiones del equipo pero no su sistema de ficheros. mount: Descripción: Permite que particiones del sistemas, CD-ROMs y floppys puedan ser leídas en el sistema. mount -t <file system(ext3,ntfs)> <(/dev/hda1,/dev/cdrom)> <(/mnt/DiskWin)>. La carpeta /mnt/DiskWin/ ('punto de montaje') debe haber sido creada anteriormente, en ella se montara el dispositivo /hda1/ xejemplo.
umount: Descripción: Desactiva la partición que se indicada, los parámetros que toma este comando son similares a los de mount .
lpr Descripción: imprime un fichero
pr Descripción: imprime un fichero junto a un encabezamiento
fdformat Descripción: Dar formato a un disquete: fdformat /dev/fd0.
mkfs Descripción: Crear un sistema de ficheros: • mkfs.msdos /dev/fd0, mkfs -t msdos /dev/fd0 o mkdosfs /dev/fd0 para crear un sistema de ficheros de MS-DOS (FAT12) en un disquete. • mkfs.ext3 /dev/hda3 o mkfs -t ext3 /dev/hda3 para crear un sistema de ficheros nativo de Linux en la tercera partición del primer disco duro.
fsck Descripción: Comprobar la consistencia: fsck.ext2 /dev/hda4, fsck -t ext2 /dev/hda4 o también e2fsck /dev/hda4 para realizar esta operación siendo necesario que la partición a comprobar no esté montada o que esté montada como de sólo lectura.
fdisk Descripción: Particionar un disco duro: fdisk /dev/hdb para particiona el segundo disco duro (nótese que no se indica ninguna partición concreta).
lspci / lsusb / lspcmcia Descripción: Muestra todas la lineas de información de dispositivos PCI / USB / PCMCIA Ejemplo: lspci | grep Wireless
df Descripción: = disk free. Espacio en disco disponible. Muy útil. Ejemplos: df, df -h La orden df informa del espacio total, ocupado y disponible para cada uno de los sistemas de ficheros, con el siguiente formato: S.ficheros Bloques de 1K Usado Dispon Uso % Montado en /dev/hda3 11820088 5320096 5899564 48 % / /dev/hda2 6822312 4840308 1982004 71 % /dos La opción -i sustituye los bloques por nodos-i, y la opción -T informa además del tipo de sistema de ficheros en cada caso.
du Descripción: = disk use. Uso de disco. Muestra el espacio que esta ocupado en disco o el espacio que ocupa un fichero en disco. Ejemplos: du *, du -sH /*, du -sH /etc El número de ficheros y directorios totales que se pueden crear, cuántos se han creado ya y cuántos más podemos crear. Estos datos se expresan en términos de nodos-i. El concepto de nodo-i sólo tiene sentido cuando nos referimos a los sistemas de ficheros nativos de Linux, es decir, ext2 o ext3. El número de nodos-i libres indica el número total de ficheros y directorios que podemos crear todavía.La orden du <directorio> nos muestra cuántos bloques lógicos de 1 KB ocupa el directorio indicado y cada uno de sus subdirectorios. Si utilizamos la opción -a, también aparecen los ficheros, y si utilizamos la opción -s obtenemos un resumen sin que aparezcan los detalles. Téngase en cuenta que también se contabilizan los bloques lógicos ocupados por los propios directorios que, como hemos dicho, son ficheros especiales.

## Comandos Entorno De Red

hostname: Descripción: El nombre del host.
host: Descripción:Determina la dirección IP del “Host” host -a despliega toda la información de DNS.
ping Descripción: herramienta de red para comprobar entre otras cosas si llegamos a un host remoto. Ejemplos: ping www.rediris.es ping -s 1016: Manda paquetes de ping de 1024 bytes (header 8 bytes), mientras que el "default" es 512.
netstat Descripción: la información sobre las conexiones de red activas. Ejemplos: netstat netstat -ln netstat -l netstat -a Todas la conexiones de Red originadas y recibidas por el "Host" netstat -r: Muestra la tabla de ruteo "routing table" del sistema netstat -i: Estadísticas de red de cada interfase
traceroute Descripción: herramienta de red que nos muestra el camino que se necesita para llegar a otra maquina. Ejemplos: traceroute www.rediris.es
ifconfig: Descripción: Permite configurar una interfaz de Red y ver el "status" de ésta. Es de la forma ifconfig <interfaz> Ejemplo: ifconfig enp1s0 ip netmask 255.255.255.0
iwconfig: Descripción: Permite ver una interfaz de Red Wireless y ver el "status" de ésta. Es de la forma ifconfig <interfaz> Ejemplo: iwconfig enp1s0 up
ifup: Descripción: Habilita la interfaz especificada Ejemplo: ifup enp1s0 .
ifdown: Descripción: Deshabilita la interfaz especificada, Ejemplo: ifdown enp1s0 .
nslookup: Descripción: Busca información en los servidores DNS Ejemplo: nslookup -query=mx osomosis.com , si no se especifican parámetros se entra en modo interactivo
route add: Descripción: Permite agregar tablas de ruteo de y hacia el "Host". Ejemplo: route add -net 206.171.55.16 255.255.255.240 eth0 Para guiar toda la información de la red 206.171.55.16 netmask 255.255.255.240 vía la interfaz enp1s0: route add default gw 206.171.55.51 enp1s0 Para rutear todo el tráfico por cierta interfaz
route -n: Descripción: Despliega la tabla de ruteo del "Host". NOTA: Debe de estar "IP Forwarding" ON en /etc/sysconfig/network, además el "kernel" debe de estar configurado para "IP Forwarding".
smbclient: Descripción: Funciona como un cliente , que simula conexiones windows que serán realizadas a través de Samba.
testparm: Descripción: Verifica la validez del archivo smb.conf utilizado por Samba.
wireshark
sniffit
Agrego enp1s0 donde va eth0 por que resulta que debido a la integración de systemd al kernel de linux ya la referencia hacia la red no es eth0 sino enp1s0.

## Comandos de Paquetes

dpkg Descripción: Trabaja con paquetes para linux, instala, crea, descomprime...

## COMANDO DE COMPRESIÓN LINUX

ZIP Comprimir: zip archivo.zip ficheros Descomprimir: unzip archivo.zip Ver contenido: unzip -v archivo.zip
GZIP (GNU ZIP) Comprimir (sin conservar el Fichero): gzip archivo (Nota: el archivo de salida será “archivo.gz”) Comprimir (conservando el Fichero): gzip -c archivo.txt > archivo.gz Descomprimir (sin conservar el Fichero): gzip -d gzip archivo.gz /destino Testear: gzip -t archivo.gz
RAR/UNRAR (Roshal ARchive) Comprimir: rar -a archivo.rar ficheros Descomprimir: unrar e archivo.rar Descomprimir: rar -x archivo.rar Ver Contenido: unrar l archivo.rar Ver contenido: rar -l archivo.rar Verificar contenido: unrar t archivo.rar Ver contenido: rar -v archivo.rar
TAR Empaquetar: tar -cvf archivo.tar /dir/a/comprimir/ Desempaquetar: tar -xvf archivo.tar Ver contenido: tar -tf archivo.tar Nota: tar empaqueta varios archivos en uno solo, pero no comprime. TAR GZ/BZ2 Comprimir: tar -czfv archivo.tar.gz ficheros Comprimir: tar -c ficheros | bzip2 > archivo.tar.bz2 Descomprimir: tar -xzvf archivo.tar.gz Descomprimir: bzip2 -dc archivo.tar.bz2 | tar -xv Ver contenido: tar -tzf archivo.tar.gz Ver contenido: bzip2 -dc archivo.tar.bz2 | tar -t
BZ2 Comprimir: bzip fichero Descomprimir: bzip2 -d fichero.bz2 Nota: gzip ó bzip2 sólo comprimen ficheros (no directorios, para eso existe tar). Es mejor que gzip, pero a cambio consume más memoria y mas tiempo de compresión.
ARJ (Archiver Robert Jung) Comprimir: arj a archivo.arj ficheros Descomprimir: unarj archivo.arj Descomprimir: arj -x archivo.arj Ver contenido: arj -v archivo.arj Ver contenido: arj -l archivo.arj
LHA Comprimir: lha -a archivo.lha ficheros Descomprimir: lha -x archivo.lha Ver contenido: lha -v archivo.lha Ver contenido: lha -l archivo.lha An AZ

## Index of the Bash command line for Linux.

alias: Crea un alias
apropos: Busca ayuda en las paginas de un manual (man -k)
apt-get: Search for and install software packages (Debian)
aspell: Spell Checker
awk: Find and Replace text, database sort/validate/index
b:
bash: GNU Bourne-Again SHell,
bc: Arbitrary precision calculator language,
bg: Send to background,
break: Exit from a loop,
builtin: Run a shell builtin,
bzip2: Compress or decompress named file(s);
c:
cal: Display a calendar,
case: Conditionally perform a command,
cat: Display the contents of a file,
cd: Change Directory,
cfdisk: Partition table manipulator for Linux,
chgrp: Change group ownership,
chmod: Change access permissions,
chown: Change file owner and group,
chroot: Run a command with a different root directory,
chkconfig: System services (runlevel),
cksum: Print CRC checksum and byte counts,
clear: Clear terminal screen,
cmp: Compare two files,
comm: Compare two sorted files line by line,
command: Run a command - ignoring shell functions,
continue: Resume the next iteration of a loop,
cp: Copy one or more files to another location
cron: Daemon to execute scheduled commands,
crontab: Schedule a command to run at a later time,
csplit: Split a file into context-determined pieces,
cut: Divide a file into several parts;
d: date Display or change the date & time
dc: Desk Calculator
dd: Convert and copy a file, write disk headers, boot records
ddrescue Data recovery tool
declare: Declare variables and give them attributes
df Display free disk space
diff Display the differences between two files
diff3 Show differences among three files
dig DNS lookup
dir Briefly list directory contents
dircolors Colour setup for `ls'
dirname Convert a full pathname to just a path
dirs Display list of remembered directories
dmesg Print kernel & driver messages
du Estimate file space usage
echo Display message on screen
egrep Search file(s) for lines that match an extended expression
eject Eject removable media
enable Enable and disable builtin shell commands
env Environment variables
ethtool Ethernet card settings
eval Evaluate several commands/arguments
exec Execute a command
exit Exit the shell
expect Automate arbitrary applications accessed over a terminal
expand Convert tabs to spaces
export Set an environment variable
expr Evaluate expressions
f false Do nothing, unsuccessfully
fdformat Low-level format a floppy disk
fdisk Partition table manipulator for Linux
fg Send job to foreground
fgrep Search file(s) for lines that match a fixed string
file Determine file type
find Search for files that meet a desired criteria
fmt Reformat paragraph text
fold Wrap text to fit a specified width.
for Expand words, and execute commands
format Format disks or tapes
free Display memory usage
fsck File system consistency check and repair
ftp File Transfer Protocol
function Define Function Macros
g
gawk Find and Replace text within file(s)
getopts Parse positional parameters
grep Search file(s) for lines that match a given pattern
groups Print group names a user is in
gzip Compress or decompress named file(s)
h
hash Remember the full pathname of a name argument
head Output the first part of file(s)
history Command History
hostname Print or set system name
i
id Print user and group id's
if Conditionally perform a command
ifconfig Configure a network interface
ifdown Stop a network interface
ifup Start a network interface up
import Capture an X server screen and save the image to file
install Copy files and set attributes
j
join Join lines on a common field
k
kill Stop a process from running
killall Kill processes by name
l
less Display output one screen at a time
let Perform arithmetic on shell variables
ln Make links between files
local Create variables
locate Find files
logname Print current login name
logout Exit a login shell
look Display lines beginning with a given string
lpc Line printer control program
lpr Off line print
lprint Print a file
lprintd Abort a print job
lprintq List the print queue
lprm Remove jobs from the print queue
ls List information about file(s)
lsof List open files
m
make Recompile a group of programs
man Help manual
mkdir Create new folder(s)
mkfifo Make FIFOs (named pipes)
mkisofs Create an hybrid ISO9660/JOLIET/HFS filesystem
mknod Make block or character special files
more Display output one screen at a time
mount Mount a file system
mtools Manipulate MS-DOS files
mv Move or rename files or directories
mmv Mass Move and rename (files)
n
netstat Networking information
nice Set the priority of a command or job
nl Number lines and write files
nohup Run a command immune to hangups
nslookup Query Internet name servers interactively
o
open Open a file in its default application
op Operator access
p
passwd Modify a user password
paste Merge lines of files
pathchk Check file name portability
ping Test a network connection
popd Restore the previous value of the current directory
pr Prepare files for printing
printcap Printer capability database
printenv Print environment variables
printf Format and print data
ps Process status
pushd Save and then change the current directory
pwd Print Working Directory
q
quota Display disk usage and limits
quotacheck Scan a file system for disk usage
quotactl Set disk quotas
r
ram ram disk device
rcp Copy files between two machines
read read a line from standard input
readonly Mark variables/functions as readonly
reboot Reboot the system
renice Alter priority of running processes
remsync Synchronize remote files via email
return Exit a shell function
rev Reverse lines of a file
rm Remove files
rmdir Remove folder(s)
rsync Remote file copy (Synchronize file trees)
s
screen Multiplex terminal, run remote shells via ssh
scp Secure copy (remote file copy)
sdiff Merge two files interactively
sed Stream Editor
select Accept keyboard input
seq Print numeric sequences
set Manipulate shell variables and functions
sftp Secure File Transfer Program
shift Shift positional parameters
shopt Shell Options
shutdown Shutdown or restart linux
sleep Delay for a specified time
slocate Find files
sort Sort text files
source Run commands from a file `.'
split Split a file into fixed-size pieces
ssh Secure Shell client (remote login program)
strace Trace system calls and signals
su Substitute user identity
sudo Execute a command as another user
sum Print a checksum for a file
symlink Make a new name for a file
sync Synchronize data on disk with memory
t
tail Output the last part of files
tar Tape ARchiver
tee Redirect output to multiple files
test Evaluate a conditional expression
time Measure Program running time
times User and system times
touch Change file timestamps
top List processes running on the system
traceroute Trace Route to Host
trap Run a command when a signal is set(bourne)
tr Translate, squeeze, and/or delete characters
true Do nothing, successfully
tsort Topological sort
tty Print filename of terminal on stdin
type Describe a command
u
ulimit Limit user resources
umask Users file creation mask
umount Unmount a device
unalias Remove an alias
uname Print system information
unexpand Convert spaces to tabs
uniq Uniquify files
units Convert units from one scale to another
unset Remove variable or function names
unshar Unpack shell archive scripts
until Execute commands (until error)
useradd Create new user account
usermod Modify user account
users List users currently logged in
uuencode Encode a binary file
uudecode Decode a file created by uuencode
v
v Verbosely list directory contents (`ls -l -b')
vdir Verbosely list directory contents (`ls -l -b')
vi Text Editor
vmstat Report virtual memory statistics
w
watch Execute/display a program periodically
wc Print byte, word, and line counts
whereis Report all known instances of a command
which Locate a program file in the user's path.
while Execute commands
who Print all usernames currently logged in
whoami Print the current user id and name (`id -un')
Wget Retrieve web pages or files via HTTP, HTTPS or FTP
write Send a message to another user
x
xargs Execute utility, passing constructed argument list(s)
yes Print a string until interrupted
. Run a command script in the current shell
*** Comment / Remark

## Tomado de:

* http://www.pello.info/referencia_linux.html
* http://www.osmosislatina.com/linux/comandos.jsp
* http://geneura.ugr.es/~gustavo/linux/
* http://docencia.udea.edu.co/cci/linux/
* http://www.todolinux.com/webs/todolinuxphp/index.php
* http://aprendeenlinea.udea.edu.co/lms/moodle/file.php/109/Sesion3/Comandos_de_Consola.htm
* http://www.ibiblio.org/pub/Linux/docs/LuCaS/Manuales-LuCAS/docunixsec/unixsec-html/node56.html