Comandos Linux
Comandos Linux
Comandos Linux
UT7:
Administracin y
aseguramiento de la
informacin
F.M.G
INTRODUCCIN A LA SHELL
La consola
No
entra
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)
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
Funciones de la Shell
No
entra
10
No
entra
Historial de comandos
Tecla de cursores ( )
Uso: Permite recuperar comandos ya ejecutados
Lnea de ordenes
Una orden acaba con la tecla INTRO.
Si no est completa, visualiza el signo >
hasta que esta sea completada.
12
Metacaracteres
\
?
*
[]
[!]
Ejemplo:
13
Agrupamiento de ordenes
Formas de introducir varias ordenes:
Ejecucin sucesiva e independiente de todas las ordenes
Orden1;orden2;orden3
14
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
20
No
entra
21
No
entra
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
25
Comprobar su valor
# $nombre_variable
Ejemplo:
# echo $nuevo
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)
32
33
Ejemplo
Como usar el comando ls
# man ls
Para salir teclear q
34
Ejemplo
Como usar el comando ls
# ls --help
# help ls
35
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 -
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)
40
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
50
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
52
Comando cal
Muestra un calendario en pantalla.
53
54
Ejemplo:
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
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
63
Redireccionamiento
de salida de error (1/2)
Se utiliza para notificar errores o avisos durante la
ejecucin. Redirecciona la stdout a stderror
Ejemplo:
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:
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
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
76
Comando ls
(1/3)
Opciones:
-a
Comando ls
(2/3)
Opciones:
-i
-R
-F
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
79
Comando mkdir
Crea un nuevo directorio
Sintaxis:
# mkdir [nombre directorio]
Ejemplo:
mkdir direct1
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
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 \
83
Comando rmdir
Elimina un directorio
Sintaxis:
# rmdir [nombre directorio]
Ejemplo:
rmdir direct1
84
-n
86
^D
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
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
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
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
-r
Ejemplo:
sort r 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
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:
Comando cp
(2/2)
Ejemplo:
copia archivo1 a archivo2
# cp archivo1 archivo2
copia archivo1 y archivo2 en el directorio direc1 de la ruta
especificada
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
Ejemplo:
Comando rm
Elimina archivos y estructuras completas de
directorios.
La operacin puede ser destructiva. No pide
confirmacin.
Sintaxis:
# rm [opciones] lista_archivos
Opciones:
# 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
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
gedit fichero
gedit /etc/mio.txt
nano
Sintaxis: nano fichero
Ejemplo: gedit /etc/mio.txt
vi
Sintaxis:
vi fichero
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
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
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:
Ejemplo:
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
126
Significado:
patron
^patron
-v
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
define el delimitador
Indica la columna a filtrar
Indica los caracteres a filtrar
129
130
131
132
133
134
135
Ejemplo:
# which firefox
136
Ejemplos:
# whereis mkdir
# apropos passwd
137
PERMISOS EN FICHEROS Y
DIRECTORIOS
138
Permisos
Para ver los permisos
# ls l
_
1
1
___
2
___
3
Tipo de archivo
d
l
archivo normal
directorio
enlace simblico
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
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
Grupos de usuarios
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
# 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
Bits
Valor
Descripcin
---
0+0+0
--x
0+0+00
- w-
0+21+0
- wx
0+21+20
r--
22+0+0
r-x
22+0+20
rw -
22+21+0
rwx
22+21+20
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
notacin octal
146
Valor
Descripcin
600
711
755
r r r--
400
777
640
148
Comando chgrp
Ejemplo:
# chgrp asir mayo
---------- _ fuencis fuencis ___ ___ ___ _____ mayo
---------- _ fuencis asir
___ ___ ___ _____ mayo
149
Comando chown
Ejemplo:
# chown raquel foto.png
# chown R root datos/
Tambin permite cambiar usuario y grupo de una sola vez por root
Ejemplo:
# chgrp fuencis:asir foto.png
# chgrp -R root. datos/
150
Ejercicios de compresin
2.
3.
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
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
(rw- r -w-)
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
Ejemplo:
=1
=2
=3
=4
=5
=6
=7
OJO a los
problemas de
seguridad y a
un uso
inadecuado
Reiniciar el sistema
# reboot y shutdown r tiempo [mensaje]
Salir consola o terminal
# exit
158
Compresin y descompresin de
archivos en linux
159
Opciones
c
v
f
x
t
Extraer el archivo
backup.tar en el
directorio actual.
Comando GZIF
Comprime un archivo
gzip archivo
Por ejemplo:
# gzip 9 backup.tar
Resultado:
backup.tar.gz
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
170
Comando cpio
Ejemplos:
# cpio iv < archivo.cpio
Sacar los archivos del paquete
171
Comando unrar
Permite desempaquetar y descomprimir los
archivos que desde Windows han sido
empaquetados y comprimidos con el
programa propietario rar.
172
173
174
# Repositorios
# Fuentes
# Mtodo FTP
# Mirror Oficial de Ubuntu
# Mirror Oficial de Deban
.
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
# apt-get update
Ejemplo:
# apt-get dsitupgrade
180
185
186
188
Comando apt-show
Lista de paquetes que pueden ser
actualizados.
Necesita instalar el paquete apt-showversions.
# apt-show-versions u
Ejemplo
189
190
Actualiza el sistema.
Instala las nuevas versiones de los paquetes
instados
# aptitude safe-upgrade
Ejemplo:
192
193
194
Aadir a
sources.list
Si
Encuentro
paquete en
repositorios
No
Buscar paquete
Cdigo
Fuente
Binario
195
Instalar el archivo
# ./[nombre binario].bin
196
197
Antes de comenzar:
Instalar instalar un metapaquete llamado buil-essential
# aptitude update
# aptitude install build-essential
Formato .rpm
Actualizar sistema
# apt-get update
Instalar alien
# apt-get install alien
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
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).
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
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
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
212
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
/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
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
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
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
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
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
244
Comprueba
comandos posibles
segn formato
aplicar en /sbin
246
Discos duros
Particiones
Unidades de disquetes
Unidades de CD-ROM
Etc .
248
/mnt/floppy
/tmp
/particion
251
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
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
253
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
fdisk l
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
257
258
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
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.
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
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
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
-r id-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
$ 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
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
$ 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
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
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
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]
cero
distinto cero
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
Determina la igualdad de
Determina la no
Ejemplo:
$ X=abc
$ [ $X = abc]
$ echo $?
0
$ X=abc
$ [ $X != abc]
$ echo $?
1
318
Ejemplo:
$ test f fichero
$ echo $?
0
$ test d fichero
$ echo $?
1
319
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
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:
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:
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:
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
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
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
$ 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
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
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
$ cat example_B
for FILE in *
do
if
test d FILE
then
ls F $FILE
fi
done
335
continue [n]
exit [n]
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