Vous êtes sur la page 1sur 318

Implantacin de SO

UT7:
Administracin y
aseguramiento de la
informacin
F.M.G

INTRODUCCIN A LA SHELL

Linux distingue entre maysculas y minsculas

La consola

No
entra

Conjunto formado por el teclado y el monitor que


estn conectados de forma directa con el ordenador
donde esta instalado el sistema Linux.
Dentro de la misma sesin se pueden ejecutar varios
programas a la vez, ya que es multitarea.

Terminal
Conjunto formado por el teclado y un monitor
conectados al ordenador en el que esta funcionando
el sistema gracias a un programa de comunicaciones.
4

Consolas virtuales
En linux es posible abrir varias consolas
simulando varios terminales y trabajar con
diferentes usuarios en cada una de ellas, o tener
varias sesiones abiertas para un mismo usuario.
Cmo abrir consolas?
Modo texto (ALT) + (F1-F6)
Modo grfico (ALT+F7). (ALT+F12)

Para cambiar desde la consola grfica a la de


texto debemos aadir la tela CTROL.
Ejemplo:
CTROL + ALT + F3
6

Consola de texto
Al abrir la consola y logarnos se muestra el PROMPT
PROMPT esta constituido por:
Usuario que maneja la shell
Nombre de la mquina desde la que se maneja la shell
Directorio del sistema de archivos donde se encuentra el
usuario.
Simboliza el directorio personal del usuario
$ El usuario conectado es un usuario normal
# El usuario con privilegios. Normalmente root

Definicin Shell
Envuelve al Ncleo o Kernel.
Es la parte de LINUX que se ocupa de comunicarse
con el usuario.
Recoge las instrucciones tecleadas en el terminal y
las convierte a sintaxis mquina.
Es el primer programa y el ltimo que se ejecuta al
iniciar una sesin de usuario.
Hablar de shell es hablar de shell en modo texto

Tipos de shell

No
entra

Bourne Shell (sh)


Almquist shell (ash)
Bourne-Again shell (bash)
Debian Almquist shell (dash)
Korn Shell (ksh)
Z shell (zsh)
+ completa

Funciones de la Shell

No
entra

Interpreta y ejecuta comandos.


Configura el entorno de trabajo.
Asigna valores a las variables.
Redirecciona entradas y salidas.
Encauza lista de rdenes o tubrias.
Es un completo lenguaje-interprete de
programacin (scripting)

10

Otras posibilidades shell bash

No
entra

Autocompletar durante la escritura


Tecla TAB
Uso: Teclear varios caracteres y TAB

Historial de comandos
Tecla de cursores ( )
Uso: Permite recuperar comandos ya ejecutados

Poderosas estructuras de control para realizar


scripts Procesos por lotes
If, for, while, select.

Definicin de funciones y alias para comandos


11

Lnea de ordenes
Una orden acaba con la tecla INTRO.
Si no est completa, visualiza el signo >
hasta que esta sea completada.

12

Metacaracteres
\
?
*
[]
[!]

Elimina el significado del carcter siguiente


Sustituye a cualquier carcter
sustituye a un grupo de caracteres
Sustituye a cualquier valor incluido entre los corchetes, un solo
carcter
Sustituye todos los caracteres excepto los que estn entre
corchetes

Ejemplo:

mi[0a] mio o mia


achivo[A-P] archivoA, archivoB .archivoP
[!0-3]* Los que no empiecen por 0,1, 2 o 3
[12]?a empiecen por 1 o 2 lleven un carcter y despus terminen a

Recuerda los caracteres especiales:


&
Backgroup
$
Variable
=
Valor a una variable

13

Agrupamiento de ordenes
Formas de introducir varias ordenes:
Ejecucin sucesiva e independiente de todas las ordenes
Orden1;orden2;orden3

Igual que el anterior, pero se puede considerar como un conjunto


(Orden1;orden2;orden3)

Redirige la salida a un archivo


(Orden1;orden2;orden3) > archivo

Ejecuta un grupo de ordenes en segundo plano (background)


(Orden1;orden2;orden3) &

Ejecuta la orden2 si y solo si la orden1 ha tenido xito


Orden1 && orden2

Ejecuta la orden2 si y solo si la orden1 no ha tenido xito


Orden1 || orden2

Ejecuta la orden1 y encauza o enva su salida como entrada de orden2


Orden1 | orden2

Realizar estos comandos


sobre el directorio de
trabajo del usuario

14

Eliminacin de significados especiales


\ Inhibe la interpretacin del carcter siguiente
(solo uno). Por ejemplo /n (salto de lnea)

Impide que el shell interprete todo lo incluido


entre las comillas.
Evita la interpretacin de los caracteres incluidos,
salvo $, \, ,
`` (acento francs) Provoca la ejecucin de la orden incluida.
15

UNA SESION EN LINUX

16

CONCEPTOS BASICOS I
SESIN: tiempo que el usuario permanece dentro del
sistema.
USUARIO: persona que utiliza el sistema, y esta
registrado mediante una CUENTA.
CUENTA: Espacio del sistema reservado para cada
usuario, o bien para un conjunto de ellos que
trabajen en comn.
GRUPO: Conjunto de recursos y ficheros compartidos
por un conjunto de usuarios.

17

CONCEPTOS BASICOS II
LOGIN: Identificacin de usuario en una cuenta.
PASSWORD: Palabra de acceso al login introducido
en una cuenta.
SUPERUSUARIO: Persona administradora, encargada
entre otras cosas de crear las cuentas de usuario,
administrar y configurar el sistema. Es root.
En Ubuntu viene desactivada, y utilizamos el comando sudo para realizar
tareas administrativas como root. Introducciendo la contrasea del
usuario que tiene permisos admin dentro de sudoers

18

Archivos de inicio del shell bash


Al entrar en el sistema, durante el trabajo en
una sesin y al salir del sistema, el SHELL
ejecuta una serie de archivos que contiene
ordenes para configurar el entorno y
personalizar la sesin .
Ejemplo:
Alias
Mscaras
umask
19

El Administrador debe asignar a un usuario para


permitirle su conexin:

Nombre de usuario (login-name).


Asignarle un grupo (group)
Una palabra de acceso (password)
Asignarle un shell (/bin/bash)
Asignarle los ficheros .bash_profile y .bashrc para
configurar el entorno del usuario.

20

Ficheros relacionados con una sesin de


usuario.

No
entra

Al iniciar una sesin se ejecutan los comandos:


1 Archivo /etc/profile
2 En su home .bash_profile, que a su vez ejecuta
.bashrc (Para la shell hijas) --- Entorno trabajo --3 Y llama /etc/bashrc configurado por root.
En modo texto se ejecutan al contrario.
Iniciarle un fichero .bash_logout
UID (identifica usuario), GID _(Identifica al grupo). Se
almacena en /etc/passwd y /etc/group.
Si no existe .bash_profile, se busca .bash_login y en caso de Ubuntu .profile
Scritps se usa .bashrc que ejecuta
el archivo /etc/bashrc

21

Ficheros relacionados con una sesin de


usuario.

No
entra

Conviene saber que:


/etc/profile , invoca los scripts contenidos en /etc/profile.d
y /etc/bash.bashrc si existe
/etc/skell contiene .bashrc y .profile. Ficheros maestros
que se copian en cada home del usuario

Para ejecutar de nuevos los ficheros sin reiniciar la sesin


en la shell actual y no shell hija ejecutar:
. /etc/profile
sources / .bashrc

//dejando un espacio entre pto y la barra


//emplea la orden sources

22

Cambiar el prompt
Para cambiar el prompt basta con cambiar el valor de la
variable de entorno $PS1
Opciones:
\h: Hostname o nombre de la maquina
\T: la hora actual (formato 24 h)
\t: la hora actual
\d: la fecha
\W: El directorio actual en que nos encontramos
\w: El directorio actual en que nos encontramos con path completo
Ejemplo:
# PS1="Hola soy \u>
# PS1="\u@\h> "

23

Cambiar el prompt
Para que dicho cambio se mantenga en todas
las sesiones y no slo en la shell actual.
Aadir al final del archivo .bashrc que
encontraras en tu directorio home, la
siguiente orden: export PS1=configuracion_prompt

Ms informacin:
https://ubuntulife.wordpress.com/2008/10/25
/cambiando-el-prompt-de-la-terminal/
24

Variables de entorno (1/2)


Es un conjunto de caracteres asociados a un
nombre.
Ms comunes:

25

Variables de entorno (2/2)


Define:
# nombre_variable=valor
Ejemplo:
nuevo=/etc/default

sin espacios ambos lados =

Comprobar su valor
# $nombre_variable
Ejemplo:
# echo $nuevo

Aplicar a todas las shell y a todas las sesiones


# export nombre_variable
Ejemplo:
# export nuevo

Ver todas las variables de entorno definidas


# env
26

Recomendaciones editor I
Linux distingue entre maysculas y minsculas.
Las ordenes deben escribirse en minsculas.
Para recuperar ordenes anteriores, mediante la
FECHA ARRIBA
Para seleccionar una orden ejecutada anteriormente,
nos desplazamos con la fecha arriba por las ordenes,
y cuando aparezca la que deseamos, pulsamos
INTRO.
Para completar el nombre de un archivo, pulsar TAB
La variable $HISTSIZE nos guarda el nmero de
ordenes a guardar.
Para ver este valor, usar la orden echo $HISTSIZE
Para cambiar este valor HISTSIZE = nuevo_valor
27

Recomendaciones editor II
La variable $HISTSIZE nos guarda el nmero de
ordenes a guardar.
Para ver este valor, usar la orden echo $HISTSIZE
Para cambiar este valor HISTSIZE = nuevo_valor

La variable $HISTFILE,(home/usuario/.bash_history)
Para ver este valor, usar la orden echo $HISTFILE
Para cambiar este valor HISTFILE = nuevo_valor

28

Comando history
Visualiza una lista nuemrada de todos los
comandos anteriormente ejecutados.
Sintaxis:
# history

29

Conexin al sistema
Introducir:
Login
Password

Aparece Prompt
# Usuario administrador
$ Usuario normal

30

Desconexin al sistema
Usar
EXIT (No es necesario rearrancar la maquina para reiniciar)
LOGOUT
CTRL + D

31

Apagar el ordenador
Comando:
shutdown [-hr] tiempo [mensaje]

Parmetros:
Tiempo: Indica cuando se va a realizar el cierre del sistema
Formas:
hh:mm Indica la hora
+m
Indica los minutos que restan hasta el cierre
now Inmediatamente (Equiv +0)

-h (Equiv halt) Cierra todo el sistema y detiene la


maquina
-r (Equiv reboot) Cierra el sistema y reinicia la maquina

32

COMANDOS PARA CONOCER LA


SINTAXIS DE LOS COMANDOS LINUX

33

Pedir ayuda en lnea (1/3)


Consultar la sintaxis de un comando, accediendo al
manual.
Dicha informacin es amplia y suele ser estar escrita
mayoritariamente en ingls
Sintaxis
# man comando

Ejemplo
Como usar el comando ls

# man ls
Para salir teclear q
34

Pedir ayuda en lnea (2/3)


Informacin breve. Generalmente en espaol
Sintaxis
# Comando help
# help comando

Ejemplo
Como usar el comando ls
# ls --help
# help ls

35

Pedir ayuda en lnea (3/3)


Informacin breve.
Sintaxis
# info comando

Ejemplo
Como usar el comando ls

# info ls

36

Prompt

Nombre de usuario
Simbolo @
Nombre del equipo
Dos puntos (:)
Directorio donde nos encontramos
Simbolo $ o # para root
Ejemplo:

37

AUTENTIFICARSE
COMO ADMINISTRADOR
(ROOT)
Ms informacin: http://www.ubuntuguia.com/2012/08/comandos-su-ysudo.html
38

Cambiar de usuario
su = switch user
Comando su
Permite autentificarte con otro usuario en el mismo
terminal en el que estas funcionando sin cerrar la sesin.
Sintaxis:
su <usuario>

Ejemplo:
# su manuel

Sintaxis
# su -

(Me logo en esta sesin como usuario root, cargando su


shell)
(Elimino las variables de entorno del usuario logado y cargo
las de root)
Para salir utilizamos el comando exit
39

Cambiar de usuario para ejecutar uno


o varios comandos como root
sudo = switch user do

Comando sudo
Permite ejecutar un comando como root
Sintasix:
# sudo comando
Ejemplo:
# sudo cat /etc/passwd
Si no deseo me vuelva a pedir la password durante la actual sesin
# sudo i
(Me logo en esta sesin como usuario root, cargando su shell)
(Elimino las variables de entorno del usuario logado y cargo las de root)

Para poder ejecutar sudo debes estar incluido en la carpeta /etc/sudoer


El usuario creado en la instalacin esta dentro del grupo administradores o admin (usuarios sudoers)
Para editar dicho archivo visudo

40

PRIMERAS ORDENES LINUX

41

Interpretacin de la sintaxis
orden { [- | +] opcin..}..[argumentoEntrada ].. [
argumentoSalida].. <enter>

ESCRITURA:
negrita Debe ser digitado tal y cmo aparece, generalmente
son nombres de comandos.
{ }, [ ] Lo escrito entre corchetes o parntesis es opcional.
.. Indican que lo que hay antes puede repetirse varias veces.
| Separa dos o ms opciones/argumentos excluyentes para
utilizar con la orden.
normal Son digitadas por el usuario segn los nombre que
l utilice.
42

Comando clear
Permite borrar la pantalla
Ejemplo:
# clear

43

Comando passwd
Para cambiar la contrasea de un usuario:
Sintaxis
# passwd usuario
Ejemplo
# passwd cicloformativo
Para cambiar mi propia password slo utilizamos el
comando passwd sinindicar el nombre de usuario

44

Comando who
Usuarios conectados actualmente con el terminal asociado, fecha y hora
de conexin.
Sintaxis:
# who [opciones]
Opciones:
am I Datos del usuario conectado.
-u Usuarios que hay en el sistema.
-T Indica si el terminal permite que los usuarios enven mensajes al mismo.
-H Imprime la lnea de cabecera.

Ejemplo:
con qu usuario estoy conectado?

# who am i
- Usuarios conectados al sistema y cuenta de usuarios
# who q
NOTA: PTS/1 siempre representa al entorno grfico

45

Comando tty
Muestra el controlador del terminal asignado
y su ruta de acceso.
Ejemplo:

46

Comando finger
Muestra informacin sobre los usuarios del
sistema.
Nombre del usuario, nombre del terminal, y
estado. Tiempo de inactividad, tiempo de
entrada, directorio del usuario, shell de
entrada, estado del correo .
Sintaxis:
# finger [opciones] usuarios
47

Comando logname
Muestra el nombre de usuario con que se ha accedido
al sistema
Sintaxis:
# logname

Ejemplo:

Comando que debe ser instalado para poderse ejecutar con sudo apt-get install
logname

48

Comando id
Muestra la identificacin del usuario del
sistema.
Nombre, nmero de identificador, nombre del
grupo e identificador del grupo.
Sintaxis:
# id [opciones]

49

Comando uname
Muestra el nombre del sistema operativo y su
versin
Sintaxis: uname [opciones]
Opciones
-a
-s

Muestra toda la informacin


Muestra nombre del kernel

50

Comando date (1/2)


Usuario normal:
date

Usuario Administrador:
Sintaxis: date MMDDhhmm [CC] [AA][.ss]
// Para cambiar fecha
date +formato
// Para mostrar fecha en un formato determinado
Opciones:

MM mes (01-12)
DD
da (01-31)
hh
hora (00-23)
mm minutos (00-59)
CC
Los primeros dgitos del ao
AA
El ao (00-99)
ss
Los segundos
+formato
Controla como se muestra la fecha.
Formato se compone de un % seguido de un carcter.
(Ver ayuda)
51

Comando date (2/2)


Ejemplos:
- Conocer la fecha del sistema, en el formato por defecto
# date
-Cambiar la fecha del sistema a 3 de mayo, 12 horas 12 minutos.
# date 05031212
(MMDDhhmm)

-Muestra la fecha en formato dd/mm/aa


# date +FECHA=%D

52

Comando cal
Muestra un calendario en pantalla.

Sintaxis: cal [mes] [ao]


Ejemplo:
- Muestra el calendario del mes de mayo del ao 2006
# cal 05 2006

53

Comando echo (1/2)


Muestra la cadena de texto especificada a
continuacin
Sintaxis: echo [-n] [-e] cadena
Parmetros:
-n
-e

Suprime la actuacin normal de echo, que


consiste en que aade una nueva lnea a
continuacin de la salida.
Permite la interpretacin de una serie de
secuencias de caracteres en la cadena. Es
admisible el carcter ESC.

54

Ejemplo:

Comando echo (2/2)

- Imprime Hola en la salida estndar


# echo hola
-Imprime hola y a continuacin el prompt sin realizar
salto de lnea por la opcin -n
# echo n hola
-Imprime Hola y el cursor realiza el salto de lnea
porque interpreta \c debido a la opcin -e
# echo e Hola \c

55

Comando alias
Son sobrenombres que se le dan a ciertas cosas,
como archivos u ordenes.
Se utiliza para ejecutar comandos siempre con las
mismas opciones, renombrar cosas o ignorar errores
Sintaxis:
# alias identificador = orden
Ejemplo:
# alias dir = ls
# alias logot = logout
# alias rm = rm i
56

Comando unalias
Permite eliminar un alias.
Sintaxis:
# unalias alias
Ejemplo:
Eliminar alias dir
# unalias dir

57

DEBEMOS CONOCER:
TRABAJAR CON TUBERIAS

Ms informacin:
http://hipertextual.com/archivo/2014/07
/redirecciones-y-tuberias-bash/
58

Debes conocer que:


Entrada estndar teclado (stdin)
Salida estndar pantalla (stout)
Salida especial Mensajes de error (stderr)
Stout 1
Stdin 0

PROCESO
Stderr 2

59

ls

wc -l

ls | wc -l

TUBERIAS

60

Redireccionamiento
El teclado y la pantalla es tratada como
ficheros, proporcionando una gran flexibilidad
al sistema, permitiendo tratar a los
dispositivos igual que a los ficheros.
Existen 1 entrada (teclado) y 2 salidas
(pantalla y de error).

61

Redireccionamiento de salida (1/2)


Se utiliza el carcter >
Se cambia la salida estandar (stdout = pantalla)
por un fichero
Ejemplo:
# cat fich1 fich2 > suma
# cat fich1 fich2 1> suma
Enva el contenido de los fich1 y fich2 al fichero suma.
Si no existe le crea y de existir se sobrescribira.
62

Redireccionamiento de salida (2/2)


Tambin se utiliza el carcter >> para aadir el
contenido al final del fichero, en lugar de
sobreescribirle
# cat fich1 fich2 >> suma
# cat fich 1 fich2 1>> suma
Enva el contenido de los fich1 y fich2 al final del fichero
suma

63

Redireccionamiento
de salida de error (1/2)
Se utiliza para notificar errores o avisos durante la
ejecucin. Redirecciona la stdout a stderror
Ejemplo:

cat fich1 fich2 2> errores


Redirecciona la salida de errores de la ejecucin cat fich1 y fich2
al fichero errores

Para aadirse ms errores sin ser sobrescrito.


Ejemplo:
cat fich1 fich2 2>> errores
(slo vlida para la sh Bash)
Redirecciona la salida de errores de la ejecucin sin ser sobreescrito
64

Redireccionamiento
de salida de error (2/2)
La salida estndar y la de errores del comando a
ejecutar se guardarn en file.
Si el archivo file existe se sobrescribir.
Ejemplo:

cat fich1 fich2 > errores 2>&1

La salida estndar y la de errores del comando a


ejecutar se guardarn en file. La informacin se
escribir al final del archivo.
Ejemplo:

cat fich1 fich2 2>> errores 2>&1


65

Redireccionamiento de entrada
Se utiliza el carcter < seguido de un fichero
Redirige la entrada estndar (stdin = teclado) por el
contenido de un fichero.

Ejemplo:
cat < fich1
Visualiza el contenido del fichero 1

66

Redireccionamiento
de entrada y salida
Se pueden utilizar las dos direcciones a la vez.

Ejemplo:
# sort < lista > ordenado
El comando sort ordena las lneas del fichero lista y almacena
el resultado en el fichero ordenado

67

Encauzamiento
Nos permite encauzar la salida de un programa con
la entrada de otro, sin tener que controlar los
ficheros temporales.
Se conoce como tuberas, fifo o pipes.
Se utiliza el carcter |
Ejemplo:
ls | sort
Ejecuta ambos comandos.
Enlazando la salida de ls con la entrada de sort.
Nos muestra todos los ficheros del directorio actual, y aparecen ordenados.
68

Encauzamiento y redireccionamiento
Es posible combinar ambos conceptos
Ejemplo:
ls | sort > ordenado
Nos guarda el resultado de los dos comandos anteriores
en el fichero ordenado.

69

COMANDOS PARA TRABAJAR CON


FICHEROS Y DIRECTORIOS

73

Comando pwd
Informa de cul es el directorio actual
Sintaxis:
# pwd

Ejemplo:
# pwd

74

Comando touch
Cambia los tiempos de modificaciones y acceso de
un archivo o crea un nuevo archivo con los tiempos
especificados.
Sintaxis:
# touch [opciones] MMDDhhmmAA lista_archivos

Opciones:
-a Cambia la hora y fecha de acceso
-m Cambia la hora y fecha de modificacin
Por defecto si no se indica opciones toma los valores -am

75

Comando touch
Ejemplos:
Cambiar fecha de creacin y modificacin
# touch t 0101120191 carta
Establece la fecha y hora de modificacin y acceso a la hora indicada
# touch carta
Establece la fecha y la hora de modificacin y acceso a la actual

Permite tambin crear un fichero vacio cuando el fichero


no existe.
# touch ficheronuevo

76

Comando ls

(1/3)

Lista el contenido de un directorio


Sintaxis:
ls [opciones] [lista de archivos]

Opciones:
-a

Muestra todos los archivos, incluidos los ocultos que


comienzan por punto.
-l Muestra amplia informacin de cada archivo.
-x Muestra los archivos en columnas.
-t Clasifica por fecha y hora de ltima modificacin. Es
utilizado con l.
-u Clasifica con fecha y hora del ltimo acceso. Es
utilizado con t.
-r Invierte el orden de clasificacin.
77

Comando ls

(2/3)

Opciones:
-i
-R
-F

Muestra el nmero de inodo del archivo.


Lista el contenido de los directorios recursivos
Coloca un:
/
despus de las entradas de un directorio (azul)
*
despus de los programas ejecutables (verde)
@
despus de los enlaces simblicos (cian)
|
despus de un FIFO
Nada despus de los archivos normales

Curiosidad:
Las configuraciones del color se realizan en /etc/DIR_COLORS
Para personalizar para un usuario, copiar este archivo al directorio del
usuario y modificar su nombre a dir_colors

78

Comando ls

(3/3)

Ejemplos:
ls l
ls a
ls la
ls lt
ls F
ls Ri
ls xaF

Muestra toda la informacin


Muestra los archivos ocultos
Muestra toda la informacin, incluso de los ocultos
Muestra toda la informacin, clasificador por fecha y hora
ltima modificacin
Muestra los ficheros colocndolos un smbolo segn su tipo.
Muestra el nmero de inodo y el contenido de los directorios
recursivos.
Muestra en columnas, colocando un smbolo de distincin
y muestra incluso los ocultos

79

Comando mkdir
Crea un nuevo directorio
Sintaxis:
# mkdir [nombre directorio]
Ejemplo:
mkdir direct1

Crea el directorio de nombre fich1

80

Rutas de acceso
Rutas separan los directorios por / y sin dejar
espacios en blanco
Hay dos tipos:
Rutas absolutas
Aquellas que parten del directorio raz (/)
Siempre son vlidas

Rutas relativas
Ruta que parte del directorio actual como origen, relativa
desde ese directorio
Slo son vlidas para indicar desde ese directorio y u otro.
81

Comando cd (1/2)
Permite cambiar de directorio
Sintaxis:
# cd [nombre directorio]
Caracteres permitidos para usar con el nombre
del directorio:
/ Directorio raiz
.
Directorio actual
..
Directorio padre
blanco Directorio inicial del usuario

Directorio home del usuario

82

Comando cd (2/2)
cd sin argumentos, se activa el directorio
inicial o del usuario.
cd .., permite ir al directorio padre
cd \, permite ir al home del usuario
Ejemplo:
cd direct1
cd ..
cd direct1
cd \

Cambia al directorio direct1


Me permite ir al directorio padre de direct1
Cambia al directorio direct1
Me permite ir al directorio home del usuario

83

Comando rmdir
Elimina un directorio
Sintaxis:
# rmdir [nombre directorio]
Ejemplo:
rmdir direct1

Elimina el directorio de nombre fich1

84

COMANDOS PARA MANIPULAR FICHEROS


- PAGINAR
- VISUALIZAR
- EDITAR
85

Comando cat (1/3)


Imprime en la salida estndar el contenido de
uno o varios archivos
Sintaxis:
cat [opciones] lista_archivos
Opciones:
-b

-n

Numera las lneas del fichero que no estn en blanco,


comenzando por 1.
Numera, empezando por 1, todas las lneas de
salida.

86

Comando cat (2/3)


Ejemplo:
cat /etc/passwd
cat -b /etc/passwd
cat -n /etc/passwd

Visualiza y concatena por pantalla la visualizacin


de ambos archivos
cat /etc/passwd /boot/grub/grub.cfg
87

Comando cat (3/3)


Crear fichero con contenido. Salir con ^D
cat > ficherocrear
Uno
Dos
Tres

^D

Crear fichero con contenido. Salir con la


palabra que se indique
cat << END > ficherocrear
Uno
Dos
Tres

END

88

Comando more
Muestra el contenido de un archivo de texto por
pantalla pero deteniendose al completarse esta.
Al pulsar INTRO aparece una nueva lnea
Al pulsar ESPACIADORA aparece una nueva pantalla

Sintaxis:
more [opciones] fichero

Opciones:
-n
-c

n es un entero que se utiliza para establecer el


tamao de la ventana a una longitud de n
lneas.
Dibuja cada lnea desde arriba hacia abajo
limpiando la lnea y siempre dibujando la
siguiente.

more archivo
Muestra contenido de un archivo por pginas
89

Comando less
Funciona igual que more pero permite
recorrer el archivo con las teclas del cursor.
Sintaxis
# less archivo

Ejemplo
# less /etc/passwd

90

Comando tail
Permite visualizar el final de un archivo de
texto.
Sintaxis:
# tail [opciones] archivo

Opciones:
-n
+n

Muestra las ltimas n lneas


Muestra a partir de la lnea n

Ejemplo:
# tail -3 fich
Muestra las 3 ltimas lneas del fichero fich

91

Comando head
Permite visualizar el principio de un archivo de
texto.
Sintaxis:
# head [opciones] archivo

Opciones:
-n

[n] Muestra las primera n lneas

Ejemplo:
# head -3 fich
Muestra las 3 ltimas lneas del fichero fich
92

Comando sort
Permite ordenar y fusionar archivos de texto.
Sintaxis:
sort [opciones] archivos

Opciones:
-u

Se asegura que slo las lneas nicas pasan


a la salida
Realizan una clasificacin descendente

-r

Ejemplo:
sort r fichero

Clasificacin descendente de fichero

93
http://enavas.blogspot.com.es/2008/03/el-shell-de-linux-comando-sort.html

Comando sort
Para archivos creados en columnas, utilizar las
siguientes opciones

r
t
k
n

Invierte el orden
separador de las columnas
campos por los que ordenar
indica si el campo por el que se ordena es nmerico

sort -r t: -k5 - n archivo


Ordenado en orden inverso por el campo 5 que es numrico

94

Comando cp (1/2)
Copia el contenido de un fichero en otro fichero.
Sintaxis: cp [opciones] arch_origen arch_destino
cp [opciones] lista_origen direct_destino

Opciones:

-i Pregunta si se quiere sobreescribir archivos destino


existentes.
-r Copia directorios de forma recursiva, copiando todos
sus ficheros en el destino pero sin copiar la estructura
de directorios.
-R Copia directorios de forma recursiva
-u Sobreescribe archivos de destino ya existentes slo si
son ms antiguos.
Lista_origen
Varios archivos de origen
95

Comando cp

(2/2)

Ejemplo:
copia archivo1 a archivo2
# cp archivo1 archivo2
copia archivo1 y archivo2 en el directorio direc1 de la ruta
especificada

# cp archivo1 archivo2 /home/user1/direc1

96

Comando mv
Permite mover o renombrar archivos o directorios.
La operacin puede ser destructiva. No pide
confirmacin.
Opcin -u
Sintaxis:
# mv arch1 arch2
# mv dir1 dir2
# mv lista_de_archivos dir

Actualiza el destino con el


fuente solo si este es ms
reciente

Ejemplo:

# mv arch1 arch2 /home/etc


Mueve los ficheros arch1 y archivo2 al directorio etc
97

Comando rm
Elimina archivos y estructuras completas de
directorios.
La operacin puede ser destructiva. No pide
confirmacin.
Sintaxis:
# rm [opciones] lista_archivos

Opciones:

-r Suprime los directorios especificados en la lista de


archivos.
*-r Suprime recursivamente los ficheros y directorios del
directorio activo
Ejemplo:

# rm /home/etc/pepe
Borra todos los archivos del directorio pepe, excepto los directorios

98

Comando wc
Cuenta el nmero de caracteres, palabras y lneas de
un archivo.
Sintaxis:
# wc [opciones] lista_archivos

Opciones:
-c Cuenta slo el nmero de caracteres
-w Cuenta slo el nmero de palabras
-l Cuenta slo el nmero de lneas

Ejemplo:

# wc fichero1
Cuenta el nmero de caracteres, palabras y lneas del fichero1
99

Comandos ln (1/2)
Crea un enlace a un archivo, permitiendo la
existencia de dos nombres para acceder a un mismo
archivo
Dos nombres con el mismo inode
Tipos de enlaces:
Completos: Para eliminar un fichero previamente hay que
eliminar todos sus enlaces.
Simblicos: Si se elimina el fichero original se elimina el
fichero, y los inodes se quedan colgando.

100

Comandos ln (2/2)
Sintaxis:
# ln [-s] arch_origen arch_destino
# ln lista_origen directorio_destino

Opciones:
Lista_origen:
-s

Lista de archivos para enlazar


separados por espacios.
Crea un enlace simblico en vez de completo

Ejemplo:
# ln arch1 enlace_arch
Al arch1 se crea un enlace de nombre enlace_arch
101

Comando file
Determina el tipo de archivo (directorio,
fichero, de texto, vacio, enlace )
Sintaxis:
# file lista_archivos

Ejemplo:
# file etc
Me indica que se trata de un directorio

102

Comando diff
Compara dos archivos de texto e informa de lo que
hay que hacer en cada uno de ellos para que sea
como el otro
Opciones:
-r compara recursivamente
-q compara solo archivos diferentes

Sintaxis:
# diff [opciones] arc_viejo arch_nuevo
# diff [opciones] dir1 dir2
Ejemplos
# diff nuevo.txt nuevo2.txt
Indica las lneas distintas de ambos ficheros
# diff -rq directorio1 directorio 2
Indica que ficheros hay diferentes entre ambos directorios

103

Comando cmp
Compara dos archivos de texto
Opciones:
-l lista las diferencias entre ambos ficheros
-s Muestra como son los archivos
0 son iguales
1 son distintos
> 1 hubo un error

Sintaxis:
cmp [opciones] arch1 arch2

Ejemplo:
# cmp fichero1 fichero 2

104

Comandos para editar ficheros


gedit
Sintaxis:
Ejemplo:

gedit fichero
gedit /etc/mio.txt

nano
Sintaxis: nano fichero
Ejemplo: gedit /etc/mio.txt

vi
Sintaxis:

vi fichero

vim (Previa instalacin)


Sintaxis:

vim fichero
105

vi
Este editor tiene 3 modos de trabajo:
modo comando
Permite emplear cualquiera de los comandos de: movimiento del
cursor, para borrar, alterar, desplazar texto.
Al pulsar vi se entra en este modo.
Para cambiar de un modo texto a modo comando pulsar ESC.

modo texto
Permite utilizar el teclado para introducir texto.
Se entra con a, A, i, I, o, O.

modo lnea
Permite utilizar el comando EX precedido de :

vi
Comandos de insercin de texto:

i
Inserta texto posicin anterior al cursor
IInserta texto al principio de la lnea
a
Aade texto a continuacin del cursor
A
Aade texto al final de la lista
o
Abre una lnea debajo del cursor
O
Abre una lnea por encima del cursor

vi
Comandos para borrar texto:
[n]x

Borra n caracteres hacia la derecha a


partir de la posicin del cursor.
Si estamos al final de la lnea, borra
uno haca la izquierda.
[n[,m]]dd
Borra n caracteres o bien el rango
comprendido entre n y m a partir de la
lnea en la que est el cursor (incluida
esta)
D
Borra desde la posicin que ocupa el
cursor hasta el final de est lnea.

vi
Comandos EX
Copiar, mover y borrar
:[alcance] co [direccin]
Copia un rango de lneas (alcance) despus de una concreta
(direccin)
:[alcance] m [direccin]
Mueve un rango de lneas (alcance) despus de una concreta
(direccin)
[alcance] d
Borra un rango de lneas concreto (alcance)

vi
Comandos EX
Salva texto y abandona editor
:w
Salva el fichero y sigue editando
:q
Abandona el editor si no se han realizado cambios desde
el ltimo :w
:q!
No se graban los cambios introducidos y se abandona
el editor
:wq Graba el fichero y abandona el editor
:w <fichero> Para salvar un fichero, si se ha
entrado en el editor slo con vi.
Si el fichero existe saca un mensaje
de aviso.
:w! <fichero>
Igual que :w <fichero> pero machacando el
contenido si existe.

vi
Comandos EX
Otros comandos
:[n]r <fichero>
Copia el fichero especificado
por encima de la posicin actual
del cursor o despus de la lnea
que indique n
;! <comando>
Permite ejecutar un comando
sin abandonar el editor

vi
Comandos entorno
(Su funcionamiento depende del entorno, por lo que algunos no funcionan)
:set number
Numera las lneas de texto
:set wm=n
Establece el margen derecho de la columna 80-n
:set wm=0
Elimina el margen derecho establecido con el
comando anterior. (opcin x defecto)
:set list
Visualiza los tabuladores, finales de lnea y otros
caracteres de control
:set ignorecase
Trata a las mayusculas, igual que a las minusculas
:set all
Mostrar en pantalla todas las opciones del entorno
de editor.
:set errorbells
El PC enva una seal acustica cuando se
introducice un comando errneo
:set showmode
Muestra INPUT, REPLACE, CHANGE cuando se
da el comando correspondiente.
:set no<opcin>
Desactiva la opcin que corresponda.

Para que estos cambios permanezcan modificar el fichero .exrc del directorio
de trabajo del usuario

Otros editores (Nos los veremos)

No entra

113

Edicin de textos
Los editores en Linux se pueden dividir en:
Editores de flujo
Son programas que trabajan como filtros
Se utilizan para trabajar con la informacin contenida en un texto
de forma automtica sin intervencin del usuario.

Editores de pantalla
Son programas que aprovechan las caractersticas del terminal
para interactuar directamente con el usuario.
El usuario es el que modifica o crea el texto.
El texto del fichero es mostrado en pantalla y el usuario libremente
se mueve para realizar sus cambios.

Editores de flujo
El ms simple
tr

El ms utilizado
sed

El ms potente
awd

tr
Traduce o sustituye caracteres.
Sustituye el primer carcter de cadena1 por el de cadena2, el
segundo por el segundo y as sucesivamente.
Sintaxis: tr [-ds] [cadena1] [ cadena2]
Argumentos:

Cadena1 : proporciona la lista de caracteres para ser sustituidos.


Cadena2 : los caracteres de sustitucin
-d : filtra los caracteres de cadena1 y los borra
-s :

Ejemplo:

tr [a-z] [A-Z] fichero_orig > fichero_nuevo

Editores de texto
vi
emacs
pico (es el ms sencillo)

emacs
Grabar el texto
<ctrol+x><ctrol+s>
Graba el fichero y sigue en el editor
<ctrol+x><ctrol+c>
Abandona el editor
Si no se ha grabado se pierde
Si se ha grabado nos pregunta si deseamos grabar
el texto.

emacs
Copiar un bloque de texto. Pasos
Marcar el principio del bloque y pulsar
<ctrol+barra espaciadora>
Copiar el bloque en el buffer y pulsar <alt+w>
Situar el cursor en el lugar donde se desea copiar
el bloque y pulsar <ctrol+y>

emacs
Mover un bloque. Pasos
Marcar el principio del bloque y pulsar
<ctrol+barra espaciadora>
Copiar el bloque en el buffer y pulsar <alt+x>
Situar el cursor en el lugar donde se desea copiar
el bloque y pulsar <ctrol+y>

emacs
Borrar un bloque de texto. Pasos
Marcar el principio del bloque y pulsar
<ctrol+barra espaciadora>
Pulsar <alt+x>

emacs
Leer de disco
<ctrol+x><ctrol+i>
Inserta el contenido de un archivo en la posicin
actual del cursor.
<ctrol+x>+<ctrol+r>
Carga el archivo en memoria y elimina lo que
hubiera en esta.

groff
Permite escribir mas ayudas en el manual
Comandos
.B
.BI
.BR
roman
.I
.SH
.TH

negritas
negrita y despus cursiva
negrita y despus activa la fuente
pone cursivas
Comienzo de una nueva seccin
Ttulo del documento.

groff
Pasos:
Crear un fichero de texto, usando los comandos de groff
Para ver el formato, usar la orden:
groff Tasccii man fichero |more
Guardarlo en el directorio man (/usr/man/man1)
Teclear man fichero para comprobar la pgina.
Se guarda en /usr/man/cat1 con el nombre fichero.gz

groff
Ejemplo:
.\Ejemplo de pagina manual
.TH Fichero 75 de mayo de 2006
.SH NOMBRE Fichero \-Generador de Bonoloto
.SH SYNOPSIS
.B fichero n
.SH DESCRIPCION Genera, tras meditado estudio, los nmeros de la Bonoloto
ganadora.
.PP
.B Opciones:
.PP \-n Nmero de apuestas
.SH AUTORES
Fuencisla Mate

COMANDOS PARA HACER BSQUEDAS


DE FICHEROS Y PATRONES

126

Comando grep (1/2)


Busca patrones que estn en los fiheros e informa cuando los
encuentra.
Sintaxis:

grep [opciones] <patron> [ficheros]

Significado:
patron

Puede ser una cadena o una expresin regular como [Hh]i

^patron
-v

Busca la expresin al principio de la lnea


Proporciona un listado de las lneas que NO contienen
la expresin
Cuenta las lneas concordantes
Hace que no distinga entre maysculas y minsculas
Imprime el nmero de lnea que contiene el patrn
Busca en un directorio de forma recursiva (incluyendo
subdirectorios) el patrn

Opciones:

-c
-i
-n
-r

127

Comando grep

(2/2)

Ejemplo:
Busca la cadena root en el archivo passwd
grep root /etc/passwd
Busca al principio de la lnea la palabra dos en el fichero pruebagrep.txt
grep ^dos ./pruebagrep.txt
Busca al principio de la lnea la palabra dos o Dos en el fichero anterior
grep ^[dD]os pruebagrep.txt
Nmero de lneas en el fichero anterior que tiene la palabra dos
grep -c dos pruebagrep.txt
Lneas que no contienen la palabra que comienza por dos en el fichero
grep -v ^dos pruebagrep.txt
Numera las lneas que contienen la palabra dos en el fichero anterior
grep n dos pruebagrep.txt
Busca en un directorio /etc todas las lneas que contienen la palabra root
grep root /etc
128

Comando cut (1/4)


Se utiliza en ficheros de texto cuyos campos
estn separados por un delimitador, para
filtrar por lo que se indique.
Sintaxis:
# cut opcin [files]
Opciones:
-d <delimitador>
-f <numero, rango>
-c <numero, rango>

define el delimitador
Indica la columna a filtrar
Indica los caracteres a filtrar
129

Comando cut (2/4)


Ejemplo:
Sea un fichero pruebacut.txt con este contenido, con delimitador
<space>
Radamel Falcao Delantero AtleticoM
Lionel Messi Delantero Barcelona
Diego Lopez Portero Sevilla
Iker Casillas Portero RMadrid
Andres Iniesta Centrocampista Barcelona

Sacar el primer campo en pantalla de un fichero delimitado por un


espacio:

130

Comando cut (3/4)


Ejemplo:
Sea un fichero pruebacut.txt con este contenido, con delimitador
<space>
Radamel Falcao Delantero AtleticoM
Lionel Messi Delantero Barcelona
Diego Lopez Portero Sevilla
Iker Casillas Portero RMadrid
Andres Iniesta Centrocampista Barcelona

Sacar el primer y tercer campo en pantalla en un fichero delimitado


por espacios:

131

Comando cut (4/4)


Ejemplo:
Sea un fichero pruebacut.txt con este contenido, con delimitador
<space>
Radamel Falcao Delantero AtleticoM
Lionel Messi Delantero Barcelona
Diego Lopez Portero Sevilla
Iker Casillas Portero RMadrid
Andres Iniesta Centrocampista Barcelona

Sacar los 10 primeros caracteres de un fichero

132

Comando find (1/3)


Busca y genera una lista de archivos que cumplen los
criterios que se han indicado.
Los archivos pueden ser comparados por:
Nombre -name archivo (Comodines * y ?)
Tamao -size n (Bloques 512b, 1K)
Modalidad (rwx) -perm modo (Signo menos lo que no concuerda
con ese modo)

Tipo (c,b,d,p,l,f) -type x


N Enlaces
-links n
Id de usuario -user id_user (valor o nombre)
-exec cmd
Por cada archivo se ejecuta cmd.
{}
Indica donde debe aparecer el nombre del archivo en el
comando ejecutado
\;
Terminacin del comando

133

Comando find (2/3)


Las opciones pueden agruparse y combinarse
para limitar los criterios de bsqueda.
Deben cumplirse todas (AND)
Otras opciones:
\(\)
-o
!

Se utilizan para agrupar selecciones


Sustituye al predeterminado AND
Operador NOT

134

Comando find (3/3)


Ejemplos:
# find . name carta* print
Busca en el directorio actual (.) y en sus directorios todos los archivos
que empiecen por carta y los muestra por pantalla (-print)

# find . name carta* exec ls l {} \;


Busca los archivos que empiezan por carta (*) y realiza un listado largo
de ello (ls l) en el directorio actual y sus subdirectorios

# find .! \( -name carta* o name *juan \) print


Busca una lista de archivos que no empiecen (!) por carta ni termine
por juan y lo muestra por pantalla en el directorio actual y sus
subdirectorios

135

Comandos para buscar archivos


---------------------------------------------------------------------------------------------------------------------------------

Ejemplo:
# which firefox

136

Comandos para buscar archivos


---------------------------------------------------------------------------------------------------------------------------------

Ejemplos:
# whereis mkdir
# apropos passwd

137

PERMISOS EN FICHEROS Y
DIRECTORIOS

138

Permisos
Para ver los permisos
# ls l

_
1
1

___
2

___
3

_ _ _ _ _______ _______ ___ ___ __ ___ _______


4 5
6
7
8
9 10 11
12

Tipo de archivo

d
l

archivo normal
directorio
enlace simblico

2 Permisos de usuario propietario (rwx)


3 Permisos de grupo principal (rwx)
4 Permisos para otros usuarios (rwx)
5 Enlace duro

6 Usuario propietario
7 Grupo principal al que pertenece el usuario,
pero puede ser modificado y tomar un valor
secundario.
8 Tamao en bytes

9 Fecha de creacin
10 Hora de creacin
11 Nombre del archivo
139

Formas de tratar los permisos


Forma simblica a travs de caracteres
Forma octal a travs de nmeros

Comando: chmod
Permite cambiar los permisos de un archivo
(ficheros y directorios)

140

Permisos
Lectura
Directorio: Leer los recursos almacenados en l, o sea listar
las entradas del directorio.
Archivo: Leer su contenido

Escritura
Directorio: Crear y borrar archivos sobre l, o sea las
entradas del directorio
Archivo: Modificar su contenido

Ejecucin
Directorio: Podr realizar otras funciones dentro de l
mediante los permisos de lectura y escritura, o sea
permiso de acceso a las entradas del directorio.
Archivo: Ejecutar el archivo
141

Cambiar permisos de archivos y


directorios en modo simblico
Sintaxis
# chmod [opciones] modo [,modo]ficheros
Opciones:
-R
Permite cambiar de forma recursiva en un directorio.

Grupos de usuarios

u: usuario dueo del fichero


g: grupo de usuarios del dueo del fichero
o: todos los otros usuarios
a: todos los tipos de usuario (dueo, grupo y otros

Permisos
r: se refiere a los permisos de lectura
w: se refiere a los permisos de escritura
x: se refiere a los permisos de ejecucin
142

Cambiar permisos de archivos y


directorios en modo simblico

Se aade o quitar permisos con los operadores + y -.


Para ello se indica el tipo de usuario y el permiso que se resta o
aade.
Ejemplos:
Cambia el permiso a todos los grupos de usuarios

# chmod =r tuArchivo
Remover los permisos de ejecucin a grupos y otros
# chmod g-x, o-x tuArchivo
Aadir permiso de ejecucin al usuario
# chmod u+x tuArchivo
Agrega y remueve a la vez
# chmod u-x+w tuArchivo
143

Cambiar permisos de archivos y


directorios en modo octal

Se basa en bit encendido (rwx) o apagado (-)


La combinacin de valores de cada grupo de usuarios
(propietario-grupo-otros) forma un nmero octal (base 8),
representado por tres bits y por tanto los valores pueden
tomar valores de 0 a 7
r = 4 (lectura) = 22
w = 2 (escritura) = 21
x = 1 (ejecucin) = 20
- = 0 (sin permisos) = 0

Al asignar los permisos utilizamos nmeros, para lo cual se


sumarn los valores y ser el que se coloque.
144

Cambiar permisos de archivos y


directorios en modo octal
Permisos

Bits

Valor

Descripcin

---

0+0+0

El valor cero significa que no se han asignado


permisos

--x

0+0+00

Slo se asigna permiso de ejecucin

- w-

0+21+0

Slo se asigna permiso de escritura

- wx

0+21+20

Se le asigna permiso de escritura y ejecucin

r--

22+0+0

Slo se asigna permiso de lectura

r-x

22+0+20

Se le asigna permiso de lectura y ejecucin

rw -

22+21+0

Se le asigna permiso de lectura y escritura

rwx

22+21+20

Se le asigna permiso de lectura, escritura y ejecucin


145

Cambiar permisos de archivos y


directorios en modo octal
SUID SGID Sticky

Ejemplo:

421
sst
-s-

2
2

usuario grupo
(u)
(g)
421
rwx
rwx

4+2+1
7
2754

421
rwx
r-x

otros
(o)
421
Valor de cada bit
rwx Permisos correspondientes
r-Permisos para convertir

4+1

Suma de valores por grupo de permisos

Valor octal por grupo de permisos

notacin octal

Los permisos se asignan en grupos de tres, es decir propietario-grupo-otros

146

Cambiar permisos de archivos y


directorios en modo octal
Ejemplos:
Permisos

Valor

Descripcin

rw- --- ---

600

Propietario permiso lectura y escritura

rwx --x --x

711

Propietario permiso lectura, escritura y ejecucin.


Grupo y otros slo ejecucin

rwx r-x r-x

755

Todos los permisos para el propietario y lectura y


ejecucin para el grupo y otros

r r r--

400

Slo permiso de lectura para el propietario, grupos y


otros.

rwx rwx rwx

777

Puede ser ledo, escritura y otros para cualquiera

rw- r-- ---

640

El propietario puede leer y escribir y el grupo solo


leer
147

Cambiar permisos de archivos y


directorios en modo octal
Ejemplos:
# chmod 000 foto.jpg
# chmod 700 foto.jpg
# chmod 114 foto.jpg

// quita todos los permisos al archivo foto

// aado todos los permisos para el


propietario

//slo permiso de ejecucin


para propietario y grupo y
lectura para otros

148

Comando chgrp

Se utiliza para cambiar el grupo de un fichero.


El grupo le puede cambiar el dueo si pertenece a ese
grupo y root
Sintaxis:
# chgrp [opciones] grupo ficheros
Opciones:
-R

Cambia en los directorios recursivamente el dueo

Ejemplo:
# chgrp asir mayo
---------- _ fuencis fuencis ___ ___ ___ _____ mayo
---------- _ fuencis asir
___ ___ ___ _____ mayo

149

Comando chown

Se utiliza para cambiar el dueo de un fichero.


El dueo de un fichero slo lo puede cambiar el usuario root
Sintaxis:
# chown [opciones] dueo ficheros
Opciones:
-R

Cambia en los directorios recursivamente el dueo

Ejemplo:
# chown raquel foto.png
# chown R root datos/

---------- _ fuencis fuencis ___ ___ ___ _____ foto.png


---------- _ raquel fuencis ___ ___ ___ _____ foto.png

Tambin permite cambiar usuario y grupo de una sola vez por root
Ejemplo:
# chgrp fuencis:asir foto.png
# chgrp -R root. datos/

//uso como separador :


//uso como separador .

150

Ejercicios de compresin

Apunta que puedes hacer o no en estos casos:


1.

2.

3.

Prueba asignar a un directorio nicamente el permiso de


lectura (444) e intenta leer su contenido con un ls o leer alguno
de sus ficheros de los cuales hayas apuntado previamente el
nombre.
Prueba asignar a un directorio nicamente el permiso de
lectura (111) e intenta leer su contenido con un ls o leer alguno
de sus ficheros de los cuales hayas apuntado previamente el
nombre.
Prueba asignar a un directorio nicamente el permiso de
lectura (555) e intenta leer su contenido con un ls o leer alguno
de sus ficheros de los cuales hayas apuntado previamente el
nombre.
151

Comando umask
Establece la maskara de permisos de directorio y de
archivos, es decir los nuevos directorios o archivos que
se crean obtienen el valor de los permisos a partir de
los valores de umask
Sintaxis
# umask [opciones] [ficheros]
Opciones:
-S
Obtiene la maskara en formato simblico

Ejemplo:
# umask
# umask S
# umask 0022

//establece la maskara a 0022


152

Comando umask
Si el primer bit es 0
Para directorios o archivos ejecutables = (777)
Para archivos comunes = (666)
Los valores resultantes se obtienen restando:

Ejemplos:
Si umask es 002, un archivo se crea con los
permisos rw- rw- r (666-002=664)
Si umask es 002, un directorio se crea con los
permisos drwxrwxr-x (777-002=775)
153

umask
Ejemplo:
Directorios
111 111 111
000 010 100
-----------------------111 101 011
Ficheros
110 110 110
000 010 100
-------------------------110 100 010

(rwx r-x wx)

(rw- r -w-)

Bits SUID, SGID y de persistencia


(sticky bit)
SUID
Aparece en el grupo de usuario una s en lugar de x
Archivo propiedad de root pero debe ser ejecutado por
cualquier usuario, es decir puede evocarse un archivo
propiedad de otro usuario.

SGID
Se aplica a un grupo en lugar de a un usuario.
Aparece una s en lugar de x en los permisos de grupo.

STICKY BIT
Se aplica a directorios como /tmp y se indica con t en el
grupo otros
155

Bits SUID, SGID y de persistencia


(sticky bit)
Establecimiento de estos permisos especiales
Se utiliza el comando chmod pero agregando un
nmero octal (1 a 7) extra al principio de los
permisos

Ejemplo:

Observa el valor extra es 4, el resto de permisos se dejan como estn (511)


156

Bits SUID, SGID y de persistencia


(sticky bit)
- --- --- --- = 0

Predeterminado, sin permisos especiales.


No se requiere indicar nada

- --- --- --t


- --- --s --- --- --s --t
- --s --- --- --s --- --t
- --s --s --- --s --s --t

Bit de persistecia, sticky bit

=1
=2
=3
=4
=5
=6
=7

Bit SGID de grupo


Bit sticky y SGID

Bit SUID de usuario

OJO a los
problemas de
seguridad y a
un uso
inadecuado

Bit sticky y SUID


Bit SUID de usuario y UGID de grupo
Bit sticky, SGID y SUID
157

Comandos utilizados con la


configuracin del arranque de linux
Actualizar el grub2
# update-grub2
Mostrar el identificador de cada particin
# blkid
Apagar el sistema
# halt y shutdown h tiempo [mensaje]
- Parametro tiempo
hh:mm Indica la hora
+m
Indica los minutos que restan hasta el cierre
now Inmediatamente (Equiv +0)

Reiniciar el sistema
# reboot y shutdown r tiempo [mensaje]
Salir consola o terminal
# exit
158

Compresin y descompresin de
archivos en linux

159

Comando tar (1/2)


Sirve para empaquetar o desempaquetar archivos, pero no
comprime cuando empaqueta.
Sintaxis:
tar <opciones> <archivo1> <archivo2> ...<archivoN>
<archivo1> hasta <archivoN> es
la lista de archivos a aadir o extraer del archivo empaquetado.

Opciones
c
v
f
x
t

cree un nuevo archivo


imprime los nombres de los archivos segn se
des/empaquetan
nombre del archivo a des/empaquetar
extraer o desempaquetar archivo
mostrar un "ndice" del archivo tar antes de
desempaquetarlo

OJO: A las rutas. (ver ejemplos)


160

Comando tar (2/2)


Ejemplo:
Empaquetar:
# tar cvf backup.tar /etc empaquetar todos los archivos
de /etc en el archivo backup.tar.
# tar cvf backup.tar /etc/hosts /etc/group /etc/passwd (*)
Desempaquetar
# tar xvf backup.tar

Extraer el archivo
backup.tar en el
directorio actual.

# cd /;tar xvf backup.tar (*)


# cd /etc; tar cvf hosts group passwd
# tar tvf backup.tar
Ver ndice con ficheros
161

Comando GZIF
Comprime un archivo
gzip archivo

archivo se convierte en archivo.gz


comprimido
gzip c archivo > archivo.gz Se crea archivo.gz,
No se modifica archivo

Por ejemplo:
# gzip 9 backup.tar

mayor factor de compresin

Resultado:
backup.tar.gz

versin comprimida del archivo tar.

162

Comando gunzip
Descomprime un archivo comprimido con
gzip.
Es lo mismo que utilizar: "gzip d".
Ejemplos:
gunzip archivo.gz
Descomprime archivo.gz
gunzip c archivo.gz > nuevo
Descomprime archivo.gz se redirecciona la salida al
archivo nuevo.
163

Ejemplos:
Comprimir y empaquetar
# tar cvf backup.tar /etc
# gzip 9 backup.tar

Desempaquetar
# gunzip backup.tar.gz
# tar xvf backup.tar

164

Comando zcat
Permite ver el contenido de un archivo
comprimido sin descomprimirlo
Ejemplo:
zcat <archivodetextocomprimido>

165

Comando ZIP
Empaqueta y comprime archivos
Ejemplo:
# zip <nombre_archivo_comprimido>
<archivos_a_comprimir>
# zip <nombre_archivo_comprimido> *

166

Comando UNZIP
Descomprimir archivos
Ejemplo:
# unzip <nombre_archivo_comprimido>

Opciones
wiki

Consultar documento en la

167

Comandos
bzip2/bunzip2/bzcap/bzip2recover
El comando bzip2 comprime archivos usando
el algoritmo BurrowsWheeler blocksorting
text compression y Huffman coding.
Es similar a gzip
El doble de compresin que el resto de
comandos.
Para comprimir bzip2.
Para descomprimir bunzip2.
168

Comando cpio
Empaqueta para despus comprimir
Permite mandarlo a:
Pantalla
Archivo
Dispositivo

169

Comando cpio
Opciones:
Argumento o (El modo copiaafuera)
Empaquetar

Argumento i (El modo copiaadentro)


Desempaquetar.

Argumento p (El modo copiadepaso)


Ver

170

Comando cpio
Ejemplos:
# cpio iv < archivo.cpio
Sacar los archivos del paquete

# cpio iuv < archivo.cpio


Igual que el anterior comando pero sobreescribe los
archivos que existan.

# cpio tv < archivo.cpio


Ver los archivos que contiene el paquete

171

Comando unrar
Permite desempaquetar y descomprimir los
archivos que desde Windows han sido
empaquetados y comprimidos con el
programa propietario rar.

172

CMO INSTALAR SOFTWARE?

173

Instalacin paquetes apt o aptitude

174

Los repositorios (1/3)


Es el lugar local o de internet donde el
comando apt pueda buscar los paquetes
En dicho archivo se encuentra las direcciones
donde conseguir los paquetes)
Las fuentes se encuentran en el archivo:
/etc/apt/sources.list.
Paquete es un conjunto de programas.
Un programa puede estar formado por varios paquetes
175

Los repositorios (2/3)


Encontraremos informacin como:

# Repositorios
# Fuentes
# Mtodo FTP
# Mirror Oficial de Ubuntu
# Mirror Oficial de Deban
.

Las lneas comentadas (precedidas de '#') no las tiene en cuenta


apt, el resto de lneas son ejecutadas.
Se puede agregar ms fuentes editando dicho fichero como root
Se puede descomentar alguna de las lneas existentes o escribir
manualmente nuevas lneas
Puede aadir un CD-ROM a la lista de fuentes:
# apt-cdrom add
176

Dnde buscar repositorios? (3/3)


www.apt-get.org
www.google.es

Para aadir repositorios desde el terminal:


http://elblogdeliher.com/como-anadir-un-repositorio-desde-la-terminal-en-ubuntu/
177

apt
APT (Advanced Packaging Tool)
Es el gestor de paquetes usado por Deban y las
distribuciones basadas en Deban, como Ubuntu
Debe ser usado preferiblemente con conexin a
internet.
Para usarle debemos decirle:
1. Decirle que actualice la lista de paquetes disponibles
2. Decirle los paquetes que queremos
Instalar/desinstalar
178

Qu hace el comando apt?


Buscar los paquetes en Internet o localmente.
Solucionar las dependencias
A veces para que un paquete funcione necesita que
haya otros paquetes instalados previamente: se dice
que 'depende de'

Descargar de Internet (cuando sea necesario) los


paquetes y sus dependencias
Instalar y configurar en el orden correcto los
paquetes y sus dependencias
Sintaxis:
# apt-get [opciones] ordenes [paquetes]
179

Comando apt-get (1/7)


Actualiza lista de paquetes (siempre antes de usar el comando
apt-get)

# apt-get update
Ejemplo:

Actualiza todos los paquete


# apt-get upgrade
Ejemplo

Para actualizar a otra distribucin (Seguramente


necesites instalar dicho comando)

# apt-get dsitupgrade

180

Comando apt-get (2/7)


Instalar paquetes (Escribir sin extensin ni coletilla)
# apt-get install paquete
Ejemplos

Instalar paquetes cuando hay algn problema


por ejemplo con las dependencias
# apt-get - f install paquete
Ejemplo:
181

Comando apt-get (3/7)


Reinstala un paquete cuando se daa o para
instalar una versin ms reciente.
# apt-get --reinstall install paquete
Ejemplo:

Descarga el paquete a la cache pero sin


instalarlo.
# apt-get -d install paquete
Ejemplo:
182

Comando apt-get (4/7)


Instala y desinstala paquete en una orden.
Los paquetes que llevan detrs un sern desinstalados

# apt-get install paquete paquete- paquete


Ejemplo:

Simula una instalacin pero sin instalar


# apt-get - s install paquete
Ejemplo:
183

Comando apt-get (5/7)


Desinstala un paquete y borra tambin sus
dependencias.
# apt-get remove paquete
Ejemplo:
Desinstala el paquete y borra tambin todos
los ficheros de configuracin.
# apt-get --purge remove paquete
Ejemplo:
184

Comando apt-get (6/7)


Los paquetes instalados tienen extensin .deb
Los paquetes instalados se conservan en la
cach: /var/cache/apt/archives.
Se pueden borrar pero si necesitamos
instalarlos de nuevo, apt tiene que volver a
descargarlos
Borra la cache
# apt-get autoclean
Ejemplo

185

Comando apt-get (7/7)


Borra de la cache los paquetes antiguos que
ya tienen nueva versin
# apt-get clean
Ejemplo

186

Comando apt-cache (1/2)


Busca en la cache por el nombre o la
descripcin de un paquete, la palabra que se
indique
# apt-cache search palabra
Ejemplo

Muestra informacin de un paquete


# apt-cache show paquete
Ejemplo:
187

Comando apt-cache (2/2)


Nos informa sobre las dependencias de
'paquete', es decir, de qu paquetes depende
# apt-cache depends paquete
Ejemplo

188

Comando apt-show
Lista de paquetes que pueden ser
actualizados.
Necesita instalar el paquete apt-showversions.
# apt-show-versions u
Ejemplo

189

Comando aptitude (1/4)


aptitude debe ser previamente instalado
Instalar paquetes
# aptitude install <paquete>
Ejemplo:

190

Comando aptitude (2/4)


Desinstalar paquetes
# aptitude remove <paquetes>
Ejemplo:

Desinstalar paquetes incluidos ficheros de


configuracin.
# aptitude purge <paquetes>
Ejemplo:
191

Comando aptitude (3/4)


Actualizar lista de paquetes
# aptitude update
Ejemplo:

Actualiza el sistema.
Instala las nuevas versiones de los paquetes
instados
# aptitude safe-upgrade
Ejemplo:
192

Comando aptitude (4/4)


Buscar por el nombre
# aptitude search <nombre>
Ejemplo:

Obtener ayuda del comando.


# aptitude help
Ejemplo:

193

Otros comandos con aptitude


Eliminar la cache
# aptitude clean

Descargar paquetes y sus dependencias sin instalarlos.


# aptitude install d nombre_paquete

Obtener informacin de un paquete


# aptitude show paquete

Ver los paquetes que tenemos instalados


# dpkg l

194

El paquete no esta en el repositorio

Aadir a
sources.list

Si

Encuentro
paquete en
repositorios

No

Buscar paquete

Cdigo
Fuente

Binario

195

Instalar archivos binarios


(Ejecutar archivos ejecutables)

Son archivos .bin


Suelen ser archivos comerciales
Si no tiene permiso ejecucin, concedrsele
# chmod +x [nombre_binario}.bin

Instalar el archivo
# ./[nombre binario].bin

196

Instalar archivos binarios con dpkg


(Ejecutar archivos ejecutables)

Se encuentran empaquetados en varios


formatos, segn la distribucin: *.rpm, *.deb
(Ubuntu).
Usar dpkg para desempaquetar, configurar e
instalarlo.
# dpkg -i /ruta/nombre_paquete (lo instala)
# dpkg -r /ruta/nombre_paquete (lo desinstala)

197

Instalar ficheros fuentes .deb (1/3)


Pasos son:
Compilar para generar el archivo binario
Instalar

Antes de comenzar:
Instalar instalar un metapaquete llamado buil-essential
# aptitude update
# aptitude install build-essential

instalar las librerias de desarrollo del kernel


aptitude install linux-hearders -uname r

Leer antes de proceder archivos como readme, leeme que


suelen tener extensin txt y me dicen como instalarlo
198

Instalar ficheros fuentes .deb (2/3)


Proceso:

Descargar el fichero fuente.


Descomprimir el fichero que seguro estar comprimido.
Situarte en la carpeta
Ejecutar script configure (Comprueba las caractersticas
del sistema referentes a la compilacin)
#. \configure

Compila las fuentes y crea el fichero binario


# make

Instala la aplicacin en el sistema.


# make install o checkinstall (previa instalacin apt-get)
199

Instalar ficheros fuentes .deb (3/3)


Ejemplo:
sudo aptitude install libpanelapplet
tar xvzf sensors-applet-0.5.1.tar.gz
cd sensors-applet-0.5.1
./consigure prefix=/usr
make
make install o mejor
sudo checkinstall (porque facilita la desinstalacin)
200

Formato .rpm
Actualizar sistema
# apt-get update

Instalar alien
# apt-get install alien

Convertir .rpm a .deb


# alien --to-deb paquete.rpm

201

Extensin .sh
Son scripts generados con comandos linux que
se ejecutan uno tras otro.
Situarte en la carpeta
Ejecutar el script
# ./nombrepaquete.sh

202

Archivos con extensin .run


Son asistentes
Situarte en la carpeta
Ejecutar:
# sh ./(archivo).run

203

Instalacin de programas
sin conexin a internet
En un ordenador con conexin internet.
Descargar el paquete dpkg-dev (que por
dependencias puede necesitar otros paquetes).

Descargar los paquetes o programas necesarios


(los que queramos transportar al ordenador sin conexin).
Copiar toda la carpeta /var/cache/apt/archives/,
o slo los paquetes necesarios, en nuestro medio
de transporte (CD, USB, etc.), sin olvidar dpkg-dev
y sus dependencias.
204

Instalacin de programas
sin conexin a internet
En un ordenador sin conexin internet (1/2).
Crear una carpeta para el repositorio local, por
ejemplo: /home/usuario/repositorio/
Crear una subcarpeta para los paquetes, por ejemplo:
/home/usuario/repositorio/paquetes/
Copiar los paquetes *.deb, desde el medio de
transporte a la carpeta
/home/usuario/repositorio/paquetes/,
Instalar el paquete dpkg-dev
# cd /home/usuario/repositorio/paquetes
# dpkg -i dpkg-dev
205

Instalacin de programas
sin conexin a internet
En un ordenador sin conexin internet (2/2).
Creamos el archivo (Packages) con las cabeceras de los paquetes:
# cd /home/usuario/repositorio
# dpkg-scanpackages paquetes /dev/null > Packages

Creamos el archivo comprimido de las cabeceras (comprimimos el


packages):
# gzip -c Packages > Packages.gz

Modificamos el /etc/apt/sources.list tecleando:


# gedit /etc/apt/sources.list

Insertamos al principio del archivo deb


file:/home/usuario/repositorio/ ./
Tambin sera conveniente desactivar los repositorios de Internet
comentando (un '#' delante) las lneas que haya descomentadas.
Ahora ya podemos actualizar la lista de paquetes (apt-get update) e
instalar los paquetes que necesitemos:
# apt-get update
# apt-get install nombre_programa

206

Instalacin de programas
sin conexin a internet
Crear un repositorio local (carpeta HDD)
Usar el programa dpkg-scan packages que
tenemos que instalar previamente.

207

TIPOS DE USUARIOS Y GRUPOS

208

Tipos de usuarios
Linux es un sistema multiusuario que permite ser
usado por mltiples usuarios simultneamente.
Cada usuario tiene sus permisos y podr o no
realizar diferentes tareas.
Cada usuario se identifica por un login y una
password.
Todo usuario pertenece a un grupo.
Al grupo se le puede asignar permisos.
Los usuarios se identifican por UID (identificador
de usuario) y un GID (identificador de grupo).
Un usuario puede pertenecer a varios grupos
adems de a un grupo principal
209

Usuario root

Superusuario o administrador
Puede realizar cualquier tarea administrativa
Ejecuta tareas de mantenimiento del sistema
Instala software en el sistema
UID = 0

210

Usuarios especiales
Son usados por el sistema para determinadas
operaciones.
No se puede entrar al sistema con ellos.
UID va entre 1 y 100
Asume algunos privilegios de root
Estn creados para hacer el sistema mas seguro.
Se crean automticamente al instalar inux o un
servicio
Ejemplo:
bin, daemon,sync, mail, operator, squid, apache
211

Usuarios normales

Son los creados para entrar y usar el sistema.


UID > 1000
Slo tiene privilegios totales sobre su home
Cada usuario puede personalizar su entorno
de trabajo.

212

Ficheros de usuarios en el sistema


Guardan informacin sobre usuarios, grupos y
contraseas.
Son:
/etc/passwd
/etc/group
/etc/shadow

//informacin del usuario


//informacin sobre grupos
//Contraseas cifradas usuario

213

/etc/passwd
Contiene informacin de cualquier tipo de usuario
Cada lnea contiene informacin de un usuario
Sintaxis
Usuario : contrasea : UID : GID : comentarios : directorio_home : shell

Ejemplo:
root : x: 0 : 0 :administrador : /root : /bin/bash
neo:x:114:123:usuario especial:/home/neo:/bin/false
fuencis:x:1001:1002:usuario normal:/home/fuencis//bin/bash

Contrasea : Aparece una x indicando que esta cifrada en /etc/shadow


Comentarios: nombre real u otro comentario que se quiera aadir
Directorio_home: directorio inicio de usuario
Shell: interprete de comandos del usuario.
Si se indica /bin/false no se podr entrar en el sistema. Ejemplo
servicios
214

/etc/group
Contiene la relacin de grupos a los que pertenecen los
usuarios del sistema.
Cada lnea contiene informacin de un usuario
Sintaxis
grupo : x : GID : lista_usuarios

Ejemplo:
root : x:0:root
neo:x:101:
asir:x:1002:fuencis, patricio

Grupo : Nombre del grupo creado


X: indica password se guarda en el archivo /etc/shadow
GID: identificador del grupo
lista: usuarios que pertenecen al grupo, separados por comas

215

/etc/shadow
Contiene la contrasea cifrada y otros datos de control de la
contrasea
Cada lnea contiene informacin de un usuario
Sintaxis
usuario : password : tiempo_1_1_70 : periodo_cambio : dias_x_cambio :
tiempo_aviso : inhbilitacion : periodo_caducado : reservador

Ejemplo:
saned:*:15937:0:99999:7:::
fuencis:$6$YRI:F$WMg5y/54LMKgt8VELm1lnUXeWf9FfeGv3tk039kYa
UWirAU9wK.bB9crv.LK(VGT0h6SVv9ljCAJ1yC4fG6a0:16066:0:99999:7
root : !:15975:0:99999:7::: //usuario no activado (fjate en la exclamacin)
Si ha sido cambiada con sudo passwd

root:$6$lnDqRI:F$WMg5y/54LMKgt8VELm1lnUXeWf9FfeGv3tk039kYaUWirAU
9wK.bB9crv.LK(VGT0h6SVv9ljCAJ1yC4fG6a0:16066:0:99999:7:::

216

COMANDOS PARA MANIPULAR


USUARIOS Y GRUPOS

217

Comando useradd
Es un enlace al comando useradd
Nos permite insertar usuarios nuevos de forma
interactiva
Se le asigna informacin por defecto
Sintaxis:
# useradd [opciones] <usuario>

Ejemplo:
# user morfeo
Esto es similar a:
useradd d /home/morfeo s /bin/bash morfeo
218

Comando adduser
Nos permite insertar usuarios nuevos
Es el comando original de unix
Sintaxis:
# adduser [opciones] <usuario>
Opciones:

-g
-d
-s
-m
-k
del
-p

Indica grupo al que pertenece el usuario


Indica nombre del usuario
Indica la shell a usar el usuario por defecto
crea el directorio en caso de no existir
Indica que copie los archivos de /etc/skell al directorio home
usuario
Indica contrasea con la que le creamos en la misma lnea de
comando

Ejemplo:
# useradd g prueba d /home/morfeo s /bin/bash m k
/etc/skel morfeo

219

Comando deluser
Nos permite eliminar un usuario del sistema
Es un enlace al comando userdel, que
tambin permite eliminar un usuario
Sintaxis:
# deluser [opciones] <usuario>
Opciones:
--remove-home: Borra su directorio home

Ejemplo:
# deluser remove-home morfeo
220

Comando usermod
Nos permite modificar propiedades de los
usuarios
Tambin permite bloquear o desbloquear una
cuenta.
Sintaxis:
# usermod [opciones] <usuario>

Ejemplo:
# usermod g morfeo G sudo,matrix morfeo
// Grupo principal morfeo, suplementarios sudo y matrix
221

Comando passwd
Permite cambiar la password de un usuario
Permite bloquear, desbloquear y deshabilitar una
contrasea.
Este comando sin argumentos asume el usuario
actual.
Sintaxis:
# passwd [opciones] <usuario>

Ejemplo:
# passwd d morfeo

// Deshabilita morfeo

# passwd morfeo

//cambia contrasea a morfeo


222

Comando addgroup
Aaden un grupo al sistema.
Tambin existe groupadd
Sintaxis:
# addgroup [opciones] <grupo>

Ejemplo:
# addgroup matrix

223

Comando delgroup
Aaden un grupo al sistema.
Tambin existe groupdel
Sintaxis:
# delgroup <grupo>

Ejemplo:
# delgroup matrix

224

Comando id
Muestra informacin del usuario (UID, GID
principal y GID secundarios)
Sintaxis:
# id <usuario>

Ejemplo:
# id morfeo

225

Comando groups
Muestra informacin del grupo
Sintaxis:
# groups <usuarios>

Ejemplo:
# groups matrix sudo root

226

Ms comandos

227

Bibliografa
http://elara.site.ac.upc.edu/
http://www.nexolinux.com/ejemplos-comando-cut/
http://elblogdeliher.com/como-anadir-un-repositoriodesde-la-terminal-en-ubuntu/
http://www.ubuntu-guia.com/2009/06/como-instalarpaquetes-y-programas-en.html
http://www.guiaubuntu.com/index.php?title=sistema_de_archivos
http://www.linuxcentro.net/linux/staticpages/index.ph
p?page=PermisosLinux
http://doc.ubuntu-es.org/Tipos_de_archivo
228

Gestin de particiones en linux


desde la lnea de comandos

F.M.G
229

Comando fdisk
---------------------------------------------------------------------------------------------------------------------------------

230

Comando fdisk
---------------------------------------------------------------------------------------------------------------------------------

231

Comando fdisk
---------------------------------------------------------------------------------------------------------------------------------

232

Comando fdisk
---------------------------------------------------------------------------------------------------------------------------------

233

Comando fdisk
---------------------------------------------------------------------------------------------------------------------------------

234

Comando fdisk
---------------------------------------------------------------------------------------------------------------------------------

235

Comando fdisk
---------------------------------------------------------------------------------------------------------------------------------

236

Comando fdisk
---------------------------------------------------------------------------------------------------------------------------------

237

Comando fdisk
---------------------------------------------------------------------------------------------------------------------------------

238

Comando fdisk
---------------------------------------------------------------------------------------------------------------------------------

239

Comando fdisk
---------------------------------------------------------------------------------------------------------------------------------

240

Comando fdisk
---------------------------------------------------------------------------------------------------------------------------------

241

Otros comandos

cfdisk
gparted
parted
qtparted
etc

No se tratarn en
este curso

242

Comandos para dar formato a las particiones


---------------------------------------------------------------------------------------------------------------------------------

Ext2 es el sistema creado por defecto


243

Comandos para dar formato a las particiones


---------------------------------------------------------------------------------------------------------------------------------

244

Comandos para dar formato a las particiones


---------------------------------------------------------------------------------------------------------------------------------

Otros comandos ms especficos


mkfs.dos
mkfs.reiserfs
mkfs.minix
mkfs.ext2
mkreiserfs
mkdosfs
mke2fs

Comprueba
comandos posibles
segn formato
aplicar en /sbin

246

Montaje y desmontaje de dispositivos


de almacenamiento
Los dispositivos fsicos y los de almacenamiento de informacin son
manipulados a travs de ficheros especiales ubicados en /dev

Discos duros
Particiones
Unidades de disquetes
Unidades de CD-ROM
Etc .

Estos dispositivos no se maneja directamente sino que es necesario


realizar un montaje (ASOCIAR EL DISPOSITIVO A UN DIRECTORIO
DETERMINADO PARA HACERLO ASEQUIBLE)
Dichas directorios se montan en:
/
/home
/mnt
247

Montaje y desmontaje de dispositivos


de almacenamiento
El fichero /etc/fstab nos especifica dnde y en
que forma se montan los diferentes dispositivos.

Cada lnea describe un dispositivo, con esos parmetros

248

Montaje y desmontaje de dispositivos


de almacenamiento
Parmetros:
<Dispositivos> Nombre del dispositivo o etiqueta o UUID
/dev/hda1
/dev/sdc1
/dev/fd0
LABEL=/home.
LABEL=/Cursos
UUID=aca22aed-b33c-4b50-b6a1-cc374b92f382

<punto_montaje> Directorio donde se monta


/

/mnt/floppy

/tmp

/particion

<sistema_de_archivos> Sistema de ficheros del dispositivo.


ext2
ntfs
msdos swap
iso9660 auto
<opciones> Opciones de montaje
ro
rw
exec
auto
user
<dump-freq> Especie de copia de seguridad.
Valor 0 1 o sea NO o SI
<pass-num> Indica el orden el que fsck revisar el dispositivo en busca
de errores durante el inicio.
Valor 0 = No se revisa. Valor 1 = Sistema /
249

Montaje y desmontaje de dispositivos


de almacenamiento
Opciones ms usadas de /etc/fstab (1/2)

auto / noauto: El dispositivo se monta al iniciar el sistema


rw: El dispositivo se monta con permisos lectura y escritura
ro: El dispositivo se monta con permisos de lectura solamente
owner: El usuario que esta conectado al sistema puede montar y
desmontar el dispositivo
user / nouser: Cualquier usuario puede montar y slo ese usuario podr
demontar.
users: Cualquier usuario puede montar o desmontar el dispositivo
suid / nosuid: El permiso s tenga efecto para los ejecutables presentes en
el dispositivo
exec / noexec: Los binarios almacenados en el dispositivo pueden
ejecutarse.
250

Montaje y desmontaje de dispositivos


de almacenamiento
Opciones ms usadas de /etc/fstab (2/2)
async / sync: Todas las operaciones de E/S se hacen de forma
asncrona
dev /nodev: Indica que se interprete como tal a los dispositivos
especiales de bloques o caracteres presentes en el dispositivo.
defaults: es una opcin equivalente a la unin de:
rw, suid, dev, exec,auto, nouser, async

errors: Indica que hacer en caso de errores


Ejemplo: errors=remount=ro

//En caso de error montar de solo lectura

acl: Permite aadir listas de control de acceso como en sistemas


NTFS
Si queremos que un dispositivo se monte
automticamente debemos aadir una lnea a este
archivo con los parmetros especificados.

251

Montaje y desmontaje de dispositivos


de almacenamiento
Comando mount y umount
Permite montar y desmontar un dispositivo de manera temporal
Dicho dispositivo despus de montar aparece en el fichero /etc/mtab

Sintaxis:
# mount [opciones] [dispositivo][dir]
# umount [opciones] [dispositivo] | [dir]
Opciones:
-a

-t <tipo>
-o <opciones>

No es posible desmontar
el dispositivo si esta
utilizado por el sistema

Monta todos los dispositivos con la opcin auto en el


fichero /etc/fstab o desmonta lo que esta en /etc/mtab
Indica el tipo de sistema de ficheros a montar
Especifica las opciones desmontaje, separadas por comas

Ejemplos:
# mount -a
# mount /dev/sda5 /mnt/llavero
# mount /dev/cdrom
# mount /dev/fd0 /floppy

# umount a t ntfs
# umount /dev/sda5
# umount /mnt/cdrom
# umount /floppy

252

Comandos para mantener la integridad del


sistema de ficheros
---------------------------------------------------------------------------------------------------------------------------------

253

Comandos para mantener la integridad del


sistema de ficheros
---------------------------------------------------------------------------------------------------------------------------------

Ejemplo:
# fsck /dev/sda5
# dosfsck/dev/fd0

Comprueba
comandos posibles
segn formato
aplicar en /sbin

Comandos ms especficos:
* fsck.msdos
* mkfs.ext2
* fsck.reiserfs
* mkreiserfs
* fsck.minix
* mkdosfs
* mke2fs
254

Otras formas de ver las particiones


---------------------------------------------------------------------------------------------------------------------------------

Los discos y particiones les encontramos en la


ruta /dev
Tambin usando el comando cat /proc/partitions
Comando lsblk f

fdisk l

Permite ver el listado de particiones


255

Comando blkid
Obtiene informacin de particiones y sistema de
ficheros
Informacin tal como: nombre de dispositivo de
bloque, UUID, Etiqueta y tipo de sistema de
archivos
Ejemplo:
/dev/sda1: LABEL="PQSERVICE" UUID="EAEE-EB49" TYPE="vfat"
/dev/sda2: UUID="9E224F27224F03AD" LABEL="Acer" TYPE="ntfs"
/dev/sda5: UUID="1e448752-2099-4818-a848-e58b260d0c4c" TYPE="ext2" LABEL="/boot"
/dev/sda6: TYPE="swap" LABEL="swap" UUID="a715f878-6090-47e5-a8ec-23e3c6650744"
/dev/sda7: UUID="527bc37a-eee2-4359-92e7-364be1924fa5" TYPE="ext3" LABEL="/"
/dev/sda8: UUID="63fb54dc-1733-463a-a876-67d0c6766dae" TYPE="ext3" LABEL="/vbox"

256

Comandos para mantener la integridad del


sistema de ficheros
---------------------------------------------------------------------------------------------------------------------------------

257

Comandos para mantener la integridad del


sistema de ficheros
---------------------------------------------------------------------------------------------------------------------------------

258

Prctica 1: Gestin de particiones


---------------------------------------------------------------------------------------------------------------------------------

No hacer ninguno de estos pasos


de la diapositiva
263

Comando dd
Permite duplicar ficheros o partes de estos ya sean
regulares o especiales
Sintaxis
# dd [opciones]
Opciones:
if=<fichero> Especifica el fichero de origen
of= <fichero> Especifica el fichero de destino
bs=<n>
Especifica la cantidad de bytes ledos y copiados a la vez o tamao
del bloque. Por defecto 512
count=<n>
Indica cantidad de bloques a copiar al destino. Por defecto todos

Ejemplos:
# dd if=/kernel-image of=/dev/fd0
# dd if=/dev/hda1 of=/mnt/floppy/bootsector count=1 bs=512
# dd if=/dev/cdrom of=Cdimage.iso

264

Bibliografa
http://tuxapuntes.com/wpcontent/uploads/2013/08/LINUX-UD9Gestion-de-particiones-en-Linux.pdf

265

GESTIN DE PROCESOS

275

Qu es un proceso?
Cada una de las ordenes son procesos.
Una orden se conoce como tarea, y se le asigna un
PID exclusivo.
Cada proceso tiene un proceso padre, desde donde
se ha lanzado su ejecucin.
Los procesos del sistema, se ejecutan al iniciarse el
sistema y son lanzados por el proceso Init cuyo PID =
1.
El proceso Init es lanzado por el proceso boot, cuyo
PID = 0.

Qu es un proceso?
Proceso bash (sh del sistema) lanza la sesin de cada
usuario, y su proceso padre es init.
Las ordenes que lancemos tendrn como padre el
proceso bash.
Los PID generados son consecutivos y nicos.
Cuando un proceso muere, su PID no vuelve a ser
utilizado.

ps
Visualiza los procesos activos del sistema
Sintaxis:
ps [opciones]

Opciones:
-a
Muestra los procesos activados por
todos los terminales.
-l
Proporciona un listado largo.
-x
Muestra los procesos sin un terminal de
control.
-u
Muestra el nombre del usuario.

ps
Muestra la siguiente informacin:

PID
PPID
PRI
NI

SIZE
RSS
STAT

TTY

R
S
T
Z

Identificador del proceso


Identificador del proceso padre
Prioridad del proceso
El valor de nice del proceso.
Valor positivo significa menos CPU
Tamao en bloques del proceso
Tamao en Kilobytes del programa residente en memoria.
El estado del proceso
Ejecutable
Dormido
Parado
Zombie

El nombre del terminal de control para el proceso.

top
Permite ver la evolucin de los procesos y el
estado del sistema.
Nos ofrece informacin de:
Nmero de usuarios en el sistema
Estado de cada uno de los procesos
Memoria que ocupa
Tiempo de CPU que consume cada proceso.
Etc.

Foreground
Es la ejecucin en primer plano
Esto implica que no devuelve el control al
usuario hasta que el proceso no acabe.

Background
Es la ejecucin en segundo plano
Permite al usuario seguir realizando otros trabajos y
aprovechar la capacidad de multitarea del sistema.
Para ejecutar una orden en background se coloca &
al final del orden.
Nos devolver un nmero de tarea entre corchetes y
un nmero de proceso.

jobs
Presenta una lista de las tareas que se estn
ejecutando en segundo plano y las tareas en primer
plano paralelas.
Cada entrada de la lista consta de un nmero de
tareas entre corchetes, si la tarea est detenida o
ejecutndose y un nombre de la tarea.
El + indica que la tarea se esta procesando
y el signo indica la siguiente tarea que ha de ser
ejecutada.

Interrupcin de procesos
CTROL+Z
Para interrumpir una tarea y detenerla.
As la tarea queda a la espera hasta que el
usuario desee reanudarla.
Con fg y bg reanudamos la ejecucin de
ordenes en primer o segundo plano

fg
Permite cambiar una tarea de segundo a
primer plano.
Cuando hay ms de una tarea, se debe usar el
nmero de la tarea junto con la orden,
precedido por el signo (%).

bg
Permite reanudar una tarea interrumpida
ponindola en segundo plano.

Cancelacin de procesos

Ctrol+C
Interrumpe los procesos ejecutados en foreground.
Kill + PID
Detiene una tarea que se ejecuta en segundo plano.
Al matar un proceso, se eliminan todos los procesos
hijos.

kill
Permite el envo de una seal a un proceso que se
est ejecutando en segundo plano.
Sintaxis:
Kill [-seal] pid | %tarea
Kill l
Se enva por defecto una seal 15
Si es ignorado, se puede usar la seal 9
Desventaja: No deja que acabe el proceso, lo mata.

Prioridades en los procesos


El planificador de procesos es el encargado de decidir
a quin le corresponde la CPU en cada momento.
Las prioridades son un nmero entre -20 y 20.
Tendr mayor prioridad cuando ms pequeo sea el
nmero.
La prioridad se gestiona con nice y renice

nice
Reduce o aumenta el tiempo que el procesador
dedica a cada ciclo de la orden en cuestin.
Sintaxis: nice n valor tarea
Opciones:
Valor

Oscila ente -20 y 19


Si es negativo aumenta la prioridad
Si es positivo la disminuye
El administrador puede aumentar o disminuir,
pero un usuario solo disminuir.

renice
Permite modificar la prioridad de un proceso
que se ejecuta.
Sintaxis: renice valor pid
Opciones:
Valor El administrador puede aumentar o
disminuir, pero un usuario solo
disminuir.

PLANIFICACIN DE PROCESOS

Planificacin de procesos
Para planificar la ejecucin de procesos, linux va a
suministrar servicios que utiliza el reloj del sistema
cron es un proceso que no est inscrito a ningn
usuario ni terminal pero permanece vivo durante la
sesin para suministrar servicios cuando es
requerido.
Estos procesos se denominan demonios
cron es un demonio cuyo periodo mnimo de tiempo
es 1 minuto

at
Permite la ejecucin diferida de ordenes en el
momento especificado incorporndolas a una cola
Al ser invocado, devuelve un identificador, del que
tomaremos nota si deseamos borrar el trabajo de la
cola.
Se almacena en /var/spool/at
Le pueden usar el superusuario y aquellos usuarios
cuyo permiso se indique en /etc/at.allow y
/etc/at.deny
Los errores se envan por correo por medio de mail.

at
Opciones:
Fecha-hora

Hora en el que comienza el trabajo

Formato:
Hora
HHMM HH:MM
Fecha
MMDDAA, MM/DD/AA, Mes dia, Mes, dia y ao, Dia de la
semana, dia espacial (today, tomorrow)
Incremento
+num minutes, hours,days,weeks,months, years

-l

Lista los trabajos actualmente planificados.


Si es el superusuario lista todos los trabajos

-r id-trabajos

Elimina de la cola los id-trbajos.


Solo el super puede eliminar todos los trabajos.

atrm
Borra todas las tareas
atqLista todas las tareas

batch
Permite la ejecucin diferida de ordenes
cuando la carga del sistema lo permita.

crond
Establece la ejecucin peridica de rdenes a
intervalos prefijados.
Se suele lanzar al arrancar el sistema con el
superusuario.

crontab
Crea el archivo que ejecuta crond. Constar de una
lnea por cada tarea que se vaya a repetir
peridicamente, con seis entradas separadas por
espacio, con el formato M H D m d orden.
El * selecciona todos los valores.
Se guarda por cada usuario en /var/spool/cron
Permisos: /etc/cron.allow
Deniega: /etc/cron.deny

crontab

M Minutos (0-59)
H
Hora (0-23)
D
Da (1-31)
m mes
D
dia de la semana (0-6, 0=domingo)
Orden
el programa a ejecutar
Opciones:

-l
Lista el archivo crontab
-e
Edita el archivo crontab. Utiliza editor vi
-d
Suprime el archivo crontab del usuario
-u usuario
Especifica un archivo crontab determinado del
usuario que va a manipular.

Ejemplos crontab
crontab 0 12 15 5 * echo Este mes las clases
como caso excepcional acaban a las 14h de la
maana

SCRIPTS BSICOS

301

Programacin shell: Introduccin


Un programa de shell es un fichero regular que
contiene comandos del sistema linux
Los permisos del fichero deben ser al menos de
lectura y ejecucin
Para ejecutarlo escriba el nombre del fichero en
el prompt de la shell
Se pude pasar de datos a un programa de shell
mediante:
Variables de entorno
Argumentos en la linea de comandos
Entrada de usuario
302

Ejemplo de un programa shell


$ cat miprog
# Esto es el programa miprog
date
ls F

$ vi myprog
# Esto es el programa miprog
date
ls F
$ chmod +x myprog
$ ./myprog

Ejecucin de myprog
/usr/bin/sh

$miprog
/usr/bin/sh

PID=1324

#
date
ls -F

/usr/bin/ls
/usr/bin/date

PID=1360
PID=1361

PID=1362

303

Como proporcionar datos a un


programa
$ color=laverde
$ cat color;
echo Tu estas corriendo el programa: color1
echo El valor de la variable color es: $color
$ color1
Tu estas corriendo el programa: color1
El valor de la variable color es:
$ export color
$ ./color1
Tu estas corriendo el programa: color1
El valor de la variable color es: laverde
304

Argumentos de los programas shell


Lnea de comandos:
$ sh_program arg1 arg2 . argX
$0
$1
$2
$x

Ejemplo:
$ cat color3
echo Tu estas corriendo el programa: $0
echo El valor del primer argumento \#1 es: $1
echo El valor del primer argumento \#2 es: $2
$ chmod +x color3
$ ./color rojo verde
Tu estas corriendo el programa: $0
El valor del primer argumento \#1 es: rojo
El valor del primer argumento \#2 es: verde

305

Argumentos de los programas shell


Este programa instalar el programa especificado como argumento en la
lnea de comandos en su directorio bin.
$ cat > my_install
echo $0 ser instalado $1 a tu directorio bin
chmod +x $1
mv $1 $HOME/bin
echo Instalacin de $1 esta completada
$ chmod +x my_install
$ ./my_install color3
My_install ser instalado color3 a tu directorio bin
Instalacin completada de color3 esta completada
306

Algunas variables especiales # y *


#
Nmero de argumentos de la lnea de
comandos
*
Cadena completa de argumentos
Ejemplo:
$ cat color4
echo Hay $# argumentos de lnea lalnea de comandos
echo Hay $*
echo El primer argumento de la lnea de comandos es $1

$ chmod +x color4
$ ./color4 rojo verde amarillo azul
Hay 4 argumentos de lnea la lnea de comandos
Hay rojo verde amarillo azul
El primer argumento de la lnea de comandos es rojo
307

Comando shift

Mueve todas las cadenas de * n posiciones hacia la izquierda


Decrementa # en n (el valor por defecto de n es 1)

Sintaxis:
# shift [n]

Ejemplo:
$ cat color5
orig_args=$*
echo Hay $# argumentos en la lnea de comandos
echo Son $*
echo Mueve 2 argumentos
shift 2
echo Hay $# argumentos en la lnea de comandos
echo Son $*
echo Mueve 2 argumentos
shift 2; final_args=$*
echo Argumentos originales son: $orig_args
echo Argumentos finales son: $final_args

308

Comando read
Sintaxis:
# read variable [variable ..]

Ejemplo:
$ cat color6
echo Prompts para entrada de usuarios
echo Por favor introduce tus dos colores favoritos \c
read color_a color_b
echo Los colores que has introducido son: $color_b $color_a
$ chmod +x color6
$ ./color6
Por favor introduce tus dos colores favoritos rojo azul
Los colores que has introducido son: azul rojo

$ ./color6
Por favor introduce tus dos colores favoritos rojo azul amarillo
Los colores que has introducido son: azul amarillo rojo

309

Caracteres de escape

\a
\b
\c
\f
\n
\r
\t
\\
\nnn

Emite un pitido
Backspace
Suprime nueva lnea del final
Alimentacin de pginas
Nueva lnea
Retorno de carro
Carcter tabulador
Backslash
El carcter cuyo valor ASCII es nnn, donde nnn
es un nmero octal de uno a tres dgitos, que
comienza por cero. Por ejemplo, \007 es el
pitido, equivalente tambin a CTROL+G
310

El comando read

Este ejemplo mejorado del programa install muestra el prompt al usuario en el que
e pide los nombres de los ficheros que desea instalar
$ cat > my_install3
echo $0 instalar ficheros dentro de tu directorio bin
echo Introduce el nombre del fichero \c
read filenames
chmod +x $filenames
mv $filenames $HOME/bin
echo Instalacin completada
$ chmod +x my_install3
$ ./myinstall3
my_install3 instalar ficheros dentro de tu directorio bin
Introduce el nombre del fichero f1 f2
Instalacin completada
311

Definir funciones de shell


Sintaxis
function nombre_funcion {shell_script}
o
nombre_function {} {shell_script}

Ejemplo
$ function install
>{
>
echo Instalacin de fichero: $1
>
chmod +x $1
>
mv $1 $HOME/bin
>
echo Instalacin completada
>}

install {}
{
echo Instalacin de fichero: $1
chmod +x $1
mv $1 $HOME/bin
echo Instalacion completada
}

$ install myfile
Instalacin de fichero: myfile
Instalacin completada
312

Tcnicas varias
Documente los programas de shell anteponiendo
a as lneas de comentario el smbolo #
sh programa_shell argumentos
Programa_shell no necesita ser ejecutable
Programa_shell no necesita permiso de lectura

sh -x programa_shell argumentos
Escribe cada lnea del programa_shell antes de ser
ejecutada
til en la depuracin de programas
313

PROGRAMA SHELL CON


BIFUCACIONES
314

Cdigos de retorno
La variable shell ? guarda el cdigo de retorno del ltimo
comando ejecutado.
=0
Comando ejecutado correctamente (true)
<>0 Comando terminado con error (false)

Ejemplo:
$ true
echo $?
0
$ ls
$ echo $?
0
$ echo $?
0

$ false
echo $?
1
$ cp
Usage: cp f1 f2
cp {-r} f1 .. fn d1
$ echo $?
1

.
315

Comando test
Sintaxis:
test expreson

[expresion]

El comando test evala la expresin y establece el cdigo


de retorno.
Valor de la expresin
Cdigo de retorno
true
false

cero
distinto cero

El comando test puede evaluar una condicin de:


enteros
cadenas
ficheros
316

Comando test (evaluacin numrica)


Sintaxis:
[numero relacin nmero]

Compara nmeros
dependiendo de la relacin

Relaciones:
-lt
-le
-gt
-ge
-eq
-ne

menor que
menor o igual que
mayor que
mayor o igual que
Igual que
Distinto que

Ejemplo:
$ [ $X -lt 7]
$ echo $?
0

$ [$X -gt 7]
$ echo $?
1
317

Comando test (evaluacin cadenas)


Sintaxis:
[cadena 1 = cadena2]
las cadenas
[cadena 1 = cadena2]
equivalencia de cadenas

Determina la igualdad de

Determina la no

Ejemplo:
$ X=abc
$ [ $X = abc]
$ echo $?
0

$ X=abc
$ [ $X != abc]
$ echo $?
1
318

Comando test (evaluacin ficheros)


Sintaxis:
test opcion fichero

Evala fichero segn la


opcin

Ejemplo:
$ test f fichero
$ echo $?
0

$ test d fichero
$ echo $?
1

319

Comando test (Otros operadores)


Sintaxis:
-o
-a
!
\( \)

O
Y
NO
AGRUPAMIENTO*

Ejemplo:
$ [ $ANS = y -o $ANS = Y]
$ [ $NUM -gt 10 -a $NUM -lt 20]
$ test s fichero -a -r fichero
* Nota: los deben ir precedidos por backslash (\)
320

Comando exit y return


Sintaxis:
exit [argumento]

return [argumento]

Ejemplo:
$ cat exit_test
echo saliendo ahora del programa
exit 99

$ exit_test
saliendo ahora del programa

$ cat rtn_test
function rtn
{
echo return desde function
return 99
}

$ echo $?
99

$ rtn_test
return desde function
$ echo $?
99
321

Comando if
Sintaxis:

(Utilizada para bifucacin de decisin simple)

if
lista A
thenv
lista B
fi

Ejemplo:

if
grep kinkkong /etc/passwd
then
echo Encontrado kingkong
fi

if
test s fichero
then
echo El archivo fichero existe
fi
echo hola
322

Comando if-else

Sintaxis:

(Utilizada para bifucacin de decisin simple)

if
lista A
then
lista B
else
lista C
fi

Ejemplo:

if
[ $X lt 10]
then
echo X es menor que 10
else
eco X no es menor de 10
fi

if
[ $X -lt 10]
then
echo X menor que 10
else
if
[ $X -gt 10]
then
echo X mayor que 10
else
echo X es igual a 10
fi
fi
323

Comando case

Sintaxis:

(Utilizada para bifucacin de decisin simple)

case palabra in
patron 1)
lista A
;;
patron 2)
lista B
;;
patronN)
lista N
;;
esac

case $OPT in
1) echo opcion 1 ;;
2) echo opcion 2 ;;
3) echo opcion 3 ;;
4) echo no opcion ;;
esac

Ejemplo:

case $ANS in
yes) echo OK
;;
no) echo no
;;
esac

324

Comando case. Ejemplo de patrones


Los patrones de la construccin case usan los mismos caracteres
esenciales que se utilizan para la generacin de nombres de
ficheros.
Ejemplo:
$ menu:with_case
echo
echo
echo
echo
echo
read choice
case $choice in
[dD] *)
[wW]*)
[lL] *)
*)
esac

MENU DE COMANDOS
d
Nuestra fecha y hora
w
Muestra los usuarios conectados
l
Lista el contenido del directorio actual
Por favor introduzca su eleccin:

date
;;
who
;;
ls
;
echo Seleccin no vlida ;;
325

PROGRAMA SHELL CON


BUCLES
326

Introduccin a Bucles
Propsito: Ejecucin repetida de una lista de comandos
Control:
Basado en el condigo de retorno de un comando
clave
Formas:
while . de done
until de .done
for de .done

327

Evaluacin aritmtica utilizando let


Sintaxis:
lst expresin
Ejemplo:

$ x=10
$ y=2
$ let x=x+2
$ echo $x
12
$ let x = x / (y + 1)
$ echo $x
4
$ ((x = x + 1))
$ echo $x
5

((expresion))
$ x=12
$ let x <10
$ echo $?
1
$ ((x > 10))
$ echo $?
0
$ if ((x > 10))
> then echo x grande
> else echo x no es grande
> fi
X grande
328

Operadores
!
*
/
%
+
<= >=
== !=
=

Negacin lgica
Multiplicacin
Divisin
Resto
Suma
Resta
<
>
Comparacin relacional
Iguales y no iguales
Asignacin

329

Sentencia While
Repite el bucle mientras la condicin sea verdadera
Sintaxis:
Ejemplo:
$ cat test_while
while
X=1
lista A
while ((X <= 10))
do
do
echo hola X es $X
lista B
let X=X+1
done
done
$test_while
hola X es 1
hola X es 2

hola X es 10
330

Sentencia While. Ejemplos


Repite mientras la sentencia sea si
ans=si
while [$ans = si]
do
echo Introduzca un nombre
read nombre
echo $nombre >> file.names
echo Desea continuar?
echo Introduzca si o no
read ans
done

Repite mientras haya argumentos en la


lnea de comandos
while (($n != 0))
do
if test d $1
then
echo El contenido de $1
ls F $1
fi
shift
echo Quedan $# elementos
echo en la linea de comandos
done

331

Sentencia until
Repite el bucle hasta que la condicin sea verdadera
Sintaxis:
Ejemplo:
$ cat test_until
until
X=1
lista A
until ((X > 10))
do
do
echo hola X es $X
lista B
let X=X+1
done
done
$test_until
hola X es 1
hola X es 2

hola X es 10
332

Sentencia While. Ejemplos


Repite hasta que la sentencia sea no
ans=si
until [$ans = no]
do
echo Introduzca un nombre
read nombre
echo $nombre >> file.names
echo Desea continuar?
echo Introduzca si o no
read ans
done

Repite hasta que no haya argumentos en


la lnea de comandos
until (($# == 0))
do
if test d $1
then
echo El contenido de $1
ls F $1
fi
shift
echo Quedan $# elementos
echo en la linea de comandos
done

333

Sentencia for
Repite el bucle para cada lemento de la lista, asignandoa var el
siguiente elemento de la lista, hasta que ya no queden ms
elementos
Ejemplo:
$ cat test_for
Sintaxis:
for X in 1 2 3 4 5
for var in list
do
echo 2 * $X es \C
do
let x=x+2
lista A
echo $X
done
done
$test_for
2 * 1 es 2
2 * 2 es 4
2 * 3 es 6
2 * 4 es 8
2 * 5 es 10
334

Sentencia for. Ejemplos


$ cat example_A
for NAME in $(grep home /etc/passwd |
cut f1 d
do
mail $NAME < mtg.minutes
echo mailed mtg.minutes to $NAME
done

$ cat example_B
for FILE in *
do
if
test d FILE
then
ls F $FILE
fi
done

335

Comandos break, continue y exit


break [n]

continue [n]

exit [n]

Termina la iteracin del bucle y


salta al comando detrs del
n-simo done
Detiene la iteracin actual del
bucle y salta al principio de la
siguiente iteracin del bucle
anidado n-simo
Detiene la ejecucin del
programa y devuelve codigo de
retorno n
336

Ejemplo
while
true
do
echo Por favor introduzca el fichero que desea borrar: \c
read FILE
if test ! f $FILE
then
echo $FILE no es un fichero regular
continue
fi
echo borrando $FILE
rm $FILE
break
done
337

Vous aimerez peut-être aussi