Vous êtes sur la page 1sur 48

Sistemas Informáticos.

Sistemas Informáticos................................................................... 1
General. .......................................................................................... 2
Árbol de directorios. .................................................................................. 2
Rutas absolutas y relativas. ...................................................................... 4
Terminal.......................................................................................... 4
General. ....................................................................................................... 4
Múltiples ventanas. Tmux.......................................................................... 5
Atajos de teclado. ...................................................................................... 5
Cerrar programas. ...................................................................................... 6
Alias. ........................................................................................................... 6
Comodines / wildcards. ............................................................................. 7
Cadenas de texto / comillas. ..................................................................... 8
Comandos y archivos. ................................................................... 8
Comandos ayuda. ...................................................................................... 8
Sistema / Situación. ................................................................................. 11
Comandos. ..........................................................................................11
Archivos. .............................................................................................13
Directorios, ficheros y enlaces. .............................................................. 13
General. ...............................................................................................13
Directorios. .........................................................................................15
Ficheros. .............................................................................................15
Búsqueda de directorios y ficheros. .................................................17
Enlaces................................................................................................20
Redirecciones / Tuberías / Sustitución. ................................................. 21
Estándares de entrada / salida. .........................................................21
Redirección de entrada. .....................................................................21
Redirección de salida de éxito. .........................................................21
Sustitución. ................................................................................. 21
Adicción. ...................................................................................... 21
Redirección de salida de error. .........................................................22
Concatenación....................................................................................22
/dev/null...............................................................................................22
Tuberías / pipelines. ...........................................................................22
Bifurcación (tee) .................................................................................23
Sustitución de comandos ($) .............................................................23
Usuarios y grupos. ................................................................................... 24
Comandos usuarios. ..........................................................................24
Comandos grupos. .............................................................................25
Archivos. .............................................................................................25
Permisos. .................................................................................................. 26
Comandos. ..........................................................................................26
Permisos especiales. .........................................................................27
Archivos. .............................................................................................28
Gestión de paquetes y archivos. ............................................................ 28
Paquetes, distribuciones y herramientas. ........................................28
Comandos. ..........................................................................................28
Repositorios. ............................................................................... 29
Descarga de software. ................................................................ 29
Herramientas de bajo nivel. Instalación manual. ...................... 29
RESOLUCIÓN DE DEPENDENCIAS ........................................... 30
Herramientas de alto nivel. ......................................................... 31
Archivos. .............................................................................................33
Procesos y servicios. .............................................................................. 33
General. ...............................................................................................33
ARRANQUE DEL SISTEMA. ...............................................................33
Runlevels ..................................................................................... 34
Comandos servicios. .........................................................................34
Manejo de servicios. ................................................................... 34
Deshabilitar servicios. ................................................................ 34
Comandos procesos. .........................................................................35
Archivos. .............................................................................................41
Configuración de red. .............................................................................. 41
Comandos. ..........................................................................................41
Archivos. .............................................................................................42
Conexiones de red. .................................................................................. 42
Comandos. ..........................................................................................42
SSH (Secure SHell) .............................................................................43
Comandos. .................................................................................. 43
Archivos. ...................................................................................... 43
Copia segura de archivos. .................................................................43
Sincronización de archivos. ..............................................................44
Importante: .................................................................................. 45
NFS (Network File System) ................................................................45
Ejemplos: ..................................................................................... 46
Servidor: ...................................................................................... 46
Cliente: ......................................................................................... 46
IP_servidor:recurso_remoto punto_montaje_local .................. 46
SAMBA. ...............................................................................................47
Gestión: ....................................................................................... 47
Usuarios: ..................................................................................... 47
Linux como cliente:..................................................................... 47

General.

Árbol de directorios.

La estructura de directorios en Linux está definida por el Filesystem Hierarchy Standar (FHS). Es la
norma que define los directorios principales, su contenido y sus funciones. Es común los sistemas Linux
y otros derivados de UNIX.

 /bin Ejecutables necesarios para iniciar y ejecutar el núcleo del sistema.


 /boot Núcleo del sistema (kernel)  vmlinuz-4.9.0-6-686. También una imagen RAM inicial del
sistema con los drivers necesarios para arrancar, el GRUB (gestor de arranque) que detecta los
sistemas operativos en el arranque, etc.
 /dev Contine los fichero que permiten acceso a los dispositivos de hardware. En Linux TODO
ES UN FICHERO dentro de la estructura de archivos, incluido cualquier dispositivo.
o Ejemplo listar todos las particiones de todos los discos: ls /dev/sd*

2 de 48
 /etc TODOS LOS FICHEROS DE CONFIGURACIÓN DEL SISTEMA.
o Los archivos con guión al final son backups. Ej: passwd  passwd-
 Por precaución, editar los archivos de configuración solo para modificarlos. Para
consultarlos visualizarlos con more, less o similar.
 Siempre hacer una copia de seguridad de un archivo antes de modificarlo.
Ej: cp host.conf host.conf _bak
 /home Almacena los directorios personales de los usuarios. Se pueden crear usuarios sin
/home o crearlo en otra parte.
 /lib y /lib64 Librerías compartidas por diferentes programas que pertenecen al núcleo del
sistema. Equivalentes a los .dll de Windows. Se dividen en x32 y x64.
 /lost+found Cuando algo sale mal y se corrompe el sistema de archivos (EXT4) por una
apagado repentino, etc, en este directorio se crean los archivos temporales que el sistema
necesita para restaurar el sistema de archivos. Si está VACÍO OK.
 /media Aloja los puntos de montaje de los dispositivos de almacenamiento externo. Los puntos
de montaje se organizan en subcarpetas con el nombre del usuario.
o Al conectar un USB 
 En /dev aparece el archivo sd* (sdb, sdc o la siguiente letra libre porque sda es
para el disco principal) y sdb1 para la partición. Si tiene varias particiones, sdb1,
sdb2, etc.
 En /media aparece un punto de montaje dentro de una subcarpeta con el nombre
del usuario
o Puntos de montaje. Los puntos de montaje están relacionados con los archivos en /dev
y sirven para comunicarse con el dispositivos y acceder a su información.
 /mnt (mount) Versión antigua de la carpeta /media. Normalmente los dispositivos
automontados por el sistema van a /media y los montados manualmente van en /mnt.
 /opt (optional) Software opcional no descargado de los repositorios oficiales. Muchos usuario
lo instalan en su home pero lo más lógico es crear una subcarpeta en /opt e instalarlo en ella.
No es obligatorio, solo se trata de una buena práctica.
 /proc () No es un directorio como tal. Es un sistema de ficheros virtual y está mantenida por el
núcleo del sistema. Toda la información escrita en ella ayuda al sistema a conocer el estado del
sistema en cada momento, como direcciones de memoria para los puertos, etc. Por ejemplo,
cualquier consola que muestre información del sistema lee la información en proc.
 /root Es el /home del superusuario.
 /sbin Comandos utilizados por el root.
 /tmp Aloja archivos temporales generados por diferentes programas.
 /usr Es una de los directorios más grandes del sistema. Almacena en subcarpetas los
programas ejecutables y todo lo que necesiten, librerías, fondos de pantalla, sonidos, iconos,
etc.

3 de 48
o bin, games, include, lib, local, sbin, share, src
o /usr/bin Ejecutables de todos los programas instalados.
o /usr/lib Librerías de todos los programas instalados. Las librerías se comparten de
manera que no se almacene la misma librería varias veces para programas distintos.
o /usr/local Programas que no son propios de la distribución pero que son compatibles
con Linux y sin compilar. Si están bien ejecutados utilizarán subcarpetas en este
directorio.
o /usr/sbin Programas destinados para el administrador del sistema.
o /usr/share Contiene varias subcarpetas con todo lo que es compartido por varios
programas como sonidos, iconos, fondos, etc.
 /usr/share/doc Aquí se guarda la documentación de los diferentes programas
instalados como las manpages. NO ESTA EN TODAS LAS DISTRIBUCIONES.
o /usr/src Código fuente.
 /var (variable) Archivos no estáticos, que van cambiando. Logs, caché del sistema, cola de
impresión, etc.
o /var/log Guarda los logs del sistema. Todo lo que acontece en el sistema queda
registrado aquí. Se van creando subcarpetas para los logs de los nuevos programas
salvo que se configure guardarlos en otro sitio.

Rutas absolutas y relativas.

 Absolutas Comienzan siempre con la raíz (/)


 Relativas Nunca comienzan con la raíz pero se puede índicar ./ al principio (opcional). Esto
último puede ser obligatorio para ejecutar algunos archivos.
o Ejemplo --> Situación /home/alumno02
 cp /home/alumno01/carpeta01/f2.txt
 cp /home/alumno01/carpeta01/f2.txt f2.txt
 cp /home/alumno01/carpeta01/f2.txt ./f2.txt
 cp /home/alumno01/carpeta01/f2.txt /home/alumno02
 cp /home/alumno01/carpeta01/f2.txt /home/alumno02/f2.txt (se puede cambiar de
nombre)
 cp ../alumno01/carpeta01/f2.txt

Terminal.

General.

 Bash (Bourne Again Shell) --> Terminal.

4 de 48
 Prompt Carácter o conjunto de caracteres que se muestran en una línea de comandos
para indicar que está a la espera de órdenes y puede cambiar de una distribución a otra.
o root@server116:~# juan@server116:~$
o Nombre usuario @ maquina : ruta ubicación actual (~ = home usuario actual) tipo usuario
(# = root, $ = usuario normal)
o Configurable Se puede configurar para cada usuario en su home en el archivo .bashrc.
Las líneas del tipo \u@\h:\w\$ permiten cambiar la información y los colores del prompt.

Múltiples ventanas. Tmux.

 Instancias Se pueden abrir varias instancias dentro de la misma terminal. Por defecto la
primera es nombrada tty1.
o Para abrir otras y cambiar entre ellas: Ctrl+Alt+F2  tty2, Ctrl+Alt+F3  tty3, ….,
Ctrl+Alt+F6  tty6
 tmux Permite dividir la consola para ejecutar más de un comando al mismo tiempo. Muy útil en
entorno de texto para tener varios paneles:
o Ctrl+b luego % Divide la consola verticalmente.
o Ctrl+b luego “ Divide la consola horizontalmente.
o Ctrl+b luego flecha_dirección Permite cambiar entre los paneles.
o Ctrl+b+flechaCursor Permite redimensionar los paneles. SOLO EN ENTORNO
GRÁFICO.
o exit Cierra el panel actual. Con un solo panel se sale de tmux.
o ASOCIAR DOS VENTANAS DE COMANDO, una como servidor y otra como cliente.
Pueden estar en máquinas diferentes conectadas:
 SERVIDOR Es la máquina / ventana donde se crea la sesión  tmux new-
session -s nombre_sesión
 CLIENTE Es la máquina / ventana desde la se realiza la conexión al servidor
 tmux attach [nombre_sesión] (si hubiera más de una sesión abierta se
especificaría con el nombre).
 CLIENTE Abrir nuevas ventanas en el servidor  Ctrl+b c
 CLIENTE Cambiar entre las diferentes pantallas  Ctrl+b n (next) / p (previous)
 CLIENTE Mostrar todos las ventanas  Ctrl+b w

Índice

Atajos de teclado.

 Alt Gr + 4 = ~ (escribe el símbolo virgulilla).

5 de 48
 Shift + RePag / AvPag Permite retroceder y avanzar por los resultados de un comando.
 Ctrl+a Inicio del comando.
 Ctrl+e Final del comando.
 Ctrl+f Hacia delante carácter a carácter.
 Ctrl+b Hacia atrás carácter a carácter.
 Alt+f Hacia delante palabra a palabra.
 Alt+b Hacia atrás palabra a palabra.
 Ctrl+l Limpia la pantalla == clear.
 Ctrl+Delete Encima de un carácter lo borra.
 Ctrl+t Sobre un carácter lo intercambia con el precedente.
 Alt+t Sobre una palabra la intercambia con la precedente.
 Alt+u Sobre una palabra la pone en mayúscula desde la posición actual hasta el final.
 Ctrl+k Borra desde la posición actual hasta el final PERO QUEDA EN EL
PORTAPAPELES.
 Ctrl+u Borra desde la posición actual hasta el inicio de línea PERO QUEDA EN EL
PORTAPAPELES.
 Ctrl+i Pega.
 Alt+? Propone coincidencias == tabulador
 Alt+* Escribe todas las opciones posibles para una ruta.
o ls -l /usr/bin Alt+*  Escribe todas las rutas posibles  ls -l /usr/bin /usr/games
/usr/include /usr/lib /usr/local /usr/sbin /usr/share /usr/src
o ls -l /usr/b Alt+*  Completa la ruta  ls -l /usr/bin
 Ctrl+r Busqueda reversa. Pide una entrada de texto y comienza a buscar coincidencias.
 Enter Ejecuta el comando.
 Ctrl+c Salir de la búsqueda.

Cerrar programas.

 Ctrl+c Cierra el programa


 q quit
 Ctrl+z Suspende el programa

Índice

Alias.

 alias Permite llamar / ejecutar un comando o conjunto de ellos mediante un alias para
simplificar su uso.

6 de 48
o alias bocata=’cd /usr; ls; cd -‘ Crea el alias ‘bocata’ que ejecutará la cadena de
comandos indicada.
o alias Lista todos los alias en el sistema.
o PERSISTENCIA  Los alias se pierden al cerrar la sesión. Para guardarlos se utiliza el
fichero .basrc en el home de cada usuario (o para todos los usuarios en
/etc/bash.bashrc). Es un archivo de configuración del Shell para cada usuario. Al final
del archivo se podría añadir algo así:
 alias bocata=’cd /usr; ls; cd -‘
 unalias nombre_alias Elimina el alias designado.
o unalias bocata Elimina el alias bocata.

Comodines / wildcards.

 * (asterisco) Cualquier carácter, conjunto de caracteres o nada.


o cp rutaOrigen rutaDestino  cp rutaOrigen/* rutaDestino  Todos el contenido de origen
copiarlo en destino.
o *.mp3  Extensión mp3
o b*.txt  Todos los txt que comiencen por b.
o [abc]*  Empieza por a, b ó c seguido de cualquier cosa.
 ? (cierre interrogación) Cualquier caracter PERO SOLO UNA OCURRENCIA.
o data???  Comienza por data seguido por tres caracteres cualquiera.
 [caracteres] Un solo caracter que sea miembro del conjunto contenido en los corchetes.
o [a-e] Cualquier carácter entre ‘a’ y ‘e’, ambos inclusive. Equivale a [abcde]
o [A-Za-z] Cualquier letra mayúscula o minúscula, pero solo una ocurrencia.
o BACKUP.[0-9][0-9][0-9]  BACKUP.000 a 999
 [!caracteres] Negación de caracteres. Cualquier carácter que no sea miembro del conjunto
contenido en los corchetes
o [!abc] Ni ‘a’ ni ‘b’ ni ‘c’.
o [¡[:digit:]]g* Niega una clase. No puede empezar por un dígito y el segundo caracter
tiene que ser una ‘g’ seguido de cualquier cosa.
 [[:class:]] Cualquier carácter (solo uno) que coincida o sea miembro de la clase indicada.
o [:alnum:] Cualquier carácter alfanumérico.
o [:alpha:] Cualquier letra.
o [:digit:] Cualquier dígito.
 [:digit:]* Cualquier dígito seguido de cualquier cosa  3.txt
o [:lower:] Minúsculas.
o [:upper:] Mayúsculas.
 1 mayúscula seguida de cualquier cosa.

7 de 48
 *[[:lower:]123] Empieza por cualquier cosa o no, seguido o de una minúscula, 1,
2 ó 3  aloloco3, a, 2. EstUPidox. Otra manera sería *[[:lower:]1-3]
 ; (punto y coma) Permite ejecutar varios comandos en una misma línea de forma consecutiva.
o cd /usr; ls; cd -  va a usr, lista el contenido y vuelve al nuestra posición anterior.

Cadenas de texto / comillas.

 “ (comillas dobles) Ayudan a conservar el formato de lo que contienen y permiten solo algunas
sustituciones ($).
o Diferencias:
 echo “$USER $((2+2)) $(cal)” != echo $USER $((2+2)) $(cal)
 echo “Hola a todos” != echo “Hola a todos”
 echo text ~/* {a,b} $(echo foo) $((2+2)) $USER != echo “text ~/* {a,b}
$(echo foo) $((2+2)) $USER”
 ‘ (comilla simple) Se toma todo como un literal y no permite las sustituciones ($).
o Diferencias:
 echo “text ~/* {a,b} $(echo foo) $((2+2)) $USER” != echo ‘text ~/* {a,b}
$(echo foo) $((2+2)) $USER’
 \ (escape) Caracteres de escape
o echo “Mis alumnos ganan $500” != echo “Mis alumnos ganan \$500”
o echo -e “Hola\tAdios” != echo “HolaAdios” != echo -e “Hola\nAdios”

Índice

Comandos y archivos.

Comandos ayuda.

En Linux hay cuatro tipos de comandos:

 Programa ejecutable. Suelen estar en /usr/bin.


o type clear clear is /usr/bin/clear
o type cp cp is /bin/cp
 Órdenes o instrucciones internas del Shell.
o type cd cd es una orden interna del shell.
 Funciones del Shell. Pequeños scripts (.ssh).
 Alias.
o type ls ls es un alias de `ls --color=auto'

8 de 48
type ls ls es un alias de ‘ls—color=auto’ Y tres variantes o estilos en el uso de las opciones de cada
comando:

 UNIX Opción precedida de un guión (-g).


 BSD Las opciones no llevan guión (g).
 GNU Nombres de las opciones largos precedidos de doble guión (--group).

Ayudas con el tipo, ubicación y uso de los comandos:

 type nombre_comando Muestra el tipo de comando que se indica.


o type mkdir  mkdir is /bin/mkdir
 which nombre_comando Muestra la ubicación de un ejecutable.
o which ls /bin/ls
 history Muestra todos los comandos ejecutados. Lee la información del archivo .bash_history
en el home de cada usuario.
o !num_comando Vuelve a ejecutar el comando.
o !! Se repite el último comando ejecutado.
 Ayuda. Muestra la información de uso y una lista de opciones que se pueden utilizar con el
comando. No siempre las tres opciones están disponibles para todos los comandos.
o Nombre_comando -h ó --help (guión guión help)
o help nombre_comando
o wget --help ó wget --h Información del comando wget.
 man [opciones] [número_sección] nombre_comando Muestra los manuales detallados para
cada comando conocidos como “man-pages”. Normalmente contienen una información mucho
más detallada que la opción -h ó –help.
o manpath Muestra la ruta donde el programa man debe buscar sus páginas.
o https://man.cx/ Manpages online.
o https://manpages.ubuntu.com Manpages online. Para verlas en español, modificar en la
URL el identificador de idioma.
o Opciones:
 -h Mensaje de ayuda.
 -w Muestra la ubicación de las páginas del manual a mostrar.
 -k palabra_clave Busca la palabra clave entre las descripciones breves y las
páginas del manual , manpages, y muestra las coincidencias.
 q Salir.
o Opciones DENTRO de las manpages:
 q Salir de la pantalla.
 h, H Despliega la pantalla de ayuda. q para salir de la pantalla de ayuda.
 e Avanza una línea.

9 de 48
 y Retorna una línea.
 [Barra espaciadora] Avanza una pantalla.
 d Avanza media pantalla.
 u Regresa media pantalla.
 [Flecha a la derecha] Mueve media pantalla a la derecha.
 [Flecha a la izquierda] Mueve media pantalla a la izquierda.
 Búsqueda:
 ? [cadena] Busca una cadena de texto hacia arriba. CASE SENSITIVE.
En algunos sitios aparece como ¿[cadena]
 /[cadena] Busca una cadena de texto hacia abajo. CASE SENSITIVE.
 /PROCESS STATE CODES ¿-m /EXAMPLES ¿AUTHOR /session ID
 g Avanza al inicio del manual.
 G Avanza al final del manual.
o Secciones (posiblemente las más importantes sean la 1 y la 5):
 1 bin Binarios esenciales para el funcionamiento del sistema. Programas
ejecutables y guiones del intérprete de órdenes.
 2 sys Llamadas del sistema (funciones servidas por el núcleo).
 3 lib Llamadas de la biblioteca (funciones contenidas en las bibliotecas
del sistema).
 4 dev Ficheros especiales, normalmente en /dev (ej.: HD, pendrive, tarjeta
de vídeo, impresora, etc). Información de drivers.
 5 etc Archivos de configuración. Formatos de los ficheros.
 6 games.
 7 misc Miscelánea.
 8 sbin Binarios esenciales para la administración y mantenimiento del
sistema (root).
 9 boot Kernel.
o Ejemplos:
o man ls Información sobre el comando ls.
 info [opciones] nombre_comando Algunos programas no tienen “man-pages” o son
muy incompletas. En estos casos es recomendable el comando info en lugar del comando man.
o Info Muestra información sobre si mismo.
o -d nome_dir Agrega un directorio a la lista de directorios a ser buscados para archivos.
o -f arqinfo Especifica el archivo a ser utilizado por el comando info.
o -h Mensaje de ayuda.
 apropos palabra_clave Busca en todo el sistema información relacionada con la palabra
clave. El comandos linux apropos busca “man-pages” que contienen una frase, así que es una

10 de 48
forma rápida de encontrar un comando que puede hacer algo. Es igual a la ejecución de la orden
man -k. Apropos muestra información sobre un tema a partir de una base de datos.
o apropos directory
o apropos mail Lista toda la información sobre los comandos que utilizan correos
electrónicos.
o Queremos contar los elementos de un directorio  apropos count  Muestra
sugerencias de comandos.
o Observación La diferencia entre whatis y apropos, es que whatis necesita el nombre
exacto del comando y apropos puede poner el nombre del comando o lo que hace.
 whatis palabra_clave Muestra un resumen de una línea de un comando, tomado de su “man-
pages”. Es una forma rápida de ver lo que un comando contiene.
o whatis find
o whatis Consulta manuales del sistema a partir de una base de datos. Esta base de datos
debe ser actualizada periódicamente con el comando makewhatis (sólo con el usuario
root).
o makewhatis -? Muestra ayuda sobre este comando.
 Comando no encontrado Cuando se sabe el comando que se necesita pero no se conoce el
paquete que lo contiene se puede escribir de todos modos. Algunas distribuciones (Ubuntu) van
a indicar el paquete que contiene el comando y mostrarán los comandos que se pueden usar
para instalarlo.
o rotate (permite rotar una imagen) “Command ‘rotate’ not found, but can be installed
with: apt install jigl”

Índice

Sistema / Situación.

Comandos.

 halt Solo root. Apaga el sistema y lo deja preparado para apagar físicamente la máquina.
 clear Limpia la pantalla.
 date Fecha y hora del sistema.
 cal Calendario.
 tzselect Seleccionar zona horaria.
 free Muestra el uso de memoria
 df Distribución del disco duro, sistema de archivos, tamaño en bloque de 1K. Bloques utilizados
libres.
 pwd Directorio actual. Situación actual del prompt del usuario.

11 de 48
 cd Moverse por la estructura de directorios.
cd Lleva al home del usuario.
cd Puede utilizar rutas absolutas o relativas:
Absolutas  cd /…/directorio
Relativas  cd directorio ó cd ./directorio
cd .. Lleva al directorio superior.
cd - Lleva a la situación anterior del prompt del usuario.
cd ~ Lleva a la carpeta personal del usuario actual.
cd ~nombre_usuario Lleva a la carpeta personal del usuario indicado.
 printenv Muestra todas las variables de entorno. Para mostrar el valor de cada variable se
puede usar echo:
o echo $NOMBRE_VARIABLE Muestra el valor de una variable de entorno concreta.
o echo $USER Usuario actual.
o echo $MAIL, echo $LOGNAME, etc...
 echo Muestra un mensaje en pantalla.
echo hola mundo
echo * Muestra todo el contenido del directorio actual. El resultado coincidirá con el del
comando ls.
echo f* Muestra todo el contenido del directorio cuyo nombre empiece por f ó f* si
no encuentra ninguna equivalencia.
echo [[:upper:]]* Muestra todo el contenido del directorio actual cuyo nombre
empiece por mayúscula.
echo /usr/*/share Muestra la ruta completa  /usr/local/share
echo ~ Muestra la ruta del home del usuario actual.
echo ~pepe Muestra la ruta del home del usuario dado.
echo $((2+2)) Muestra el resultado.$((2-2)) $((2/2)) $((2*2)) $((2%2))
echo $(($((5+2))-1)) ó $(((2+5)-1)) 6
echo cinco entre dos es: $((5/2)) Admite mezclar texto y operaciones.
echo From-{A,B,C}-Back From-A-Back From-B-Back From-C-Back  Genera una
secuencia con los elementos dentro de las llaves.
echo Numeros_{1..5} Numeros_1 Numeros_2 Numeros_3 Numeros_4 Numeros_5
echo {001..15} 001 002 003 004 005 ..... 015
echo a{A{1,2},B{3,4}}b aA1b aA2b aB3b aB4b
echo $NOMBRE_VARIABLE Muestra el valor de una variable de entorno concreta.
echo $(ls) Muestra por pantalla el resultado del comando ls.

12 de 48
Archivos.

 /var/log/syslog Logs del sistema.

Directorios, ficheros y enlaces.

Nombres de ficheros y directorios. Para los ficheros y directorios es recomendable evitar los espacios
en blanco. Cuando se tenga que trabajar con nombres con espacios en blanco, estos deberán ir entre
comillas (“).

Ficheros y directorios ocultos. El nombre va precedido de un punto .fichero.txt.

General.

 tree Muestra el árbol de directorios.


 ls Lista contenido de los directorios.
o ls /usr /bin Lista el contenido de ambas carpetas.
o -l Lista el contenido en formato largo:

1ª col. 2ªcol. 3ªcol. 4ªcol. 5ªcol. 6ªcol. 7ªcol.


Tipo y Nº de Propietario Grupo Tamaño Fecha última Nombre
permisos enlaces propietario (bytes por modificación
duros defecto)

o -h Por “human”. La unidad de tamaño pasa de bytes a la mayor posible dependiendo


del tamaño del archivo para facilitar la lectura..
o -a Muestra ficheros y directorios ocultos.
o -A (--almost-all) Muestra ficheros y directorios ocultos excepto el directorio actual y el
padre.
o -R Lista los directorios y subdirectorios recursivamente.
o -r Reverse del comando o de la opción a la que sigue. -Sr Cambia el orden de la
opción -S que es el tamaño.
o -t Ordena por la fecha de modificación. Los más modernos primero.
o -S Ordena por tamaño. Los más grandes primero.
o -F (--classify) Clasifica los elementos. ‘/’ directorios, ‘*’ archivos ejecutables
o Ejemplo: ls -l $(which resolv.conf) Lista con formato largo el archivo resolv.conf
incluida la ruta.
o -i (--inode) Muestra el número de índice de cada fichero. Muy útil para trabajar con
enlaces.
 sort Ordena los ficheros antes de mostrarlos.

13 de 48
o ls -l /usr/bin | sort
 cp Copia ficheros y directorios.
o -a (--archive) Copia los elementes preservando los permisos y el propietario o de lo
contrario pondrá los del usuario que realiza la copia.
o -i (--interactive) Pregunta antes de sobrescribir ficheros con el mismo nombre en el
destino.
o -r (--recursive) Hace copia recursiva, copia el contenido de las carpetas.
o -u (--update) Actualiza los archivos. No copia los archivos repetidos. Solo copia los
archivos que suponen un cambio o si están repetidos copia solo si son más modernos.
o -v (--verbose) Fuerza la salida de información por cada acción de copia que realice el
comando.
o Ejemplos:
 cp /etc/passwd . (espacio_punto) Copia el fichero passwd al directorio actual.
 cp fichero1.txt fichero2.txt Copia el fichero1 como fichero2
 cp fichero1.txt fichero2.txt fichero3.txt carpeta1 Copia los tres ficheros en la
carpeta1.
 cp -r fichero1.txt fichero2.txt fichero3.txt carpeta1 carpeta2 Copia los tres
ficheros y el contenido de carpeta1 en la carpeta2.
 cp /etc/passwd Copias fichero passwd en /etc al directorio actual.
o ERROR COMÚN al copiar el contenido de un directorio en otro:
 cp -ur carpeta1 carpeta2 MAL. Copia la carpeta1 dentro de la carpeta2
 cp -ur carpeta1/* carpeta2 Copia el contenido de carpeta1 en la carpeta2
 mv Mueve y/o renombra ficheros y directorios.
o -i (--interactive) Pregunta antes de sobrescribir ficheros con el mismo nombre en el
destino.
o -u (--update) Solo mueve las actualizaciones.
o -v (--verbose) Fuerza la salida de información por cada acción de copia
que realice el comando.
o Ejemplos:
 mv f.txt a.jpg Renombra el archivo f.txt como a.jpg
 mv /ruta_origen /ruta_destino Mueve el archivo o directorio de una ruta a
otra.
 mv f.txt carpeta1 Mueve el archivo
 mv f.txt a.jpg b.gif carpeta1 Mueve los tres archivos a la carpeta1.
 mv hola.txt carpeta1/adios.txt Mueve el fichero hola.txt a la carpeta1 y lo
renombra como adios.txt
 rm Borra ficheros y directorios.
o -i (--interactive) Pide confirmación.

14 de 48
 rm -i f1.txt Pregunta antes de borrar f1.txt
o -v (--verbose) Fuerza la salida de información por cada acción de copia que realice el
comando.
o -r (--recursive) NECESARIO PARA BORRAR CARPETAS.
 rm -r f1.txt carpeta1 Borra f1.txt y carpeta1 (gracias a -r).
o -f (--force) Fuerza la ejecución aunque haya errores (por ejemplo que se le ordene
borrar un archivo que ya no existe) No se detendrá en cada error.
 rm -rf f1.txt carpeta1 Si f1.txt no existe, parará y no borrara carpeta1 pero al
con -f continuara a pesar de los errores y lo borrará todo.
o Borrar todo Hay que ejecutar dos comandos.
 rm * Borra todo excepto los archivos ocultos.
 rm .* Borra todos los archivos ocultos solo.
o ERROR COMÚN al querer borrar utilizando comodines:
 rm * .html Borra TODO y luego busca .html porque hay un espacio entre el
asterisco y el resto del nombre de los archivos a borrar.
 rm *.html Borra todos los archivos .html

Índice

Directorios.

 mkdir Crea directorios.


o mkdir carpeta1 Crea el directorio carpeta1.
o mkdir dir1 dir2 dir3 Crea los tres directorios al mismo nivel y al mismo tiempo.
 Ejemplos de creación de una estructura de directorios con un solo comando:
o Una carpeta para cada año del 2000 al 2010.
o En cada carpeta anual una carpeta para cada mes.
o En cada carpeta mensual una carpeta para cada día.
 mkdir -p Fotos/Anio{2000..2010}/Mes{01..12}/Dia{01..30}  4103 directorios.
o Estructura de directorios con departamentos, doc_publicos y profesores con sus
respectivas subdirectorios:
 mkdir -p
ejercicio/{departamentos/{contabilidad,desarrollo,direccion,sistemas},doc_p
ublica/{alumnos/alumno{001..020},profesores/{carmen,fernando,nuria}}}

Ficheros.

 file Identifica el tipo de fichero, su formato. Lee el encabezado del archivo y da información
sobre él independientemente de la extensión.

15 de 48
o file nostromo.jpg Nos dirá el tipo de archivo sin tener en cuenta la extensión.
o file $(ls -d /usr/bin/* | grep zip) Que tipo de archivos son todos los zip en la ruta
dada.
 comm Compara dos archivos ordenados línea por línea.
o comm letras1 letras2 Compara los dos archivos y muestra la diferencia línea por
línea.
 touch Crea un fichero vacío.
o touch fichero.txt. Puede crear más de un archivo touch borrador carta.txt
 nano Editor de texto.
o nano carta.txt. Puede crear más de un archivo nano borrador carta.txt
o ^ = Ctrl  ^O = Ctrl+O
 cat Muestra el contenido de uno o varios ficheros concatenados.
o cat fichero.txt Muestra el contenido de fichero.txt.
o cat fichero.txt fichero2.txt Mostrara el contenido fichero.txt primero y luego el
contenido de fichero2.txt.
o cat Si no se añade ningún parámetro espera para mostrar la salida del teclado. Ctrl+d
 Repite lo escrito.
o cat > ficheto.txt Redirige la salida del teclado al fichero indicado.
o cat < fichero.txt Muestra por pantalla el contenido de fichero.txt
 more Muestra el contenido de un fichero pero según el espacio disponible en la pantalla.
 less Muestra el contenido de un fichero pero si no hay espacio permite navegar con arriba y
abajo con las flechas del cursor.
o Con el fichero visualizado:
 Q /q Exit.
 G Final archivo.
 g Inicio del archivo.
 /cadenaTexto La busca en el archivo.
 head Muestra el comienzo de un fichero.
o head salida.txt
o head -n NúmeroLíneas  head -n 5 salida.txt  Muestra las primeras 5 líneas del
fichero salida.txt
 tail Muestra el final de un fichero.
o tail salida.txt
o tail -n NúmeroLíneas Muestra las últimas n líneas.
o tail -n 5 salida.txt Muestra las últimas 5 líneas del fichero salida.txt
o tail -n+20 salida.txt Empezará por la línea nº 20.
o tail -f /var/log/syslog Se queda leyendo de manera continua el fichero y mostrando
cada variación en él.

16 de 48
 wc Muestra información de un archivo.
o wc carta.txt  6 24 135 carta.txt  Número de líneas, de palabras, de bytes y nombre
del fichero.

Índice

Búsqueda de directorios y ficheros.

 uniq Detecta archivos repetidos. Para detectarlos necesita que aparezcan como adyacentes al
listarlos por lo que se suele utilizar junto ls y después de sort.
 grep [OPTIONS] PATTERN [FILE …] Orientado a buscar cadenas de texto DENTRO de los
archivos.
o [OPTIONS]
 -r Búsqueda recursiva en el directorio y subdirectorios.
 -i Ignora mayúsculas y minúsculas.
 -v Muestra las líneas que NO contienen la cadena indicada.
 -e –regexp Permite el uso de expresiones regulares.
o PATTERN
 Cuando se indica una cadena de caracteres con espacios en blanco, debe ir entre
comillas dobles o sencillas  “Private Vasquez”.
 Regex (expresiones regulares) Algunos parámetros son:
 Algunas de sus parámetros para construir las expresiones regulares son:
 ^ Indica inicio de línea.
 $ Indica final de línea.
 \ (backslash) Carácter de escape. Evita dar un significado especial a un
carácter. ^  \^
 • [] Indica un conjunto de caracteres o un rango.
 [^ ] Indica la negación de un conjunto de caracteres.
 . (punto) Indica cualquier carácter.
 * (asterisco) Indica que puede existir el carácter o expresión anterior
ninguna o varias veces.
 \{x,z\} Indica que el carácter o expresión anterior puede existir entre x y z
veces.
 \{x\} Indica que el carácter o expresión debe repetirse exactamente x
veces.
 \{x,\} Indica que el carácter o expresión debe repetirse x veces o más.
 Ejemplo [a-z0-9._-]+@[a-z0-9.-]+[a-z]{2,4}

17 de 48
o [a-z0-9._-]+ Una combinación de letras, números, y/o los
símbolos . (punto) _ (guión bajo) y - (guión) de uno o más
caracteres.
o @ Seguido de una arroba.
o [a-z0-9.-]+ Seguido de una cadena de letras, números y/o los
símbolos . (punto) y – (guión).
o [a-z]{2,4} Seguido de una cadena de entre dos y cuatro
caracteres.
o Filtro Se suele utilizar como filtro sobre la salidas de otros comandos utilizando pipelines
 ls -l /dev | grep std  De la salida del comando ls tomara solo los que contengan std
en su nombre.
o Ejemplos:
 grep hola fichero1 Busca líneas que contengan “hola” dentro de
fichero1.
 grep ‘^ho’ fichero? Busca una cadena que comience por “ho” en todos
los ficheros cuyo nombre empiece por fichero seguidos de un carácter.
 grep ‘^.$’ fichero1 Busca líneas con un solo carácter en fichero1.
 grep ‘[A-Z]’ fichero1 fichero2 Busca líneas con al menos una letra
mayúscula dentro de fichero1 y fichero2.
 grep "Started Session [0-9A-Za-z ]* usuario." /var/log/syslog -c Busca las
líneas que contengan ‘Started Session’ y terminen con ‘usuario.’ en el archivo
indicado y cuenta las líneas.
 find [startingdirectory] [expresión_de_búsqueda] [acción] Orientado a buscar y filtrar
archivos y directorios.
o find /ruta -type f -size +50m -user -group -perm -not/-and/-or -iname/-name “nombre
del archivo”
o /ruta Se puede utilizar punto (.) en vez de / para forzar la búsqueda a solo el directorio
actual y sus subdirectorios.
 /ruta1 /ruta2 Admite varias rutas de forma conjunta.
o -type f (archivos regulares), d (directorios), l (enlaces simbólicos), c (dispositivos de
caracteres) y b (dispositivos de bloqueo).
o -size +20M (archivos más grandes de 20 MB), -22M (archivos de menos de 22M) y 32M
(omitiendo + y - busca archivos del mismo tamaño que el indicado).
 c (bytes), k (kilobytes), M (megabytes), G (gigabytes) o b (bloques de 512 bytes)
o -user nombre_usuario Búsqueda por nombre de usuario propietario  -user max
o -group nombre_grupo Búsqueda por nombre de grupo propietario  -group
estudiantes
o -perm permisos Búsqueda por el tipo de permisos  -perm 777

18 de 48
o -iname No case sensitive. / -name Case sensitive.
o nombre_archivo ó “nombre del archivo” Admite comodines para buscar
subcadenas, “*.mp3”, “*wiki*”
 Archivos ocultos “.*”
o -mindepth / -maxdepth
 find wordpres –mindepth 1 –name “*js”  Busca en todos los niveles de
directorios excepto en el raíz de la ruta, el primer nivel.
 find wordpress -maxdepth 1 -name “*js”  Solo busca en el directorio raíz.
o Operadores relacionales -not/-and/-or
 -not ó ! (Admite ambos)
 find . –type f ! –name *php Todos los archivos que NO
terminen con .php
 find . –type f -not –name *php Lo mismo. Admite ! y -not
 -a find . –name ‘*.php’ –a –name ‘*.txt’ Archivos php y archivos txt.
 -o find . –name ‘*.php’ –o –name ‘*.txt’ Archivos php o archives txt. Si
la primera expresión es cierta no busca la segunda.
o -links n Ficheros con “n” enlaces duros.
o -lname nombre_enlace Busca enlaces simbólicos.
o -regex expresión_regular Permite utilizar expresiones regulares.
o Ejemplos:
 find . -type f -perm 777 -exec chmod 755 {} \ Realizara una búsqueda en el
directorio actual (y subdirectorios) de archivos con permisos 777. Después usará
el comando chmod para cambiar los permisos a 755.
 locate Alternativa al comando find. Es más rápido pero sin tantas opciones.
o sudo apt update  sudo apt install mlocate No viene instalado por defecto.
o sudo updatedb Actualiza manualmente la BBDD del sistema. El comando locate
busca en la base de datos principal del sistema operativo Linux. Si esa base de datos no
se actualiza, incluso los archivos eliminados pueden aparecer en los resultados de
búsqueda.
o -n 20 Solo los primeros 20 resultados.
o -i Ignora mayúsculas y minúsculas.
o -b Solo muestra los archivos que contengan la cadena y no todos los directorios que
los contienen.
o -e Muestra entradas de archivos existentes en el momento en que se ejecuta el
comando locate.
o -q Inhabilita la visualización de errores encontrados en el proceso de búsqueda.
o -c Muestra la cantidad de archivos que coinciden, en lugar de los nombres de los
archivos.

19 de 48
o Ejemplo: locate -n 20 -i “*.jpg” Muestra los 20 primeros resultados de todos
los archivos terminados en .jpg

Índice

Enlaces.

 ln Crea enlaces. Hay dos tipos de enlaces:


o ENLACES DUROS:
 ln fichero.txt enlace Por defecto, todos los ficheros son “enlaces duros”. En
realidad el nombre de un fichero es un “enlace duro” que apunta al contenido del
fichero. LIMITACIONES: Un enlace duro no puede estar apuntando a un fichero
fuera de su sistema de archivos, como otra partición o disco. No pueden apuntar
a directorios.
 El número de enlaces duros se muestra en la 2ª col. de ls –l. Si existe más de un
enlace duro a un contenido, con el comando rm no se borrará el contenido del
archivo hasta que se borren todos los enlaces duros que apuntan a él. En realidad
parecerá que es borrado, pero si se edita utilizando alguno de los enlaces duros
veremos que el contenido del archivo todavía esta accesible, porque un enlace
duro es como si fuese el fichero.
 ln /home/alumno01/fotos/foto.jpg /var/lib/musica/enlacefoto
 -i Aparecerá el mismo número en todos los enlaces duros al mismo fichero
porque están apuntando al mismo bloque de datos, es el número de nodo al que
apuntan. Aparece también en el nombre porque los nombres son enlaces duros.
o ENLACES SIMBÓLICOS:
 ln -s fichero.txt enlace Son los más utilizados porque no tienen las limitaciones
de los “enlaces duros”. Es el tipo más similar a los utilizados en Windows.
Permiten apuntar a directorios.
 El enlace simbólico apunta en verdad al nombre del fichero (enlace duro). Si se
borra el enlace simbólico no afecta al fichero pero si se borra el archivo el enlace
simbólico queda roto y no apunta a ningún sitio.
 Sintaxis. ln -s /ruta_archivo /ruta_enlace
 R. ABSOLUTAS:
o ln -s /home/etc/passwd /home/alumno01/fotos/enlacepasswd
 RUTAS RELATIVAS. Con rutas relativas, la ruta al archivo se hace desde
la localización del enlace:
o ln -s ../../../etc/passwd /home/alumno01/fotos/enlacepasswd

20 de 48
Índice

Redirecciones / Tuberías / Sustitución.

Estándares de entrada / salida.

 Son comportamientos por defecto en la entrada y salida de datos.


o stdin (Standard Input) (descriptor 0) (/dev/stdin)  Envía al programa los datos
ingresados, normalmente mediante el teclado pero también como resultado de la
ejecución de un comando.
o stdout (Standard Output) (descriptor 1) (/dev/stdout)  Cuando un comando da un
resultado de éxito, este es enviado a stdout que apunta a la pantalla.
o stderr (Standard Error) (descriptor 2) (/dev/stderr) Cuando un comando da error, este es
enviado a stderr que apunta a la pantalla.
 Se encuentran en el directorio ls /dev:
o find /dev -name “std*” ó ls –l /dev | grep std
 Las redirecciones permiten modificar estos comportamientos por defecto.

Redirección de entrada.

 Permite cambiar la entrada estándar (teclado) por otra.


o cat < fichero.txt Muestra en pantalla el contenido de fichero.txt

Redirección de salida de éxito.

Sustitución.

 ls -l /usr/bin > ls-output.txt Crea el archivo ls-output.txt y escribe en él la salida del comando ls
-l /usr/bin.
o Si el fichero ya existe, no lo crea pero SOBREESCRIBE SU CONTENIDO.
 > fichero.txt Crea un fichero vacío con el nombre fichero.txt
 cat > fichero.txt Envía la salida del teclado al fichero.txt

Adicción.

 ls -l /usr/bin >> ls-output.txt Crea el archivo ls-outputl.txt y escribe en él la salida del comando
ls -l /usr/bin. Si el fichero ya existe, no lo crea y si ya tiene información AÑADE AL FINAL EL
RESULTADO DEL COMANDO.

21 de 48
Redirección de salida de error.

 ls -l /bin/usr 2> ls-error.txt Crea el archivo ls-error.txt y escribe en él la salida del comando ls -
l /bin/usr. Si el fichero ya existe, no lo crea pero SOBREESCRIBE SU CONTENIDO.
 ls -l /bin/usr 2>> ls-error.txt Crea el archivo ls-error.txt y escribe en él la salida del comando ls
-l /bin/usr. Si el fichero ya existe, no lo crea y si ya tiene información AÑADE AL FINAL EL
RESULTADO DEL COMANDO.

Concatenación

 ls /usr/bin /etc /prima > salida.txt 2> errores.txt La salida va al fichero salida.txt y los errores
van al fichero errores.txt
 ls /bin/usr /urs/bin > salida.txt 2>&1 Los éxitos los guarda en salida.txt y los fracasos también
en el mismo sitio que los éxitos (salida estándar = 1).
 ls /bin/usr /urs/bin >> salida.txt 2>&1 Lo mismo que el anterior pero añadiendo la salida en el
archivo.
 ls /usr/bin /urs/bin 2>&1 > f1.txt Los errores salen por pantalla y los éxitos los manda a un
fichero.
 ls /bin/usr &> salida.txt Versión abreviada donde éxitos y fracasos son redireccionados al
mismo fichero.
 ls /bin/usr &>> salida.txt Lo mismo que el anterior pero añadiendo no sobreescribiendo.
 cat f1.txt f2.txt > resultado.txt Concatena los contenidos de los dos primeros ficheros en el
tercero. Puede servir con algunos archivos de vídeo (mpeg) e incluso imágenes.

Índice

/dev/null

 Cuando se quiere evitar la salida de un comando, esta se redirige a /dev/null


o ls /usr/bin > /dev/null
o ls /usr/bin $> /dev/null Se descartan éxitos y fracasos.
o ls /usr/bin /etc /prima > /dev/null 2>> errores.txt Los éxitos se descartan y los errores
se envían a errores.txt
 Los comandos que realizan una acción siguen realizando su cometido, lo único que se evita con
la redirección a /dev/null es la salida de los comandos.

Tuberías / pipelines.

 comando 1 | comando 2 | comando 3 | ...... | comando n

22 de 48
 El resultado de un comando se lo envía como entrada al siguiente comando.
o ls -l /usr/bin | less Permite visualizar la salida de ls -l página a página con less.
o ls l /usr/bin /bin | sort | less La salida de ls -l se envía a sort para la que la ordene y
luego a less para poder visualizarla página a página.
o ls /usr/bin /bin | sort | uniq –d Ordena el listado de ambos directorios y muestra solo
las líneas repetidas.
o ls /usr/bin /bin | sort | uniq | wc –w Lista los directorios, ordena el resultado
unificándolo, elimina los repetidos y cuenta el número de palabras.

Bifurcación (tee)

 Este comando permite realizar una bifurcación en una tubería de manera que envía la
información a dos salidas.
 ls /usr/bin/ | tee f1.txt | grep zip El listado es enviado al fichero f1.txt y al mismo tiempo al
comando grep que lo filtrara para mostrarlo en pantalla. En este caso el contenido de f1.txt será
diferente del resultado mostrado por pantalla porque no está filtrado.

Sustitución de comandos ($)

Sustituye un comando por su resultado.

 echo $(ls) Muestra por pantalla el resultado del comando ls. El comando ls es sustituido por su
resultado que es la entrada del comando echo.
 file $(ls -d /usr/bin/* | grep zip) Que tipo de archivos son todos los zip en la ruta dada. La pipe
entre el comando ls y el comando grep son sustituidos por su resultado que funciona como
entrada del comando file.
 ls -l $(which cp = ls -l ‘which cp‘ Lista formato largo el archivo cp incluida la ruta. Se puede
sustituir el símbolo del dólar por el acento grave o francés (‘)

Índice

23 de 48
Usuarios y grupos.

Comandos usuarios.

 useradd nombre_usuario Crea usuarios.


o g nombre_grupo_o_GID Designa el grupo principal del usuario (DEBE EXISTIR
PREVIAMENTE) y no crea el grupo por defecto. SI NO SE INDICA, el sistema crea un
grupo por defecto con el mismo nombre del usuario, que será su grupo principal.
o G nombres_grupos_secundarios (Separados por coma y sin espacio) Designa los
grupos secundarios a los que pertenecerá el usuario y que también deben existir
previamente.
o m Crea la carpeta home del usuario si es que no existe y lo hace en la ruta indicada por
el parámetro –d. Si no es indica no se creara y se tendrá que hacer manualmente.
o d ruta_carpeta_personal Carpeta home del usuario. Normalmente
/home/nombre_usuario. SI NO EXISTE LA CARPETA AÑADIR ANTES EL PARÁMETRO
–m.
o s ruta_shell Indica el interprete de comandos (shell) del usuario. Normalmente
/bin/bash
o Ejemplos:
 useradd –m –d /home/pedro –s /bin/bash pedro (forma más común)
 useradd –g administradores –m –d /home/pedro –s /bin/bash pedro (solo
tendrá un grupo, administradores que será el activo y que debe existir)
 useradd –G alumnos –m –d /home/pedro –s /bin/bash pedro (el grupo
principal será el grupo por defecto, pedro y como grupo secundario alumnos)
 passwd nombre_usuario UNA CUENTA DE USUARIO NO SE PUEDE UTILIZAR HASTA
QUE NO SE LE ASIGNA UNA CONTRASEÑA.
passwd ripley Activa la cuenta del usuario ripley.
 id nombre_usuario Muestra el UID, GID (grupo activo) y grupos secundarios del usuario.
 usermod Modifica usuarios ya creados.
o m Crea un nuevo home para el usuario en la ruta indicada por –d y mueve todos sus
archivos.
o d ruta_home Crea un nuevo home para el usuario.
o s ruta_shell Asigna un nuevo tipo de shell al usuario.
o L nombre_usuario Bloquea la contraseña del usuario (añade ¡ delante de la
contraseña encriptada). La cuenta queda bloqueada.
o U nombre_usuario Desbloquea la contraseña del usuario
o Ejemplo:

24 de 48
 usermod -m –d /home/casa_pedro pedro (el home de pedro pasa a
/home/casa_pedro)
 usermod –s /bin/sh pedro (el shell de pedro sera sh (UNIX))
 nombreGrupo nombreUsuario Añade un usuario a un grupo.
 g Cambia el grupo primario.
 G Añade el usuario al grupo y lo elimina del resto de grupos. NO AFECTA AL
GRUPO PRIMARIO.
 aG Añade el usuario al grupo sin eliminarlo del resto de grupos.
 Ejemplos: usermod –g administradores amelio (el grupo primario de amelio
sera administradores)
 userdel nombre_usuario Elimina usuarios.
o r nombre_usuario Elimina el usuario y su home (todos sus archivos)

Índice

Comandos grupos.

 groupadd nombre_grupo Crea grupos.


 groupmod nombre_grupo Modifica características de los grupos.
o g nuevo_gid nombre_grupo Modifica el GID del grupo. No puede estar en uso.
o n nuevo_nombre No puede estar en uso.
 groupdel nombre_grupo Elimina grupos. Si es el grupo primario de algún usuario, NO LO
ELIMINARA.
 adduser usuario grupo Añade usuarios a grupos.
 deluser usuario grupo Elimina usuarios de grupos. Si es el grupo primario del usuario, NO LO
ELIMINARA DEL GRUPO. Antes se le debe asignar otro grupo principal (mirar usermod).
 gpasswd Administra grupos.
o d usuario grupo Elimina el usuario del grupo. Si es el grupo primario del usuario, NO
LO ELIMINARA DEL GRUPO. Antes se le debe asignar otro grupo principal (mirar
usermod).

Archivos.

 /etc/passwd Información de los usuarios.


 /etc/group Información de los grupos. Los usuarios que aparecen en cada grupo SOLO LO
TIENEN COMO GRUPO SECUNDARIO.
 /etc/shadow Archivo con las contraseñas encriptadas.

Índice

25 de 48
Permisos.

Comandos.

 ls Lista el contenido del directorio que indica el prompt en formato corto.


• a Formato corto + archivos ocultos.
• l Formato largo. Incluye permisos de cada fichero o directorio.
• al Formato lago + archivos ocultos.
Ejemplo: ls –al Lista en formatos largo todos los archivos del directorio incluyendo
los ocultos.
 sudo Permite ejecutar los comandos permitidos en el archivo /etc/sudoers como root.
• l Lista de los comandos para el usuario del prompt.
 visudo Muestra el archivo /etc/sudoers en modo edición.
 chmod {options} nombre_archivo Modifica los permisos existentes de los archivos y
directorios.
• R RECURSIVIDAD. CAMBIA TAMBIÉN LOS PERMISOS DE UN
DIRECTORIO INCLUYENDO LOS ARCHIVOS Y SUBCARPETAS QUE
CONTENGA.
¿A QUIÉN?  u propietario, g grupo propietario, o otros usuarios
¿CÓMO?  + (más) pone permisos y - (menos) quita permisos.
¿QUÉ PERMISOS?  r leer, w escribir, x ejecutar
Ejemplo: chmod go+x nombre_archivo Da permiso de ejecución al grupo
propietario y a los otros usuarios.
chmod –R u+w,g-r,o-r nombre_archivo Da permiso de escritura al
propietario, y quita el permiso de lectura al grupo propietario y los otros
usuarios SOBRE TODOS LOS ARCHIVOS Y SUBCARPETAS DEL
DIRECTORIO.
Código numérico PISA LA CONFIGURACIÓN DE PERMISOS ACTUAL POR LA
NUEVA.
r = 4, w = 2, x = 1  Cuando un permiso no se concede tiene el valor 0. El número
resultante es la suma de los permisos concedidos.
777  Centenas=Usuario_Propietario, Decenas=Grupo_Propietario y
Unidades=Otros_Usuarios
Ejemplo: chmod 754 nombre_archivo
Usuario_Propietario = rwx (4+2+1=7) Todos
Grupo_Propietario = r-x (4+0+1=5) Lectura y ejecución
Otros_Usuarios = r— (4+0+0=4) Lectura

26 de 48
 chown usuario archivo_o_directorio Cambia el usuario propietario de un archivo o
directorio.
chown jonesy /archivo1.txt El usuario jonesy pasa a ser el usuario propietario del
archivo1.txt.
 chgrp grupo archivo_o_directorio Cambia el grupo propietario de un archivo o carpeta.
chgrp estudiantes /archivo1.txt El grupo estudiantes es ahora el grupo propietario de
archivo1.txt.
 • chown usuario.grupo archivo_o_directorio Cambia el usuario y el grupo
propietarios de un archivo o carpeta.
chown jonesy.estudiantes archivo1.txt El usuario jonesy y el grupo estudiantes
pasan a ser los propietarios de archivo1.txt.

Índice

Permisos especiales.

 umask Cambia la máscara de permisos de cada usuario (por defecto, archivos 666 y
directorios 777), los permisos por defecto con que se crean los nuevos archivos y carpetas.
Parte de un valor 000 que se le resta a la máscara de permisos.
 chmod u+s Activa el bit SUID. SOLO TIENE SENTIDO EN ARCHIVOS EJECUTABLES.
Cuando un usuario ejecuta el archivo lo hace con los permisos del usuario propietario.
 chmod g+s Activa el bit SGID. Si se aplica a un directorio, todos los archivos y subdirectorios
creados dentro de ella tendrán como grupo propietario al grupo propietario del directorio padre
en vez de tener el del usuario que lo crea.
Si el grupo propietario de ese directorio es un grupo al que pertenecen varios usuarios, todos
tendrán esos permisos dentro del directorio. Todos los archivos y subcarpetas creados dentro
pertenecerán al grupo.
Ejemplo: chmod g+s directorio Se activa el bit SGID sobre el directorio.
Previamente se habrán dado los permisos que se quiera al grupo
propietario del directorio.
chgrp grupo directorio Se cambia el grupo propietario del directorio.
Todos los archivos que los integrantes del grupo creen dentro del directorio
tendrán como grupo propietario el indicado en el comando.
Ejemplo: umask 022 Si la máscara por defecto es 777-022 = pasará a ser 755.
 Sticky bit LOS PERMISOS DE ESCRITURA SOBRE UN DIRECTORIO PERMITEN
BORRAR ARCHIVOS DE OTROS USUARIOS. Normalmente se activa para el grupo y para
otros usuarios. No tiene sentido para el propietario del directorio.

27 de 48
Ejemplo: chmod go+t nombre_directorio Se activa el Sticky bit de manera que
aunque otros usuarios tengan permiso de escritura solo podrán borrar los
archivos de los que son propietarios.

Archivos.

 /etc/sudoers Configuración de los usuarios y comandos permitidos con sudo.

Índice

Gestión de paquetes y archivos.

Paquetes, distribuciones y herramientas.

Los principales formatos de los paquetes en Linux son:

 .deb Debian y derivados.


 .rpm Red Hat y derivados.

Existen programas para cambiar de un formato a otro:

 alien Permite convertir entre diferentes formatos de paquetes de Linux. Soporta conversiones
entre Linux Standard Base, RPM, deb, Stampede (.slp) , Slackware (.tgz), tarball (tar.bz2) y
tar.gz.
o apt install alien Instala el programa.
 -r, --to-rpm .deb  .rpm
 alien—to-rpm SOFTWARE.deb
 alien –r tupaquete.deb
 -d, --to-deb .rpm  .deb
 alien -d tupaquete.rpm
 alien—to-deb SOFTWARE.rpm
 -t, --to-tgz Genera paquetes tgz.

Comandos.

Herramientas de alto nivel. Permiten la descarga e instalación de los paquetes y sus dependencias.

Herramientas de bajo nivel Herramientas de alto nivel

Debian dpkg
apt-get

28 de 48
apt
aptitude (texto y gráfico)
dselect (gráfico)

Red Hat,
yum (más antigua)
Fedora, rpm
dnf (acabará sustituyendo a Yum)
CentOS

Repositorios.

add-apt-repository [nombre del repositorio] Permite añadir un nuevo repositorio.

Descarga de software.

apt download paquete1 paquete2 Descarga el paquete o los paquetes indicados SIN INSTALARLOS.

apt download vim apt download libcurl3 curl

dpkg -i vim_2%3ª8.0.0197-4+deb9u1_amd64.deb (puede dar error por las dependencias)

(aún así puede dar errores con los archivos)

Herramientas de bajo nivel. Instalación manual.

Instalan paquetes y dependencias descargados previamente. Ni DESCARGAN PAQUETES ni


RESUELVEN DEPENDENCIAS.

 dpkg {opciones} Gestor de paquetes de Debian. Instala, desinstala y muestra información


sobre los paquetes.
• i nombre_paquete.deb Instala SOLO el paquete.
dpkg -i libcurl3_7.52.1-5+deb9u6_amd64.deb INSTALA LAS
DEPENDENCIAS. Se tienen que instalar antes que el programa.
dpkg -i curl-7.52.1-5+deb9u6_amd64.deb INSTALA EL PROGRAMA.
Actualización de paquetes. Se tienen que descargar los nuevos paquetes e instalarlos
con dpkg -i
• l --list Lista el estado de los paquetes instalados en el sistema.
• status nombre_paquete Muestra el estado del paquete instalado o no,
dependencias, tamaño, versión, etc.
• search cadenaTexto Busca en la base de datos descargada de los repositorios
(con apt update). También cuando se conoce el nombre del fichero y se necesita saber el
nombre del paquete que lo contiene.

29 de 48
• r --remove Desinstala el programa excepto los archivos de
configuración.
• P --purge Desinstala y borra todo incluido los archivos de
configuración.
 gzip archivo.tar Comprime un archivo .tar con GZIP resultando un archivo .tar.gz
• d archivo.tar.gz Descomprime el archivo .tar.gz
 tar Empaqueta diferentes archivos en uno solo. Los archivos se guardan primero en una sola
carpeta. Se suele utilizar con gzip, primero empaquetando los archivos y luego
comprimiéndolos.
• cvf archivo_final.tar directorio_a_empaquetar Crea un archivo empaquetado.
• tvf archivo.tar Permite visionar el contenido de un archivo empaquetado.
• xvf archivo.tar Extrae el contenido del archivo empaquetado.
 rpm Es una herramienta de administración de paquetes desarrollada por Red Hat.
o -U nombre.rpm Actualiza el paquete rpm
o –a Consulta todos los paquetes instalados.
o -q Operación de consulta.
 rpm -qa Muestra los paquetes .rpm instalados.
o -q palabra_clave_paquete Información si está instalado o “el paquete xxxx no está
instalado” rpm –q gedit Busca información del paquete Gedit.
o -l Lista los archivos de un paquete.
o -p Especifica el nombre del paquete.
o -qlp nombre_paquete.rpm Lista el contenido del paquete.
o -qf /ruta/nombre_archivo Muestra el paquete que lo contiene.
 rpm -qf /usr/bin/vim  vim-enhanced-7.4.160-4.el7.x86_64
o -i Instala el paquete indicado
o -v Muestra las acciones que se realizan.
o -h Imprime las marcas de hash (se usa junto con -v)
o -ivh “localFile.rpm” Instala un paquete.
 rpm -ivh /home/deckard/Descargas/atom.x86_64.rpm
o -Uvh nombre_paquete.rpm Actualiza el paquete.
o -ev palabra_clave_paquete Desinstala el paquete. Confirmar la desinstalación
con rpm -qa

RESOLUCIÓN DE DEPENDENCIAS

Cuando se ha descargado un paquete de software directamente y no se dispone de las librerías


necesarias se puede intentar utilizar las herramientas de alto nivel para resolverlas y luego realizar la
instalación. No siempre es una garantía de éxito.

30 de 48
 apt install ./vim_2%3ª8.0.0197-4+deb9u1_amd64.deb apt instala el paquete descargado
previamente pero antes resuelve las dependencias necesarias.
 yum install ./home/usuario/Descargas/code-1.25.1-1531323952.el7.x86_64.rpm yum
instala el paquete descargado previamente pero antes resuelve las dependencias necesarias.

Herramientas de alto nivel.

 APT (Advanced Packaging Tool) Es una conjunto de funciones empleas por varios programas
de línea de comandos para la gestión de paquetes. En especial, apt-get, apt (versión
modernizada de apt-get) y apt-cache. Fue creada dentro del proyecto Debian.
 apt-get / apt {opciones} (apt es la evolución de apt-get) Instala, administra y desinstala los
programas del sistema y SUS DEPENDENCIAS.
o update Actualiza el índice de paquetes disponibles en los repositorios. Ejecutar
siempre antes de cualquier operación con el comando apt-get / apt.
o list –upgradable Lista de todos los paquetes con actualizaciones disponibles en los
repositorios.
o upgrade Actualiza todos los paquetes instalados a su versión más actual. No
actualiza el Sistema Operativo.
o dist-upgrade Actualiza todos los paquetes a su versión más actual INCLUYENDO EL
SISTEMA OPERATIVO.
o download nombre_paquete Descarga los paquetes indicados sin instalarlos.
 apt download vim
o install Descarga, instala los paquetes y gestiona las dependencias. Si detecta
dependencias para el paquete, avisa y pide confirmación para instalar todos los paquetes
requeridos. apt install bsdgames (tetris-bsd)
o install—reinstall Instala programas desinstalados con remove (que no borra el
paquete del programa) por lo que no necesita descargarlo de nuevo.
o remove Desinstala programas. No borra los archivos de configuración ni el
paquete. Permite volver a instalarlo sin descargarlo y recuperar la configuración anterior.
o purge Desinstala programas y borra todo rastro de ellos (archivos de recuperación),
INCLUIDO EL PROPIO PAQUETE.
 apt purge paquete1 paquete2 apt purge jed pico
o check Comprueba dependencias.
o autoremove Borra los paquetes huérfanos o las dependencias de los paquetes que han
sido desinstalados y ya no son necesarios.
o clean Libera espacio eliminando todos los paquetes del cache, pero para volver a
instalar un programa hay que descargarlo de nuevo.
o show nombre_paquete Muestra información sobre el paquete. Versión más
moderna de apt-cache show nombre_paquete.

31 de 48
 apt-cache search cadena_texto (nombre o tipo de programa) Busca programas relacionados.
o apt-cache search emacs Busca todos los paquetes relacionados con el procesador de
texto emacs.
 apt-cache show nombre_paquete Muestra información sobre el paquete. Igual que apt
show nombre_paquete.
 apt search cadena_texto (nombre o tipo de programa) Hace lo mismo que apt-cache search
pero es más moderno.
o apt search games Busca todos los paquetes relacionados con juegos.
 apt-key {opciones} Gestiona las claves públicas para autenticar paquetes. Cuando se agrega
una fuente de paquetes de terceros al archivo sources.list, se necesita informar a APT que
confíe en las llaves de autenticación GPG correspondientes. APT revisará las firmas antes de
cualquier operación de riesgo y mostrara una advertencia cuando este instalando un paquete
sobre el que no se puede verificar autenticidad.
o add nombre_archivo_clave Añade una nueva clave a la lista de confianza.
o list Lista las claves de confianza.
o finger / fingerprint Muestra las huellas digitales de las claves de confianza.
o del keyID Elimina una clave de la lista de claves de confianza. apt-key del 153F5386
 yum Es un administrador de paquetes de software en distribuciones que trabajan con
paquetes RPM (redhat, fedora, centos, etc). El gestor yum está siendo sustituido por dnf.
o history list Muestra las últimas 20 entradas del historial.
o history list all Muestra todo el historial.
o -y La acción se ejecutará sin pedir confirmación.
o update Equivale a apt update y apt upgrade. Primero ejecuta la primera y luego da
la opción de seguir con upgrade o descartar la opción. yum update nano htop zlib perl
python
o install nombre_paquete Instala la última versión del paquete indicado. Pide
confirmación. yum install nudoku
o install -y paquete1 paquete2 Instala la última versión de los paquetes indicados sin
pedir confirmación. yum install nano wget gzip htop
o -y install nombre_paquete.arch Instala la última versión del paquete indicado con la
arquitectura indicada. yum install mysql.i386
o grouplist Lista los conjuntos de bloques o paquetes de software que se pueden
instalar. Cada bloque es un conjunto de software de una temática similar. Ej:
Herramientas de desarrollo, Servidor web básico, etc.
o groupinstall nombre_bloque Instala el bloque de software elegido.
o search cadena_texto Busca programas coincidentes con la cadena de texto.
search games yum install nudoku
o erase nombre_paquete Desinstala el paquete. yum erase nudoku

32 de 48
o info nombre_paquete Da información del paquete. Si no encuentra nada utilizar
search para buscar el nombre correcto del paquete.
o clean packages Con update o install el paquete instalado o actualizado no se
elimina del sistema. Esta opción los elimina liberando espacio.
o clean all Limpia los paquetes y los archivos de encabezados utilizados para resolver
dependencias.

Archivos.

 /etc/apt/sources.list Lista repositorios. Se pueden excluir o añadir nuevos repositorios.


Dependiendo de la distribución, dentro de la carpeta apt puede haber varias subcarpetas con
diferentes archivos de configuración de los repositorios.
 /var/cache/apt Binarios con la listas de paquetes en los repositorios y su contenido. Se
descarga o actualiza al ejecutar apt update y es donde busca dpkg—search nombre.
 /etc/apt/trusted.gpg Contiene el anillo de claves que gestiona apt-key.
 /etc/yum.conf Archivo de configuración de yum.
 /etc/yum.repos.d Directorio de depósitos o repositorios de yum.
 /var/log/yum.log Archivo de log de yum.

Índice

Procesos y servicios.

General.

ARRANQUE DEL SISTEMA.

init Primer proceso que se ejecuta en Linux. Es el padre del resto de procesos y arranca el resto de
procesos necesarios. En /etc/init.d se encuentran los scripts que pueden ser llamados por init para
arrancar procesos del sistema como el bluetooth, wifi, propios del sistema, etc

Linux puede arrancar en diferentes niveles, como multiusuario, entorno gráfico, modo texto, etc. Son los
llamados runlevels que van de rc0 a rc6. Para cada nivel hay una carpeta en /etc/rc (ls -d /etc/rc*).
Estas carpetas tienen enlaces simbólicos que apuntan a los scripts, normalmente en init.d Y son las
diferentes combinaciones de enlaces a los scripts en cada carpeta, lo que determina que procesos y
servicios son iniciados en cada runlevel y por lo tanto cual será el comportamiento del sistema.

33 de 48
Runlevels

 0 Halt the system.


 1 Single-user / minimal mode.
 2-5 Multiuser modes.
 6 Reboot the system.

PID Identificador único de proceso. Cambia en cada ejecución de un mismo proceso pero no se
puede asignar a dos procesos distintos al mismo tiempo.

Comandos servicios.

En Linux los servicios son llamados daemons / demonios.

Manejo de servicios.

 init.d ( /etc/init.d) Contiene una serie de scripts que permiten iniciar / detener la gran mayoría
de los servicios instalados en el equipo. La mayoría de estos scripts reconocen los argumentos
start, stop, restart y status.
o service stop / start / rebot / reload / status nom_demonio
o sudo /etc/init.d/cups stop Detiene el daemon cups (servidor de impresión)
o sudo /etc/init.d/cups start Arranca.
o sudo /etc/init.d/cups restart Reinicia.
o sudo /etc/init.d/cups reload Lee de nuevo los archivos de configuración. Se suele
utilizar cuando se hacen cambios en dichos archivos y se quieren aplicar al daemon.

o sudo /etc/init.d/cups status Muestra el estado y datos sobre el daemon.


 Systemctl Es una utilidad de administración de daemons.
o systemctl nom_demonio stop / start / restart / reload / status
o systemctl status cups Estado del demonio cups.
o systemctl Estado de todos los demonios que están corriendo bajo systemd.
o systemctl status Árbol con todos los demonios que están corriendo bajo systemd.

Deshabilitar servicios.

 update-rc.d [option] nom_demonio disable | enable [S|2|3|4|5] Deshabilita o habilita los


servicios en el arranque en los diferentes niveles. Se limita a quitar o poner los enlaces
simbólicos en las carpetas de los runlevels.
o remove Borra los ficheros del demonio.
o options:

34 de 48
 -f Force.
 -n Cuando se añade esta opción a una combinación del comando no realiza
ninguna acción pero lanza un informe con las opciones que realizara con esa
orden sin esta opción.
 update-rc.d -n cups disable Solo informa de las acciones a realizar
para deshabilitar el demonio cups.
 update-rc.d cups disable Deshabilita el demonio cups.

Índice

Comandos procesos.

 init Envía comandos de control a los demonios del kernel.


o 6 Reinicia el sistema (ejecuta todos los scripts de la carpeta /etc/rc6.d)
 xlogo Sencilla aplicación gráfica. Cuando se ejecuta el comando se abre en primer plano una
ventana con una x. Permite practicar de forma sencilla con los comandos para administrar
procesos y trabajos. En primer plano se cierra con el puntero y en segundo plano Ctrl+c.
 pstree Árbol de procesos.
 vmstat Muestra los recursos utilizados (memoria, paginación, swap, discos, etc)
 xload Gráfico de consumo de recursos. La carga de trabajo del sistema.
 tload Igual pero en la consola.
 jobs Lista los procesos que se estén ejecutando en primer o segundo plano lanzados desde la
consola en la que se ejecuta, MOSTRANDO EL NÚMERO DE TRABAJO. Si no devuelve
información es que no hay procesos presentes.
o -l Informa del identificador del grupo de proceso y la carpeta de trabajo de las
operaciones.
o -n Solo muestra los trabajos que se han detenido o cerrado desde la última
notificación.
o -p Solo muestra el identificador de proceso para los líderes de procesos de los
trabajos seleccionados.
o Ejemplo. Si se lanza xlogo varias veces en segundo plano se puede ver como numera
las tareas o trabajos.
 & Permite lanzar programas en segundo plano y permite seguir trabajando con la terminal. Muy
útil cuando se copian de carpetas o archivos muy pesados que toman mucho tiempo. xlogo &
(este comando solo en modo gráfico).
o Ejemplo: nano &
 johndoe@crystalpalace-xfce ~ $ nano &
 [1] 2246

35 de 48
 johndoe@crystalpalace-xfce ~ $ jobs
 [1]+ Detenido nano
 Nano aparece detenido porque necesita ser visualizado dentro del terminal y al no
poder por ser enviado a segundo plano, se detiene.
 %númeroTrabajo Permite referirse a los números de los trabajos. kill -9 %2
 fg (foreground) Pasa a ejecutar en primer plano el marcado con + en jobs
o %númeración_trabajo Cuando se indica el número de trabajo asignado por el
comando jobs lo arranca en primer plano. Ejemplo:
 johndoe@crystalpalace-xfce ~ $ nano & (Se ejecuta nano en segundo plano)
 [1] 3571
 johndoe@crystalpalace-xfce ~ $ jobs
 [1]+ Detenido nano (Aparece detenido)
 johndoe@crystalpalace-xfce ~ $ fg %1 (El editor nano pasa a primer plano)
 bg (background) Permite ejecutar en segundo plano un trabajo detenido.
o %númeración_trabajo Cuando se indica el número de trabajo asignado por el
comando jobs lo arranca en segundo plano. Ejemplo:
 johndoe@crystalpalace-xfce ~ $ xlogo (Se ejecuta xlogo en segundo plano)
 ^Z (Ctrl+Z para detener el proceso)
 johndoe@crystalpalace-xfce ~ $ jobs
 [1]+ Detenido xlogo (Muestra xlogo detenido)
 johndoe@crystalpalace-xfce ~ $ bg %2
 [2]+ xlogo & (xlogo pasa a ejecutarse en segundo plano)
 johndoe@crystalpalace-xfce ~ $ jobs (xlogo se ejecuta en segundo plano)
 [1]+ Detenido nano
 [2]- Ejecutando xlogo &
 ps Muestra información sobre los procesos. La información que ofrece es una instantánea del
momento de la ejecución del comando.
o PROCESS STATE CODES. Códigos del estado de los procesos:
 D Uninterruptible sleep (usually IO). Salvo por un proceso de entrada/salida del
disco.
 R Running or runnable (on run queue)
 S Interruptible sleep (waiting for an event to complete)
 T Stopped by job control signal.
 t Stopped by debugger during the tracing.
 W Paging (not valid since the 2.6.xx kernel)
 X Dead (should never be seen)
 Z Defunct (“zombie”) process, terminated but not reaped by its parent (no ha
liberado sus recursos)

36 de 48
 < Alta prioridad.
 N Baja prioridad.
o ps A secas, lista SOLO los procesos ejecutándose en la terminal actual. Columnas:
 PID Identificador
 TTY Terminal en el que se está ejecutando.
 TIME Tiempo consumido de CPU.
 CMD Comando que ha lanzado el proceso.
o Modificadores:
 x Lista todos los PROCESOS DEL USUARIO. Columnas:
 PID Igual
 TTY Terminal. ? Cuando no se ejecutan desde una consola.
 STAT El estado del proceso. Mirar PROCESS STATE CODES.
 TIME Igual
 COMMAND Ubicación del comando que ha lanzado el proceso.
 aux Lista todos los procesos ejecutándose en el sistema.
 USER Igual. PID Igual.
 %CPU % tiempo de CPU utilizado.
 %MEN % de RAM utilizada.
 VSZ Cantidad de memoria virtual utilizada.
 RSS Cantidad de memoria RAM en kilobytes.
 TTY Igual. STAT Igual.
 START Hora de comienzo del proceso
 TIME Tiempo
 COMMAND Ubicación del comando que ha lanzado el proceso.
 top Muestra una lista de todos los procesos del sistema. Es una VISTA DINÁMICA que se
refresca cada 3 s. por defecto.
o LÍNEAS DE CABECERA:
1. SUMMARY display. Ejemplo:
 top - 19:54:30 up 2:39, 1 user, load average: 0,31, 0,14, 0,04
o top Comando
o 19:54:30 Hora
o 2:39 Tiempo ejecutándose
o 1 user Número de usuarios activos en el sistema.
o load average Las medias del número de procesos listos, en
espera para ejecutarse los últimos 60 s., últimos 5 min. y últimos 15
min.). Con valores por debajo de 1 el consumo es bajo.
2. Tareas: 150 total, 2 ejecutar, 118 hibernar, 0 detener, 0 zombie
 Agrupa las tareas según su estado (hibernar = durmiendo).

37 de 48
3. %Cpu(s): 54,5 usuario, 12,4 sist, 0,0 adecuado, 33,1 inact, 0,0 en espera, 0,0
hardw int, 0,0 softw
 %’s de uso de la CPU: usuario(con sesión abierta), sist (procesos sistema-
kernel), adecuado (procesos baja prioridad), inact (% CPU no utilizado), en
espera (% CPU esperando por procesos entrada-salida)
4. KiB Mem (Uso de RAM): 1022260 total, 119088 libre, 373944 usado,
529228 búfer/caché
5. KiB Swap (Uso de swap): 1459804 total, 1459804 libre, 0 usado. 495348
avail Mem
o ENCABEZADO COLUMNAS:
 PID Identificador único proceso.
 USUARIO Usuario que inicia el proceso.
 PR Prioridad. Ver comando nice.
 NI Prioridad. Ver comando nice.
 VIRT Memoria virtual.
 RES Memoria residente.
 SHR Memoria compartida.
 S Estado del proceso.
 %CPU Uso de la CPU.
 %MEN Uso de la RAM.
 HORA+ Tiempo de CPU.
 ORDEN Comando que ha iniciado el proceso.
o Opciones CON EL COMANDO TOP CORRIENDO  GLOBAL Commands:
 Ayuda.
 h (Con el comando top corriendo) Muestra la ayuda del comando.”q” o
“Esc” para volver al comando.
 ? (Con el comando top corriendo) Muestra la ayuda del comando. “q” o
“Esc” para volver al comando.
 A (Con el comando top corriendo) Modo fullscreen.
 d num_segundos (Con el comando top corriendo) Cambiar la tasa de refresco.
 H (Con el comando top corriendo) Muestra la información en forma de hilos.
 p (Con el comando top corriendo)
 B (Con el comando top corriendo) Cambia las negritas.
 m (Con el comando top corriendo) Muestra gráficamente el uso de memoria.
 R (Con el comando top corriendo) Reverse.
 i (Con el comando top corriendo) Tareas inactivas.
 nice Ejecuta un comando al mismo tiempo que le asigna prioridad. De -20 a 19. Cuanto más
bajo el número más alta la prioridad.

38 de 48
o PRI (columna) Prioridad asignada por el kernel. La prioridad por defecto. Si el usuario
asigna otra prioridad, muestra la suma de ambas.
o NI (columna) Prioridad asignada por el usuario.
o –n<número_entero> Asigna la prioridad del usuario. El cálculo se hace con la
prioriodad PRI y la NI.
 Si PRI = 20 y NI = 15 (nice -n5 comando) 20+15=35
 Si PRI = 20 y NI = -5 (nice -n-5 comando) 20-5=15
o ps –a1 Para poder visualizar los procesos iniciados con nice
 ps –lxa1 | grep xlogo
o Ejemplo: (Se han quitado las líneas que no aportan nada)
 johndoe@crystalpalace-xfce ~ $ xlogo &
 johndoe@crystalpalace-xfce ~ $ sudo nice -n-15 xlogo &
 johndoe@crystalpalace-xfce ~ $ ps -lxa1 | grep xlogo
 0 1000 4732 2232 20 0 59148 4840 poll_s S pts/5 0:00 xlogo
 4 0 4738 2232 20 0 94228 5156 - S pts/5 0:00 sudo nice -n-15
xlogo
 4 0 4739 4738 5 -15 59148 4800 - S< pts/5 0:00 xlogo
 Explicación:
 Por defecto, el kernel asigna al comando xlogo una prioridad de 20 (la
más baja).
 Cuando se ejecuta otra instancia de xlogo con nice, calcula la nueva
prioridad a partir de la por defecto, 20 – 15 = 5.
 Como curiosidad, crea dos procesos, uno para la orden nice y otro para el
propio xlogo.
 renice Modifica la prioridad a los procesos que ya están en ejecución.
o renice prioridad [[-p] pid …] [[-g] pgrp (ID grupo del proceso) …] [[-u] usuario (nombre
usuario dueño del proceso) …]
o -p Permite varios ID’s de procesos.
o -g Permite varios ID’s de grupos de los procesos.
o -u Permite más de un usuario dueño del proceso. renice +20 -u vazquez
o El cálculo siempre lo hace con la prioridad inicial por defecto asignada por el kernel
(columna PRI) al crearse el proceso.
o Ejemplo: (Se han quitado las líneas que no aportan nada)
 usuario@Mint102:~$ ps -lx | grep nano
 0 1000 2608 1606 35 15 6920 2892 wait_w SN+ pts/0 0:00 nano
 usuario@Mint102:~$ sudo renice -12 2608 (asignar prioridad -12 al proceso 2608)
 2608 (process ID) prioridad anterior 15, nueva prioridad -12
 usuario@Mint102:~$ ps -lx | grep nano

39 de 48
 0 1000 2608 1606 8 -12 6920 2892 wait_w S<+ pts/0 0:00 nano
 Explicación: Antigua prioridad asignada por el usuario (columna NI) 15 y la
nueva es -12. La diferencia son 27 y eso es lo que ha quitado a la prioridad
asignada por el kernel (columna PRI), 35 – 27 = 8. La prioridad que tendrá en
cuenta el kernel ahora es 8.
 SIGTERM Señal que se envía el proceso para comunicarle un apagado “amable” (cerrando
conexiones, ficheros y limpiando su propio búfer). Puede ser controlada o ignorada por un
manejador de señales del proceso. Es la señala que mandan por defecto kill y killall desde la
terminal.
 kill Permite enviar señales al proceso especificado con su PID.
o Kill -modificador PID.
o kill %2 (número trabajo jobs) kill 7248 (PID ps)
o Si no funciona con un proceso detenido, después de kill ejecutar fg ó bg %num_trabajo
y volver a comprobar el estado del proceso.
o -1 / -HUP PID (Hang up) Manda la orden de reinicio a un proceso.
o -2 / -INT PID Manda la orden de interrupción al proceso y el proceso puede terminar
ordenadamente o no. Equivale a Ctrl+c.
o -9 / -KILL PID Mata el proceso.
o -15 / -TERM PID Manda la orden de interrupción y el proceso termina
adecuadamente. Es la opción por defecto si se ejecuta kill a secas.
o -18 / -CONT PID Manda la señal de continuar a un programa detenido.
 kill -18 %1
o -19 / -STOP PID Manda la señal de parada a un programa para detenerlo.
 kill -19 %1
o -20 / -TSTP PID (Terminal Stop == Ctrl+z) Manda la señal de parada a un programa
para detenerlo pero este puede elegir ignorarla.
 kill -TSTP 4381
o -28 / WINCH PID Es una señal del sistema.
 killall Permite enviar señales al proceso especificado con su nombre. Si hay varios procesos
con el mismo nombre, la señal les llegara a todos.
o killall xlogo Enviara la señal SIGTERM al proceso de nombre xlogo. Si hay varios, a
todos ellos.
 usuario@Mint102:~$ killall xlogo
 [4] Terminado xlogo
 [5] Terminado xlogo
 [6] Terminado xlogo
 [7] Terminado xlogo
o -l Muestra el listado de señales que se pueden enviar con killall.

40 de 48
o -u Especifica el usuario y mata todos sus procesos.
 xkill Permite matar un proceso haciendo click con el cursor sobre la ventana del programa.
 reboot Reinicia el sistema. Solo como root.
 shutdown Apaga el sistema. Solo como root.
o +0 == now, +5 en cinco minutos.
o -c Cancela el apagado programado.
o -h now Apaga el sistema ahora.
o -r Reinicia.

Archivos.

/etc/init.d Contiene los scripts que pueden ser llamados por el init.

/etc/rc0.d  rc6.d Carpetas de los runlevels. De la rc0.d a la rc6.d. Contienen enlaces simbólicos a
diferentes scripts en /etc/init.d.

Índice

Configuración de red.

Comandos.

 service networking {opciones} Modifica el estado del servicio de red.


start
stop
restart
 /etc/init.d/networking {opciones} Se accede directamente al script que permite gestionar el
servicio de red. Realiza las mismas funciones que service networking.
start
stop
restart
 ifconfig {opciones} (DEPRECATED, utilizar ip) Solo muestra los interfaces activos del
sistema (con IP asignada).
• a Muestra todas las tarjetas, activas e inactivas (sin IP asignada). Para
configurar coge la primera inactiva, sin configurar.
[nombre interfaz] Muestra la configuración del interfaz.
nombre_interfaz {IP} netmask {MASCARA} up Configura con una sola orden un
interfaz de red. Ejemplo:
ifconfig eth0 192.168.2.100 netmask 255.255.255.0 up

41 de 48
 ip {opciones} Forma parte de la iproute2 suite parece ser que es el sustituto de ifconfig.
o a, address show, address list, addr list Todas estas opciones son equivalentes al
antiguo ifconfig para ver la configuración de red.
o link show Muestra información de la capa 2 (data link layer) de las interfaces.
o link set nombreInterfaz down Deshabilita el interfaz de red indicado. Desaparece el
flag UP mostrado por ip addr list.
o link set nombreInterfaz up Habilita el interfaz de red indicado. Aparece el flag UP
mostrado por ip addr list.
 ifdown [nombre interfaz de red] Desactiva (baja) el interfaz de red.
 ifup [nombre interfaz de red] Activa (levanta) el interfaz de red.
 iwconfig Muestra las tarjetas inalámbricas. Para instalarlo  sudo apt-get install wireless-
tools
 netstat {opciones} Muestra información sobre las conexiones de red.
• r Muestra la configuración lógica de los interfaces de red.

Archivos.

 /etc/network/interfaces Configuración lógica de los interfaces de red.


 /etc/resolv.conf Configuración de los DNS.
 /etc/hostname Configuración del nombre con el que se identifica el equipo en la red.
 /etc/hosts Relaciona nombres de dominio con sus IP’s correspondientes. Cuando se
cambia el hostname del sistema, confirmar que también se ha cambiado en /etc/hosts.

Índice

Conexiones de red.

Comandos.

 who Muestra SOLO las conexiones ACTIVAS en un equipo.

(:0) Conexión local mediante consola.


(:0.0) Conexión local entorno gráfico
(IP ó nombre_máquina_remota) Conexión remota desde otra máquina

42 de 48
SSH (Secure SHell)

Comandos.

 apt-get install ssh Instala el servidor ssh. El cliente ssh viene instalado por defecto.
 service ssh {options} Muestra el estado del servicio y permite administrarlo.
opciones  status, start, stop, restart
 /etc/init.d/ssh {options) Muestra el estado del servicio y permite administrarlo.
opciones  status, start, stop, restart
 ssh _usuario@IP ó nombre_máquina_remota Permite conectarse a una máquina remota en
línea de comandos. Se necesita una cuenta de usuario en la máquina remota.
Ejemplo:
ssh alumno@192.168.1.131
• X nombre_usuario@IP ó nombre_máquina_remota nombre_aplicacion
Permite lanzar una aplicación directamente. Aunque gráficamente la aplicación se
abre en la máquina local, SE ESTA EJECUTANDO EN LA MÁQUINA REMOTA.
Ejemplo:
ssh –X alumno@192.168.1.131 gedit
Se lanza gedit con la cuenta alumno en la máquina 192.168.1.131. El archivo creado
quedara guardado en el home de alumno en la máquina remota.

Archivos.

 /etc/ssh/sshd_config Configuración del servidor SSH.


 /etc/home_usuario/.ssh/ssh_known_hosts Guarda las firmas de los equipos ya
conocidos.

Índice

Copia segura de archivos.

 scp
 Linux  Linux. Se utiliza el comando cp sobre SSH. Permite copiar archivos o directorios
entre la máquina local y la remota y viceversa.
• r Opción recursiva. Permite copiar directorios y todo su contenido. Si se
indica el nombre del directorio se copiara este y todo su contenido. Si después del
nombre del directorio se indica / se copiara solo el contenido de este.
 Máquina local  máquina remota:
scp archivo_origen usuario@host(IP ó nombreEquipo):directorio/archivo_destino

43 de 48
Ejemplo:
scp -r archivoPrueba alex@192.168.2.23:/home/alex/pruebaSSH
 Máquina remota  máquina local:
scp usuario@host(IP ó nombreEquipo):directorio/archivo_origen archivo_destino
Ejemplo:
scp alex@192.168.2.23:/home/remoto/pruebaSSH archivoPrueba

Sincronización de archivos.

 rsync en local Permite realizar copias de directorios en local y mantenerlas sincronizadas.


En las nuevas copias solo se copiaran los archivos nuevos para ahorrar tiempo.
apt-get Install rsync Instala el servicio.
rsync –av directorio_origen directorio_destino Copias sincronizadas locales. Cuando
se crean nuevos archivos en origen, al ejecutarse solo copiara estos. Los borrados en
origen no los borra en destino, solo agrega.
Ejemplo:
rsync –av /home/alumno/origenRSYNC/ /CopiasRespaldo/copiaAlumno/
 rsync sobre ssh rsync permite utilizar SSH para las copias remotas en otra máquina. Es
necesario tener una cuenta de usuario en el servidor de copias.
rsync –av –e ssh directorio_local maquina_remota:directorio_remoto
Ejemplo:
rsync –av –e ssh carpetaSincronizada alumno@192.168.2.45:/home/copias/
 rsync sin ssh Se puede ejecutar en un SERVIDOR DE COPIAS sin SSH por lo que no
sera necesario autenticación. El servicio utilizara el usuario nobody y el grupo nogroup.

/etc/rsyncd.conf Este archivo se ha de crear EN EL SERVIDOR DE COPIAS cuando se


quiere que rsync se ejecute como un servicio para que los usuarios puedan realizar copias remotas
sin tener cuenta de usuario en el equipo servidor.

Ejemplo de configuación:

log file = /var/log/rsyncd.log


[copia1]
path= /copias_servidor
comment = copia1 en el servidor
list = yes
read only = no

44 de 48
Importante:

El directorio /copias_servidor debe existir en el servidor de copias Y DEBE TENER COMO


PROPIETARIOS A NOBODY Y/O NOGROUP.

#rsync—daemon Ejecuta rsync en modo servicio en el SERVIDOR DE COPIAS.

rsync ip_servidor_copias:: Permite comprobar desde el CLIENTE el acceso al servidor que


contesta con los directorios para copias disponibles, mostrando el comentario que se ha incluido en
cada uno de ellos.

rsync 192.168.2.23::

rsync –av directorio_local ip_del_servidor::directorioCopias Realiza la copia desde la


máquina local al servidor de copias.

rsync –av carpetaSincronizada 192.168.2.23::copia1

rsync ip_servidor:: directorioCopias Comprueba los ficheros copiados.

rsync 192.168.2.23::copia1

rsync –av ip_servidor:: directorioCopias directorio_local Recupera la copia remota.

rsync –av 192.168.2.23::copia1 /home/luis/Desktop/

Índice

NFS (Network File System)

 nfs Sistema de archivos distribuido en red. Permite guardar archivos en la red como si
estuvieran en local. Estructura CLIENTE-SERVIDOR:

apt-get Install nfs-common nfs-kernel-server


apt-get install portmap Suele estar instalado.
/etc/exports Archivo de configuración del servicio nfs.

Configuración. Se utiliza una línea por cada recurso a compartir. En ella se especifica:

 Recurso a compartir.
 Quien tiene acceso.
 Modo en que se comparte (ro) solo lectura, (rw) lectura y escritura

45 de 48
 Privilegios. Poner a nobody y nogroup como propietarios de los archivos:
o root_squash root remoto sin privilegios, como nobody
o all_squash todos los usuarios remotos como nobody
 Predeterminar el usuario y el grupo propietario de los archivos:
o all_squash, anonuid=valorUID
o all_squash, anongid=valorGID

Ejemplos:

 /another/exported/directory 192.168.0.3(rw,root_squash)
 /copias_servidor 192.168.0.0/24(ro)
 /home/nfs/copias 192.168.1.0/255.255.255.0(rw,all_squash,anonuid=1020,anongid=1012)
 /copias_servidor *(ro) 192.168.0.10(rw,all_squash)
 /copias_servidor *.ejemplo.com(rw)

Servidor:

 /etc/exports Se configura el servicio.


 exportfs –ra Exporta la nueva configuración.
 /etc/init.d/pormap start [start,stop,restart,status] Arranca portamp
 /etc/init.d/nfs-kernel-server start [start,stop,restart,status] Arranca nfs

Cliente:

 showmount –e IP_servidor_copias Muestra los montajes disponibles


 mount –t nfs IP_servidor_copias:nombre_recurso directorio_local Montaje de un
recurso remoto:
mount –t nfs 192.168.1.150:/copias_servidor /home/alumno/nfs_local
 mount Muestra los montajes realizados en la máquina local.
 umount punto_montaje_local Desmonta un recurso en la máquina local

/etc/fstab Archivo donde se definen las particiones, dispositivos o sistemas de archivos remotos
que deben ser montados e integrados en el sistema durante el arranque. En él se realizan los montajes
automáticos de los recursos en red. Uno por línea:

IP_servidor:recurso_remoto punto_montaje_local

#192.168.2.23:/copias_servidor /home/alumno/copias_nfs

Índice

46 de 48
SAMBA.

 SAMBA Implementación libre del protocolo que utiliza Windows para compartir carpetas e
impresoras en red.
apt-get Install samba samba-common smbclient samba-doc smbfs

Gestión:

 /etc/init.d/samba [status | restart | start | stop]


 service samba [status | restart | start | stop]
 testparm Comprueba los errores de configuración en el archivo smb.conf

Configuración Archivo smb.conf Aquí

Permisos El acceso a los recursos se define por dos tipos de permisos  Los del propio servicio y
los del punto de montaje:

 Servicio Se configuran en el archivo smb.conf


 Punto de montaje
o Usando los permisos, normalmente 744.
o Mediante la asignación de un usuario y un grupo propietario concretos para
restringir o nobody y nogroup para permitir el acceso a todos los usuarios.
 SE APLICAN LOS MÁS RESTRICTIVOS DE LOS DOS TIPOS.

Usuarios:

 smbpasswd –a nombre_usuario Añade un usuario a Samba.


smbpasswd –a alex
 pdbedit –L Lista los usuarios con cuenta en Samba.

Linux como cliente:

 smbclient –L //IP_servidorSamba –U usuarioServidor Muestra la lista de shares


compartidos a través de Samba.
smbclient –L //192.168.2.40 –U alumno
Donde alumno es un usuario en el equipo 192.168.2.40
 smbmount //IP_servidorSamba/nombreRecurso puntoDeMontaje –o
user=usuarioWindows
smbmount //192.168.2.40/ejercicios /home/alex/windows/ejercicios –o user=alumno
Donde alumno es un usuario en el equipo 192.168.2.40

47 de 48
De esta forma, el comando tiene el inconveniente que los archivos creados en este recurso
tendrán como propietario al root.
 smbmount //192.168.2.40/ejercicios /home/alex/windows/ejercicios –o
user=alumno,uid=1004,gid=1007
Se añade el uid y gid de un usuario del sistema Linux que es el que tomara posesión de los
archivos creados. En este caso serian de alex porque se está trabajando en su home.
 umount punto_montaje Desmonta los recursos compartidos.
umount /home/alex/windowsPrivada

Índice

Juan Blas Fernández Álvarez

48 de 48