Вы находитесь на странице: 1из 386

h

UNIX Y LINUX
Gua prctica
3.' edicin

actualizada y revisada

UNIX Y LINUX
Gufa prctica
3.' edici6n
actualizada y revisada
Sebastihn Snchez Prieto
)scar Garcfa Poblacin
Profesores titularas de Ia
Escuela Politcnica
niversidad de Alcal {Madrid)

/t /l K JOAnacNIF llA /f c/ntf%

Indice general
Prlogo

P ARTE I: UNI X P AR A E L U S U A R I O
I ntroduccin a U N I X
1 .1.
Hi s t o r i a .
1.2.
A pa r i c in de Lirntx
1.3.
In ic i o d( una sesi<nI U~XIX
1.4.
Ej e c u c in de las rdenes . . . . .
1..>.
A l g < lnas rdenes para cotnenzar
1.6.
Ej e r ( i c i os

33

10
11
24

El sistema de archivos
2 .1.
t. " o n<.cpt<> <le archivo y de sistenta de archivos . .
2.2.
A lgu n o s dlrectorlos Intcresallt('s
2.3.
Nom l >rcs de ar(hivos y directorios
2.3.1. Convenios en los no)ubres de los archivos
2 .4.
Kl an i p u lacin de archivos y directorios . . . . , . . . . . .
2.0.1.
! , C n<o po(krnos controlar la salida del tern>inal".
U so <le archivos: pern)isos . . . , . . . . . . . . . . , .
2.6
Las utilidades mt,ools
2.7
Ejerciios

27

El editor de t e xto vi ( v i s u a l )
3.1.
Q u e s un c(litor
.2.
/ C nlo poden)os cd>tar conv1 .
3.3.
E st r u c t.ura de las rdenes de vi
3.4. r(ienes ntscomunes d( vi
3,o.
W k > v lnllentos del ('ursor
3.6.
Can ) b ios de ventana
3.7.
,C m o salimos dc vi" . .
3.t(.
O pci o nes de! editor
3.0.
Op cl a ( loncs con palal)l as
3.10, r d e nes n>s in)portant(rs < n m<>do
ex

61
61
62

27
30
31
32
32
30
46
62
69

63
64
65

66
GG
67
GH
(i9

vn i

RA-MA

ND I C E GENERAL

3.11.

3.12.
3.13.
3.14.
3.15.

B squeda de patrones . . . . . . . .
M arcas de posicin . . . . . . . . , .

70
70

Mover bloques

?l

Recuperacin de s,rchivos
La calculadora bc
3.15.1. I d entificadores
3.15.2. F o rmatos de entrada-salida
3.15.3. P a labras clave , . . . . . . .
3.15.4. F u nciones
Ejercicios

?1

72
73
?3
?4
75
79

4 . E l i ntrprete de rdenes
4.1.
Introduccin
4.2.
Historia de los intrpretes de rdenes
4.4,
4.6.

4.8.
4,9.
4.10.
4. l l,

4.12.

4.13
4.14
4.15

Funciones del intrprete de rdenes


Modos de invocar una orden
Histrico de rdenes . . . . . . . . . . .
A rchivos de configuracin . . . , . . . ,
Las variables del shell
Ordenes relacionadas con el entorno
M etacaracteres . . . . . . . , . . . , . .
E ntrecomillado y caracteres especiales .
Sustitucin de rdenes y alias . . . . . .
Redireccin de entrada y sa3ida . . . , .
4.12.1. R edireccin de entrada . . . , .
4.12.2. R edireccin de salida . . . . . .
4.12.3. R edireccin de errores
Concepto de filtro

85

. . , . . . . . . . .
. . . . . . . . . . .

85
86
87
88

88
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
,
.

.
.
.
,
.
.

,
.
.
,
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
,

.
.
.
.

.
.
.
.

. , . . .

Tuberas (pipelines)

90
91

93
94

96
97
98

98
100
104

Programas y procesos
4.15.1. r d enes relacionadas con la ejecucin de procesos.

106
107

4.15,2. Control de trabajos. .

. . . . . . . . . . .

ll4

4 .15.3, D et eniendo y reiniciando trabajos . . . . .


Ejercicios . . . . . . . . . . . . . . . . . . . . .

ll6

5. E x p resiones regulares y filtros


5.1.

83
83

5.2.

Expresiones regulares
O tros filtros . . . . . , . . . . , . . . .
5 .2,1, L a o r d en t i n d

5.3.

El editor de flujo sed

5.4.

El lenguaje de procesamiento awk


5.4.1. P a t r o nes de awk
5.4.2.
Op e r a dores empleados en awk
5,4.3.
Ma t r i ces con awk , . . . . , .
5.4.4. V a r i a bles mantenidas porawk
5.4.5. S e n t encias de control de flujo

ll6
ll9
ll9
124
130
l33
137

l39
l40
142
l43
143

NDICE GENERAL

Qc RA-MA

5.5.
6.

5 .4.6. r d e nes de entrada-salida . . . . . .


5.4.7, F u n c i ones numricas
5.4.8.
F u n c i ones de tratamiento de cadenas
5.4,9.
E j e m p los de aplicacin .. . . , . . .
Ejercicios

P r o g r a m a cin del in t r p r ete de r d enes


Primer programa de shell
Paso de parmetros a un programa de shell
A lgunas variables especiales del shell . . . .
C onstrucciones del lenguaje , . . . , . . . .
6 .4.1. O p e r a dores aritmticos . . . . . . ,
6.4.2.
Op e r adores relacionales
6.4.3. O p e r a dores lgicos
6.4.4. Ev a l u aciones
Uso de funciones en programas de shell
S eales y orden tr a p
Ejemplos de aplicacin

Ejercicios . .

. . . . . . . . . . . , . . . . .

7. S e rvicios de red
7.1.
7.2.

7.6.

Introduccin
I dentificacin . . . . . . . . . . . . ,
Resolucin de nombres y direcciones
Conexin reinota .
E l navegador lynx .
Ejercicios

8 . E l s i st ema X W i n d o w
8.1.

8.5.

8.6.
8,7.
8.8.
8.9.

Conexin en red en el sistema X Wi ndow


Modelo cliente-servidor
!Qu implica esto para el usuario final?
Uso del sistema X K i n dow versin 11
A rranque y parada del sistema X K i n d o w ,
Alanipulacin de las ventanas . . . . . . . .
8.6.1.
L a v e n t ana ra z . . . . . . . . . . .
Clientes X K i n d ow
Manejador de ventanas
Opciones de inicio de los clientes X
8.9.1. Co l o res de primer y segundo plano
8.9,2, T i p o d e letra
8.9.3, Ta m a n o y posicin de la ventana .
8.9.4. A s p e cto inicial
8.9.5. E s p e cificacin del servidor X
8,9,6.
C o n f i guracin de recursos
8 .9.7, E l a r c h ivo de inicio xi n i . t r c . . . ,

IX

145
146

l47
l47
150
l53
153
154
156
157
160
161
162
163
175

177
179
l87
189
189
192
196
199

206
207
209
209
210
211

211
211
213
215
215

225
225
225
226
226

22?
227
228
229

N D I C E GENERAL

8.10

RA-MA

Gestores de ventanas
8,10.1. G estor Window Maker
8 .10.2. E l entorno xf ce . . .

230

232
233
233
234
236

8.10.3. El entorno KDE


8.10.4. El entor no GNOME
8.11

Ejercicios

P ARTE II: A D M I N I S T R A C I N DE I
9.

SISTEMA

I n t r o d u ccin a la a d m i n istracin

9.1.

Ci c l o de vida del sistema

9.2.

E l a d m i n i strador del sistema


9.2.1. R e s p onsabilidades del administrador

9.3.

S e g uridad . . . . . . . . . , . . .

10. Administracin de usuarios y grupos


10.1
E l archivo/etc/passwd.... . . .
10.2
El archivo/etc/group
10.3
10.4

10.5
10.6
10.7
ll .

Cmo anadir usuarios al sistema . . .


El sistema de contraseas Shadom
10,4.1. Formato del archivo / e t c / s h adow
10.4.2. U suarios y grupos de usuario
10.4.3. H erramientas para gestionar los usuarios y grupos
Permisos especiales sobre archivos
Supresin de usuarios o grupos . . . . . .
10.6.1. C omunicacin entre administrador y usuarios . . .

Ejercicios . .

. . . . . . . . . . . . . . . .

A d m i n i s t r acin del sistema de ar c hivos


l l. l
Caractersticas del sistema de archivos . . . . .
l 1.2
Almacenamiento de los archivos
l l .2.1. T i p o s de archivos . . . . . . . . . . .
l 1.3
Estructura del sistema de archivos de UNIX
l l.3.1. E l b l oque de arranque
l 1.3.2. E l s uperbloque
ll .3.3. L a l i sta de nodos ndice
l l .3.4. L o s bloques de datos . . . . . . . . . .
l 1.4
Paso de ruta de archivo a nmero de nodo-i . . .
l 1.5
rdenes para administrar el sistema de archivos
ll,5.1. Creacin de unsistema de archivos...
l 1.5.2. I n i ciacin de un nuevo dispositivo , . . .
l 1.5.3. C r eacin del sistema de archivos
ll.5.4. Montaje de unsistema de archivos
l 1.5.5. E l a rchivo f stab
ll.5.6. El archivo /etc/fstab en Linux

241
243
243

244
245
24?
251
251
252
253

255
255

257
25?
262
266
266
266

269
269
270
270
2?4
275
275

276
277

277
278
278
279
279
280
282
285

.gc RA-hIA

l 1.6.

l 1.7.

NDICE GENERAL

Sistemas de archivos en red Samba . . . . . . .


l 1.6.1. E v olucin histrica . . . . . . . . . , ,
l 1.6.2. Servicios proporcionados por Samba
l 1.6.3. C onfiguracin de Samba . . . . . . . .
ll .6.4. A u t e n t icacin de usuarios en Samba
l 1.6.5. 1%facros .
l 1.6.6. Seccin global
l1.6.7. Seccin hornea. Directorios de usuarios
l l .6.8. O p c i ones de red . . . , . . . . , . . . .
l 1.6.9. Servidores virtuales . . . . . . , . . . .
Ejercicios

12. Pa r ada y ar r a n q ue del s i stema U N I X


12.1. La secuencia de arranque de la RON
La secuencia de arranque del sistema operativo UNIX
12.3. Los campos de /etc/inittab.. . . . . . . . . . .
Acciones de init despus delarranque
12.5. E l archivo /et c / r c
12.6. P rocesos gett y . . . . . . . . . . . . . . . . . . . . . . . . .
12.7. A rranque en Linux . . . . . . . . . . , , . . . . . . . . . . .
12.8. El archivo /etc/inittab
12.9. I dentificadores PID y GI D
12.10. Parada del sistema UNI X . . . . . . . . . . . . . . . . . . .
12. 11. I ni t y l a gestin de energa . . . . . , . . . . , , , . . . . .
1 2.11,1. Ejemplo de implantacin de gestin de una SAI con
12.12, lledidas de seguridad en un sistema UVIX
12.13. O bservacin de los archivos control . . . . . . . . . . . . . .
Ejercicios

XI

288

288
289
290
294
295
297
298

298
300
302
303
303
304

. .
. . . .

305
307
307
308
309
310

313
. . . ,
. .
ini t
. .

314

315
315
316
317
318

1 3. A d m i n i stracin de la r e d
13.1. S u b r edes
13.2. M s c aras de red
13.3. E n c a m inamient o . . . . .
13.4. A d m i n i stracin de la red
13.5
Resolucin de nonllires
13.6
Ejercicios

319

14. A d m i n i stracin del sistema de i m p r esin


14.1
Sistema de impresin <iel UNIX de Berkeley .
14.2
Sistema de impresin de UNIX System V
14.3
rdenes del sistema de impresin . . . . . . .
14.4
A dicin de una impresora . . . . . . . . . . .
14.5
Ejercicios

329
329
334

15. M i scelnea
15.1. P r o c esos automticos

320
321
322
323
327
328

335
341
341
343

xrr

ND I C E GENERAL

15.2,

RA-MA

15.1.1. A r c hivos de configuracin


15.1.2. Formato de los archivos de configuracin .
R e a l izacin de copias de seguridad . . . , . .
15.2.1. r denes para realizar las copias de seguridad

15.3. Compresores
15.4. XD M (X Display Manager). .

. . . , . . . . . .

15.5,

A r r a n que de xdm , , . . . . . . .
15.5,1. C onfiguracin de xdm , . . . . . . . .
15.5.2. E l a r chivo Xresource s . .
. . . . . .
15.5.3. E l a r chivo Xsetup
15.5.4. E l a r chivo Xaccess . . . . . . . . , .
15.6. E l s i stema de registro de eventos de UNIX
15.6.1, C onfiguracin del sistema de registro ,
15.6.2, U t i l i dades . . . . . . . . . . . . . . .

15.6.3. Ejemplo de aplicacion


15.7.

E j e r c icios

. . . . ,
. . . . .
. . , , .
. . . .
, . . . .

343

344
349
349
353
356
357

357
358
360
360

360
361

363
363
365

PARTE I I I : A n e x os
Bibliografa

369

ndice alfabtico

375

Indice de figuras
1.2.
2.1.

2.2.

Esquema bsico de un sistema UNIX.


Ventana de inicio de sesin presentada por GNOME,,

8
10

Esquema del rbol tpico de directorios de UNIX.


Informacin relacionada con un archivo UNIX.
rdenes bsicas de vi..

4.1.

4.2.
4.3.

Diagrama de capas empleado en UNIX.


El shell crea un proceso hijo para ejecutar una orden.
Esquema de los tres archivos de entrada y salida estndar.

4.5.

Comunicacin entre dos procesos empleando una tubera.


Diagrama de estados bsico de un proceso.

5.1.

Esquema de funcionamiento de la orden tee.

8.1.

Clientes y servidores X en red,


Aspecto del sistema de ventanas X Window.

8.2.
8.3.

85
97
105
106

210

8.17.

Cliente xterm.
C liente xcal c .
Cliente xload.
Cliente xman. . . . . . . . . . . . . . . .
Pgina del manual de la llamada socket .
C liente xedi t .
C liente xf onts el .
Cliente xfd . . . . . . . . . . . . . . . . .
Cliente xmag. . . . . . , , . . . . . . . ,
Cliente bit map. . . . . . . . . . . . . . .
Cliente xeyes.
Servidor X con algunos clientes.

8.18.

Apariencia del gest,or de vent,anas %'indow Maker.

212
213
214
215
216
217
217
218
219
220
221
222
223
223
224
231
232

8,19.

E ntorno xfc e - 4 . . . , . . . . . , . . . . . . . . . .
A pariencia del entorno KDE. . . . . . . . . . . . . .

234

8.6.
8.7.
8.8.
8.9.
8.10.
S.ll.
8.12.
8.13.
8,14.

8.16.

8.20.

Ventana tpica. . . , . . . . . . . . . . . . . . . . .
Men de ventana.
Cliente xcloclr... . , . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . .
. . . . . .
. . . . . .

233

xrv

ND I C E DE FIGURAS

8.21.

A p a r i encia del entorno GNOME.

I l. l
l 1.2
l 1.3

I 1.8

E squema de una entrada de directorio, . . . . . . . . . . . . . .


Estructura del sistema de archivos de UNIX.
Punteros abloques de discos presentes en un n odo-i...... .
Correspondencia entre nmero de nodo-I y nombre de archivo.
Esquema de montaje de un sistema de archivos.
A specto del directorio compartido publ i c o . . . . . . , . . . , ,
A specto del directorio dr i v e r s en " M i s sitios de red" . . . . . .
Aspecto de los servidores virtuales en "Mis sitios de red".

1 3.1,
13.2.

D i v i s in de la direccin IP en direccin de red y direccin de ordenador. 3 2 1


E s t a b lecimiento de subredes a partir de una direccin IP . . . . . . . , . 3 21

l 3,3,

M scara de red.

l 1.4
l 1.5
l 1.6

I l.?

2?1

275
277
278
281

294
297
300

322

Prlogo
I

. XIX ( v < ll>i sl)<l ('II ll<oj)<'l t vo ('vos ('<)ll)lvi>zos sv

D' llxollt>111li px ll>('I J)los d<' los ll>loa

. < t<tit, Xu srgj(> < c>ii> i>ti pr<l>lito > Iii<r<i1. sf>x<) i s 1>i< r> (oli>o il>i j>n>x(c to p(r s<i il

<I< I(< it 'I lioirips<>l> v D<raiiis [3tcj>(. <jan tr ) >j);aj;>j>lll < ll los I . ; ll) ola t<>ros H< II. La i < le ;i
1s<a <jl' ll>sj)11(> sil ll)i( lila>< lit<)f ll(' ll> (I(' ( l(lxr llli c lltol l><)dv al><j>Ajo silllpl(' V. Ia lla V<x.

l>~l"II >I< jxa> '1 <'l d'.<RI I < >II(> <I(' Aj)j><'>i<'Io>>(v<. j,'<I }> ('ll<>, d<)1>ll orl Aj ll>>('Vo sisa <'ll>la<)j)rt>V(>

d(' l>i ( x>p a( icl(l de s<>port ;ai riaiilt j)1<>gral>i>a( i< >ii <), I<> < i iv < s Io iiiisxli< >, [>c riiiit ir (ja>< liiil >i( s('
<'ll ll l> ll l l a i >IO ll l a t ll lit (' Vial IOS j)l (Xgl llll>IL+ ('Hl frdoa ( ' ll l l l<'ll>o> la, l < lll> 1)l('Il r>j>l"t lll Ol> )al

I>a><'v<st('>x>)a lli ("aj>li<'i<J>id <l<' ti<'llipc> c'<iij);arti<l<). 1<> <il;ij >1>j)I('ai <lila' ('I I i< Ix>j>o tot;al
d<'I pn >('( sla(f< >r s(' rvp>lt(' ('lll l(' t od>Ls llLs clj)lic:,a( ioll<s < xl n><l;aj;>b o ('ll>al>1 ()s d(' t l<'lllpo,

rli('jor;llicl<> <'oxl <'llo l<>s ti<. >i>j)os d<. rvsj>ii< st;i. D <

v l < l a>clo. s(' j lc'cle texl('r ' > v;ari is

1>< rsol>s >ti t i d)as il l r i i s tiio t i< lrij>o. v d< silc <listjtos t e r i i i i ; i l(.s, :>j llarslilo <clvi> aclor.

I.atas <l<>s c ;ir)1( r[ti(as 1>i< i< r<i <jv (1 siIv>oli t v i cs< l l>v 1>< >i i A(o[<i<l a, t;ito < I>
<'lit( I>s ll>av l".it 'll (L< (< >ll>o <'1> l;al)ol"xtol >os d( di( ;ados Al <j(sai n)llo d (

s < >It aviar( . D< ad<

~1>s <>r~~(is li)ist;i I;i lu ti>;iii<la<j. L'IvjIX 1>a sIii<loii>jtt>id ii< r<><liji< >i< i(s. S< l< l>ar>
Id< lila<ll('Ijo l l ii<'vs l)os>l )ll>d> I<'.v t >ll<'s ('o>ll<) ( l soj)o> t (' [al ll dlf('1('lll ('a AI ([\lit ('<'I >ll>la IH

< l) i( id l d ir ) t ( r ( o i i v x i l i c r> r(<l. Ios vii t o r r i<)s d( v( >lt as o las < xt(si<)ii< s <l( ti( li)o
l'('A I.

f <)ll> V ll<'ll>s>l><II<al<>.IA <1('A j))~(A cl< 1(>s (r< <l<<s il< IXI X

j > i< l;i <I< d>sj><>ii(r <I<'

ll>l ('lltol'i) lid<'('ll)a<l<> pAI'll <l(L<)il'l ollal' j o [~r>al>l>as. A>>l>(f>>v l)%' ('11d a j XIX

t i v l i ( ' ll >al('ll>la

iii s < ap;>< I<la<l<'s. 1AI(s ('<<>A<t;ir <l< svrvi<l<>r d< Ar(liiv<>s. dv iriipr< si<li. << liotivias. d<
j >L>l;>. )V 1, c t(.)
tl> . .r vir l j ) l l l lif r> r>;a I i j l i ' < i >i. ( ' . <D-(' : I A I ll iu l t i i i i < li a.
> ll>(><1<' lis j)ir>ll os f>l('1 t ( s ('<ll I>ll>l sl('llo ll l ( o f r( " ( ( r i> ll <'llf<'Il<) II lv 1i('11<> l)AI'la j>n>
~~l lllilial' llf)ll<'<I('loll( s. D( 1 )I(l< ) ii (ist IL v('l ll ll ]l>s, ll>>1('ll>as('oll>[)>l>>>>L+<' ll> lt 11 l>('loa><'s s(' ll>>la
I III <'l <'s>ad< > j)<' <' <t (' slst <'ll l>i oj)('I lit Iv(>. '<1 ('lll I ( '

ll ) ir> ll iii I I<l() si>s pi o[31>Ls lid><j >t>l<'lo>1<'a

lli('jol As. ( < >ll) ( OI>s( (ll( I'1)l. f)<lv>I)s ( Il< ollt I l+l I)s i < ll 1('I l'l >I<aV 1siols V

<'Ioi><'s dvl l l l l s l l l o .

i > d i <j )ti>

I o l ' <'j('ll l p l o . . ) 1>1> 51><'I osvst('ll>s 1(> ('<11<'><'llaflA j) I(> slls ('<1<'ll>a<I<x><'s

<'ola <'I ll<l>j>rv d< S<>l)xi is. [I3%I i><>A [X.. I IV >riio 1 f l'-L X. < t < . I . <iiij>i( li, v d< llido la
lli vvol>l<'i d I llr(laxar(' dv l(>s ord( liad<)r(s j)('r<>tj(s. < xist< ii avrsic>ii. I< l ' V ' I X . p ara
V(' . <lv ll >s l >IAI('s (<)llvl ti 1('.<lijal' ll(jil(lls (lllv s<i cl< li j > rv d i st I ij>ii< i<>il, < c>Iii<> Lila>>x.

( jp< llB.) D v l r<."c BSD. El c;>so d< I.iii>lv riireve esp<"( ial >itc ii< l>. <l< I>i<l<> i I;i ;vpt ;i< i(i
cst t ( i i i <'r><lo v i l
r :a r i A>lf;e <jal xra t<>r)iaildo. I . i lax s>arg(> >tiio l ll i <l l s l i r r<>llo <lc
ll>ll I II<'A p('lola>a. I.ir>las 101"v>l
lda. cjiiivr> i ri lli
i<1>>Ii<l;i<1 voxit.rola 1 ><lo ( l ( )jgu (I ii<
i aclv ;il llac leo dv I . i i i>ix. n ' i l i z a oclo < stv tr l l >Ajo <lv fc>r>ii;i lljtra>st a. A(t alall>ivnt(..
t 'Nl < a >ar< a ngial r<c<[a 1>r 'j l>< Ot>'> O><irl.

xv r

ll N I X v L I N UX; Gl.'IA PRACTICA

RA-1>IA

Lirrx soporta pr(ticanrvntv crralqrrivr har(lware prcsvntv rr nnfr>adores persnal(> dis


positivos SCSI. tarjetas dv sor)ido. t..'D-HOI)1, nrultitud <l< tarjvt>rs grficas, ct<. Lir>x
irrcorpora adtrrrs infinidad de utili<lades y prngrarrras. onrn soporte para rv(f(s. Pntorrros
<le ver)t.,mas, c<npilador(s de difvrvrrtvs 1r)g<rajes. procvsador<es <le t<.xtos. rrranrralcs. etc,
Dvl>ido a csn, p<><l)r)os decir qrre Lirrux v rrrr'r h<rr)a opcirr para todas aquellas prsnas
q uc. dispnnivndn d urr ordvrra<lor pers<>nal, <leseall vrllhal cal'sv vrl ('l llllrlldo UN I X .
Corrro hemos indicado arrteriorrvrrtc. Lirrx se pue<lv <oseguir <l<. forma gratuita. A
<'ntir) rcirr sv dar) difvrr>ts direcciorres Intvrrrvt. pn las quv se p)r< dv adqrririr I.irrx va
FTP anni nro:

ftp://sunsite.rediris.es/pub/iix
ftp://ftp.dit.upm.es/linux
ftp://ftp.uniovi.es/pub/linux
ftp://ftp.sunet .se/pub/Linux
ftp://tsx-ii.mit.edu/pub/linux
!)i no disporrc <lv ;>ce< so a Interrret o ru> qicrv gastar su tiempo o <lir>(rn < n nbtenvrl<>
a travs de la rcd. tamhi p<><ir adquirirlo rr. u precio rn(dicn vrr establvirir)tos dvl
s< tnr n vr) nrrrltitud dv rvvistas qn ln iclrryen de forma gr>tuita al adq)ririr srr prnd)r( to.

D escripcin de l l i b r o
Este libro lra sido vscrito con el firr dv s<rvir dv referencia a aqrrvllas pvrsorras q<r<
desear) introducirse (n el manejo dp lns sistemas <>pvrativos UNIX y Linrrx. En l se nfr< cv
l<l)a vrsrIr svll('tila dv todas aqrrPl las rd('rlvs y lltllrdadPSquc lns alltol Ps cnllsldPI arr ll r 11('s.

Nn se va a hacer rrn repaso de todas las npciorr(s dv calla or'd( n (par a ello ten)nos Pl propio
nranrral err lrrva). sio q)r< snln se citarn aqrrell>rs qll(' SP rltrll('f'Il 11)s asidll'rlrlvrltP. Cnrl

('ll<> se preterrdv ofrec<: r r)r)a g)ra rt il y rrrarrvjal>l<' q)r< orivrrte al lector y q )rv lp haga
<nrprvndvr Ins coceptos bsicos dv vstv sistvra npvrativo.
El libro est estrctrrrado rr dos partes. La prin ra, ddi< ada a Pxpnrrer lns f))r>da
r)1PIltos v rdvvs de UNIX para el )rsuario, y Ia scgrufa, dedicada a int r<>dr)< irnos e la
administraci)rr d<>1 sistcnra. Existe rra anrplia bibliografa qu( trata cad;r una de las d(>s
partes por separado (en>)s)rltese 1> bibliografa in(l)<ida al final del libro). pero es dif< il
encorrtrar algrn libro que trate arf>ns aspectos <lv forma < onjrrta, < omn se l)ae vn este
texto, Asinrisro, se ha intvrrtadn evitar que vl lil>ro sv corrvirtivra en urr r))arotreto inra
nejahle. y l>ara < lln sv lra rpd< idn al mxinro s)r extensir). sin perjuicio dc qr los ternas
qrr <nmprvrr<le lrapan sido trata<lns con la profundidad suficiente. A grande r,rsgos, los
(nrrt< nidos <lel libro son 1<>s sigi( rrtvs:

Primera parte: U N I X

p a r a el usuario

In trndu< cin a UN IX
El sisterrra dv ar< hivos
El vdit(>r <le texto vi ( v i s rral)

PRLOGO

RA-ltA

x v ii

El i ntrprete de rdenes
Expresiones regulares y filtros
Programacin del intrprete de rdenes
Servicios de red
El sistema X-Windom

S egunda par te: A d m i n i s t r a c in del sistema U N I X


In tr oduccin a la administracin de sistemas UNIX
Ad m i nistracin de usuarios y grupos
a Administracin del sistema de archivos
Parada y arranque del sistema UNIX
Ad m i nistracin de la red
Ad m inistracin del sistema de impresin
Mi scelnea
Si el lector quiere profundizar en los conocimientos de este sistema operativo o desea crear
sus propias rdenes o aplicaciones, existe un libro publicado en esta misma editorial que le
servir de gran ayuda. Su autor es Francisco Manuel Mrquez Garca. y su ttulo, UNIX:
programacin avanzada (3" edicin).

N otas de la 3

e d i cin

El rasgo ms relevante de esta tercera edicin de UN IX y Ii n u x : G u a prctica es


la incorporacin de scar Garca poblacin como coautor del l i bro. scar ha venido
trabajando con entornos UNIX y Linux <lesde hace ms de una dcada. Durante ese tiempo
ha realizado tareas de administracin y mantenimiento de servidores de correo electrnico.
servidores web, servidores de archivos, cortafuegos, etc. Parte de su experiencia acumulada
aparece refiejada en esta nueva,edicin, con ello hemos abarcado nuevos tenues que son
habitualmente solicitados en distintos entornos de trabajo.

Erratas
En el proceso de gestacin del libro hemos intentado evitar que aparezcan errores,
pero probablemente. como ocurre en cualquier obra humana. los habr. As pues, si usted
romo lector encuentra alguno o bien propone alguna sugerencia o mejora, no dude en
dirigirse al autor a la siguiente direccin:

xviii

UNI X y L I N U X: GUA PRCTICA

R.A-MA

Deparfailiellto de Automtica,
Escuela Politcnica.
Canipus Universitario, Ctra. ) Iadrid-Barcelona, Km. 33,600.

28871 Alcal de Henares (hladrid).


Tambin es posible dirigirse a los autores a travs de la siguientes direcciones de correo
electrnico:
ssp@aut.uah.es
o scarlfiaut.u ah . e s

Herramientas empleadas
Este libro ha sido escrito utilizando L@X y L~~ c o m o herramientas de edicin, aspell
como corrector ortogrfico, xf ig como herramienta para producir los grficos vectoriales.
gimp para retocar imgeiies y cvs como herrainienta de coiitrol de versiones. El slstpnla
operativo emplearlo ha sido Linux con el ncleo 2.6.7. Todas las herramientas empleadas
son de libre distribucin, por ello quiero agradecer a t odos los grupos de trabajo los
esfuerzos realizados para lograr unos programas de una calidad tan alta. que son accesibles
sin restricciones, para todo el mundo.

Agradecimientos
Cuando un libro alcanza una tercera edicin son muchas las personas a las que hay
que agradecer su ayuda y apoyo. En primer lugar citaremos a uuestros revisores particu
lares,a nadie le gusta que le encuentren sus defectos, pero en este caso estamos ms que
agradecidos por ello a scar Lpez Gtnez y a Aitor Viana Snchez por su paciencia, y por
el tiempo que les hemos robado. Tambin queremos mostrar nuestro ms sincero agra;
decimiento a todas aquellas personas que participaron con sus sugerencias y nimos en

previas ediciones y queremos agradecer explcitamente a nuestros lectores, porque gracias


a, ellos. este libro va por su tercera edicin.
Alcal de Henares. Junio de 2004.
Sebastin Snchez Prieto.
Oscar Garca Poblacin,

UNIX para el usuario


Introduccin a UNIX
El sistema de archivos
El editor de texto vi(visual)
El intrprete de rdenes
Expresiones regulares y filtros
Programacin del intrprete de rdenes
Servicios de red
El sistema X Window

Captulo 1

I ntr o d u c c i n a U N I X
1 .1.

H i s t oria

Los antecc<lerxtes <le L NIX sc remontar> a 1<)t>4. Fn este <xo. B<ll 'leleptrorr( Lubornto
ries <lr AT&T. Ge neral Flert17cC/om/>onlr/ y el KIIT (Irxstituto Tecno]gi<o de Xlassachu

s<tts) se plarxtcarurx dcsarrull;xr xx nuevo sistcrxr;x op<rativo en ticrrrpo compartirlo para


xx<x;x ma<1ir)a GV f45 (de Gene>ui Eleetri() al <Ix<e dnxorxxinarorx !<IULTICS. Los objeti
vos lxx'xxcadus xi>i< ialrrxente corxslstan elx proporcionar a xllx corljurxto arrxpliu dc usuarios
)rrxa capacidad <le <omlrtacirx grarxd<' y l x posibilidad dc. alnxacenar y corrxpartir grarrdes
('arxtidades de datos si stos lo dcse;xban. Todos esos objetivos eran demasiado ambiciosos
para l;x p<><.a, sobre tudu pur las linxita< i<>nes <lel Irard)vare. Con)o < onscnxencia de ello,
1<> trabajos nx el nuevo sistema operativo il>an nxuy retrxxsa<h>s. Dcl>ido a esu, Bell Lobo
r<rtories decidi <lar por terminada s participa< irx en el pro) < cto, A pesar del fra< aso de
.'XIULTICS, las ideas < rrxplea<las para su diserro no cayerorx erx el olvido, sino <luc irxH<xyerorr
rxru< ho eu (1 des'u rollo de UNIX y d< ulrus sistnuas <)perativus posteriores.
ii<n Tlxurrxpsun, x)no <le los rrrinnbros del Gornprrting Science Rese<rr<!l Center de los
Labor<rtorios Belt nr corxtr un compxxtadur DEC (Di git<xl Eqwptnent Corporotion) PDP-(
irx< t ivo y se puso a dcsarr <)ll;<r <:n l xrn juego derrominado Sl>uce 7rur eL El desarrollo <le
esc juego propici quc T l xoxxlpsoll ad(11111'lcsexx)xx<'l)os (' orlo('xx)x>el)tus relaciurxados (urx la
rxx <luina cn la <Iue, estaba trabajando. Corx objeto d< crear urx erxtorrru de trabajo agra
<lablc, Thurrxpson. al <ue postcriornxnrr< sc le uni Derxrxis Rit< lxic, sc prupxrso la < rea< i>xr
dc xxu n<x<'vo sistnna <>perativu. (l <txxe dcnurnirr UNIX. Ritclxie lxrxba trabajado 'uxtcriur
rrrerxte en (.'l proyc<'to l(IULI'ICS, de xxxxrclx x inHucncia en el rxuevu sisterrxa up< rativo. Como
ej<.r))plus de esa irxHucncia pudexrxus citar la urgarxizacirr basica del sisterxxa d< ;(r< lxivos,
l(l idea <lel irrtrprcte dc r<lerx('s (shell' ) < un)o pro<(.so cle usxrariu (crx sistcrn xs xrxteri<nes,
<.'l ir)t<'rprcte dc <rdnxes furrrxaE)a parte del propio rxxrleo del sistex r>;x op< r'xl i < o) . c in( luso
('I propio xxorrxbr( IJNIX deriv(x <le 1<IULTICS.

MU L T I C S

'' ) fultiptezed
Infor>n<(ti on un<t Cor>rputxn(/ S< mi< e.

'A lo l argo del texto rxrilizarerx)os <l rrxnino shcll a l a h ora de xxf<rirnos al ir)rrprete <le
nln)es d<' UNIX. Hen)os ot)<a<lo por no <'mplear la r radxrcci<n <1<' cot)cha o <'al)araz<n por<roe pxl
la nxayora dc los textos aparece el trrnixxo origirxal.

C ' A l ' TI ' I . O I . l l v ' l'H()DI'CC;IU A l'IvIX

UN I C S

HA-XIA

l' 7> 7/)lev(/ Info ) 77>tic)n an/ Cc)77>t)>t)77!/ Se)'7(rn

Ib aliente, <'l t<(r>ii L NIC'S s < ii>pl <) pur 18 siriiilii l <lv vst i p>ilhl"> col> l'i, p<>llhl a
ir>gl sa rr>7>r.< i I<> < >>al s< vva 8 ii i < Ii< ><I>iv vst( r > ii(v<) sist<.lli'i upc> 8>ivi) pra, >ll>

Ii l l. LTICS ("ipacl< ). Pst <riuri( i>t('. l IN ICS di lugar I iiii>brin J Iii>i t iv) UN IX. El iii>( vo
sistvr;i t8>iihi<' s< viu ir>H<'(i ulu p<)r otros sistei>ias operativos. t ii< s c)r<> <1 C"l'SS
(C"n)nl>ut//)lc Ti)n(- St>c>rir>!/ S/sti n)) <I<'I <lll y ( ' I s istei8 XDS -!/4()(Xernr D a ta Systc >n)
<le I;i Irnivvrsi<kad <1c Califurni;i c ii Pc rkvl(y.

A(lu ' s t a p r i n i( ra vvrsi<>n <lv UNIX p r o u i et i )ii<l><). s>i put< ncial riu pi>cl el<'
ii)strarsv 1>>lsta (Ii><' sP iltiliz v u p r )y(( t<> rv>il. As p i i vs. >iiic 1>>las s(' piar>(aball Ias
p ru< h;is para pat<aitar vl ii( vu product<>, st( fin t r a s liulaclu ;i u coii ip ut ador P D P - 1 1
le Digit>il vr> ii>ia s< giiii<1;i v<'rsi>i. Eii 1973 ol sistvrii(i operativo fiiv rvesc.rito ri lc rigi>aje
C' (*ri sii ii>ayr part( . C < s i>ii iv>>g>raje dv alto i ) vl (Ias v( rsi<)>>es mtvriores cl(1 sistvlli'l

ul>< r;it ivo liahai> si<l(> vsc'riti>s vl> ellsiillihla< lur). Iu <Iue> ()pic i< >(lu(' Pl sistc >ira t) i r >ll>8
gr;i iceptacic>n pur parte d lus iii>< vos >rsuarios. Fl can>ero dv iiistal;icic)iies eai B(ll L<7
6())at)7>,s< rv< i li>ista '2:). apiuxii i i>ulanivnte. y s i>su tamhiii sc difur>di gradiialiiivaitv

8 r>i>'Ls (';>t Ls uiiiv('rsi<la<l('s < uii propsitos c d>reacio>!>ll(s.


I.a priiner;i vvrsiii de UVI X d i sponible fiivra cle Bell Lrt)ciratories fii< I;i 'c'vrsi< Ik < ii
I >u>o l(17(). L 137?l svc listribuy<i la '>< rsiri . elv fuv ;ul ipt rda a c)tros PDP-ll y a i i i i a
iii>eva lii< a clv ordenadrvs dv DEC d v on>ir>ada 1)'AX. La v( rsic)ri par i '>'AX s<' cui>ca
< on>o 32> .
Tr;Ls la clistrihii< i<n d<' 18 'c'ersir> 7. UNIX s' 'nnvir ti pli Uil pr (l>ietu y ilu slo ('Il
uii;i 1>vrra>i>vr>ta <1< irivvstig>ui<>ri o vclucaciur l, debido (1>ip (.I I' l<'IX Supl)ata G)c)p
(USCi) >Lsi>n>i l;i rosp<>s>il>ilid>ul y < l <o>itrl ad i i i i istr at ivu <l<l Re s(i>77/> C/7<)(y.'ii I;i

<listribiici(>i> <I< UNIX dctru dv A'l'h, T.


En (I p ( r i ud o ( u n>pro>>did (r>tro 1377 )

l d ) 12, Bell I >t)ora/c)7>escuuihin) virios sis


temas l.'N IX . d v l a l ' ( r s i 7 y <lv I ,'32c'. <l;iiidu Ii>g>ll a i>ll >ll>l('u sstel>la el>yo i>ulllhl'p

('11>erclal fiie I/N IX Systvr III. sta fi>v la priri>era dist rihcin extvn> dc sd( US(.".
I.a riiudiilaricl ><l. 1;i s< r>< illez <lv (lis<"u y vl pv(1<'i>u ta>ua>)u de UVIX . 1>ic ieror> <Iuv
iii<Ii>Ls entidad<~c, tales como ll a nd , v arias iiivvrsi<ladvs v i<.luso DEC', se piisivr;i a
tr;ihajar sobre l. La l ' n i v rsi<lad d< Bvrk ley < n C'aliforiii>i desarr<>ll< u;i variaritv dvl
sistema UiVIX para r(lir>>Ls >)'AX. Esta v iriaiite in(urpraha varias c;ira< t< rstic>Ls inte
r('sal>tes. t>il('s ('u>no ii>e>i>ui'ia virtual. pagiuacii) por J v l ll>11> Ja y sllstit iu. i<)n clv pginas,

( on l<> < ii;il sc' pvrri>ira l>i j(c(iii de prugra>as ri>ayor<s cl>ip l;i ni< rriuria fsica. A ( s t ; i

variante. Jvs >rrollad i pur Bill , loy y Ozalp Bahaoglu. se l;i ( on<>c i cuiii(>,'IBSD (Bc 7/ vier/
Softaa)' Dixt<i 1)utzo)>s). 'Tuclc) < 1 t rah i j<> <lvsarr<)liado pur I>< Uiiiversiclacl dv B(rkelvy para
cri ar BSD i ii>puls a la Dc fe nse .4d>'>7>red Researet> Progets .4(te)c/(DATIPA) a f i>>
ciar ;i Bvrkvley vii c l dvsar.roll > dc un si. t iria UNIX vstn<lar Je iiso fi('al (4BSD). Los
t rahajns en 1BSI) para DAIIPA fiierii dirigidos pur (xpvrtus ( re<les y 1>NIX. DATIPA
Irit r>iet (TCP/ I P ) . E, tv suport< s(. facilit clv iin iiu)clo ger>eral. En .4.2BSD vs psihle l;i
< in>iiiica(i)iii>ifo>>< ('iitrc I <listintus dispositivos dv la re<l, ir>< liiyeridc) redes loc ii< s
I, l,) <N), culllu Ft t >/77)et y I )/ e)> Rirry. y (x t ( iisas redes J(' r(l(i i a drvs (%VA V). ( umo la
A rp>iiivt d( D A H P A ,
I os sist<'r>>as I!XIX '>ctiial<'s >io s< >v<liiceii r la l ' v r si< 71, Syst( ii> l' u B SD . sii>o (l>iv

18 ill>>yol'a dp los fabrican>c s <leii< ru y ri>i>iior<lvna<lurvs ofr<'c( sii T VIX p a r t icul(ir.


As. Sii !<Ticrosyst('>s ls )frvce p;ir;i sus urclvi>8(l<>rv y lu <ler><>rin i Solaris. Hc wlet

<. )(A-tslA

1 .2. AI'ARIA'I!s DF. LINUX

Pa< kar<l lo co>er< iliza con el on>hre <le Hl'-I. X. ll3s I 1<) in>plat en sus vqi)vos BISC
<3>)()0 y lo <leo>ia AIX. etc'. ('n el gra incrvm(t<> rn prcst >cios <l< los ord<n>a<lores
p< rs<>>(les, tathi('n 1>an aparc< d<v versioes para ellos. Dentro de estasesas versiones
<>al!e dest>zcar a(lu(<llas dv <listrihu( i!n lil >re, o><>pe<le s< r Fr(13SI). Opef3SD <) el
pro))i<) Li>>x. <)htive , c ito rendi>i< nt<) <lv los pro sudores <le la Ian>ilia 80xt3(i <l
Intvl (del 3f)373f3 ('. adelat<').

1 .2.

A pa r i c i n d e L i n u x

Liux es u sistv> <)pvrativ<) <le clistrihci(n lil>re <l<!sarrolla<lo inir ial><te por Lis
Tors'alds <n> la I 'nis'ersidad <le HLsiki (Filadi). I.'na (.o>nuni<lad d( progran>adores
< xl>ertos en U!s IX. 1>an as Ud<l<> e <1 desarrollo. distrihu< i y dvpra< i rlcv est<. sistc>a
>p< rat ivo. El n>c leo <lc' Linxo cotin( cndig<) <l<.sarrulla<1<> por ATA;T i p<!r nigana
(it> >utc propic taria. La n>yor>l<!l softssare clispunil>le e Liux ha sido <lesa>r<>liado
l)<)r l proyecto GVI.' <le I) F>ce Soft>(vare Foundufvon <l C>hri<lg (l(lass u l>s( tts). Si
<'ll)'>Igo. vs >< ala la, con>U ida<l d<' progra>dur(s l <lu<' 1>a ( otrihi(lo I <lvsarrollu d
apli<.cio< s par;> este sist(>a up( r;>tis'n.
f."o I > apari< ic)n dv <)r<l<aclorcs pvrson>>les pott<s aparvc( I,inux, Ii< ialn>(tv sc.
trt sl<) clv. u rl< srrollo II< y ><lo a <aho por Lis Tory><l<l l><>r pura disc rsi<. I.ix
sc ispir .<Iiix. u I)'. IuI>o sist<>a Uls IX clvsarrolladu por Adr)s S. 'l'anh u>m,
<l(' 1>(( l><). <1 grl)<) <l<' noticias co>p. os . >inix. Lus p r i>c r<)s )>ntari<!s < este g> upo

t<an <Iue vvr ) (l< l< sarrollo <1< sist<>a <>pvrativo aa<le>io Ilu( fI><e >I>
s (u>plet<)
!sliix,
L<)s primeros dsr.rollos <l< I.inux t < a <lue y< r ) la < u>tri <l< tr<;>s (.'
<.1>icropro(slo> 7(() 33f) < jvvutado v n>orlo protegi<lo. tu<l<) ll<> (s(rito e leg >j
<sa>hlador. En cstc pt<). Lius )>etal)a:
"Dr)s/77(r'.,s de estr> la vos<v eva sencilla: toduv>a era covnplirrzdrr pro</rr>77<v'. pero
dispona rle <iev fos rlisposit>os 7/ l depurar ir)7 rrsultaf>r> rn<s fril. En e s te
punto covnenr a <.77<plrc>v trn!/>caj <. C v/ rstr> rclr 7< ev> rpnn 777<<lrl<7 rl drsa
nolto. Est(7 .supu~o t<7>nc<r en,sevir> vnis id< as 77>r!/<>lo>r><77>vacas r o>> intr neion
de dr,sanv)ll<v> 'un h177<ir 777<jr>7 <tue h1ivrir.. Drssrrcu,srv rat)ru rlc re<ompilar
!/cc t!ajr> Lir>r<.7. <Il!/vv> rla...."
"Fl desarrollo rsicrr,supuso r!os mes(:,srle frr>t)jo, rtrst)r>7>7<7
rl< uv>rlri>'r> r/r
rli sro (r or>. n>ur/7<)s evrovvss, pr rr) en. 7777 777<rfuir>r>
f<77>rir>77<>t)rr j 7/ uv> /)e<t<<c'77<7
.sistrnra rle r<r</777)os. En r et e /7777<to es <uanrlo drs<crvv>li la. uersion 0 . / // ( < 7
finales dc' r>!/r>sfr) rle /! /!//)7 no e s t a n <o>cfr v>frr, vcr! rlrsf>r>7><7 dc <t>ve!ev /)rz>r>
rli sr/7>efr 7/ rrr! podva. />rc(er muchas >sus tr><turbia. Cero r/r>r' narli r r orrrpilr n<!ar rv
esta >ievssiv>. P(7v> rs!st<>t><Lrsar/r>v><hado r/ 77<! <turrvr> p<c>ar /w>sfa drslrnrr 777>r pr)7

rorrrplc lo rlr hf>7>i vs "


IS <)se II('s' a ('.R>l>u n>g> aU('>o <l(. l;> s vrsi<> t ).()I dc' Liux, l'or s n>ism;<. vst.;> s< rsi
slo 1)udz < c)>pil use s' j<vtrsc' ( U<lun'c <lu(' tve ie (va> gad<> s liix,
El 5 <lv <)< tuhre <lc' I!)01 Lius dio c<)o..'r la prin>vra s('rsi -ofic i >I" d( I >x.
sta fue la sersin tl.() >. F este put<> Liux poda je<>tar el itrprete rl< rclees
bash (Br)7(77>e .1!/<ziv> 8/>(ll rl G'.U) y g c c ( < .I (<)>pilaclurC de G N U ) I ) er<)o >el)

6 C A I ' I T t .:LO l .

I N T R O DI! l'Cl) ci A Utc) IX

< RA-MA

ti)ca. Svgita si< ri<ln una versiti ut i l izixble sola)r)vi)te por lt a ct ers y r a ) p or p < rsoiial " r i<>

cu tlifictxdo".
Lins escribi eit cottrp. os.mirxix :

"I',.4rtr>ras rtuellos tiempos rort hlirtiz'-t.l c u nnrlo lo homtrs eran hn>


)r s y escrihtan sus prot>zos driurrs cle rlispositit r>I /Vr> tienrs uir>ytrt proyecto
y desrcts l>i<n>le el dzentc n rtn szsterna opr rntiuo pura ndaptnrln a tus nrce
.sirtndrsI I Te f r-ustrxzs r ando todo furtcinna ayr> hlirti rY qlV(> <t(ti(r(s perrlcrr
t>tra rtochr'.s t>r>rtiettdo r'rt rttnrr Iza. un ayr'.stoso prr>(trnnta? Entonces p>te<t( rtue
r.str rttertsaje sen t>a>u ti..

"Como ya rnmertt hrrce un mes. estoy desurtr>liar>dr> unu t>c'rsin. de li


hrx rlzstnt>tzcirt de ttn,sistemrt sin<ilar a. hfirtzz par ordenrzdores 88'-.IT.. QI
Jin he al<un."rxdo un rstdo, c r<el ctzte el sistc.'rna incluso puede sr..r utttr=-ado
(rlependiendo dr: lo rlae desees), y dejar todos los programas fuente dc libre
distrihucion. Fs solrxmcrrte lri t!ersh>n 0.02... yrro l<e consertz<irlc> ej eczrtar r:nn
isito ush, rtuc. rtrxz<-malee, ynu-serl. comprx'ss, rte. bajo l."
Despiis <le lzt vvrsi<)rt 0.0:1. Lirius pc)s a lanzar la, vcrsi<ii 0.10. vn (ate piiiito fii< cuartel<>
;iiiriicrit corisiderablexxxentv c 1 m)vro de persorltis (llxc se aplr lit o tll (lesarrollo d< l sist etiia.
Dc.'spti rlv varias versiories iutvrni<'di ts, Liniis inc retiiviit el rtttrtvro v pas <lit(<.ttttnettt<.
;t lti versic>ii ().!),> para r<.fl(jat sus d(.s(.os dc <lue pr<>rito p isara a ser tin t vvrsi()ti "nfi< ial"
(gcrt(rahri(nt ( a l s o f t w are slo s(' le asigrtx (<>iiin nritvtn cle v (r s i ri la 1 . 0 r i t ; irido s(.
stipotl( (irte ('st)1 ('Il sil il lazvol a libre de er r or<'s). Esto n('urri ( t r i a rzo d ( 1 9 02. Ur i >t(i

) n)e<ii<> despt ts, a f)t)al( cl l i c ivi) il>re de 1993, ( l tiivlcn /'crrt r'l )d(. Lirtux estaba <'11 la
vr rsin ().(j!).pl l-L ctpi<)xiilltiridose asiiltfi ( a l l l e t ite a 1 . ().

A< t ualrtteitte Liuiix ( s uii UYIX < ii toda regla, cuipatiblc POSIX, <.apaz <l< ( je( ttt ><r X
D'in<iow. TCP/ IP, Extra<.s. Lll)CP. correo elc.'( trrii(<>, servicios dc<>ticias, vtc. I.:i ttiavora
(le los pac) ti< t<.s soft w((t e de l ibredistri bu( i(n han sido pc)r t a(los a Li llux y ("lda vez sii l lic'
las aplic;icion(s coxx)ercial<)s disponibles. A( tiialmer)te Lix sc)porta casi tn(lo el liardwrll(
(.'Xist el)te <'Il el ('ittnl llo PC v lia sidc > port ado ( oii x it o a ot ras pla1afort tras como Powet l'C

<le ll3AI. SPARC dc S<i )<li< rosystertxs o leal tciiit<)sli. SU rnl>iist vz y < l li' ho <lv scr grcituito
lia propic iado c)ii< Linitx lo <.triplee <otno herrarrtic ttta de dc.sarrnllo <lvsde eticlades de
iiivestigar iti (ottti> la NASA. hasta Dr<'ar)t >Vorks, Pixar o lrt<liistrial Liglxt ar)d Alagic. En
el carpo d( los svrvi<lc>rvs, Liiix t i erie ett l<t actiitiliclad segrrt IDC ) i i i i c rvc.iriiiviito <lc
ar> v aire> d(l 63,1'/c. E eii vl c<urip<> ch las aplicavic>ri(s dv sohrcmes;t <loiidc lv <luvcl;i
tiras c unirio p<>r rc cnrrvr. C<>ri la i t ro<lu(< irt rlv vi i t n r ii<>s intcgr los t i p<> tlN ( ) l<IE <>
KDE vs dv supotu r ctttv t<'ir<Ira taixil>in tiri vrvvitietitn < laro. A L i t )t)x toclava lc <l>te<l;i
iii< lin cariiio po r a i i clar v es < l ustiario fi na l c 1 ()(t< ti< )te lct lt illl)1 1>al>ibl a ;i l>i li(>r a dc
<l(( iclir s ft.tilo.

R azones del xit o d e U N I X


Las razones clvl xito dv l ' N I X

l ) av (ltu b scarl ts ( ti la i<ira <le sit disvf>. Las c;ira<

t ('rlst reas txx>.i i elvv i ll t es d('I slst('tila snll :


"E) tcru>iuc> ck>r de heu>os entenderlo ei> su s<ticio estric to: gur c> experto en c I tc >na. Much;
rcc.es este trn>iuo sc plica err<Sean>ente s acruellas p<rsc>i>as q>ie oi>c.ran cccn "no <leu>as)<u/a~ hueiias
u>te>u ic>nes" en sisteiuas inform t i cos. El tc'rmino c<>rrecto para este t ipo de t>arsc>najes es el cl c cnckcrs

(si<uprc c n terminologa anglosajona).

gc RA-MA

1 .2. APARICIN DE LINUX

1.'NIX 1>a sido diseado con><) un sistema niultiusuario en tiempo compartido: es


decir, un sistema eu el qi>e pucdvn trahajar varios usuarios simlteamente com
l)artiendo el procesador y todos los dems rvcursos dvl sistema. Cada usuario pii< (iv
ej< cutar varios procesos (programas vii ejeccin) a la vez.
El sistc.m>i op< rativo est escrito en uri lenguaje delto nivel (lenguaje C), lo cual
hace que sea fcil de leer, enteridcr, modificar y t r ansportar a otras m>qinas ron
una arquitectura coinpletamente diferent<..
La i n t v rfaz cle usuario (slu.ll) <s sencilla y p oterite. y pued ser reemplazada por
otra en ciialquier iiioment<> si se desea.
Proporciona primitivas que prniiten (unstrir grandes prograruas a partir de otros
is svncill<)s.
El sistema de ar<l>ivos tieiiv. iia estructura de rh<>l ii>vertido de rniltiplvs niveles
que 1>vrniite uii fcil inateniniivnto.
Toclos los archi(os dv usuario soii simpl<rs secucii< ias de l)ytvs (H hits), rio tic>ivn
r>ingin forn>ato prc dvt('rniinado.
Los arcliivos <lv disc(i y los dispositivos de < ntrada y salid;i (EiS) se trtan de la
misma m>nvra. Ls pvculiarida<fvs de los dispositivos se mantienen en el ni>cleo
(ke>mcl). Esto quiere clv<.ir quv impresoras, discos, tvrriiinalvs, vtc., <les<le vl piito
de vista del usurio. sv tr <tan < ()>no si fues( ri >irchivos n()ru>al(s.

La r q u i t '.t>ira dc' laquiii;> vs cornpletamvntv transparvi)tv para('I >isi>'irio, lo qi>e


p<rmit( qu<' h>s prog" lnas s('al> f>cilvs d< (s< ril)ir y transl)<>rtahlvs a otra u>cliii>i >s
con hard>vuv <lifvrvutc.

UN IX n o i n c orpor;> disvf>os s<>fisti(>idos; de hecho, li>iri sido svlec<.ior>ados por su


sencillvz y n<> p<>r su rapi<l( z <> coi>q)lejida<l.
UN IX ha sid<) <lesarroll>ido por y para progr;imadorvs, p<)r lo tanto sien>pr<. )i sido
intvra<tivo. y las li< rrari>i< nts para vl desarrollo dv programas han tvnido siempr<.

>iii>cha importancia.

Dv sdv uri 1)riucipi<>. 1<>s 1)rograir>s fiivntv cstiivivrcu> a <lisposi< i<>n d<'l usi>ario, fa

< ilitan<lo vn gran niv<li<la el <l(s< ul>r.iini< iito y vliiiiinaciri clv <lvti<.ivn< ias, as con>o
uevas posihilidades vn su realizacion.

Todas vstas caractersticas hau hecho dc UNIX u sistcnia operativo a imitar. aceptaclo
pol con>pleto tar>to ('Ii vl >l>l>1><l<)('.>llpresar>al como en aulhivr>tes pcll>cacloi>alpsi.

E squema de un si st ema U N I X
I.a coiifiguracic)n hsica (lv un sistema UNIX, (le equipos sv rvfierv. vs la riiostrada vr>
Ia figiu '1 1. 1, A gran<l(>s " sgos, pode>>los distinguir las siguivnt( s partvs:

8 C A P I T ULO t ,

I N T R ODU('<."1()NA l'NIX

B>><-f<tA

Figura I. I: Es<fue1 l l>lsi<o <le un sist(nla UI IX.

Unidad d e p r o c eso. I. a u n i<l>l lv pro('so Ps cl v< r<l<oler(> c<)raz<)n clvl sistvnla, pucst(>
cine en <.lla sv ejvcuta t<>(los l<>s pr<>gran)as, tat<> l<>s <le los usuarios cc)lo 1<)s <1vl
propio sistenla. I:l t r miu<> uni<la<l <le pro<'.pso clebcln<>s etendc.'l'10 ('n u s('t.ido
arplio: vs dec ir, al II l>llu lv <'1<)<>s referirnos lrlicamvte al proccsa<lor. sio
ctP clet>(.'los Puglol >ar' <let ro cle ('l el(.nut<)s tales (:olrlo l'l memoria. Ia n id;Id <le
nlacj> de leal<)1 ra {Ul(DI I . Ios pro( asador( s en Ponla flotante, ls dispositiv()s dv

accPso directo a memoria ( A DI(< I L etc. Dv estll unidad depedv < l rvsto <lel sistela,
as colo rl cojuto <le f( ioes ofrecidas.
Dispositivos de al nlacellaruiento s< cundario. Lo s c lisp>sitivos l alnlac <alient
SP('d!ll'lo so los ( '1('lt.tos ( u l<)s (f<' val()s >gu'lrd>u' to(la la i f c>rlacirl <le

forla pv r nla<'ntv. To<l<> Pl sistmlla <lv n llivos l< UVI X ( t l u d e s c ril>ire1>s


<
<;lptlo postvriores cst;i ><>t;(l>
s1>r< estos <lispositivos. L<>s nl(cli<>s ri )
luc's <I( guardar grarl<l(s ('ati<lacl(. <I< iforru;lci s< l( svr Ios <liso(>s rgiclos.
los clis<os Henil>I< s. l;ls <it<s ll<<gti<')<s y los ('D-il ( ) 111.

Dispositivos perifricos. So a<fuell<>s < 1<lvnt<)s <te alladid<>s ;ll sistvlrla < onrpta<lor
rvlllizau. Sol>re tck>, furl( io(s <l ( >nlrica< i<1 c<> l'ls personas. y entre vil<>s po
den>s citar el ret. Ia p;ir)t ;lll(l. el 1<><l('nl. lll inlpn sora, vl traza<lr grfi( o, etc.
Toclos sto disp>sitivos estn c<>vct ;los ;( l;< ( vt I al <l(' proceso, l(l ('<ll s(' <'cal gll
cI(la)u jarlos y plalfil al lo i D'lra (fue pu' IH svl' corpartidos si prol>len)as <trv
los <lsual los.

1.3.

I n i c i o d e u n a s esin U N I X

Atvs de ir)i(iar n u ( s tr a p r i n lpra s< sin (l(' tr ll>aj<>. dvl)enlos terler instalado UIVIIX.
H;ll>italruente. 1;l instalaci(irl r(<fui< re clP terlgamos <>>cimivtos <le adliistracin d(l
sistvm,lc'orl lo cual os nlet'los P u < rclo vicioso. yll.(1P n() poclelnos aprvder por<fue
rl<) t('vmos (1 sistema instala(lo y no p<)demos instalarlo p)r(tv t.odav'( no conocemos vl
propio slst('la.

[ .3. [N[C[O DE [.NA SES[ON UN[X

<' HA-[<[A

Sl >lstP(l vstc apl('d>en<lo L>NIX f ll>z>ul(lo u slstP18col<'l(181 (IIP-I[ . L. ll C IX. S<)


!,Iris. (t <.). ste venIra pr< instalad<) rn s u l q i >ui y n o t r n ( l r n >sq>t<'soli< it>u al

;<(1>inistradnr dvl sistma quc l< abr<> una cuct;>. Si en < a>hin prctcucle aprvclc r [t YIX.
tilizancln I.inux r su n>aquina. ten<ir i qu instalarla previa>ctc a partir <lv cualquiera
ll>s difvr<t es <listrihucioucs libres <le c st< sistv>a npcr ltivo (I vdora. Rvdl lat. Dehian.
~. S E,. Sl >c k)v >re, etc ). El pr(eso dc. istal> in d( Li>lx 1>a 1( jrd(> u1l>si>n clcs
<l< 1 >s prinlvr ls v<.rsio<s. A< tal><tv < asi vs i><disto (>ivtrasn sc' pres(utv i g>u>
pr<)hleu>a), p(r o

r e q u i erc q t' os ( a r g u e n><)s (<) ua p ( '<[ut'll)l d()sls <lp p('Ir('la, y (1<.

tiv>po, Para aquell>Ls p(>son'L< qu(' nn f>p('n ls[al>>(lo Llux (.' su s>stp18, srr><(v
;>rio llevar > c.abo la instalaci del mis>n previa><te. Para vil<> s<r;v< esaric) l< vr I >
< l('1Pt>lcin propnrc innada pnr vl distrihidor o ualesquierll dc' l<>s niltiples maa
l< s quv pule v(otrarse f< ilnlente e Iternet. [. cosejo que <l< bc r;> seguir e c st(
ponte) (s <l <l< solicitar ayc[a a ;)lga [)vrsna que ( noz(a el p r o<(so <lv istalac in
<lv Liuux, Esta i. talc[<) pc<l< sp<)vr etn t r v i 1;> 1iutns y ua ll<)ra . i o slg('
ll>>lglll>[)l'Ol )IP>118.

Sp<)i((l<) q(' [. NIX ( s t i s t;>ll<d v vst r<) n>t[('<[r. <Icspvs <l<' ii('iar el sis
tcl apl>r< r en la pat;(11;>u><saje silila>' )11 sigi<t< :

['edora Core release 2 (Tettnang)


K ernel 2 . 6 . 7 - 1 . 4 3 7 o n a n i 6 8 6
valdebits login:
E este punt tvk are>os nuest><)on>brv <lvsari<) (supoiv<l<> q< tccn)s cuenta (
vl sistc>a) y pulsl >ns la tr<1;> ENTR:t>R. A cotiu;.I apl>rvr esaj l < )

vl s>givt v.
password:

(n o s e I ) i s ( ( a l i z s )

F (st ( > ol(t<). tr( Icet'nlt)su (s [l(l e l<(v(' ) pu l s are>c>s


1 tr< la EN'l'R AR. Si la <' lave
cle 8cs <s nrrccta, ii< i>v>c)s l>> s(si. si <) <s >Ls. o pn<ln 1os etrar. I <l'>vt'

t(tir ad>l o sv ( is[izar v pantalla para. evitar q>u 1(lg uri<)sc) [><da verla.
Si t(l<> vs < orr( c to. > vrz itrnclu< idns 1>c st rnnlhrr <l <)rxi<)n yuest r pal >hr >
('l;lvc. ;>pa>'rcc>';l lla presc'nf >l('I s>lll>' a l'I s>gl('t('.

Last login: Tue May 29 13:24:48 on tty1


[chanCvaldebits chan] $
Ll s>b<>I<i [chanCvaldeb i t s c h a n ] $ (p r v tnpt) quv l>parec al fi >I es g<vrl><lo pnr vl
itc'rpr< te <le r<levs n sl>vll (< 8[)razn) para indi<rs qt vst; esp< rt><l<) qc !c <!rn)os
<llg>m>> orden, Este /)rc)n> ptplu'<lv s< r < ambia<l< > pr < l usuario; n> s ;l< lante ver(m<as n)>o.
pero por (iv[t(t o v t >>lvstr<) sistv>a (Ved<>ra) c s cl . >bl<)><catre<lo. Cn><) pode>ns
;>prviar sv c<)lpouv de dos lrartes svp> ad(a por vl <)>r>cter 8, l..;> prinu r > p;irte oit>< i<l(
< ouuvst r<) 1bre <lv (ovxi chan) y la scg<1;l < el o>hrl( 1 lvstrc) onlea(ll
valdeb i t s ) . ) > cotiaci aparv<.r l;> c)>d< n;> chan c[v lu)s i<[i< a vl <lirectnri <lo>l
ns r< nntramns sitad<>s. Pl < >>al ini<.i >llctv coiide n 1u str <lirec tnrit) <1' olu.xin,
E otros sist< m>us UNIX. rl f) r(/>t por dcfrctn vs e! ara< trr $. Vosotros '> 1<) largo <lel
lihr<)>nstrarr><)s t<)(los los ej(>plus (o (1 p>n))>p/ $ qu( cs ( I en>[)1(';ldo por defecto el>
1('ll()s stst('llLL

10

C A P T l ' L O l . I N ' I HOI:>t>CC'10>N> A UNLv

lt.A-htA

l'

Sesin idioma rrtcciones Tema jue 01 dejuf, 12>42

Bienvenido a vglde bits


Usuano

Introduzca su nombre de usuario

Q Aceptar

%I '
Figiira I.'2: I errtaii < d( iiiiriu <l svsi presentada pnr Gi>f()A(E.

Si su sistvrua i>t iliza un [>rn(ediiriicritu de cunvxiii grfico pur(fuv utili('.v X-l%ir><lo<v


>n algiin gestor de patalla <f<l tipo xdm. gdm o kdm. (1 procedimiento dr corirxiii ser si
n>ii ir. En este crrso, tarirbivrr svr necesario introducir iui nombre de conexin (l o g i n ) y
<lila p<<las>ra ( lave (password). vil lllia ve!ll aria, sllrlilar a l;i presviit ad>< <ni l;i figiir;i 1.'>. T il
y curiio ocurra cuii el inicio dc cun( vii> eri riiodn texto, si tod<> vs corre< tn inician riius iia
sesiri de trabajo. pero en este caso utilizar>d<> veritarias. Para pn<ler coiiivrizar a trabajar
cun l>rs rdenvs dcl sisteriia. s(r iiecesari<> iniciar uria aplica< iii dv tipo t erniinal cuirio
1icdv ser xterm, gnome-t e r m i n a l , k t e r m. et er m <> siiiiilar. Tod >s las <>r<feries(I<iv <nni< ii
tenius fiinvioriarn d<l misriiu iiiudn, tar>tu si tra bajarnns en un t e r n i i ual a)far>umvric<>.
(uiiio si t r a b a j ariios on uri t vr riiiii >l grfico.

1.4.

E j e c u c i n d e la s r d e n es

La forma de iiivocar < iial<Iier urdeii y, en gericral de ejecutar vira)(luivr prograiira,


c<>risiste eii tvclvar sii riuinbr< y a cnritinua< i(i piilsru. la tecla El<'TBAB . L u n is corin
vs <1>re tudr>s las rdvucs adrriitari <>p< inncs niodificaduras <Iue suelen cornvnzar i.uri iii>
sigrin (nivnns), advrs de los parriictros adicionalvs quv necesite. tales >nin riumbrvs
dc archivos, dispositivos fsi>s. nnibres dc usuario. <.tc. Los distintos parrn( tros deben
ir s< parados pur espacios eri blau< o para (luv sean ideritificados como tales. Dvb< uins teiier
cuidado cnn las lvtriis rriayiisculas y iiiisculas. piiestu <fuc UNIX , al cuiitrarin <Iue otros
sistemas operativos, las distiiigiie. ste es iii> aspecto inuy iniportiuite (fuv dcbcirios tvner
ell cuvll'ta.

Ejvniplo de orden:
$ ls -1 serie.c acrobat.tgz
-rw-r--r-- 1 chau igx 3412544 mar 5 18:13 acrobat.tgz
- rw-r - - r - 1 ch a n i g x
3 26 ab r 3 13 : 0 6 s e r i e . c

FLA-l<A

L 5. ALGUNAS RDE NES PARA l'OMENZA R

ll

('t>n>o v< remos en captulos poteriore. la or<len ls muestra los arcliivos que residen en
un d< terminado dire<torio. En el caso del ejemplo le hemos aadido tres parmetros:
-l . a c r o b a t . t g z y s e r i e . c . - l e s u n p a r metro modificador que advierte a la orden
ls que debe mostrar los archivos en formato largo, con toda la informacin refereiite al
~chivo. acrobat . tgz y s e r i e . c son dos archivos que querenios visualizar en el forinato
antt l'loi'lneilte ilidcado.

En el caso <ic utilizar varios parmetros modificadores, stos pueden ir seguidos sin
necesidad de colocarespacios en blanco entre ellos.
Ejenipl<>:
$ ls -li serie.c acrobat.tgz
12421 -rw-r--r-- 1 chan igx 3412544 mar 5 18:13 acrobat.tgz
1 2453 -r w - r - - r - - 1 ch a n i g x
3 26 ab r 3 13 > 0 6 s e r i e . c

$
E n < l caso del ejemplo, los mo<lificadores -l y - i l o s h emos agriipado cn uno solo: - l i .
I anibin sera v llida la expresin ls - 1 - i ser i e . c a c robat . c . aunque requierc es< ri
bir nls.
Si intentainos ejecutar la orden anterior, pero empleando letras maysculas, ocurre lo
igiente:
$ LS L
-bash: LS: command not found

$
y< qiie, romo hemos indi<ado previainente. UNIX d i f erencia entre letras maysculas y
m i iiic u las.

Si al teclear una or<len nos equivocamos, tendremos tres ni<><los de solucionar e! pro
blenia para eliininar los caractere que nn son vlidos:
<BackSpape> El i m ina el ltimo carcter tecleado.
<Ctr l - w >

E l i n i i iia la lt i i iia palabra.

<Ctrl-u > E l i m ina t<><la la lnea de rdenes.

1.5.

A l g u n as rdenes para comenzar

Vamos a ver a contiiuiacin la sintaxis y funcin de algunas rdenes sencillas con objeto
de faiiiiliarizarnos coii la tcnic;i general iitiliza<!a <u> UNIX para invocar programas.

exit

;N@

Sintaxis: exit
Cuando deseanios fiiializar ui>a sesi<ii <le trabajo, deberenios informar de ello al sis
<e>na. La orden exi t s e eniplea para avisar al sistema de nuestro fin <le sei<ii. Ciiando
< j iitanu>s esta ordeii, UNIX l i b era el t< rininal que estamos iitilizando >ara que pueda

12

( ' A [ ' [ ' l'Lll.(3 I. l [vi HODL ('(.'[()[v A t [v[y

<'ov( II )c o f n )

B()(-'.<[A

l l ) i l >il lo. E s >leos(p j>>l )k( < k s< o<(cf 'n s (k I ) i s f ( l a ! i l c l p l p q ( ' o i H l ( '

jtos c[vi terli>iiil. D v s f ; i i>i<'ra. ( vifrv1<)s q>i(' < uaklui< r mlrio)o p i iv<la apr<>v< liar
<)t > < irustaiicia p ir a a ( ce<ler a tiu<)f n)s archiv<)) (oriu) )i f >u)e I p n ) p i vt a r io. Si or u
rrivra eso. Pl )isf<una <>t<rlvra q>i( c I iisi> i<> )iglu' <oe( t 1(lo. y el iir>iso t( ti<lr i plelios
< k'n'('hos par>i visilalizar iiust ro) r< hivo). Ii;u ('r copi>i). ti)<lificarh)) y. < i> < l p('or dv los
('>L)O), I l(i ) t <> I )()l'l'Hr'k)s .

E i> s m i ) >r), Ll%I X ( ' ) u ) > . il('l<i ll>y sc'glo . p o l ' qu<' p n ) p r)celoa l ' orlo I lp o ( k
ll><(Hl)ll><)) p>11 ;i p><)fPg( I os (k posil)lvs eetig(>). Pero, < i>[t ila i)tan< ii>. e) cl u)u>rio
<'l <t<' s(' <leh(' s('rvir (ie la) p o sil)iii(l;i(k ) qile ('l si)f('la k' l)r i i i (la par prr)t('[,'ers('. (<) )irv('
<I<' n>l<[H qu(.' 1<'ga>os i>a caja fc rt(' (k' alfa s('guri<l>i(l si I<'()n>1)i'>('ll D'ira al)rirl>i )<'

[iv<k <onsvguir fcihcr>t<L El usuario rlrh< c>ti<h>r iii<l>o r I qii<' a[giv piic'cl<>1)tvn< r
;iu ('ofl >L)PI>H. Llrl>1 fori'i rlv <li)tiui r c I ric')go < ) < ilhirl > p< ri()(li< Hr<tv, 'f a>1)in
es l1<a ))t t>il)re <k)< oil trsv rk I sist< ma ca>i<k) riel)a>os ;illii<loti;lr v l
t i i i por;i[ 1( lit e.
('olo ( k ( a n l ( )), 1 torl i ( k

t ( r >inal

f i i i >ilixar >itia )<) i l i (.) t vc k i i i ( l<) exi t < ) t ; l l i i l )i<'ii pi i l );>i>(lo

('t rl-cl f <I), Ic) c llal provoc<ll( cl lism<> pfec to.

I. j vii >pl<>:

$ exi t
F edora Cor e r e l e a s e 2 ( T e t t n a n g )
K ernel 2 . 6 . 7 - 1 , 4 3 7 o n a n i 6 8 6
valdebits login:
Al n;>limar la ) <) ioi>, vuc lvv ;i p n s c litar)< po r p a i i t a l l;i v l i i i ti) ij < l o g i n . L '<> (ll<), < I
!ilst<'la o ) ) v >l a H q u ( ' <'l('><).' <k' u('v<) o(l a .'i(')lo. I. H p<'1)oH q P ( ' l(' l a u c 'v<i
svsic p>u clsvr c>takliiier>i <k I>L) qil< tga ciu t i ( < l si)t <i i. I o) t vrm i<>k) <k')> ( ) <).
( c>L)o <I<li)po l ipr <le var i o) . i i o st l i H ) i i >ilos <k' f<>rtii;> fija a c ;i<la u) u ; i r io : ;L) pilc ) ,
po(h('10 ) ( ' l a l ' 1(> .'i(')> (k')<IP (ll ) f >t<)s tf'l' l >k') . ! i l (' l p l c

Si mi<')fr<) si)telii a (') I

( o la ) l ) i 1 ( k ' t l(l>i(l.

i i i x . 1<'<'io) l;i p o s i l ) i ii<l>l(l (Iv f r ; i li j;ir c(>i> tc'r>i>iii;>l< s c ii't>i;il< ).

Par<> colnut>' (k. >iii >i ofn), )i t >al>ajaio) c ri><l<) txto. o tc<lrnlo) >s qiic' [ll) >r
sin>ir<an>Pt(' l(L) te( l(L) kif + F l .. < It iF2 , ; kif +F.'l. ( t('. <Iv nio(lo el>l<' ( o>l Hn'lo)
i los t< rn>iales virt>i >l<) >u). (Ios. tres. < t< .. r()p t i vatnetc. De <)te l la><lo. y < l l i
1isrlla >qui >. [ In l iu>s t<c r itii< i i<1>L) (listinf>L) )tsienes <k t r >il)>ijo p ( r fc < taint<
< lifc r< ilcia< la,

S int a x i s :

who [am i ]

I.H onlct> who tis i n f o r t a Hc<'n'a <1< qi>[<i o q i l i>le) c) f i i < r>((t>k)s ar> >i;ihlivlitv

al )istcina. Tait>in m>testra iriforniac i(n. et> IH s<g<la colinna, rchitiva al t e r n i ial
>L)o( i;>(k) <i ( a(la usu;irio. y p o r

l l l t i>rin. ( ri la colu rl ili t ( r< Pra. h> fc('lia y h or a ('li l a q i i(' vl

usuari< > <'lit n) < sp)i<rl. Vo rl< 1)( (xt r i n i l r n o ) < I hc(lio ck' quc pu( (l'> lial)el val IH'i J)('l')on())

trl)i>jii<lo )i>r>ultncair>tc' coli vl n >i)lo or<lenack>r. Iilcli>so llri l i ) l o i L)uari<> [ieclp


IPr I vai las )< )ionc) ;i[ >ierf<Ls sinilf>n<>nente. E)fo ;i i it erioi <) f a c t il>lv por el lic< ho rlv
qile L[VILO vs iin sisfenla op<'r>itivo li>illfiu) i l ario y i i l l t i t a r ea.
Ej< rpl():

I.. ALGUNAS RL)ENES PARA C'OKIENZAR

<-. R.)<-!<IA

$ who
chan
chan
chan

tty1
10

p ts/ 1

13

J un 18 2 2 : 2 2
J un 18 2 1 : 2 9
J un 18 2 2 :2 2 ( v a l d e b i t s )

$
>1 l >rd who s( < j(rct>r (<r (I l>araret n> am i. visrralizarr por patalla su n(uhre <1('
<v(i<>r> (login), su trrial asoirl(> (al <Jrr( str < orrct>rdc>) y l;r f lra y lror;1 <le irricio
' .-<Si<1. Esta op( in s I)t il < n < I c>>sn dv <lue lrayamos 1<)dih< a<l<> prvviarnteustra
. Irlt r<l<ui var i<>s ve( es y (lucralo i s,'ll)pr' <II( nps sonlos < n cadt< lnst atp. Postel rol l(tp

) re>os cro J>o<lros 1odih<.ar nuestra identida<l.


Ej( 1plo:

$ who am i
chan
pt s/ 4

J un 18 2 2 : 2 2 ( v a l d e b i t s )

$
P(><lr;larse el < aso d. Juc un usar.io cstviese conectado <l forma rcnrota al sist1.
En tal< s cirmrnstacias. Ia orderr who visaliz <ra ta11>i Pl <>1l>rv <le la1'<Jir)a desde
<lll(' < l s uio SP P<etra (o r rc(.'tad<>. Di< I> <lv <otro ro(l<>. no cs rre(esario star
r:. i< a1(te >r<e<'t al<> al ten<Ii rl UXIX , a sc si( P vl sist<.nra.

mail

i- ~

Sintaxis : mail [usuario (os) ]


El sist en>a UIV I X J>roporcionrrn rearrismo (lv correo < Ic < t rico < >e-111<ril (JP.perrit
-ciar 1ensajes <len<>s usuario a otros. l'r>r(r errviar r esaje. no espcesario cine
"1suario dstiatario vst >r>dictarlo n csc instant, ya (Juc to<la l r correspondeci>1
- I d<'posit ula c s l>uz. (Iue poclr consultar postvriorr(te. Si t vc'mos correo
I >vdi<.r>t( . ( l ii( i<) dC SPSi<>J>Odr> '<par<'C'<'rH 'llS<lje ('O10 Pl Sigui(>t< YOu haVe
new mail (t i < (<)rrc.oIrevo). ir>diva<lo))os (Jrre t<en>os 111('.Irsajes <' Pl l>uz),
E <t>< c)r d J >(<letilizarse < or> <> si prr u tr<>s. Si la ( l p lvuo i sr l)aI rrrrPtr<>s,
' isalizar p' u rt <lla los dif< r<)r>t<wrs <j<w, >r> s <orresl><>n(lite reritc r)te. clP

, < >r>t
<g < r)estro I >uzrr. Para l)asar clc u rrrensaje a otro. puls rre n>os I.'. OTRA R si Ins,
y si (Iererrr(>s eliriar c'I 1<rrsaj, plsareros d (d<.late), Tambin tvncrnos l ) p<>sit)ilida<1
dv irJ)ririr el lc's<r)c vlsc<liza<l<> plsa<lo p (y n r >/). <> <Jv grrardarlo vn n a n l >iv<>
J>(s<rl<> s y a rntiuci el rrort>rv clc l rrclrivo (s nombreMe ar c h i v o ) . Para srlir d
mail. sirplPIPtP pulsarros <I ( c/Iri t). 'I o<las vst as c>J>ci<>s <lv mail. y algu rs1's. las
p<><l<'<lls vrsalizar si plsaros ? (/1<-'I/>) d('trc> <h la I)1<>pia c>r<le.

Ej< nrplo:
$ mail
Mail version 8.1 6/6/93. Type ? for help.
''/var/spool/mail/chan'': 2 messages 1 new 2 unread
U 1 lucas<tlvaldebits. aut.uah Mon Nov 16 12:47 14/368 ''Prueba''
>N 2 lucas(lvaldebits. aut.uah Mon Nov 16 12151 17/413 ''Comida...''
k

14

C A P I T ULO 1. I N T RODUCCIN A UNIX

RA-MA

S i queremos leer el mensaje nmero 2, pulsaremos el nmero 2 y daremos ENTRA R :


k2
Message 2:
From lucas T ue May 29 1 7 : 5 1 : 38 2 0 0 4
Date: Tue May 29 1 7 : 5 1 : 3 8 2 004 +200
From: lucasC!valdebits. aut.uah.es
To: chan4valdebits.aut.uah.es
Subject: Comida...
Quedamos a comer a las dos...
>Te parece'?
U n saludo !
Si queremos ver la ayuda en lnea que proporciona esta utilidad daremos la orden?.
7
Mail Commands
t <message list> type messages
n goto and type next message
e <message list> edit messages
f <message list> give head lines of messages
d <message list> delete messages
s <message list> file append messages to file
u <message list> undelete messages
R <message list> reply to message senders
r <mesaage list> reply to message sendexs and all recipients
pre <message list> make messages go back to /usr/spool/mail
m <user list> mail to specific usex's
q quit, saving unresolved messages in mbox
x quit, do not remove system mailbox
h print out active message headers
! shel l e s c a p e
cd [directory] chdir to directory ox home if none given
A <message list> consista of integers, ranges of same, ox user names
separated by spaces. If omitted, Mail uses the last message typed.
A <usar list> consista of user names or aliases separated by spaces.
Aliases are defined in.mailrc in your home directory,
Para salir daremos la orden q:

kq
Saved 2 messages i n

mbox

$
Tambin podremos usar la orden mail pasndole como parmetro el nombre de un usuario,
y as podremos enviarlecorreo. Por ejemplo, siqueremos contestar a Lucas operaramos
del modo siguiente:

l.:>. ALC'llNAS ORDENES VARA (.'ONIEVZAR

RA-XI A

15

$ mail lucas
Subject: comida s
D e acuerdo .
N os vemos a l a s d o s ,
u n sal u d o .
Cc:

$
I>vspiu s de invn< ar a mail, tu<k> lo que tvcl(mino svr iiitvrpretadn por mail y l l o p<>r cl
livll. l'<><l(e)nos in< luir en vl ni< risaje vl iiinicro <lv llle)ls qll(' qllel"illlos, Pal)i firraliz ir ( l

:. nsaj<. piilsarviuns el carct< r pr)t<> "." o C't.rl-<l ( d).


Exist('ii rniirlias variaritvs dv mail . c a lla ii ;i <l<ella coii sus pr'n)>iris pecriliirridad< s,
~ntr< ( ll;<s podernos citar ma i l x . e l m , e an . e t c., ai iiiqii<'l as riis iit i l i z ad >s a(tu il i n v iit v
ii )(t(ivl)()s qv disporirn dc u i i i i n t ( r f a z g r i< a < o)nn la 1>r<>>nrcioi)ada por mozi l l a ,
< cmail <> evolu t i o n .

w ri t t
Sintaxis: write usuario
L;i or<len wr i t e

s v i i t i l i z' i p a r a ( n r n u i i icarnos <oii o t r o s i i s i iarios q v ( s t r) cii vs e

ii)n)ii('rit o c o i i v c t ,'i(los ii ii r i v s t i n i l l i s l l i ( > sistc l i i a ( w r i t e ii n sl i v e l ) a l " 1 c o r l l i l l l i c a l 1)(>s< ( oll

iisuiirios ubicad<>s eri sistvnias difer(rrt(.s aurique s< dispniiga dv i i )ui r v d ) . E l i i i v nsajv
p ii(de svr t o d o l o v x t e ns<> que desccuios. y p )u.a teriniri;ir p i i ls<ireiiins C'trl-d ( d ) . S i
ii<t<tarn<>s < riviar un ii i<risaje an i i s i i a rin n<> >riv<ta<l<>. sv iins ;irlvvrtir de q c d i <hn
<ls><rin nn sc enciicntra eri sesin. Puede ocirrrir qu v < l usuario al <pic le ( i i v i aiiio vl
iiivnsajv tenga <>esa< tivados lns riierisajes, vn cuyo caso writ e t a n i hiii fallar. El iisiiario
<l< stiii;itario rvcihir) iiiia < ahv r(i cnino la siguierit<, a<oinpaii(ala <lv uii p i t i<lo,

Message from lucasQvaldebits.aut.alcala.es on ttyp1 at 13:06...


> Ests a h ' ?
EOF
P ira coritestar, i u n
sigicntv:

i n c iisajv < iivia<lo d< l )rindo ar)tcrior, <lvh<urins liacer alg<> sirriilar a lo

$ writ e l u c a s
C laro qu e e s t o y
Psate por m i d e s p acho
Ctrl - d

$
L n iu)miel v s q iiv cita>ido inici iiiins iii)a < nii)i<'aci(>r) en)i trn usiiario. ste uos r(spoud a
t <rirhin irivocarido i w r i t e . d ( t a l i i ) al)vra qv se estahlvcv (ir)a colniiiiicacin 1>idirvc< in
iial. 1;s ll l i ly <.'oliiilll q )iv v il r i i n ill('litos vti ( lll(' ('l s lstvlilii Pst Il l uy ( " l i g a <lo 1>isal)<la d('

writ e s< vea rvtras)i<l i cor)sidvrahl< ientv. cnii lo qe iiii usuario pii( d< dvcidir resp<id< r
a la p(rsn)ia qii(' liar)r ) sin hah(r r ("cihid<> 1 riiensaj( ) rripl(t o. V ara ('vitar vst)i sita< i<>ii.

16

C A P T I JLO I, l l v TRODI>CCIN A I>ivly,

RA-I<IA

lo noru>al vs s(guir u pn)tocolo a>plia>ente difundido, quc (ousist(. cu af>adir una "o"
(o>@r) pra ca>biar. y en>plcr dos oe "oo" (o >)c> <></ out) p ara (au>hiar y (c rrr l a
<o>unica<i<)n. Este. roto<nlu uo lo iu>pone vri t e . s i uo quc sc trata solan>cntc dc una
noru>a muv con>u ctrc usu;>rios dc UNIX.

mesg% g

g:

Sintaxis: mesg [y/n]


Esta orden se ut iii)'.a)>ra u>odificar los dcrc<'hos dc ('scritur pnr parte dv nt n)s usua
ri<)s vuuuvst>o t(r>uinal, de tal u>an('ra que si alguien uos qui( r(.uvi >r uu u>cns >j( y
t ene>os <lesacti> a<los vstos derechos. uo seren>os itvrru>pidos. L;> prohibicin <lc >(( cso
de escritura uo afc< ta al a<ln>inistrador del sistcu>a, La ordcu mesg sin p >r'n> tros nns
dir; si teucn>os o un< tiva la re(>cpci<n> de u>ensajes.
Ejemplos:

$ mesg
is

$ mesg n
$ mesg
is n

$
C>laudo temen>os lns u>('us>>jes desactiva<los, n<> rvcihirvu>ns ninguno aunque alguien no
lns enve. Estos mensajes s<vrdvran inch>so si despus v<>lvvn>ns a habilitar lansibilidad
de recihirln.

N ~ M R & . = ;ikkiL M ,
Sintaxis: date
l.a orden date iufnru>a sobre la lecha > la h<>ra a< tualcs. Para ell. date c<>usulta prv
viamete el reloj hardv;ar( <lel sisten , cl <'ual in< rvun uta su vah>r a iuterv >los regulares
de tien>pn. Estos iutvrv;>los sucl< u servquvns. dv manera queuv<labtencrse I>astant(
rvsoluciu. Este reloj sigue tunciouaudo por n>edio de uua batera auq>n s( >pag>n < l
ordenador. para que siempr( o dan>os tener una nocin del ti(.'u>po (orr(( ta siu (c( sida<l
<le '>ct,ualizar <lichn n loj < >(la vcz quc inicia>uos ('I ordenador. Existen uu>ltitud <h' rde
nes yrngramas que tau>bin utilizan este reloj para cnnsultarln ) t o >; dccisi<>vs vn
funcin dcl valor l(do. Existen distintas npcinn<s dc la ord(n date que afe( tan al toru>ato
<le salida. Colocando u ( an>po <letcrn>iuado a (.'out inua('in <l('l ocrad<)r%. n (c(Ii<lo <lcl
signo +. poden>os obtener respu< sts <'nmo la dcl ejeu>plo qc u>ost r >n>ns seguid >u)cnt('.
EJ ('u > pI o:
$ date +' 'Son las%r del%d de%h de%y' '
S on las 1 1 : 0 9 : 0 3 d e l 1 8 d e j u n d e 0 4

$
Los op<. ra(lores asociados a% snu:

Qc RA-MA

1.5. ALGUNAS RDENES PARA COM E N Z A R

17

r Hora en formato AM-PM

d Da del mes
m Mes

y Ao
w Da de la semana
H Hora
N Minuto

S Segundo
De todas formas, la manera ms comn de utilizar la orden es la siguiente:
$ date
lun j u l

5 18 : 39 i 1 3 CEST 2004

La orden date t a m bin puede utilizarla el administrador del sistema para modificar el
valor de cuenta del reloj hardware. y en consecuencia, la fecha y la hora. Los usuarios
iiormales no pueden modificar ni la fecha ni la hora. Slo podr hacerlo la persona que
posea los privilegios adecuados. Estos mecanismos de proteccin aseguran que el siste
ma funcione correctamente. Si todo el mundo que tiene acceso al sistema pudiese hacer
lo que le viniese en gana, probablemente el sistema se convertira en algo totalmente
descontrolado.

Sintaxis: echo cadena de caracteres


La orden echo repite todo lo que le pasemos como parmetro. Esta orden se utiliza
mucho dentro de los programas de shell que veremos ms adelante, y tambin para visua
lizar las variables del intrprete de rdenes. Las variables comentadas las utiliza el propio
shell para almacenar valores de configuracin e informacin.
Ejemplos:
$ echo Esta orden repita todo
Esta orden repite todo
$ echo $TERM
xterm

$
El ejeniplo echo $TERN nos dice qu tipo de terminal estamos usando en ese momento. En
este caso, vemos que se trata, de un terminal xt erm. TERN es una de las variables del shell
comentadas anteriormente. Si a la orden echo le pasamos como parmetro la, opcin -n,
entonces la salida no terminar con el carcter de nueva lnea, de manera que el cursor
queda colocado al final de la lnea.

18

C A P T U L(3 1. I XTH ODA(."C'lN A t.r NI X

BA-t(tA

L!< urdvll banIleI' s' ilt llrza p?ll" lvisir)illzar c 1t r Bs graiid( s l?i ('Hdvria <ti l l(' pasar)los
>Iii<) algulllrit<). Ir)i( ialriu r)t< . s l ( s ' <rr<>li para vt ictuvtar l a s a li<la (le las i i i i p rsuras
<l. lrica. 1)v esta i a nvra, si varias p< rsuiias ia)id)i inipri iir <list ir)tus tril)ajos. pu< d< ii
saher d<ndc comiciiza el si iyo pu r v l l ) v<l>u d t< iivr iina c al>ec(ra ('on sii r)un)l>n (tire
permit iri (listiiigirirlu d( lus (ln i i ;s,
Eii alguiius sistnii i 1, VIX l u s r t u l o s no s al ni l i o r i z oiita l, s io v ri v e r t i c iil. < un
uh j< t < <
>l<' (tire la ir) iprvsi ni i i n a i n i p raura <lagiijas sva ni;s fcil y, a(l< iii?s, se piiccl;iii
n iiplvar l< t i as ins gr urdes. Este s < l ( aso p irt ii)l ir <lel sist en>;i !)pvrativo L i i i u x .
Si (n l . i n ii x ( i i i (r< inus > isualizar el t e xt<> lu)rizuiit;ilin<'nt l v h e n io en)picar uri pr<>
grii d< li))n <li, t rilniciri <l<'rioti iii)a< lo f igle t <ii)e existe par )miilt ii iid dv pl >t afonn(s
y difvrvrits sisteias <)p< rat i>s. Est p r o g r a ma , < ni))u <)tr<>s ii>ii< hus. pe<le E>tni< rse

f cilreiitv eii Iiiterct ei! la dirvn i()i) htt p : / / www. f iglet . o r g .

c~g .
S intaxis :

c a l [ m es ] [ a o ]

!)ii> niiigin par;rctru. ca l

v i s u a liza el <'ld'dariu corr(spu<linit< ?>l tires a< tri;>L Si

lv ))asaius coio p;iriiietro uii ai>. pur j<iplu 2)()()4, iostrar vl < leri<lariu (<>iiipleto
<'orrvspondin it v al ar)o ( n ( uestiii, f a r i )l)i<ti> pudreius in(licarle cte ii<>s i>ii<)rie s<>hre <iii
iiics n i p a r t i ( ular <lel aii<><les( ado, pasllclolv ('ll>u pr"illl('l' pa1'lti u <'l rlilll('lu <lpl lllvs

l. 2, ;3,.... 12)), y <uiiiu seguudo parivtro. vl aiio. Segui<lariinit< s< icstr;i ii vjmplo
(iii ilustra ('I iisu <lv esta urden.

$ cal 2 2 0 0 4
F ebruary 2 0 04
S u Mo Tu We Th Fr
1 2 3 4 5 6
8 9 10 11 12 13
1 5 16 17 1 8 1 9 2 0
2 2 23 24 2 5 2 6 2 7
29

Sa
7
14
21
28

$
Si iu> vspn iii(anios i i i g iri iiies <lel ar)u. esta orden ).isualizar todos l<)s meses del afro
<lue lv iirdictriviiios.

S int a x i s :

u n ame [ - a mnrsv]

La order) una)i)e sv iitiliz( para uhterier ii>funa< iri u.(rca (l( i i (st r<) sistna U!A>IX.

(ui> ella pu(ln i ios sahvr <1 tipo d e 1 (luiri'> (luc (staios riti liza<l<>. la versiii <lvl sis
tvia oper it i vo . l t i p o < l p r o c esador, etc . L a s u p <.iuii(s r i i s c o i i i i i nes se i i i (straii a

cont.iuuaciri:
-a ) 'isualiza todo acrca de la m(tuirra ctuv. vstvriu>s utilizaudo, Es e(tuivalenta t o d as
las opci<ies cte sv rstr;ui a <.ontiii >(i<>n

c'. RA-MA

L ;>, ALCUNAS RDENES I ARA COivtENZAR

19

-ii> 'l ipo de hardware utiliz<>do


-n Vnmhre de nodo

-r Actualizacin del sistema operativo


-s Nombre del sistenia
-v Versi<>n <kl sistema operativo
Fjemplo:
$ uname -a
Linux valdebits 2.6.7-1.437 !1 Wed Jun 16 11:49<58 EDT 2004 i686 GNU/Linux

$
Obviamente, si < je< ut isen>os esta orden en otra mquina. k>s rec<dtados ser;ui dif< r< ntes.
il>oiendo <pie estuvi<~cmos eii otro sist<,ia. los resultados podraii ser siniilares a los
. igiiientes:
$ uname -a
IRIX64 sphynx 6 . 4

0 2 1 21744 I P 27

pasp>4~
S int a x i s :

pa s swd [ u suar i o ]

La orden passwd se utiliza para niodiiicar nu<>st.ra clave de acceso. El ciuhio <le
palabra clave d<he liacers< co fre< u< ri< ia por razones d< segiiri<lad. Cuaiido solicitarnos
iiii < unhio de clave, passwd iios pi<le siempre uuustr'i 'uitigua palabra de acceso, y lo hace
as para coinprobar iiuestra i<lcntidad. De este modo. evita que alguieii puecla can>biar
nuestra contrasefia si abandonamos t< mporalmente el terminal. Vnrmalmente. cn muchos
sist< mas no puede ut ilizarse cual<uier coiitraseiia, sino quc sta dci>e cunii>lir ciertas
>ndicion<s < onio las sigiiientes: poseer una longitud <nninia. t eiicr algtn> car< ter especial,
<lifcrenciarse de la ltitua clave eii un uiiiinio <le < aracteres. iio coincidir con el ru>mbre
de <x>uexi<>n (login)i. <.tc. Slo l admiiiistrador del sisteiiia no est siijeto a < atas reglas.
Citando intro<luciinos iina palabra clave <tue ciiipie t<><las las especificariories, se nos pide
<liie la repitanios para evitar que os <onfundamos al teclear.
Ejenq>lo:
$ passwd
Changing pa ssword f o r c h a n
(curre nt ) U NI X p assword: (N o s e vi s u a l i z a l o es c r i t o)
New UNIX password: (No se visual,iz<> loescrito)
B AD PASSWORD: case changes on l y
New UNIX password: (No se visual,iz<>lo escrito)
BAD PASSWORD: it's WAY too short

20

C ' A I>Tt I,() I . I N T ROI)L>('('IN A t Ni y

RA-),IA

New UNIX password: (No se visuaLiza Lo escrito)


Retype new UNIX password: (No se visual,iza Lo escrito)
passwd:

$
A la linra d( c l ( gi r l i p a l al>rii rliiv(' (s ii< ri(> ten< r eii ciieiita iertos aspet<)s qu( res>ir)ii
illns s('gl l I d(il('Il t<'.

L a p >ilahra < lave <1( l>P t<ner al ni<'<>s sci l(tras. aiiiiqi c s r c ( <>ni< iidabl(' quc t( g a
<)( li.

C><lqui(r carcter l>orPii<iia <lcl octavo ser igiiorado.


La p alabrii < laveiin <1< b< ;<parecer eii iin <licciontiri<>. Si tecins ac(eso a la I>ali>ra

clav( encriptada (es ( I s(giirido can)p<) (le (a(la llea d(1 ar(hivo / e t c / p a s swd) ~
poseemos iii> diccionario doiide aparezca la cnntrascna, fiincin crypt y ui i poco d(.
pacipiicia, pndr( ios dcs( ul>rir la cl;>vc d< I iisiiarin. Si la clav( n apan < e rn i g>ii>
di<.(i<>ii irio y a<l<'ins tice la loiigitu<l adecu l i, Pl proceso dc descubrirla cs algo
iniiclisini is cou)pli< >d<>. Pnr este uiotivn Ps bueii elegir clav<'s que coiubincii
letras, ni>n ros y cara< tcn especiales y arleiils sPaII fciles <le recnr<lar.

S intaxis :

1 p r [ - m ] [ - h ] [- ! n ] a rc h i v o ( s )

L>l ol <IPli 1pr p riite cnvi>ir ar< liivos ;i la ini p rcsora qiie liaya pnr <lefect<> p(ira qiie
scaii im p r esos. Estos ar( liivos sc < (>l(>( irii eii la ( ( >la <1( iiiipresi()11Pil Pl r(lP)l (",ii <llie se
1<>s pase)i>os. 1. i <'nla <I(' iip)<si<>l> (s iia c<>la qii< in u)tic( U IVIX . y eii <11i figiir;ui t<>d<>s

los arcliivns qiie dcl>cn ser iiiipresns.


L as <>p(ioiies iii ciii n( s d (

1pr soii:

-m (r>)<iii) (."on esta npciii, c<ii)d<> se terniina <1( iiiipri i ir Pl t r a b a jo. 1 pr e n v a ('nrr< o
avisndoiios de qii( pn<lcios ir a recoger cl t ral>aj<>.

-h SP iitilizii par i ( liniinar l i cabcc(.ra del trabajo qiie se eii( a 1>nr (lefecto.
-!n S i rve par'i iiidi('ar cl ii>pro < le copias qu( quereiii(>s li>icer. Si. por ejcniplo, qiipreiiios
tres copi;>s. <lebrnu>s idi< rselo a 1pr del indn sigiiicnte:

$ 1pr

- ! 3 n o ma rc h i v o

Ejrn>pl<>:

$ 1pr p r o g r ama.c

leA-) [A

1 .6. A[.(;UNAN' RDENES [AleA (.O[<,[ENZA[1 2 1

p
Sintaxis : 1 p

[ - c ] [- m ] [ - w ] [ - n ] a r c h i v o (s)

I.a un ir>> 1p sirve p ir>i lo >irisi<> qiie l r or<l( 1p r . pr n ) i > ti [izar<'ir>os 1p si i>U('stlo
ist< rna rle in>pnsi<ri ist ila(lo <s (I (l( I [ X I X S y st (n) X . y 1pr si (s cl <l< H< rkeley.
Al < jeutar I i onl< 1p cor> siis parar< tros <.c)rrrspo><lic>>t<'.s, r(spo<l(' (or> tina liea
lit<' i>< ir>f(>r>r>ii sol)n i t e atro r>iiro < le i<lerrtih<)ici<n (l( t r a t ) aj<) (I<r/<lis/. ir/1. Es 1>
p< >r t;irit< r) olvi<l ir < ste i>rer<>. pon[re eri ci rtos c">so i lo ri< eesitarrs. [ r> ejemplo
p>rfle ser la ne<'( si(la(l (l<' ('al('('lar algtn t r al>a jo fle irnpresi()ii.
I.aspcioi> s ri> s r rnririis <l< 1p soi>:
-c ( r r) pr/) ("<>r st>i op< i<>ii, 1p Ir;ic rnri < opii< pn>pia <lel an hivo ([iie c[i>Ore>i)os iuipririiir'.
<l( esr.;r r>l(ii>er H po(ll('l>los io<lif)< arlo u i r i<[iu' ss t < i iiiipriii>ici>rlo.

-m (>nn)l) ( ' or> < st.;) op< i(>ri. (ii;irid<) se t(r>ir>a <le irnpriiriir el t r i [ ) a jo , 1 p <riva correo
>iv[s>>(lo>i)s <l(' c[)i(' [)ocl('l>lo'< >I 'l ' ' o g Pl' ('I t > a l) a[ o. ll > rito f'ira <)Re<)ll (ol>o I;i

'iritc rior p>te<l<'ri nsiil ta r t>uiy tles et>ati<lo trabajan>os e<>rr iiripresor;Ls r>iuy carga
( [ is <le Ira[)ajo, D e est(' riio<lu evit a r ( r i tos ll' a r ( ( <)g(l' el t r a b a j o s ii> s i l )pr si sf' l l >
Ir rniiu)lo <> iio (Ie iriipri>i>ir.
-w ((r r//r ) E st a <)p<[<) es sir>iil ir )i l a op< u)ri -m. pero <ui < str' < >La<> 1p iiil<)riira cl< I [ial
(lc' iri>presi()i t sa>><lo writ e < ri vr z (I ( m a i l . S i l u s i i a rio a l ( [u( e r i va ('1 ni(-risaj(
I>o s(' <'I'>1('ll I" > (or>v('t a<lo ('I e!<< >>>stiii>t(', 1p I p ( ' l > v>ar" ir! >>>('l>sal(' [)<>I (<)ll<o

< le< tn)ni< o.


-n ! i r vr' pill a >rlie ir < l riiiiero <I< copi;Ls <ii>e <[u< reiiu)s ha r . Si . por ej( ii>plo. <[(n >rios

tres c<>pi(Ls. <1(;I>< >os iii<lic 'rsr lo a, 1p as:

$ 1p -n 3 nom archi v o
Ej< iplu:

$ 1p pr o g r ama.c
request id is chanl[tvaldebits+319

$
BCI p L ~

Sintaxis: script [-a] [archivo]


Est;> or<l('> s(' l>tiliz i pa r >i ;>Ir)i;er;>r < r > an l i i v r ) t<><l<> Io (l<i<' el ils>illiu t e c l <e a
p;irtir <lel rioiier)to et> qiie s< >i irivocila. (Ls <oto tu<lo lo <[ie es <vi>lo a la [ a t a l[;<.
P ar i rl< j;>r clr. gr;)I);>r ii>forn))(rin>> < n el archivo. tene>os c[ii< irivc)<'ir ;i la orclen ex i t . 4 i
I <'s<'ai>os girar(lar. tu(lo ( I eot c iclo de i i i>a sesicii eii i ii ( ; i r el>ivo <l( i>oiiiir>a<l<) csesi o n .

<l;>i< ir>os la s>giiient< ore[en:

$ scr i p t

csesion

CAP T U LO I. I N T R O DUCCIN A UNIX

22

Qc RA-MA

Script iniciado; el archivo es csesion

$
Si a scr i p t n o s e le especifica ningn archivo, enviar toda la salida a un archivo
denominado typesc r i p t . L a o p cin - a l a emplearemos cuando queramos anadir infor
macin a un archivo. Esta orden puede ser muy til para usuarios principiantes, ya que
de este modo se les permite analizar con posterioridad todas las rdenes ejecutadas y sus
resultados.

Sintaxis: man [seccin] f-k] orden


Todas las rdenes vistas, y las que veremos en subsiguientes captulos, estn descritas
en lo que se conoce como Manual del Programador de UNIX, Dicho manual est dividido
en secciones, que contienen lo siguiente:
Seccin 1. rdenes y programas de aplicacin.
Seccin 2. Llamadas sl sistema.
Seccin 3. Subrutinas.
Seccin 4. Dispositivos.
Seccin 5. Formatos de archivos.
Seccin 6. Juegos.
Seccin 7. Miscelnea.
Seccin 8. Procedimientos de mantenimiento y administracin del sistema.
Lo normal es que el manual est cargado en el disco, con lo cual podremos consultarlo
en todo momento para solventar cualquier problema. As, para informarnos acerca de la
orden clear , debe teclearse:
$ man cl e a r
Formatting page, pisase wait..
c lear ( 1 )

clear (1)

clear clear the terminal screen


SYNOPSIS

c l Bar

DESCRIPTION
clear clears your screen if this is possible. It loores in
the environment for the terminal type and then in the ter
minfo database to figure out how to clear the screen.

RA-MA

1.5. ALGUNAS ORDENES PARA COM E N Z A R

S EE ALSO tput(1) ,

23

t e r minfo(5)

clear(1)
Como podemos observar, man nos ofrece una informacin bastante completa acerca de
la orden especificada. La expresin cl e a r ( 1 ) q u i ere decir que cl ear se encuentra en la
priniera seccin del manual. La explicacin nos indica que cl ea r s i rve para borrar la
pantalla, y que para ello se sirve de la i nformacin de entorno y d e l a b ase de datos
terminf o. Por ltimo, nos dice que si queremos ms informacin consultemos la palabra
tput y t e r m i n f o , cuya explicacin reside en las secciones l y 5 del manual respectiva
tnente.
Generalmente, la explicacin no es tan breve como la, del ejemplo, sino que suele ser
tnucho ms amplia, y en esos casos es conveniente conocer lo siguiente:
s Si pulsamos ENTRAR, visualiza la siguiente lnea.
Si pulsamos espacio, visualiza la siguiente pantalla.
Si pulsamos u, visualiza la pantalla anterior.

Si pulsamos g o q, salimos.
En algunos casos es necesario especificar la seccin del manual donde se halla la infor
inacin deseada; en esos casos, la forma de especificar esta seccin es la siguiente: man
n meccion o r d e n .

Ejemplo:
$ man 2 chmod

CHMOD(2)

Manual del Programador de Linux

CHMOD(2)

NOMBRE
chmod, fchmod cambia los permisos de un fichero
SINOPSIS
!include <sys/types.h>
!include <sys/stat.h>
int chmod(const char epath, mode t moda);
int fchmod(int fildes, mode t mode);
DESCRIPCI()N
Cambia el modo del fichero dado mediante path o
referido por fildes
Los modos s e
e s pecifican mediante un O 16gico
de los siguientes va1ores:
S ISUID 0 4 000 asignar ID de usuario al ejecutar

24

( . ' Al'11'UI,Ot. I l>'1'HOI)L c."CIOV A U<VILO.

Pc RA-Xt!Ic

S ISGID 0 2 000 asignar ID de group al ejecutar


S ISVTX 0 1 000 bit pegajoso (sticky bit)

I.<> <los putos <1(a ap Ir((v < l' I p (>rtv ifvrior i z (1(ti(rd l < ' la p a t a lla si) vv para
lltdlcarllos (i<l(( ofdctl desealos d)(r (esp i<>. u, q. Ct( . ).
Ta>bi po<lrc>os obt('n<'r it)fo<'Ia('i<)n acet('a <l('l propi<>>a>tal. para 1<> ('ual <l;I

remos la <>rcle man man. Existe a ord< (I, <lv(>n)it)ada apropos, quc per>itc obtener
iforta< i> a< erca dv <'Italquicr t r ti)lo <le d( scoo('a>os ) (1(l(' 2(paI'P/ca ('II Pl Iat1>ll

clc UV<IX. I.a ordet> apropos tic))e la>ista fur ionali<lad q<w l;I <arde n man (<> < l p(<rlv
tro k. Este> p<'dc sernos til cua(lo defi<('Ios iforI('i<)t)acer('2le (dgua I)rdv quc
des('ollol(va)s v q (' t <'g>1 I<'la('l ('<> Pl t(I l l o <l(l(' p((sa>s (ott>o p((12(1('t I<>. Et>el

cj('lplo slgl('tc vatos a ohte( l' todas 12(s rdelles. arch)vos w trtlI>os rcla('loados <'o

la palal)ra ter min al . Si(rpre se nos dar ifon2>cit> sobre la secci<) d(l >a>u(al dond(.
s< vvtra Pl el< Ieto tela< loado co)I el tr>io bs( ulo.

$ man - k f t p
f tp
f t puser s
gft p
l ft p
Net::Cm d

( 1)
(5)
( 1)
( 1)
( 3pm)

Net:: FT P
( 3p m)
netr c
(5)
. netr c [ n e t r c ] ( 5)
gFtp [ q f t p ]
( 3q t )
sft p
(1)
sft p - s e r v e r
(8 )
smbclien t
( 1)

1 .6.

Internet file transfer program


list of users that may not log in via the
FTP daemon
a graphical ftp client
Sophisticated file transfer program
Network Command class (as used by FTP,
SMTP etc)
FTP Client class
user configuration for ftp
user configuration for ftp
Implementation of the FTP protocol
secure file transfer program
S FTP server s u b s y s t e m
ftp-like client to access SMB/CIFS
r esources o n s e r v e r s

E je r c i c i o s

1.1 Iicie a sesi <le tr((baj<> ct> Ui%'IX. ;,()u<<pro>>2I>/ apar' e'" .Int<>t< vjvc<)tar algua
<)r(le. Fialice 12(sP.IIII C(> exit < > <:ot> Ct r l-d p (r ( < otpn)l>ar que to<l<> es < orrvct<>.
$ pasa) a. sl Illvo('selos a ex l t p c l o ut lllzatld(> lvt l'afi I;IXs('lafi?

1.2 V v iva a i n i ( i >r fi(si(> y < (npr('hv <lit) o <l>ti('t)vs (sta ( c( t los a l s i st e>a
y vn q tc r>ial. I' nv e )vt>saje por c(>rteo al us(tario <lu( d<s<c. Ellv< otr<>

l csaj('. p( o Ilt i liza< >d<) I I ord( n <<rite. <,Qu diferct>( i'(s hay catre mail y v r i t e
;("<)) sv pv<l( n vvit k )s II sajes Pviados des<le otro ter>ial co <crite " .

1.3 ; Tiec. c<>rreo pe<lietc? Lalo.


1.4 IIDi<la <lu(' otrossrio lv enve<> Ir(ensajes. H(debilite dv>tevo l > co)nica< in.

".

1.6. EJERCICIOS

25

1.5 Intenteenviar un mensaje de correo a un usuario que no exista. /,Qu ocurre? !Dnde
est elmensaje?
1.6 /,Qu ocurre si invocamos a la orden date con la opcin -1? Si la fecha y hora no
son correctas, !cmo pueden ser modificadas?
1 .7 Visualice la hora en el formato siguiente: Son la s HH hora s y

N M minut o s .

1.8 !Q u tipo de terminal est utilizando?


1.9 Visualice en letras grandes su nombre en la pantalla y posteriormente bloquee el
acceso al terminal.
l.l O

V i sualice el calendario de 1950 y el del mes act.ual.

l.l l

V i s u a lice el mes de septiembre de l752, Consulte mediante el manual la orden cal


para comprobar qu pas en el ao 1752.

l.l2 Determine eldia de la semana en que naci,


1.13 Modifique su palabra de acceso y reinicie la sesin. !Qu ocurre si intenta acceder
con su antigua palabra clave?
l.l 4

V i s u alice la siguiente informacin relacionada con su sistema: nombre, versin del


sistema operativo y hardware que lo soporta.

l.l 5

/, Q urdenes estn relacionadas con unane? !Y con passwd? Utilice el manual para
resolverlas anteriores preguntas.

l.l 6

U t i l ice el manual para consultar las opciones de banner. Obtenga informacin rela
tiva al trmino t i me. Obtenga informacin de la llamada al sistema open.

1.lT B u sque los juegos que estn cargados en su mquina. Para ello, consulte el manual

y localice la seccin de juegos.


l.l S / ,Dnde se localiza la orden lo g i n ? ! E n q u seccin del manual se halla? !Para
qu puede utilizarse?

Captulo 2

E l sistem a d e a r c h i v o s
2 .1.

C o n c e p t o d e a r c h iv o y d e s i s t em a d e a r c h i v o s

Podemos defiir de forma genrica el tc'.m>ir>o archivo como rrn conjurrt<> de datos corr
rlrl rrornhre asoci ulo. Los archivos srrelen rcsi<lir err dispositivos <1c' al>n rcerraminrto se
('>l>>dario, t >les corrro cintas. cliscos rgidos o clisquetes. La raz>n de 'rsigrrar urr ru>nrbre a
cada, archivo es qe <le este nrodo tanto 1<>s usuarios coruo los programas pueden hacer
rfererrcia a los misnros <h una fornra lgica. Los procesos o progranras cn jecucin dis
f>iren den corrjuto <le funciones proporcionadas por el sistema operativo para poder
nr;uriprrlar esos arclrivos. Ese (oujurrto <le funciones se conoce con < l rronrbre <k 11;ur(das
al sistrnra o s</stcm c<<lis.El concepto de llarrrada al sistenra es m arrrplio, p<res errglo

h'r tanrbirr furrciones relaci<>rradas con la manipula< in de procesos y dispositivos. Un


proceso o programa nr eje< ru irr puede escribir datos err u arclrivo rnecliante la llamada
al sistema grite y l eerlos rrrs tarde. o hien dejarlos all para que otros procesos prrcdarr
leerlos recliante la llanrada al sisterrra r((>d. Taml>irr los pr(>< c sos tienen la posibilida<l dc
< rear arclrivos, afradir o cliurirrar informacin en ellos, desplazarse dentro para consult rr
la irrforrrracin deseada. et< . a partir <lel corresp<>r><fiel>te conjrrrrto de llamadas al sistema.
Err cierto modo, se p>cede entender un archivo comrra exterrsi<>rr del corrjrrrrto de datos
asociados a un proceso, pero el he<l>o de que estos datos corrtierr existinrclo aunqrre el
proceso )la v>r tel'l>ll>lacio. los lrace espec:i;dnrente (tiles para el alrrrac rranriento dr irrfor
rrracin a largo plazo. Hemos comentado el concepto d< llarrrada al sistenra con>o rrrero
aprrnte infornrativo: el usuario final no t iene por qu ser cons<inrte d<. la existenci<c de
tales llamadas, ya qrre existnr aplicaciorres de rrrs alto rrivel que sor> las que l,rs rnarripularr
cdec>r <<l rrrrerrte.
Algrrnos sistenras operativos inrporren a todos sr>s arclrivos una estructura deterrnirrada
bien defirri<la. En UNIX urr archivo no es rn; que urra secru rrcia <le hyt(s (H bits). Algurros
programas esprarr encoritrar estrrrctrrras de diferentes rriveles. pero el nrcleo (kernel) rro
impone uingurra estructura sobre los archivos. Por ejemplo, los editores <le texto esperar>
qe la irrfonrr ((irr grlarda<la en el archivo se ene>>entre err forn(ato ASCI I. pero el rrcleo
Ilo sab<. liada de eso.

IJn sistema de archivos d< l>en>os rntnrderlo con>o aquelhr 1>arte dcl sistema resporrsable
<1< la aclruitrist racin de 1(>s datos err dispositivos <k alracerraruirnto secrrndario. El sistem>(

28

L A [' I 1 ' L L O 2 . E L ) [ .')'l')L[A f)L) ;>L)tL,'f[[h'O.')

Qc B.)<-t<[A

(k' 1(.'lllVos (1('f)(' f) I por t.'.ll>HI' los > ('<lios iit r t's; ios p ; t l 'H >ll) H)ll>ti('<'<L11('t<) st'i<tilo

pri va(lo <I< hi i rifot l llH( lI> y, H lii vcz. 1(i f)osi l )i licl l <k ' ( r)iiip>trt ir ( sa iriforti>arit) ( < as< >

rlr <[v cl s;irte> lo <1< s .


l'.lit>'(' his ('HI'a('tt'I'lst'<ls r<Ls rcl('vrtt('s (l<'l slstt'i a

( k ' H n ' h >vos (k ' ( J.<<IX p<)<l('li)s

cit;ir l;ts sigi< iitr. s:


I.<>ssiinr iosti<ti l;t fi(Lsil>iii<hl <l.rvar.. Iii<><lifi<",. y 1><>rr;tr ;irr liiv<>s y <lirt c torios.
(

H( fa >l('lllvo t rct' (I cf1k>s t t t's t lp(>!c<k' a('<'('s<> <llfr'l('l l tvs: <L'ceso(k' IP('t>ir'<L [z] .
; >c(ts<) (1< (sr iiti rr a [ w ] L H ( c t so (k ( j < (i>( iii [ x ] .

A s i i v c z . v s<>s trrs ti [ ) os <lv He< eso pucclcti (x t c n c)< >s(' k> prrsoii(L propietaria r iel
ar<l>ivo. ;Il grpo ;il ci>;11 vst;i a<ls<'rita (lic)i'i p< rsottn y al n st o <lt k >s si>arios <l<1
sist('1(L. l'so p< riit f i i ( l<>s arcliivos puc<hi s< r c oinp;Lrt i<k)s <lr' fonit;i (r>t>trola(la.
C';L(l > irsit iri<> [)tit ( lt < st ntct ur ir s us ; in l i i v <>s ( oirio (lt s< ( . < I ti>( l< () <k U X IX

rio

iii ip<>ii< trino i r t st r icc iri.


L[XIX p r <>p<>n i<>r>a )<i posil)ilichl<l (k' It">luz>' ('optai <k' scglli'ir)a(I (1< tu<hmos y c.a<la
ui>o rlc k)s ;in liiv<>s [>Hr;1 prvvet>ir ltl pvnl i <l>t ck for i r i;i a(x i<k i)tal <> tri;i)i< i<>sa clv [H
t f< )I'III>LI'1<>.

l' r o ) >(>rc ioa la pc>sihili()a() <k c'ifr'k) y < lvs('ift"k> (k' irif<'><tci(1. Eso s(' p><lc
li;ic(<r par;i (fu( lo s ( l'Ltos slo s( Iiti iit i)r s (lvgil)lcs) p>ira las p('lall>ts c[t' colloz("lll

h> (lavv (lv <lt scifra<lo.


Fl u s t tario ti c < uii i vi sin l<>f;i< a cfc los <lato. (s cl sistvni > t I vi>c">Lrgatk) <Iviii iipii
hir corrv( ta1(rit( k)s (lispositivos y <lnrlv <'I s<))>ort(' fsico <Icsc'>(I<) a. Ia irif<>ni in.
EI sttario n<> ti<'t>t <[it< pn <><pars< p<)r 1<>s <lisp<>sitivos fsir<>s, < s r l sistP>H l'l ([1
sv ( ti(arf;H (l( l a f o t ' tr)a ('ti <[c s(' Ii h ii>i a r i k >s <I >tos t r i los <lispositi v os ) ( l e l o s
Ii(li<)s fsic'<Ls rl(' t raiisfvrp>ici'> <k (lt(>s (lvs<lv v lia( i;> 1<>s tislllos.
F U %I X l o s i r ( h i vos estn o rg>>riiz,>(los (it k) ()>i( sv ( o i)<)(c corito (lir ( c t r i os. l ' n ( l i r e c
tol'Ioo t' s 1>is(1c' 11 ai)c)riv<) a)g<> vspvc i'>I. < I ct>al cont iv( it if or'ta( i <fi[ > vnnit <

lo< i)izar <itr<>s >in hivos. I.os <lin ctori<>s ptic(lvr> r oiitvt>vr. a su v< z. iivvos <lir tr>rit>s. Ios
('uttk's s(' (k'I>t)rlltrlall sill I >r t'('tor k)s. A l a ( s r i ilct >ll a les>ll tal>t(' cfv est>Lt[<,'tllrzacr s('
hi c<iocp C<> tl r>ori)l)r< rlp t str< tIH (11 ar l)ol iv ( r t i(lo. I. ii tj ( i r i p l o t p i ( o ( I ( < r))o) (k
<lin c t<>rios l[ N [ X

I o t t iltl os n [ t t s(t>i(k) t'lll )L Ii[<lira 2.)


Fl sist( tti>Lclv nr<'liivos <I< I[IV)X t i c i i c. [>'Lr>L ('I trsHI'i<). Iititi ( str<'tura e ;irh ol i n v e r t i

(k) c (I cal k>s an hivos sc' ><)<rpa vt> rlin r tori<>s. Fn Pl, to(1<>s los an )>iv<La y <Iirrrtorios
(lcp( ik ii (k r i i i ( o (lir( ( torio(l vo>ia(k) (lire( torio r t z o ><rt. ( I (Hl s< r( pr(s ( t < L

por pl snil>ok) >ir>s/> -/". En c )Lso cfv cfv tt'ga>os varios dispositivos fsi(<Ls <lv Hht>;Lccria
riiimito svct><lat i cti (1 sistc>'L (c)rtnahvtv (liscos o p;ir ti< iovs <k (lis( o). t<)(k>s <k I)('n
<Irppnclvr rlt'I clirvctorio raz. < orr>o titi sh<)ir('c't<)rir) ([e d< [icricle. ()ir< c t <> in<lii pr t art
tp. (1( la r a z . A c s t L <)p< rti( i(>ri sc la ( o t ) (e ( o ( ' I r i o i h r ( ( k ri i o r i t r i j( < k ii i ) st i) >sist( nra

(fe nrrliiv(>s.
1.<)s '<Lr('hrvos sv l ( k ' I l r Ifl('Hll (' IH Pst l'('t>lt'l<k.' (h I c(.'tI')s ))ot' l<) r)(' sc ( '<>o('(' ('olo

/)rit/>ttrrtv o t i i i ti. As . l ' H )<l('Itt> /etc / p a s s w d i <k.ntihc",> a passwd cot o r i cl c itito

([1' ('P)t<H<lvl <l ir)v< t< >rio etc t l c iral ;L sti vvz ctivlga <lel < lircct<>rio raz (/) . A partir <IC ki

2 ,1, CONCEPTO DE ARCHIVO Y DE SISTEMA DE ARCHIVOS

<''i RA-MA

tap

29

l ys .t sp

volatn.001
0 n~ r l c . O r s

tc

boat o

o sca ~

.n as h r c
datos

Figura 2.1: Esquema del rbol tpico de directorios de UNIX.


cadena /etc/pase@d no podremos saber sipase+d es un archivo o un directorio. Cuando
el nombre del camino empieza con el carcter / se dice que el camino es absoluto. UNIX
tambin dispone de nombres de camino relativos, por ejemplo, si nuestro directorio actual
es /usr, lacadena bin/txof f identifica al archivo o directorio /usr/bin/trof f .A esta
cadena se la conoce, como hemos senalado antes. como camino relativo puesto que no
comienza con el smbolo slash.
Cuando creamos un directorio, cuyos nombres son "." ( p u nto} y " . . " ( p u nt o punto).
-." es una entrada en el directorio que identifica al directorio mismo y " . . " es una entrada
al directorio padre. es decir. aquel directorio del cual cuelga el subdirectorio actual. Las
< adenas "." y - . . " t a m b in pueden ser utilizadas en el nombre de un camino relativo. Si
por ejemplo actualmente estamos colocados en /usr/ l i b , la cadena .. / i n c l u d e identifica
p erfectamente al archivo o directorio /u s r / i n c l u d e .

Ejemplos:
Si consideramos el archivo xterm, ste puede ser referenciado tanto por su ruta abso
luta como por la relativa. La ruta absoluta es algo que no depende de nuestra posicin
actual,y es de la forma:
/usr/bin/Xii/xterm
La ruta relativa depende del directorio en que nos encontremos en cada instante. Por
e jemplo, si estuvisemos colocados en el directorio / u s r / l i b , l a r u t a r elativa de xt e r m

sera:

30

C A ) ' T ULO 2. EL Sl.'>'l'Fh)A DE AR<'HIVOS

BA-r<ta

../bin/Xii/xterm
Si vstrrviserrn>s <'rr vl dir(ct<)ri<> /usr/b i n . Ia rrrta rc'lativa s<"ra:
Xil/xterm

Volv< r))os a isistir vr) este prrrrto en c l )rv< ln> <1v qrre UNIY <lifvren< ia < rrtr< Ictrrrs n>ayrs< ))
las y ruin<<s(<<las tarrrhi para l;<s rutas dv ar< )rivos. As. < l <lirv( t<>rio /usr / b i n / X 1 1 r)o
< s <1 misnn> qu< /usr/ b i n / x 1 1 . rr el caso de <)ue este rltirrru existiese.

2,2.

A lg u n o s d i r e c t o r io s i n t e r esantes

'Ioclos los sistvnnrs UNIX. a, dif(rvrrcia de otros sistvrn rs <q)vrrrtivos. ti<< n urr,< vstr<r<
trrra d l i n < t<>rios vst ir)dar svrrrvj urtv r I r reprvsvrrtad r r la hgrrra '2.1. Svgrridar< lit<
van)os a corrrvntar >r)grro directorios qu( r<)crecen rrrvr>cin especial.

El di r e c t o r i o r a z / C o r rr<> l>v)r)os ser)alado antes. hay urra, y s<>lo rra, raz en rrrist< ra
d(. rr(h)vos UN)X y s( derrota p<)r vl carcter " / " . L a r <z (s ( l rrri(!o dirv( torio qrrv
rro tivr)v <lirectori(> p<lrv. Er)este dire('torio Ias ('rrtrad><s '." y " . . " < o r)c)den. En
el dire(torio raz se sr<c)e a)m>r cnar urr archivo qrrv corrtivrrv la imagen l>inaria <le
arranqrre <lvl ncl< o cle UNIX: dicho <iv otro modo. rorrtienv l < (digo dc l propio
sistema, op<'rativo UNIX. I.sta ir;>g< rr sv. carga c n mvnr<>ria nad r rrrs ir)i<.iarl<>. y se
<r<ar<ii< rrv all ))asta qrre se apaga. Fl norhrv clr vste arclrivo clvp< r)ch <h l sistema,
pvr<> <>r>os rrornl)r(s rrnry c'xtetrdi<los s<)rr vmunix, Image. zlmage <> vmlinuz. Es n)r)y
in)1><>rt ar)te c)r)v rro horren>s este archivo, lwrcrsto qrrv si Io l>a< c.n)os, <1 sistc nra rro
po<lr irriciarsv. S(>lanrvrrtc ('l adnrirristra<1<>r (h) sist<urr lvhv t vrrvr <lvrc'<'lrc> 1)ara
v)l<ll)Ir;lr' c'1 ;rr('ll<v() al)terror'.
/h)n E l d i rectorio / bi n ( por )>ir)ar)<)) ('orrtivne r)r<r()ra dv las r<lenvs vjv< rrta)>)v rrt.i)iza
das (rr UNIX, Vorrrralrrrerrte, aqtr s<! e)r< rrerrtrarr los prograrrrrrs clvso rs corrr
p ara los rrsrrarios, <curr<> la <>rclen /bin/ c p p'rra copiar archivos. Ia orden /b i n / c a t
para visualizar arc)rivos <le texto o la orden /b i n / l s p a r a visualizar Ios ><rc)>iv<>s de
urr dvtermirrado dirvctorio.
/usr

D v l <lirv< torio /us r c r l gan los diferentes directorios <lv tra)>ajo d<' cada uno dc
los <<sur<ros. C'ada usrrari<> va a 1>o<lvr h ccvr 1<> que qui< ra corr s directorio de
trabajo (crear archivos. )>orrarlos, crear directorios. etc.), pero va rr tvrr r r<r) a<ceso
restrirrgiclo al resto dv lo <lirv< lorios. Urr rrsuario nornral. por < jvrnplo, no va a pod<.r
h orrar rrrr arclrivo dvl <lirv<'torio raz o copiar rur programa err vl <lirectorio / b i n .
Algunos sistemas harr optado por in<.l<<ir rrn <lirv<torio dv trabajo para los usuarios
diferente de /usr. En estos ras<>s, los dirc( torios clv trahajo <le lo usrrarios sc colocan
<nr directorios con)o /users, / home (caso dv Lirrx), /u. etc.
El directorio /usr corrtierrv tan))>ir) archivos qe postvriorrrretrte utilizar< otras rd(~
tres dv UNIX. De / us r c rrv)garr, aclvrrrs, algr)os srrh<lirectorios irrrportantes c.o)no
prrt'dc!Il spl".

2,3. NOMBRES DE ARCIIIVOS Y DIRECTORIOS

HA-f<IA

31

/usr/bin Cor>tiene fun<lamrnt almc nte los prograras ejecutables que de algur>a
for
nt<t so1> It>ayores ell tallla110 y se utilizan iuenos frecuenteier>te que las rdrries
< tel <lit ertorio /b i n .

/usr/ lib Go r it.i<uie l<xs archivos de E>iblinteca iitilizados por los compiladores de len
guajes como FOBTHAlv, Pascal, C. etc. Estos arcliivos cor>tieen bsicaiente
funcinr>es. e u formato especfico. qiie ptiedeii ser invncaclas <les<le estos leri
gu<i les.

/usr/ rnail Es el siibdiretor io de l)uznrtrs. Toda la cnrresponderiria se enva y se


reil>e aqu. Existe ii bu zn pnr c ada iclcnt.ificador cle cntracia al sist.ema.
Genrralinei>te toclos los archivos cle rnrrespnndei><ia slo sn accesibles por el
propietario del buzt>. Esto se liace cnn objeto <le respetar la coi>fi<lenciaiidad
d< lnsiensa jes. Eii Liiix el <lirectorin de buz<>nes re side e /var/s p o o l / r t>ail,
/usr/ rnan Es te dire(tnrin rnrttierie las pgii>as (lel riiattual e el disco dcl nrd<
n;iclnr. La nnleti ir>ar>, qu<vimos en el raptulo aterinr, ln irtir<> qe ltre Ps
1)i>sar eii este (lirectnrio l;t iiiforniarin sii< itaila pnr el iisitarin y forn><ttearla
para qiie aparezca acleci>ade>11>(
t>te prrs< ntada pnr pant>tila.
/usr/ l o cal / b i n y / u s r / c o n t r i b / b i n Fs t n s directorios snn grneralmn)te creados
por cl a<ln>inistra<.lor del sistcnut para qi>< cni>tc>igan archivos ejertitables que
t>o forma>i parte de l

U V I X e<st>i>dar. Ct>alqttirr i i s itarin q e d (-sarrnlle tii>a

t>ueva >itiliclacl. pue'de dejarla e uno de los dos directorios ateriore de nu)do
qiie sra a<'cesil)le al r<'st() <le lo usarins.
/etc Es te directorio coiitirrir nrd< nrs y ar<. hivos de coi>figura(in enipleados en la aclii
riistraciri <lel sisten>a. Ests rclcnes se guardan en ui> directorio aparte porque la
t <vora d<. ellas slo pued1> ser rjectadas pnr tisuari<)s privilegiados. >Vortt>alrt>ett
re. todos k)s ar< hivos de cortfigt>ra( i<)n presentes en UivIX son archivos de texto. La
razn es qiir de este i odo son f cil<ts dc iterpretar y d e t n (lificai. para lo cual
rlecpsit, treios inican)ent.e url editor dc t<.xtn.
/dev Es te directorio coritiriic los archivos <lc dispositivo cinplra<ins p>tra la cnmunirari(n
cori dispositivos prriferiros. tales como intas, imprc snras, disns, trrn>ii>alc s, etr. Ut>
archivo cle dispositivo cs iin archivo especial, rrcoocidu por el tileo, que. repr<>scnta
<i un el< rnrt)tn <le etitra<la-s tlida (E/ S). L a i d( a <le t.r>>t<ir los dispositivos de E/ S
coio si se tratase de ttrliivos cs algo que se coi>oce cori el riorbre de ideperielecia
de <lispnsitivn. La ittclepeit<feii(.ia dc <iispositivo es algo realinent( iiiteresate y, I)or
ot.ra parte, iy uti l izado, porqiie d< este tnndn eiplearemns las mis>as fttr>rinnes
tanto para trabajar rc)n archivos or<liriarins coro para trabajar con el< ictos d<

2.3.

N o m b r e s de archivos yd i r e c t o r i o s

Aur>que ya hemos tratado con distintos nombre de arrhivns y <lira< tnrins, tnclava nn
sab( 11)os q>>c' r<'.ghts sc iitilizali p>>r<l 11011)bI"trlns.
Lnso ni bres de lns archivos p>te<l<.i> cniitet>er l>asta 2),') caracteres. a>ll)q>ir algl>>Ls

v( rsi<>nes antigu iss de UN IX slo per>ite liasta 11. Los raractcr< s einplea<los piied<i scr

32

CA P T U LO 2. EL SISTEMA DE ARCHIVOS

cualesquiera. En la prctica, sin embargo, se suelen evitar aquellos caracteres del cdigo
ASCII que t ienen significado especial para el i n t rprete de rdenes. Como carcteres
especiales podemos citar los siguientes:

* '? > < I

L J $ $ " ( ) et c .

Todos losnombres de archivos que figuran a continuacin son nombres adecuados:


direc c i o n es
listadoMemotas
carta a D o s m eyesmagos
o rdenar. c
. prof i l e
Si queremos evitar problemas de interpretacin por parte del shell, no deberemos utilizar
nombres de archivos como los que se indican seguidamente:
$dinero$
'?datos
< desastr e >
50 I 60mombres

2.3.1. Convenios en los nombres de los archivos


A pesar de que el nombre de un archivo puede elegirse, ciertas aplicaciones toman
como convenio que los archivos con los cuales trabajan se diferencien del resto en algn
rasgo identificador. Entre estas aplicaciones podemos citar los programas fuente escritos
en un lenguaje de alto nivel. De este modo, un archivo que termine en . c, indica que
contiene cdigo fuente en lenguaje C. Si termina en . f, indica que contiene cdigo fuente
FORTRAN; si acaba en . p, se trata de un programa escrito en Pascal, etc. Esto no impide
que alguien llame a un juego, por ejemplo, j u ego .p, aunque no se corresponda con un
programa fuente escrito en Pascal.
Los convenios anteriores no afectan a los programas que contienen cdigo ejecutable.
Tales programas pueden tener cualquier nombre, lo que despista mucho a las personas que
estn acostumbradas a trabajar con sistemas operativos en los que los archivos ejecutables
tienen algn rasgo diferenciador del resto de los archivos.
Obsrvese que al hablar del nombre de los archivos no hemos mencionado el concepto
de extensin, empleado en otros sistemas. En UNIX un archivo puede no tener extensin,
tener una, dos o siete. As pues. los siguientes nombres de archivo son perfectantente
vlidos en UNIX:
programa. ejecutable.uno
prog.v e r . i . i .0 . 3

2.4.

M an i p u l acion de archivosy di rectorios

Vamos a ver seguidamente una serie de rdenes empleadas para manipular archivos
y directorios. Mostraremos cmo podemos movernos por los diferentes directorios, cmo

' >.4. ''<IAXII'IILAOI()lv DE AH( ' III i<0$ '>' l>IIIV'TORIO!>

HA-XIA

33

r < l rtn ri(lo <l( < a<la <lir t<)rio. n)r>te)ti<lo. proteg(r l r i n f orrrr Ici<). Pt('. La Irravora
.'' la (>r(len( (Ir)< varrros a v( r ( I I e l r e sto d( l ( a p t l o sor) <leo r)rv frecrterrt('. l' (".i
''1<'Il<> f<u)liar')z<<l i('OII ellas.

S intaxis :

1 s [ - 1 F aRd] [ a r c h i v o ( s ) ]

L>I <>r<lnr ls se t i l iza p >r < list;Ir l<> >Ir< lrivos <orrtnri<lo < n Ir (1t< rnrin ul<> <Iir('ct<>ri<>.
~i r)<> 1< psppcifi< a Irirrgirr ar < hiv<> ni <lir< ct<>rio <x>rra> ;Irgn)<r)t<> nr la lnea d( >nlpnps.

r < l< f( < to se visalizar Pl corrtr)i<lo < l< I <l ir< t orio d t ral)'Ij<n t<tal. ;(<(In,L. ls a(ir<)i te
Iv<l".i>< >pciorr,
<
la ( <tales<>rr <q>t t i vas, v p< rrrrit< II rot r ar (l ivra ir> forrrra( irr r( l(I
illa(l<l ('oll lo >n ('lllvo. Solo ('Orlar(l('l'at('I>lo lrr (>p('lr)e Ill<Li (')llrrlrr(".i, pPI O Ill (l<l(' (I('('Ir

'i< rr(lrr( exitrr>r)l)a otras. Si (l<Iiiraros <>I>tnr<r tol;I l,r irrforrrraci<>rr ;u.r <r <le 1
, < l<'ll. ('Il(ll'alrlos (l<l<' Pr'vil'llo l<'I Ill,'<ll)r '<l.

l j( nrplo:

$1s
Desktop
KMail
Linux
LinuxDoc
Mail
Tesis

a.out
acm
autosave
backup
C

cfg
doc
draw
e rror s
exa
fs

gzs
html
htt p
i mli b
k dein i t
14

mail
mbox
mso
nsmail
prac
ps

rpl5

sigops
s is f i
tgz

va
vst
xntp

xpdf

tk

tmp

Err ><ll,uos ('IL(> r>ecsit Ir< nro if<>rtrraci<r ;1(li( i(ral a< ('t'("a (1 t o(l<) lo viir;<liza(l(>. Err l

jrplo ar)trior ra> sal>rerrroi pl an lrivo xpdf. por ejprplo, err arclriv<> or<liario.
lir t<>ri<> <> Irrr pr>grarrr;1 < jertable. l.o ar<.lrivos rje( Irt;II)l( <'rr Ui<IX. rr<) tirrrr Irirrgurr I
xt< nitr (Irr( los iIPtifi(lue. t tl v (orrr(> ocurr( ( rr ot rsit( ra operativo. C'o l I <)p( i()
-F. l s a fr<l( rr si<t/>car< t< r "/' ' r ( a < l;I <lir< trin v rrrr asterisco -+' a ( ; la an hiv<>
<Ii)<pa pj< <<tal)lp.

l:jrr) plo:
$ ls - F
Desktop/
KMail/
Linux/
LinuxDoc/
Mail/
Tesis/
X/

a.out *
acm/
autosave/
backup/
c/
cf g/
doc/

draw/
e rror s
exa/
fs/
gzs/
ht151/

h tt p /

i mli b /

prac/

k dei n i t +

ps/

14/
mail/
mbox
mso/
nsmail/

rpm/
sigops/
s is f i /
tgz/
tk/

tmp/
va/
vst/
xntp/
xpdf/

Err < l ('ao ar> t Prior, (1(<1;.l<Ir <Ira kdei n i t v a , ou t orr In hivo <ctal>le
j
v Desktop.
Kmail o L i n u x sor> <lir(< t<>ri<>.
C<lll<lo (lrl()Pillo i rlllarrltol l a c l II lo Ill<Li < xtellsr posll>l<l( < a(la>Ir< hivo. I<ti l izan Ios
l;> <>p< irr -1 para (irteP virrali< n lo an hiv<> P f<>m)ato I;Ir@<>.

34

CA P T U LO 2. EL SISTEMA DE ARCHIVOS
1

- rwxr - x r - x

cha o

i gx

6265

abr 2 0

22 : 4 1

a . ou t
Nombre del srehrvo

Fechadeltims
modifiesein

Tamao en byres
Ornpo

Nmero * enlaces
Dereehco de sereno

Figura 2.2: Informacin relacionada con un archivo UNIX .


Ejemplo:
l ls - 1
t ota l 5 0
dr WX
d rwx
d rwxr- x r - x
d rwxr- x r - x
d l wxI'-xr - x
d rwxr- x r - x
- rwxr- x r - x
dI'wxr xr x
drwxrwxr-x
d rwxr- x r - x
d rwxr- x r - x
d rwxr- x r - x
drwxr x r x
d rwxr- x r - x
d rwxr-xr- x
drwxr xr x

6
2
2
2
2
3
2
i
5
2
2
2
2
2
2
3
2

chan
chan
chan
chan
chan
chan
chan
chan
chan
chan
chan
chan
chan
chan
chau
chan
chan

lgX
lgX
lgX
lgX
lgX
lgX
lgX
lgX
lgX
lgX
lgX
lgX

igX
lgX
lgX

igX
lgX

1024 may
1024 nov
1024 nov
1024 nov
1024 dec
3072 nov
1024 dec
5157 nov
1024 mar
1024 abr
1024 abr
1024 nov
1024 abr
1024 nov
1024 abr
1024 feb
1024 may

15 17:17 Desktop
25 13:24 KMail
17 16:22 Linux
17 16:25 LinuxDoc
4 2 0 0 0 Nail
4 13:44 Tesis
13 2000 X
17 16:31 a.out
7 21:48 acm
2 5 i i : 5 7 autosave
1 14:02 backup
3 10:03 c
2 17:23 Cfg
2 8 2 0 0 0 doc
1 2 0 0 0 dr aw
2 6 1 9 9 9 xntp
2 9 2 0 0 0 xpdf

La expresin tot a l 5 0 i n d ica los bloques de disco (bloques de datos) ocupados por los
archivos del directorio listado, que en este caso son 50. Generalmente el tamao de bloque
suele ser mltiplo de 512 bytes. Vamos a comentar a continuacin cada uno de los campos
que aparecen por cada archivocuando damos la orden ls con la opcin -l.
Los campos que aparecen por cada archivo (verfigura 2,2), de izquierda a derecha,
son los siguientes:
o La primera columna comenzando por la izquierda es lo que se denomina modo de
proteccin del archivo o lista de control de acceso, El primer carcter puede ser una

c R A-!< I A

2.4. MANIPULAC'.IN DF. ARC'HIVOS 'r' DlltECTORIOS

35

"d". qu<' irrdica que la errtrada es urr director.iu,"-". que in<li<.a quc se trata de urr
a n lrivo ordinario. Si cl ar< lrivu visualizado es mr arclrivo de dispositivo (UYIX t r a t a
a. lus dispositivos d errtrada salida como si fuesen archivos), este prirrrer carr<tcr
I>udr; sern a " c " o u n a " b " , l as cuales identificar> a los arclrivos de dispositivo
nrodu carcter y mo<lubloquc. rcspcctivamerrte. Los dispusit.ivos <nudo carcter son
<qrrellos err lus q<r< la trarrsfercncia de datos se lrace carcter a carrct< r. corr> por
ejemplo los ternrinales y las irrrprcsoras. Lus dispositivos nrudo bloque s<>n aqrrellos
quc utilizar> rnerrrurias interrrr <lias (hulfcrs) para r<alizar estas transfererrcias, con>o
<'jemplo tpico tenerrros los disus. El resto de los caracteres <lel ro<lo <lel arclrivu
(rwxr- x - - x ) infurrrrarr <l<' los perrrrisus q>r<' el propietario. el grup<> de personas al cual
l>ert<.ncce el propietari<> y el resto de lus usuarios tienerr sobre dicho archivo (currsulte
la orden chmod <lcscrita en este nrismo capitulo para obtener nrayur irrfornracin).
N mero de errla<es (links): n cla p c r n r i te que urr archivo Inred r aparecer <.rr
lugares diferer>tes crr hr cstnr<tura d<. dircct<>rin sin nc<esidarl <le tener su copi r
fsica rcp<.tida en el disco. lo que pernrit< rr rejor apr<>ve< harniento del espacio.
Para archivus nor.rrrales, este nrnrero d<. crrlaces sel<. s<r l. S i cs mayor que 1,
rl nmero de enlaces irrdicar cuntas copias idnticrrs dcl arclrivu existen en los
distintos dir torios del sistcnra. Cuarrdo el ar<lrivu es u <lir:turi<>,irrks irrdica
< untus subdirc< turios ti<'rre eelirc< toriu.
Vorrrbre <lcl propietario: rr>ostra quirr es el du<.<> d< l archivo o directorio. En el
caso del < j< nrplo. cl propietario es -chan .
Nornhre del grupo: indica el rrumbre d<l grrrpo al cual est adscrito 1 propietario
d cl arrlrivo. Err el cjcnrplo es -i g x " .
Tar>>ao dcl archivo: indica el nrrer<> dc byt<s q>r< corrtierre cl ar< lrivu. En caso
de que se lrate d e r r a rchivo de <lispusitivo, aq aparecern el rnrero rrrayor
(m<j ror nurbar) y <l r rrnr ro rerror (rrrirror nunr/rer). Estos nrmeros se errrpleall
para id< ntificar el prupi<> <lispositivu, y sern vistos corr nrayor I>rufrrrrdidad rrus
adelante.
l' ir<r y lr<>ra d<' la rltinra rrrudifica irr: srrala <'undo fue trrudifi<adu pur rltirna
vez o < urnd<> fe creado.
Nombre <1<1 archivo: es el rrunrhrc <lel arclrivu u directorio.
Al lr;r er urr lista<lo. poden>os observar que l>ay dus archivos qrrc n<> aparecer>. el <lirectoriu
a<.r>>al '." y e l d i returio padre " . . " . A d enrs. tarrrpucu aparecer' rringrn arclrivo <uyo
prirrrcr carcter sea <m punto. Si qrrercmos ver tales arclrivus. tcndr< mos qe pasarle a ls
l a (>p< in -a, qrre generalmente se combinar cun la opcin -l .
Ejemplo;
$ 1s - a l
t ota l 1 8 1
drwx-- - - - d rwxr- x r - x
- rw- - - - - - -

54
25
1

chan
r oot
chan

i gx
r oot
i gx

4 096 nov 17 1 6 : 5 9
1 024 nov 16 1 2 : 1 9
161 may 8 2 000 .Xauthorit

36

( . ' A I ' I T U I.O2>. EL 818TE!llA l)E A B ( ' l l l V O l )

- rw- r - - r - rw-r - - r - rw-r - - r -rw-r - rd Iwx

- rw- r - - r d rwxr- x r - x
etc.

1 chan
1 chan
1 chan
1 chan
3 chan
1 chan
12 chan

i gx
i gx
i gx
i gx
i gx
i gx
i gx

1902
1495
308
374
1024
118
1024

RA-'Ata

n ov 20 1 2 : 3 0 , Xdefaul t s
mar 5
200 0 .acror c
m ar 5 2 2 : 3 1 .bashrc
n ov 15 2 0 0 0 .calendar
n ov 4 15 : 4 8 .ddd
n ov 22 2 0 0 0 .desktop
m ay 8
200 0 .dt

$
L;i ()I>( i<>ii -d s( i i t i l i zi i <>rnlalni ( t (' j u i i t o ( ol i l a o p e io n - l . E s t a o p <'ion la li t i lizar( l o s
(.il i(lo (I(ralos v rr i i i i <>rr< n relcioa(la (o li 1i (l i r (t o r io ( l ) r<)pi(l.rio. (l<r<.(lios.
f(< ii<i. t< .) y il o < (>ri sil >rit< iii<l<> (arcliivos <> iii)(lirect<>ri<>s <te <ii< lga <l< l <lir< tori<>
<'llya l l<)rl''<< i <I<'s('<ll>los ('oO('('r j.

F.,j( riiplo;

$ ls -ld /etc
drwxr-xr-x 50 r oo t

ro o t 4 0 96 jun 13 13:29 /etc

$
Frl ( l <:<irltrr i or . si o l l i l l>isc rrl(>s (<)lo(: i(l<) el llio<iifi<'flor -d , s(' hiii >iesen visliza<l(>
t<>(los los an hiv<>s < orit<idos < I (lirct<>rio /et c y l l o el (lirectnrio e s.

pw<i
S int a x i s :

pwd

Est< >r <l<ui istr iiilr s tr o ( l i re< torio <l< t r il> ijo u t ii il, t 11 y (oio iri(li< ari siis irii< i

l< s (/>riir/ a<o> ki</ </iii< tor i/), ( fnriil;i (l( ( mino l lsolilto. (' Il l<lo nos l o veros lllll<llo
por (l r l ><>l <le <lirr( tori<'.tii <>r<i rl (s d(' suiri i il t i l i <la(l.
Si <lli(rer<)s vit ir l i ( o risiilt;1< l<' ii<'stro <lir(etnri<) aetilal (lf t r a b a j o oti i r airt<.
po<lrr<>s lia(< r <llie < J />io>I>/ lliiiestr( e i ( u i i i r lo d <>1><l< (stiios ill>i(a<los ll< ir<lo lo

sigite:
$ PS1='$PWD>
/home/chan)
I SI, c<)rn<> ver('losiris <i<ll'ult, <(s lla varial)le (lel shell <lu< n.'prserlta al /)n)mp/, E
t<> atrrinr fiiciorrar si estr<> itrpret( <l ) n l ( us o shll f el />os/> (Boill>e <1o//III
h<li j o el /i orn. li( ll (/'s/>.). F l resiilta(lo nn sr.; ( l esperarlo si (uibiaios let ras 1ayis( li
las p<)I' Iinisriilas. E'llrir sh< r <lii intrpretd < )r<lee est rollos ('.>picario, t.f'nt'los< (Iu(
rj( < utar la orrieri ps..'ii 1 shell <Ie enrl>l< ii<>s <'s el /) oni o el bos/>, aparr ira irltor
llia< i<n siiiir a la sigiii< nt< :

$ ps
P ID T T Y
6 44 p t s / 0
7 28 p t s / 0

TIME CMD
00:00:00 b a sh
0 0:10:21 g t o p

HA-itA

2 .I. i<IANII'l.li.ACI.'<l DE ARCIIIVOS '>' L)llfi".Cl'ORIOS

1 358 pt s/ 0

37

00 : 00 : 0 0 p s

$
Ej< iplu (l( s n (l ( l>1 nnl('>l pwd:

$ pwd
/home/chan

$
Eii el (j e tiiplo ;iiit vrior, en>no po<lviiins <>1< rvar, vst>in>ns situa<ls <lvntn) del <lirvctorin
/home, en i in s1)<lirect nrio <1( non>i>iarlo chan.

'P

tR .. ~

Qg
' $ . ;j ~

Sintaxis: cd [directorio]
La unl< ii cd ( (./>r>i>(/r (li>r(tvrl/) sv < iplva para pnrler >nnvernns <l<' nns directorios
< ntlus. E l a n i in o ( tue l e p a sa>i>os <oinu arg>iriivntn a c d , t ; >l ), c nn><> se n>i>vstr ei>
1;.> sir>taxis. pii((lv ser i> nnn>1)re <l<' (.aiiiii>o ahsol>rto o n l>itiv<>.,ii i c d r >o I< pasa>nos
< irr><> argu>netito riingii> catiiiriu. t>os localiz >r < ri iivstn> <lin ( t<)rin <Iv arrar><lu< tan>l)iv

' < ll>n< i<lo cor<) dir< ( tnrin I lOKI I ( l lOI<IE vs nt ra v >ri;>hl< (Ivl sh( ll ). Al (lirvctnrin anterior
~ 1< conoc< coua) (lin < torio de ar>(>i><luv u <lir(< t<>riu <lc ini(iu. pnn l iiv < ii>nulo ini<.iaiin>s
i>n>> sesi()i>, el s>st('i>l >ii>t ui it >cal>l<.'i>t<' r>ns .'>>tila vr> v.iv pln>to.
Ej( ii>plus:

$ pwd
/home/chan/doc
$ cd
$ pwd
/home/chan
$ cd / e t c
$ pwd
/etc

$
li< il>ente estariios sit ira(lns er> el directorio / home/chan/ d oc , < j(ut i<lo I > oni< n cd
.. os vana)s ;il <li>v<torio p i<ln (rvc> nl< (lu< ". . " r v p r esvr>t;i ;>l dire< toriu p ><ire). (IU(' ei>
~ staso os /home/chan. Ivn olvi<lv (1(spa< io v l)l;>n<n ilvspu(s (le cd, si nn l<> <nlocan>ns
c d ra) lii(oara v s< visu;ilizar uii inensaj l e e r r o r .

mrr~ f r><riji>%8% EK, I+g $ f j-.g g,:


Sintaxis: mkdir directorio(s)
rmdir directorio(s)
El rl)ol <lv directorios <le V(vi! rn) vs est ti< o, sin <luv lus i>si>aries ti< n< r> la pnsil)i
ii<l nl (le crear sus propios <lirectorius pr>listrit)uir i<.jor s f<>r>r>< i<) < ii vl sist< ni>i.
Lns in vs <lirectorios riu p>i< rlvr> sei crearlos e cual<ti>iero<lo del arl)ol, La iii >vora <le

38

C A P T ULO 2. EL SISTEMA DE ARCHIVOS

Qc BA-MA

las veces, cada itsuario slo podr crear nuevos directorios a partir de su directorio tle
inicio o directorio HOME: de est,a manera. cada persona organiza como desee su informacin
sin perjudicar al resto. Para crear unnuevo directorio, emplearemos Ia orden mkdir ( m a t e

di rect,ory ) .
Ejemplo:
$ pwd
/home/chan/tmp
$ ls - a l
t ota l 1 2
d rwxr- x r - x
2 chan
d rwx 93 c h a n

i gx
i gx

4096 jun
8192 jun

17 17:50
17 1 7 : 5 0

$
Esto es lo que tenernos actualmente en el directorio de t r abajo, si queremos crear un
nuevo directorio para pocler guardar nuestros progratnas fuentes en C podramos hacer lo
siguiente:
$ mkdir s r c
$ ls - a l
t ota l 1 6
d rwxr- x r - x
3
dz'wx
93
d rwxr- x r - x
2

chan
chan
chan

i gx
i gx
ig x

409 6 j u n 1 7 1 7 : 5 2
8 19 2 j u n 1 7 1 7 : 5 0
4 09 6 j u n 17 1 7 : 5 2 s r c

$
Como podemos observar, en este caso mkdir crea un directorio nuevo a partir del actual.
Si por cualquier causa queremos deshacernos de un directorio, utilizaremos la orden rmdir
(remo@e directony). Antes de eliminar un directorio debemos asegurarnos de que dicho
directorio est vaco. Siguiendo con el caso anterior, vamos a eliminar el directorio recin
creado:
$ rmdir s r c
$ ls - a l
t ota l 1 2
drwxz x z x
2 chan
dz wx
93 chan

S intaxi s :

i gx
i gx

40 9 6 j u n 1 7 1 7 : 5 5
8 19 2 j u n 1 7 1 7 : 5 0

c a t [a r c h i v o ( s ) ]

L a orden cat s i rv e para v isualizar el contenido de archivos de texto ( A SCII ) p o r


la pantalla. Si a cat n o l e pasamos como argumento ningn archivo de texto, entonces
leer caracteres de la entrada estndar (teclado) hasta que pulsemos Ctrl-d ( d) . Una vez
hecho esto, visualizar lo que acabamos de escribir. Podernos observar que cat es una
orden que por defecto (si no le pasamos ningn argumento) lee en la entrada estndar y

2.4. I lANII'ULAC'IN DE AII(;HIVOS Y 1)IREL FORIOS

H A-'(I A

39

l<l'l' P sll sal(de( a la scrlrdl PstII<lal (paIltallcl), XIS tar(k' vcrvrrlos (l(iv. B t(xla old v II (l<le.

rrrr<pla est<>s re<lisitos se l< conoce cnr> el ornl>rv de filtro. El car( ter (.trl-d en Ui%IX
- l:< (<)arca de final de c<rclrivo. En cl caso arrtvrior. al prrlsar la comhirrcirr de tvcl;<s
:r>di< ad l. Illcrrcarllos Pl flrl<l <le la vntr((la dv datos des<le cl tvclcldo.

Eje>pk>:
$ cat p r o g . c
!include <stdio.h>
m ain ( i n t a rg c , c h a r + a r g v L ] )
i nt x ;
for

(x = 0 ; x < ar gc ; x+ + )
p uts( ar g v [ x ] ) ;

2 .4.1.

< C nico podemos cont r o lar l a salida del t e r m i n a l ?

D< terruirradas rdevs prrcdvrr provocar rr volc rdo rrrasivn dc ir>formacin la pan
<allc( (ste es el cas<> <k" cat <and visualiza>ll()s (lll c<I clllvo gllrld<'). Erl (stos casos, la

irrforracirr pasa tar) r pi<k> <Irteo sourus capen es dv leer r(a<l r. Si <lu(remos dctcrur vse
(< ik a<l<> de ir(forma< i<>n, p(>dr( Ir(os ir>u < rlo utilizan<l<> la <omhirrci<>n dc teclas ( trl-s. P(rrcr
rea>r(rdar dc rrrr( vo l;r visalizaci>n. pulsar<.rr!(>s ("trl-q, Si lo <luc <l(searrros cs ahor tar la
< >rd( rr d( finit iwrrrnte. Ilt ilizarerrros la ('omhirracirr <lv te('las ('trl-c.

mox,fi-

'(

Sintaxis : more [archivo (s)]


Lc< or'de>l more imprirrrc por p )talla el contenid<> (l<l rclrivo <lv. texto (luv k pser)tos
i <Ir<> argurrr(rrto. En est< c;rs<>. y a <lif< reniade k> qru ocrrrra <orr cat. <1v Irrostrl>a
r<><k> ( l arclrivo de fornra <ontin'r. la visrralizacin sv k r(v pcrrrtallc< a par>talla.
( urdo more detiene la visrraliza(i)rr, pcua poder rontimrar co lc< pant dla sig>riente
~lch<'na>s pulsar la barra cspa(idor r. Si k> rrrico <pr( qucrcu>os es v(r la siguivrrte lnva.
prrlsucmos ENT RAR , y s i <Ivr<uus t<.m)ir)ar la v i sualizacirr. prrlsar< u(os l < tv(.la q
</</.). Err to<l(> nronr<'r>t<> more ru)s vr irrforrrr>><lo s<>hrv qu<'. t<u>t<> p()r (icrrt<> dcl t<u()ar)o
i k'l ar'('ll>v(> llPv>ll(>st l'<do.
Ejvnrplo:
$ more s e r v . c
/ * + * * * ~ ~ * s * s + + + * + ++*+se~+~+*~* * + ~ * s s s s ~ e~* * + + s s s s ~ * <
+ Antes de iniciar el servidor y los clientes hay que
crear cuatro fifos de nombres: Fifoi, Fifo2, Fifo3
+ y Fifo4, mediante la orden min)od "Fifo! p" en el
+ mismo directorio donde estn tanto los clientes
c omo el s e r v i d o r .
W 44 4 4 4 4 4 8 4 4 4 4 4 4 4 4 4 4 4 4 0 8 4 4 W 8 8 <

e 4 4 4 4 8 4 4 4 W < 4 4 4 4 4 4 4 4 4 4 44 4 4 /

40

l<A-t>1A

C A l ' T L LO 2. I : I . >ISTEXIA DE :(>lt('HIA'OS

!include <stdio.h>
!include <fcntl.h>
main()

int DescFifoi, DescFifo2, DescFifo3, DescFifo4;


int CanalActivo, nwrite;
c har c h ;
I+ Abrimos los cuatro fifos en modo slo escritura +/
i f ( ( D e s c F i f o i = o p e n ( " F i f o i " , O WRONLY)) == - 1 )
perror (" Error de apertura del Fifo 1");
--More
(36%)

h ead y

t ai l

Sintaxis: head [-N] archivo(s)

t ai l

[ - N] a r chivo(s)

Las <>rdenes head y t a i l


s c p c d e n t i l i zar para visllaliz lr las prileras N leas u
las ltinlas N leas <le lrn ar< hivo <le texto. r< spectivarn< nte. I sto pue(l<: ser til. por<lur.
nlchas veceso nec(sitlu<)s visualizar rl ar< hivo de texto por <.onlpleto, sino <Iue nos
hastll ('on Algaas lneas.
Fje>1)los:

$ head - 5 p r o g . c
!include <stdio.h>
m ain ( i n t a rg c , c h a r + a r g v [ ] )
int

x;

$
En <1 ejnplo anterior vsalizalos las prinleras cinco lneas <lel a<chivo de text<> prog. c,
$ t ai l - 4 pr o g . c
f or ( x = 0 ; x < a r g c ; x + + )
p uts(ar g v [ x ] ) ;

$
Fn est (' caso hel()s vlsuallzll(lo ll(s cuatl o lllt l nlAS lneas (lel al ( hl v prog . C.

g+P Q .+ ~
S intaxis : o d

>> I

[ - b c d f ox ] [ a r c h i v o ( s ) ]

La <>r<len od (v<>1< ><l<><)<t:(l. O</nl rl>r>n/>)setiliza para realizar u v olea<lo, en <)ctal,


(l(! Cotei< l<> (1(' AI('hlvo. Si a od n<> se lc cape( ifi(;l nign archivo. Ic(ra' de lll ( ntra(hl

2.4. MANIPUI.ACIAN DE ARCHIVOS Y DIRECTORIOS

BA-MA

41

. ndar hasta detectar el final de archivo Ctrl-d, y despus visualizar lo escrito, en octal.
' in la orden cat slo podemos visualizar archivos de texto. Con od podemos visualizar
*.l otenido de cualquier archivo, incluidos, por supuesto, los archivos de texto.
La orden od acepta diversas opciones; las ms comunes son las siguientes:
-b X isualiza los bytes cono nmeros en cdigo octal,
-c Visualiza los bytes cono caracteres.
-d Visualiza las palabras {16 bits) romo nmeros dccinales siu signo.
-f V i s ualiza el contenido del archivo como nmeros en coma Hotante de 32 bits.
-o Visualiza las palabras como nmeros en octal sin signo (opcin por defecto).
-x Vi sualiza las palabras en ccligo hexadecimal.
Eji ni>los:

$ od -c datos
C
o
0000000
0000020
0000040
0000060
0000061

c
f

h
r

t
v
s

e
o

i
Il

o
a
3

t
4

d
o
5

e
s
6

1
"
7

$n
8

a
C
9

r
i
0

$
$ od -b datos
0000000
0000020
0000040
0000060
0000061

1 03 157 156 164 l 4 5 15 6 151 l 4 4 1S7 040 144 145 154 040 l 4 1 1 6 2
143 1SO 151 166 157 040 042 144 141 164 157 163 042 012 103 151
146 162 141 163 072 011 061 062 063 064 065 066 067 070 071 060
012

$
$ od -bc datos
0000000 103 157 156 1 64 145 i5 6 15 1 144 157 040 144 145 154 040 141 i 6 2
C
o
n
t
e
n
i
d
o
d
e
1
a
r
0000020 143 150 151 1 66 157 040 042 i4 4 14 1 164 157 1.63 042 012 103 l S i
c
h
i
v
o
d
a
t
o
s
" ,n
C
i
0000040 146 162 141 163 072 Oii 0 6 1 06 2 063 064 065 066 067 070 071 060
f
r
a
s
:
t
1
2
3
4
5
6
7
8
9
0
0000060 012

$n
0000061

$
E ei primer caso. hemos hecho un vok ado del archivo datos, c el cual se visualizan
bytes del mismo cono caracteres ASCII. El carcter $n cs el carcter de nueva linea,
' cl carcter t e s el t ahlador. Cnno se puede apreciar, la primera coluuua indica el
lcsplazamiento dentro del archivo {en octal). En el segndo caso henos hecho otro volea;
lll. pero ahora la visualizacide cada byte se han c forna de cdigo octal. Del modo

42

C ' :>(l'l'l't lLO " . E L 'SIH'l'El(1<>< l)F ARC'I ll%OS

ll.A->X I A

it< r.ior p<>dn ri>s ah< r la >rrvsp<i<leeia etrv c;ir et('r A! ) ( ' I l y
( ( x l i g <> <><.t.;ll as<>< ia
d(). En e l t e n < r e j ( i p l (). Il< iiis i i t i l i z ad<> las <1(>s <>peioes aiit< ri(>res siiiriilt u ; i r< iitv.

A<I x< pck a p n ciar ari 1< j(>r la (<>rn sp<lvri< i;i erit n earc ter ASC'11 y xligo <>et;11
soei lo. Por ( j< ipl<>. < l ( ;)ra( t< r a es < I I 11 vr i o< t ll. y vl r i r c ter 1)lalrc < > vs el -leal I ii
()<'1 <11.

ui

RP i W

Sintaxis: cp archivo(s) destino


L i oi derr cp s( lit iliz i p ir i ( opi ir ; i r( ) ii v()s <lc' iin 1g ii i o t ro ( ii el irl)<)l dv dir( ( t orina.
C (>iol1111110.cp Ii( < eslt i dos

lll gillrl( tos. < I pl llf l <)vs ( I ir( liivo c xist viit(' (l ll(' (lllel Plll()x

((>piir <.Il (r<> lug;ir, y e l xc giiri<1<> <s el iioiril>rv cl( I cl(sti i i(>. Las r u t ;is d< 1<>x d()x 'ln ll i v()x

piic dc <l ir tar)te) dv lo riiil ;ll)sr>liit i eoio r< lativa, B< 1)< m t(ii( r ( lli<1 lelo a 1 i llor i
de < hgir pl ric>iiil)re <l< I anhiv<> dpstiri<>, puvs si previamvnt< exista otro l lr< liivo (ori <I
ll iiiii<>ll<)i r i I>n, s( r < limiili<l< >. !) i ( 1 nc>1111>ndc I ar< llivo <le st iii< > vs ii clir< c t<)rio. Il ira c Iii<
( I ;in l i i v ( ) f i i ( i i t < s v ( < ) p i(' d ( r i t r ( > d ( d i ( l i o < l i n ( t ( ) r i o ( ( >ri vl ri i i s riio ri ( )ri>I>rv (Iir(' t e n i ( 1

ir< liivo oi igiiiiil. C <>iicp t aiiil >i(ri p<><l( iiis c opi;ir v( r i c)s arc liivc>s lli( lit< siniiilt; < '1lilplit('
< 11 uii <lvtvrirlillid() <lirc< torio, d( xt iii<>cl< l)P s('r ol)ligal <>riarlic lit( l l r i d i r v c t <>ri<>.
E jvi i i p I< :>

$ pwd
/home/chan/tmp
$1s
d atos p r o g p r o g . c s e r v . c
$ cp serv.c /home/chan/src/otro.c
$ cd . . / s r c
$1s
o tr o . c

$
C<i c llo Iim<>x eoiis(gi<lo c<>piar ( I cin hivo / h o m e/c ha n / t m p / s e r v . c ( e l < tire< t<>ri(>
/ home/chan/ s r c , p< rt> eii < st ; l eo < on (1 n(iii>rv ot r o . c .

Sintaxis : mv archivo (s) destino


Est; >I.deii ti v i i< ii r ia si i itxis i<l<'ti<"ii 1 cp . C ' on m v, I (> <Iii( l ia <( i o x e i <>vvr los
an lliv<>s d< ll lg ir ;i <>tro. C <>io (osvevir(ii. los ar< liivs <>rigvii dvsaprrp(vr ri <l( su
Ioealiziei(>ii iieiil. La <>r<le mv la uti l izare>x taihi<'n para c 'iiiil>iar Pl iloil)n ( r < i>rii
hrlir l ; i ii r i n l l i v <>. Par'i n r i <>nil)rar ii i > ;in lii v<>. ii() t( r i <lrn o s ni s <Iiiv ll i o v c r l<) dentr<>

del <lirv< torio en (Iiic. est loealizaclo y ste ad(luirir el noll>rv dc l arel>ivo <lestin(> pix;l< >
eorllo >ll'gilrellt o.

Ejemplo:
$ pwd
/home/chan/tmp

kA- W l A

2.4. MANIPULACIN DE ARCHIVOS Y DIRECTORIOS

43

$1s
d atos p r o g p r o g . c s e r v . c
$ mv prog.c . . / sr c
$1s
d atos p r o g s e r v . c
$ cd . . / s r c
$1s
o tr o. c p r o g . c

$
kl mover el archivo prog, c desde el directorio /home/chan/tmp hasta el nuevo directorio
borne/chan/src , vernos cn1o el archivo inicial desaparece del directorio de origen. Al
~1afizar el contenido del directorio destino, comprobamos que existe un nuevo archivo,
~.onnado prog, c.

Sintaxis : ln archivo(s) destino


La orden ln (lnk) tiene una sintaxis similar a las dos anteriores. Se utiliza para permi
.. qP un mismo archivo aparezca en el sistema de archivos bajo dos nombres diferentes,
r~~ cou una nica copia. Con ln no se hace una copia del archivo origen, solamente se
r~ a otro nombre de archivo que hace referencia almismo archivo fsico. Eso permite que
:n nica copia de un archivo aparezca en varios directorios cou distintos nombres. De
-1~ n1odo, se puede compartir informacin de forma cmoda. Si en un momento elimina
~~~ ~ alguno de los archivos que hacen referencia a la misma copia fsica, slo eliminaremos
-l non1bre. pero no la copia real. sta slo ser definitivamente suprimida si eliminamos
' ~los sus vnculos (li n o). El nmero de enlaces de un archivo lo indica el segundo campo
" la informacin que obtenemos con la orden l s - l .
Ejenlplo:

$ pwd
/home/chan/tmp
$ ls - l
t ota l 8
- rw-r - - r - 1
- rwxr- x r - x
1
-rw-r r1

chan
chan
chan

i gx
i gx
i gx

39 no v 18 1 6 : 0 5 datos
409 8 n o v 1 7 1 8 : 2 4 prog
194 1 n o v 1 7 1 8 : 2 9 serv. c

$ ln pr o g p r o g r a ma
$ ls - 1
t ota l 1 3
-rw-r r1 chan
- rwxr- x r - x
2 chan
- rwxr- x r - x
2 chan
- rw-r - - r 1 chan

lgX
lgX
igX
igX

3 9 nov
4 098 nov
4 098 nov
1 941 nov

18
17
17
17

16:05
18:24
18:24
18:29

datos
prog
programa
serv. c

44

C A P T ULO 2. EL SISTEMA DE ARCHIVOS

RA-MA

En el ejemplo podemos ver cmo el campo que hace referencia al nmero de vnculos o
e nlaces vara de uno a dos, del primer al segundo ejemplo en el archivo prog. A p a r t i r
de este momento, prog y p r o g r a ma son dos archivos diferentes que contienen la misnra
informacin y una nica copia en el disco.
Vamos a insistir un poco ms en esta orden. con objeto de dejar ms claro su funcio
namiento. Supongatnos que tenemos un archivo. que denominarnos pss. Usando la orden
ls - i p o d emos visualizar su ntnero de nodo-i. El nmero de nodo-i es un valor interno
utilizado por el sistema de archivos que permite localizar toda la informacin relacionada
con el propio archivo (tamao. propietario. grupo, derechos de acceso. tipo de archivo.
punteros a los bloques de disco, etc.).
$ ls - i ps s
147468 pss

$
Nuestro archivo pss tiene un nmero de nodo-i igual a 147468 en el sistema de archivos.
Ahora vamos a crear otro enlace a pss denominado masp. Para ello, daremos la orden:
$ ln

p s s masp

Vamos a ver de nuevo el nmero de nodo-i para el archivo enlazado masp.


$ ls - i m a sp
147468 masp

$
Como podemos comprobar. ambos archivos tienen el mismo mmero de nodo-i. de manera
que accediendo a pss o a masp estamos accediendo al mismo archivo fsico. ya que el
sistema de archivos utiliza el mismo identificador de nodo-i en ambos casos. Cualquier
cambio realizado en el primero de ellos se manifestar en el segundo. y viceversa.
A este tipo de enlaces se los conoce con el nombre de enlaces fuertes o hard links.
El problema dc este tipo de enlaces es que no sirven para archivos qlle se encuentren en
sistemas de archivos diferentes (por ejemplo, diferentes particiones del disco). Los enlaces
duros tampoco no son aplicables a directorios. Para solventar estos problemas. podemos
hacer uso de otro tipo de enlaces. denominados enlaces simblicos o soft lnks. Un enlace
simblico tiene una funcionalidad similar a un enlace duro. pero es posible utilizarlo en
archivos que seencuentren en diferentes sistemas de archivos as como enlazar directorios.
Para crear enlaces sitnblicos. se utiliza la orden ln con la opcin -s (s oft),
Ejemplo:
$ ln

-s ps s a s s p

$
De esta forma. hemos creado un enlace a pss apuntado por assp. Si ahora utilizamos la
orden ls - i . c o m probaremos que ambos archivos tienen un nmero de nodo-i diferente:
$ ls - i p s s a s s p
147469 assp 147468 pss

It A-t<1A

2.4. KIA.'<llPULAC'!N DE Ait<.'HIX<O.') '>' DIHECTORIOS

45

l 'r ilizaiid<) la ordvn 1s -1. podremos .nprobar c(>mn masp es uri enlace al pririier archivo:
$ 1s - 1 p s s a s s p
1rwxrwxrwx
1 chan
-rw- r - - r - 2 chan

i gx
igx

3 no v 19 17 : 4 8 a s s p - > p s s
409 8 n o v 1 9 1 7 >80 p s s

L.i prirn(.ra 1 icliiid;i jurito co>i el caipn <le <lrrvchns <lel an h ivn a ssp it>di< a <!uc est<.
+chivo vs ii er>l;ice sir!x>lic ;i pss. Ls p( rniisos <l<n ( l ;>(( simlxli(o r io se iiti l iz>ul
.>pare(vi> siert>pre a rwxrwxrwx). En vsts casos, los der hns <lvl ar(hl v v l>la((' sol> lo<

rtal>l<)s <ll>e los dcl archivo <lestinn (vn i ie)tro caso pss). F e ste cas. Iaml)i<'n t>uit
=ss n assp liaceri r(fvr< r>ci)> a la inisn>a iriforni ui<>ri. D< bers t< nvr <id>ido cnri !os
-r<lac<) sitnlx>lits, va <!Iiv si vliriiinamns el arcliivn <liiv actia co>r> destirin dvl enlace, l
1r<ii>v<) (Ii>v ln eI>lazaba s(!gir> ( xist i( r>d y ap>ii>t >r ar> ar < liivo ti<) < xisteritc. F)to v s
~-t por<l>te vl sistvn>a. i! contrario dc. lo (Iv oc>irra cnn los enlaces duros. no n>artticric
i il>sr ii>l('Ia (lvl i>ll>i>('I < ) (1(' vvcc) (ll>() ll>l 'iin'1>lvo se ('11('il('Ilt r>> ('Illazii<lsirllbllc,'l ll>vi>te e>l

! . i st<riia de iir c l t i v o ) .

rm

e @a a

'R

kl

Sintaxis: rm [-irf] archivo(s)


La onlvn rm () <.'m<)<~e) )e>itiliza p ir'i b o r r ar i r c l i i v os. Si 'ilgui>o dc lo'.< >Lrchivos l<'I<,
. < i idos no existiera, rm Ii<)s eliviara >ir> na 1>saj< dv tvisn. Si < l 'i>el>iv lio t i( li<' d(n'cll
.' ix< ritura, auiu!I s c a r ii<x) s prpiet;irio. rm iio) p r< guiit;ir> si r('ali<ui>c (Iuer'vi>tos eli
::>iri;i> ln. De nt rro<lo. cst)i ordvr> llevar) a < al>n ) lal)or silen< insari>entv. si < r>viaros
..i> i>t>eiisaj<'. Deben>s tener ii i iicho cui(la<lo coii lo ( I uv v a r>io) a h o r r a r. p t r est<) <!>iv
. XIX >lo p('l'i>lit<.' (!Il(. >>>i )>I('hivo bor'l'ad<) piila s< r re<pvr>i<l<>.

I.as opciones rri;) < nriinvs de rm so:

l f<))r <) Fuerza el l)<)rtado d(' los r <'liivos. itirl>is<) si <-'.star> prnt('gids (oiitr>i ()<'rit ur>i
(('l ar< liivo (leb<.. p< r tcv<.vr a! s>i>ir in <Iue (! t tiere 1)orrarlo).
l <n/<"r<<c/r)()e) At>t(s d<' !)Ol I al' (>i(la iii>o dv los i>l ('ll>vos. rm iis pi ( g l i l lt a si l cal>('l) te
(!I 1('l'v>>los l>acvt'lo,

l icciirsi >)e) CIi est;> p( i<ii rm 1)rra los ar(l>ivs (le >iii <lire<.t<)rio dv fnria rv<rsiva.

c) <lecir. borra >o<l<x) lo) psihlvs an hivos lo< alizados eri strbdir<ctnrins <lvpcndi< ntvs
d< 1 directnri<> e)p if(>i(lo.
E(i ipl):

$1s
assp
d at os
$ rm pro grama
$1s
assp
datos

masp

pr og

p rograma

pss

masp

pr og

pss

s erv . c

s erv . c

46

C ' A l ' l ' l 'l! L() 2. E L SIS'l'EBRIA DE A ll t.'H I VOS

l ( .)<-t)1>)<

Sintaxis: file archivo(s)


C'oin lu iii<>s iii<lic(al<> ante ri<>rrirte, U.'XIX nn iip< r i i i i gi f<>riato < special a ss
)in l)iv<)s. El fnrin it o d v p ('irdv ii i i(" u i i v i itv <I(' 1< prngr;u'is o i)t ilid;)<l('s (luv iit i l i z air diclio
;)r('hivn. (.'nitro Ii('rn<>s visto 'ii)tea, cat , h e a d y t a i l tr ii h a j ' u i ( '(>ii (in'ludiros <l(' tvxto ( ( 'Il
><ligo A.')CII) . P ( n > i)<> piivd< ii tr;il> ijar cnri ) r c h i vns cl( <>t r<> tipo, ya clirv (stas r<lvrr s
iritvrpr< t;iri s<>h> anliiyn cl texto. I.a c>nl<'r) f il e i t i t e rita d(irnos ir)f<>r)r)a iri acvrc"ii dc I
tipo dvl a n ' h i v(> (lii(' I(' pas<'iii<>s c <>nu> argiiiiivii to . P ar a <lvt<'rn)inar lns t i p os. f i l e l v ( ' u rios
cuaiitos l)ytvs al coiirivrrx<> <l( I '<r('liivo, y a pa i'tir (iv vstn 1)rrs("i iiidicios cinc Iv ii)dicto< ii <'I
tip<> de arcliivc). Los rin liivns c jc < utal)lvs piin>s sc>ii f< ilc s d idvritificar.. piiest<> <liie vn sii
('oriiivrrxo llevar) )iii'i rriarca, <leiic>riiiiiadii ri)iiien> n)'gi('<> nr<t(/ii ><u>(i/><
r. (l(iv ideiitif ii)c)i al

> ir< Iiivo corri<) tal. Si c I rn Iii'<> c<>))tic i)v ( ivrtos patrnries. tal( s (ni))c> I i ( ad< ii ) main() . f i l e
i<l< iitificar; al i r< liivo < c>nio )iii pn r ani i fuent< vn lvngiiaj ( ( ' . F s t<>s iiidi( ic>s. <Ii)v alguiit(s
vc (vs sv c ii<.rr( ritraii i i i s c s(<>iiclidc>s, soii lo <ii)e hiisca hi c>nlc ii f i l e p ; i r ( i i d v n t i f i c (r ( I

tipo cl< )iii archiv.

Eje)i) pln:

$ file /etc/passwd assp prog.c


/etc/passwd: ASCII text
assp: symbolic link to pss
prog,c: ISO-8859 C program text

2.5.

U s o d e a r c h i v os: p e r m i s os

F l sistvi;i U %I X p n >p<>rcioii i la p o s il>ili<lad ch l >r<>tvgvr la i r i f nr i i ia< i(n. P)ir) l l o ,


asocia ) c ada ar( hivo ii ria svriv rlc' dvrvclios <le a c so. Eii f i i ri< i(>ii < I 'stos. s( d vt<'rrnitia
<lu<' v I<> (l)iv <"id'i iisuari piiv<lv h i< vr < orr vl archivo. Estos dervclios sv vxtiericletr ti tres
grripos <lv ii)<lividiros: el propir t ;irio. c'l griipn clvl pn>pivtario y v l r esto. A si i v vz. estos

grul>os piiv<lvn t< ii< r <lif(rer)tvs posil>iii<la<les <lv ;us o ;i l ; i rchivo: p;ir;i lvvr i i i f orniaciii
d<l uiistiio, para (scril>ir. v vl n par i vjvcut u lo, eii < I (as<> <Ic' cpu s< corn spori<la <oii uii
;ir< liivo c jv())tal>l( . Este>s <l n < l)os ip;in < vn ( n i n i i n ' i sc ( ii< ii< i'i <lv riuvvv < ara< terca r, w.
x n . Ui)a r i n cli("i <1('rv<'lu> d<' I('('t)ir'i. ui)a w de vscrit i i r ;i . ) I ; i x cl ( v j vc uciii. E l g u i l l
iiicli< a (lue ( l rlvrcc ho <orr(spni idi< ritv (sta <1vsa( tic ul. Est()s svcuvri( ias <lv c iractervs s(
< grupa)i d( t r e s v i i t r e s . D < i z cpiier<l;) a <1vr< cliii tv tiv ii ios ln s i g i ii<.ritv: los t r v s p r i i n ( n >s
(ar;(< tervs sv corrvsl><)i)<iv)r (oii los dervc hos dvl propietario (i ( svr). I os tres sigiiivnt(s ( o r i

l(>s <l('I griipc> (c/)owp) y 1(>s trvs iltiiiins par;i (1 na to (o l l >< >s).

i' HA-t>tA

2.'). LlSO DE ARCHIVOS: PERI<II.'>OS 47

Sintaxis: chmod modo archivo(s)


La orden chmod (< h<i>></e>ode) va a permitirnos m<>ifificar los p(ri<iis<>s dvn archivo.
Para podvr m<><lificar vstos dvrvhos, <lvbemos ser los propietarios del mismo. Tambin el
diiiiistrador d<l sist<a o siipvrus;u.io tiene la posibilidad de cambiarlos. Si i>o sonios
i (1 propietario del arcliivo iii el adtniistrador. chmod fallar. Para vainbiar el iiiodo de
u ar< hivo seguirenios estos pasos:

1. C o nvertir los campos <l<. protecciii a dgitos biiiarios. ponien<lo un l en el caso de


que queraios activar diclio caiiipo (rwx). u n 0 eii el caso d< qiierer desactivarlo.
S i, por (jeniplo, quereiii<)s que los p< rniisos finales del archiv<> svaii rwxr - x r - - , l a
secuvn<ia de dgitos biarios sera: 111101100.
Dividir vsos <lgitos biiiarios vn tres partes <lv tres bits cada t>a: t>a par i < l iisuario
(propietario), otra para el grupo v iina >lti>a para <1 resto <lv los iisiiarios (otros).
<le tres dgitos < ada uo.

Convertir c a di< grup<> de tres <lgitos aui<ieraci octal.


4. B <inir los tres <lgit<>s ovt;il enn fnivn nmern. el < ual ser el tod<> qv lv pascros
ron>o argmvto a chmod.
Si, por jen>plo. <Ivrvmos dejar >> ar< liivo vo el ri)do rwxr - x r - - .
la siguiete foria:

I <lodo

Usa r i o

r wxr- x r Valor l>inario


Valor octal

rwx

G r u po

l o h aremos dv

Ot r o s

r-x
101

100

Ej <'l p f o :
$ 1s - 1 s p c r u n
- rw- r - - r - 1 chan
$ chmod 754 spcr un
$ 1s - 1 s p c r u n
- rwxr - x r - 1 chan

igx

409 8 n o v 2 0 1 3 : 0 5 s p c r u n

igx

409 8 n o v 2 0 1 3 : 0 5 s p c r u n

$
Otra forma <lv of>tvnvr vl m i sni<> res>tltado sera asignando a (<a(la peltliiso d v. lv(la ,
s< ritra v < jec< i<>tlv <a(la )isitario, gr)lp<> y otros, iit> ni('r<)d vteriniiia<lo v obtv(r
"1 mod<> fi;<l <p le pasai>ros cotno argumvt>to a chmod s<iiaiido diclios t>tnvros. Los
. <lores asocia<.los son los siguivt>tvs:

Derecho de lectura del itsuario, 400


D<.rvcli<) <k vs< ritura dvl sario, 20()

48

C A P T ULO 2. EL SISTEMA DE ARCHIVOS

RA-MA

a Derecho de ejecucin del usuario, 100


Derecho de lectura del grupo, 40
Derecho de escritura del grupo, 20
Derecho de ejecucin del grupo, 10
Derecho de lectura del resto. 4
a Derecho de escritura del resto, 2
Derecho de ejecucin del resto, 1
Siguiendo con el ejemplo anterior, si queremos obtener la siguiente lista de permisos:
rwxr-xr , tendramos que sumar:

r wxr - x r
200
100
40
l0

+ 4
754
Como podemos observar, el modo 754 es el mismo que el obtenido utilizando la tcnica
anterior.
Existe una ltima fornia de especificar los modos de forma simblica. Veamos unos
ejemplos:
Ejemplos:
$ 1s - 1 f o o
- rwxr-xr

ch an

i gx

54 n ov 20 13 : 1 9 f o o

$ Chiticd -W OO (t/uitamos et derecho de escritura at archiuo foo)

$ 1s - 1 f o o
- r- x r - x r

ch an

i gx

54 n ov 2 0 13 : 1 9 f o o

$ chmod o+x foo (ASadimos et derecho de ejecucidu poroet resto de usuarios)

$ 1s - 1 f o o
- r- x r - x r - x

chan

i gx

54 no v 20 13 : 1 9 f o o

$
De forma general, las abreviaturas simblicas que podemos utilizar son las siguientes:
u Usuario

g Grupo
o Otros

2..'). USO DE ARCHIVOS: PERMISOS

BA-MA

49

+ AI<adir perIiso
()itar permiso
'l<m<bien es posible. en algunos sistemas, especificar los derechos utilizando romo modo
i:< secuencia de mleve letras que aparece con la orden ls - l . E s t a lltima cs la forma ms
>Ioda e intuitiva dc utilizar la ordeII chmod.
Ejenlpln:
$ ls - 1 f oo
- rwxz-xr
2 chan
$ chmod r- x r - - r f o o
$ l s - 1 f oo
r xr
r
2 c han

i gx

3 4 abr 1

i gx

34 ab r 1 18 :2 1 f o o

18:21 f oo

Sintaxis: umask [mscara]


l.os permisos asignados a un archivo o a u directorio cuando son creados dependen
i< >u<a variable <lenolninada usar nl(<s/l Podemos visualizar dicha variable dando la or(len
umask sin argumentos. El resultado son tres dgitos ortalcs que indican. dc izquierda a
i ce< ha. cl valor de la mscara qc determina los p(rmisos iiciales para el propietario,
p;<ra el grupo y para el resto dc los usuarios. Cada dgito octal de la msrara contiene
:(<~ dgitos binarios, u 1 binario indica que cuando se creen mlevo arcldvo el permiso
~~ >( i>uln (rwx) ser horrado. y un cero biI(ario i<t(lica q<(Cse IItiliza el per<iso inIplrito.
F:l l>( niso itplcito es u pernIiso global que por defecto scle trt<er el valor rw-rw -r w
s><lo 666). Si o deseamos qe por defecto nuestros archivos y directorios se rnren (.On
valores. podremos cambiar el vaior <le la Ins<:ara <le usuario <l<ulo la orden umask
<>(> el llrgunlento oportuo. El valor dcl nlisro p<lede ser calculado restando el modo
i. <*ado por defecto del todo actual. Por ejen<plo, si quereIos que nuestro lodo por
'i<'f<'('to p(ua los ncvos archivos sca zw z
(640) , e n t onces:

666
640
026
Donde:
666 <s rl valor por def' to
's40 <'s el valol des<'Ado

i26 cs el argumento necesario para umask


E)plo:

50

C A P T t ; I.O 2. EL SISTEI(IA DK AHCHI><OS

RA-MA

$ umask 26

$
A partir <le ahora todos los nuevos arcltivos q(te croe>os t( ndr((t( los p( rn>isos sigui(t>te:
r w-r ---- .

$ umask 26
$ umask
026
$ > pr uebal
$ 1s - 1 p r u e b a l
- rw-r - -- 1 chan

igX

0 nov 20

1 3 : 4 2 p r u e bal

1gX

0 nov 20

1 3 : 4 3 p r u e ba2

$
$ umask 22
$ > pr u eba2
$ 1s - 1 p r u e b a2
- rw- r - - r - 1 chan

Sintaxis: which archivo(s)


Esta ordn> sc ctpica p (ra bs( ar en los directorios especilic<los en el PATH desttario
el arclfivo que le especifiqv>os. Con>o n sltado. vis >liza cn forn>a de ca>in<> ahsoltn
el nontbre d(l arcl>ivo. Si la b(sq< da es infr<tosa, seren>(>s avisados de ell<>.

Eje>t>plo:
$ which v i e m acs p i n e
/ bi n / v i
/usr/bin/emacs
/usr/bin/pine

S int a x i s :

w h e r e i s [ - b]

[ - m]

[ - s]

or de n ( e s )

La orden whereis acept > con>o par n>otro (nican>ente el l>o>nl>r< dena onlet D( v< l
vc ol <lirect<>rio donde reside (li< ha ordet> y l;( pgit>a correspottdient dondr se encuentra
(u> el m;utal. Los flags -b, -m y -s se tttilizat> para lit(>it (r la bsque<la a l>inario, pgina
<lel nta(tal o c<ligo fue>>te. respe<. tima>ente.
Ejemplo:
$ wherei s v i
vi: /bin/vi /usr/share/man/manl/vi.l.gz

<-' EtA-MA

2.;>. llSO DE AH('HIVO!>: PERl<HSOS

'a AM
Sintax i s :

51

~ % F-'
i d [ - u g]

[ u sua r i o ]

I. r orden id devuelvv <1 identifi< ador (nnivro) de usiiario v de gr<q>o del uu'iri<> qu<
1> iiliqueiiio. Si iin sv le in<li<a vl usuario. i d v i su rlizara los i<l< rrtificadnr< s asociados
,>1iisii irio qiiv ii>v<>ca I i <>nlvii. Estos i<l<'iit ifiia<len s los iitiliza U i J I X i r a s a l>vr a quivll
',i>ii< qiie aplicar los permisos. id <s iina <>rdvrr intriiseca d<l al<vil. Qiie <iris ole r v a
itriisvca <lvl slivll qiiivn- d i r <t<iv. se t.rata de uria riitin;i iric<>rorada <lviitro del < <ligo
1> I l>n>i<> intrprete <le <r<l<'r>es. No existe con>orogr;iriia jvcutal>le aix~rte. corito p<r< de
-.> r cp. man o mkdir .
()p< rolle.i,

-u X isualiza slo el l'I D (i<lent,ilic <<l<>r de usii;irio).


-g l ' is<raliz ii>i< ar<iit< el (llD ( i d vr>tifi< adnr dv gr<>ix>).

Fjvrrrplos:
$ id
u id=504(chan) g i d = 504 ( i g x ) g r u p o s=504(i g x )
$ id l u c a s
u id=519(l u c as ) g i d = 5 1 9 ( l u c a s )

$
>i > I iis<>rin indicado a id nn existe, id visualizar un mensaje similar al siguieritv:
$ id
id:

p a s cual

su ~-.~ ."
S intaxi s :

su [ -]

[us u a r i o ]

L'i orderi su (suntc/r usar) permite v;iiubiar iiuestn> i<iv<>t ificador <1v. iisuario. Criando
invoca. i>os pide la palabra clave (p<ras>r>o>trl) det usiiario al que querernos cambiar. Si
su iio I<' pasamos corito I>ar nietro ii i ng<n iinrnbr<. de iisuario, asrirnir qe <lvsvani<>s
nvertiriios ii el a<lniinistra<lor dvl sistvia (io ot). Obviaiiiente, si irn <onocenins la pa
.',<1>ra clave <lel usiiarin. Ia or<leri fallar aL La np<in s< vmlva para indicar a su que se
i< ri los p;ir,metros <le inicio (<lirectorio de arrarique. riita de bisqueda dv arcliivos.
variiil>les de vntnrnn. etc,) def i n i d o pnr vl iisarin al quv nns convertiremos. Por <lefectn
isinsardrrretros nn sv toniari.
I'. t v iiip I o :

$ su l u c as
Passvord:

52

( . '.>>PTt LO 2. I :1. SISTEXI.>< DE A it('ll f'()S

(cC I(A-I(I.>,

$ id
u id=519(l u c as ) g i d = 5 19 ( l u c as ) g r u p o s=519(l u c a s )

nevgry

RS
IS V '

Sintaxis: newgrp [grupo]


L <>rd(r> newgrp ( s sii i i i lar i > su . p er o e>i < ate c iso lo <l>ie se sc>li( it ; s < l ; iiil>io
<I<' i<le>>tifie?1<)r (lc gr1><>. S<>lo iios 1><)<1<
ri>os < i>1>i a los g r i i pos p< r i>iit i<l<>s p<)r el
a(lniii>istra(l<>r <lel sist< rii i,
F. j( ir >1>1<
>:

$ newgrp f l o p p y
$ id
u id=504(chan) g i d = 1 9 ( f l o p py )

g r u p o s=504(i g x )

2 .6.

L a s u t i l i d a des m t o o l s

L;i iii;iyc>ra <lc los sisteii>;>s VXIX. iia<>rl>or;iri li< rrairiic iitas clii< os peri i t e r ?>ip
Ial' ?ll ('l>iv< >s (l>le > ( si(l>>ll ell <lis(111('t('s c O>l ll)rrl>?>r<) DO l. > r e st?rs ll( l r?lll>1< r>f?>s >lo est ari
1)r ese> >t <'s<'11 sll slst('r>la. p<)(ll? ('ol>s('g>lirl?>s t?< ii>ll('r>t <' ('ll ll>te>ii('f . <Ioll(l<' s(' ('ri(11('r>ti">ll
<lisponi1>les par?i < i>si to<las l?>i pl?itafoi'rll>ls, ( ?>(I?i i>l>a (le l>is (r(l<'i>('s <iii(' fo i i i >ai> ls
mtool s t r ; i t ?i (Ic' ('inlllar i>1>a oi (I('Il 1)()S. El i l ollll >l ( ( l e ('?(<Ia ol (lc'ri ('s c'I llollll)1<' < l(' I?i i('s

pe< t iva or<l< ii DOS pr< c c <Ii<l i (lel < ar eter -m". P<>r c jet>il>lc>. I?i onlc ti copy < l( DOS t ic rie
s ii 1iv lei>t< c i> las mtool s y s e (I<'i>ori>in'> mcopy. I.?>s <nlenrs ii>c l>ii<las eii las mtool s
n < oiio n e o >ia> c;rr;< tc r sel> ir;><l<>r (le clire< t<>ri<>s tarito ( I a l<>s/> "/" < o rc> <1/)nrh,ilns/>
"'q". I ?ira n t ( ' r i r i><>s ?> I;i iii>i<l;i<l <l(' (lis(iii<'t<' 1><)(l('ii>os <'>i>1>l(">i' l>i <"><le>i;i a : t ; i l y < '<>rin)

lo lia( c inc c iiaii<lo t r >l)aj>in<>s c <>ii DOS. Si < otii<> iisiiari<> <>nliiiario tio 1t< (l< ;>( c c <ler a
I;> iiiiicla<l <le dis<lii< tc. ser rico(sari(> cln< se lo i>otiti(1>te il a(liiiinistra<lor <lc.l siete rri i y
(ll>(' csf (' se (' (n >l g>l(' (l(' r>lo(l>f>c al' los (I<'1('('l>os (I<' ?><'(('so (l('I til ('ll>vo (lc'. (llsposlt l%o (lll('
I<> repr< s< r>t;i li.e. chmod 66 6 / d e v / f d 0 ) . A c c)ii>iii>i ic i<>i> s(' <l(ts<'ril)('1> ('?>(I?l ii>l?1 (l(' e ir?>s
(nleiies.

'3 .' k8

lllCl 1.X' g
Sintaxis : mdir [directorio (s)]

mdir [ a r c h i v os (s) ]
La or<lei> mdir s c i i t i l i z i p ; i r a l i s ta r l o s i r l i i vos y ( l i r < ( t o r ios (le i ir i ( l i s(l>rete <oi>
forii>at<> DOS. Si no s< esp< ifie;iri 1<?in l>ivos o ( l (lire< t<>rio. s( visir;iliz ir ( I ((>i>t< i>i(l<>

<lel <lirect(>ri<> DOS acta il. P a esl)c < ifi< ;ir l<>s in liivos o <lirec torios se piiecle li ter >iso
( l(' (">l'?>('Ier(c< ('()ir>o(ln.

2.6. LAS t.'TI I.l DADFS NITOOLS

( '! BA - M A

53

Ej<>I)l<):
$ mdir a :
Volume in drive A has o label
Volume Serial Number is DC7C-89F9
Directory for A:/
x eyes
bmp
2 17 18 0 1 - 2 1 - 2 00 4 1 1 : 1 9
x fc e
bmp
78 75 10 0 1 21
2004
11: 19
d epura
c
2 3379 0 1- 2 1 - 2 00 4 13 : 1 4
etc.
procesos h
1 555 01-2 1- 200 4 13 : 1 4
semaforo h
8 7 01-2 1- 200 4
13 : 1 4
sim
h
3 586 01-2 1- 200 4 13 : 1 4
t ecl ad o h
6 5 01-21-200 4 1 3: 1 4
1 8 fi l e s
9 01 329 by t e s
5 50 400 by t e s

xeyes.bmp
xfce.bmp
depura.c
procesos.h
semaforo. h
sim.h
t ecl a d o . h
fr ee

Pl

Sintaxis : mattrib [+-hrsj archivo (s)


I.'<len matt r i b s n> 1)l< a 1ta to<lilicar los atril)utos(I< los>< l>iv<)s alu>a<et>a<l<)s
<lis<I< >es > f o>n, to D()S. X<) iten>e al)li< >r st>)><l< n ni ninuu <l< la mtools
>n l>ivost ivos U%IX I)<)np>e no >r n<Ir>n I< ( fe< tos <l(s('><los. I.as ol)ci<)< s (ul>it i<l >s
1)<)r matt r i b
s < > ( !t iv>u> o s l < s a o t i vn l >a(in<lolas 1)re<ler <le los c a ( t o r o s + o
> <'si)<'('t >> >n(.'nt <.'. Ls >s (.'o>nun( s son l'>s s>gu>( nt(.s!

[+I -] h

A < tiv'> <) <les,>< tiv > el tributo <Ie >n l>ivo o< ulto,

[+ I -] r ;>)( tiv;> o <I< s >< tiva I a>ril)u>o <I< ar(l>ivo <I( solo l(< tura.

[+ I -] s A( tiv> o <Ips('t >V>I<tril>lo <le arel>iv<) <le sist< n.


Ej< >npl<>:

$ mattrib +h a:teclado+
$ mattrib a:teclado
A
H
A : / t e cl ado . c
A
H
A : / t e cl ado . h

$
. l) t i r <le >l>or >. tt() te c l a d o . c ( < o t e c l a d o . h s <> ;<rol>ivos o<l>os (Iu(' no s(>n
( is;>llx;><los co I;> o>xl<'u mdir. C<>u 1(> ord<u> mattri b a : t e c l a d o + v< >nos ('u>l('s son los
><l>(a<lor< s <1(' t> il>tos <1( los )( lvos e p(<'Ii>('<los (A y Hi.

%%a ~ hi R = . ~ .

Wf

Sintaxis: mmd directorio(s)

-: ;

g .i

54

C A I ' I T I . I.() 2. l' L 5151'l'.'NIA l>F. AH('I-II > 't)S

l>A-NIA

La <)nl( mmde v>pl< > par) l< ;>r dir('('n)ri v <lis(l( t< (o l o r>;>to DO.').

Lj<>pl<):

$ mmd a:src include


$ mdir a :
Volume in drive A has no label
Volume Serial Number is DC7C-89F9
Directory for A:/
x eyes
bmp
2 17 18 0 1- 2 1 - 2 00 4 11 : 1 9 xeyes.bmp
x fc e
bmp
7 875 10 0 1 - 2 1 - 2 00 4 11 : 1 9 xfce .bmp
d epur a
c
2337 9 0 1- 2 1 - 2 00 4 1 3: 1 4 depura.c
d esen
c
19558 0 1- 2 1 - 2 00 4 13 : 1 4 desen.c
e nsa
c
4 828 0 1- 21- 2 0 0 4 13 : 1 4 ensa.c
i nte r
c
847 0 1- 2 1- 2 0 0 4 13 : 1 4 i nt e r . c
s rc
<DI R>
0 1- 2 1- 20 0 4 13 : 4 1 src
m emoria
c
124 1 0 1- 2 1- 2 0 0 4 13 : 1 4 memoria c
p rocesos
c
1044 8 0 1- 2 1 - 2 00 4 13 : 1 4 procesos.c
s emaforo
c
182 5 0 1- 2 1 - 2 00 4 13 : 1 4 s emaforo . c
s im
c
2098 5 0 1- 2 1 - 2 0 0 4 13 : 1 4 sim.c
terminal
c
2665 01 - 2 1-2004 13:14 terminal.c
i nte r
h
253 0 1- 21- 2 0 0 4 13 : 1 4 i nt e r . h
i ncl ud e
<DI R>
0 1- 2 1- 2 0 0 4 13 : 4 1 incl ude
m emoria
h
58 0 1- 2 1- 20 0 4 13 : 1 4 memoria.h
p rocesos
h
15 55 0 1- 2 1 - 2 00 4 13 : 1 4 procesos.h
s emafor o
h
8 7 0 1- 2 1- 20 0 4 13 : 1 4 s emaforo. h
s lm
h
358 6 0 1- 2 1- 2 0 0 4 13 : 1 4 sim. h
18 files
900 543 b y t es
5 49 376 by t e s f r e e

F < l eje>plo arlferior I>< >o crearlo <lo <lir(ctorio dvolia(lo src v i n c l u d e ,

Sintaxis: mcopy [-tvm] origen destino


La onl< mcopy se elrlplva para >pir n hivo de<le >l di<1vte <or> for>ato DOS
1ist(ra U%IX, y v i ( (.'vvrs l. 'Ia>1)i(r> prdv erpl(rs(. para vopir '(r<'llivos de r>iti<)
a ()tr(> e vl <liq('tc". A (or>t ir>avi<)r>e explica las opviol>v <I( po<lv>oesp(rif1v>lr ai
tilizr (tr> order>:
-t

C o r > vsta op ( i ( s( r e l iz l > tra dn i ()l> er> r('llivo d(' t()xto d (1 v ara('ter r( torr>o

dv v (rro y rit o d(' l ea >l saltos (l(' lva. Los an ) l ivos de texto D ( ) S v>plvar>
do (aravterv '>I h>ll <l(' <ad l lea, ri< lltra (lue los e<I>livaletes UIVIX e>pie;L
lll('a>llerlt.e >lo.

-v U t i l iza rr>odo ver1)oo.

RA-MA

2.6. LAS UTILIDADES MTOOLS

55

-m Se utiliza para conservar la fecha y hora de modificacin del archivo.

Ejemplo:
$ mcopy READNE a:

Sintaxis: mmove [-tvm] origen destino


La orden mmove se emplea para mover archivos o directorios de un sitio a otro en un

disquete con formato DOS. Las opciones son las mismas que las empleadas con la orden
Glcopy.

Ejemplo;
$ mmove a:~. c s r c
$ mmove a:+.h include
$ mdir a :
Volume in drive A has no label
Volume Serial Number is DC7C-B9F9
Directory for A:/
xeyes
bmp
2 17 18 0 1 - 2 1 - 2 00 4 i i : 19 xeyes.bmp
x fc e
bmp
7 875 10 O i - 2 1 - 2 00 4 11 : 1 9 xfce.bmp
s rc
<DI R>
0 1- 2 1- 20 0 4 13 : 4 1 src
R EADM E
30 17 0 1- 2 i - 20 0 4 13 : 5 0
i ncl ud e
<DI R>
0 1- 2 1- 2 0 0 4 13 : 4 1 incl ude
5 files
812 245 b y t e s
5 45 792 by t e s fr ee
Los archivos . c y . h que inicialmente estaban en el directorio raz han sido llevados a los
directorios src e i n c l u de , respectivamente. Podemos verificar fcilmente lo anterior del
modo siguiente:
$ mdir a:(include
Volume in drive A has no label
Volume Serial Number is DC7C-B9F9
Directory for A:/include
< DIR>
0 1- 2 1- 2 0 0 4 13 :4 i
< DIR>
01- 2 1- 2 0 0 4 13 : 4 1
i nte r
h
2 53 01-21-2004 1 3 : 1 4
memoria. h
5 8 01-21-2004 1 3 : 1 4
procesos h
i 555 01- 2 i - 2 00 4 13 : 1 4
semaforo h
8 7 01-21-2004 1 3 : 1 4
si m
h
3 586 01-21-2004 1 3 : 1 4
7 fi l a s
5 539 byt e s
5 45 792 by t e s

i nt e r . h
memoria.h
procesos.h
semaforo. h
sim.h
f ree

56

CA P I T L JLO 2. FL SISTEMA DE AR('HIVOS

RA-!(IA

Si ar)alizasvruos vl ) t ( i do <le a: )sr c , o h servaru os c<)n)o P l se n) ( u v r)tr u) to<l<>s


los arcl)ivos co vxt(si . c (H)e antes s< ( n< ontraha < ( l dirc( tori<> raz d< l <lis<p)ete,

I RA kan
Sintaxis : mrd directorio(s)
La ordcr) mrd se ()nplea p(u.a olin)ir)ar dir(.(:torios en u d is(tetc (or) f()rn)at.o DOS.
(o l>ucdvn scf c l l ))lldos d )I( ('t o) los (ll)p )lo est('n vacos, slo (1v (rs I)e('('s'u'10 cl))ll)ar
previa)vtP ("r)ld(luicr l r l f o r ))1(')<) ('otP)1)(la cll los 1)slos.

Ejnuplo:
$ mmd tmp
$ mdir tmp
Volume in drive A has no label
Volume Serial Number is 3F74-2E56
Directory for A:/tmp
<DIR>
0 1-25-2004 1 2 : 3 6
<DIR>
0 1-25-2004 1 2 : 3 6
2 fil e s
0 byt e s
5 15 345 b y t e s f r e e
$ mrd t mp

$
Si inter)tar)ros cliu)ir)arn <lirectorio (luc cotcga datos o< urrir, 1<> sigui<t(:

$ mrd i n c l u d e
Directory A:/include non empty

mc(i
Sintaxis: mcd [directorio]
La ordvn mcd sv tiliz(l par(( lnodifi< ar el directorio DOS en el (tuc nos encontran)os.
Si r)o s( especifica Iringr) argu)ento. nos iforn)a) (le cu,l vs el directorio DOS a< tal.
La v(riahlc dv n ) t o rno MCWD);u)tivr)c el valor d(1 dirvct<>rio actual v vl <lisco cou
forn)ato DOS. El valor pre<l(tcrn)ia<lo del dire(torio DOS activo se)atiene e vl arl)ivo
$HOME/.mcwd. Hay (tuv t<.vr ci<lado si Pstan)os situados ('r) un sh<lire<torio DO S y
calbislos dv d)sco (' la, u1(lad. ya (lP v PstP caso s(' pv<lP. l)ro( l<'iJ u() )ucongl'uc(')'(

con)o cose<)ren(i) <le la o e x ist(n< ia n) el nuevo dis(o dvl d i r ( ct orio especificado e


$HOME/. mcwd. Para evitar este prohlv>a simplemetc r)os carhiareros al directorio raz
(lel <lisco DOS con la ordv mcd / .
Ejemplo:

$ mcd i n c l u d e
$ mdir a :

2).(). 1.AS L)1 ll.fDAI)ES NlT()()f, S

Q(' ltA-f fA

Volume in drive A has no label


Volume Serial Number is DC7C-B9F9
Directory for A:/include
< DIR>
0 1- 2 1- 2 0 0 4 13 :4 1
< DIR>
0 1- 21- 2 0 0 4 13 : 4 1
2 53 01-2 1- 2004 1 3: 1 4
i nte r
h
5 8 01-21-2004 1 3: 1 4
m emoria h
1 555 01-2 1- 200 4
13 : 1 4
procesos h
8 7 01-21-2004 1 3 : 1 4
semaforo h
3 586 01-21- 200 4 1 3: 1 4
slm
h
7 fil e s
5 539 b y t e s
5 45 792 by t e s

57

int er , h
memoria.h
procesos.h
s emaforo . h
sim.h

f r ee

mdel
Sintaxis: mdel [-V] archivo(s)
L ( <>I<i( mdel s
< >f>('l()ll

I l> l (II p ( ra ( l i I i ) . ar( l >iv<>s <lel (lis(f( te (<> l<>II It<> D()S. La

V s e e l ) ll > l( '( l) I 'L(>l)<'I" II' (' > ( l l) v('I l)()s().

l'.je) f>l() :

$ mdel a:/include/+.h
$ mdir a:/include
Volume in drive A has no label
Volume Serial Number is DC7C-B9F9
Directory for A:/include
< DIR>
0 1- 2 1- 2 0 0 4 13 : 4 1
< DIR>
0 1- 2 1- 2 0 0 4 13 : 4 1
2 files
0 bytes
5 53 984 by t e s f r e e

-.h g

mf ormat
Sint a x i s :

m f ormat [ - t pt as]

[ - h cbz s ]

[ - s scs]

[ - l et i ] a :

I.,>r<l< mformat s ) 1 )le;I 1>;Ira <l (r l<>rIat(> 1)()S I <lis(f( te. F (1 <>rI;Ito se
1)('<le (sf)('<'iii(';' ('l (<'r<> <1(' l)ist((s. < I>< z;I y se< tel< s. as (o> la ('ti<l< ta (l(' v<)1'
> l as (>1 i<>es -t. - h , - s y - 1 . r ( s l ) e ( t i v ( t ( .
F. <'
lIIIf>1():

$ mformat a: -h2 -t80 -s18


$ mdir a :
Volume in drive A has no label
Volume Serial Number is 427A-E2FA

58

( . ' A I ' I T l l l .D 2. k;L SIS I ENIA DL' AR(:lllh'OS

RA-l<IA

Directory for A:/


N o fi l e s

1 457 664 b y t e s

fr ee

Eu cl <">so <1<1 ejcu>plo l<en<os <Ia<1<>


fea<u;<to a un Bis<tu< t< pra <lue t< nga u<>n <apai<l;I
(I< l,d-l '<ll>v.s.

mlat><>1 ' '1]f


Sintaxis: mlabel [etiquetaj a:
La or<icu mlabel i i r v < p ara i uf<>rn<ani< <uo<lificar la cti<lueta <1<" v<>luu>cn <len
Gis<iate con fortu;<t<> D().'>. F j< n>pl<>:

$ mlabel a :
Volume has no label
Enter the new volume label : programas
$ mlabel a :
Volume label is PROGRAMAS
Enter the new volume label
Delete volume label (y/n): n

Sintaxis: mren nombre-antiguo nombre-nuevo


I ;< or<lcn mren s n > I>lc;< 1>;<r'< ca>1>iar de uotnbre a <rcl<ivos o <llrectorios t>i<ad<>s
< r> uu <Iis<luetco<> for<uat<> DOS.
Ejen<plo:

$ mdir a :
Volume in drive A is PROGRAMAS
Volume Serial Number is 427A-E2FA
Directory for A:/
R EADM E
30 17 0 1- 2 1- 2 0 0 4 14 : 0 8
1 fil e
3 0 17 bytes
1 454 592 b y t e s f r e e
$ mren a : README a:Leame
$ mdir a :
Volume in drive A is PROGRAMAS
Volume Serial Number is 427A-E2FA
Directory for A:/
L EAM E
30 17 0 1- 2 1- 2 0 0 4 14 : 0 8 Le a me
1 fil e
3 0 17 by t es
1 454 592 b y t e s f r e e

(c: RA-t< t A

2. I. E.t t;RCJ('JOS 5 9

Sintaxis : mtype archivo (s)


La <)r(iv>) mtype se v>nl)lea 1>ara visalizar por J);>talla vl c<)t<i<ID rlv ;>r<l>ivc)sl>i
< >(lo. cu> (la(Jvtvs cc> fc>r>to DO).
Fjv>J)io:

$ mtype a:leame
0 . 4 . 3 RE L EA S E = = = = = = = = = = = = = =

This theme is one of the first SVG themes out there. Don't try
this on an anything below 400MHz. For some, the default view
might look a little too big, This theeme is ment, for large
screens and fast CPUs. If you like the style, but think it's a
little too big, look for UnScalable Gorilla which is a PNG
rendering of Scalable Gorilla, but also features a smaller
toolbar and default zoom is comparable to 50%-75% of
ScalableGorilla.
e tc .

2 .7.

E je r c i c i o s

2.1 ;,C'>l <s s (lirvct<>rio dv arra(Jv o <lirvctorio HONE? ;Fxstv. alg> anl>ivo oclt<>
v su <lirc<. to> io dv crra(Jv'" .llag,( u recorrido por los <lirc <:tc)ros >n >J)ortaten
< Ivl sistv>lla v>s l> ando Ios a>clvos cont v>(los v vil()a.
2.2 L<>< ale( alg> an l>ivo Dnliario. <Iir t<)r<), ><>cl<) l)l<><1>a y alg vl >(e s>J)c>lco.

2 .3 Dctvr>iv el >il>o <le Jos sgvtv an l>ivos: /et c / h o s t s . / u s r / b i n . / e t c / g r o u p ,


/bin/ls. /bin/login. /usr/lib/Xll v /usr/include/stdio.h.
2 .4 t i salirv 1 >s i J)'>('>a leas y Ias 12 >lit i>as <l< l an 1>iv(> /etc/ i n i t t a b .
2,5 c'.()(t es ( I J)ropi( tario (l(1 >rcl>iv<) /etc / p a s swd" .,'> <'I gr1>o" .c C>tos vla vs
tvc''" .c C;l vs la lista cl( <l<'rv('I>()i'".
2.6 C'r ( ' s <lirvctori<) clv arr;>(J< shcirvc toric) clecia<l<> copia y c <)J)v < c!I

vl ar<l>ivo /et c / p a s swd. ;Q(c vs >l>or < vl J)roJ)ivt.a>c) dvl anhiv<>".,' Y <.'l Ds s
gr1)<)".

2 .7 C';l)iv vl <>>1)n <l( I an l>ivo passwd dc I <lir tori<> copia J)or < l <lv palabras c l a v e s ,
2.8 l ; >v;> al <lin< torio / et c y <n < s l>dir tc>rio<lcc)>@<I<>
prueba. ;.()(' D<rn'?
('<1>rvl>< l (>s <lvrv<1><>s
<J>><ti<< c vl clirvc tc)rio /etc .
2.9 (.'<)J>i< n> s <lin ctori<) <1( arra<J<. ;<r<I >ivn ral<Ji< r <l<l <lirv< tc>rio /bin y
<l( >>><I<> archivoi . . < <>ti u i<> vis >l< l arc h i v o 1 c I<)r> >t largo. l lag >
<'l u < clvl r<l>iv<>>tvri<>r co >r< l>ivc>
dc<>>i;lo nuevo. ;,C';t<>s vlcvs

60

CA P TULO 2. EL SISTEMA DE ARCHIVOS

RA-MA

tienen los archivos anteriores" .'Es nuevo un archivo fsico, ,Qu ocurre si bnrramns
e l archi v o i ' ?

2 .10 Vaya a su directorio de arranque, cree un subdirectorio denominado .ocult o .


!Qu ocurre si intenta visualizar el nuevo subdirectorio? emplear con Is para po
der verlo? Copie en este directorio el archivo / e t c / h o s t s . V i sualice su contenido.
Copie el archivo /b i n / c p en t l directorio . oculto q t te acaba de crear, Visualice el
contenido de este archivn.
2.11 Mueva lns archivos del directorio . ocult o al directorio copia. 'Qu archivos quedan
c n . ocult o'? Haga un enlace de los archivos que hay en copia al directorio . ocult o .
! Cuntos enlaces aparecen ahora por cada archivo? Borre lns archivos de copi a .
!Cuntos enlaces aparecen ahora, en lns archivos de . o c u l t o " . Repita el p roceso
anterior, pero utilizaudo enlaces simblic~a.

2.12 !Puede cambiar el nombre de un directorio utilizando la orden mv? Comprubelo.


2.13 Cree un subdirectorio en su directorio de arranque denontinado tmp. Copie en ese
subdirectorio el archivo / et c / g r o u p con el notnbre de grupo. Cambie los derechos
de este archivo para que los usuarios desu grupo y el restn de los usuarios puedan
niodificarlo.
2.14 Ca mbie de propietario y de grupo al archivo grupo de su directorio tmp.

2.15 Elimine los tres subdirectorios qne ha creado para realizar los ejercicios y compruebe
qu ocurre.
2.16 !Q u valor deberamos darle a la. mscara de derechos para que todos los archivos
se creasen con los atributos r v- r - - r - - ?
2.17 ~Cules son sus identificadores de usuario y de grupo?
2.1S lvfodifique sus identificadorcs de usuario y de grupo. !Qu utilidad tienen las rdenes
anteriores' ?
2.19 In t r oduzca un disquete en la unidad y dele formato DOS.
2.20 Copie en eldisquete el archivo /etc/passwd, Cree un directorio de nombre txt y
copie en l los archivos /et c / g r oup y / e t c / h o s t s . Visualice el contenido del archivn
de texto /etc/hosts. Renombre elarchivo passwd del disquete y denomnelo claves.
Elimine el directorio tx t y s u contenido.

Captulo 3

El editor de texto v i
3.1.

( v i s ual)

Q u e s u n ed itor

Un vditor vs una utilidad ofrecida por la mayora de los sistciuas operativos quv nos
permite modificiu < I contenido de iin archivo. Cuando hablamos de editores o programas
<l< edicin. normaluicritc nos referirnos a vditores <le texto; cs d. (ir. aquellos que trabajan
ui ar('hivos quv contienen < aderias de (aractervs ASCII, Gciicralmeritv. los editores de
lvxto son clasificarlos cn ds categoras: los roriocidos corrio editores d( lnea y los editores
<1< pantalla. Uri c(litor de lrica es Bqiiel Pn cl que la unida(l bsica de trabajo <(s una lli('.R
<>. 10 qlie cs lo misruo. iina cadena <le caractcr( s qiiv termina (011 el carcter rr cri>li ne(rn cri
UNIX). Un editor dc pantalla nos permite visualizar una porcin dv un archivo (vvntaIlii
l' texto coillpllPsta dv varlH i lneas) cll cl t ci'nlinal. Bs colllo qi l(' llos ll lovBB)oscoll Pl

llrsor y efectuemos los cauibios all donde queramos.


El editor dc texto lliSampliauientv utiliza(10 elr sistvruas UNIX vs cl editor dv pantalla
vi ( v isual). aiinquc v i s e a u n s i ib(orijiito de uri c(litor m ayor denominado ex. Este
iltilrlo incluye llliiclias lllSfiulcioncs y rdcrlcs quv cl propio vi; siri vlubargo. rararrlcllt.e
sv lltiliza. Eu uri principio vi piirccv nniy couiplicado dp lliaricjar. 1>pro llna vez qup llcrnos
l>racti(ado lo suficicrite. veremos la potvucia v la rapidez quv posee. Uu corisejo prctico
vs que para aprender vi editemos textos, No por conocer todas sus op('iones dv m<)trioria
Viillios R IIlallvjarlo ni< jof. 10 llis CfCct.lVO PS pl Bcf leal'.

Criando editamos cori vi. trabajariios <.On uR menu>ria iritvrni< dia (/>lljfcr); solauieiit<.
< u<ludo gr abRnlos 'lcfilallzRIlios <'l iirchlvo ell Pl <lis0. S<>H n>ll('hoslos cditolPs quc ha(eli
<'sfo nllsnlo, copiar ('.1 Hfclllvo llilciRhllPiit<' Pll una lnclll or"la llltcrlil('dia y f r a l ) a jar c oll Pl .
p<>l que tl<.nc lli vclltaja d(' (tuc sl nos PqlllvOcalli()spod('1110S volv(r atrs slo coll sillll slli

grabar; de esa manera,. cl archivo iiiicial no sv v( r;i, uiodifica<lo. En coritrapartida vso tiene
vl inconveniente dv qu< si nii("ntras estaulos editando ('l sisteuia s( vi('u(* abajo. los cambios
hechos sc perdern. Est'i dcsvcutaja cu el caso dc UNIX es incra)r. puesto qu<' el sisteuia
va liaciendo a intvrvalos de ticrripo una copia dc esta uiemoria intrrnicdia cn cl lisco. Si
< iiaii(lo estamos editand<> vl sistema cae. al arrancar dcu u cvo UNIX n os enviar <orrvo
iiidicri(louos cnio podenios rvcirpcrar diclu> /><gcr pcnhdo. Este mtodo dc utilizar un

/><ger tauibin ticrie la desventaja d( que si el tauiafw dcl Br(.iiiv) cs mayor que el tauiao
<lv la memoria intermedia, hay lue dividirlo en partes para poder tral>ajar con l.

62

CA P T U LO 3. EL E DITOR DE TEXTO VI (VISUAL)

3 .2.

Qc RA-MA

! C m o p o d e m o s ed i t a r co n v i ?

Antes de invocar a vi, debemos asegurarnos de estar utilizando un terminal adecuado,


ya que vi, como la mayora de los editores de pantalla, necesita conocer el tipo de terminal
para que funcione correctamente, de otro modo, los resultados pueden no ser los deseados.
Para conocer el tipo de terminal, vi consulta al comenzar la variable de entorno TERN, y de
esa manera, modifica la salida para que visualice el archivo eficazmente sobre el terminal.
Nosotros podemos conocer el valor de esta variable del shell mediante la sentencia:
$ echo $TERM
vt100

la cual visualiza el valor de esta variable en ese instante. Si TERN no est iniciado a un
valor correcto, podremos modificar su valor como indicamos a continuacin, Suponiendo
que nuestro terminal es ansi , p ara inicializar la variable de entorno de forma correcta
haremos lo siguiente:
$ TERM ansi
$ export T E RN
$ echo $TERM
ana 1

$
es necesario exportar la variable para que vi p u eda acceder a ella. Si el lector quiere
profundizar en el tema de las variables de entorno, deber consultar el captulo dedicado
al shell. Si la variable TERN tiene ya un valor correcto, podremos comenzar a editar con
vi dando la orden:
$ vi n o rnbreM e ~ ch i v o

A partir de este momento, el archivo que queremos editar es copiado por vi en un ber,
la pantalla se borra y el cursor aparece localizado en el primer carcter de la primera
lnea del archivo. Si el archivo previamente no exista, vi l o c rear (inicialmente vaco)
con el nombre de archivo que le pasemos como argumento. Podemos tambin indicarle a
vi desde la lnea de rdenes que queremos que site el cursor inicialmente al comienzo de
una lnea determinada del archivo; la forma de hacerlo sera:
$ vi +20 nombreMe~ c h i vo
De esta manera, el cursor aparece ubicado inicialmente en el primer carcter de la lnea
nmero 20. Por ltimo, si queremos que el cursor se site al entrar en el primer carcter
de la ltima lnea, invocaremos a vi desde la lnea de rdenes tecleando:

$ vi + nombre>e~ c h i v o
De cualquier forma que llamemos a vi , ste nos ofrecer una presentacin similar a la
siguiente:

RA-MA

$ vi

8.3. ESTRUCTURA DE LAS RDENES DE VI

63

carta

"carta" [New File]


Cuando vamos a editar un archivo nuevo, como ocurre en el ejemplo, el cursor inicialmente
estar colocado en la primera lnea y aparecer parpadeante. El caracter
( t i l d e ) indica
que la lnea est vaca, no contiene ningn carcter.

3.3. Estructura de las rdenes de vi


El editor vi t i ene dos modos de trabajo, son los que se conocen con el nombre de modo
tnandato o modo orden y modo edicin. Hablamos de modo edicin cuando podemos
introducir texto, y d e m odo m andato cuando v i n o s p ermite dar rdenes propias de
cualquier editor, lneas de texto, mover bloques, buscar palabras, etc. Inicialmente, cuando
entramos en vi, ste se encuentra en modo orden, y por lo tanto no podremos introducir
texto hasta que no introduzcamos la orden adecuada para ello. Una vez que nos hallemos
cn modo edicin, para pasar a modo mandato deberemos pulsar la tecla de escape (ESC)
situada en la parte superior izquierda del teclado. Las rdenes de vi t i enen la, siguiente
expresin general:
[contador] operador [contador) objeto
La diferencia entre operador y objeto a, veces no es nada evidente. Por ejemplo, la orden
v avanza el cursor una palabra hasta el comienzo de otra, mientras que la orden dv borra
la siguiente palabra del texto. En el primer caso, v acta de operador, y en segundo, de

64

CA P T U LO 3. EL E DI TOR DE TEXTO VI (VISUAL)

f I racha r eruu
al
pnnerpru dela lince

Anude te xru
dexprui deleururr

C omenzando con vi , e l e d i t o r d e U N I X
puxreuln arrual
del erlrrrlr

Inxena rexrn
unres del eurxur

7J7

Anude rexru al
llnul e la lince

l' igura 3.1: rdenes bsicas de vi,

objeto. El campo contador indica el nmero de veces que queremos repetir la operacin,
Este campo puede aparecer hIdistintameute cn cualesquiera de los dos lugares en que
aparece entre corchetes. Si aparece en los dos, el efecto ser multiplicativo. Poniendo unos
ejemplos, esta estructura de rdenes quedar nts clara.
w Avanza una palabra hast,a el contienzo de la otra.
dw Borra una palabra.
3w Avanza tres palabras.
3dw Borra tres palabras.
d3w Borra tres palabr'Is.
3d3w Borra nueve palabras (efecto multiplicativo, al aparecer el tres en los dos lugares).
r

3.4. Ordenes ms comunes de vi


Para comenzar a escribir t exto ( pasar de modo mandato a m odo edicin). lo ms
connn es utilizar una de las cuatro opciones que aparecen a continuacin, y cuya expli
cacin queda ain ms clara en la figura 3,1.
a Afrade (append) texto despus de la posicin del cursor.
i I nserta texto antes de la posicin del cursor.

A Anade (append) texto al final de la lnea.


I Inserta texto a.l principio de la lnea.
Otras rdenes interesantes son:

RA-KIA

3.5. MOVIMIENTOS DEL CURSOR

65

o Abre la lnea posterior dc <londc s. .n<.uentra actualmente < l cursor,


0 Abre la )nea anterior de donrle se encuentra actualmente rl cursor.
e Avanza una palalira y rl cursor queda coloradn al final rl< la misnia.
b Se nnieve hacia at,rs. hast,a el principio de la palabra.
dd Borra la lnea en la que est situada cl cursor.
U Deshace el ltimo cambio realizado eu una ln< ii.
u Deshace cl iltimo ca<nbio.
(Punto) Repitr' la <ltima operacin efectuada.
x Horra un carcter, Si a c<uitinuacin pulsaiiios ",- . repite el borrado.
X {8(<cksp<(ce) Borra rara( terrs haria atrs.
r Reemplaza un carct.er. Despus de escril>ir el mievo carcter, seguimos en modo man
datr>.
R Reemplaza caracteres (sobreescribir). no vuelve a modo inandato.
ZZ Salimos del editor guardando lns cambios.

3.5.

M ov i m i e ntos del cursor

Para cambiar el cursor de situacin, utilizaremos las teclas de cursor o. en su defecto.


las teclas h, j, k y 1 (es fcil recordarlas porque estn seguirlas en el teclado).
h Cursor hacia la izquierda (

),

j Cursor hacia abajo ( J ).


k Cursor hacia arriba ( f ).
1 Cursor hacia la derecha (~ ) .
Existen otros nindns para mover el cursor de fnrnia <ns rpida, tales romo:
$ ihlueve el cursor al final de la ln<.a.
Mueve el cursor al priiicipio dr la lnea.
H (Home) Mueve el cursor al principio <iel texto de la ventana dc texto.
N (/<fidde) Mueve el cursor a la mitarl del textn rlc la vcnt,ana.
L (L(<s/) Muev<' el c<lis(il' al filial del texto de la ve<ltana.

66

CAP T U LO 3. EL E DITOR DE TEXTO VI (VISUAL)

3.6.

RA-MA

C a m b i o s de ventana

Todos los movimientos del cursor descritos se utilizan para movernos dentro de la
ventana de texto ofrecida por vi . Existen rdenes que afectan al cambio de dicha ventana
sin modificar la posicin relativa del cursar en la pantalla. La orden z redibuja la pantalla.,
colocando la lnea donde est situado el rursor en el medio, al principio o al final de la
lnea. dependiendo del carcter que siga a dicha orden.
z <ENTRAR> Coloca la lnea donde se encuentra el cursor al principio de la pantalla.
z .

C o l oca la lnea donde se encuentra el cursor en el medio de la pantalla.

z Coloca la lnea donde se encuentra el cursor al final de la pantalla.


Otras rdenes relacionadas con el cambio de la ventana son:
"E Scroll up, una lnea.
Y Scroll doun. una lnea.
D Scroll doum, media ventana
U Scroll up, media ventana.
"F Fonuard, avanza una pgina.
"B Backuard, retrocede una pgina.

3 .7.

! C m o s a l i m o s de v i ' ?

Para salir de vi t e nemos dos modos. el primero nos permite salir sin grabar, lo que
haremos cuando nos hayamos equivocado y no queramos que el archivo original se vea
afectado. Para salir sin grabar, desde modo mandato terlearemos:
: q! <ENTRAR>
Si al salir queremos guardar el archivo, desde modo mandato daremos cualquiera de las
rdenes siguientes:
: wq<ENTRAR>

: x<ENTRAR>

Puede ocurrir que al querer salir grabando de vi, ste no nos permita guardar el ber,
porque al invocarlo estbamos situados en un directorio en el cual no tenemos derechos de
escritura. Si nos vemos en un caso como el anterior, podremos indicarle a vi que grabe el
archivo en un directorio en el cual s tengamos la posibilidad de escribir. Un directorio que
cumple este requisito puede ser el directorio de arranque del usuario, tambin conocido,
como hemos indicado en otro punto, directorio HOME. La forma de hacerlo sera dando
desde modo mandato Ia orden:

RA-MA

3.8. OPCIONES DEL EDITOR

67

: $HOME/ombre Mel ~ci>ivo


v a continuacin salir con la ord<n:
q>
No hay problema al decir en este ltimo caso que sali>nos sin grabar. puesto que previa
>nente ya lo hemos hecho.

3.8.

O p c i o nesdel editor

El editor vi t i ene una serie de opciones accesiblcs por el usuario. el cual puede utili
zarlas para personalizar en ciertos aspectos dicho editor. La forma de acceder a es<la una
de lasopciones es teclear desde modo mandato
: set o p c i o n
Con ello habilitaremos la opcin deseada. Si posteriormente queremos desactivarla, tam
bin debere>nos introducir desde mo<io mandato una orden del tipo
: set n o opc i o n
El no delante de la opcin deseada (y junto) provoca su anulacin.
Para informarnos sobre el estado de todas las variables que pueden ser activadas o
<lr sactivadas. tendren>os que usar la orden
: set a l l
Dc esta manera, vinos infor>na sobre el estado de todas las opciones,
Ejemplos:
: set a i
Esta opcin (<>uto>ndent) sirve, sobre todo, para facilitar la e dicin de p rogramas. Si
~ st; habilitado, al pulsar ENT RA R el cursor no se vuelve a la coluuu>a cero. sino que se
~ <>1<.a. alineado con el co>nienzo de la >ltin>a lnea, Para inhabilitar el <>utondent, deben>os
l >r la orden:
: set n o a i
Otra posibilidad interesante dcfinible dentro de vi y n>uy usada tambin para la edici>n
h progra>nas es la opcin conocida <on>o showm<>trh o. escrita de modo abreviado, s>,
( >>ando esta opcin esta habilitada, cada vez que rerran>os una llave. un parntesis o
~> <orchete. el cursor se coloca >nomentnea>nente en la posici<n de la llave, parntcsi
~ < orchete correspondiente. previa>nente abiertos (si s<. encu<ntran eu la pantalla). Para
'.>ivar la opcin shouirn<>tch.deben>os teclear <ksde n>odo n>andato la orden:
:set s >

68

C A P T ULO 3. EL EDITOR DE TEXTO VI (VISUAL)

RA-llA

Para inhabilit.aria, daremos la orden:


: set n o s m
Para, visualizar en todo momento el nmero de lnea en la pantalla, debemos activar la
opcin number del siguiente modo (en forma abreviada)
: set n u
De esta manera, cada lnea visualizada es precedida por su nmero correspondiente.
Si queremos que por defecto algunas opciones estn activadas al arrancar vi, debemos
poner todas ellas en un archivo de conFiguracin que lee el editor cuando lo invocamos.
Dicho archivo reside en nuestro directorio HONE y se denomina , e x r c ( e z run co ntrol).
Un ejemplo tpico de archivo . exrc puede ser el siguiente:
$ cat . e x r c
set autoindent autowrite showmatch report=1
set wr apmargin=8

3 .9.

O p e r a c i o nes con p a l a b r a s

Algunas de las operaciones ms comunes con palabras son las comentadas en la lista
siguiente:
dw Borra la palabra situada a continuacin del cursor.
cw Cambia la palabra situada a continuacin del cursor.
D Borra desde la posicin del cursor hasta el final de la lnea.
C Cambia desde la posicin del cursor hasta el final de la lnea.
f a B u sca en la lnea el carcter "a' ( h acia adelante).
F a Busca en la lnea el carcter "a" (hacia atrs).
Sigue buscando el mismo carcter en la misma direccin,
, Sigue buscando el mismo carcter en direccin contraria,.
J Sirve para juntar lneas.
G Sirve para ir a la lnea que le especifiquemos. Por ejemplo, 938G, colocara el cursor en
la lnea 938.
dG Borra hasta el Final del archivo.

JLA-[c[A

3 .10.

: J.L. ()HDEKE!> XJA.'> j[c[POJJ'JAN'J ES EX XIOL)() EX

69

Or d e n e s m s i m p o r t a n t e s en m o d o e x

E)I('' lo<l<>
fa11>lf'II (k'ol l<i(l<>lo <l(' lllt a l l l>Pri. )(' Iv<'r)<IPs(lc t ilo(lo l a

<l lt<> ir)ti<>(lcv<lo : ( ck> jint<>)) v ( < l f i i i< <> il < >k ii ex < k) f ' ,L<la. Al l i a ( ( r < )o .
cl ('llr ) ol' s(' ('<>1<)("llv cn l a ll [ f 1la l n ( "L. v t o ( 1<> lo (lll<' Ivcl('f'ltl<)s ll><f>i J>iiial' lli t e ( 'l>i
EX I H>r> H )< r it< r[>r< t lo )rrio iiri L <>rcl< rl p tra ( I < clitor <le lirif ex. E t L < ) la i ltivr i
I>roj)ur('oti iclri [)or v i j > l ir a 'L<'(f (1<'r a <>l (lvliv) (4 e x , A l g <>) cjmrij>1(>) <Iv <r<lc'll<') (1<. (st(
tip<> vf> k>s Ii(iii<>) vit<> c il;iilo v x p l i<:rb;Lr<>) crii<> srLlir clr vi
g r L b i<lo o ) i t i g r a l > ar.
V<'alos riliol a ol l'rl) ('lljM('i<l>L<les(lcl ' lit<>r ex a: c sihlcs <I< )(lv <iciir r< > <k vi.

P>ira kc r n f e x t (> pto<vclvte (le ii (r < liivu <> <lc iia <>nl< n <l< li'.) IX v c argark> c
la tneliiori L iiltertlie<liri. I v< ri>) <[1 iif iii@ar I;>r<len r ( r P<r<l <I(
l ex )cgiiicl I ( '1onihr<'

< k 1 ar(. I ii vo,


: r archi v o
Lee (I ar ( l i i v<> arch i v o v 1<> < ;irga vii I;i i i i (>ria iiitc rtiif <lia.
Si <lllvrnn<>s v(lit>il' Ii ni v o a r <lliv<> va< i>)<l<> llii< iii<>ri;i iritf ri((lia a( l iij. <I< I>< r('
iii<>s lltilizar lri <>l<k' e (( </i/) L' a ( I i [ i i la('I() <1 ll<>iiibrc <1<'I >ir<'liiv<>.

: e ar c h i v o
Fclifa el i r < liivo ar c h i v o v i; L ri<l<> ki iiivri>ri;i iritvrliiv<ii ;i< tii>il.
E <ivasiorlc (Jzf (lvscclos llil li r c l c o t v r li(lu ('t iil (I< la ni( rii(>ri;i ilif er tiie<lia a
i lli (iv[(.'l'liclo rLr(.'1vo. Eli vDa v(L)os. (1('h('iu) ckil' l<i ()l'<IC:

rw

a rch i v o

E)( rihv <11(Dril <'niel<> (1< la Iii< iri<>1 i;i ilitvri l i a v


<I(' r('<lir('(<'C>li.

l < i ;Ll)>L<[c >il ar< llivu arc h i v o . F l s i r h r>l<>

S( ' r a <'XJ)liCa(l<>i> J>r()fi><l;ilente ('11 Lli(lu haj)1(rlii<>) (l< I ShfIl.

id>LL v'r(L) (' < Iii' L) I '('(',r>LI I<) '"ll><l < llil' ('1) l ll> f ('lllv < I('I('ri l ll(Ul< >J)>LI't(' (lc la ' i oi l>i

irit< rti<li l <k' l i < i<)ri. Vara v il o. <Ii[>D(i<)) (I< 1>i ur (l< ri sig>i(t(.. la ( il LI < )( rih( < k".1(
lrl llli('ri M ll>L)lrl Iri N cl(' la i < ' I<>l'1>i lliff'l'l( (IrL < ii <'1 ar('llVD <)P( < i[i<'(L(1<).

: M,Nw archi v o
T scril>l< s<k' la lifa M hal ;i la lit)va N <lv)<lv Ia Iii( iiioria iriff 1<I L i l '<l < liivo arch i v o .
I" ir i col<>< ir ( l ( lir)<>r vri il <l< t vrlit)a<l<>iilrr x> <I< lit)va. t v<'iii<>s <I< liar l < > <I< 1>i
f<>ri i )igiii( rit< :

:nmero
El ('lira< >l' s(' v>1 lli l [l "ii Pj '('I fl("L(l(i ('Il nm el o.

Si. pnr < jr1[)lo. tvclcaio : 15. ( I ( r ) o r ) < s if Lr < n l i l( i i< ;i tiiiiivm> J >. I )f L <>r<l( ri
C)1L' ('<)n><la f <'l < a)u (l(' ([11(' II" )h(L jf'>) <' <'I (IP)>ii'r u[k) (I(' .Iofl'A llIC. l)Dr<[ll< ) 1 O s
(j('I('IOS )if llr Cli 11 (ICt<'l'llliri(lo l i I CIO (l (' ll ( a , Cji' u ) l l r i >l l<l'rlo ( l ( '<>IPlli(101

<[L' ('<>ti('cn rr m > r, lu li L r( lri<)s (k i l a l u r l r i ; i > ilv r l [ ) i(ll).

li<)<I<' vi t ( ri( li>s JL J)c)si[>iii(l l <lc eje('lll;Lr < ii >[<[iii< r un(v <l< l )ll(jl ) <l<> (Dii t< (li ar
>i (:ufiiiri<'1(>ll Ia o l ( k ' .

l l i ( ' l s() (l (v)<k' ('I J)l<>j)ID ('(litol' j><>(k'Lu i Irila l' i l r i ( ' v < >

iiilf rl)rl(. <k (> r(lf iivs.rv a l i r a r l a ) OJ )( rL( iuri(>) <Jv<I()(al o )

vi n i

L f i ( o i i t iiifi( i()rir(*t(>rririi' a

( I pi i iilo (lori(l( lo ih ; Lri<lult)s slipl('.'t(' I v('l("ll)<l<>


('I rl-< J ( ' <11 u exit,

70

CA P T U LO 3. EL E DITOR DE TEXTO VI (VISUAL)

Qc RA-htA

Ejemplo:
:! sh
Con esto pasaremos a ejecutar un nuevo shell, y cuando estemos listos para retornar a
nuestra sesin de edicin, teclearemos exit o C t r l -d, tal y como si fusemos a desconec
tarnos del sistema.

3.11.

B s q u eda de patrones

Dentro de vi t enemos la posibilidad de buscar una determinada palabra y colocar el


cursor en la lnea en la cual est situada. La forma de hacerlo es la siguiente:
/ pat r n
En este caso, busca en el texto el patrn especificado a partir de la posicin del cursor
hacia adelante. Si queremos buscarlo a partir d e la posicin del cursor hacia atrs, la
forma de hacerlo sera:
?patrn
En cualquiera de los dos casos, si queremos repetir la bsqueda en la misma direccin que
la bsqueda original, pulsaremos n, y si queremos hacerlo en direccin contraria, pulsa
remos N. Tambin tenemos rdenes que nos permiten buscar una determinada palabra y
sustituirla por otra nueva. stas son:
: 1,
$s /palabra~tigua/palabra~ueva/g
Cambia cada ocurrencia de palabra~tigua por palabrawueva en toda la memoria
intermedia.
: m,
ns /palabra~t igua/palabra mueva/
Cambia la primera ocurrencia de palabr a ~
hasta la n.

3.12.

t i g u a p o r p a l a b r a ~ u ev a desde la lnea m

M ar c a s de posicin

Cuando estamos editando un archivo con un tamao muy grande, podemos marcar
una posicin determinada del archivo utilizando la orden m (mat k) seguida de un carcter
simple, el cual identi6car dicha marca. Una vez puesta la marca, podemos retornar a
ella simplemente tecleando el carcter ' ( acento grave) y a continuacin el nombre de la
posicin a donde queremos volver, Eso permite movernos de un lugar a otro dentro del

archivo de una forma muy rpida. Como ejemplo podemos poner lo siguiente: ma, con lo
cual incluimos una marca en la posicin actual del cursor cuya etiqueta va a ser a. Si a
continuacin nos movemos con el cursor a otro lugar y posteriormente queremos volver
al lugar original, deberemos teclear 'a .

3.1:1. 1<lO) 'Ll< BLOQUES

ttA-t>r)><

3 .13.

71

M ov e r b l o q u e s

Curi el litor vi p o deios copiar y rri<>vvr I>loques de texto <lv uii(>s zonas a otras en el
pix>ceso de edici(i <le un archivo. Paraiov<.r uii hlnqiiv <le uri lugar a otro, colocaremos el
< iirsnr v la prini(r i lnea del 1>loquc <tue quereros mnv( r y a (ontirracin borrarcmns con
la ord< n dd el rrriero dv lneas qu( qiierarnos trasladar. Por vjvmpln. si dariros 1>i ur<lvn
10dd. hurrarvmns 101ri<.as dvl texto; pm dichas lneas no suii eliminarlas definitivamente.
siiio que vi I rs llva a uri b<rgr. Postcriuriiinte. colocarerrios cl <rsor < n ( l lugar <loiide
<k(i<lainos colorar el textu 1>nrrado y pulsu<enins p (p(<t), cori lo cal l bugr ec restaiirad<>
( ii la iiueva posicin. Este )rocvdiriIieiito puc<lc ser usado tarnhi<'ii p<u.a mover palabras
<> caracter<s. piies al < liriiiii;u. iiria pahihra o iin car< ter. <'stos snn taiiil>in llevados a uri
/)ff> auxiliar. El p r o (esu dc pegado dvl br<gjrpuede rpvtirs< tantas veces con>o sea
preciso.
Para copiar 1)loques dc tvxto. deE>ercmns iitilizar la ordcii yan/;. qiiv nos pvriiiite llevar
<1 t<xto a r i a I IIninria i n t c rm< dia, pero iriat<nivnd<> vl tvxt<> inici il, l 'u r <j viriplu, si
q<i< remos llevar al bi s en 5 l n eas a partir dc la p o sicinri actu il <lel (.ursur. dvl>(remos
tc<. 1ar 5yy u 5Y. Al hacer esto. vi >riostrar uri m< nsajv coriin cl siguierite:

5 lines

y a n k ed

A contiiiuaci<>n. para copiarlo. movervins vl mirsor al l u gar deseado y p lsaremns p.


Los hloqvs tariihiri p(<<den ser gimr<la<los v buffcns <on iinmhrc. Di clio no)ni>re s
<nipodr dv ii solo car;i<t< r. Si qr<iii<>s gardar 7 l nea eii n b< gr l l a n ia<loa,
d< hvrvrnos tc leer:
"a7yy
Cni> lu cual giiardaremos 7 lneas eii cl buPvr a. A c oritiriu iciii, par>i copiar ( l b ><g@reii
otro liigar. nns cnlncarernos (nii vl c ursor (ri l a l nea dvs('ad i. no<iii)rar('mus vl b><ej<'ry
puLsarvmos p.

"ap
Los bid)rs coii riunihre sor> ni 1tnidos por vi ' u i q i ie i>os puiigriiiios a vdit ir utrn arcliivo.
simpre qiic riu nns s>ilgaios d<I vditor. Dv csa rnavra.. 1><><lrvnios copiar 1>l<><1vs <le texto
d(' 11os '<rh>vos vii otl 'us.

3 .14.

R e c u p e r a c in d e a r c h i v o s

Piiedc uciirrir que < iiimd<> vst<urios v<litaridn un ;irliivu ( l sistcia sv venga al >ajo por
uii fallo d< ; i l i i i i v n t a c iii o q e ac c i<lvllt'lll llvl i te s eatllos dcs<oll(('tadus. Fr i es tos ( a s es.

<'xist< la p<>sil>ilida<l d<' r'pvrar cl a r chivo quc estl);inius ('dit ando. ii>ch>su si l>o lo
lial>arrios giiardadu. Si cl archivo (iu< perdemos tin< dv nnihrv tub e r i a . c . l<i funa <i<
rv< i>p<'riirlo s< ra la siguiritv:

$ ex - r

t ub e r i a . c

'I <lc funa general:


$ ex - r

n o >i>bremrc h i v o

72

c A P T 1 ' L(? :3. EL I;DI'l'(?ft Dl) l' F x T(? vz {'>'Isl..l l.)

3 . l5.

RA-.'>t A

L a c a l c u l a d or a b c

A ii(fue este caf>ttifu est (fu(fi<'R<lo Rl e<litr vi . ) I i <>1>j('tu Lfe iiitro<lii(ir i l g i i n t e x t o


(l( 1>I liP1)ii pRIR J)iact lea> coll ( st ( ' <l i tol'. bc { />(lsi<' <'<l/c>>l<l/o>' )q>le pll(( l(.' sf i l t i l i z >L<l<>
paf I P Lliz<(r ol>( raciuiies niat ( In t i( iis. Esta < <Ll(f(L(1(>IRp>i( (lt' opt I ai (l(' furiii L ii>tera( tiv i

(leven<lo Pii la Piitra<l Psta<fr) u f>iii pro<S(LI arcliivos <fiie 1<.. psenios coni<> arginiientu.
Estos ar( l i i vos vall >Lc olltPI>Pf <)rcfils (llle soIl ejeciit I das p or l c f ( 'Ul(fur. L;L sintaxi s
d Psiii ul'(l<'Il Pc liL slgrilill(e:

Sintaxis : b c

[ - 1 ] [ - c] [ar c h i v o (s) ]

-1 Pn ite a.. P(l< r a fui>< ioiies <le la 1>il>li<>tR inat(i i ica.


-c %<o se invoca R dc. s<>lo se (onipil i (relniente bc es iin pr<pro<SR<l<)r qiie Iiornialni< iit<
lllvuc(L (Lde).

bc posee iii> lg(iaj- ya siiit ;Lxis Psiiiy siiilar a la <1<.1


legj( l', p<>s i(leiii ific(LLfun s.
palRl)las I Psefva(ls, op c l a r l o i ( s >r sll>f)ol<>s <ll>e s(Iilll <l(scl it<)s seg1(lanlei>te. A l l t ( s <l('
Il'L(l'L, vaillos pOI>PI' UII ( j('ll)10 <le uso (le l(L cl('ill(i(lora b c :

$ bc
b c 1. 06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type 'warranty'.
123.132+75.64
( or d en )
198.772
( r es u l t ado )
898.2345-34.23443
( or d en )

864.00007

(v esuLt a d o )

123498
12054
5 10
9765625
1000/3
333
scale=10

( or d en )
( r es u l t ado )
( or d en )
( r esu Lt ado )
( or d en )
( r es u l t ado )
( or d en )

1000/3

( or den )

333.3333333333
sqrt ( 9 78212381237812)
31276386.9594589202
a=3.141592
a+3
9.424776

quit
$

(r esu l t a do )
( orden )
(r esu l t a d o )
( or d en )
( or d en )
( r es u l t ado )

( or den )

3.15). LA E.'ALCULADORA BC

Qc RA-MA

73

Inicialmente aparecena presentacin que nos indica que la versin de bc que estan)os
utilizando ha sido desarroll)da por la F@ce Soft)are Fo)ndntion. Esta presenta(in no

apareceen otras implementaciones de bc.Como pndemns apreciar.con bc podemos harer


tndo tipo de nperacinnes simples, pero. adems, aporta operaciones ms evnluriunadas
que veremos n)s adelante. Para terminar la sesin con bc daremos la orden quit . A )mque
a primera vista bc parece una calculadora con poca potencia. la realidad es otra. ya que
bc es capaz de llevar a rabo operaciones con)o las siguientes:
$ bc
b c 1. 0 6
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type 'warranty'.
19723i897392173982179837128973892i7 . 123987128973982719378912 +
3 129081209830S21809380129830S.123987213897231897321987
( or d en )
19723221030029496527201806698687526.247974342871214616700899 ()esas' )
12"13 4
( or den )
40764955294216304743794128079846299844235020571372407541675593946627 1
72751249728065205173669089689216182244685486058202255169383625926645$

13570406 4

( r esal t ado )

sqrt ( 8 i 9 2 379812789327981237892371892i793721987398 )
905117661.566126328631 7
quit

( or den )
( r esa l.t odo )

$
Realmente bc es una r a l r uladora sin)l)lira qe l)e11lle llevar a ra l )o opera('iones no
realizables en las caleladoras ordinarias. Seguidamente van)o a ritar los elementos d(*l
lenguaje de la (.al(.uladora bc.

3.15.1.

I d e n t i fi c a d o r es

Un identif)r;Idor es un carrtcr sirnpl( perten(( iente al intervalo l:a-z] ( n n)insclas.


Un identifica(lor se utiliza para representar variables. )atrices (nr)n/s} y funci(n)es. Dns
identificadores idnt.icos no interfieren si represent,an dist.intos objetos; es decir. x como
variable no ti(ne nada qe ver ror) x como f)mcinn.
EjeInplns:
x Varial)lc x.
x[i]

El e m ento i d e la matriz x. El rango de las Inatrices va (lesde 0 a 4097.

x(a,b )

3.15.2.

F u n r in x ron parn)etros a y b.

F o r m a t o s d e en t r a d a-salida

Dentro de bc existen dos rdenes que uos permiten r legir l a b ase del sistema dr
11meracin que deseemos, tanto par) el formato entrada d( datos ron)o para el de salida.
Estas rlos rdenes son:

74

C A P T ULO 3. EL EDITOR DE TEXTO VI (VISUAL)

ibas e

RA-MA

n In di c a mos que los nmeros que introducimos desde el teclado estn en base
n. Por defecto, la base es 10.

obase ~ n L a v i sualizacin de los resultados se har en base n. Tambin por defecto, n


es igual a 10.
Otro punto que esposible definir en bc es el nmero de decimales con que se va a operar.
La orden para definireste nunero de decimales es scale:
scal e

n L os r e sultados se van a dar con n cifras decimales.

Vamos a poner un ejemplo en el que los nmeros de entrada sern interpretados romo
nmeros en binario. En este punto realizaremos una operacin y el resultado ser visua
lizado en decimal. A continuacin haremos que los resultados se visualicen en octal y
realizaremos la misma operacin.
4 bc
bc 1. 06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is frac software vith ABSQLUTELY NQ MAIKANIY.
For details type 'varranty'.
ibase~2
(A/me v .os de e s t r a d a e n b i n a r i o )
1001+0011
(Op ev . aci n)

12

(Resul t ad o e n decimal )

obase=8
1001+0011
14
quit

(/l/tl m er'os de s a l i d o en o c t a l )
( Op er a c i n )
(Resu l t a do et i oc t a l )

3. l5.3.

Pa l a b ras clave

Vamos a describir a continuacin las palabras clave que se pueden utilizar en el pro
grama bc:

if

( expresi6n)
s entenci a s

Esta sentencia de control ejecuta las sentencias dependiendo de si la evaluacin de ex


presin retorna un valor verdadero o falso. Las llaves solamente son necesarias cuando
agrupamos varias sentencias dentro de i f.

Ejemplo:
if (a b) (
x~ x + a
y~ x+ b

Pc RA-KIA

3 .15. LA C'ALCL>LADO/t.A 8C 7 5

w hile ( e x p r e s i n )
s entenci a s

L><s s< uteu< ias >> <'rior<s sv r<l)ite >ni< utr la vvalua< iu <l<' vxl)> va>u (l('v<'Iv) u v'<l<)I
< ierto.
Ejeu>pln:

while

f or

( i < 2 0) a = a + i

( v = e ; co n d i c i o n ; p r o g r c o n d )
s entenci a s

Esta acare>u ia <le coutr<)1 s<t iliza ( uad<) <lvsv<><)s repetir >>lg t>as sentencias u uu>er<)
< lvt<>ru>iua(lo <lv v( s .
v= e

v r v l ) res< uta l;> vari;>1)le <lue svr(i ii< ia<la < n <1 valor <le e.

condi c i n

H v t )res< uta 1,> vnn(liciu <le >untcni>nivut<> <l< utrn del 1)u< l<'.

progr cond Es uu > vxp>vsit> cuyo v >lnr < v<)luvi<)ua <'u l sentid <lu<' s<' de > l cou(lioiu
1)<>>'a finalizar la < jrv< i <l<' la s<'ut<'< ia f or.

Eje>nplo:
f or ( i = 0 ; i < 100 ; i ++ ) a = a + 2

b re~~ g g
break

break se utiliza pr tiualizar < ual(lui< r 1)u< lv f or o whil e


l;> <'<)u<ii( it> <1< tvru>iua('inn.

3 . 15.4.

> un<tu< un sel>a<,"acuu>1)ii<lo

F u n c i o n es

Es 1>osil)lv <l< fiir tuuviouvs <l< utrn <l<. bc <.ou ol)j< tn <lv <l< 1>lau s< r lla>a<las vu
('ual<li< r u>ou>vto. La fnr>a <lv <ivhui> uua fu< i es la siguiente:

d efin e f ( x )
C uerpo de l a

f uncin

76

CAP T U LO :3. EL EDITOR DE TEXTO VI {VISUAL}

RA-MA

Aqu hemos definirlo una funcin denominada f, a la cual se le pasa como parmetro una
variable que denomina>nos x. Es posible pasar varios argu>nentos a la funcin siempre que
vayan separados por con>as.
Si dentro de la funci queren>os utilizar variables propias de la funcin y que stas
<n> existan de forma global, deberen>os declarar dichas variables en el cuerpo de la funri<>n
de Ia siguiente n>anera:
c (a , b )
auto x
x
a
a = b
b = x

La fun< i<>n anterior ut,iliza una variable <lenon>inada x que slo existe dentro de la funcin
c. Para indicar estn hemns hecho uso de la palabra reservada auto,
Tambin podemos hacer que una funcin retorne valores, para lo cual debemos emplear
l a palabra reservada ret u r n .
Veamos un ejemplo. Supnngamos que tenen>os un archivo de texto donde est definida
una funcin que interpretar bc. la cual calcula el cuadradn <le un nmero. El contenido
de este archivo es el siguiente:
$ cat c u a d r ado

d efine c(x )

auto a
a = x 2

r etur n ( a )

A hora vamos a indicarle a bc qu e t r abaje con este archivo, con lo cual deutro de l a
calculadora podremos utilizar la funcin indicada. Vemoslo:
$ bc cuadrado
bc 1. 06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSQLUTELY NO WARRANTY.
For details type 'warranty'.
n = c(3)
n
(o t',sua L i z a eL va l o r . de r >}
9
n = c(25)
625
quit

RA-MA

3.15. LA CALCULADORA BC

77

Como podemos observar, la funcin c calcula el cuadrado del n>nero que le pasemos
como argumento v devuelve elresultado con return,
En bc existen tres funciones predefinidas. adems de las que se denominan funciones
de biblioteca. Estas tres funciones son:
sqrt (expr e s i 6 n )

C a l cula la raz cuadrada de expresin.

lengtb ( expr e s i 6 n )

C a l cula el nmero de dgitos de expresin.

scale(expresi6n) Calcula el mmero de dgitos decimales de expresin.


3.15.4.1.

Fun c i o nes de la b i b lioteca mat e m t i ca

Estas funciones que vamos a citar a cont.inuacin slo son accesibles si ejecutamos bc
c on ia opcin -l .
s(ngulo)

C a l cula el seno del ngulo expresado en radianes.

c(ngulo)

C a l cula el coseno del ngulo expresado en radianes.

a(x) C a lcula la arcotangente dc n y devuelve el ngulo en radianes.


e (expres i 6n )

C a l cula e' ~"' " ' " " .

l ( expr e s i 6 n )

C a l cula el logaritmo de expresi 6 n .

j (n,x )

C a l cula la funcin de Bessel de orden n.

3 .15.4.2.

O pe r a d o r e s

Tenemos r uatro tipos de operadores: aritn>ticos. dc asignacin, relacionalcs y unarios.


Ar i t m ticos: +
De asignacin: = + =
Relacionales: <= > =

Unarios: +

= w = f

= 'X

== !=

Para terminar, hay que decir que es posible poner comentarios dcnt,ro de bc, para lo cal
se utilizan los siguientes smbolos:
/+ Comentario +I
Como ejemplo fmal, vamos a crear un programa queos puede servir para calcular las so
f iu iones de una ecuacin de segundo grado. El programa lo vamos a denominar 2o~ r a d o .
y su contenido es el siguiente:

VS C A P T ULO 3. EL EDITOR DE TEXTO VI (VISUAL)

$ cat 2 o ~ r a d o
/+ Resoluci6n de una ecuaci6n de 2' grado +/
/+ a b y c son los coeficientes del polinomio ~/
print "Ecuaci6n de 2' gradoin" /+ Visualiza este mensaje +/
a ~ 1
b = 7

c = 12

r ~ b " 2 - 4 +a+c
s ~ sqr t ( r )
= (- b + s ) / ( 2 + a )
z = (- b - s ) / ( 2 ~ a )
pri nt " Soluci6 n 1 : "
print
print

ii $nn

print

Il (n ll

" Soluci6 n 2 : "

quit

$
Para procesar el archivo anterior. tendramos que invocar a la calculadora bc del modo
siguiente:
$ bc 2 o ~ r a d o
bc 1. 06
Copyright 1991-1994, 1997, 199S, 2000 Free Softvare Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type 'warranty'.
E cuaci6n de 2 ' g r a d o
S oluci6n 1 : - 3
S oluci6n 2 : - 4

Qe RA.MA

3.16.

3 .16. EJERCICIOS

79

Ej 6 FClClQS

3.1 Introrluzca el siguiente texto con vi y gurdelo en un archivo denominado ext2. doc,
colocado en un subdirectorio doc situarlo en su directorio de arranque.

El sistema de archivos de Linux

INTRODUCC16N

El sistema de archivos de Linux es la parte del ncleo (kernel)


encargada de gestionar los archivos del sistema. Entre sus funciones
podemos citar la creaci6n y borrado de archivos y directorios, la
protecci6n de la informaci6n, la lectura y escritura de datos, etc. Uno
de los objetivos planteados en su diseo es lograr la independencia de
dispositivo, de este modo las operaciones para acceder a los archivos
son siempre las mismas, independientemente de donde estn
localizados, disco, disquete o CD-RON. Es ms, el acceso a los
dispositivos de entrada y salida se realiza del mismo modo que el acceso
a archivos or d i n a r i o s .

CARACTERSTICAS DEL SISTEHA DE ARCHIVOS

El sistema de archivos de Linux tiene, cara al usuar'O,, una estructura


en rbol invertido en el cual los archivos se agrupan en directorios. En
l, todos los archivos y directorios dependen de un solo directorio
denominado directorio raiz o root, el cual se representa por el sfmbolo
slash "/". En caso de que en el sistema tengamos varios dispositivos
fisicos de almacenamiento secundario (normalmente discos o particiones
de disco), todos deben depender del directorio rafz y el usuario tratar
cada uno de los discos como un subdirectorio que depende de la raiz. A
esta operaci6n se la conoce con el nombre de montaje de un subsistema de
archivos .
Los archivos se identifican en la estructura de directorios por lo que
se conoce como pathname o camino. Asi la cadena /etc/passwd identifica a
passwd como un elemento que cuelga del directorio etc el cual a su vez
cuelga del directorio raiz (/). A partir de la cadena /etc/passwd no
podremos saber si passwd es un archivo o un directorio. Cuando el nombre
del camino empieza con el carcter / se dice que el camino es absoluto.
Linux tambin dispone de nombres de camino relativos, por ejemplo, si
nuestro directorio actual es /usr, la cadena bin/troff identifica al
archivo o directorio /usr/bin/troff. A esta cadena se la conoce, como
hemos se5alado antes, como camino relativo puesto que no comienza con el
simbolo slash.

80

( ' A P I T ULO 3. L L L D I l'OR DE TEXTO VI (VIMUAl.)

' RA-Al

Cuando creamos un directorio, automticamente aparecen en l dos

entradas cuyos nombres son "." (punto) y ".." (punto punto). "." es una
entrada en el directorio que identifica al directorio mismo y ".." es
una entrada al directorio padre, es decir, aquel directorio del cual
cuelga el subdirectorio actual. Las cadenas "." y ".." tambin
pueden ser utilizadas en el nombre de un camino relativo. Si por ejemplo
actualmente estamos colocados en /usr/lib, la cadena ../include
identifica perfectamente al archivo o directorio /usr/include.
Linux trata a los archivos como simples secuencias de bytes. Algunos
programas esperan encontrar estructuras de diferentes niveles, pero el
ncleo (kernel) no impone ninguna estructura sobre los archivos. Por
ejemplo, los editores de texto esperan que la informacin guardada en el
archivo se encuentre en formato ASCII, pero el ncleo no sabe nada de
esto .

Otra caracterstica fundamental del sistema de archivos de Linux es que


soporta diferentes tipos de sistemas de archivos: minix ext, ext2,
vfat, msdos, proc, iso9660, ntfs, smb, hpfs, xia, afs, etc. Ello permite
que desde Linux podamos acceder a los archivos almacenados en sistemas
de archivos diferentes de forma transparente. Por ejemplo, si en nuestro
sistema tenemos una particin en /dev/hda1 del tipo msdos, esta
particin puede ser montada en el sistema mediante la orden:
! mount -t msdos /dev/hda1 /mnt/dos
A partir de este momento, en el directorio /mnt/dos tendremos accesibles
todos los archivos de la particin msdos. El acceso a esta informacin
se realiza de forma transparente cara al usuario sin que ste deba
conocer que los archivos de este directorio residen en otra particin.
Para ver cules son los sistemas de archivos montados utilizaremos la
orden mount .
! mount

/dev/hda2 on / type ext2 (rw)


n one on / proc t y p e p r o c ( r v )
/dev/hdal on /mnt/dos type msdos (rv)
HISTORIA

El primer sistema de archivos soportado por Linux fue el de Minix. Este


sistema de archivos tiene varias limitaciones: el nombre del archivo no

puede ser mayor de 14 caracteres (mejor que 8 + 3 de cualquier modo) y


el tamao mximo del archivo es de 64 Mbytes, adems su rendimiento no
es muy alto. Por este motivo, Rmy Card de la Universidad Pierre et
Marie Curie desarroll en 1992 el primer sistema de archivos nativo de
Linux, el Extended File System o ext, El nombre de un archivo de ext
puede tener una longitud variable de hasta 255 caracteres y el tamao
mximo del archivo puede ser de 2 Gbytes. En 1993 se introdujo una

Qr RA-llA

: 1.15. F JERCICIIC)8 8 1

variante de ext que se denomin6 ext2, que es el actual sistema de


archivos nativo de Linux que proporcionan la mayoria las distribuciones
de este sistema operativo.
Al introducir el sistema de archivos sxt, fue necesario introducir un
cambio fundamental en la estructura dsl sistema, Los sistemas ds
archivos reales (Minix y ext en ese momento) fueron separados de la
interfaz de llamadas al sistema por una capa denominada Virtual File
Systsm (VFS). VFS permite qus Linux soporte diferentes sistemas ds
archivos con una llnica interfaz ds acceso a los servicios del sistema.

3.2 Realice cada lma rle las acciones siguientes. Para ada una de ellas emplee nica
let(' uH. ordc: sltc Pl cursol' Bl final d'l tPxtn. vava ahola Al pllnclplo dPl 'texto.
site el curs>r al pricipio de la lnea 37. vaya ahora al fi81 dc la lnea aterior.
elimine 18 lnea a< tu;ll y la siguiente utilizando na lnica nrd(n. Si a ntiuacion
sp col<><.a rlns lneas ms abajn y <la la orden p.,',qu ocurre". Cr>pic el prinlpl' parl)f
del texto en un huffcr de noll)re "a" y <.Oloque el lnlffer "a" al final del textr).
3.3 Sitese al principio de la lnea 30 del texto y c npi( a p a r ti r d e ella 20 lneas eu
lul />u+sr. Copie esas lneas al final <lel texto. Salga tclnporalmente al shcll y copie
<l archivn ext 2 . doc e cl archivo arch , d oc, Sstituya eu todo el texto la palabra
Linux por GXiU-Linux. Guarde el texto con)prendido entr( las lneas 50 y 60 cn un
a rchivo denonlina(lr> texto . d oc. Busque la palabra Linux e Pl archivo ext2 . d o c .
3.4 Dibuj e n a l nea <lcbajo de c(lda ttulo de prrafo. La lll(A estar cnlnpucsta pnr
80 gui<>nes '-'. Rcali(>c sta tar;I tilizando la nrdc <1c repeticin rle vi .
3.5 Xlorlifirluc cl Archivo . exrc rlc sr cncucnl ra cn su directorio dc inicio (si no existe,
cree uno nuevo) para quc siclprc quc inicicnlos vi estn habilita(las las npcinncs
de nul'l'Bcln Autonltl('B <f' lneas y cl <ll</olll<lctl/,

3.6 Escriban pn)grama quc d(sglos( (l L V . A d ( u i n l port( dado.


3.7 Es(riba l p rogranla qe calela las races <lena u a i dp spgul>rin grarln y
cjpctclo con bc p(Ira cnn)probar su fcionanli nto.
3.8 Escriba lul programa para bc (pu ( n ntcnga uua fncinn quc calcule el factorial rlc
u n ul c o .

3.9 Esliba un plogl>1IA quc PPl llta (.'81(ulal las reteclocs A l'calixal sobf<". a can
ti<larl dada. sabiel>(l<> que 18 reteci)n ;l aplicar ser rlc un 10'l<, si la cantirla(1 cs
ife) ior a 100, y d( 2 0 'l si <s superior 'l est) (antidad,
3.10 Rol(ii(c un p rngr)nra para bc (lc calcule cl seno dP lns ngulos 0, l. ' 2 . . . . . 300
expresarlos en grarlos. Con)o sabelos. bc nos pcrn)it( (Alcuhlr cl sc<) dc un ngulo.
pero para ello el valor d(!l lglo debe estar expresarlo cn radianes.

82

C A P T ULO 3. EL EDITOR DE TEXTO VZ (VISUAL)

RA-MA

3.11 Copie el siguiente programa escrito en lenguaje c que calcula 2.400 cifras del nmero
pi. El nombre del archivo ha de ser pi. c.
/yyy

+
~
+
e

El siguiente programa calcula 2400 cifras decimales del


nmero pi. Para poder ejecutar el programa, es necesario
compilarlo previamente. La forma de compilarlo es la
si g u i e n t e :

+ $ cc pi . c - o p i
+ Con ello (si no hay errores) se genera un programa
~ denominado pi, y la forma de ejecutarlo es:

+$pi
+ Si cc devuelve algn error, es necesario volver a
+ editar el programa y eliminar el error.
yyg/

!include <stdio.h)
long int a = 10000, b, c = 8400, d, e, f[8401], g;

main()(
f or

( ; b c ; )

f [b++] a/ 5 ;
f or

(;
d ~ 0> g ~ C + 2

c- 14, printf(" /.4d", e+d/a), e d/a)


f or ( b

~ c;

d+~f [b]+a, f [b] ~d / g, d /~g , b;


d~ b);

C apt ul o 4

E l int r p r et e d e r d e n e s
4 .1.

I nt r o d u c c i n

(.">>ai>do itii('ia>i>os iit1 si'si()t> 1 XIX

r <'sp<>1><lic >i<l<) a lo gi n ( o n n c e t r o i i o t i>I>rc C!e

>>si>al io o (1<' (o>l<xi I (l>ln)s la ('Iav(' (le a((eso cetro<'t a. <'I s>s(c'n> <'Icef a ante)ln't>("l
t>i< iit< >iii prograt tia (lc i)niiiia<l< > sli< 11, cnc arg l<> (Ie t>terpn t;>r t o<l is I>is i)ni<n(rs (Iue lc
in<li<(>riios. Fl t ip<> <lc slicll (Il>(' s(' >l('i <'s ('I ii>(li( a(l<) ( t> I ilt it>i() < >itnpo (I(' l>i liiea (I('l
;ir< hivo /et c / p a s a>cd . ('orrc'spon<ii<'nt(' ><I i>stiari<) (Ii>e ini('ia l'i sesi<)ii. Fl sh('11 ii>(li< a cine
< st> prcsent<. esperaclo Inistr is <)nl<nes, Inostran(lo i>na marca o t) r o n>pt. Ls te l)rr)>)>l)t
< s pc>r <l< f< i t<> ('1 C;ir;< ter $ en el < >>s<><lel Borr>c shc:ll (sh) <; el Ko ni s h<'ll ( k s h ). F ti c !
<'aso <l(' ((n(' (s>cl<)s ilt iliz )ii<lo ('l C' , '<hcll (c s h ) , cl p r c )tiipt <>s < I r ar<( tcr <l<'1 tanto p<)r
< (nt<>'/. Litinas tttiliza por <le(.t<> <c<> intc'rpr< t' le <)r(le>les i>1i vali>>lit<' (4el Bot>T)>e
.')Arll <1<noiiiiti la t><ish ( Bocio>c .1>>i)tt>c r,'l>c ll) y sii t ) r o r>>t)t por < lcfecto cs b a s h$ l . a

ira(l>1(cin (le shell sera lg pareric!o a '><ha o < ;ip;irazc)n, l;> 1'az<)1> <l< C!< Ii<i>ii>arlo
as <Iue(la ref!ejacla ei> la fig>ir'i 4.1. Fn ( lla vernos cnio c'I sl>('II cnv>1< Ivc al resto <l(' I is
<" >p;is (lel sistenia (n t i l id>lcs. I>>>rico () h <rv>c l v h ar<l)vare), sirvi('n(l()le (l(' ( apar'iz<1. Vl
shc ll es I i (apa ni s < xtern i y ;>cti > (o>n<> ii>terf <z mitre c! >Isuari<) v < I rest<> el<l sist< n>a.
Xii< l>as p<'rsoiias ti<'nd< ii a c<)iifinli r Io s t <'riiii i ios <I<' intcrpr( te <lc' <)r<l<'1>('s v sist<'
n' <)p('1>>t iv(). %<>rtii>ilt t>('nt(' i(l(1>t i!i( an al pr i t er t<"rn>iti<> coii Pl seg>l>><lo. Hc al ti>ente, c I
i>itrpr< tc cl ) r <l< ii< s c s iiii p r<>gr>iiiia i s . ) i i ic> 1() p((1( i> s<.1' cp o tnan. I a I t az(>n <l<'!

n>al<'nl<'<lid<> > iit > lo ra(1i< ;i c. i> c(ii<' ('I sli< II i><'I >i ( <)1> l>l erf iz < >it n <. I usii iri<> v cl
sistcin;> op( rativo. v > I i lc>rga. <.'I >ts>tari<) f i(i(lc 'i n>ez(l.>l' all)(>s <'< >I>('aptos.

Fl sist('n>a < p<r<(iv<) si<npte esta c >I<><",ul<> < ii i>ii iiivcl i>if< ri<. a lc)s progr;ii>i u. (in
('liii(l<) el, licll). H ( "<l>ni'nt'. 'I s>st< n> (lp('lt>v<) p>le(1<' (()I>s>(l<lara(' ('<llo >l>l conj I>t< (l<'
I t i>l>us (I(' p>1('(1<'li ser i>iv<)( >i(l;is por t ><h)s 1()s pt<)gr'>ll>i>s en eje<'>I('l(n. 1 s f>lncii)l><'s (lc l

sist<n i operativo s<> luchas nics (I>' <'l l>ccli<> (lc' s('rvir <1< sitiip!(' l)il)liote<'a 6<' fi>t'io
l
Ll are(>ivo / e t c / p a a swd cs ui> ar<l>ivo ii <on(>gr<i <i <ini con<.iei>e una in><'a poi <>acta <isuao u i
i >ene cuenta dc, conexin en el sisten>a. r/ad > lince ii< ne varios < a>nos ~eparados 1>or <tos tul>os : t '.<re

~al)s ( anlt)os <pnc n<os <'I n(>nlhrc d<' usu>>rill, l>l p>>l t>< i> <!;>v<' < >-ripi>uta, el ide ni i fi< ador de u s u ario y <le
ur>aa <tire riorio <tr arrai>qu< (<I>res <orio HOMEt, > i l progran> < il< ii< io. 9c es <ira>aln>< ni< < I in'rpreie
(ir<H nes),

I llterprete de rdenes

Aplicaciones
Sistema Oper;ltivc)

Hard~ are

1 it'ura I. I . 'Di'xgl anxa < lt' (ap)Li rnlpl( ;1(IO < I V IX .

lls. El sil>it('ula opt'I lit iv<> s. 1)clt'Iu(Ls. 1l '1(luliist r;ui< >r y I'est<>r (1< n < ursos. tato f si< os
(irpn's<ir LS, <liS<OS, t< rii)XIS. etC.) COIO l),i(OS.
L n sllPII, 1> Laicax('lit('. f s l t ( ' l 'px('tt' (I<' <)r(l('Ps <l lc ix..i t r ;>1);l j<> < orlsiste n
irr 1)Ls inst l uc cious <lue I(' da Pl usuario ( llurxlx;llxnxtr a t r x) es dl t( < la(lo). realiIixr u;l
s< rie <1< futlcioes dalx'llisis r p lsar I l <>ni< iutrr p n ' t ;)<la 11 sist< la OI)erat iv<i (l< l< o <>
l c> >>(l ) p>u<x su Plf cclo kl n l f ('aulalo ('l<Lil' > (Ir rl( < c l o ( l (' l ii> < >l (l( 'pol' p<"t <' (1( I
Sll('ll <S 1 Cal II al l lrx llrllil(lic il) S)ST('ll><l Pal a <.'n'i' ll P n >(CSOl llJ< >(fu>h' l St gr ll(la 1)< >l' l<l

Il;lxacl;1 (Ll c(' (l( i n i( ia ( l p r n g r axxxrluc' s(' (li('n' ('j('('t lr. L ; Ls llanlil(l Ls al sist t l;< so
< I 1aislo <lr < olir u i<> <lr 1<>s pro)>ralas. ( < st r uso rl sllll. x c l llar<lxrillt cl I l
ula(lll l il . I o f l<)s 1<Ls llia(las ill i l s t c l a son ll xillx('Ja(l<L+ p< >l' ('I nll('1( (> f'I ('<> I t <)ll>1(' a('Tila
( ol<> lutI fi<I.. u < sr t' caso t I c ( I llixrcl)v <r< l' los pro)<r<tIILs c rjrcuc iu ( pro sos). El
le<",<nisnlo cle ej(< uc i()rx <le ;1 or<1< <I1;1 r< l]cj )<l<) <.n I;1 llglxra 4.2. h"<>llxo pelxx>s

'<prf c iar. < ancl<> el it rpn t( d

< >r<lnxc s T ir< clxx 'j< cut;lr u pn >Lr;llxx'x. Io <llu ha< c t s

<lplic"lrs(' (;lp;xr('('(' <los iut(xrpr('t('s d(' ()l'<lxxs 1>r'x('llxs a lix llauxa<la, f ork). l .llx;x p;lrr<
<lt' i<l dl v rsl()lx s l<l <'lx('arg>Kla (l(' (' )r('Tal ( I

p r o g l a l a l ( l xc<1(lo (plo(.'l',io l J(>). L' l ) >

< >l I" x (PI ( l<'('so P<l(ll <') . )r('rrrll I('t<' .i(' <IP(la <'sP('I au< I< ) <1 (I(' t ('l'Il(' (' l

P r o c ( ,i( > lllJ( >

( a ui/ ). Ar><ll < st<lt i) llo s < st r i< t;llPtr ol>lig ltc)ri<>. plr o < rr il f III( < I pro< (s<l
p l(lr ( s ll( II l s<' ( je< lit c >ll< urr<t (lct ( o c I pr<>(( s<> llij< >. o <)I@i<l(los cirxf I. vl V<
(s lit itarvix. L<>s pr<>sos p<>r lo.- <lu< I sllc II t, l>rr;l s l i c q rxe sr c j< ctaxi cn prixxu r
plilo (f<>rryrio((<li. x los <I(' sr rj c < 'tan l 1 ;l v ('/ < Iu(' ( I sll( ll s(. dexluxula pn ) ('(sos eu

s(l,txlxdo pl uu> (li<ichy>1>un<l).

I.l sllell llf va incorp<>raclas alx,xx)Ls rdxus <lrxltn> f l< su pn>pio <<Ii <>: cs <Ircir. Iu>
r)cxst( n conlo px'olrxlll<<s ( JpcTal)lc,'i t'n l ll)' lxx clirctorio. l'.stas r<lnx(.s s(ux las intrnsecas
<> int< mas drl s l l ell ( c d . p wd. ec ho. ('t ( .) . (.'Ilixxx<lc> s.j<'(ta las r<l(es llcx')Li (l('l
si)ll. o sP. (n"1 pl < >(Psos llij<>, y>x <Iu( stixs l < l(xxs s<l rt lllct sul>l t ir>as <leutro clc I

ltrprrtdr <rclrxl< s.

4 .2. HISTORIA DE LOS INTRPRETES DE 6RDENE S

85

chc) I

Hijo

fork( l

Padre

e xec( )

exit ( )

w ait ( )

'I che ll

Figura 4.2: El shell crea un proceso hijo para ejecutar una orden.

4.2.

H i s t o ri a de los intrpretes de rdenes

El primer shell desarrollado para UNIX , sh, se llam Boanic s/rc/1, debido al nombre
de la persona que encabezaba el equipo que lo escribio, Steve Bourne. La Universidad de
California nxejor ronsiderablemente el Borrrne s/rcll al crear el csh (California s/rcll). El
C s/rcll ofreca nuevas funciones que el Borrrnc Shcll no tena (his t o r y . a l i a s , p osibili
dad de escribir programas de shell ms verstiles. ctc.), pero tiene dos inconvenientes: no
es estndar y presenta problemas rorl los progranras del Bourne Shcll. ll,ls tarde, David
Korn. de los laboratorios Bell, desarroll un rruevo shell cl ksh (Ko rn S/rcll) cl cual incor
pora las mejores funciones del Bourne shell y el C s/rcll siendo totalmente conrpatible ron

cl primero. Por ltimo. la Fn.c Softtaarc Foundation desarrolla bash, quc es el intrpret~
dc rdenes que comentaremos en este libro. Corxro hemos indicado, bash se basa en sh
pero incorpora caractersticas tiles del Korn y C s /rcll. Existen otros muchos intrpre

tes de rdenes adems de los comentados. Inrluso es fartible para un rrsuario con unos
conocimientos adecuados dcl sistema escribir el s((yo propio.

4.3.

F u n c i o n es del i n t r p r et e d e r d e n es

Bsicamente, las funciones realizadas por el intrprete de rdenes son las que se mues
tran a c o ntiruraCi. Cada una de ellas ser analizada a lo largo dcl captulo:
Sust,ituye los valores de las variables del shell por variables refercrrciadas.
Genera nombres de archivo a partir de los metararartcres.

8 6 C A P TULO 4. EL INTRPRETE DE RDE N E S

RA-MA

Ma neja la redireccin de E/S y las tuberas (pipelines}.


Realiza la sustitucin de rdenes.
Verifica si una orden es interna del shell o se trata de un programa ejecutable de

UNIX.
Bu sca la imagen binaria de la orden en caso de que se trate de una orden externa.

4 .4.

M o d o s d e i n v o car u n a o r d e n

El intrprete de rdenes es capaz de reconocer distintos modos de invocar una o varias


rdenes. Sabemos que para ejecutar un programa simplemente tenemos que invocarlo por
su nombre, pero el shell nos va a ofrecer distintas posibilidades de ejecutarlo. stas se
indican a continuacin:
ord k E j ecuta la orden en segundo plano. De este modo, mientras se ejecuta la orden
ord, el shell nos devuelve el control. y mientras podremos ejecutar otros programas
(lo veremos ms adelante},
ordi

; o r d 2 P e r m ite ejecutar varias rdenes invocadas desde una nica lnea. Las dis
tintas rdenes deben ir separadas por un punto y coma.

(ordi

; or d 2 ) E j e c uta ambas rdenes formando un grupo nico.

ordi

I o r d 2 L a s rdenes se van a comunicar mediante una tubera.

ord1

o r d 2 Su s t i t u cin de rdenes. La salida de ord2 se ut iliza como argumento de


ordi .

ordi

kk or d 2 E j e c uta ord1, y si finaliza con xito, se ejecutar ord2. Operacin AND.

ordi

I I o r d 2 E j e cuta ambas rdenes, aunque la primera falle. Operacin OR.

A lo largo del captulo se vern diversos ejemplos de aplicacin de lo visto en este punto,

Ejemplo:
$ date ; sl e e p 1 0 ; da t e
jue j u n 1 7 1 6 : 3 7 : 0 8 CEST 2004
jue j u n 1 7 1 6 : 3 7 : 1 8 CEST 2004

$
Como podemos apreciar. las tres rdenes se ejecutan en orden. Primero date, a continua
cin sleep 1 0 (que se detiene 10 segundos) y por l t im o dat e de nuevo. Obsrvese la
diferencia de tiempo entre las dos rdenes date.

Ejemplo:
$ cp kk d a t e
cp: falta un fichero como argumento
Pruebe 'cp help' para ms informacin.

4.5. HISTRICO DE RDENES

Qc RA-MA

87

En este caso alfracasar la orden cp no se ejecuta la orden date.

Ejemplo:
$ cp I I dat e
cp: falta un fichero como argumento
Pruebe 'cp help' para ms informacin.
jue j u n 1 7 1 6 : 3 7 : 5 6 CEST 2004

$
Ahora aunque laorden cp se ejecute errneamente, la orden date s se ejecuta.

4.5.

H is t r ico de rdenes

Todas las rdenes que vmnos invocando desde el intrprete de rdenes son almacenadas
con objeto de que posteriormente tengamos la posibilidad de repetirlas de nuevo o mo
d ificarlas. Para visualizar un listado histrico de rdenes, utilizaremos la orden hi s t o r y .
Seguidamente se muestra el resultado de ejecutar esta orden.
$ hi s t o r y
504 l s
5 05 rm cor e
506 df
5 07 cd t mp
508 l e
509 cd
5i0 vi prompt
511 . . / p r o mpt
512 cd t mp
513 w
5 14 dat e ; sl e e p 1 0 ; da te

515 vaho

516 cp kk d a t e
5 17 cp I I d a t e
5 18 hi s t o r y

$
Las rdenes visualizadas con la orden hi s t o r y , c u ando ut i lizamos como intrprete de
rdenes el bash. pueden ser repetidas o modificadas. Para acceder a rdenes anteriores
simplemente pulsaremos de forma repetida la tecla cursor arriba hasta llegar a la orden
deseada. Pulsando la tecla cursor abajo avanzaremos rdenes en sentido inverso. Si lo que
deseamos es repetir una determinada orden y conocetnos su posicin en el histrico de
rdenes, para poder ejecutarla simplemente teclearemos ! y seguidamente el nmero de
orden.

Ejemplo:
$!517

8 8 C A P TULO 4. EL INTRPRETE DE ORDE N E S

Qc RA-ihIA

Tambin podemos repetir la lt ima orden que se ajusta a un determinado patrn. Por
ejemplo, deseamos repetir la l t ima orden que comenzaba con la cadena vi , p ara ello
invocaremos:
$!vi
De modo automtico. se analiza en el histrico de rdenes si existe alguna que se ajusta
al patrn indicado. y en caso deser as, la ejecuta.

4.6. Archives de configuracin


Existen una serie de archivos utilizados para definir la configuracin del shell que
estemos utilizando. Estos archivos son:
/et c p r o f i l e E s t e a r chivo es autointicamente ejecutado cuando nos conectamos al
sistema,
/et c / b a s hr c E ste archivo contiene rdenes especficas en caso de que nuestro intrprete
de rdenes sea el bash.
$HDHE/.bashrc Este archivo reside en eldirectorio de arranque de cada usuario. y es
tambin ejecutado automticamente al iniciar una sesin. En caso de utilizar como
intrprete de rdenes sh o ksh, el archivo se denomina . prof i l e . Si el shell es el C.
su archivo de configuracin es . cshrc.
/ et c / p a s svd E ste archivo contiene el directorio de arranque de cada usuario y el t i p o
de intrprete de rdenes que se inicia. Del archivo / e t c / p a sa@d hablaremos en el
capitulo dedicado a la adnunistracin de usuarios.

4.7.

La s variables del shell

Una variable del shell es un nombre que puede tener un valor. Por defecto, todas
ellas se inician a NUL L ( n ada). As pues, estas variables se pueden asignar a cualquier
cadena de caracteresque deseemos. Hay algunas variables del shell que ya estn asignadas,
Seguidamente se da un listado de las principales variables empleadas por el intrprete de
rdenes:
HOME Define el directorio de trabajo original. Este es el directorio por defecto usado por
la orden cd cuando la utilizamos sin argumentos.
PATH Defme los caminos de bsqueda dentro de la estructura de archivos UNIX. PATH es
una variable utilizada por el shell para determinar en qu directorios debe buscar
las rdenes y programas ejecutables.

PS1 Define el indicador (prompt) del shell principal.


PS2 Define el indicador (prnmpt) del shell secundario.

RA-MA

4.7. LAS VARIABLES DEL SHELL

89

TERN Define las caractersticas del terminal. Es muy importante que esta variable est ini
ciada correctamente para que puedan funcionar sin problemas los programas que
utilizan la pantalla para operar. Un ejemplo de estos programas son los editores.
TMOUT Si se iniria a un valor mayor que cero, este valor se interpreta como el ntnero
de segundos de espera por una ent,rada. El intrprete de rdenes terminar (lo cual
implica generalmente un fin de sesin) si transcurre el nmero de segundos indicado
sin que llegue la entrada.
$ Almacena el identificador de proceso (PID) del intrprete de rdenes.
Generalmente, las variables con un significado especial (PATH, TERM, PSi, etc.) se escriben
con letras maysculas. Nosotros tambin podemos crear nuevas variables asignndoles
valores. La construccin para asignar un valor a una variable del shell es:
nombre=valor

Ejemplo;
$ x=37
$ cadena~hola

El shell sigue la pista de las variables como pares nombre-val or . Si queremos usar una
variable del shell, esto es, usar el valor asociado al nombre de la variable, el shell tendr que
buscar el nombre y d evolver el valor obtenido, A e ste procedimiento se le denomina
sustitucin de variables. El shell realiza la sustitucin de variables en cualquier lnea de
rdenes que contenga un smbolo $ seguido de un nombre de variable vlido. El shell
realiza lo siguiente por cada lnea de rdenes que procesa:
I.

E x a n una la lnea de rdenes buscando smbolos $.

2. Si ve el smbolo $ seguido de un nombre de variable vlido. realizar la sustitucin


de este nombre por su valor.
3. D e spus de estas sustituciones se ejecuta la orden.
Siguiendo con el ejemplo anterior, si queremos visualizar el valor de la variable x o cadena
definidas antes, deberamos hacer lo siguiente:

$ echo $x
37

$ echo $cadena
hola

$
Hay dos reas de memoria incorporadas al shell para almacenar las variables. Estas dos
reas son: el rea local de datos y el entorno. Por deferto, cuando se asigna una variable
del shell se le asigna memoria en el rea loral de rlatos. Las variables de esta rea son

9 0 C A P ITULO 4. EL INTRPRETE DE RDE N E S

Qc RA-MA

privadas del shell local. Es decir, cualquier proceso subsiguiente no puede acceder a estas
variables a no ser que stas sean exportadas. El entoriio es otra rea de memoria usada por
el shell para almacenar parejas nombre-val or . Las variables definidas en el entorno estn
disponibles para los procesos hijo. Veamos con un ejemplo cmo una variable definida
nicamente en el rea, local de datos no es accesible por los procesos hijo del shell
$ NUMERO~34
$ echo $NUMERO
34
$ bash
$ echo $NUMERO

$
$ exi t

(Asignamos a NUPKRO el u a l o r 3 g )
(Visua l i z amos e l v a l o r d e /l / / llERO)
(Ejecutamos us n u evo sh e l l h i j o )
(Visua l i z amos e l t / a l o r de N/ P KRO)
(So sale n a d a )
(Salimos d e l, s ubshel l )

$ echo $NUMERO ( Vemos NUPKRO es e l s he l /, i si c i a I )


34
(Sigue t e n i e ndo su u a l o r )

$
En el ejemplo anterior, podemos apreciar cmo el nuevo intrprete de rdenes que ini
ciamos (bash) desconoce por completo a la variable NUMERO. Para que los procesos hijo
tengan acceso a las variables del shell, stas deben ser trasladadas al entorno mediante la
orden export . Si en el ejemplo anterior, previamente a la ejecucin del nuevo shell hu
bisemos exportado la variable NUMERO con la orden export , los resultados habran sido
diferentes.
P

4.8. Ordenes relacionadas con el entorno


export S i n parmetros, infornia de los nombres y valores de las variables exportadas en
el shell actual. Cuando le pasamos como parmetro el nombre de una variable, sta
es trasladada desde el rea local de datos al entorno.

Ejemplo:
$ export

T E RM

A partir de este momento, la variable TERM es conocida por cualquier proceso iniciado
desde el intrprete de rdenes.
set I n forma de los nombres y los valores de todas las variables del shell en el rea local
de datos y en el entorno.

Ejemplo:
$ set
BASH~/bin/ bash

BASH~~/ borne/chan/.bashrc

4 .9. METACARACTERES

RA-MA

91

COLORS /etc/DIRZOLORS
COLORTERM gnome- terminal
COLUMNS=80
DIRSTACK=()
DISPLAY~:0.0
TERM=xterm
UID=500
USER~chan

$
unset L a o r den unset se ut i liza para eliminar el valor de las variable . C u ando no se
dan argumentos. unset borra el valor de todas las variables del ;rea local de datos.
Cuando le pasamos argumento, la variable especificada se reinicia a NULL .
Ejemplo:
$ unset PEPE

A partir de ahora. la xmiable PEPE perder cualquier valor que le hubisemos dado.
env Informa de los valores y nombres de las variables del entorno.
Ejemplo:
$ env
PWD~/home/chan
WRASTER COLORJKSOLUTION0~4
WINDOWID~31457407
HOSTNAME~valdebits.aut.alcala.es
TERM=xterm
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/chan/bin

4 .9.

M et a c a r a c t e r es

Dado que multitud de rdenes de UNIX hacen referencia a archivos o a directorios, en


ciertas ocasiones es muy >til la posibilidad de referenciar dichos archivos o directorios de
una forma ms compacta sin necesidad de escribir todos los nombres completos. imagine
mos la siguiente situacin: queremos copiar todos los archivos fuente escritos en lenguaje
C existentes en el directorio actual a otro directorio. La forma de hacerlo sera pasarle a
la orden cp todos los nombres de los archivos como argumento. Si existiera alguna posibi
lidad de filtrar dichos archivos por ajustarse a un determinado patrn. en el caso anterior
terminar en . c, la situacin se simplificara bastante. Es ah donde aparece la utilidad de
los metacaracteres. cuya funcin es indicarle al shell que se quede con los archivos que se
ajustan a determinados patrones. Los n>etacaracteres del shell son la interrogacin '?, los
corchetes [] y el asterisco +.

92

C A P TULO 4. EL INTRPRETE DE RDEN E S

? Sustituye a cualquier carcter, pero slo uno, excepto el primer punto (no nos sirve
p ara los archivos que comienzan por punto , ) .

Ejemplo:

D ani

????
Mail

Xi n i

ch a n

gr u b

i3 8 6

lo s t

mb o x

spr o

$
Como la interrogacin? sustituye a cualquier carcter, la orden anterior visualizar todos
los archivos del directorio actual cuyo nombre contenga cuatro caracteres. La orden echo
'??'?'? habra provocado el mismo efecto,
$ echo ???'?
D ani M a i l

Xi n i

ch a n

gr u b

i3 8 6

lo s t

mb o x

spr o

$
Los caracteres para la generacin de nombres de archivo son expandidos por el shell
antes de ejecutar la orden. En el ejemplo anterior, la orden ls no vera ninguna '?, porque

previamente el shell se ha encargado de buscar en el directorio de trabajo todos los archivos


que contienen cuatro letras en su nombre y se los ha pasado a ls como argumentos para
que los visualice. A todos los efectos, es como si a la orden l s l e hubisemos escrito por
completo la lista desde el teclado.
[] D e fine una clase de caracteres. Dentro de esta clase se puede utilizar un guin, ,
entre dos caracteres ASCII para poner de relieve todos los caracteres en ese rango

inclusive, y se puede usar un signo de exclamacin, !, como primer carcter para


negar la clase definida.

Ejemplo:
$1s - d [ a - n ] ? ??
chan grub i386 lost mbox

$
Como podemos observar. de esta manera, l s d a u n l i stado de todos los archivos cuya
primera letra est comprendida entre la a y la n y tengan, adems, tres letras adicionales.
Tambin podemos excluir de la clase de6nida los archivos que no se ajusten a un patrn
dado. Por ejemplo, podra ser interesante dar un listado de todos los archivos del directorio
/bin que contengan cuatro letras en su nombre y que adems no comiencen por un carcter
comprendido entre la a y la n. La forma de especi6car lo anterior sera la siguiente:

$1s - d / b i n / [ ! a-n]???
/bin/ping /bin/stty /bin/tcsh /bin/viev
/bin/sort /bin/sync /bin/true /bin/zcat

$
+ Sust,ituye acero o ms caracteres, excepto un primer punto.

4.10. ENTRECOMILLADO Y CARACTERES ESPECIALES

RA-MA

93

Ejemplo:
$ 1s - 1 + . c
-rw-r r
- rw- r - - r r w-r - 1
-rw-r r
-rw-r r
-rw-r r
- rw- r - - r
- rw- r - - r

i
i
1
1
1
1
i
1

chan
chan
cha n
cha n
cha n
cha n
chan
ch a n

igx 23005 e ne 7
i gx i 9 5 5 8 e ne 7
i gx 4 8 0 3 e ne 7
i gx
9 5 e ne 7
i gx
16 0 e ne 7
i gx
72 6 ene 21
i gx 1 2 0 1ene 21
igx 2 1001 e ne 7

2 0 0 1 depura.c
2 0 0 1 desen.c
2 0 0 1 ensa.c
2 0 0 1 gen.c
2 0 0 1 1as.c
2001 memoria.c
2001 main.c
2 0 0 i sim.c

De esta tilanera. obtene111os todos los archivos que terrllinan en la cadena '. C . PodraIilos
utilizar esto para resolver el problema inicialmente planteado con la copia de los archivos
fiicntes en lenguaje C en otro dir< torio.
CoIIlo podeinos obseI'var, los caracteres pai'a la gelleracin (le nollll/res de archivo no
corresponden con los noinbres de archivos que empiezan por punto. nunca se visualizan
estos lt, IInos.
En el caso de utilizar como intrprete de rdenes e) bash, podremos considerar adi
cionalmente los siguientes metacaracteres.
Una tilde al comienzo de una palabra se expand cou el nombre de su directorio de
trabajo (directorio HOME).

luis Representa el directorio de trabajo (directorio HOME) del usuario luis.


+ Representa el directorio de trabajo actual (P%D).
Representa el ltimo directorio de trabajo anterior al actual (OLDPWD).

4.10.

E n t r e c omillado y caracteres especiales

Hay muchos caracteresen UNIX que tienen significados esperiales. Por ejeinplo. hemos
visto que el carcter $ se puede usar bien literalmente o conio sustituto de las variables
del shell. Puesto que no es suficiente con el contexto para determinar el significado de un
carcter, es necesario tener un mecanismo que evite el significado especial y lo obligue a ser
tratado simplemente como un smbolo. A este mecanismo se le denomina entrecomillado.
El intrprete derdenes reconoce como caracteres especiales los siguientes:
$ Usado para la sustitucin de variables.
?, [

] + Us a d os para la generacin de nombres de archivo.


>, 2>,

Usad o s para la redireccin de E//S.

espacio e n b l a n c o U sado como delimitador de arguinentos.


I Usado para interconectar procesos.

9 4 C A P TULO 4. EL INTRPRETE DE RDE N E S

RA-MA

Para entrecomillar tenemos tres formas:

Entrecomillado conbackslash ($).


Entrecomillado con comillas simples ( ).
Entrecomillado con comillas dobles (").
El backslash cambia el significado especial de cualquier carcter que le siga.
Cualquier carcter especial dentro de las comillas simples tambin pierde su significado

especial (excepto la posible comilla simple).


Dentro de las comillas dobles, la mayora de los caracteres especiales pierden su sig

nificado especial, Las excepciones son el smbolo $ (cuando se usa para la sustitucin de
variables), las comillas dobles, el backslash y el acento grave ( ). Se puede usar el backslash
dentro de las comillas dobles para evitar el significado del carcter $ o ",

Ejemplos:
$ echo ($TERM
$TERM

En este caso, como el smbolo $ hace perder al $ su significado especial, se visualiza la


cadena $TERN y no el valor de esta variable del shell

$ echo $PS1 i$PS1 '$PSi'


$ $PSi $PSi

En el primer argumento echo realiza la sustitucin de PSi por el valor de esta variable
al indicrselo el smbolo $. En los argumentos dos y tres no se realiza esta sustitucin
porque el smbolo $ pierde su significado; en el primer caso, por estar precedido por el
backslash, y en el segundo, por estar encerrado entre comillas simples.

$ echo $TERN i$TERM '$TERM' "$TERM"


xterm-color $TERM $TERN xterm-color

En este ejemplo slo cabe comentar el ltimo caso, en el cual el carcter $ no pierde su
significado especial, a pesar de estar encerrado entre comillas dobles, por lo tanto el shell
reahza la sustitucin.

4 .11.

S u s t i t u c i n d e r d e nes y a l i a s

La sustitucion de rdenes es otra caracterstica prctica del shell nos permite captar la
salida de una orden y asignarla a una variable, o bien usar mt salida como un argumento
de otra orden. Puesto que la mayora de las rdenes de UNIX generan salida estndar, la
sustitucin de rdenes puede ser muy util. Encerrando la orden entre comillas invertidas

RA-MA

4 .11. SUSTITUCIN DE RDENES Y ALIA S

95

( ), conocidas tambin como acentos graves, captamos la salida de la orden y la asignamos


a la variable del shell.

Ejemplo:
$ fech a d a te
$ echo $f e c ha
vie j u n 1 5 1 5 : 4 4 : 5 6 CEST 2001

Como podemos observar, hemos asignado a la variable f echa la cadena retornada por la
orden date. Veamos a continuacin un ejemplo ms complejo, mediante el cual vamos a
asignarle a la variable pi su valor numrico. Para lograr lo anterior, vamos a hacer uso
de la calculadora bc.
$ pi

ec h o " s c a l e ~ 9 ; 4 +a ( 1) " I b c - l

$ echo $pi
3.141592652

Recordemos que scale 9 indica abc que calcule 9 cifras decimales. Adems, es necesario
saber que pi es igual a cuatro veces el arco, cuya tangente en radianes es igual a 1.
Los alias se emplean para poder invocar a las rdenes con un nombre diferente al
utilizado normalmente. De esta manera, el usuario puede llamar a las distintas rdenes
con los nombres que le interese. Como ejemplo puede ser interesante para un usuario
acostumbrado a trabajar con el sistema operativo DOS hacer que dir sea equivalente a
ls -ld.

Ejemplo:
$ alias dir "ls -ld"

$
$ di r f +
drwxrwxr X
drwxrwxz X
-rw-rw- r - -

2
3
1

chan
chan
chan

i gx
igx
igx

10 2 4 n o v 1 2 1 7 : 4 8 f o r t r a n
1 0 24 jul 24 13:09 fs
1 2 0 1 6 j u l 2 4 1 3 : 0 8 f v wtnrc

La orden alias define un enlace entre elprimero y el segundo argumentos que siguen
a la orden. En cualquier momento que el argumento primero se introduce desde la linea
de rdenes, el shell de UNIX lo sustituye por el segundo. Estos alias permanecen activos
h asta que finalice la sesin o hasta que empleemos la orden unal i a s .
Si invocamos a alia s sin argumentos, mostrar todos los alias que tenemos activados.

$ ali as
alias
a lia s
alias
alias

dir= ls -ld'
j u = who
ll~ ls -l
ls~ ls -F

( ' A P T t lLO-t. I.l. INTERPRETE DE ltDEiUI:S

90

: B A-k1A

Si <Iiivrvrns vliiriin;ir i l g i n a l i>is. t< riclrvinns (tire iit i l izr(r la nrdc ii una l i a s , t .;il y com<> s(
niiiestra a cnnt i>nra< i<)ri:

$ unal i a s d i r

$
A partir <le vstv riromviito. el li;>s dir y i n o < xistv. l' ara i ( rciorarc>s clv vilo. pode>ii<>s
V('l' ('>lal<'s sorl lns ol l as H('t iv(>s:

$ al i a s
a li a s j u = ' w h o
ali a s 1 1 = l s - 1
alias ls= ls -F

4 .12.

R e d i r e c c in d e e n t r ad a y s a l i d a

L i rvdirv< (iilv errtrada-salicl s uri i d<' lc>s <.>ira( t< rst i< as in rvlvv ii>t<s y vera til< s
d<l sisteriia o p er a t iv o U N I X . V a i i i o s ; i t r a t a r. ;i <n rit,iiiaci<iii vstv p i i i i t o . d e scribieiidn
previa>>ivt< tina serie d(' ni(apto ri< vsarios p ir i < iitcdvr rii s Ic ihnrit< hi r< direcciri.
Ce<la vvz (1(i< sr irii( i;i iiri ii i t r p r v t(. de (>rdeiivs. sa b r e(i >iiitnii i t i cariivntv t r v s ar<.hi
vns. Abri r n a r< liivn iinpli(;i (tire. < I ni< leo ok<'r>rel <l(1 sistvn)a operativo liabilitar l is
cstriirt i i r a s v cvsari;is p;ir;i pn<lvr tr a baj;>r < n clic)io i r hivo. ( (tan<lo se abrv uri ar< hi
vo, ('1 sistvnia <>p< rativn dvviivlvv ii n n i m vro vnt('ro. d( riniiiin rdc> dvscriptor dv i rc liivo, < I

< ual vs (itilizacln pnr lns prograinas para mariipular <liclin ar< liivo (leer dat<>s <'l. vs< ri1>ir
clat<)s ('n l, >riostrar i n f nrinacin aso< iachi, vtc.). Estos ar< liivos aparvceii reprvs( iit;ul<>
vr> la ig>ir i I. :5. y s<)ri lns sigrii( nt< s: ('I ar( liivn est>id ir d( e r itr xd;i, el i r ( l i i v o ( st ii il ir
dv s'<lid') y v l u ( l i i v n ('stndar d<' error(s, crly<>s <les< riptorvss<)ii el 0. el I y e l 2 , r < 's
pvctiv i i i i eiitc . l I ><rcliiv<) (st.;rid;ir de < iitr'ida se id<uitifica geri(rriliiivnt<' con el t ecl ul<>.

Los arcliivos estn(l;ir <1salida y dv error se id< ntificari normalmente cnn la par>t;ilhi.
N<> debe chocan>os vl lieclio de cluv tarito el tladn cninn la p ii it all'i svari tr atacln pnr
I.LUIX cnrn<> arrliivn nr<lii>arins. ('(>i))n ya he>ii<)s iiidic"ido aiit v r i orrnviite. sta es ui>a <1<'

las cara('tersticas tiras rvlevantes ch tl NI X a p l icabl(' a t<><los los <lisposit ivn tsicos (te
<'la(lo, pariralla. illlpl <'sl)1'a.<lis('< >. <'t('. ). A <'sr v lll('cal>>sirio sv I(' ('orlo('c colllI)ir><'r>tecoiilo

iridepvrid(ri(ia de dis )ositrvo.


La rrrayora d( l a s ( )rderies UNI X t o i i i ai i s u <'iitrad>i d('l arcliivn ('star)dar de ('iitr i
da, n<)rrrialmvrite (1 tvclado. ) d i r i g en sii salida riornialn s ii s alida de errores al archivo
(st nclar cle salida y i l ; i r c l i ivo estrid ir clv error, respv( tivariiviitv. Gcr)eralrrr< ritv. c st<>
dns iltiriios ar< liivns coinc idvn <:ori iii> inico dispositivo fsic.n cluv vs la p uit;illa. Tod;i la
bibliogr >fa h ice refvrvi>c ia ii los tres archivos aiitvriorvs couio std i n , s t d o u t y s t d e r r .
stdi n

A r c h iv o vstn<lar <le eiitrada. s clvs< ript<>r vs vl () y es eri doile los pr<)glarli'ls


li (r> sii eiitr>ula.

stdout

A r c h ivo estri<lar de salida, sii <l(scriptor vs vl 1 y vs a (ka)de los progrrui>as erivaii

si>s rvsiilta<l<>s.

stderr A r c l i ivo estn<l>(r clc error, s des(riptor vs vl 2 y vs a doii<l< k>s progr>>mas evari
si>s salidas d( vrr<)r.

RA-MA

4.12. REDIRECCIAN DE ENTRADA Y SALIDA

97

atdout

Salida

Escritura

Programa
Entrada

stdin

en ejecucin

Lectura

Escritura

Salida de error

sfdelr

Figura 4.3: Esquema de los tres archivos de entrada y salida estndar.

4 .12.1.

Re d i r e c cln de en t r a d a

Cualquier orden que lea su entrada en ardi n p uede ser avisada para que tome dicha
entrada de otro archivo. Esto se hace utilizando el carcter menor que, <, La redireccin
de entrada no produce ningn catnbio en el archivo de entrada,

Ejemplo:
$ mail m i g ue l < v i s . c

$
Normalmente, cuando ejecutantos la orden mail , sta lee la informacin desde el teclado
o, lo que es lo m ismo, desde e] archivo cuyo descriptor es el 0. C u ando, como en el
ejemplo anterior, el intrprete de rdenes detecta el simbolo < e n l a l nea de rdenes.
sabe que tiene que producirse una redirecnn deentrada. Como consecuencia de ello, el
shell al ejecutar el proceso hijo (mail) , le va a, cerrar su arrhivo estndar de entrada, ruyo
descriptor es 0 (el teclado), y en su lugar va a colorar el descriptor del archivo vis . c, el
cual tomar como descriptor el 0. El resultado del proceso anterior es que, aunque mail
siempre lea en elarchivo cuyo descriptor es el 0, unas veces este 0 se corresponde con el
teclado y otras con cualquier otro archivo. Realmente es el intrprete de rdenes el que
engana a mail. este ltimo no se entera de la redireccin producida.
En este ejemplo el ronterlido del archivo vis . c se utiliza como entrada para la orden
mail. De esta forma, podernos enviar por correo electrnico un archivo a cualquier usuario
del sistema. El eferto obtenido es el mismo que si escribiramos el contenido del archivo
vis. c a travs del teclado.

98

C A P T L L O t , l ' .1. INTRI RE l'E DE lt l)ENI'S

4. 12.2.

RA-t(fA

R e d i r e c cin cie salida

'.)v puede redir< (cioiiar la salida d

i i < ilquier <)nleii a i ii> dvt('m>iii,ido rcliivo eil ve/

d< l>a< vrlo por l a s a l id;i <'stn<1ar stdo ut . P a r i o1>t< iu r ii>i'i n d ir< ccin dv salid i. s<
tiliz;> <1 carct< r iiiayor qu<, >. !)i vl a r chivo i l q u v r v<lirv(<ioiiauios iio existe. vl slicll
1 <> < rv ir i autotttati<' iinent< : si. por e l c o n t r a ri o y a('xist >. vtoii s s v s o b rescribir l a
iiiforniaciii, i u ha<'a>i<lo < l < oiit<i<l<> <>riginal <1< l in hico . . i i p o r < u il<tui< r (iiiisa lo qi a
<tiivrviiios <s aiia<lir iiifo ru i ic in a >iii ar(.l>ivo siii destr>iir su ( o i it ( iiido. debervtttos iit iliza)
para hi l'edil <'('<'1<)ll ('I dobl(' sillll)ol< ) d(' illayol' q> iv,
Ej< iiiplo:

$ date >

p r ueba

$
(. Oll h> l( di n ( c i i i (1<' s;ilida o('iirr v : i lgo s i rii i la r i l o q u v < )curr ;i coi i l a n <l irer< iii <le
< t>tr id;>, En (stv < i)s<>. lo que liacv la or<l(ii dat e p a r a n i ostr;<r su nsi i l t ados es es(ribir
vn < l ;in liiro ( ii)(> <l< script<>r (s ( l l ( p o r d( fecto, l i par>talla). Cu iii<l<> < l shell det< ( ta <1
< ,ir(tvr d < rv<lirvc< iii d( s;<ii<la. < i< rrii <'l ar(4>iv<> < i>y<> <l<scriptor es el 1 y < n sii l i i g ar
(()loc 1 al al( liiyo p r u e b a . ( ' o i i i o ( o i i s( ( ueiicia (le lo a i i t v r i o r . t <)<l(> lo (tu( a i it< s s( ( t>vaba
a la patalhi lior;i c;i ;i p ; irar ;il a r c h ivo p r u e ba . T<>do <>n>m siii <Iii< hi <>r<l< ii date s
ent< i< dv nad i. Es vl it>trpn tv d< rdeiivs es el <iii< sv ( ii("irga <l< tod<> <1 pr<>< vso iiiit< rior.
('<)ii < sto, h> q>iv vst ui>os liacin i d o v s c r e a r ) i i i a r c l >iv<) ll<iiiiado p r u e b a q l l<.' col)

t< iidr;i todo lo quv la or<lvii dat e ( t ) va a la p i i i i t a l la. l ' etnoslo:

$ cat p r u e b a
jue j u n 1 7 1 7 : 1 8 : 5 2 CEST 2004

$
S i ;ilior;i quvr< nios ;ia<lir ni is i i if<>riaciii >il archivo sin dvst r i r < l i t v i i i<lo vsistviit e.
p<><lrvios li;icer lo sigiii< nt< :

$ who p rue b a
$ cat p r u e b a
jue j u n 1 7 1 7 : 1 8 : 5 2 CEST 2004
r oo t
pt s / 4
JUII 17 12 : 1 8 ( : 0 . 0 )
o scar
pt s/ 8
Jui l 17 15 : 5 5 ( : 0 .0 )
c han
pt s/ 9
Jun 17 16 : 25 ( : 0 .0 )

$
Ve>iw>s cni<> < l archir<> prueba coiitivnv l(> que his rdenes date y who lnibiera enviad<>
al tvriiiinal.

4 .12.3.

R e d i r e c c in de er r o r es

La mayora dr las rdenes <lv l' NI X p r o d u c( d i igiistic()s para ver si iilgo vil 11)al
v ii su ejecucin. ('<>ii cualqiii< r or<lvn qiiv gen(re i ensajes d< error envit>dolos a stder r
(por defecto. rl t< rriiiiial) podemos rvdirccioiiar sii salida a. otr<> archivo t i l i zand<> <.l
<)p( r idor 2> <> 2. dvpn i<linido de si lo <piv quen iiios es crear o aadir datos al ar('l>iv<>,
rvspvct izan>et>te.
A i odo <lr vj< uiplo van><>s a vjv(utiir l i o r d en cp s in a r g i l l l lelltos.

RA-MA

4,12. REDIREGGI6N DE ENTRADA Y SALIDA

99

$ cp
cp: faltan argumentos (ficheros)
Pruebe 'cp help' para ms informaci6n.

$
Vemos cmo por pantalla se visualizan los mensajes de error generados por cp. Es lgico
el error, puesto que cp necesita como mnimo dos argumentos para poderse ejecutar
correctamente. Si queremos que estos mensajes de error no salgan por pantalla, a simple
vista, una forma de hacerlo podra ser la siguiente:
$ cp > b a s ur a
cp: faltan argumentos (ficheros)
Pruebe 'cp help' para ms informacin.

$
s in embargo. vemos cmo los mensajes de error siguen saliendo por el t e rminal y n o
son redireccionados al archivo basura. La r azn es que la salida de error de cp no va
dirigida a st d out ( a r chivo con descriptor 1}, sino a st d er r ( a r c hivo con descriptor 2},
que son archivos diferentes, aunque coincidan con el mismo dispositivo fsico de salida.
P ara indicarle al shell que lo que queremos es redireccionar la salida de error a o t r o
archivo, se utiliza. como hemos indicado anteriormente, el operador 2>.
$ cp 2> b as ur a

$
Si ahora visualizamos el archivo basura, veremos que contiene los anteriores mensajes de
error.
$ cat b a s u r a
cp: faltan argumentos (ficheros)
Pruebe 'cp help' para ms informacin.

$
Si lo nico que deseamos es evitarnos estos mensajes de error p ero sin c rear archi
vos basura, deberemos enviar dichos mensajes a un archivo de dispositivo denominado
/dev/nu1.1. El archivo / d e v / n ul l e s u n p ozo sin fondo donde podemos enviar toda la
informacin no deseada sin tener que preocuparnos de borrar su contenido.

$ cp 2> /dev/null

$
Las operaciones realizadas por elintrprete de rdenes en la redireccin de errores son
completamente equivalentes a las realizadas en una redireccin de salida. La nica dife
rencia es que ahora trabajar con el descriptor 2 en lugar de hacerlo con el descriptor
nmero 1.

100 C'Af' I l<LO -t. FL I>INTRPRETE t)E RDENES

4 .13.

RA-M<><

C o n c e p t o d e fi l t r o

Cualqicr pr<><.es(> f>rogran<a et> (jc('<u <n) quc lct( s(t entra(h( et( la et)tr ul)< cstn<lar
(stdin ) v c s r r iha su salida en la s (lida estn<l >r stdout ) se <l< ou<it>a filtro. Cou><)
ejemplo <le filtro pod( n>os pot><. r la <>r<len cat. Esta onlcn. si)> rg>(ntos, fee s)t <tra<1<)
dcl te( lado. y (tna v('z qu( tuarcaruos el final dc (li(l>a (u>trada, lo t(< leado sc v(telca a la
patalla. La foru>a <l(' n>arcar cl fi <l <fc la entra(la a cual(tir filtro <>. cu gct>eral, el h
de Plltn)<la (lc c<l)(lqller al ch)v(), ('s ('ol<)('.a t)d< ) la u>arc(< fin dc ar('htv() q>1(' el> Uv<I X, ( ()tn()

s a))e)nos. cs Ctrl-d ( d ) .
La orden cat y a l a henu>s (ttiliz;1<) >t> <>1>jto <l< visualizar )or p u ( t alla ut) archiv<>.
( .n (> ate caso totltalul su e l)t n(da <lel ar ( h iv o ( sp< ( ifi<.a(lo. Van)()s )< vel' ()t lo <tso d(' c a t

utilizado par.( concat<'nar an:hiv<. Iniciafm(u)t<'. cat se <lisn)() t )n)1>in ou este ol>jetivn.
Ls fornta <le <on<atrnar archivos es utilizar n<lirecci<n> <le et)tra<fa-sal<la, de manera que
1( salid;( de cat l a e uviatnos a otn ! , < r< hico. Veatn< < >tno po<len)<>s (tuir dos ar< hivos v
enviarlos a un t<.ner<).

$ cat archivo 1 archivos > archivos

$
Et> <l (jetnplo ;u>teri<)r 1()s ar( hiv<)s archi v o s y a r c h i v o s . q <u sit) ut ilizar re(lire(( i)t> se
e nviaban a la pantalla. af>ora se env)u> ;) <tn t< n(r <rchiv<>, archiv o s .
Ade<n <lrl filtro vi sto. existen )<)u(h< n) . Alg<u)os <l< los n) itnf)ortat>tes sot) :

S intaxis :

s o r t [ - n d t X ] [ + c ampo] [ a r c h i v o ( s ) ]

El filtr<> sort s c ) t t i l iza para <)ni<u):>r ln<as >tup>t<stas por can>f)os. scl>arados p<)r
taltladores, a(tuq<tc po<l<>u><)s especificar < ualquicr tip<> <lc scp;)rador dc. r:<mpo. Si a sort
<>lc pasan>()siugt> ar< hivo < o>)u> par(tu< t ro. tou)r( su eut tada dc la entrad)< estndar
< on)<> cualquier filt,ro, Cot) este filtro pode(nos ordet);<r l;<s lneas deno o varios archivo
segf>r) un catr(p<) et) f>artic)dar. Esta <>r<l<'acin no pro<l)t<e ttit)gutta ruodifica(in en los
ar< hivos tratados,
Conn> ejeu>f)l<>, vatuos a ('rear >n cat u)> archiv<>, aprovec)>a(>do que al ser utt filtr<>
toma su entrada de st d i n . Su sali<l ( es l<> (pte r('<lirecciot>arenu>s al archiv<> espe(.ificado.

$ cat >
uno
dos

d esord

tres
c uatr o
Ctrl - d

$
A continuacin vatt>os a onlcnar el archivo desord <ttilizan<lo la orden sort .
$ sor t d e s o r d
cuatr o

RA-h<A

4.13. CONCEPTO DE FILTRO

10 1

dos
tres
uno
Como podemos observar, lo que obtenemos son las mismas palabras anteriores, pero
ordenadas alfabticaniente. La ordenacin anterior hubiese sido vlida tambin si en lugar
de palabras simples tuvisemos frases completas.
Veamos un nuevo ejemplo:
$ cat > n u meros
101
112
10
373
64
19
1111
- Ct r l - d

$
Como vemos, indicamos el Final de la entrada de datos con la marca de final de archivo
C trl-d. Intentemos ordenar el archivo numeros utilizando sort .
$ sort
10

n u meros

ioi
111i
112
19
373
64

Podemos observar, a tenor de los resultados, que algunos nmeros aparecen ordenados
aparentemente alrevs. La razn es que sort, por defecto, ordena las palabras segn los
caracteres ASCII que la componen. Si lo que deseamos es ordenar segn el valor numrico
asociado a esos caracteres. deberemos utilizar la opcin -n (ordena numricamente), tal
y como se muestra a continuacin:
$ sor t
10
19
64
101
112
373
1111

- n n u meros

102

C A P T U L() 4. E L l < TEf(PRE'i L' lJLr ltl)FiUE!>

RA-llA

Los can)p<>s sef>;<>'ad(>ns utiliziul<>s p(>r dcfe(to son los t;<l)ul;l(>res. v eii ;ilguii;is ) ersio
i ies <le so r t ,

i a m f >i los esi)ilci<>s ell l>lat)(<>, f)PI<> i')l)ll>lil p<>(l<'iii<>s d(('ii l(. (lila i l t i l i

(u ilqui<'r tipo d ( s e para<l<>r ('si)(< ffico. utilizan<l<> para ell<) la <>pciii - t v t i c o l ) t i)>un
< in ( l sef)arador. Cou)<> ejmiipl<> vai<>s a ordenar el an hiv<> <liie figiira a ontiiiuaci<.
denoiiiiii ido s o r t f i c h . p<>r el ilti ni<> carl><>.
$ cat sortfich
blanco:73:Marte:1543:Manuel
verde:17:Jupiter:1968:Sebastian
azul : 2 4 : Venus: 1970:Ana
r oj o : 3 5 : Neptuno : 1 122: Ja v i e r
amarillo:135:Tierra:1234:Raul

$
Cotno l>o<len)os apreciar, los rlistiiitus cainpos estil sep liados por dos puntos. Eso iio
es niiigiii pr ol>lenta para so r t , v i ) que po dr r n i os esp(< ifici<r el cari< tcr (l( separaciii (l(

< ;mipos quleseein<>s.


$ sort -t: +4 sortfich
azul : 2 4 : Venus: 1970:Ana
rojo:35:Neptuno:ll22:Javier
blanco:73:Marte:1543:Manuel
amaril l o : 1 3 5 : T i e r r a : 1 2 3 4 :Raul .
verde:17:Jupiter:1968:Sebastian

$
En el c;)so del ejenil>lo. el iiltimo caipo es el uimero 4, por es(> en las opcioiies de sort
hcinos puesto <)n +4. ()1>sr) ese qiu. lauieraci<)n <le caiiipos coinieiiza l>or el cero.

Sintaxi s : g r e p

[ - i n v ] p a t r n [ a r c h i v o (s) ]

grep es iin filtro d< I sist< iii)i Llfcl ( <liie nos periite 1iscar ca(len;is de (aracteres e)>
los archivos que le iii<liqcnu)s. grep torna el 1)atr<>n que <leseaiiios l>uscar conio prin)er
;irguni<>iit(> v el resto de los argutneiitos los t<>ma con)o noil>res de arcliivos. En caso de
que el elenieiit(> que <leseeiiu>s 1>uscar se c(>nipoiiga de )s cle ua f)alabra. ese el( n)et)tu
deherenios incliiirlo entre (otnilli)s d<>bles. Ut)a vez 1tscado el ptltr>ii. se visualizail 'todo j
los archiv<>s <li l(> )iit ieii('n.

Ej< mplo:
$ grep NULL +
d epura.c : a r g n = s t r t o u l ( ar g u m , ( c h a r + * ) NULL, 1 6 ) ;
depura.c: argn = strtoul (argum, (char ++)NULL, 16);
depura.c: DirecDeparada = strtoul (korden[1], (char ++)NULL, 16);
depura.c: R[reg] = strtoul (cadena, (char **)NULL, 16);
desen.c: if ((pf = fopen (programa,
principal.c: if ((pf = fopen (programa,

RA-MA

d.l3. l ' O X(.'EPTO DE I ILTRO

103

Err este caso, grep b usca el patrrr NULL en todos los archivos del directorio a( t ual.
R< (ord< rnos qrre el asterisco susl ituve ;> cualqui(.r caderr}( de caracteres, y en este caso a
todos los a> < hivos del directorio en l que estenu>s sitrurdos.
C'.orr grep po<lernostilizar varias opciorrtw". las tres rr>as cornur>es so las qe se citan
a cnr>timracirr:
-i

l l r d ica a grep que se igrr<>ren rnayscul,(s y rrriusculas. Se busca el patrn v r>o s('
diferencia entre letras mavrscrrlas v mirsclas.

-v V isualiza por parrtall r 1>s ln< as que no contienen el patrn cape< ificad(>.
-n l(l}r<st ra por par>t alla el rrrnrero de lnea en q(r< se ene>te}>t ra ('1 patr.
Ejerplo:
$ grep -n main /home/chan/spro/+.c
/home/chan/spro/desen.c:21:main (int argc, char +argv[])
/home/chan/spro/desen.c:46:) /+ Fin de main +/
/home/chan/spro/ensa.c:30:main()
/home/chan/spro/ensa.c:42:j /+ Fin de main +/

/borne/chan/spro/gen.c:3:main()
/borne/chan/spro/principal.c:19:void main (int argc, char +argv[])
/home/chan/spro/principal.c:53:) /~ Fin de main +/

$
En cl (aso ant(rior. ( l c olocar la op(i<>rr -n se visualiza el nrrnero de lne < dcl archivo
dorrde se errcucrrtra el patrrr bus< ado.

S intaxi s :

w c [ - 1 wc ] [ a r c h i v o ( s ) ]

La orden wc (a o r d c o>(>>te>')es u <>r>tad(>r d< lrreas. pal}(bras v caracteres 1 ur>


arlrivo. Para wc. urra palabra es ur>a caderra de car rcteres deliurita<la por espacio en
bl (r}co. tabuladores o retornos de carro, Para saber el nmero de lr>eas. wc c(renta los
retorrros de carro existe>>t< rr> el archivo. Las posibles opcioes (le este filt t(> sor>:
-l

V i s u (rlizar ( I nrnero de lrreas.

-w Visualizar; <1 rrrmcro <l< palabras.


C ( rs}r}(l}zar'} ('1 r>11111er'<> (le. ('}(I'a('ter('s.

Si a wc no se le especifica r}ir>grrna ol>cin, tornar} por defecto las tres ar>teri<>res. visali
zan<1<> err order> el ruu ro de lneas. palabras y cara(.teres.
Ejemplo:
$ wc f t e mp
2 53 939 6728 f t e mp

104

CA E ' T ) ' L E) 4. EL )1<lTHPkETF. DE (>)HDENK<>i

kA-.'<IA

Eu el caso anterior, wc E'sta'irulicaiido ()uc vl ar('hivo f temp t irnc 2."),'3 lneas. E)39 )>ala)>ras v
i. i 2$ ('Ara('t('rvs. El))viamcrlt<', la or(l('1) wc s()lo pil('dc sei' tiliz>rd>i, p>ira procvsllr llr('llivos
(l(' texto.

4.14.

T u b e r as (pipelines)

I lav ( >( aslollPs Pll las ()P p(l<'dv I Pslll t '11' ( llv('l ll('litc ()ll(' la salir )a d('. l la < >I dcll 'i('t lic

c<>ino vt rada para otr i. L i ll >ria dv rvalizar ('sta c<>ii< rEi>P l i)X. C(>usiste en iitilizar
tiil)( r,is o />ipi Ii>res. A ii i <>do <lp ej< n)p)<>. sii)><igaios <)lle <)ii<.rpnios sa)>pr vl 1lnn ro dE'
p<.rsori; ()i a < st;lli <:ov<tad>isal sist<i;i < ri ii i n s t u l t c E lctori i r iadu. l i i a f < i r i;i l l i u y
S('11('lila d<' ll>1('('l'lo S('l,'l lll .'llgill('lit C:

$ who ) archivo temporal


$ wc -l ( archivo temporal
7
$ rm archivo temporal
( <>io sal>Pnlos, who o s p r v s r l i t ' i i i a l i lv a e pa l i t a ll i p<>r vi<l>r llsilario < oll tael<il
sist elar luego. sl Pliv i al llos 1>i se)l<l>l Elv who >l l ll) al('ll)v<> t('ll>pl'al v d( ipilcs. t i l i z ;ui< I(>
l;1 onlvri wc > n l ' i o p ( i r l - l . i t ; i n n>s < I llrrri< ro <l(' lrll'Bs dvl Ar< llivo I e r i lp<)r;il, s;i
1>r('lllos cl u l l l E'I<) d(' llsllllrl<)s ('oli('<'t'Als cll c s(' l o l l l v i l t < ). Al h a l ,

p i r i < 1( jar l as c <>sas


('olo ( st al)all ll< 'lll) ni('n)v, I clldrcl llos ()ll(' l)1c< )clip>ll'lls (]<' l)ol'lar' cl lll ('ll Iv tvlilpol al. F,l

pr<><(so rv diziido vs rvlativanietv siniplp. p( ro iio p<ir vil<> deja d< scr E llgolruso. dcl>ido
A <)uc tenenlos ()llv tr al)ajar ('oii url llr cl i ivo t v riiporal <)in )x>stvri<>rriiviitv 1)orr;ii ( i os. I,as
I ll))<'l'as sol> i >a fI'>a d(' <'v l tB l'< >s pst l< pvrd id i< d(' t ivl i i) )o. p ll<'sto ()ll(' p( !l'lit (' ()ll<'
I l salid>1 d( i i il a o r d < 11sir va i io ( ritr' i da p a r ' i I a s i g u i ( iitv. L ) ii'i l o r r i ia d (. n s i v( r 1<>
aiitvrior ('olr t iii)EI'as s vr>1 la sigilivi i t v :

$ who I w c - l
7
I I s11)<>1<>
tiil>< ra, I. s( iis

i para <laz ir d<> or<lviivs. Eir el ( j<iiiplo. Ia s<)i<la <le l l ord< ii

who (<)ue va B I;i salid i cstari<lar) sv iit i l iza corii<> viitr id i p)lr i 1>i onlvii d la <lvrv< li;i. wc
-l <)11< 1(( c>i l;i vutr;la <'starrdar I.
C ualld(> vlllpl<">l<)s E'l ( ;ir( t< r I E s t a i o av i s ; iri<lu lll sl i( ll <1< ()ll<' lllt(111(illl('lit(' ('I('<

l ll< lc('Alllsillo ()ll<' pE lll lit A lri ('< >lllulll<'><<'ll)11 <'ll t le lll i dos oi d( v s, situad>li A lc>s ll<d<)s

d< I caract< r tul>vrl. 1)v vsta iri;iri(r )i. < I s)iEII redirigc la s>i)id,l( I B p r i i r icra i l c l u i al d c
->lllriiii<- B i<)ri. v iit i l i z a l ;i s d i d>r <1(. Cstv c;iri;il < oiii<> <tid i para l a s i g r i i< iit( E>rdcri. Icrr
I l t igiira ) . 4 a pa rece rc)1< ja<lii la sitiiaci)ii dcs(rit a .
I.a t l>(ril ;i( t ia ( oiiio uii l iii>o coll <>s cxt r <'ll>os. d( ri i;iiier i ()iiv lo () iie ir i< t( irios por

uli lli<lo sal(' )>or ('1 <)t r<> cri ord<l FIF() ( Firs/ /lr Flr st O l</) <>, Io <)il(' es I<> mis i<). prir< ro
< < rit rar. )>r iiii< n> < ii salir.
El (s ( )ii(iiia l i r as g( ri('ri> d< l i iv i < l( < )rd< IB s. ti l i z a i i<lo t iii)('r is. < s cl <)lle f i g i i r a
S('gl l 1(ii<I ll('I lt E! '

$ orden 1 I

o r d e n D I o rde n D

Qc RA-MA

4.14. TUBERAS (PIPEI ICES)

10 5

sldool

Proceso l

Proceso 2

sidin

Figura 4.4: Conntnicacin entre dos procesos empleando una tubera.


En la situacin anterior se debe cumplir:
L a orden situada a la izquierda de i debe generar salirla a stdout.
L a orden situada a la derecha de i debe leer su entrada en std i n .
Cualquier orden entre los dos simbolos i debe ser un filt,ro.

Ejemplo:
$1 s - 1 I gr ep oct
drwxrwxr- x
8
chan
drwxrwxr- x
3
chan
drwxrwxr-x
2
chan
drwxrwxl x 2
chan
- rwxrwxr- x
chBI1

lgX
lgX
lgX
lgX
lgX

1 024 oct
1024 oct
1024 oct
1 024 oct
2 8 oct

19
27
8
15
27

1 1 :03 Pract i c a
1 7 : 0 8 mso
18 : 1 3 s i s f i
1 4 :35 spdsk
1 0 : 3 5 x wp

En el ejen>plo anterior visualizamos todos aquellos archivos que hayan sido creados en el
mes de octubre. Si quisiramos saber cuntos de esos archivos tenemos en total, podramos
emplear la siguiente orden:
$1 s
5

- 1 I gr ep o c t I wc - 1

1 08 C A P TULO 4, EL INTRPRETE DE RDE N E S

RA-MA

Proceso ejecutndose

Dormir

Procesos dormidos

Elegido para ejecutarse

Exputsadog
3

Procesos listos
ser ejecutados

Figura 4.5:Diagrama de estados bsico de un proceso.

Tambin podremos crear un archivo denominado foctubre que contenga el nombre de


todos los archivos creados en el mes de octubre del siguiente modo:
$ ls -1 I grep oct > foctubre

4.15.

P r o g r a m a s y p r o c e sos

Antes de definir el concepto de proceso, partiremos de Ia definicin de programa. Un


programa es un conjunto de instrucciones y datos que se encuentran almacenados en
un archivo ordinario. Cuando un programa es ledo del disco (o de cualquier otro tipo de

dispositivo de almacenamiento secundario) por el sistema operativo y cargado en memoria


para ejecutarse, se convierte en un proceso. A los procesos el sistema operativo les asigna
recursos para que puedan ejecutarse correctamente. Entre estos recursos podemos citar:
memoria, procesador, dispositivos de entrada-salida, etc.
Cada proceso en UNIX t i ene asociado un nmero que lo identifica. Este nmero es

asignado por el ncleo, y se denomina identificador de proceso o PID (process identiPer).


Adems del PID, los procesos tienen asignado otro nmero denominado PPID ( p arent

PID), que identifica al proceso padre del proceso.


Todo proceso, desde que es creado hasta que termina, va pasando por una serie de
estados. En lafigura 4.5 podemos ver un diagrama de estados reducido, el cual representa
distintas situaciones de los procesos.
De forma breve describiremos a continuacin los tres estados bsicos en los que se
puede hallar un proceso, de unos estados a otros.
l.

E l p r o ceso se est ejecutando. En m quinas con un ~


puede haber un proceso en este estado. ~~I X ~ ~

x ~

~ te

RA-5,)A

4 .) ). PROGRAt)AS Y PROCESOS

107

por varios procesos. dividierido todo el ti<. Il)<> <lel procesador eu cuaritos o rodajas.
y asigiiando esos caritos allernativamete a cada proceso.
'2. E l p r oceso est dirrmien<lo, Un proceso <'ritra < n este (atado cuarido no ))uede )>rose
guir sii ejecucin )><>r faltarle algiri recurso o porque est csperan<io la terniiria< i<)n
d(' llII<i op(.I a('lrl de ellt l'ada-sa)ida.

El proceso nn dispnnl<'1 procesador. p<: ro est listo para ejecutarse. Cont.inuar sii
ejcciicin en cuanto se lo in(liqiie el plaiiitica<lor de CPU o s<:/red(<le)'.
Los distintos procesos del sisteura vari carribiarido su < stado acorde < oii unas nor'mas bieii
definidas. Estos cambios de estado vienen impuestos por la competciicia que existe entre
los procesos por compartir los distitos recursos liard<vare. sobre todo el procesador.
Eri rea))dad. <)l diagraia <h esta<los de i)ii proceso UI%IX es rel;itivaiente ms com
plicado. peroo va)nos a incidir iris eri ello.

4.15.1.

O r d e n e s r elacionadas con la ejecucin de p r o cesos

Exist(.n ciertas rdenes q( tanlan muclio tiempo e ejeciitarse y. sin em))argo. ri(> soii
ir)t eractivas: <x>io ejeuiplo podemos poner la coiirpi)aci<i de un programa o la conipresiii
d( uti archivo de datos. En estos (.>)sos. U<N<IX propor ioua la p osihilida<l de ej(xiit,u
r<lenes eri segiindo plario (back</mund). Al e je cutar uri p r o ceso en segiindn plano, el
sliell devu< lve el prompt in m<'diatamente y p o dernos segiiir tr a bajando en el t e rn)ina)
iiilll c i i a l ld o

l ' I. ord(ri /) ackgrou)id si ga e je ciitridose. Para p o n er u i i a o r d e n t r a b a j a n <lo

eii h<rtch, la lrica de rdenes d< )>e Iicabar con <iii smbolo ar)r)>ersand (k). El ar np(rs<rrid
dice al shell que ejeciite la orderi. pero que Iio se quede <sperarido al proc(so hijo. De este
mo<lo. podremo Iiiandar (oipil;ir )in prograina ( ri segnd plano y i i eiitras t;uito segiiir
liacieiido otr;Is cosas.
Ejemplo:

$ cc f o r k .
L 1] 6602

$
Ciiari<lo se p<>rie iina ord< ii eii segiido plao, <1 shell nos iforia <lel Iiii< ro d<. i<l< n
tihcacin <lel proceso. E el <aso <l<l ej<.nr)>)o, es< rruii<ro de identihcaci<>ii es el 6602.
Sl tel llliriaIII()s l'i s esill , I o d<> i los J)iocesos q)le se est eir ej ec lil all<lo ( Ii segliild o p l >lllo

bu< k</rr>ad) r)i<>rirri. a rio ser qiie lo evite Irios <le algiu i o do.
La foria de saber qu ))ro(esos se est<i eje< ut(u)d<) en )iii istaiit( d et eruiiriado cori

sisteen emplear la orden ps. que s< describe seguidamente,

S int a x i s :

ps [ - e f1]

La or<l<.n ps sirve para ifor'lriarrios acerca de los procesos que eri esc rrronrerito s('
estri ejeciitaii<lo < ri <.l sistema. Si o l e )>asa)os i)ir)gri>i opciii, slo nos ofre<.er iin
))equefiro iuforriie d< los )>ro's<)s >)s<)< i i<l<>s a riiiesl r<) teriiiinal. Eri el sisteia B SD , cst i

108

C A P T ULO 4. EL I NT RPRETE DE ARDENES

RA-MA

orden funciona de forma diferente a como lo hace en UNIX System V. Las opciones ms
comunes para este iltimo son:
-e Con esta opcin, ps nos informa de todos los procesos que hay en el sistema.
- f P r o p orciona una lista completa de cada proceso, de cada uno de ellos (PID) y
identificador del proceso padre (PPID).
-l D a

el

l i stados largos y completos que contienen muchos detalles de los procesos de los

que informa, incluyendo prioridad. valor nice y tamao de la memoria.


Ejemplo:
S ps -ef
UID
root
root
root
root
root
root
xoot
xoot
root
root
root
etc.
xoot
chan

PID PPID
0
0
1
0
2
0
4
0
3332
1
3288
i
3291
1
3296
1
3301
1
3304
i
3329
i

C
0
0
0
0
0
0
0
0
0
0
0

S T I M E TTY
12:04:i 9
?
12 :04:19 ?
12:04:19 ?
12 :04:19 ?
1 2 : 04:4 6 ?
1 2 : 04:33 ?
1 2 : 04:34 ?
1 2 : 0 4 : 3 4 '?
1 2 : 04:3 6 ?
12 :04:37
1 2 : 04:4 5 ?

TINE COMNAND
0:00 swapper
0:00 /etc/init
0:00 pagedaemon
0 :00 ne t i s r
0:00 /etc/vtdaemon
0:00 /etc/rlbdaemon
0 :00 / e t c / s o c k r e g d
0:00 /etc/syslogd
0:00 /etc/portmap
0:00 /etc/inetd
0:00 /etc/ptydaemon

3313
4 025

0
0

1 2 : 04:3 9
1 2 : 23:2 2

0 :0 7 / et c/ r v h o d - s
0 :0 2 k s h

1
i

?
t yy0

S
Analicemos cada uno de los campos anteriores.
UID En este campo aparece el nombre del usuario propietario del proceso.
P ID Identificador del proceso.
PPID Identificador del proceso padre.
C Indica la cantidad de recursos de CPU que el proceso ha utilizado recientemente. El
ncleo utiliza esta informacin para calcular la pr ioridad. Este campo puede ser
modificado con laorden nice.
STIME Instante decomienzo del proceso.
TTY Terminal asociado al proceso. Es el terminal utilizado por el proceso para operaciones
de lectura y escritura estndar. Algunos procesos no estn asociados a ningin termi
nal, en cuyo caso la columna de TTY de la salida contiene el smbolo de interrogacin,
?.

Qc RA-MA

4 .15. PROGRAI<IAS Y PROCESOS

109

TIME Tiempo de CPU asignado alproceso.


COMMAND Nombre del programa qe contiene la imagen del proceso.
Las opciones mas conumes para la versin BSD difieren, cotno ben<os indicado anterior
n<ent<.. de la versin Systent V. y son las siguientes:
1 Formato de precentacin ext< ntlido.
u Aiuestra el nombre de usuario y el tiempo de inicio.
m 'Aluestra infortuacin relacionada con la memoria.
a Xluestra tambin losprocesos de otros usuarios.
x Xluestra tambin Ios procesos que no tienen ningn terminal asociado.

Ejen<plo:
g ps alx
F
100
040
040
040
040
040
040
040
040
140
140

U ID
0
0
0
0
0
0

0 00
0 00
140
1 40
0 00
100
0 00

1000
1000
0
1000
1000
0
100 0

0
0
0
0

PID PPID PRI


1
0
8
2
1
9
3
1 19
4
1
9
5
1
9
6
1
9
9
1
9
167
1
9
170
1
9
181
1
9
185
1
9

4 S6 9
4 587
4602
4 604
4 605
4606
4 839

4 544
4 5 4 4 13
99
269
4 602
4 604
460 5 8
4 5 4 4 19

NI
0
0
19
0
0

0
0
0
0
0
0

VS Z
1 2 72
0
0
0
0
0
0
l364
1 3 48
1292
1 3 52

RSS WCHAN STAT TTY


'?
484 13a6fl S
0 l l d f 3 S SW ?
0 l l ? 2?e SWN ?
0 127f36
0 13i743
0 13i7bc
0 20d17f
608 13a6fl

SW '?

SW ?
SW ?
SW '?
S
?
528 tl 3 1el S
?
508 13a6fl S
560 13asfi S
?

0 25332 7308 13a6fl S


0 l l 5 64 8992 13acfe S
0 5 6 2 0 1476 24ca9e S
0 5 632 1544 13a6fl S
0 2 212 1220 li 624e S
0 2 224 1252 194bd S
0 2 65 2 8 2 0
R

TIHE COHHAND
0 :05 ini t [ 2 ]
0:00 [keventd]
0:00 [ksoftirqd CPUO]
0:00 [ksvapd]
0:00 [bdflush]
0:00 [kupdated]
0:00 [khubd]
0:00 /sbin/syslogd
0:00 Isbin/klogd
0:00 /usr/sbin/inetd
0:00 /usr/sbin/lpd

pts/2 2:04 lyx maestro.lyx


pts/2 0:02 gimp Shell.ps
?
0:00 Iusr/sbin/sshd
0:00 [sshd]
? pts/3 0:00 -bash
pts/3 0:00 -su
pts/2 0 :00 ps a l x

El significado de alguno de los canipo anteriores se indica a continuacin:


PRI Prioridad del proceso.
NI Valor nice en<picado. Un valor positivo indica tnenor tientpo de CPI' .
USZ Tan<ao de la intagen del proceso en ntemoria virtual (c<i<ligo+datos+pila).
RSS Besi<tent Set Si ze..Indica la < antidad de kilobytes del programa en aleatoria.
WCHAN Direccin de la fnt>cin del n>rlco en la q<te el proceso se <ncuentra durnfiendo.
STAT Informacin a<erca del < atado d<l proceso.

( 'A I >TI,'I.Ot. E I. IXT fePfeETE DE ()ltDI:.xE<'

ll O

Q< reA-r tW

R Listo.

S L)urmnicrid.
T Dvteriido.
Z Zoiril)iv.
TTY 1'( r(iii@al (t t y )

Sint a x i s :
I.<i ordvn k i l l

d e c<>ntr<>l (Lso('l'ulo al pl'o('('so.

ki l l

[ - se a l ] PI D [ P ID . . . ]

si r v ( p i r a e n v iar sen>iles<l llll(> o vai'los pro<'Psos id(irtifi<">id<>s por sti

ldvllti fl( adoi' d(' p r o c ( so . F s t a

o r d<.'11tal)ll?>Pll v><ist(' <'01110 lliilllada Bl s ls t("ll>ii pal';1 po(('r


scr iiivoc ida d<?sde piogr in i ;i. (..'rra s<fiel vs u i)a i i ) t ( m>p< in so lt>v>)r< qiiv sv < ri) <( ;i uri
pro((so. asiicrori;i. p(ira in f o r i i i i i rl ( d ( ; i l g i c v c rit. (.'iiaiido ii i) pr o c (so re(i l )( u u a s eal
prr(d< tr;it u'la <lv trvs foriiis difvn ritvs.
l.

Ig i i ( >rar l>i s('ll>ll.

lrivo<';<r ii lli riit iii;i <le trt ariiietito por <lefvcto, prop<>rcioiiad i p<>r < I uii<l<o.
s

I l l v< >' il' <1 illl<l l'i(t )ll<i pl'opi<i qllP sP Pll('Brgal'<ldv t l <<ral dlcll>i sell1.

C'ad;r sciial t i v n a s o ( i ado i ii ( n i nivro vritvro po. itivo q ii ( l a i d c t i t i l ica. E u < I <aso dvl
t IvIX Svstcni l ' e>(ist(ti l ! ) d i fer<res. rniiii<ra<1>us dvl I al I ! L E s tas soll:
I.

S I G H UP: El(l!/i<)>.Es ('ilvi il lii >l t. )do. Io s pl o ' s(. <ls ( ' l '1los a i l l l i l l i s iil t PI ) l l i l l al

virar(d<) stps< d<s<ric< tu. L.i a c (.iii p or d < fe(to es t e r u i i n ar l a < j(< ii< i<>ri <lv los
pro< vsos qii< I i rc<. i l >< ti.

'2. SI G I NT: lnt< rrp< iii. Es vnviada a todos los procesos as<>< i (<los a im rnisnio terminal
criando se piils>i la tv< la d< intcrrupciti, I <>r dvf< cto. prov<)< a la tvrniiria< ioii (I(' los
I?r< >('esos q(l p 1<l r('('ll)('Il.

SIGQUIT: Salir. Es siniilar a SIGINT. p< ro vn <ste cas<> sv <iiv;i cuaiido p(risaiosI i
t('.<'Ia dc s><lidC't i'I-t) (('ii Litiux (".t r'1-41.
SIGILL : l i t r i i ('<'i<>ii ilegal. M r r i i i <i u i l q i i ivr p r o ( <so q ii c i i>t vnt< Pjvcirtar u i >a
insti ic<i ilegal. P<>r <Ivfe< to t< ririiiia la eje< ii(iri >l< l progr >iiiq i ie la r c< il>v.

SIGTRAI>: Es vnvirrd;< ciiaiido se ej<ciit>ui iiisti >r i<>iis pas<> a p<Leovii un pn>gr aiiia.

Sii inn por <l< f.to tembl)r es teriiiiri ir el proceso que la r(< il>c.
(i. S I G I OT: Fallo Ir ir<lware.
SIGEMT: Fallo liardivarv.

4.15. PROGRAMAS Y PROCESOS

RA-MA

lll

8. S I GFPE: Es enviada cuando el hardware detecta un error en una operacin en coma


flotante. Por defecto, termina la ejecucin del proceso que la recibe.
9. S I GKILL: Provoca la terminacin del proceso. Esta senal no puede ser ignorada.
10. S I GBUS: Error de acceso a memoria.
I l.

S I GSEGY: Violacin de segmento de memoria.

12. S I GSYS: No se usa.


13. S I GPIPE: Intento de escritura en una tubera en la cual no hay nadie leyendo.
14. S I GALARM: Es enviada al proceso cuando alguno de sus temporizadores llega a cero.
Provoca por defecto la terminacin del proceso.
15. S I GTERM: Indica a un proceso que debe terminar su ejecucin. Puede ser ignorada.
16. S I GUSR1: Reservada para el usuario,
17. S I GUSR2: Reservada para el usuario.
18. SIGCLD: Se enva alpadre de un proceso si ste muere,
19. S I GPWR: Fallo de aliment,acin,
La orden ki l l , c omo hemos dicho, se utiliza para enviar seales. El que enva la seal debe
s er el propietario de los procesos o el administrador del sistema. Por defecto, kil l e n v i a
la seal nmero 15 al proceso especificado, con intencin de terminar su ejecucin. Esta
seal nmero 15 lo mximo que hace es avisar al proceso de que termine por s nusmo,

pero el proceso puede ignorarla. Si queremos eliminar el proceso definitivamente, lo mejor


es enviarlela seal nn>ero 9, que no se puede ignorar.
Ejemplo:

$ ps a
P ID TTY
644
p t s/ 0
661
p t s/ 0
677
p t s/ 0
678
pt s / 0
679
pt s / 0
1 809 p t s / 0
2432 p t s / 0
2 664 p t s / 0

STAT

S
R

TIME COMMAND
0:00 bash
7:20 /usr/bin/galaon-bin
0:00 /usr/bin/galaon-bin
0:12 /usr/bin/galeon-bin
0:00 /usr/bin/galeon-bin
0:00 tail -f /tmp/vine,log.v14C8g
0:00 /usr/bin/galeon-bin
0 :00 ps a

$
Imaginemos que queremos eliminar el proceso tai l
hacerlo sera:
$ ki l l

- 9 18 0 9

c u y o P I D es el 1809. La forma de

ll 2

( ' > )(PTI LO I . L L l l v T L I I I ' l<L>'I L' DL IIDKXES

Qc HA-tlA

('CH>l)<>s')lllo iil illv( "ii' <l(' ilu('vO ii ps v l ll o ><l>iii<'('(' <'Il)l (( <tsO <lll(','(';ll>i)l>los <1( t'll>ii>lll'.

$ ps a
P ID T T Y
644
pt s/ 0
661
pt s/ 0
677
pt s/ 0
678
pt s/ 0
679
pt s/ 0
2432 p t s / 0
2664 p t s / 0

STAT

TIME COMMAND
0:00 bash
7:20 /usr/bin/galeon-bin
0:00 /usr/bin/galeon-bin
0:12 /usr/bin/galeon-bin
0:00 /usr/bin/galeon-bin
0:00 /usr/bin/galeon-bin
0 :00 ps a

$
I ll C B

Sintaxis: nice [-N] orden


L i ni< ni c e 1>riiiit( j < itt'ir iiti 1>rogratt>a (<tt I > rioi i(l(al rlistir>ta d lii i) ria l .
lit< ni)i<u>ti<ii<lo l i 1)riori(la(l <lc ii i) l ) lo< (L<(>. >l (ostil (lc ( t il(' ('I r ( a to sf' vfalll I)(l jil(li(H
<los l)tato ( l l lP I i o ' v )lll H (l l s l ) l i t l' (I c t ? ( l ito Tlt llit)o ( I <' l > roc('Ha(lor. S l

(H <llsiniiiii r l a

l o (l l l ( l a ( ' ( ' ) )loa

pi i < >ri(la<l(l(' ii I) r <>(< H<>. )Lsii < jc(ii t>ils. I>< ii<fi(i iii<l<>al r( sto. .)olo

el ;i(liiii t ii st ra<lor (1('l Hi.'t('iH 1)tic<l<' 'ii(ii>mirar li i l ) r i o r i<la(l (l<' ii l ) r c eso. l'.1 valor (k i X
(icie n )T<>) 1>ar;i itaiiari<xs iu>ril< H <l< bc Patir. iil>reii(ii<l<) < ttn l i 1!) . 1<> <t( si(p(>ll(
iiiia <llatiii(i(t Pt el Iact<>i Psf)c(ifi(a<lo (le I i 1>i 1<>ii<l ul. P<>r (I< t(i to, Hi i> 1<licaiiios otr i
(osa, n i c e t ( t llizara l>ill"i X < 1 valor I ( ) . Si H< Plig< uti i i i < n i<iito 1!L I>( rtiti r( t)<a (Iii
ll)s (I('>ll Ls 1)l'O<'PHOH lis('ll Cl 1>1'O<'('H(l<l<) r '>l 1TCH (ti lP Pl. Si ll ('I iii >;irg< >. Ii I >r i<)r i<la(l < I< I 1>rO< HO
se iticr e i t )t(i c a <la < ierto tl c l i l l )o pa l a ' L i c t . l i t 'ar (l l i f' l l) l o ( ' ( 'Ho ll<) iliiPIH <IP ii>a)ii(i( t.
l'ot<> lic)ii<>s <ll(ho. H()lo ( I ul i i i iiiistr l o r ( I< l Histciiia 1ile l> i< r(iiiiit ir la 1>ri<ri(la<l <I('
<iii I)ro( ( s o i i t i l i z i ( l o < iii ar g i i i i i i)t<> ttgi(tivo I) ira X , (I i i ( ( ( H i to t ii>i>(itiio I)ii(( l( v a l ( r - I ! I .

I j< ii)I>lo:

$ nic e - 1 0 p r o l g &
I 1] 481

llohuP
S int a x i s :

n o h u p o r d e n Jk

L II oHalo>l(L<. ilo i vf')los ol)liga< los ;i ( Je( (l tiii' l)rogl iii)l>LH (11 Hegi ii l(l() l)ii)ll <Iii(.' t i<l < l)<ll

iii tl c i 1><>< triiiii i a r. I ) <>r (ji i1>l<> 1)r<>gr;t; <l( < ,l< iih> cimitfi<o i> la 1 >ila
<'l<)ll (1(' pi(>gi'(lilas il l t g l Hll(l(".L Si t ciiios i i 1>r''Ho (1<' las ('Hl H("Ir tst l(i li ilt( ' l l<)r<s

< jt;ii<los1 <l< Hei<>s <ls>tect n><>s<ll Hist( tt)a. <Il< lio 1>r<eso r< ( ll>ira la sellill <I(
/>())>(/H/) f a l i z i i i si i ( j ( ( i i ( i ( > t). LH r < l( no h u p f i l ( ' ( I f ' i i < Iii ( o i i o l ) j t <> (1 iii( 'r i i i

pro< cso it))t t t)< H l i H( t il <lc <lt<< i(ii iil)r<viat i. />H)></<(y (H;<iii' (l< I sist)ta). n ohup vi (
ii<l( no /i (ir((/ uy (ti<> >Igiir). ('t')t><los( iisa nohup. Ia H;<Ii<la si< >I>rc es redirc(clo)iil;i

i iii i

a r c l i i v<>. Si ( 1 s l i r i o i i <> sf> ifi( a i i i i ! ( ' l l i v<> <lf s (ii<ll). <- iii ni)< f a nohup ( r< ;ir i < l
i i( liivn (l< sali(l;i nohup . out < ii < I <lin < tnri<> a( tu;<l. I I ar ( l i i v<> (lc >ii<ll(lil a('ll(ll" tal) l o

lns l f l is>)j( + (lll(' ll )ii (l ll'Igl< los il lli si>Ii(l>1 ( sl i l l(lai' ('ll)(> lns ( I ll lgl(1<)s il lll sll ( lil c .it i(ll(fi

(I< prrnr.
l' flllf)ln:

$ nohup cuelg a k
[ 1] 4 8 2
nohup:

$
Para >iiif>r<>l>ar <1 fii< ioii;iii< lit<l < n o h u p .

l ) l <1)c il l l l l l / ' l l ' 1l l ) l n g l " i l a f 'I l s g11(lo

1>laiio sl ( ' l f)1<"il' f stil (>I (I<'Il. ))< ('Oi liii(('II). siilg>ii (1(1 sist<'ll)ii y

v l t ( ' lv a a P t i a l '. P i i l (

<'ni)II)inf>ar. llt i l i z i)ii <ll;i n n l ( l i p s , ( f ii l l > r ogr i i i i i;i y i i i<> xist<'. PriiE>< ahora l l a i i r a r l ( >
<(i no hu p y r < f>it;i l a n f )< r;1< i. y < nif>rn!)ara ( l (' f.'I f) l'n('('s<) ('otii i)l ( ' Il ( ' j ( 'cciII
illl(f<' ll<'lli rai . l l >iv>llns a!>i)ll(lll>l(ln Pl slst ('la t f l f )<)I" lll('lit e.

sleep
Sintaxis: sleep segundos
Vit;i r <l( s < li t iliz i p i i i l < t<u rii(>si i <l< t< i )iil(lnilii< r<> <ls(gii ii<los ;iiits <I
('ot ii' ('nli l n s l g i l l ( ' I P. I , a i l o i ( l ( '11 (fc +llIP 1<'r t i l i r i ) ( li l ( 'I< los l ) r o grf )ll)i<s (l(' sl)<'II

v( r( 1<>s < ii ( l (;if>tiil<> () <l<lic;i<l<> ;i f;i I)rngr a ii i( <I< l iiitc r f)1< t( <I( <ir<lPs.
E fIii l)II);

$ sl eep 5
(Esperamos 5 s egundos y c o n t i n a )

$
:=: i

C l!M

Sintaxis: time orden [argumentos]


l'st'> r<Ii'11 <'j< ('ti< ( I lliii ii<l;ltn <f lc <, f>< ifi<fii(iii<>i f >1) iii~ ll<>si!>1<'s 1)'(l lii<'ti<>s) y
(!vil('l v(' t I('ll )n.'i I ('llll !vos ii li i ( Jc('ll( I (IPI f)l(>('<'>(o ('Il s( g)iii( l os. Xl l l i i i l l l l ( ' t P (I('v el v('

< 1 i i< i i i f >o t ri< iis< llrri< lo < ii I i < j ii< i<>1) total. I t i< Iii!>< > <iii< s< l i j (

( t i ( lo < I 1>1 n( ( sn < ii

lllo( l o s i i i ' I( ) v ( ' 1 t l ( ' l l ) n ( l l l ( ' s( ' l l a ( ' f ( ( ' l i l a ( l n ( ' I l l l l ( ><l(> i)ll >('l'vls<>l'.

E,j< iiif)l(>:

$ time s leep 5
rea l
Om5 . 0 1 5 s
u s er
Om o . 000 s
sy s
Om0 . 0 1 0 s

$
El tictiif>n real

fe l i i < lit i(l;I <l( t III) f><> <ii< tl"i)s< llrr( (l< .i(lf i s f la i i z a la <ii<l( ii liast ;i

(ll)(' ('at a t ('I l l l l l ll> s)1 P f('(') lci(>Ii. l ' l

t l ( ' l l> f)n u s e r ( ' s l l i ( " l l 1(! Il( I (l(' I 1<'i f)n ( f(' c n l l s111('

ll 4

C " ,APTt<L() 4. EL LVTERPRETK DE RDEYES

RA-MA

el proceso rjecutarrd<> srr propio cdigo. E el caso arrtrrior. este tienrpo es rrrenor que
la apreiaci de la medida. Por l t i nro. el t ierpo sys i n d ica la carrtidad de t ienrpo
qu<I ha erpicado UI<<IX al serviio de la orde. Esta es la irrforruaci<>rr preseutada d<
forra est.;rrdar <11 todas las n)<rir>as, pero prrede aparecer iforrrra< i adicional aparte
deprn< finrtr d<.l sistera.

S intax i s :

w [ - hs] [ u suari o]

La ord<n w 1rstrrr irrfornraci<>n ar<r(a dc los usuarios (octad<>s cn esrnornrto


al sistenra. as con>o de srrs proces<xs. La priurera lrrea que visualiza es uua lrrea de
informacin g< nrral. De izquierda a derecharestra la hor;r rrtal, cl tierpo qe lleva el
sisteura activo, el nrnrero de usuarios conecta<los y la carga rurdia <lrl sistema drate los
rltiuros l. 5 y 15 rrri>>tos. La siguiente lrrea consta de diferentes a>por aclaratorios dc la
irrfornlacin qrrr apare< era err todas las lneas siguirtes. Estos campos son. de izqrrierda
a derecha, nombre <l o r rexirl del rrsrrario, trrnrinal asoi;rdo, rl ordrador rrroto (rs
s caso), la hora de conexin, el tiempo desocupado, JCPU, PCPU y. fialnrete, la lnea
de orden orrespodierrte al proceso que se ejecuta. El c ampo JCPU indica el t i empo
dr procesador rrtilizado por t o dos los procesos asociados a ese ter>ir>al. Este ticlpo
rro incluye los procesos lanzados err segundo plano rn otras sesiones, pero s inrlrrye los
lanzados en segundo plano en esa sesin. El carupo PCPU indica la rarrtidad de tiempo
erpleada por el proceso irrdicado en el rltimo campo (what).
Opciones:

-h Elirina la cabecera.
-s U t i l iza el formato corto. No se visrralizan el tierpo de con<xin rri los tiempos JCPU
v PCPU.
usuari o

M u estra lrnicarncte infornracin rela< ionada con el usario indicado.

Ejerplo:
$w
5 users ,
l oad a v e r a ge :
21:54:16 up
1:39,
FRQM
LDGIN<) IDLE
J CPU
U SER T T Y
20:16
? x dm ? 8: 1 4
chan
:0
2 0:1 7
1: 3 7m 0 . 0 5 s
chan
p t s/ 0 :0.0
chan
p t s/ 1 :0.0
2 0:1 7
0 .0 0s 0 . 08 s
chan
p t s/ 2 :0.0
20:17
4 5 :0 4
0 . 3 2s
chan
p t s/ 3 :0.0
20:17
1: 3 7 m 0 . 00s

0, 25, 0 , 17, 0 , 16
PC P U WHAT
1. 3 3 s /usr/bin/gnome
0 . 05 s b a s h
0 . 00 s w
0 . 18 s v i m README
16.42s gnome-terminal

4 .15.2.

Co n t r o l d e t r a b a j o s

El otrol de t r a bajos es urra caracterstica proporcionada por l a m a yora de los


itrpretes <le rdenes qrre perurite a los usuarios el control simultaneo de mltiples pro

RA-MA

4.15. PROGRAMAS Y PROCESOS

ll 5

cesos, que van a ser denominados jobs. Hasta ahora hemos viste algunas rdenes rela
cionadas con procesos. as como los ronceptos de ejecucin en primero y segundo plano.
Ahora vamos a ver cmo podemos realizar algunas funciones adicionales con la ayuda del
intrprete de rdenes: para ello, vamos a basarnos en <xn ejemplo muy sencillo, en el que
nos himnos a servir de la orden yes. la cal lo nico que hace es visualizar el carcter y
indefinidamente, tal y como se muestra a continuacin:

$ yes

etc.

Una vez iniciado este prograxna, ix]terrupcin, que normalmente es Ctrl-c. Sabemos tam
bin que podemos iniciar la orden en buckgmund y evitar que enve nada al terminal de
la forma siguiente:
$ yes > /dev/null k
[1]+ 643

$
En este raso, hexnos obligado a que la salida de yes vaya a /dev/null, que como sa
bemos, es el lugar donde se suele enviar la basura, y. adexns, la orden se ejecutar en
segundo plano. Como podemos observar, el shell devuelve el pxvmpt. indicndonos que
est esperando nunca rdenes.
El [1] represexxta el nxnero de trabajo (job number) para el proceso yes, y el nmero
643 es el identificador de proceso. As pues, ahora tenemos al proceso yes ejecutndose en
segundo plano y enviando su salida al archivo /dev/ n u l l . P o demos comprobar el estado
del procesotilizando la orden interna del shell jobs .
$ jobs
[1]+ Running yes > /dev/null k

$
Podenxos comprobar que, efectivamente. el trabajo est ejecutndose utilizando la orden
ps. Como ya sabenxos, el proceso puede ser eliminado con la orden k i l l e s p ecificando
su identificador, Existe. adems, otra forma de identificar al t r abajo que consiste en el
exnpleo del nmero de trabajo (j ob rxumber) precedido del carcter /. As pues. otra forma
de matar al prore~ sera la siguiente:
$ ki l l

/1

$
Para comprobar que el proceso est muerto, podemos utilizar de nuevo la orden jobs.
$ j ob s
[1]+ Terminated yes > /dev/null

l l6 C A P TULO 4. EL INTERPRETE DE RDEN E S

4 . l5.3.

RA-MA

D e t e n i e nd o y r e i n i c i ando t r a b a j o s

Existe otra forma diferente a la indicarla anterionete dr. poner un proceso a eje< u
tarse en segunrlo plano. Este segunrlo mtodo cm>sistr. en iniciar el proceso normalmente.
a continuacin detenerlo y drrspu reiniciarlo cu sr.gundr> piara>.
Vamos a continuar con el ejemplo de yes. Para ello lo iniciaren>os en prin>cr plano:
$ yes > /dev/null
Ahora, como yes se ejecuta eu primer plano, el shell uo coloca el />ron>/>t.,Seguirlan>ente
vamos a detener el trabajo. para ello emplearemos la tecla rle suspensin. que uorn>a)me>>te
es Ctrl-z,
$ yes > /dev/null
Ctrl - z
[1]+ Stopped yes > /dev/null

$
Si el trabajo est suspendido significa que el sisten>a operativo no le va a asignar tien>po rle
procesador. Sin embargo, el trabajo puede reiniciarse cn el punto en que fue suspendido.
Para reiniciar el trabajo se utiliza la orden fg (f o rer/rvnrnrl).

$ fg
yes > /dev/null
E este punto vamos a volver a detener el trabajr> para posterir>r>nente reiniciarlo. perr>
aho>a en segu>lrlo piano: es decir, co>no s> hub>semos ut>llzado el carcter & flnalzanrlo
la lnea de rdenes.
$ yes > /dev/null
Ctrl - z
[1]+ Stopped yes > /dev/null

$ bg
[1]+ yes > /dev/null &

$
La orden que hemos utilizado para reiniciar el proceso, en segundo plano. ha sido bg

(bacl yround).
Cuando tenemos varios trabajos. fg y bg necesitan que le pasemos como parmetro
el n>mero de trabajo para identif i c a al proceso que rleseamos pasar a primero o seguneio

plano.

4. 16. E j e r c icios
4.1 bogu tipo de shell se it>icia cuando se conecta al sistema'? !Qu deberarnos modificar
para que se iniciase otro intrprete de rdenes diferente' ?

Qc RA-MA

4.2 Visualice las variahl(s del entorno y las del arca local de datos. (,Cmo puede conse
giiir qiie una variable del rea local dc datos sea accesible desde el entornn".. Pruebe
a hacerlo con una denoniinada Y que contenga su nonihre de cnnexir>n. !Citir>
pn<lramns quitarle el valor anterior a la variable Y".
4.3 Sustituya su pTQ7>II>tpor otro que visualice la cadena mande>.
4.4 Asigne a la variable D1 el nnnihre de caniinn del directorio /usr / l o c a l / b i n . ! C nlo
poden)os volver rle fnriiia rpida Hl aiiterinr rlirectorio".
4.5 inflo(hfique.su archivo rle configuracin de inici<> d( niodo que Hl iniciar una sesin
de t rabajo aparezcan por pantalla la fecha. la hora. el directorio rle trabajo y e l
llIllcln rlc p< rsnnas rllle Pst(n cniiectarlas cli Psc Ilioillcl lt o 81 sisteIIIH.

4 .6 Crc<; una orden alias <len<)iiiinada dir que s< a equivalente a la orden ls - l . A a d a
1H seiitell('IR Rlltei lol Rl Hl'clllvn dP cnliflgili'Rcill dc l l l i('In.

4.? C re( i ui d i r ectorio dPII(nillIIR(ln bin y < opie en l tndr>s los arcliivos de /b in q u e
(omiciiccn por 8, b o c . C r ee im d i rectorio denoniinarlo et c y c o pie en l t odns
lns archivos de /et c q iie contengan cinco letras en su noinhre. Cree un directorio
rlenoininado in c l ude y copie Pn l todos lns archivns cuya extensin sea .h y estn
c olocados cn el directorio /u s r / i n c l u d e ,
4.8 Liste riel directnrio / u s r / b i n

Rq ii llos archivos cuyo noinbre cwnience por la letra

C.

4.9 Li ste dcl directorio /e tc t o d os aquellos Rrr'hivos qiie comienr en por una letra com
preii<lidii entre 18 b y la x,
4.10 Liste rk"1 directorio / et c t n r los aquellos archivos que no comience por una letra
c on)prendida eiitre la c y la t ,
4.11 Cree uii archivo Pn su <lirc< tnrio HNE rknominadn f icb. sal (HH conteiiga el nombre
rle todos los archivos de lns directorios /bin y / e t c . A n a da a f ic h , sal el i iomhre
<ie los arcliivos qiie l)ay Pn cl (lir< ctorio /.
4 .12 Cree uii archivo rlenoniiiiado hola que contenga la salida de 18. orden banner hol a .
Utilizandn redireccinnaniientn dc entrada, enve el archivo hola B un usuario cual
q lilPIH ('On I(1 l t e .

4.13 En ciertas < ir<nstan(ias, porlenn>s Pinplear la r>r(le)i cat para creamos iiu arcliivo
rle texto. lntrorliizca el siguiente texto cii )iii archivo denoiniiiado cit a . u t i l i zandn
p<ira ello Iinicaiiiente la orrlen indi<.ada.
/liar/)Q(/io, (/> Q de Q j<(7>e7it(d,
/>OT(t(le ll l'ej' . / 7 enc 'cn)za '77l(i (/a7(/Q7)t(i

/ / cl c(((77T>o embalsamado no s( ri c
e7( la soT(767Q d(' s<l t Q77)ba.

Aliada H colltlllllBCIII IB slglliellte lIICH ill ilrc l l i vn ci t a :

118

CA P I T U LO 4. EL I N T RPRETE DE (RDENES

RA-MA

Thotmes (Sinuh, el egipcio)

4.14 Modifique el programa pi. e utilizado en el captulo anterior, colocando un ; detrs


d e main(), a continuacin complelo y enve la salida de errores al archivo err . sal .
4.15 Cree un archivo denominado meses que contenga en columnas los noinbres de los 12
meses del aio. Ordene alfabticamente el archivo meses y cree un archivo ordenado
que se llame meses. Ord.

4.16 Ordene numricamente el archivo /etc/passwd segn el campo tercero (UID) y cree
un archivo denominado ui d . o r d . Haga lo mismo, pero utilizando el campo cuarto

(GID) y afiada la salida ordenada al archivo uid. ord,


4.17 Bu sque el trmino Q JSONLY en todos los archivos con extensin .h d el directorio
/usr/include.
4 .18 U t i l ice el filtro wc para contar el nmero de archivos que hay en el directorio /b i n .
4.19 ~,Cuntosprocesos se estn ejecutando en su mquina en este instante? !Cuntos
soll siiyos?
4.20 Enve la seal nmero 9 a su intrprete de rdenes, !Qu ocurre?
4.21 Inicie un proceso en segundo plano, por ejemplo sl eep 5000. Termine la sesin y
vuelva a conectarse. !El proceso se sigue ejecutando? /.Cmo se podra evitar que
al finalizar la sesin dicho trabajo tambin finalizase su ejecucin?
4.22 ! C unto tiempo tarda en ejecutarse la orden ps?
4.23 Inicie vi , a c ontinuacin detngalo y envelo a segundo plano. !Ciintos trabajos
tiene ahora? Pase de nuevo al editor a primer plano.

Captulo 5

E xpresiones regu l a res y fi l t r o s


5.1.

E xp r e s i o nes regulares

Una expresirr regrrlar es rrr> patr<>n quc defirre a un corrjunto de caderras de caracteres.
Las expresiones regrrlares se construyen de forma anloga a las expresiorres aritrrrticas.
Existe la posibilidacl de combinar expresiones simples: para ello, debemos errrplear distin
tos operaclores.
Los bloqu< s ?>sicos de constru< cin son las expresiones regulares que rc ferenc.ian un
nico <.arcter. La mayora de los car ccterm, incluyendo todas las letras y dgitos. son
expresiones regulares q<r< se definen a s mismos. Crralqui< r metacarcter con significado
especial <lc?>e ser precedido del smbolo f>crc/'alas/r ><
para que pierda su significado especial.
Una lista <le caracteres encerrados dentr<> de [ y ] r e feren< ia crralcfrrier carcter sen
cillo de esa lista. .i i el p r i mer carcter de la lista es un , e n t o nces estaremos haciendo
referencia a los caracteres que no aparecen en la lista. Por ejemplo. la expresin regular
[0123456789] r<.presenta cualqrrier clgito simple. Para refererrciar rrrr rango cleterminado
de caracteres ASCII, porrdrernos < 1 primero y el ltinu> <l< ellos c ncerraclos entre corchetes
y separaclos por rrn grrin. Por <jcnrplo, la expresin regular [ a - z ] r e presenta crralquier
letra rninscula. El punto . r e presenta cualquier carcter, excepto el carcter <le n>>eva
l r lea.
L<>s caracteres y e l $ son nretacaracteres qucrepresentan una caclena vaca al prin

cipio v al final de la lrr< a. respectivamente. Los smbolos i( y ',) representan una ce<lena
vaca al prirr< ipio y al firr d de uuu palabra,
Una expresin regular qrre representa un <.arcter sencillo puede ser continuada con
u r>o o varios caracteres dc r< pet i< in :
i? E I el< mento precedente es opcioal y debe coincidir al menos una vez.
* El elemento prececlcrrte dc he >inci<lir cero o ms veces.
i+ E l elenrerrto precedente debe c<>incidir uua o nrs veces.
'> (4) El el< rnento preceder>te debe coincidir exactamente n veces.
/~m) El elenlellto prece<1< r>te es opc.iorral y <l< he coirrcidir' al l>>ellos m veces.

[ZO

C A I r t [ . O :-. [ :X f fef'IOX[.-. nl c,'t'I.A[e[': > f ff TWO

I<A-f<)A

(n,m j E l ( leiPI<> fine((<l< iitr <l< l><>in< i<lir al iPI)<>s n < P< es. f>< r<>ir ll)s <I< m,

Las t xpl('sl<)nes I <'g)ll>ii rs piir<l( 1er coiicat< iia<las. [',1 1<:'s)ilt <l<> (I(' lli ( <><at('ii( i re
pres('nt>1 )l(l)IPIIRs ('a(lcl) Hs (l(' <'(>(")tc))(l))s I esp(rl)(le)l Rl 1);)t i li f)l () f)1'st < ) (1(' ex f)l Ps)ol)('.s

1 (' g I a l'ps.
D()s exprcsioi)es regf)ir('s 1)ii((l('li u i ) i rse ( ())i ( I <>1)er;i(l<)r 1. L a ( x p i < si<)ii r< g)ii;ir r <
siiltaiit e r< f>i < s< sita ('))l<ti)i< r < a(l( lis <ll r e s [><>lla >ll llai rli <le <. Il ilcs<liiicra (1( las <los
('X f)l('Sl()11('S I ('g)ll>il'<".i.

L a (>f>< r i<i <Ie 1( f>ti( i<)ii ti< lie f>r('('((I( i i ( i i s<)lrre I i (>f)('r))(i()il <1( (()llca t ( >l( ii l . . r e
l)lle(l< 'll ll) ll)/ a l ' p ) l l ( I i tesis il ( l l ) ( I ('l l >s l ll< >(l ll )('1(I' ll)s pl ('('( < I( l)('i s.

I.os lnet acara( ter< s '?. +, (, . 1, ( v )


[)'>l'a <fp ~

t i e iieii (fue s<'r f>r< ( e<ii<l<>s (l< 1 s)i)bolo()( ~lus/)

si l si gli i ) ( >lo (sppciiil.

:-'( cotiml >c)~ vamos a po)ier iia seri( (I(' Pjen)plos clc lls() (I('( xpr< si<>(s reg))l ir( s. E
( 1 l;)(lo iz(l)ll('I (I() f)11(ll <'1()s Ia ex f>l Psf(>I) I ('l'li' (l)at ri)). v < i) Pl (l('recli(>, su sigi)ifi( u l(>.

Patrn

Qu rep r esent a

gato
gato
gato$
gato$
gat [ao]
g a[ a e i o u ] o
ga.o

La (a<lea gato
La < a<Ira gat O >11 Cniirnxn <l(' iii)a l i ii

La ce<lena gato al in1 (lp lln;i lea


La ca(le)i i gat o

f ( ) r )aii(lo l l ii a i i i )i( a lP'l

Las ca(1<'ila gata o gat o


I.a tercera letra no Ps una vocal n) iils<l))
La t< rcera l( tra. (.s ci))il(ficr car)i< t< r
l'.al<piier liie)) <ll)e >iitega 4 ( ara( tcres ( ii;lles<fiiier))

C al(fipr liipa <fiip (<>niienza por pl i l i t o


C>il([iii('I l l l e a ( l l l P I i( ) (<)ll)f('z f )(>l l ) i l t <>

gatos'
' 'gato ' '
' ' ~gat o ' ' *

[a-z] [a-z] *
[ a-z] +
[ 0-9A-Z]
[A-Za-z]
[AXS]
gato lgota lgata
( slar b ) u s t o
ga?t [oa]

gato. gatos. gatoss. gatosss. Ptc


gato entre coiiiillas <lobles
gato c() <> iii c<uiiillas <lol>l< s
UI)B o las Ietl as ) i l l sculas
Lo )isni<> <fr l<>it< rior (s<>1<) v)li(l() ei) ;)l/>) li) ls >f>li< a< iocs)
Cual<fier ())rct< I (f( iio s(a ii i n i m( ro ni l e t r a ) a v lsci)la
C akfi('r 1('tr)u sf'>)ll)vi)s(')lis o l ) l l l l s c l l l i i
C ual([)ll('l' ('al'r('tel ( l l)P s('a A. x o .s

'ga

U iia (IP las 1>alal>ras gato, gota o g a t a


I .a pl )1>ras susto o arbust o
gato. gata. gasto, gaita, tc.
(
Cual<fuicr palabra (file coniieiice co ga

to') >

Cu)il<pii< r f>;il>ibra <f( tc r i i iic <ui t o

't<gato)>

La pal>ihr>1 gato
D o o i i) is oe s < ii (iii i n i isla i i i ' )

. L )'XI ' M : S IO.') LS )(EC'UL:)<)(ES

~c t(A-(,tA

1 21

Xo to(los lt)srvtr)('ara('tvn s s(i v) i<los vii ciil<)ivr plic;ici ):>(IX. A cotit iriuaci(>n

su st r)i iiri i tu)>)ii <loii<lv sv ii)()i(L)trv aplicaci<>i s r ti<><


eii oo <lt tvr)iii L)os riie
1 'i("LI'iict ('l'"..i,l.o. L (lvriiviit<>s <lv la t ;i) >la iar( a<los i t l < ar;i< t er iii<)i< iii (ti iv la iplicaciri
r< ('oli( ><'e ('se ii l('1 a<v<r''("t <'l .

. )m).)o)o

ex

vi

s ed

aw) C ' ) t) t gre p Ih p r v s n i t a( i<'>


( LL(L)<)tlivl' cr't t.'l'

C'(ro <> 1~ prv< nlviitvs

Prii)( ipio <le lnea


Firial (lv liiv,i
C'ara( tvr l' scap<'

E) corijuito

<( (

;1()lila('('iii ( l l )l( ilt(> )( l pat r i i

U I L L'ai Lg< >

( (>ll)iv)i/( > O 1ial lv p)ll)ll)i a


+

).)i r(> <> ii) s p r V CV()ntVS

('vru o ui prv ()<'tvs


C)t'P>l'LL < >P('I< >i)VS

Agrupa np( iii<s


C'<>tiro ( jvip)<> <lv ;)p)i< Li)ri <lvxprv sioiivs rvgr l)Ll'<'s villllos <i '>lit ii)iir ( st Ii<liar)(lo vl

filtn> gr ep . c vr> ii>tr<>())rc(i(i) vi>s ni v l


po<'o lll(is ('il ('l Liso <lt g r e p

c a p t u l o ; t i i t v r i(>r. 1<)L<>r)L v<iiis a )i<>ri(l(ir LLIL

p a r ; i t ) L is((r )>))>))rr)s (1<t r <)t i i i i ; i r< )ilv<) )licivli(lo i iso ( l (

1;Ls (xprvsioiivs rLvgul;rs. ).a <lvscrip< i>ri )L)v <larios li;< r< t< ivri< ia ;il grep <)< C'1) Lt. l
( li)il iii< orp<>r L car ict < r st i<>s (lt l<>s ti)t n>s grep, egrep y f grep ( l isi< os <1< i tiX IX. ) 1< III<>s
vlvgi(1<> vl grep <lv ClL) por. s< r (1 Liiis v( rsati) <l< t<>tlo. ellos.
.ii< ipre ()ii( < iiiplt <>s <xpn si<>< s rvgiil;ir< s c<>ii grep. <)vl>ni s< r vii<err i<ls vr>tr<
comill s <lo)>1( s p ir i (tiiv ( 1 ir)t(rpr< t( <l> r()vvs iio las iirtvrpi < t< . Si < l< iii r<> )e l L vxprvsi<i
regiil ir t e n n i i o ( l in( tcurt< t< r $. <li hvr< n)os < iiipl< ar c<>n>il)is xiiplvs vri li igar (1<.- las
(.'O il i l l 1(L i < lo))1("s.
A <itiiiiiaciii v l l l o i< a p<)vl i l l l ) i s v ri v (l v ( j ( r p l u s l i a ( i <'ii<lo Liso ()( g r e p y ( 1<' ex
pi vsiorvs regulares ('OI)jiilltalil('Lltv. C OILello. pr<'I vil(l( I <'[lls <)L'j'rli s ('l<<I O (.'l Liso (1(.'))Ls
vxprvsiovs regul ires. Vr ello. v irii>s a tr)hi jar coir u ar<)Lit<> <lvii<>iiiiii i<l<> datos. < Lrvo
('Ollt('Ili( l

( ' ' ' l < ) li e l l gLLI LL a (OlltLI li l ('iii;

$ cat datos
gato
libro
pez
gait a
. exr'c
expreso
GAto
tierra
gat a
c an i ca
fin

atunn

! !/ /
atun
Gata
atunnn

gotas
dado
gota
nada
fuente

atas
oso
loco
raton
gatos

$
E prii< r )Ligar. varii<> a l >us< ai la t)ala) >ra gato < ii ('l )ir<'liivo datos. L os r('sr) t))<k<)s sv
l)L( st r>LI Lseg) I L(l><Iii('Lit vi

122

C A P I T ULO 5. E X PRESIONES REGULARES Y FILTROS

$ grep g at o d a t o s
g at o
l i br o
gat a
can i c a

atunn
atunnn

gotas
fuente

atas
gatos

Ahora buscaremos las lneas del archivo datos que comienzan con la palabra gato:
$ grep ' ' " g a t o ' ' da to s
gato

libro

atunn

gotas

atas

$
A continuacin visualizaremos las lneas del arrhivo dato s que contienen las palabras

gato o gata.
$ grep ' 'gat bao] ' ' datos
gato
gat a

libro
can i ca

atunn
at un nn

gotas
fuente

atas
gatos

En el siguiente ejemplo buscaremos las lneas del archivo datos que rontienen nicamente
tres caracteres.

$ grep ' '


fin

. . .$ ' ' d at os

$
Seguidamente vis u ~
maysculas.

emos l s s l neas que contienen secuencias de una o ms l etras

$ grep ' ' I.A-Z] l.A-Z] ~ ' ' datos


GAto

tier ra

Gata

nada

raton

$
Para ver las lneas del archivo datos que comienzan por punto, emplearemos la siguiente
orden:
$ grep '' " i . ' ' d at o s
. exr c

exp r es o

at un

got a

loco

$
Si ahora queremos ver las lneas que no comienzan por punto, utilizaremos esta otra orden:
]
$ grep j t [
gato
libro
pex
gait a

GAto
gata
fin

tierr a
canica

datos
atunn

!! '/'/.

Gata
atunnn

gotas

dado
nada
fuente

atas
oso
raton
gatos

Qr RA-MA

6.1. EXPRESIONES REGULARES

1 23

En el siguiente ejemplo visualizaremos las lneas del archivo datos que terminan en el
carcter n. Obsrvese que se etnplean comillas simples en lugar de las comillas dobles con
objeto de que el carcter $ (que indica el final de lnea) pierda su significado especial.
$ grep ' n $ ' d a t o s
G Ato
tierr a

fin

Gata

na da

1at on

Para visualizar las lneas que contienen tres o ms enes seguidas. emplearemos la orden
siguiente,

$ grep ' ' n i ( 3 , i ) ' ' d a t o s


g ata

canica

atun n n

fuen t e

gato s

$
Por ltimo, si queremos ver las lneas que contienen la secuencia de caracteres en la que
tenemos en primer lugar una a, a continuacin cualquier carcter y por l t imo una o,
tendremos que emplear una orden romo la que figura a continuacin:

$ grep a .o dat o s
gato
pez
GAto
gata

libro
gait a
tierra
canica

atunn
84/ /
Gata
atunnn

gotas
dado
nada
fuente

atas
oso
raton
gatos

La orden grep puede ser utilizada tambin haciendo uso de tuberas. Por ejemplo, si
quisisemos visualizar los directorios del directorio / u sr . t e n dramos que emplear una
orden como la siguiente:
$ l s - l / u sr
d rwxr- x r - x
d rwxr- x r - x
d rwxr- x r - x
d rwxr- x r - x
drwxr-xr x
d rwxr- x r - x
d rwxr- x r - x
drwxrwsr-x
drwxr x1 x
d rwxr- x r - x
drwxrwsr- x

grep "d
6 root
2 root
2 root
2 root
28 root
2 root
32 root
12 root
2 1oot

75 root
4 root

root
root
root
root
root
root
root
staf f
root
root
src

4096 Feb
20480 Jun
8192 Jun
4096 Jan
4096 Jun
4096 Jun
12288 Jun
4096 Jun
4096 Jun
4096 Jun
4096 Jun

25 01:57
12 17:17
12 17:17
26 16:08
8 17:44
8 18:13
8 17:44
8 18: 17
8 22:34
12 17:17
10 11:59

X11R6
bin
doc
games
incl u de
inf o
lib
local
sbin
share
81'C

Hay que tener en cuenta que las lneas correspondientes a un directorio visualizadas por
la orden ls -1 siempre comienzan con elcarcter d.
E n el ejemplo siguiente visualizaremos los archivos ejecutables del directorio /bi n q ue
terminan en s.

l24

Qc RA-),IA

CA P TULO 5. EXPRESIONES REGULARES Y FILTROS

$ ls -1F /bin
- rwxr- x r - X
- rwxr- x r - x
- rwxr- x r - x
-rwxr-xr- x
- rwxr- x r - x
- rwxr- x r - x

l grep s$+$'
1 r oot
r oot
1 r oot
r oot
r'oot
1 root
1 root
root
4 r'oot
root
1 root
root

34780 Nov 12
43784 Mar 18
59144 Aug 25
9088 May 14
4 9320 Jun 6
9 7 Jun 6

2001 l o adkeys+
2 002 l s +
2003 ps+
2 003 run- p a r t s w
2003 uneompress+
2 003 zl e s s o

La opcin -F en la orden ls la empleamos para ileterminar cules son archivos ejecutable>.


Recuerde que con esta opcin a los archivos ejecutables se le afiada un asterisco al Final
eii la visualizacin.

5 .2.

Ot r o s fi l t r o s

Sintaxis: cut -c lista [archivo(s)1


c ut - f l i st a [ - d c h ar ] [ ar c h i v o ( s ) ]
El filtro cut se usa para cortar y pasar a la salida estndar las columnas o campos de

la entrada estndar o del archivo especificado. La opcin -c es para cortar columnas y -f


para cortar campos. Al cortar un campo. existe la opcin -d para especificar los caracteres
de separacin entre los distintos campos (el delimitador). Por defecto, este deliniitador es
el tabulador, a menos que se indique otra cosa, Para especificar las coluinnas o campos
que desearnos cortar se utiliza una lista. Una lista es una secueucia de nmeros que se
usa para indicarle a cut qu campos o columnas se quieren cortar. Hay varios formatos
para esta lista:
A-B Campos o columnas desde A hasta B inclusive.
A- Campo o columna A hasta el final de la lnea.
A, B Campos o coluinnas A y B,
Para mostrar con un ejemplo el uso de cut. imagineinos que tenemos un archivo llamado
personas con elsiguiente contenido:
$ cat p e r s o nas
SSP : 9087321.24
ASF : 4 56789212
MBV : 432765433
ASH : 423562563
JPA : 7 98452367

$
$ cut - e 1 - 3 p e r s o n as
SSP

5.2. OTROS F1LTROS

RAMA

125

ASF
MBV
ASH
JPA

$
Al cortar por caracteres desde la columna 1 a la 3, nos estarnos quedando con las tres
primeras letras de cada lnea del archivo.
Veamos otro ejemplo que combina el uso de grep con cut p ara obtener el listado de
los usuarios del sistema que emplean el intrprete de rdenes bash
1. O b t ener todos los usuarios del sistema emplearemos la orden:
$ cat /etc/passvd
'2. La salida de la orden anterior la filtrarernos para obtener todas las lneas que con
tengan el patrn bash con la orden:
$ cat /etc/pasead I grep bash
3. F i n a lmente y teniendo en cuenta que el carcter delimitador de campos en el archivo
/etc/passwd es :,haciendo uso de cut nos quedaretnos nicamente con los catnpos
1 y 7. El resultado de la ejecucin de la orden podra ser algo como lo siguiente:
$ cat /etc/pasa@d I grep bash l cut -d ':' -f 1,7
root:/bin/bash
rpm:/bin/bash
c han:/ b i n / b a s h
s sp:/ b i n / b a s h
o scar: / b i n / b a s h

Sintaxis: tr [-dsc] cadenai cadena2


La orden tr se emplea como traductor (t ranslator). Como todo filtro, tr l c e datos en la
entrada estndar. los procesa y deposita los resultados en la salirla estndar. El empleo
ms evidente de tr es como conversor de letras maysculas a minsculas, yviceversa.
Supongamos que tenemos un archivo denominado f ich con el siguiente contenido:
$ cat f i ch
Este es un archivo de texto
gUE CONTIENE LETRAS NAYUSCULAS Y minusculas,

126

CA P T U LO 5. E X P RESIONES REGULARES Y FILTROS

Qc RA-MA

A este archivo vamos a aplicarle la orden tr con diversas opciones.

Ejemplos:
$ tr

[ A -Z ] [ a - z ] < f i c h

este es un archivo de texto


que contiene letras mayusculas y minusculas.

$
En el ejemplo anterior hemos convertido todos los caracteres del rango de la A a. la Z en
sus correspondientes del rango de la a a la z. Vamos a realizar ahora el proceso inverso,
convertir de minsculas a maysculas. Para ello, emplearemos la orden siguiente:

$ tr

[ a -z] [ A-Z] < f i c h

ESTE ES UN ARCHIVO DE TEXTO


gUE CONTIENE LETRAS MAYUSCULAS Y MINUSCULAS.

$
Tambin podemos sustituir un rango de caracteres por un carcter cualquiera de la forma
siguiente:
$ t r [A - Z ] x < f i ch
xeste es un archivo de texto
xxx xxxxxxxx xxxxxx xxxxxxxxxx x m in u scula s .

$
En el caso anterior, hemos convertido el rango de caracteres de la A a la Z por el carcter
x. tr p u e de ser empleado tambin para eliminar determinados caracteres de un archivo.
Para ello, debemos emplear la opcin -d y a continuacin indicarle el carcter o caracteres
que deseamos eliminar.

Ejemplo:
$ tr -d [A-Z] < fich
ste es un archivo de texto
m inuscul as .

$
En el caso anterior eliminamos cualquier carcter del archivo f ich que est comprendido
en el rango A-Z. Vatnos a hacer lo mismo, pero eliminando las minsculas:
$ tr -d [a-z] < fich
E
gUE CONTIENE LETRAS MAYUSCLAS Y

La posibilidad de eliminar caracteres puede servirnos para solucionar el problema que


presenta traer archivos de texto desde MS-DOS a UNIX . P ara realizar esta conversin,
debemos eliminar el carcter 015 en octal del archivo DOS. Podremos emplear la siguiente
orden para este propsito:

5 .2. OTROS FILTROS

Qc RA-MA

127

$ tr -d $015 < archivorios > archivo~ i x

$
Otra de las opciones de tr es la posibilidad de eliminar caracteres repetidos en el texto.

Para ello. debemos emplear la opcin -s, Supongamos que tenemos un archivo denomi
nado otro con el siguiente contenido:
$ cat. ot r o
Aqquuiiii tteeeennrmgggoooo rrreeeppppeeeettiiddooosss
ccciiieeerrrtoooosss ccaaaaaaaarraaacccctteeerrreessss

$
Para eliminar caracteres repetidos, haremos lo siguiente:
$ tr -s la-z] < otro
Aqui tengo repetidos
c ier t o s c a r a c t e r e s

$
Por ltimo, la opcin -c se puede emplear para indicar el complemento de un patrn de
caracteres.

Ejemplo:
$ tr -c [A-Z] '' '' < fich
E

QUE CONTIENE LETRAS MAYUSCULAS Y

En el ejemplo anterior hemos sustituido todo carcter que no pertenezca al patrn LA-Z]
por un espacio en blanco.
Veamos un ejemplo completo. desarrollado paso a pam, en el que locaiicemos todos
los archivos del directorio HONE de un usuario que no pertenezcan a dicho usuario.
I.

E l l i s t ado de todos los archivos lo obtendremos con la siguiente orden:


$ ls - 1 R
Inicialmente no podremos emplear el carcter blanco como delimitador porque se
encuentra repetido en muchos puntos.

2. P a r a eliminar los blancos repetidos y as poder ut ilizar el carcter blanco como


delimitador de campos utilizaremos la orden:
$ 1s -1R l t r - s
3. S eguidament,e tendremos que eliminar toda la informacin que 1s -1R genera y que
no corresponde ainformacin de archivos. Todas las lneas que son archivos obedecen
a un patrn que comienza por un carcter, que determina el tipo de archivo, seguido
de un guin o r, de nuevo guin o v y por l t imo guin o x. Para eliminar todo lo
que no comience con el patrn indicado, emplearemos la orden:

128

C A P T ULO 5. E X PRESIONES REGULARES Y FILTROS

archivo

entrada

stdout

Figura 5.1: Esquema de funcionamiento de la orden tee,

$ 1s -1R /usr I

t r - s ' ' I gr e p ' " * [ r - ] [ w-] fx- ] '

4. F i n a lmente eliminamos todo lo que no contenga el nombre del usuario con la orden
$ 1s -1R $HOltE I t r

- s ' ' I gr e p ' " . [r - ] [ v - ] [ x- ] ' I g r e p - v SUSER

Hemos empleado la variable $USER que almacena el nombre de usuario y el modifi


cador -v que invierte el sentido de la bsqueda: en vez de buscar el patrn $USER
buscar las lneas que no contengan ese patrn.

Sintaxis: tee [-a] archivo(s)


En ciertas ocasiones nos interesa, adems de redireccionar la salida de una orden a un
archivo, visualizar los resultados obtenidos, La orden tee se cre con esta intencin, tee
se usa para bifurcar la tubera, Iee en la entrada estndar por defecto y escribe su salida
en la salida estndar y en el archivo especificado, Si se utiliza la opcin -a {append), te e
anadir su salida al archivo en vez de sobrescribirlo.

Ejemplo:
$ 1 s - 1 I t ee dirlist I wc
5 38 256

$ ls - l

t otal 4
-rw-r r
-rw-r r
- rw-r - - r
-rw-r r

i
1
1
1

chan
chan
chan

i gx
i gx
i gx

Ch811

i gx

2 30 ene 13
256 ene 13
7 3 ene 13
80 ene 13

15:56
i6:12
16:07
16:05

datos
dirlist
fi ch
p e r s onas

Qc RA-hfA

5.2. OTROS FILTROS

S intaxis : p r

l 29

[ o p c i n] [ ar c h i v o ( s ) ]

La orden pr es un filtro utilizado en UNIX para dar formato a la salida y enviarla a la


impresora. La, salida dada por pr es dividida en pginas. y cada pgina contiene una serie
de lneas de encabezado y de pie de pgina. En el encabezado aparecen la fecha, el nombre
del archivo y el nmero de pgina, La fecha se reere a la fecha de ltima modificacin del
archivo que queremos formatear. El pie de pgina producido por pr consiste simplemente
en tula selle de lneas en blanco,
Veamos una salida tpica de esta orden:
$ pr /usr/src/linux/kernel/info.c
2 001-04-21 0 1 : 1 5
i n f o .c
/g
+ linux/kernel/info.c

Page

+ Copyri gh t ( C ) 1 9 9 2 Dar r e n Senn


g/
/+ This implements the sysinfo() system call +/
!include <linux/mm.h>
!include <linux/unistd.h>
!include <linux/svap.h>
!include <linux/smpZock, h>
!include <asm/uaccess.h>
asmlinkage long syswysinfo(struct sysinfo ninfo)
struct sysinfo val;
memset((char +)&val, 0, sizeof(struct sysinfo));

c li ( ) ;
val,uptime = jiffies / HZ;
val , l o a d s [ 0 ] = a v e n r u n [ 0 ] $ < $ < ( S I J.OADDHIFT FSHIFT) ;
val . l o a d s [ 1 ] = a v e n r u n [ 1 ] $ < $ < ( S I J.OADZHIFT FSHIFT) ;
val.loads[2] = avenrun[2] $<$< (SILOADBHIFT FSHIFT) ;
v al. p r oc s = n r t h r e a d s - 1 ;
s ti ( ) ;
simeminf o(&val ) ;
siwwapinf o(&val) ;
etc.

Si quisiramos imprimir el archivo /us r / s r c / l i n u x / k e r n e l / in f o . c, tendramos que en


tubar la salida de pr co la entrada de la orden utilizada para imprinm, t al y c omo se

muestra acontinuacin:

130

CA P T U LO 5. E X P RESIONES REGULARES Y FILTROS

$ pr /usr/src/linux/kernel/info.c I lp
request id is prn1-134 (standard input)

$
La orden pr admite muchas opciones; algunas de las ms comunes son:
-h (h ender). Con esta opcin podemos poner la cabecera que nosotros deseemos. Dicha
cabecera debe ir entre comillas dobles y a continuacin de la opcin -h. Si la frase

se compone solamente deuna palabra, no sern necesarias estas comillas.


Ejemplo:
$ pr -h Listado del programa /usr/src/linux/kernel/info.c I lp
request id is chsnCamon+899

$
-t

pr el i m i na la cabecera y la cola.

-k Con esta opcin, pr produce una salida de k columnas.

Ejemplo:
$ ls I

pr -3 -t

N skefi l e
a cct. c
capability.c
c ontext . c
dma.c
exec Momain. c
e xit . c
f or k . c
i nf o . c

i timer . c
kmod.c
ksyms.c
module.c
p anic . c
pm.c
p ri n t k . c
p tra c e . c
r esource . c

sched.c
s ignsl . c
s oft i r q , c

sys.c
s ysct l . c
ti me.c
t imer . c
uid16.C
user.c

-d Produce una salida a doble espacio,


-wN Establece la anchura de una lnea en N caracteres.

5.2.1.

La o r d e n f i n d

Sintaxis: find camino expresin


La orden f ind es una de las ms potentes de UNIX , pero t ambin una de las que
tienen una sintaxis ms compleja. Hemos puesto a f ind en un punto aparte porque no es
un filtro. Esta orden se utiliza para examinar toda la estructura de directorios, o bien la
parte que le indiquemos, buscando los archivos que cumplan los criterios sealados en la
lnea de rdenes. Una vez localizados, podemos hacer que ejecute distintas acciones sobre

Q(' RA-MA

,~.2. OTROS FILTROS

1 3l

ellos. El campo expres i 6n sirve para indicar los criterios dc seleccin de los archivos y la
accin que queremos aplicarles al ettcnntrarlos.
Vea<nos con un ejemplo c<>tno podernos buscar un determinado archivo dentro de la
estructura de directorios.
Ej<'ll>plo:
$ find / - name i f c o n f i g
find: /lost+found: Permission denied
find: /root/.ssh: Permission denied
find: /root/.gnupg: Permission denied
find: /etc/ppp/peers: Permission denied
find: /etc/chatscripts: Permission denied
find: /var/lib/iptables: Permission denied
find: /var/lib/mysql/CCascar: Permission denied
find; /var/log/exim: Permission denied
find: /var/log/samba: Permission denied
find: /var/log/mysql: Permission denied
find: /var/spool/exim: Permissi.on denied
find: /var/spool/cron/atjobs: Permission denied
find: /var/spool/cron/atspool: Permi.ssion denied
find: /home/oscar/.ssh: Permission deni,ed
find: /mnt/data/lost+found: Permission denied
/sbin/ifconfig

$
Cotnn la orden anterior ha sido invocada por un usuario ordinario. f ind no puede acceder
a deter>ninadas partes del sistema de archivos porque carece de los privilegios necesarios.
Pnr este tnntivn se notifica al >tsuario este hecho a traves del canal estndar de salida de
error<s stderr y a p arecen las lneas de inforn>aci<>n cnn la ca<iet>a -Per>niso denegado".
Si qtteren>ns que esas lt>eas t>n aparezc u>. sin>plemente tendremos que redireccionar
la salida estndar de error a otro archivo que no sea la c<>nsola. Si nos interesa saber a
p osteriori lns sitins donde no se ha podido entrar. pn<lretnos redirec<ionar stder r a u n
archivo or<liario del n>odo siguiente:
$ find / -name ifconfig 2> errores
Otra opcin que poden>os en>picar si t>o nos interesan Ios n>ensajes de error y no queretnos
q ue aparez< an por pantalla es redireccionar la salida de error al <lispositivo /dev/ n u l l .
$ find / -name ifconfig 2> /dev/null
La opcin -name indica a f ind que u>icatnente se }>usquen lns archivos cuyo t>nn>bre se
especifica a continuacin, y la opcin - p r i n t i n d ica a f in d que visualice el nombre del
archivo por pantalla una vez hallarlo (en tnuchos sist<unas el tt>ndifica<lor -pri n t s e t<>n>a
conu> valor por defc<to}.
Existen tnuchas tns opciones para, f ind:
-user Con esta opcin.find seleccint>ar k>s archivos que pertenezcan al usuario que se
f hdique a <ontinuacin de -user .

[IA-i t A

EL EDITOH DF FL1>.JO SED

'l'ai)>[)ir> [>o<l( riios ii>(firar a f i n d

133

q < e je< i>t< iir> i onl(i i <l< t< rriiirl > y l;i ap l i(fe > l(

;)n hivos <[ii< eri<etre. P >r;i ('or>stri>ir 1<>n[< q> q >i< re><>s ('j< (t >r cii <"ul i r ( l>iv<>
q>i(' (rici>etn f i n d ( . Oi>taros (ori li i ex p i<esi<n ( j q> i< s< sstit i i ye p o r ( l ii < >ii>l>r<([cf
n l i iv<> eioritr<lo. D< h< Ii><)s a<l< riits <ui< liiir l>i or<l( <ori el <",ir;cter ; . l l y q u < t c er.
< < ueiita qe ria fi<>s it('rpn tcs (le <>nlei>es bash p<>r ejnpfof < osi<ler>(i> a ; < oio ii>i
cr u t< r < sp< ( i il. [a)r l<> t i>t<) s( r >>esari<> Polo< r i>iia s( ( ire< i i (1<' Ps( p<' p (Ir < vit r
(ll('lla i t ( ' r J )I('t>i('i(>. Ps (fe('' i '

ll>ros >i por><-r s<g>ii<f >rer>t(i)<)s ejerpl(>s (les<>s tpi(os (le f i n d . 1 ii < l pr iiero
er><oiitr >ren>os to(los los are[>ivs q<. ceffoiei> (1(' /usr / b i n q i r e sea ei>fr'('s simhnfi<'(>s
>i <>ti <).i alre[ilvo i, l lcieI><l<> q(' la iriforiaciri pr(s<. r>t (>(f;> <ii p;iiitalla sea (le l;> f(>rrria:

Archivo: [nombre~rchivo] es enlace simb61ico


P;ira < oi>stririr (se l it( r>(f p<><l(-ir>os eiiiplear l;i o n l eii e ch o (l r l ;> si> i>ier>te foriii;i:

echo Archivo: (j es enlace simblico


As. l'i onle f i n d < oiiipl< ta s< ra:

$ find /usr/bin -type l -exec echo Archivo: j) es enlace simblico i;


Archivo: /usr/bin/Xii es enlace simblico
Archivo: /usr/bin/sg es enlace simblico
Archivo: /usr/bin/captoinfo es enlace simb6lico
Archivo: /usr/bin/infotocap es enlace simb61ico
Archivo: /usr/bin/reset es enlace simblico
Archivo: /usr/bin/a>rk es enlace simb61ico

E>1 i>I> s('g<ll>(l(> ('[P>ripio 1)< )r'l'>ll <' > os (l(' I l> iest l'< ) < l l > ('('1 OI
io HOME l < )( los los a>'('l >>vos q>l('
1>ay >ri si<l(> ii><>(lifie ><los (ri fos ilt iri><>s (los <las y ciiyo iioil>r(' t < irriitu e . tm p. Par'i ello
(1('I)('l'>( >s e>pipa>' ur> < )nl('1> <'olo Isi>>,r('l>t (':

$ find $HQME -mtime -2 -name +.tmp -exec rm

5 .3.

E l e d i t o r d e fl u j o s e d

se4 ~
S int a x i s :

~ r>>
s e d [ - f f or d]

[ -n]

j ar ch i v o ( s ) ]

L i lierr'>ri(iit>i sed ( s e <lit(>r <le flirjo (s t r r tv>((///r.) >>ti[iza<[o pr i ma n i p1;>r


an 1>ivs <l<' text <), sed copi > los an.l ii v<>s es[)(cifca<los ([>or <1<..fecto, < I I elvo cst (l>ir (l(
( Ilt ><fa) el> I>l I>ill(la es[ >(f1 (Ie i[)ir(ts ([P [ o( Psi(11()s, l' st (' 'f)lo( f sa1>P>lto <1(' 1<)s ?<r( ll>vos

l8 4

CA P I T U L O 5, E X PRESIONES REGULARES Y FILTROS

Qe RA-MA

de entrada se lleva a cabo lnea por lnea, acorde con las rdenes dadas a sed. Hay que
destacar que sed no modifica los archivos de entrada. Sus resultados se envan a la salida
estndar sin afectar a los archivos originale , La s rdenes que procesa sed pueden ser
aportadas explcitamente desde la lnea de rdenes, o bien stas pueden residir en un
archivo. En este ltimo caso, debemos emplear la opcin -f y a c o ntinuacin el nombre
del archivo de rdenes. La opcin -n ser empleada siempre que deseemos evitar la, salida
por pantalla de la lnea que est siendo procesada (por defecto, sed visualiza las lneas

que procesa).
El aspecto general de las rdenes de sed es el siguiente:
1:direcci n

[ , d i r e c c i n ] ] f un c i n [ a r g umentoa]

En stas se indica la direccin (nmero de lnea) o rango de direcciones a las cuales se


debe aplicar la funcion indicada con sus posibles argumentos. A la hora de especificar los
campos de direccin es posible emplear varios formatos:
nada el filtrado se aplica a todas las lneas del documento.
nmero el filtrado se aplica nicamente a la lnea especificada con nmero.

$ denota la ltima lnea.


expr el filt rado se aplica a las lneas que concuerden con la expresin regular dada.
Las rdenes ms comunes que sepueden utilizar con sed son las siguientes:

p mostrarla lnea que se est procesando.


d eliminar la lnea que se est procesando.
s sustituir aquello que concuerde con un patrn por una cadeua. La sintaxis para utilizar
esta orden es:
ejexprRegjcadenajmodificadores

exprReg es una expresin regular.


cadena la cadena de texto a colocar como sustitucin.
modif icadores que alteran el comportamiento de la sustitucin.
A partir de ahora, vamos a ver diferentes ejemplos que ilustren los usos ms comunes de
este filtro. En todos ellos vamos a trabajar con un archivo de texto denominado f pr u e ba,
cuyo contenido es el siguiente:
$ cat f p r u e b a
A rchivo d e p r u eba p a r a
p rocesar a r c h i v o s d e
texto con el magnifico
editor de flujo sed.

Pc RA-MA

5 .3. EL EDITOR DE FLUJO SED l 3 5

En el primer ejemplo, vamos a imprimir por pantalla la lnea nmero 3 del archivo especi
ficado. Para ello, emplearemos la funcin p {print) e indicaremos que deseamos procesar
la lnea 3. Con todo ello, la orden quedar como sigue:
$ sed 3p f p r u e b a
A rchivo d e p r u eba p a r a
p rocesar a r c h i v o s d e
texto con el magnifico
texto con el magnifico
editor de flujo sed.

$
Como vemos, sed imprime las lneas del archivo, y la nmero 3 sale duplicada, por ser la
lnea que indicamos a sed que sea procesada (impresa en pantalla). Si ahora eliminamos
la salida normal con la opcin -n, conseguiremos visualizar nicamente la lnea indicada
(en este caso, la nmero 3).
$ sed - n 3 p f p r u e b a
texto con el magnifico

$
Veainos otro ejemplo, en el cual seleccionamos un rango de direcciones e imprimimos

las lneas implicadas, En el ejemplo se imprime desde la lnea 2 hasta la 3 del archivo
especificado.
$ aed - n 2 , 3 p f p r u e b a
p rocesar a r c h i v o s d e
texto con el magnifico

$
Los rangos de direcciones, o las direcciones, pueden ser tambin especificados en forma
de expresiones regulares. As pues, se podra imprimir desde la primera lnea que comien
za con un determinado carcter hasta que seencuentre una lnea que est en blanco o
cosa similar. Veamos un ejemplo, en el cual se imprime la lnea que responde al patrn
especificado (comenzar con el carcter A mayscula).
$ sed - n / " A / p f p r u e b a
A rchivo d e p r u eb a p a r a

$
En el ejemplo anterior se visualizaran todas las lneas que comienzan con el carcter A
mayscula. Si hubiese varias lneas, todas ellas habran sido mostradas. Tambin podemos
especificar en forma de expresiones regulares un rango de direcciones. Por ejemplo, se
puede imprimir desde el nmero de lnea que comienza con una t h a sta la lt ima lnea
del archivo. La l t i ma lnea del archivo se representa con el carcter $. Ahora debemos
colocar la orden que debe interpretar sed entre comillas simples. para que el shell no
interprete los caracteres especiales, En caso de duda es bueno poner siempre las rdenes
entre comillas simples, as evitaremos posibles problemas.

l36

CA P T U L O 5. E X P RESIONES REGULARES Y FILTROS

$ sed -n '/"t/,$p' f prueba


texto con el magnifico
editor de flujo sed.

$
El filtro sed p uede ser empleado tambin para realizar sustituciones. Por ejemplo, si
deseamos cambiar la palabra pr ocesar p o r l a p a labra manipula r e n t o d o el archivo,
tendremos que emplear la orden siguiente:
$ sed 's/procesar/manipular/g' f prueba
A rchivo d e p r u eba p a r a
manipular archivos de
texto con el magnifico
editor de flujo sed.

$
El carcter s i n dica que deseamos realizar una sustitucin, Seguidamente se coloca la
palabra que se modifica y a continuacin la palabra nueva. Al final colocamos una g para
indicar que las sustituciones se apliquen a todo el documento.
Pueden ser curiosos los resultados de las sustituciones; en el ejemplo siguiente susti
tuimos los espacios en blanco por el carcter nulo (nada).

$ sed s/ //g' f prueba


Archivodepruebapara
p rocesarar c h i v o s d e
textoconelmagnifico
editordeflujosed,

$
Para eliminar desde la lnea l a la 3 del archivo.
$ sed ' 1 , 3 d ' f p r u e b a
editor de flujo sed.

$
Para eliminar las lneas cuyo primer carcter est comprendido entre las letras a y q.

$ sed '/"[a-q]/d' f prueba


A xchivo d e p r u eba p a r a
texto con el magnifico

$
Para sustituir las vocales minsculas por sus equivalentes en mayscula emplearnos la
orden y utilizada para traducir caracteres.

$ sed 'y/[aeiou]/[AEIOU]/' f~rueba


Archivo d E p r UEbA pArA
prOcEsAr Ar c h I vOs dE
tExtO cOn El mAgnlflcO
EdIt0x dE flUjO sEd.

RA-XtA

: ). l. l ' L L f ' .")f(;I A.lj'. ()f: l ' f ( ( l ( ' E ,')Af(fff',X l'O AWK 1 3 7

Al>ora pr<<'san i<)s < l )ii rliiv<> f pr u e b a i i t i l i z a <l<)ii ;>r<ii>v() ('<) ()I <I('! >(s (((' (l(<)ll
lial<>s ord. El i t < iii(l<>(1< ord (s ( l s ig i< >itc:

$ cat o r d

s/a/XXX/g

AI iii<Ii< arle a sed <fe i>tili < ti

; i r< liiv(> <Iir<l< is l>ara llr<>s ir <)> n>s unliiv(>s. < ii

< (l< l' ("ll >i<t <t' <(P )ll>al V/("i < ( st(>s >lt l)()s s( I >i si>s> >t l ii<l<) l >< >rt r( s (ll>s XXX

l R)S(l )i.

<'<vil>)sl() ' )II III) <'f('ll>f)l()',

$ sed - f o rd f p r u e b a
Archivo d e p r u e bXXX pXXXrXXX
p rocesXXXr XXXrchi vos d e
t ext o c o n e l > l>XXXgnif i c o
editor de flujo sed.
$

5.4.

E l l e 1 1guaj e d e p r o c e s a n 1ie11to awk

awk
S int a x i s :

--

a w k [ o p ] [ - Ff s]
a wk [ op ] [ - Ff s]

or d [ - v v ar = v a l ] ar ch i vo ( s )
- f f or d [ - v var =v a l ] a r chi vo ( s )

I.;i pri r ; > v< ri<>ii <Ic awk p;ii'>i L'."XIX t< dfs< il)> (' it>if>1<'i< i>t l'> l>r Alft'' l Al><).
l i > l%<'l'lgl>all s>g>l<il

V< I el' M ( ll>l)('I g( l' v H i l a l> l%< I l} ll. <1(' B<'II Ll>l)s : l I iE' I I ) l

t i lll))i l'lll(l<) <' ('ll<i <' l'll )<)r<'s (1<' l<it(' ( ' l l t () }' I ( ' f<)l'>i, I:I j ) l <)f)l() ( > il>n . awk. el< riv)>

(l( 1>s i)ii( i l i c < (1(' 1<)s ll( s ) l l ) ( I i i <l<)s <I<' 1<)s at<)n. >>< t iilli< i>tx i t < v i r > )s v< rsi()li< s
<lc ('t< pr<)gr;ii;i. le<>s<)rn)s<>s v;it>><>s )i r< f('rir < Il < ()< r( t<) a I;> v('r< (lc l>i Fr ~e Sijf/

un ' /<><IInli > f V lF), l) r . ' l ' l ; i> i .' < i i l pl I i v . )> 1i ..
ll('ll<'s.

>( ) >ti( l (

I> I i .' v< lsl ii .

( ()ll ) f ) ( l (' i()s () l)s('I v>(>'. f<'>'l()s ( 1()s ll) (1<)s (llf('l('I>1<'s <1<' lliv()('<' (ll l ) I < )gl".I>. L

<'l f )I l('l' l()<1<) Ip < l><)s ll>s ()I (I<'(s (1< s(1(' 1>i l)l <)j)l l ('>i (lc (> (I<'<~s,v <' <'l s(g( l<)

(<)p< o f). 1( <sj> ifi< ;ll<)s ii )in l>iv<) (li1< ~ < > Iitraii I is <<1(<s <lia w k t i t
( f(' (' f('('>I f >'. Es> (' s('p( l<))< lo ( s ll)>i ('() >< 1< )si < I )ti j ii>i) < > 1><t ;i l < l<' ()r< I< i)<'s < s >iif)li(>.

awk p>tl tr;il>)>j;ir >ti v) <>s ;ir< llivs ;>i> t i<if><>. ><) s( lc < sp iti< ;i iiig>iii ir< l)iv<).
awk 1 r>i < >i l i < >itr>la <'st ><1;>r. awk 1>i <)< cs>i l<)s ;ir( Iii v<)s ( sf)( ( ihr>i(1<)s li(tu p<)1 le)i.
i < ;l)i lii( i s<- l;i < (iif);ira l l a t n>ti.v si < (>i< i<l< . < llevaii ;i < l)() s(ll)r( ( l l a I ; i s
a('('><)II('s (file lll(ll<ll>('ll)s.

awk ( l l i >itc 1s s i gt>i< iit< s <)f)< i<>ii< s. I ls ( i> il(s < Icf ti < s t ; >r <iip(>il)l< s ct> ( ii l l((iii(r
v('l's>( l (1('I f ) l'()gl'>l l >i.l>

-Fs

C ( ) e s t;> op('I<) <lic<>ie1()s (((' cl s('p>ii(l()r <I<' (<llp()s (s < l ('~>re('tr s . j ,"st<) <'s
lii iis>i><> <(< <tiv;ii

I; > ) a r i ) i l>le pi l e f i >i<l FS. l ' ( >r <l<f<(t<i. 1(>sscf);ii<l()r(s <Ic

l8 8

CA P f T U L O 5. E X PRESIONES REGULARES Y FILTROS

RA-MA

campos utilizados por awk son los espacios en blanco y los tabuladores. Cada uno
de loscampos de una lnea del archivo que se procesa puede ser referenciado por las
variables $1, $2, ..., $NF. La variable NF indica el nmero de campos de la lnea que

se est proced o

( n umberof peds). La variable $0 se refiere a la lnea completa.

-v var v a l A s i gna el valor val a l a variable var antes de que se comience la ejecucin
del programa, Esta asignacin de variables tambin se puede llevar a cabo en el
bloque BEGIN de un programa awk.
-f f ordenes awk leerlas rdenes en el archivo f ordenes.
Las rdenes de awk,como indicamos previament,e,son secuencias de patrones y acciones;

patrn (accin)
Tanto el patrn como la accin son opcionales. Si falta el patrn, la accin o procedimiento
se aplicar a todas las lneas. Si falta la accin, simplemente se visualizar la lnea.

Vamos a ver un primer ejemplo de uso de awk. Para ello, vamos a procesar lo que la
orden date enva a la pantalla, que es algo como lo siguiente:
$ date
dom jun 2 0 2 0 : 0 7 : 0 0 CEST 2004

$
Lo nico que vamos a hacer es visualizar los campos primero (da), segundo (mes) y sexto

(ao), La forma de hacerlo es la siguiente:


$ date j awk '(print $i; print $2; print $6)'
dom
jun
2004

Seguidamente vamos a visualizar las lneas del archivo / e t c / p a sswd que comienzan con
el carcter d."

$ awk '/"d/' /etc/passwd


desktop:x:80:80:desktop:/var/lib/menu/kde:/sbin/nologin
dbus:x:8i:81:System message bus:/:/sbin/nologin

$
Como no hemos especificado ninguna opcin, awk simplemente visualiza la l nea que
cumple el patrn que hemos indicado. El patrn anterior es una expresin regular, pero,
como veremos en el punto siguiente, awk permite utilizar otros tipos de patrones.

RA-MA

5.4.1.

5 .4. EL LENGUAJE DE PROCESAhflENTO AWK 13 9

P a t r o n e s de awk

Los patrones que avk reconoce pueden sercualesquiera de Ios siguientes:


e BEGIN

END

/expresionesregulares/
expresiones relacionales.
expresiones de coincidencia de patrones.
BEGIN y END son dos tipos de patrones especiales. El patr<in BEGIN permite especificar una
serie de procedimientos que se ejecutarn antes de que ninguna lnea de ningn archivo
sea procesada, Generalmente, con este patrn se declaran las variables globales, El patrn
END permite especificar los procediinientos que no quereinos que se ejecuten hasta que se
terminen de procesar todas y cada una de las lneas de un archivo.
Para los patrones /expres i o nes r e g u l a r e s / , la accin se ejecuta para cada lnea que
verifica la expresin regular. Estas expresiones regulares son las mismas que hemos visto
anteriormente.
Las expresiones relacionales pueden utilizar cualesquiera de los operadores que defini
remos ms tarde en el punto dedicado a ellos. Estos operadores se emplean para comprobar
si algn campo verifica alguna condicin. Por ejemplo, NF >2 selecciona las lneas en las
que el nmero de campos es mayor que dos.
Las expresiones de coincidencia de patrones utilizan los operadores
(c o i n c ide) y
! ( n o coincide) para determinar si se lleva o no a cabo la accin.
Excepto para los patrones BEGIN y END. todos los patrones pueden ser combinados
con operadores de Boole. Estos operadores son el AND lgico. kk, el OR lgico, I I, y el NOT
lgico. ! .
Gon objeto de aclarar los conceptos mostrados, vamos a poner unos ejemplos de uso
de patrones. En el primer ejemplo vamos a introducir todas las rdenes dirigidas a a@k
en un archivo, y a continuacin lo procesaremos. El contenido del archivo es el siguiente:
$ cat f a v k
! Inicializacibn (se ejecuta al comenzar)
BEGIN { FS = : ; x = 0
! Si la 1inea comienza con P, se visualiza el primer campo

/ P/ {

print $1 }

! Si el nmero de campos es mayor que tres


! visualizamos el campo cuatro

NF > 3 { print

$4 }

! Si el cuarto campo es mayor que 10, incrementamos x

$4 > 10 { x++ }
! Finalizacibn (se ejecuta al finalizar)

E ND {print x
$

140

t . ' APTI'LO5. E XP RESIONES REGI'LARES Y j)ILTIIOS

Qc RA-hfA

Todas las lneas quc comicr>za por cl <;>r>ctcr ! ser>> ignoradas por awk cr> cl procesa
ricnto. As p>res, pod(><>s nr>picar este carcter cou>o ir>icio dc ur><> lnea de comentarios.
E el caso Anterior los con>eutarios son explicativos de Io que hac< cada lnea. El archivo
Ant(.rior no ticn( ningna utilidad. se ha (rpicado con ( l >Ir>ico objeto dc u>ostrar cl uso
dc patrones,
A IA hora (k procesar < ste Archivo. debernos <..mplear la siguiete sir>taxis:
$ awk -f f

aw k archivo(s)

Vean>os otro cj('n>j)lo clpicado p>A visualizar los <lircctol >os ("uyoolI3>c col>(r>ZB, co
letra n>ayf>scula. Er> cl ej< rph) prin>ero tn>cros que seleccionar las lr>cas quc visualiza
ls - 1 qn e con>iczan < o el car(t( r d (dirc< torios), y cuyo carr>po noveno (nombre <lcl
archivo) corr>icnce con letra rr>ay>s('ula; Para ("sj)ccificar Bn>hascondiciones, emplearemos
cl oj)cl'A(ior ll<k (ASID lg>('0).

$1s -l /usr I awk '$1 / d/ kk $9 /[A-Z]/'


drwxr- x r - x

r oot ,

r oot

4 096 abr 3 2 1 : 3 2 X 1 1R6

Scg>n se pede apreciar. estaros npicando ta>l>in ('vpr(sioes de coicidencia dc p(l;


tr<>nes. La pri>>>cra expresin i<li<'.a si $1 coiucidc con el patr<>r> especificado por la expre
si regular / "d/ . LA segr>da expresin idica si $9 < oir>cide co el patrr> especificado
p or la expresin regul u' / [ A -Z] / ,
La forn>A quc tiene awk dc cjecutr<r los programas cs la siguiente. Prin>cro. awk c<>>pila
("1 progran>B v gcl>c>a I> forl<>to >l>tcr'r>o. A (.'01>t>uac>I>, sc realiz(u> las asignacior>es
<spccificr>(ias por medio dc la opci)r> -v. Seguida>ente, awk ejecuta cl cdigo iucluido en
el bloque BEGIN, si es que existe tal hloqu<. Despus. se procesa lca por lr>ea el Archivo
o k>s archivos especifi(Actos n> la lnea de <dees. Si r>o lc espc<ifican><>singur>o. awk
leer cl> Ia ( r>t>adA, ( stda>. UI>A v(z pro((<s>>das tod>s las Il><as. se cjf ( f A cl c(i>go
incluido er> el hl<)<Ie END, si cs que existe.

5.4.2.

Op e r a d o resempleados en awk

YB h<n>os indi<A>do pr<"viarcte q( co awk podeA>s npicar distintos operadores.


Estos sol> los qp se lr>d>c>u> scgu>darc>>le:
+= + =

/ = '/ =

(varia bl e

= O p e r ad<)r(!s dc Asignci. Se admite tanto la asignacin ahsoh>ta

= v a l o r ) c onu) IB (p>eutiliza un opera(h)r (el resto dc k)s mo(ios). Como

ejemplo del prin>cr tipo de Bsignac>. podnos poner cl siguiente:


d atos = d a t o s + $ 2

Esto po(ira haberse hecho dc >u>A foru> ms compacta usando el operador +=, tal
y colo se rru>cstra a ('.0tlnacin.'
d atos + =

$2

RA-MA

5,4. EL LENGUAJE DE PROCESAMIENTO A@K l 4 1

Este segundo caso es idntico al primero en cuanto a funcionalidad se refiere, pero es


ms compacto. Los operadores +. . ~. /,% y s i g nifican suma. resta. nuiltiplicacin.
divisin, resto de la d>v>s>n entera y exponenciackn, respectiv&1nente.
? Es igual a la expresin condicional empleada en el lengua!e C. Su formato es el siguiente:
e xpri ?

e x pr2 : e x p r 3

Esto del>e entenderse como sigue: si expr 1 es ciertr>. el valor de la expresin es


expr2: de otro modo, serexpr3. Slo se evala expr2 o expr3.
OR lgico.
&& AND lgico.
! C o i n cidencia y uo coincidencia de expresiones regulares,
! = == Operadores relacionales.

blanco Concatenacin <lecadenas.


+ Suma v resta.
+ / % l l u l t i p l icacin, divisin y tnrkhllo (resto de ia tlivisin entera).
+ ! Kls unario, menos unario y negacin lgica.
Exponenciacin.
++ i n c remento y decremento. tanto en forma de prefijo como de sufijo.
$ Referencia a campo.
Veamos algunos ejemplos con estos operadores:
5.4.2.1.

C l c u l o del t a m ah o m e dio de los archivos de un d i r ectorio

Para realizar esta operacin introducirernos a nuestro filtro awk el resultado de la


orden l s - l , E l a r c hivo de >rtlenes awk lo denon>inareu>os tamano y su contenido es el
siguiente:
BEGIN f Tamano = 0;

/ . [-r ] /
Tamano = Tamano + $5
p rin t " P r o c e sado pr o c esado " $ 9 "
Acumulado= " T amano;

END ( print "Tamao medio " Tamano/NR; }

N R " Tamario= " $ 5

142

C A P T ULO 5, E X PRESIONES REGULARES Y FILTROS

RA-MA

Si tenemos un directorio tmp con los archivos siguientes:


$ ls - 1 t mp
t ota l 3 2
- rw-r w-r
1
- rw-rw-r
1
- rw-r w-r
1

chan
chan
chan

i gx
i gx
i gx

7 039 j un 2 0 2 0 : 3 0 1 u n o
159 0 3 j u n 2 0 2 0 : 3 0 2 > o s
5074 j un 2 0 2 0 : 3 0 3 t r e s

al procesar el directorio indicado, obtendremos el siguiente resultado:


$ ls -1 tmp lawk -f
Archivo procesado
- rw-rw-r
1 ch an
Archivo procesado 1
- rw-r w-r
1 ch an
Archivo procesado 2
- rw-r w-r 1 ch an
A rchivo procesado 3
Tamao medio 7004

tamano
1 Tamao~ Acumulado~ 0
i gx
703 9 j un 2 0 2 0 : 3 0 1 u n o
uno 2 Tamao= 7039 Acumulado= 7039
i gx 159 0 3 j u n 2 0 2 0 : 3 0 2 % o s
dos 3 Tamao~ 15903 Acumulado~ 22942
i gx
507 4 j un 2 0 2 0 : 3 0 3 t r e s
tres 4 Tamao 5074 Acumulado 2 8 0 16

5.4.3. Matrices con a@k


awk nos permite trabajar con matrices. Si a la matriz la denominamos datos, la forma
de referenciar cada uno de los elementos consistir en utilizar el nombre de la matriz y
a continuacin, entre corchetes, el nmero de elemento. De este modo, datos [341 es el
elemento nmero 34 de la matriz. Vamos a poner un ejemplo en el que almacenemos el
campo nmero nueve de cada linea del archivo de entrada en una matriz a. Fara finalizar,
visualizaremos toda la matriz. El programa que debemos emplear es el siguiente:
$ cat matriz
S Almacena el campo nueve en una matriz
S Visualiza la matriz

{ a[NR] = $9
END ( fo r

(i = 1 ; i < NR; i ++ ) p r i n t a [ i ] )

La forma de invocarlo ser la indicada a continuacin:


$ awk -f matriz archivo(s)
En el programa anterior hemos utilizado un bucle f or. En un punto posterior menciona
remos de forma ampliada las sentencias de control de flujo y las funciones que podemos
emplear con awk,

RA-MA

5 .4.3.1.

5.4. EL LENGUAJE DE PROCESAMIENTO AWK 143

M at r i c e s a s o c i a t i vas con a w k

Las matrices de awk, a diferencia de las proporcionadas por otros lenguajes de progra
macin, son asociativas. Esto significa que el elemento que utilizamos como ndice no tiene
por qu ser numrico, sino que puede ser de cualquier otro t,ipo. Pongamos el siguiente

ejemplo:
BEGIN (
Animales["perro"] =3;
Animales["gato"] 8;
print Animales["perro"]
print Animales["gato"]

El resultado de la ejecucin del programa anterior sera la visualizacin de los nmeros 3


y 8, actuando como ndices dentro de la matriz dos cadenas de caracteres.

5.4.4.

V a r i a b l es m a nt en idas por awk

En algn ejemplo anterior ya hemos utilizado algunas de estas variables, por ejemplo
NF, FS, $0. etc. A continuacin vamos a dar un listado ms completo de estas variables

(no se incluyen todas).


FILENAME Es el nombre del archivo que est siendo procesado. Si no se ha especificado
ningn archivo desde la lnea de rdenes, el valor de esta variable ser (entrada
estndar).
FNR Es el nmero de lnea del archivo que est siendo procesado.

FS Indica cul es el carcter separador de campos (por defecto. es el espacio en blanco).


NF Es el nmero de campos presentes en la lnea que est siendo procesada.
NR Indica el nmero total de lneas que han sido procesadas.
OFS Es el separador de campos para la salida. Por defecto, es el espacio en blanco.
ORS Es el separador de lneas de salida. Por defecto, es el carcter de nueva lnea,
RS Es el separador de lneas de entrada. Por defecto, es el carcter de nueva lnea.
$0 Representa la lnea que se est procesando.

$n Representael campo n de la lnea que se est procesando.

5 .4.5.

S e n t e n c ias de cont ro l d e fl u j o

awk es un autntico lenguaje de programacin, y como tal es capaz de trabajar con


sentencias de control de Hujo. Este tipo de sentencias vamos a describirlas a continuacin.

144

CAP I T U LO 5. E X P RESIONES REGULARES Y FILTROS

RA-MA

Ejecucin condicional con i f


if (condicin) orden

[else]
[orden]
Si la condicin que se evala es cierta, se ejecutar la orden u rdenes colocadas despus
del if . Si la condicin no es cierta, se ejecutarn las colocadas despus del else (si es que

existe). La condicin puede ser cualquier expresin que utilice operadores relacionales,
ascomo operadores de correspondencia de patrones, Si se deben ejecutar varias rdenes,
tanto despus del if como despus del else, stas debern ser colocadas entre llaves.
B ucles con whi l e
w hile ( c o n d i c i n )
orden

Si se verifica la condicin, se ejecutar la orden. Las posibles condiciones son las indicadas
anteriormente al hablar de if . Si se deben ejecutar varias rdenes dentro del bucle, stas
debern ir entre llaves.

Bucles con do
do
orden
while (condicin)
En este caso se ejecuta la orden indicada dentro del cuerpo do whi l e . S i al evaluar la
condicin sta severifi
ca, se volver a ejecutar la orden. En el caso de que queramos
ejecutar varias rdenes en el cuerpo del bucle, stas debern ir entre llaves.
Buclee con for
Esta orden tiene dos modos de operar. La sintaxis del primer modo es la siguiente:
f or ( i ~ m in i m o ; i < m x i mo ; i + + )
orden

En este caso, mientras el valor de la variable i est comprendido entre mnimo y mximo,
se ejecutala orden indicada. En el caso de especificar varias rdenes, stas deben irentre
llaves. Para la condicin de finalizacin del bucle (i

< mximo), se pueden emplear otros

operadores relacionales. En el campo de progreso del bucle (i++) se pueden emplear ++


y , tanto en forma pre como post.
El segundo modo se muestra a continuacin:
for (elemento in matriz)
orden
En este caso. para cada elemento de la matriz se ejecuta la orden indicada. En caso de
especificar v irias rdees. stas deben ir entre llaves. Para referirnos a cada elemento de
la matriz utilizaremos la expresin matri z [ e l emento] , donde elemento es el nmero de
i4em dentro de la m u riz.

EL LENGUAJE DE PROCESAMIENTO AWK 1 4 5

RA-MA

Ruptura de b u cles con bre ak


Esta sentencia se emplea para salir de un hu< le while o f or. Con ella podernos evitar
iteraciones n> caso de detectar qe un bucle nn tiene sentido qu< contine su repeticin.
Forzar la evaluacin de la condicin de un bucle con continue
Esta scntrncia nos p< rmite pasar a procesar la siguiente iteracin dentro de un bucle
while n f o r . saltando todas las posibles rdenes post.erinrers dent,ro del bucle.
F inalizar la ejecucin con exi t
Con esta sentencia se dejan de ejecutar instrucciones y no se pro< esan n>s archivas.
S lo se ejecutar>> los I>ro<edi>nientos indicarlos en el patrn END. As pues. exi t s i r v e
para finalizar el procesamiento de archivos por parte de awk.

5.4.6.

O r d e n e s de ent r a d a-salida

p ri n t
Sintaxis: print [argumentos] [destino]
('o esta orden poden>os imprimir los argun>entos especificado et> la salida. Los ar
gmentos son norn>almente campos. aunque tan>bin pueden scr cuales<luiera <ie las va
riables de awk. Para visualizar cadenas literales, debemos ponerlas entre dobles comillas.
Si los argmcntos de pr i n t s o n separados por cnms, en la salida sern separados por
el carcter indicado en la variable OFS. Si los argun>untos son separados por espacios en
blanco. la salida ser la concatenacin de los argun>entns. El parmetro destino puede ser
<lna expresin de redircc<o etuhan>ieto. De este >no<lo. poden>os redirigir la salida
por defecto.

~ r >rnt f
Sintaxis: printf [formato [, expresion(es)]]
Esta orden set i l iza para visualizar con for>nato las expresiones que le indiquemos.
Su sintaxis es muy similar a la empleada en la funcin pr i n t f < l <scrita en el lenguaje
C, Esta orden t<unhin es < apaz de interpretar secuencias dc escape como el carcter de
nueva la< a $n o el tahula<h>r $t. Los rspacios y <.l texto literal qc deseamos visualizar
deben ir entre cotnillas dohl< s. Por ca<la expresin que deseamos visualizar, dehexistir
su correspnn<liente formato. Los formatos ms <omunc son lns siguientes:
%s Una cadena <lcaracter<~.
%d Un>mero decin>al.
%n.>f Ln n>ero cn co>na llotante con n <lgitns enteros y m <lecimales.

CAP T U LO 5. E X P RESIONES REGULARES Y FILTROS

146

Qc RA-MA

'/o Un nmero en octal sin signo.

/u Un nmero hexadecimal sin signo.


P ara aclarar conceptos. veamos un ejemplo del uso de pri n t f .

$ date l awk fprint f

( A f to'/d. (nEn hexadecimal: /~ ) n , $6,$6) }

Aho 2001.
En hexadecimal: 7di

$
5.4.7.

F u n c i ones numricas

atan2(y,

x) De v u e lve el valor de la arcotangente de y/x en radianes.

cos(x) D e v uelve el coseno de x en radianes.

exp(x) Funcin exponencial.


int ( x )

T r u n ca el nmero x a un entero.

log(x )

D e v uelve el logaritmo neperiano dex,

rand() Devuelve un nmero aleatorio comprendido entre 0 y I.


sin(x )

D e v uelve el seno dex en radianes.

sqrt(x) D evuelve la raz cuadrada de x.


srand(x) Permite utilizar el nmero x como nueva semilla para la generacin de nmeros
aleatorios. Por defecto, se utiliza como semilla la hora actual.
Ueamos un ejemplo de cmo podemos calcular los logarittnos neperianos de una serie de
nmeros que introducimos por el teclado haciendo uso de avk.

$ avk ( p r i n t f
2
0.6931472
2.8i82
1.0360984
6542
8.7859982
Ctrl - d

( '/5.7f)n , l o g ( $ i ) ) }
( Pulsamos I s t mo )
(Result ado )

(Pulsamos Istr o)
(Resu I. t ado )

(Pulsamos Istmoo)
(Resu l tado )
(Fin de la e s t r a d a d e d a t o s )

RA-MA

5.4.8.

E L LENGUAJE DE PBOCESA1<ffEN'l'O AwK 1 4 7

F u n c i o nes de t r a t a m i e nt o d e c adenas

gsub(r , s , t ) S u s t i t uye la cadena <pu v< rifica la expresin regular r por la suh<adva s
en la cadena total t . Si t o se proporciona, sv <>aun><> qv val< $0.
index (s , t ) D e v u elve la posi< in de la suhcadena t <u> la cadvna s. Si la sul>< adna t no
s< encuentra presetc<u> s. index devuelve 0.
lengt h (s )

D e v uelve la longitud <le la cadena s. Si s no se vsl>vcifica. se asn>e $0.

match(s ,r ) D < v u elve la posicin <n s dode sv verifica. la expresin regular r. Si no se


vvrifi< a <1 patrn. se devuvlvv 0.
s pli t ( s , a , r ) D i v i <le lacadna s enelementosde lan>atriz a (a[0] , a [ 1 ] , . . . , a [n ] ) .
La cadena es dividida en <.ada ocurrencia de la expresin regular r. Si r <>o est< prc
set>te. se asumv quv el separador cs FS. spli t < l vvuvlvv vl <>nvro de cien>r ntos de
la n>atriz.
spri nt f ( f m , ex ) F o r<natva la lista de expresiones ex acorde con vl formato <pc<.ifi<.ado
por fm (vase pri n t f ) y r e t o rt>a la cadena resultante, La cadet>a vs fonatvada,
p< ro no visualizada,
sub(r , s , t ) O p e r a igual que gsub() . pero s<lo sc rv<mplaza lr< prin>era sh<advna quv
verifica la expresin regular.
substr ( s , i , n ) D e v u elve la shcadena for>ada por n car u"teres a partir de la posi< in i
<fc la cadena original s. Si sc on>itv vl valor n, se asun<e que la su1>cadena la forraran
el resto <lv los caracteres hasta vl final de la cadena s.
tol ower ( s t r ) D v v <u lvv la cadena resultantv <1c <'onvvrtir <'n u>inseulas las lvtras for
<nantes <le la ca<l< na str. L<>s caracteres no alfah<'ti<os n<> sv ven af' tados.

toupper ( s t r )
D < vuelve la cadena resultante d o n v < rtir < n n>ay<sclas las 1< tras for
o>antes dv la cadena str . Los caracteres no alfa)>ticos ><o se vvn afv< tados.

5.4.9.

E j e m p l o s de a p l i cacin

Seguidamente. van>os a vcr una svriv de ejvn>pl<>s <lv aplicacinn de awk. Con ellos se
pretende dejar claros los conceptos vistos al hablar dv vstv lcnguajv dv procesa>iento.
En el prin<er vj< mplo vamos a in>pri>nir los < amp<> de un archivo quc estan separados
por el caract<'r : vn o len inverso. l'ara < llo. tilizarenu>s la sentencia fo r. El ar c h ivo
sohr 1 quv t r al>ajaremos se dvt><unina prueba. y su contenido vs vl sigi>tv:
$ cat p r u e b a
blanco:73:Marte: 1543:Manuel
verde:17:Jupiter:1968:Sebastian
azul : 2 4 : Venus<1970<Ana
r oj o : 3 5 : Neptuno : l l 2 2 : J a v i e r
amaril l o : 1 3 5 <Ti e r r a : 1 2 34>Raul

148

C A P T ULO 5. E X PRESIONES REGULARES Y FILTROS

Pc RA-MA

El archivo de rdenes awk lo denominamos rU or , y su contenido es el siguiente:


$ cat r Z o r
B EGIN { FS =

: ; Q R S=

f or ( i = NF ; i > = 1 ; i ) { pr i n t $ i , : }

p rint g n
$
Veamos los resultados al operar sobre el archivo prueba:
$ awk - f r Z or p r u e b a
Manuel :1543 :Marte :73 :blanco
Sebastian :1968 :Jupiter :17 :verde
A na :1970 : V enus : 2 4 : a z u l
Javier : 1 1 2 2 : N ept uno : 3 5 : r o j o
Raul :1234 :Tierra :135 :amarillo

$
En el siguiente ejemplo vamos a ver un mtodo sencillo que nos permite calcular el tamao
total en bytes y k i lobytes de los archivos de un determinado directorio. El archivo de
rdenes awk lo denominamos tot al , y su contenido es el siguiente:
$ cat total
! 861o nos quedamos con los archivos ordinarios
! Cuando se visualizan con ls -1 comienzan con

/ -/ { total total + $5 }
{ print Tamao total en bytes:, total }
{ print Tamao total en Kbytes:, total/1024 }

La forma de uso se muestra a continuacin con un ejemplo:


$ ls -1 I awk -f total
Tamao total en bytes: 44837
Tamao total en Kbytes: 43.7861

$
El prximo ejemplo puede ser utilizado para calcular la longitud media del nmero de
caracteres delos nombres de los archivos de un directorio. El programa awk se denomina
longf ich, y su contenido es el siguiente:
$ cat longfich
! Clculo del nmero de caracteres del nombre de los
! archivos visualizados con ls -1

Qc RA-MA

5.4. EL LENGUAJE DE PROCESAMIENTO AWK 1 4 9

! Nos saltamos la primera linea.


NR > 1 f ( print $9, tiene, length ($9), caracteres)
{ car a c t e r e s +=l engt h ( $ 9 )
END f print longitud media:, caracteres/(NR -1)

$
A continuacin sc muestra un ejemplo de uso:
$ ls -l I awk -f longfich
datos tiene 5 caracteres
dirlist tiene 7 caracteres
f awk tiene 5 caracteres
f prueba tiene 8 caracteres
fich tiene 4 caracteres
longfich tiene 8 caracteres
matriz tiene 6 caracteres
p ersonas t i e n e 8 c a r a c t e r e s
p rueba t i e n e 6 c a r a c t e r e s
rMor tiene 5 caracteres
total tiene 5 caracteres
longi.tud media: 6.09091

En el siguiente ejemplo vamos a calcular el ntayor nmero de identificador de usuario


que existeen e! archivo /etc/passwd. Hay que tener en cuenta que el catnpo de UID del
archivo es el tercero. y que los distintos campos estn separados por :. El pr ograma awk
que vamos a utilizar lo denominamos uidmax. y su contenido es el siguiente:
$ cat u i d max
! Calcula el UID mximo de /etc/passwd
BEGIN ( FS = : ; x = 0 )

$3 > x ( x = $ 3 j
E ND ( print x )
$
Ejemplo:
$ awk -f uidmax /etc/passwd
535

Como ltimo ejemplo vamos a comprobar que dentro de un archivo el nmero de veces
que abrimos llaves coincide con el nmero de veces que lss cerramos. Este programa puede
sernos de utilidad para detectar errores en un programa escrito en lenguaje C o en los
propios programas de awk. El ejemplo se puede aplicar (modificndolo ligeramente) para
comprobar lo mismo cuando utilicemos corchetes o parntesis. El contenido riel programa
awk. que denominamos sint . se muestra seguidamente:

CA P T U LO 5. E X P RESIONES REGULARES Y FILTROS

150

Qc RA-MA

$ cat s i n t
cadenam=$0 ;
cadena>=$0 ;
a = i n de x ( c a d ena~ , " { " ) ;

b = index (cadena>, " } " ) ;


@hile ( ( a

! ~ 0 ) I I (b ! = 0) )

if

(a != 0)
ll a v e++
i f (b != 0)
ll a v e
cadenam=subst r ( c a denas ,
c adena>=subst r ( c a dena> ,
a = i n de x ( c a d enaw , " { " )
b = i n de x ( c a d ena> , " } " )

a + i) ;
b+1);
;
;

END { print llave }


$
Ejemplo:
$ a+k -f sint menu.c
0

$
El resultado 0 indica que el nmero de llaves abiertas coincide con el de las cerradas, por
lo que elresultado es correcto.

5 .5.

E j e r c icios

5.1 En una nica lnea de rdenes realice las acciones oportunas para que se visualice por
pantallael mes actual y, ademss, que quede almacenado en un archivo denominado

mes actual.
5.2 Cree un archivodenominado personas que contenga los nombres. apellidos y edades
de 15 personas. Liste todas lss personas del archivo anterior cuya edad sea de 27
anos. Liste los datos de todas aquellas personas cuyo primer apellido comience con
S. Visualice la edad de una persona que se llame Ana. Ordene alfabticamente por
apellidos el archivo anterior y genere un nuevo archivo en su directorio de arranque

denominado personas.orden.alfabetico. Ordene por edades elarchivo personas


y genere un nuevo archivo denominado personas. orden. edad.qCuntss personas
existen en elarchivo personas cuya edad sea de 23 aos'?
5.3 !Cmo podramos quedarnos solamente con la informacin relativa a la hora que
nos visualiza date por pantalla' ?

G 5. EJERCICIOS

Qc RA-MA

151

5.4 !C mo podramos visualizar el contenido de un archivo de texto a la vez que ste


se imprime utilizando un nico mandato.
5.5 Busque en el disco todos los archivos cuyo nombre sea core y visualcelos.
5.6 Busque en el disco los archivos que haya creado en los dos ltimos das y cuyo

tamano seamayor que un kilobyte.


5.7 Ut i lizando la orden f ind. visualice por pantalla de forma recursiva todos los archivos
existentes a partir de su directorio de arranque.
5.8 Liste todos los archivos que cuelgan de /usr cuyo nombre comience por letras com
prendidas entre la a y la f y c uyo tamao sea inferior a 10 bloques de disco.
5.9 Liste por p a ntalla nicamente los archivos ordinarios que cuelgan del directorio
/usr .
5.10 Calcule el tanto por ciento de archivos existentes en el sistema cuyo tamao sea
menor que 10 Kbytes.
5.ll Busque en el discolos archivos cuya extensin sea .h, y dentro de ellos busque la
cadena memcpy.
5.12 /,Qu orden empleara para visualizar en maysculas el contenido de cualquier ar
chivo de texto'!
5.13 qQu orden empleara para visualizar las lneas de cualquier archivo de texto que
comiencen con letra mayscula7
5.14 Realice un programa awk que visualice la cantidad de disco empleada por un deter
minado usuario. Si esta cantidad es mayor que 10 MBytes, comunquelo mediante
un mensaje.
5.15 Cree un archivo compuesto por varias lneas. cada una de ellas con el siguiente
formato:
Nombre Apellidoi Apellido2 Nota
La nota es un valor numrico comprendido entre cero y diez. Una vez creado este
archivo, realice un programa a@k que genere un nuevo archivo en el que el campo
nota se sustituya por una de las palabras siguientes:

Suspenso (si nota < 5),


Aprobado (si G <= nota < 7),
Notable (si 7<= nota < 9) y
S obresaliente (si nota ) =

9)

Captulo 6

Programacin del intrprete de


rdenes
Como hemos visto hasta ahora, el shell es un intrprete de rdenes, pero el shell no
es solamente eso; los intrpretes de rdenes de UNIX son autnticos lenguajes de progra
macin. Como tales, incorporan sentencias de control de Hujo. sentencias de asignacin.
funciones. etc.. Los programas de shell no necesitan ser compilados como ocurre en ot.ros
lenguajes. En este caso. el propio shell los interpreta lnea a lnea. En este aspecto. su
n>odo de operacin es similar a algunos lenguajes de programacin, los cuales tambin
son interpretados (por ejemplo, BASIC). A estos programas se los conoce generalmente
con el nombre de shel scripts. y son los equivalentes a los archivos por lotes de otros
sistemas operativos. Nosotros describirernos la sintaxis reconocida por sh, ksh y bash. La
programacin del csh difiere considerablemente de la que cxplicarentos en este captulo.
En este ltimo raso. su sintaxis cs muy similar a la <mpleada en programas escritos en
lenguaje C.
La forma de escribir un programa de shell consiste en crear un archivo de texto con
u n editor (por ejemplo. vi ) . E ste archivo contendr las rdenes que el shell va a ir i n
terpretando y ejecutando. Una vez que tenemos el archivo de texto, es necesario darlc al
archivo el atributo de ejecucin, para ello emplearemos la orden chmod. Una vez hecho
esto, podremos ejecutarlo como cualquier otra ordn.
ivluchas de las rdenes que vamos a describir en este captulo pueden ser utilizadas
fuera de los programas de shell. directamente desde la lnea de rdenes, aunque su uso
nts extendido sc aplica dentro de los shel/ scripts.

6 .1.

P r i m e r p r o g r a m a d e s h el l

Vamos a crear a continuacin >m sencillo shcll script pa ra mostrar cul va a ser la
tcnica general para crear este tipo de programas. En primer lugar, lo que tenemos que
hacer es elegir el nombre que le vamos a dar a nuestro programa. En nuestro caso, vamos
a ser originales y lo de<nninaren>os shell w c r i p t . A c o nt inuacin invocaremos a nuestro

154

C A P T ULO 6. PROGRAlviACIN DEL INTRPRETE DE RDENES

Q cR A -MA

editor favorito (!vi /) e introducirenios dos lneas de texto correspondientes a dos rdenes
UNIX. Con ello, generamos un archivo que contiene lo siguiente;
$ cat shellwcript
!

! shell script de prueba !


!

who
date

Una vez creado el archivo de texto (shel l w c r i p t ) , d ebemos cambiar sus atributos para
que tenga derecho de ejecucin. La forma de hacerlo es la siguiente:
$ chmod +x shellwcript

$
U na vez cambiados los derechos, ya podremos ejecutar nuestro programa tal y c o m o
lo hacemos con cualquier otro prograina. Slo es necesario poner al archivo el atributo
de ejecucin una vez, puesto que una vez cambiado, este atributo no se ver, modificado.
As pues, aunque volvamos a editar el archivo, no ser necesario utilizar de nuevo la orden
chmod. En caso de no tener el directorio actual . , en el PATH sera necesario invocar al
shel script anteponiendo la cadena ./ y a continuacin (sin espacio en blanco) el nombre
del shel script. Los resultados de la ejecucin del programa se muestran seguidamente:
$ shellwcript
c han
:0
Jun
c han
pt s / 0
Jun
c han
pt s / 1
Jun
c han
pt s/ 2
Jun
c han
pt s/ 3
Jun
mar ju n 2 2 1 0 : 5 6 : 5 3 CEST

22 10 :0 7
22 10 :0 8
22 10 : 08
22 10 : 08
22 10 : 08
2004

( : 0. 0 )
( : 0. 0 )
( : 0 .0 )
( : 0 .0 )

$
Es posible (e incluso recomendable), tal y como hemos hecho en este primer ejemplo,
aadir comentarios a nuestros programas de shell, para ello, si una lnea es de comentarios,
debe comenzar con el carcter !. En el caso anterior, si . no forma parte del PATH, habra
q ue invocarlo de la forma . / s h e l l ~ cr i pt .

6.2. Paso de parmetros a un programa de shell


A menudo queremos que nuestros programas de shell reciban parmetros desde la
lnea de rdenes para hacerlos ms verstiles. Estos parmetros son lo que se conocen

como parmetros de posicin. Los parmetros de posicin se pueden usar dentro de un


programa del shell como cualquier otra variable del shell; es decir, para saber su valor
utilizaremos el smbolo $. Los parmetros dentro del shell scrpt son accesibles utilizando
las variables;

RA-MA

6 .2. PASO DE PARM E T R O S A UN PROG R A M A DE SHELL

155

$0 Representa al parmetro cero o nombre del programa.


$1 Representa al parmetro uno.

$9 Representa alparmetro nueve.


Si, por ejemplo, tenemos un programa de shell denominado prog y l o i n vocamos de la
siguiente forma:
$ prog d a t o s 3 5

s u ma

Dentro del programa de shell tenemos lo siguiente:

$0

p ro g

$1 = datos
$2 = 35
$3 = suma

Podemos usar los parmetros de posicin para referenciar hasta nueve argumentos de la
lnea de rdenes (desde $0 hasta $9). Ms tarde veremos la forma de acceder a ms de
nueve.
Vamos a poner un ejemplo de she/I scri pt que visualiza los cuatro primeros parmetros
que le pasemos. Al programa lo denominaremos sh param, y su contenido es el siguiente:
$ cat s h p a r a m

!!!!!!!!!!!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
! este shell script visualiza los parmetros !
! que le pasamos desde la linea de rdenes
!

e cho
e cho
e cho
e cho

Parmetro
Parmetro
Parmetro
Parmetro

0 = $0
1 ~ $1
2 = $2
3 = $3

$
Evidentemente, como en el caso anterior, antes de poder ejecutar el programa es necesario
darle los derechos de ejecucin al archivo sh param del siguiente modo:
$ chmod +x sh par am

$
Una vez que nuestro archivo es ejecutable, podemos invocarlo utilizando hasta cuatro
argumentos (incluido el nombre del programa). Los resultados de su ejecucin se muestran
seguidamente:
$ sh param uno dos t r e s
Parmetro 0 = ./sh~aram
P armetro 1 = u n o
P armetro 2 = d o s
Parmetro 3 = t r es

156 C A P ITULO 6 PR O G R A M A C ION DEL INTERPRETE DE ORDE NE S

6.3.

O cRA-MA

A lg u n a s v a r i a b les especiales del shell

Dentro de un programa de shell existen variables con significados especiale>, algunas


de las cuales se citan a continuacin:
! Es ta variable guarda el nmero de argiimentos de la lnea de rdenes (excluyendo el

nombre del programa).

+ Guarda la cadena de argumentos entera (excluyenrlo el nombre del programa).


? Guarda el cdigo de retorno de la ltima orden ejecutada (0 si no hay error y distinto
de 0 si hay error).
4I Representa la cadena de argumentos entera (excluyendo el nombre del programa) pero
como una lista de cadenas, a diferencia de + que obtiene todos los argumentos como
una inica cadena.
Vamos a mostrar con un sencillo ejemplo el uso de estas variables. En este caso, el nombre
del shell script ser sh var.
$ cat s h v a r
!

! programa de shell que visualiza !


! la s v a r i a b l e s !, + y ?
!

e cho La v a r i a b l e
e cho La v a r i a b l e

$ ! v a le:
$+ vale: $+

cp
e cho La v a r i a b l e

$? vale: $?

$
Como podemos apreciar. cualtluier carcter susceptible de ser interpretado por el shell
es precedido por el carcter backslash (i) p ara que pierda su significado especial. Aho
ra daremos derecho de ejecucin al programa sh var y l o l a nzaremos con una serie de
argumentos:
$ chmod +x sh v ar
$ sh var u n o d o s t r e s c u a t r o
La var i a b l e ! val e : 4
La variable + vale: uno dos tres cuatro
Cp: faltan argumentos (ficheros)
Pruebe 'cp help' para ms informacin.
L a var i a b l e ? v a l e : 1

$
Como podemos observar, la variable? tonia un valor distinto de cero, puesto que la orden
cp se ha ejecutado con errores. Es importante que si dentro de un programa de shell, se
produce algn error tomemos decisiones al respecto. Como veremos ms adelante, existen
mecanismos para tomar diferentes canunos en funcin del resultado de la ejecucin de
una orden.

(h t. ('()XSTRU('C.'lONES DEL L Eiv(.'UAJE 1 5 7

l(A-X!A

6.4.

C o n s t r u cciones del lenguaje

'<'aios a v< r s< g(ii<la>n< rito las <>rist r<.ciones <l('1 I(.i>g<iii j( tpi('rts en>picadas ('ii los
l)fogfr>iii(<s de sliell. )~o variios a r( iiliz'ir ur ia descrip( i(ii ( xii;iiist iva de t()<las y < ada uiia
<le l;<s (oristriic< ioti(s. siiio <e r>os vai<>s a < entrar eii l<) < iplea<l<> n>as >rinrnerite,

Sintaxis: shift n
Esta onl< n se utiliza para desplazar los argnr< iitos. <le iii(ii>era <iii< $2 pasii a ser
$1. $3 pasa a ser $2, > ;<s sucesivamente (est(< si el dcsplaz;inii(nto n es igii il a i l , l.;s
inuy i i t i l i zada dentro d e

l o s l ) ( l es. Xani<)s a poner ii n ( j < inplo (<) iin p r o g r ;iina qi i e

ileriomirrarnos sh shi f t 1 , c uyo coteiiid<> se niestra a >ii<iii<i;<(:


$ cat sh shift1
!

! programa de shell que muestra el uso de shift !


!

e cho >($1 vale : $ 1


e cho ($2 v a l e : $ 2
e cho $$3 v a l e : $ 3
s hif t 2
echo Ahora $$1 v a l e : $ 1
e cho Ahora $$2 v a l e : $ 2
echo Ahora )<$3 v ale : $ 3

$
Eil el <'jeniplo ui t e ri<>r, ;dd(splaz ir dos lug;ires tendremos <le $5 pasa a ser $3. $4 p >sa
a ser $2 y $3 pi>sa ;i ser $1. Los arg>iii>e>>t<>s iniciales, $1 y $2. se pierderi desl)us <h l
d< splazalllierito. X'anios a ej.utiir < l prograina anterior:
$ chmod +x shmhi f ti
$ sh shifti uno dos tres cuatro cinco
$ 1 vale : u n o
$ 2 vale : d o s
$3 vale : t r e s
Ahora $ 1 v a l e : t r es
A hora $2 v a l e : c u a t r o
A hora $3 v a l e : c i n c o

$
E vi(leritnri( rit< este <lsplazaiierit<> afecta tar>>l)iii a las varial>les ! y
j('rpl(), que denoniinarnos sh sh i f t 2 .

$ cat shmhift2
! Otro ejemplo con shift
e cho ),$! v a l e : $ !

+ , V e a riins ot r o

158

C A P T ULO 6. PROCRAA1AC!X DEL 1N "I RPRETE DE RDENES

Q RA- N <A

e cho $$+ va l e : $ +
s hif t 2
e cho Ahora $$ ! v a l e : $ !
e cho Ahora <$+ v a l e : $ +

$
Al ejecutar el anterior programa, se produce el siguiente result,ado:
$ chmod +x sh shift2
$ shmhift2 uno dos tres cuatro cinco
$ ! v al e : 5
$+ vale: uno dos tres cuatro cinco
A hora $! v a l e : 3
Ahora $+ vale: tres cuatro cinco

$
La orden shift desplaza todaslas radenas en ~ a la izquierda n posiciones y decren>enta
! en n. Si a sh i f t n o s e le iudica el valor de n, por defecto tomar el valor 1. La orden
shi f t no afecta al parntetro de posicin 0 o notnbre del progran<a.

+read
Sintaxis : read variable(s)
La orden read se usa para leer h>forn>a<:i<>n escrita en el tertuinal de fornida interaet.iva.
Si hay n<s variables en la orden read que palabras es<'ritas, las variables que sobran por
la dere< ha se asignarn a NULL. Si se introducen ms palabras qe variables haya, to<los
los datos qe sobran por la d<r<~.ha se asignarn a la <ltin<a variable de la, lista. Esto
s er aclarado e un ej< mplo que se adjunta. denominado shwead var .
En el ejemplo q< van<os a poner, el programa shmead va a leer uua variable desde

la entrada estndar. y posteriormente va a visualizar esa variable por la salida estndar.


Ejen<plo:
$ cat s h w e a d
!

! programa que ilustra el uso de la orden read !


!

! La opcin -n se emplea para evitar el retorno de carro.


echo -n Introduce una variable;
read var
echo La variable introducida es: $var

$
Cuando ejecuten<os este programa, ohtendreu<os el resultado >nostrado seguidamente,
Como siempre, antes de ejecutar el shell script es necesario cambiar los derechos <iel
ar<.hivo que contiene las rdenes:
$ chmod +x s h m ead
$ shv e a d
Introduce una variable: 123

6.4, CONSTRUCCIONES DEL LENGUAJE

RA-MA

l 59

La variable introducida es: 123

$
A continuacin analizaremos el caso en que leetnos ms o menos variable> de las que
queremos leer desde el programa de shell. Para ello, consideremos el siguiente programa,

que leetres variables, En un primer caso vamos a introducir slo dos, y en un segundo
introduciremos ms de tres variables. El cdigo del programa en cuestin es el siguiente:
$ cat
!

s h m ead var
!

! programa que lee varias variables con read !


!

echo -n Introduce las variables:


r ead var i v a r 2 v a r 3
echo La variables introducidas son:
e cho var i ~ $ v a r i
echo var2
$var 2
echo var 3
$var 3

$
Veamos una ejecucin normal en la que leemos tres variables:
$ sh~ ead var
Introduce las variables: 34 hola 938
Las variables introducidas son:
v ari ~ 3 4
var2 = h o l a
v ar3
9 38

Vamos a ejecutar el programa anterior introduciendo slo dos parmetros:


$ shmead var
Introduce las variables: uno dos
Las variables introducidas son:
v ari = u n o
v ar2 = d o s
var3

$
Como podemos observar, la variable var3 queda sin asignar, puesto que slo hemos in
trodurido dos valores, A continuarin ejecutaremos de nuevo el programa, pero ahora
introduciremos cuatro variables:
$ shmead var
Introduce las variables: uno dos tres cuatro
Las variables introducidas son:
v ari = u n o
v ar2 = d o s

160

c A P T U L o 6 . P R o G HAWI >((qx DEL llcTFRPHETE DE RDEtcER


var3 =

HA - t(1A

t r e s c u a t ro

Frr ( st( ( aso ( lr( v;(riat)lv var 3 s() lv asignan to(l(rs las v'rl'i d)les ( par ti r d v l a d n s.

Sintaxis: expr argl op arg2 [op arg3 ...]


Lns argurrrr)t<>s <le la or<lvn expr sv ton)ar) ( nrnn vxprvsi<>rrvs y <lvhe ir svpara<lns pnr
l>len< os. La nrdvrr expr vvalr r sr)s (rgur) rvnt<)s y vs< ril>v vl resrrlt (do vrr l'( salid r vst'i<lar.
El rrso rrrs en)rr) <lv la <>r<lerr expr es para vf< ctrtar opera(inrres de ;(ritrti< a sirrrplv y.
n) r))error nredid (. par ( rr)arripulr(r a<letra (avvrigrrar la lorrgitrr<l <lv >)r)a (a(letra. lltrar
d< ternrilladns cala< tervs de urra caderra. etc.).

0 .4.1 .

O pera d ores aritm t icos

Los sigi< rrtes op<)ra<l<>res se utilizan para evaluar <>pvracines r (t<'rr)ticas y vscril)ir
vl result (do cle la opvraci>n por I r salid ( est))d (r. L rs op<. racinrrvs quv podemos realizar
snn las sigrrietes: srr)a, resta. n)ultiplicacirr, <livisi entera y <lcrrlo dvl resto dv la
divisin entera.

+ S(m)a arg2 a ar g 1.

Rest.a arg2 a arg1.


~ l(lt iplica los argunrentos.
/ D i v ide arg1 er)tre arg2 (divisin entera).
' / Resto dv la <iii isi>rr errterr( entre arg1 y ar g 2 .
Er) el caso de t i l izar varios opera<lores, las operaciones de sma y resta se evalran err
rltimo lugar, a nn svr quv vayarl vlltre parntesis. 'Ao l(ay que olvidar que los snrl>olos +,
( y ) t i vrren un signifi<ado especial para el shell, por lo que <lvl>err ser precedidos por el
snrl)olo b<rcksl(rs/r o encerrados entre comillas simples.
Ejemplo:
$ cat s h e x p r l
!

! Programa de shell que multiplica dos variables !


! leidas desde el teclado
!
!

echo
echo Multiplicacin de dos variables
echo
echo
echo -n Introduce la primera variable:
r ead ar g i

6.4. CONSTRUCCIONES DEL LENGUAJE

161

echo -n Introduce la segunda variable:


r ead ar g 2
r esul t a d o ' e x p r $ a r g 1 i + $ a r g 2
echo Resultado $resultado

$
El resultado de ejecutar el programa anterior es el producto de las dos variables ledas
desde el teclado, Veamos un caso particular:

$ sh expr1
Multiplicacion de dos variables
Introduce la primera variable:12
Introduce la segunda variable:20
Resultado~240

6.4.2. Operadores relacionales


Estos operadores se utilizan para comparar dos argumentos. Los argumentos pueden
ser tambin palabras. Si el resultado de la comparacin es cierto, el resultado es uno (1);
si es falso, el resultado es cero (0). Estos operadores se utilizan mucho para comparar
operandos y tomar decisiones en funcin de los resultados de la comparacin, Veamos los
distintos tipos de operadores relacionales:
~ !Son los argumentos iguales",
! ~ iSon los argumentos distintos?
> !Es argi m a yor que arg2'?

>~ ,Es arg1 mayor o igual que arg2'?


< !Es arg i m enor que arg2?
,Es arg1 menor o igual que arg2?
No olvide que los smbolos > y < tienen significado especial para el shell, por lo que deben
ser entrecomillados,

Ejemplo:
$ cat s h e x p r 2
!

! Programa de shell que determina si dos variables !


! leidas desde el teclado son iguales o no
!

echo
echo Son iguales las variables?
echo

162

C A P f TULO 6. PROGRA M A C I N DEL INTRPRETE DE RDEN ES

RA-M A

echo
echo -n Introduce la primera variable:
read a r g 1
echo -n Introduce la segunda variable:

read axg2
x esultado

e xp r $ arg 1

$a r g 2

echo Resultado~$resultado

$
El programa anterior devolver 0 si las dos variables introducidas son distintas y 1 si son
iguales. Veamos un caso particular:
$ sh expr 2
Son iguales las variables?
Introduce la primera variable:12
Introduce la segunda variable:12
Resultado~i

Si las variables fuesen distintas, el resultado seria:


$ sh expr2
Son iguales las variables?
Introduce la primera variable:123
Introduce la segunda variable:45
Resultado~O

6.4.3. Operadores logias


Estos operadores se utilizan para comparar dos argumentos. Dependiendo de los va
lores, el resultado puede ser arg1 (o alguna parte de l), arg2 o cero. Como operadores

lgicos tenemos los siguientes:


I Or lgico. Si el valor de arg i es distinto de cero, el resultado es argi ; si no es as, el

resultado es arg2,
k And lgico. Si arg1 y arg 2 son distintos de cero, el resultado es argi ; si no es as, el
resultado es arg2,

El arg2 es el patrn buscado en arg1. Si el patrn arg2 est encerrado dentro de


parntesis $ { i), el resultado es la parte de arg1 que coincide con arg2. Si no es
as, el resultado es simplemente el nmero de caracteres que coinciden,
No olvide que los smbolos I y k deben ser entrecomillados o precedidos del smbolo $,
por tener un significado especial para el shell. Veamos ahora algunos ejemplos en los que
invocamos a expr desde la lnea de rdenes:

6.4. CONSTRUCCIONES DEL LENGUA JE

l 63

$ a=S
$ a= expr $ a + 1
$ echo $a
6

$
En este, primer ejemplo hetnos incrementado en una unidad el valor de la variable a.
$ a=palabr a
$ b= expr $ a
$ echo $b
7

$
En este ejemplo hemos calculado el nmero rle caracteres de la cadena a.
$ a=jun i o % 004

$ b e xp r $ a
$ echo $b

: '$ ( [ a - zj ~() '

Junio

$
En este ltimo ejemplo hemos determinado cu~les son los caracteres comprendi<los entre
la a y la z minsculas cn la cadena a.

6.4.4.

E v a l u aciones

Sirven para averiguar el valor lgico dc una determinada expresin. Habitualmente su


u so se combina con una instruccin de bifurcacin, cotno por ejemplo i f .

Sintaxis: text -opcion argumento [-opcion argumento]


La orden test sc usa para evaluar expresiones y generar uu valor de retorno; este valor
no se escribe en lasalida estndar. pero asigna 0 al cdigo de retorno si la expresin se
evala como verdad, y le asigna 1 si la expresin se evala como falso. Se puede invocar la
orden test t a m bin mediante [ e x p r e s i n ] , t a nt o a la derecha como a la izquierda de
expresin rlebe haber un espacio en blanco. test p u ede r valuar tres tipos tle clententos:
archivos. cadenas y ntIlleros.

Dpciones:

-f D e v uelve verdadero (0) si el archivo existe y es un archivo regular (no es un rlirectorio


ni un archivo de dispositivo),
-s Devuelve verdadero (0) si el archivo existe y tiene un tan>af>o tnayor que cero.
-r

De v u elve verdadero si el archivo t xistc y tiene permiso de lectura.

164

C A P TULO 6. PROGRA M A C I N DEL INTRPRETE DE RDEN ES

RA-M A

-w Devuelve verdadero si el archivo existe y tiene permiso de escritura.


-x De vuelve verdadero si el archivo existe y tiene permiso de ejecucin.
-d Devuelve verdadero si el archivo existe y es un directorio.
Ejemplos:
$ test -f archivo32
$ echo $?
1 (El archivo archivo32 no existe)
$ test -f /etc/passvd

$ echo $?
0 (El archivo /etc/passswd si existe)

Sintaxis: test cadenai operador cadena2


f. cadenai op e rador ca dena2 ]
Ejemplos:
$ a=palabr a i

$ [ $a ~ palabra2 ]
$ echo $?
1

$ [ $a ~ palabrai ]
$ echo $?
0

$
De esta manera, t es t e v ala si las cadenas son iguales o distintas. Cuando se evale
una variable del shell, es posible que dicha variable no contenga nada. Consideremos el
siguiente caso:
[ $var ~ v t 1 0 0 ]
Si a var n o l e hemos asignado nada, el shell realizar la sustitucin de variables, y la
orden que el shell intentar ejecutar ser la siguiente:

[ -vt 100 ]
la cual nos dar un error de sintaxis. Una forma sencilla de evitarlo consiste en meter
entre comillas la variable que vamos a evaluar, y as sabremos que la variable tomar el
valor NULL.

[ ' ' $ v ar ' '

~ v t 100 ]

6.4. CONSTRUCCIONES DEL LENGUAJE

Qc RA-MA

l 65

S i romo en el ejemplo anterior, $var no contiene ningn valor. la expresin que ver test ,
una vez procesada por el shell ser:
''' '

= vt 100 ]

Esta expresin es sintcticamente correcta y no provocar ningn error de sintaxis.

Sintaxis: test nmero1 operador ndmero2


f. nmeroi operador nmero2]
En evaluaciones numricas esta orden es slo vlida con nmeros enteros. Los opera
dores usados para compa,rar nmeros son diferent.es de los usados para comparar cadenas.
Estos operadores numricos son:
-l t

M e n o r que.

-l e

M e nor o igual que.

-gt M a yor que.


-ge Mayor o igual que.

-eq Igual a.
-ne No igual a.
Hay unos cuantos operadores que son vlidos en una expresin de la orden test a la hora
de evaluar tanto archivos como cadenas o nmeros. Estos operadores son:

-o OR
-a AND
! NO f
Ejemplos:
$ a=23

$ L $ a - l t SS ]
$ echo $?
0

$
$ tes t

$a t~ 23

$ echo $?
1

166

C A P TULO 6. PROGRA M A C I N DEL INTERPRETE DE RDEN ES

RA-M A

Sintaxis: if condicionl
then or d enl
[elif condicion2
then or den2]
[else o r d en3]
fi
La construccin if se utiliza para tomar decisiones a partir de los cdigos de retorno,
normalmente devueltos por la orden test . La ejecucin de la construccin if es tal como

sigue:
I.

S e evala la condi c i o n l .

2. Si elvalor de retorno de condici6nl es verdadero (0), se ejecutar ordenl.


3. Si esto no esas y se cumple la condici6n2, se ejecutar la orden2.
4. E n c u alquier otro caso, se ejecuta orden3.

Ejemplo:
$ cat s h i f
!

! shell script que muestra el uso de


la sentencia de control if-fi.
!

if test -f /etc/hosts
then
cat /etc/hosts

sise
echo El archivo no existe
fi

$
En el ejemplo anterior, si existe el archivo /et c / h o s t s , entonces lo visualizaremos. Si no
existe, imprimiremos por pantalla un mensaje diciendo que t;al archivo no existe.
$ shwf
172.18.13.16 valdebits.aut.uah.es valdebits
12T.O.O.i localhost localhost.localdomain

$
A continuacin vamos a poner otro ejemplo, en el cual, si no existe un directorio, lo
crearemos desde un programa de shell y le habilitaremos los derechos de modo que slo
el propietario tenga acceso a L El nombre del directorio se le pasa como parmetro al
shell script. El contenido del programa es el siguiente:

6 ,4. CONSTRUCCIONES DEL LENGUAJE

RA-MA

crea

$ cat
!

!
!
!
!
!
!
!

Ejemplo de uso de if
Este programa crea {si no existe)
el archivo que le indiquemos desde
la linea de 6rdenes. Al directorio
re c i n c r e a do s 6 1o t e n d r a c c e s o
el propietario del mismo.
!

16 T

if [

!
!

!
!

! -d $1 ]

then
m kdir $ 1
cbmod 700 $1

Ejemplo:
$ crea d i r
$ ls - l d di r
d rwx--- - 2

chan

igx

10 24 en e 1 3 1 9 : 0 6 d i r

$
En el siguiente ejemplo vamos a disear un shell script que adndia un a r g umento, Si
el argumento dado coincide con el nombre de un archivo o directorio, deber sacar por
pantalla de qu tipo es. Si cs adems un archivo, deber determinar si es ejecutable o no.
$ cat s h w f 2 . s h
!

! Programa shell que comprueba si existe un


! archivo pasado como argumento y si existe
! muestra de qu tipo es
!

!
!
!

i f [ $! = 0 ]
then
echo Debes introducir al menos un argumento
e xit 1
fi

if [

- f "$1" ]

then

! Es un a r c h i v o r e g u l a r
echo -n " $ 1 e s u n a r c h i v o r e g u l a r "
i f [ - x $1 ]
then
e cho " e j e c u t a b l e "
else
e cho "no e j e c u t a b l e "

1 68 C A P TULO 6. PROGR A M A C IN DEL INTRPRETE DE RDE NE S

RA- M A

fi

e li f

I -d " $1" ]

then
! Es u n d i r e c t o r i o
echo "$i es un directorio"
else
! Es un a c os a r a r a
e cho "$ 1 e s un a c o s a r a r a o n o e x i s t e "
fl

$
La ejecucin del programa anterior dar lugar a unos resultados como los siguientes:
$ sh if2.sh /etc
/etc es un directorio
$ sh i f 2 . s h
/bin/ls /bin/ls es un archivo regular ejecutable

$
if t a m bin puede utilizarse para comprobar el resultado de la ejecucin de un programa
externo, ya que todos los programas en UNIX devuelven un valor numrico como resultado
de su ejecucin, que indica si dicha ejecucin se llev a cabo correctamente o no.
Por ejemplo, podemos disear un shell script que compruebe si existe un determinado
usuario en el archivo de contraseas. Para ello vamos a ut ilizar una expresin regular
interpretada por grep. El programa de shell podra ser el siguiente;
$ cat s h p a s s
if grep -q ' '$1':' /etc/passwd
then
echo El usuario $1 ya existe en el sistema
else
echo El usuario $1 no existe en el sistema
fi

$
Podemos ampliar el programa anterior para averiguar si el usuario, de existir, es un usuario

regular (su UID es n>ayor o igual que 500),


$ cat s h p a s s 2
if grep -q '"'$1':' /etc/passwd
then
echo El usuario $i ya existe en el sistema
IDU cat /etc/passwd I grep '"'$1':' Icut -f 3 -d

if I.$IDU -ge 500 )


then
e cho $1 es u n u s u a r i o r e g u l a r
sise
e cho $1 no e s u n u s u a r i o r e g u l a r

RA-k(A

6 ,4. CONSTRUCCIONES DEl, LENGUAJE

169

fi
else
echo El usuario $1 no existe en el sistema
fi

$
El resultado de ejecutar el programa sh~ a ss2 sobre distintos usuarios es el siguiente:
$ sh pass2 s s p
El usuario ssp ya existe en el sistema
s sp es u n u s u a r i o r e g u l a r
$ sh pass2 l u c a s
El usuario lucas no existe en el sistema

Sintaxis: case palabra in


p atz6ni )
o r den i ; ;
p atr6n2 )
or den2 ; ;
p atr6nN )

or den N ; ;

esac
La construccin case controla el Hujo dcl programa basandose en la palabra dada. La
palabra se compara, en orden, con todas las plantillas. Cuando se encuentre la primera
que corresponde, se ejecuta la lista de rdenes asociadas, la cual tiene que terminar con
dos punt,o y coma (; ;).

Ejemplo:
$ cat s h c a s e
!

! Programa que ilustra el uso de la sentencia !


! de control de flujo case-esac.
!

dia= date I cut -c 0-3


c ase $di a i n
l un) e ch o Hoy e s L u n e s ; ;
m ar) echo Hoy e s Mar t e s ; ;
mie) echo Hoy es Miercoles;;
j ue) e ch o Hoy e s J u e v e s ; ;
v ie) e c h o Hoy e s V i e r n e s ; ;
s ab) echo Hoy e s S abado; ;
d om) echo Hoy es Domingo; ;
esac

lTO

C A P TULO 6. PROGRA M A C I N DEL INTRPRETE DE RDEN ES

R A-M A

El programa anterior puede ser utilizado para saber el dia de la semana, visualizando los
resultados en castellano. Obsrvese cmo en la variable dia almacenamos lo que retorna
la orden date I c u t - c 0- 3 , que son las tres primeras letras del da de la semana.

Ejemplo:
$ sh case
H oy es Mart e s

Sintaxis: while condicin


do
orden(es)
done
La ejecucin de laconstruccin while es como sigue:
1. Se evala la condicin.

2. Si el cdigo devuelto por la condicin es 0 (verdadero), se ejecutar, la orden u


rdenes y se vuelve a iterar.

3. Si el codigo de retorno de la condicin es falso, se saltar a Ia primera orden que


haya despus de la palabra reservada done.
Ejemplo:
$ cat s h wh i l e
!

! Programa que ilustra el uso de la


!
! sentencia de control de flujo while. !
!

a=42

while L $a -le 53 ]
do
e cho Contador =
a = expr $ a + i

$a

done

En el anterior ejemplo se incrementa y visualiza el valor del contador mientras ste sea

menor o igual que 53. Para ello, while comprueba el cdigo de retorno de la orden [ $a
-l e 5 3

] , y s i es cierto, se repite la iteracin.

RA-MA

6 .4. CONSTRUCCIONES DEL LENGUA JE

171

Ejemplo:
$ sh @hil e
C ontador ~
C ontador =
C ontador ~
C ontador ~
C ontador =
Contador
Contador
C ontador ~
Contador
C ontador ~
C ontador ~
C ontador ~

42
43
44
45
46
47
48
49
50
51
52
53

Sintaxis: until condicin


do
orden(es)
done
La construccin unti l

e s muy similar a la de chi l e . L a ejecucin es como sigue:

1. Se evala la condicin.
2, Si el cdigo de retorno de la condicin es distinto de 0 (falso), se ejecutar, la orden
u rdenes y se vuelve a iterar.

3. Si el cdigo devuelto por la condicin es 0 {verdadero), se saltark a la primera orden


que haya despus de la palabra clave done.
Ejemplo:
$ cat sh until
!

! Programa que ilustra el uso de la


! sentencia de control de flujo until. !
!

until [ $a = hola ]
do
echo -n I n t r o d uc e un a c a dena:
read a
done

En el ejemplo anterior, el bucle unti l s e ejecuta hasta que el usuario introduzca la cadena
hola. A partir de este momento, la condicin devuelve verdadero y se termina el bucle.

172

C A P TULO 6. PROGRAM A C I N DEL INTRPRETE DE RDEN ES

RA-M A

Ejemplo:
$ sh unt i l
I nt r o duce una c adena: u n o
I nt r o duce una c adena: d o s
I nt r o duce una c adena: h o l a

Sintaxis: for variable in lista


do

orden(es)
done
vari a bl e puede ser cualquier variable del shell, y l i s t a es una lista compuesta de cadenas
separadas por blancos o tabuladores. La construccin funciona como sigue:
1. Se asigna a var i a b l e l a p r imera cadena de la lista.
2. Se ejecuta orden.
3. S e asigna a var i a b l e l a siguiente cadena de la lista. Se vuelve a ejecutar orden.
4. Repetir hastaque se hayan usado todas las cadenas.
G. Despus de que haya acabado el bucle, la ejecucin contina en la primera lnea que
sigue a la palabra clave done.

Ejemplo:
$ cat s h Z o r
!

! Programa que ilustra el uso de la !


! sentencia de control de flujo for.

!!!!!!!!!!!!!!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

f or i
do

i n m a n ue l a n a c a r l o s m i g u e l

mail $i < carta


done

En el ejemplo anterior se enva el archivo cart a a todos los usuarios indicados en la lista.
Si dentro del bucle f or omitimos lista, se asumir como lista el parmetro de posicin $C

que representa la cadena de argumentos entera excluyendo el nombre del programa.


Seguidamente vamos a modificar el programa de ejemplo de i f q u e se encuentra en
la pgina 167 para que pueda tratar con varios archivos pasados como argumento. El
programa es el que se incluye a continuacin:

6.4. CONSTRUCCIONES DEL LENGUAJE

$ cat

shMor1

!!!!!!!!!!!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
! Programa shell que comprueba si existe un
! archivo pasado como argumento y si existe
! muestra de qu tipo e s
!

!
!
!
!

i f f $! = 0 ]
then
echo Debes introducir al menos un argumento
e xit 1
fi
f or i i n $C
do
if

t l$ 1 I I ]

then
! Es u n a r c h i v o r e g u l a r
e cho -n " $ 1 e s u n a r c h i v o r e g u l a r

if l

-x $1 ]

then
e cho " e j e c u t a b l e "
else
e cho "no e j e c u t a b l e "
fi
e li f [ - d " $ 1 " ]
then
! Es u n d i r e c t o r i o
e cho "$1 e s u n d i r e c t o r i o "
else
! Es un a c os a r a r a
e cho "$ 1 e s u n a c o s a r a r a o n o e x i s t e "
fi
! Ahora desplazamos los argumentos
shif t
done

$
El resultado de la ejecucion del anterior programa es como sigue:
$ shZ o r 1 4 o r .
claves es un archivo regular no ejecutable
listy es un archivo regular ejecutable
s rc e s u n d i r e c t o r i o

17 3

174

C AP T U LO 6. P ROGRAWIACION DEL INTRPHE1 E DE RDENES

break, COlitiaue y.,eXi t

RA-M A

p-

break [ n ] H a <e q>u cualquier bucle for , whil e o u n t i l t e r m i ne y pse cl control a la


siguiente orden que s< encuentre <lespus de la pal>d>ra clave done.
conti nu e [ n ] D e t i et>e la iteracin actual del burle f o r . w h i l e o u n t i l y e t n p i eza la
ejecucin de la siguiente itera< in,
exit

[ n ] D e t i ene la ejecucin del progran>a del sl>ell y asigna n al c>digo d< retorno
(norn>alrnente 0 implica xito. y distinto de 0. error).

Ejetnplo:
$ cat s h e x i t
if [ $! -eq 0 ]; then
echo Forma d e u s o: $ 0 [ - c ] [- d ] ar chi v o ( s )
exit 1 !c6digo de retorno err6neo
fi

$
La secuencia <le c<xligo anteri<>r puede ser utilizada dentro de un programa <le sbell para
comprobar si 1r pasamos o no parmetros. En caso de no pasarle i>arn>etros. visualizar el
>nensaje de error y terminar el progran>a.

" ,jetecggjjjf -

"

Sintaxis: select i [in lista]


do
orden(es)
done
La sentrncia select es slo vlida para el Korn shcll y el bash. Esta sentencia visualiza 1<>s
elementos indicados en lista, numerados en el orden en que apar<.ce, en la salida estndar
de <rror, Si no se proporciona tal lista, sta cs leda, desde la lnea de rdenes a travs de
la variable $CI (ver .3). A continuacin de las opciones numeradas indi<adas en lista se
visualiza la cadena (pron>pt), indicada por la variable PS3. Cuando aparezca este pro>nyt.
ten<lren>os que elegir una de las opciones indica<las en la lista introduciendo el nmero
que la identifica. Si se introdu< e una opcin vlida, se ejecutarn las r<lenes asociadas,
Si cotno opcin intro<lucinr<>s ENTRAR, <1 men de opciones volver a ser visualizado,
Cualquier nitrada que indique el usuario ser ahnacenada en la variable REPLY,
Ejemplo:
$ cat shmelect
P S3='<Opcion :
select i Listado Quien Salir
d o case $ i i n
L ist ado) l s - 1
Q uien) who ; ;

Qc RA-MA

6.5. USO DE FUNCIONES EN PROGRAMAS DE SHELL

175

Salir) exit 0;;


+) echo Opcion incorrecta
esac
done

$
A continuacin se muestra el resultado de la ejecucin del programa de shell anterior,
~s como los resultados ante <liversas entradas.
$ sh sel e c t
l) List ado
2) Quien
3 ) Sal i r
O pcion: 1
t ota l 4
- rwxr- x r - x 1
- rw-r r- - 1
- rw-r r- - 1
1 ) Li s t a d o
2) Quien
3 ) Sal i r
O pcion: 2
c han t t y 2 D e c
c han t t y 1 D e c
1 ) Li s t a d o
2) Quien
3 ) Sal i r
O pcion: 5
Ehhh7
1 ) Li s t a d o
2) Quien
3 ) Sal i r
O pcion: 3

c han
c han
chan

i gx
166 d e c 6 0 9 : 3 1 s e l
i gx l 134 d e c 6 0 9 : 3 0 s e l . d o c
i g x 15 8 oct 2S 22:05 sortfile

6 09:26
6 09:03

6.5. Uso de funciones en programas de shell


Dentro de los progratnas de shell se puede hacer uso de funciones. En una funcin iw>
dentos agrupar un conjunto de rdenes que se ejecuten con cierta frecuencia. Las funciones
hay que declararlas antes de usarlas.

Ejemplo:
$
!
!
!

cat f u n c
Si no se pasan parmetros al programa
se ejecuta la funci6n error.
Obsrvese que para invocar a la funcin

l78 C A P TULO 6. PROGR A M A C IN DEL INTRPRETE DE RDE NE S

Q cRA-MA

! no colocamos los parntesis.


! Seguidamente definimos la funcin error.

error()
e cho Erro r d e s i n t a x i s
e xit 2
i f f $! = 0 ]
then
error
else echo Hay $!

a r g umentos

fi

$
Las funciones adems pueden colocarse en otro archivo aparte. De esta forma podemos
disefzar una biblioteca de funciones y reutilizarlas en nuestros programas.
Como ejemplo de aplicacin de funciones vatnos a disertar una funcin que denomina
remos espacio ocupado(id~articion) que obtenga la cantidad de memoria ocupada
de una particin de disco dada como argumento. Esta funcin la vamos a situar la funcin
en un archivo apartedenominado funciones.
Para disef>ar la funcin partiremos de la informacin que nos aporta la orden df cuya
salida es similar a la siguiente:
S ,fi c h e r o s
/dev/hda2
none

1K-blocks
7 384424
1 19624

Used A v ailable Use'/ Montado en


609 0 0 7 6
9 192 3 2 87 ' / , /
0
1196 24
0 '/ / d ev/ s h m

Esta orden nos informa de que la particin hda2 tiene 6.090. 976 bytes ocupados. Pode
mos utilizar el filtro cut p ara obtener slo este campo y grep para localizar la lnea que
contiene la informacin sobre la particin en la que estemos interesados:
$ df -k I grep /dev/hda2 I tr -s ' ' I cut -d ' ' -f 3
6090456
Utilizamos el modificador -k para que el resultado de df est expresado en kilobytes. La
orden tr - s s u p r ime los espacios en blanco duplicados para que cut pueda usarlos como
delimitador de campos de forma correcta.
Ahora que tenemos la orden correcta vamos a introducirla en el archivo funci o nes:
!!/bin/bash

espacio ocupado()
ESPACIO~ df -k I grep /dev/$particion I tr -s ' ' I cut -d ' ' -f 3
Para hacer uso de esta funcin desde otro script es necesario indicar en qu archivo se
encuentra. Para esto se coloca al principio de la lnea un punto, un espacio y nombre del ar
chivo que contiene la funcin con su camino (poth) si fuera necesario. El siguiente ejemplo

.6. SENALES Y ORDEN TRAP l 7 7

rrurestra cmo incluir el archivo func i o nes y r rno utilizar la funcin espaci o w c upado
qru" acabamos de disear. El o bj etivo es crear un sc r ipt ll a nrado espacio q ue r eciba
r rrro argumento el nombre lgico de una partirin y muestre por pantalla un mensaje
irrfbnrrarrdo del espacio ocupado en dicha partirirr.
!!/bin/bash
./f u n c i o n es
p art i c i o n = $ 1
espaciomcupado
echo La particin $1 tiene ocupados $ESPACIO Kb
Fl resultado de su ejecucin ser el siguiente:
$ . / e s p a ci o h d a i
La particin hdai tiene ocupados 12912524 Kb

6.6.

S e a les y ordent r a p

1."ertos eventos gerreran seales que se envarr a los prorrarrs en ejerurin, conro ejem
plos podemos citar:
i Salir del sistenra (lo/orrt) enva la seal 1 a los procesos en brrtc/r,
dele te e nva la seal 2 a los procesos interactivos.
ki l l

PI D e n v a por defecto fa seal 15 al proceso rrryo identifircador esPID.

La mayora de las senales hacen que un proceso finalice (muera). Atrapar una seal es
irrra forma de interrumpir procesos actuales eu respuesta a una scfral para que se ejecute
rrn r rrrtina predefinida, lltnnada generalmente rutina <le servirin rle interrupcin. La nica
serral que rlo se prlerle recoger' rlr igrlorar cs la rllllelo q. A corltlrrrraclorl se rrlllestlen todos
los tipos de senalps ut llrzadas:
D Srrlirfa del shell (normalmente cuando termina ef,s/re/I script ) .

i Hangup (rronnalrrrcnte logout).


2 Irrterruprin (rrormalmcrrte Crtf-r).
3 Salir.
4 lnstrurrirr ilegal.
5 Tra,cc trrr p.

6 I/ O tr ap nstnrrtron (fallo hardware).


7 Ernulrrtor trup irrstrurtion (fallo franfware).

lf8

C A P TULO 6. PROGRA M A C I N DEL INTRPRETE DE RDEN ES

RA-M A

8 Error en coma Hotante,


9 Terminacin irremisible del procmo.
10 Error de bus.
11 Violacin de segmento.
12 Argumento errneo en una llamada al sistema,
13 Intento de escritura en una tubera en la que no hay nadie leyendo,
14 Reloj de alarma.
15 Finalizacin software (normalmente va ki l l

).

Sintaxis: trap orden(es) seal [seal]


La orden trap se puede usar en programas del shellpara capturar seales antes de
que puedan matar al proceso. La orden tr a p puede hacer tres cosas con las seales:
En v ez de abortar el proceso, la seal puede disparar la ejecucin de rdenes es
pecficas del shell.
a Puede ignorar las seiiales,
Puede reactivar seales.Despus de recoger o ignorar una seal, podemos usar la
orden trap para restaurar la accion por defecto, que generalmente es la terminacin
del proceso.
trap

2 I g n o ra la seal 2 (interrupcion)

trap

2 R e s taura la interrupcin

Ejemplo:
$ cat s h t r a p
trap echo adios; exit 2
c hil e t r u e
do
echo hol a
done

$
En el ejemplo anterior se est visualizando por pantalla el mensaje hol a hasta que se
pulse Ctrl-c (seal nmero 2); en ese momento se visualiza el mensaje adios y se finaliza
el sheH script. Vamos a ejecutar el programa:

6 .7. EJEMPLOS DE APLICACIN

RA-MA

17 9

$ sh t r a p
hola
hola
hola
Ctrl - c
adios

6.7.

E j e m p los de aplicacin

Seguidamente vamos a ver una serie de programas de shell. Gon ellos se pretende
avanzar las ideas mostradas en este captulo. Muchos de los programas que describiremos
Inunden utilizarse como ~rdenes aadidas a UNIX .
Gomo primer ejemplo crearemos un programa que permita eliminar procesos tal y
romo lo hacamos con laorden kill. La ventaja de este programa es que no necesitamos
conocer el PID del proceso(s) que queremos eliminar. En su lugar, utilizaremos nicamente
~1 nombre del proceso. Para invocar al programa. lo haremos por su nombre, mata, y a
< ontinuacin le pasaremos como parmetro los procesos que vamos a eliminar. Si no le
pasautos ningn parmetro, el programa visualizar por pantalla una pequea ayuda,
as como informacin relacionada con la persona que lo ha escrito,
$ cat mat a
!

! Para hacer operativo el programa, invoque previamente


! la siguiente orden {esto slo debe hacerse una vez)

! chmod +x mata
!

c ase $! i n

0)
echo
echo
echo
echo
echo
e cho
echo
echo
echo

+
y>
''i mata, elimina el proceso que le indiquemos
''l Por Sebastin Snchez Prieto,
''I Alcal 20-i0-95. Email: ssp4aut.uah.es
''+
CC

Forma de uso: mata [proceso{s)]

g)
for
do

pr o c i n $ *

kill -9 pslgrep $proclgrep -v greplawk (print $1)


done
I

180

( 'A l ' T I I L ( ) t). l ' I t O GIIA.'cIA('I'.V DI".I. INT:BVRI'.Tl'. DI: ltDEYE S

gg H A - ),IA

esac

I l acgiiiido l)logl BII>B<lll(' v illr<)i B Illostl lr ea j

( g o. El o l) j( t ivo (s iidi< iii ir u ir n i n r< ro

g('Il('riid<> Bel<(l<)iil('Bt<)i'Ialll<'Ilt(' l)or <'l I)logra>Ii>i IL 1)BI'l li' d<". 1(i li<>ra<l<'l siat<'iii<i. El li i riicn>

I>n>1>ucBto por ( I siiBI I<) B<'I ' >lit n)(ll>< I<l<> dB<l( ( I t P(1;l<i, y si < B ni;iyor <Iii( (1 gcrier l<)
s< visir;ilizar L ii>i rii<saj< iri<li(;u><1<> <lii' B ii rriren> alto. y a < srcii<>r <Iii< I gcricr;lo

sc visiializ Lr; ri rri<'>>Baje lri<licarr<lo <Iue Be tr <t>i<1(' <iii iiiiir<'ro I>a j<>, 1)< ('Bt<- ni<>do. cl
usii;irio p u ede i r ( o t a r rdo < l riiiia r<> eliive hasta <Iia l o i i d i v i i i ( , C u a l>clo cl ii i i< n) B<ii
a('Pl t >ido. Bc vrsila lziil" < I ll I l><''r lea
J(' ir>di<'ILI)do ( l illlIII('l o d(' >lit('I lIo. i (I iic ll('I >los Ii<'('( ai l )ldo.

Sc i iist a al 1< ( tor i que ii>e jor( cl algo>'ir iii dc g('llci'<i('r<)l> < lP.
I l iilll('l'<)B el lit) l<" iii<lo l i f<iii('i(>Ii
rand( ) d c a wk. viat i Pri el c il)t i>lo arit< rior. El en<ii@<> <1(11)r<>gr;inia adi v i n a Be iiiiiestra
B c <>ritiriarioii .

$ cat a d i v i n a
!

JUEG O
!

!
!
!
!
!
!
!
!

!
!

Este shell script es un juego que consiste en


acertar un nmero generado aleatoriamente a
partir de la hora del sistema. Cada vez que
introducimos un nmero, se nos indica si el
valor correcto es mayor o menor; por ltimo, !
si acertamos, nos indica el nmero de intentos
que h emos neces i t a d o .
!

TRUE=O
VALSE=i
vale=TRUE
cont=0
!

!
!
!
!
!

! Condic i n de terminacin
! Nmero d e intentos
!

Clc u lo del valor inicial a partir de la hora


!

!
!

v ari = d a t e 1 c u t - c 12 - 1 3
v ar2= d at e 1 c u t - c i 5 - 1 6 '
var3= date l cut -ci8-19
res1= expr $ v a r 1 <<+ 10
r es2= expr $ v a r 2 L + 2 0 0
r es3='expr $ r e s i + $ r e s 2
r es5= expr $ r e s 3 + $ v a r 3
v alor = $ r e s 5
clear
echo
e cho ' ' +
e cho ' ' I ad i v i n a . E l obj et i v o e s a d i v i n a r u n n mer o .
echo ''1 Por Sebastin Snchez Prieto, Alcal 22-Oct-951''

6.7. EJEMPLOS DE APLICACIN

Qr RA-MA

18 1

echo ''I Email: sspCaut.uah,es


e cho ' ' +
echo
hile [ $vale = TRUE 1
do
c ont= expr $ c on t + i
echo
echo -n I n t r o d u c e u n n mero:
read numero
if [ $numero = $valor ]
then
!

! Si utiliza linux, elimine el comentario (!}


! de la siguiente linea y comente la que va a
! continuaci6n de la anterior (banner}
!
!

! e c ho A cert a s t e e n $ c o nt v e c e s
b anner Acer t a s t e e n $ c on t v e c e s
vale=FALSE
sise
if [ $numero -lt $valor ]
then
e cho $numero es b a j o
else
e cho $numero es a l t o
fi
fi
done

$
<.'~)u>o sabemns, cuando en UXIX b o rramos un are hivo es imposible recuperarln. A con
> i>)acin se presentan rlns utilidatles que uos peru>iteu borrar y recuperar archivos, res
1)e( tivamcnte. A estos progran>as los llamare>uos borra y re c u pera. La forma <le operar
~h l programa borra ser la siguiente: cuaudo deseetuos elimiuar un archivo. en vez le
invocar a la orrlen rm. cl archivn ser enviado (>uovidn) a un directorio ()culto que tle
>u)udu>)reu>ns .papelera, En este directt>rio se van a ahuacenar todas y cada uno de lns
rch>vos (iue lu>va>nos elin>inado. Adems. borra w}mit ir dos opciones, con una de ellas
))i>s mostrar el contenido co>npletn de la papelera. y cou la seguuda, todos los archivos de
lu 1> ) pulcra sern clindnados definit.iva>neute. El contenido del programa borra se >nuestra
>eg>luis>>le>)te:

$ cat b o r r a
!

BORRADO DE ARCHIVOS RECUPERABLE


!

182

C A P TULO 6. PROGRAM A C I N DEL INTRPRETE DE RDEN ES

!
!
!
!
!
!
!
!

Este shell script se encarga de borrar los archivos


que le pasemos como parmetros pero dejando una
copia de seguridad en el directorio oculto
.papelera. La orden que denominamos borra admite
dos opciones -v y -b. Con la primera se muestra
el contenido de la papelera, y con la segunda se
bo r r a .

!
!

!
!
!
!
!
!

Comprob a mos si la sintaxis escorrecta


!

1f [ $ i = ]
then
echo
echo ' ' + -

~ll

echo ''Iborra, borrado de archivos recuperable.


echo ''IPor Sebastin Snchez Prieto.
echo ''llcal 20-Dct-95. Email: ssplaut.uah.es

l''

echo, ' ' +

ylI

echo
echo Sintaxis: $0 [-v] [-b] archivo [archivo ...] )k2

echo
exit

-i

fi
!

Comprobamos si existe en el directorio


HDME el s u bdirectorio .papelera, si no
existe , l o creamos.

!
!
!

!
!

test -d $HDME/'.papelera

i f [ $?

i ]

then
medir $HDME/,papelera
fi

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 4! ! ! ! ! ! ! ~ ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
!
Comprob a m os si el primer parmetro comienza !
con un para tomar las decisiones
!
!
opor t una s .
!
!

param

if [

echo $i

I cut - c i

$ p ara m ]

then
c ase $i i n
-v) echo La papelera incluye los siguientes archivos:
ls $HDME/.papelera;;
- b) e cho E s t o y b o r r a nd o l a p a p e l e r a

RA-M A

6.7. EJEMPLOS DE APLICACIN

~<' RA-MA

18 $

rm $HONE/,papelera/+;;
-+) echo $0: $1 argumento no vlido >k2
e xit ; ;
esac
!

!
!

Borramos l os archivos especificados

!
!

else
echo -n >Est. seguro de que quiere eliminar $+? (s/n):
r ead r e s p
if [ $resp = s -o $resp = S ]
then
f or i i n $+
do
i f [ - f $i ]
then
mv $i $HOME/.papelera > /dev/null 2> /dev/null
else
e cho $i : N o e x i s t e > k 2
fi
done
else
exit
fi
fi

$
El programa para recuperar archivos slo admitir una opcin, <on la cual recupera
rentos todo el contenido de la papelera. El listado de la orden r ecupera se muestra a
<'onl hlllaeton.

$ cat
!

r e c u p er a
!

RECUPERADOR DE ARCHIVOS BORRADOS


!

!
!
!
!
!

Este shell script se utiliza para recuperar archivos


que estn guardados en la papelera. Estos archivos
deben ser pasados como parmetro a recupera. Si
desea recuperar todos los archivos de la
papelera, tiene que pasarle la opcin -t

!
!
!
!
!

Comprobamos si la sintaxis es correcta


!

1 84 C A P TULO 6. PROGR A M A C IN DEL INTRPRETE DE RDE NE S


i f [ $1 = ]
then
echo
e cho ' ' +
e cho ' ' I r e c u p e r a , r e c u p er a a r c h i v o s b o r r a d o s .
echo ''I Por Sebastin Snchez Prieto,
echo ''I Alcal 20-Qct-95. Email: sspaut.uah.es
e cho ' ' +
echo
echo Sintaxis: $0 [-t] archivo [archivo ...] >k2
echo
exit - i
fi
!

!
!
!
!

I )

yI

Comproba m os si el primerparmetro !
comienza c on un para tomar las
deci s i on es op o r t u n a s.

!
!
!

param= echo $i I cut -c1


if [ $ p a r a m = ]
then
c ase $1 i n

-t) if [ ls $HQME/.papelera I sc -s -eq 0 ]


then
e cho No hay a r c h i v o s
e xit 0

en l a p apelera

fi
e cho Recuperando t o dos l o s a r c h i v o s b o r r a d o s
for i in $HOHE/.papelera/+
do
mv $i
done;;
-+) echo $0: $i argumento no vlido>lk2
esac
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! N t! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
!
Recuper a m os los archivos especificados
!
!

else
f or i
do

i n $+
test -f $HOME/.papelera/$i

if [

$v = i ]
then
e cho $1 no e x i s t e
else

mv $HQNE/.papelera/$i

fi

RA- M A

6 7 EJEMPLOS DE APLICACIIl

HA-MA

185

E <>Pasiones resulta til disponer d<. na herramienta que conrpruel>P que todos los usua
ris l i<'en Im directorio de inicio (/lame) e iforme del espacio ocupado por cada usuario
> <-l sistema de archivos. En primer lugar aalizarenros todas fas entradas del archivo
/et c / p a sswd y llos quedarenros con aqellas <.uyo UID sea mayor que 500. ya que ste es
l prirrrer UID qe asigrra l.inx a los usrrarios reglrlares. Para otros sistemas simplemente
I<lificaremos, este valor. EstP alisis previo lo harelnos utilizando rin filtro basado en
awk. Urra vez obtenido Pl nonrbre de. los usuarios, cornprobarelo uo por uno si tienerr
>lir<<torio de inicio e / home. E Pl caso de que o l o t egan se nrostrar urr mensaje
rforrativo por la consola, y en el caso contrario se mostrar un mensaje con el tanrafro
> kilo!>ytes de espacio ocupado por dicho directorio.
!!/bin/bash

DIRIME=/home
LISTA USUARIOS= awk -F: '$3>=500 ( print $i )' /etc/passwd
echo $LISTA USUARIOS
for USUARIO in $LISTA USUARIOS
do
if [ - d $ D I R J IONE/$USUARIO ]
then
ESPACIO= du -s $DIRAONE/$USUARIO I cut -f 1
echo Usuario: $USUARIO dir. home correcto [$ESPACIO]
else
e cho Usuari o : $ USUARIO no t i e n e d i r . h o m e
done
El Iltiro programa que vamosa describir es un coversor dc nornbr<"de archivos de letras
rayrsculas a rinsclas. Adems, cualquier carcter punto y con>a ; ser convertido
Pn ll anto . . E st e programa puede servirnos de utilida<1 cando leemos archivos de
>r CD-ROI>>f, los cuales suelen venir en letras mayrsculas y contener cn ciertos casos
caracf PrPS pllIrto y <'.olrla> los clls les. coro ya sabelrlos, t'Ieerr llll sigificado <'.specral para
l itrprete de rdenes. El progranla verifica si los arclrivoson directorios, en cuyo caso
o se les modifica el ornbre. Verifica tanrbin i los archivos no existen, si ya estn en
Iilscrrlas. etc. Al programa err cuesti<n lo )remos bautizado con>o mami (maysculas
linrsclrlas). y su contenido se tuestra seguidanrente:
$ cat mami
!

!
!
!

CONVERSO R DE NOMBRES DE ARCHIVO !


DE MAYSC ULAS A MINSCULAS
!

!
!

if f: $1 = ]
then
echo
e cho ' ' +
echo ''I mami, convierte nombres de archivos de
echo ''i maysculas a minsculas y el ; en .

1S6 C A P TULO 6, PROGR A M A C IN DEL INTRPRETE DE RDE NE S

Q cRA-MA

echo
Por Sebastin Snchez Prieto, Alcal 22-Oct-95I''
echo
Email: sspCaut.uah.es
y ) )
echo CCy
echo
echo Sintaxis: $0 archivo [archivo ...] >42
echo
exit
fi
f or i i n
do
n uevonombre= echo $ i

I tr

[ A- Zi ; ]

[ a- z i . ]

! Si es un directorio, no lo convertimos
i f [ - d $i ]
then
echo $i es un directorio: no se convierte
! Si el archivo no existe, no se convierte
e li f
[ ! - f $i ]
then
echo El archivo $i no existe
! Si los nombres coinciden, no se modifica
elif [ $nuevonombre = $i ]
then
echo $i s e q u ed a como est aba
! Si el archivo ya existia, no lo sobrescribimos
elif [ -f $nuevonombre ]
then
echo El archivo $nuevonombre ya existe 2>ki
! No movemos los subdirectorios si existen
elif [ -d $nuevonombre ]
then
echo El directorio $nuevonombre ya existe 2>ki
! Hacemos el cambio
else
mv $i $ n uevonombre
echo Archivo $i convertido a $nuevonombre
fi
done

6 ,8. E EJERCICIOS 1 8 7

<> RA-MA

6 .8.

E je r c i c i o s

6.1 Realice un programa de shell que reciba desde la lnea de rdenes tres palabras y se
encargue de mostrarlas por pantalla ordenadas alfabticamente.
6.2 Repita el ejercicio anterior, pero leyendo las tres palabras de forma interact.iva.
6.3 Realice un programa de shell que reciba desde la lnea de rdenes dos palabras y
nos indique si son iguales o distintas. Si el nmero de parmetros no es correcto, se

deber; visualizar un mensaje de error.

6.4 Realice un programa de shell que reciba desde la lnea de rdenes los nombres de
dos programas ejecutables. Si tras la ejecucin del primero se detecta algn error,
el segundo no se deber ejecutar. Tenga <n cuenta los posibles errores e indique. si
se produce alguno. de qu tipo es.
6.5 Realice un programa de shell que re< iba desde la lnea de rdenes los non>bres de
dos archivos ordinarios y n<>s diga cul de ellos tiene mayor tamaf>o. Si el nn>ero
de argumentos no esel correcto, se deber visualizar un mensaje de error. as como
sl an>bos arch>vos no son ord>naros.
6 .6 Realice un programa de shell que tenga la misma funcionalidad que la orden cal .
pero, en nuestro caso, el n>es se especificar por su nombre y no por su mmero. Un
ejemplo dc utilizacin podra scr:
$ calendario junio 2005
6.7 Realice un progran>a de shell quc visualice por pantalla los n>neros del l a l 100.
as como sus cuadrados.
6.8 Realice un programa de shcll que pida por teclado una, cadena de caracteres y no
. finalice hasta que la cadena sea, f in.
6.9 Realice un programa de shell que elimine todos los archivos del directorio especifi
cado desde la lnea de <rdenes y cyo printer carcter sea la 1<'tra a.
6.10 Realice un programa de shell que busque en todo el disco los archivos indicados
desde la, lnea de rdenes.
6.11 Realice un programa de shell que enve uu mensaje a < ada uno de los usuarios que
estn conectados en es< momento al sistema.
6.12 Realice una calculadora, que <jecute las cuatro operaciones bsicas +, , + y /.
6.13 Realice un progra,tna quc se ejecute en segundo plano y nos avise cuando un deter
minado usuario inicie sesin en el sistema. El nombre de la persona se lo pasaremos
romo argumento desde la lnea dc rdenes.
6.14 Realice un programa que uos d el cdigo ASCII, en oct,al, de la letra o letras que
le indiquemos desde la lnea de rdenes.

188

C A P TULO 6. PROGRA M A C I N DEL INTRPRETE DE RDEN ES

RA-M A

6.15 Realice un progranta des hell que muestre un tnen de opciones. Con la pritnera,
enviaremos cnrreo a un usuario que debe ser especificado. Con la segunda. se nos
permitir editar cualquier archivo de texto. Con la tercera, podremos imprimir un
archivo de texto, y con la cuarta y lt i ma, pndretnos abandonar el programa.
6.16 Realice un programa de shell que nos avise de algn acontecimiento a la hora que
le indiquemos. Su sintaxis debe ser sfinilar a la siguiente:

$ avisa [hora:3minutos [mensaje]


6.17 Realice un programa de shell que bloquee el terminal por medio de una palabra
clave. La lectura de la palabra se debe hacer sin eco; para ello, se debe utilizar la
orden stty -echo; eleco se puede restaurar con la orden stty echo.

Captulo 7

Servicios de red
Hablar de UNIX sin hablar de redes de ordenadores implicara abordar el estudio de
este sistema operativo sin tocar un punto crucial en l: las comunicaciones entre compu
tadores. En cualquier centro de trabajo basado en estaciones UNIX es normal tener todas
ellas conectadas mediante una red. Esto permite obtener un mejor aprovechamiento de
recursos como impresoras, informacin o potencia de clculo. Esta red de interconexiu
puede extenderse aunos cuantos ordenadores prximos entre s fsicamente, separados a
l o sumo unos cientos de metros, en cuyo caso hablamos de redes de rea local o L A N

(Loca/ Arca /l/ehuork), o bien puede extenderse a zonas ms amplias, de mbito nacional
o internacional, en cuyo caso hablamos de redes de rea extendida ViAN ( Wde Ama /l/et
work). Dentro de las redes de rea extendida, es obligatorio comentar el caso de Internet.

Internet es la red ms difundida en mbitos profesionales (varios millones de ordenadores)


y est ntimamente ligada a UNIX .

7 .1.

I nt r o d u c c i n

Sea cual sea el tipo de red que estemos utilizando en nuestro sistema UNIX, es necesario
estableceralgn mecanismo fsico que conecte a los ordenadores entre s,y es necesario
establecer un conjunto de reglas o protocolos para poder ut i lizar este medio fsico de
forma compartida y eficiente, En el aspecto fsico existen ntultitud de sistemas de conexin
estndar, algunos de ellos se citan seguidamente:
Red Ethernet.

Red de pasode testigo en bus (Token B@s).


Red de paso de testigo en anillo (Token Riny).
En relacin con los protocolos. mundo UNIX son TCP / I P (' & c n s fer Control Protocol/In
ternet Pro/ocol). TCP / I P es un conjunto de protocolos desarrollados para permitir que
varios ordenadores compartan recursos a travs de una red. Estos protocolos fueron de
sarrollados por una comunidad dc i nvestigadores de DARPAnet. De hecho, la propia
red DARPAnet ut i liza protocolos TCP / I P . A ct ualmente existen multitud de redes que

190

C A P ( T ULO 7. SERVICIOS DF. RFD

RA-XtA

utilizan <'stos protocolos, como multitud ck'. coiiipanas <tuv 1>ropor('ionan pr<>(lu( tos qiie
s op<>rtan l'CP/ I V .
luternet es <iii;i cok~:cii> de reclcs quc inluye Arpanet. redes locales clc distintas
lllllvvl si(la<les V orgallisllios pllhll<'os, rvclvs iii>lit.'iles, et C. El t>n>inca Int('l ilpt se aplic'i a
todo el u >t<.rior <..oiijuiito de redes. Existe dciitro de I n t ernet ui i r o nj <nit<> ck siibredes.
de Defensa dv EE.UU.. coo(i<las c<>ino DDN (Drfensr Da/a IVeti<>o>k)f.Este sii1>roujimto
i< luye r<d(s dc i i ivestiga< iii. talvs (oino A r p anet, como algur>as de uso restringid<>.
T(>das <stas rrdes vstii i n t ercot>cctadas. Los usuarios 1ivdeii enviarse iiieiisajes entre
vlk>s desde rualqiiier pu iit o a cualqivr ot l o. a ll(> sci' qllv cilio (k' cs(>s pilllt(>s. pol' I"lzollps

d<. seguridad. teiiga su acceso restriiigido. Ocialtnente hablwi<k>, los pr<>tocolos Intrrnrt
soii siniplenieiite estnclarcs adoptados por Ia coii)uiiidad <le usiiarios para uso propio.
Como quiera quc los denomincinos, TCP / I P es una faniilia de protocolos quc pro
porcioiiaii uiia serie de f ucioiies <le 1>ajo nivvl eiiiplcadas por d i ferentes aplirari<>iies.
Existeu ot.ros protocolos estaf>lecidos para realizar <letennir>adas tareas. con)o enviar <o
rns> elect r)nico. transferencia de archivos o vr qui<'.n o cpiines estn coiivrta<los e otro
or<lena<for. Iiiirialmentv TCP / I P fue utilizad<> sol>re toclo en miniordenadores y mainfra
mes. aurique lioy en <la existen niultitucl (le fabricantes qe proporcionan 'l'CP/I P par(i
ordena<l<>res personales. Las aplicaciones TCP/I P t r adicion;ilvs ms importantes son:
Tr ansferen<ia de archivos: el protocolo <le traiisfervnria de arcliivos o FTP ( F i l e
1ri<r>sfer l'roto<()l) perniite a ini iisuario d<' cualquier ordviia(lor traer o enviar ar
e)iivos ck~r<le o l>aria otro ordena<lor. La segiiridad sc garant,iza por el l>echo de qiie
es iiecesario especificar un noiubre de usuario y una palabra clave para accedrr al
ordenador deseado. El siiario no plebe preocparar por el hecho cle que los <k>s
ordeiiaclorvs implica<l(~s iio tengan definido el inismo repertorio de caracteres. Ios
finales de lriva nn coincidan. o incluso que ejeciiten difvrentvs sisteinas operativos.
Conexin ren>ota; vl protocolo de tvriniiial <le red (te l n e t ) p e r i nite a los usuarios
iniciar una sesin vii cualquier ordenador cle la red. La sesin rviuota se inicia espc.
cificado el ordenaclor al que nos d('seanios conectar. Desde est>e instante 1>asta <ue
fiiiali< e la sesin t<>do lo cliie sv teclee cs enviado al otro ordeiiador. Hay que advvrtir
quc realnic nte scguinios habl <>ido ron >><>estro propio ordenaclor. pero el pr<>grama
tel net l i ace esto transparviite inientras est activo. Cada carcter qiie t v<;leamos
es envia<lo al otro ordenad<>r. Aiites d( iniciar la sesin en el ordvna<lor remoto, pr
razones de svguridacl. sv nos pedir iiestr<> noinbre de ronexi<>n y m)estra palabra
clave. Cilali<lo cerrainos la sesill, el prograiila t e l n e t fi n a l iza y >los ellcontrare
mos dv nuevo dando )r<lenes a nuestro ordenaclor 1<><a!. Las impleinentaciories de
tel ne t p ar a niicrordcua<lores iiicluyvii generalmente uii eiriulador de terminal para
los tr i ' i l l i l l a les n>s coill l l l l es.

Correo electrnico: esta iilili<lad pcrnute enviar iiiensajvs a otros usuarios de otros
ordenadores. Iiiicialrneiite, cada iisuario s(>lo se (x>nectaba dv forma asidua a iino <>
dos c(nnputadores. y era en esos ordeiiadorcs donde se maiitenan los buzon(is (archi
vos dv n>ei>saj< s). El correo elect rnico es uii fornia uiuy seiicilla de aadir inensajes
al hiizri de otro usuario. Existe un problvma con lo anterior < uai>dci utilizarnos or
denadores personales, ya <fuc estos no siivlcn estar coustantenicnte ciicendi<los. Si
ocurre lo anterior, el progr<uu i de correo iio lograr establecer la coiiexiii (.on el

RA-i> IA

7.1, INTRODUCCIN

19 1

ordrna<ior dest.irin, p<>r lo que no funcionar, adecua<lamer>te. Por esta razn, el co


rreo iiormaluieute es nianteuido pnr un si stema qiie est siempre coriectado. doride
podemos tetier u p r nceso encargado <lel correo continiianieiite. D< esta fnrtna, eti
el ordenador personal slo teudreuios qiie tener cargado el softv;are qiie nos permita
leer el correo almaceriado cn el servidor de correo. Este servi< io de < orreo <>lrctrntiico
ya fu< com<'titado en el primer capt tilo. <ntt la salve<l,<<l <leqitr ctitoncrs t>os lirnita
mos a la p<>sihili<la<1 <ie < uviar correo a lossuarios de la u>istria niquiua a Ia que
estbamos cnuect;idos. Realrttete. el corr<io no <s t.aii liniita<io < otnn lo visto iiasta
aliora. al coiitr;<rin. es posible ciiviar riiensaje a ciialquier persona qiie est iccesible
desde ruiestra red. Si niiestra red tiriie ar< eso t<Internet. prcticamerite lo tendr a
cualquier lugar del murido. Cuatt<lo se enva correo a travs de la red. es necesario
especificar tanto la iitqttina <lestiiio como el usuario iii cual va dirigido cl meusaje.
Los <lns aspectos arttcriorcs se agrupati y dan lugar a lo que se conoce como dirrc
ci de correo electrnico (e-r>t<i<l). Uiia direcci>ti de <:orrro electriiico po<ira ser
la sigiiiente:
pepe<llaut.uah. es
pepe es la pers<>na a la qiie <lirigirrios rl iueiisaje.
air .. aa . es es el doiuiuin asocia<io al itsuario pepe.
El carcter <fl setiliza con>o separador <i< lns <ios caiit pos, Dc liecho este snibolo < ri
ingls es <t/ si</rt.. pr<pnsici<ii qiie sc utiliza. entre ot ras cosas. para designar iui liigar.
pnr lo tatito la direccin pepe<ifaut. uah. es piiede leers<. con>o pepe en aut. u ah. es
L os servicios ariteriores det>eu estar preseritcs rii cuakfttier inipletiieiitaciti de TC P / I P .
E stas apli< acinnrs sigue t< iiirn<io uri papel niy irup<>rtante <'.n redes basa<las eti TCP/I P.
Sin <'nibargo, el iiio<io<Ic ittilizar las redes est cambiaiido r icittcmcute. El viejo ino<irln,
consistent' ti t ener varios ordena<lores autosuficierites < ri iina red, est siendo riio<lifica
<io, Ik>y en da podeios encontrarnos inst,;ilaciories en las qiie coiivivrn diversos tipos
<k' ordeuadnres, des<le micrnrnmptitadores hasta m<rinfrnmes. pasaneln pnr estaciones de
t rahajo (wor4t < ttions) y n i i n inr<iell<idores. Eri ciertas o< asinis tales ordenadores estn
configurados para realizar tareas niuy especficas. Aiinque a la g< t>te lr sigtte gttstart<lo
trabajar cori uu determinado nrd< iiador. ste p<t<'de soli< itar s< rvicios a l<>s otros or<l< t>a
dores coll<'ctados en la re<1. Al esqiierria aiiterior se le dcrioutitia ruodelo <k clicnt< servidor
o arquite tura <'li<nte-s<rvi<lnr. Un s<rvi<lnr nn es tnas que tili nr<lenador que pr<>porci<>
ria d< tcrniiiiados srrvici<>s al resto <l<- los orden<ldores <le la red. El clierite es el sisteuta
q<te iitiliza tales servi< i<>s. No es estrictauiente n< ce>sarin que el cliente y el servidor estn
eri <iiferiites mquitias, sino qiir fuieden estar rn l a rnisina. A '>ritinuacin se citan los
tpi<os s< rvicios preseiites <, n las red<.s actiialrs y que 1>ue<letl< sarrollarse perf<>< tariieute
d etitro drl mar<'o de protncnlns TCP/ I P .
Sistenia de ar<hivns de red: este nu;cariistno perriiitp, <i<.ceder desde tina mquina
a lns archivos aiiiiacna<ios eri otra de tina f orma ms transpareiite que f t p . D e
lieclto, iii> sistetti i dc 'irchivos <le red pcrrnitr a c<e<lrr a lns archivos rrmntos tal y
cnuio si estuvi<.sen cn nttrstr>< iikluiiia local (en u n d e t erminarlo directorio). No
l>ay riecesi<ia<l d. inplear iiiriguiia iitilida<l <le r'1 esp< cfic l>ara accr<lcr al sistema

192

( ' Al' 'I t'I.( ) , .

S E R )< I('l(3SDE R ED

RA-llA

<le ar< hivos rcu)tn. Esta < ;>pa< i<la<l vs >til por di fr r r nl< s >otivos: pn mitv ( ol<)car
<lis<.os gran<les v Iguuos (<nln>ta(l<)r<~. dejando acceso al resto. p< rn>ite trabajar
a diferentes grupos clv pvrson;>s < nmpartiendn informari<n distrito>ui<la y vs n>s fcil
re;>!izar c opi >s <i< scguri<i l <lc t<)dos los datos. Esta utili<lad <1( arcl>ivos <listriln>idos
cs propor< innacl>) pnr clifvrrntrs fabricantes, aunqu<' c l sisten>a n>s vxten<lido es vl
KFS (f@(tu)o)/ File S>/stvm) clc' Sun Ilicrosystems. ()tro >necanisu>n <lue se <st vx
trndiendn >nu< lu> y qur l r n )it c < c)n)l>;>rt ir ')rcl>ivos rn rv<l entre sistema '5)i>)<lowvs
v UYIX es samba,

Iu>presi<)u rcu>ot'): <sta utili<la<l pvrn>it(' acce<lcr a i>nprvsora de otrns nr<lenadorvs


tal y cnn>o si estuviese>> c<>(s t >(l>)s al nurstr<). El p>otocoln u)s cou)unn)vntv usarlo
para < stv pn)l)sil n es el Rr)>o/<- l i n(/>nnter Protocol <lel UNIX (le Bvrkeley.

Ejec(.i remota: este scrvi< i<) prr>ite que ci< rtos prngran>as purd;u> svr ejecut;>
<los vn otros < on>ln>tadnrcs. Est pnsibilicla<l <s >nuy ttil <u>u>dn trabaja>nos cou
n>d('necio>vs con pvql>r>)a <'apa<'i<lad dc c;lculo. Fn vsl.ns c;>sos es m< jor drjar que
ciertasplica(ionvs sc rj<.ctrn dc form;> re>nota. Existen diferente>s tipns de ejec
rinn remo> <, por ejeu>plo idican<lo qu(' el prograu> X sv eje('ute en la >nquina Y.
aunque (xistvn otros u)todos >ns sofisticaclos l>asados ru lla>nadas a proceclin>ien
t<)s rvn>otc)s RPC" (R<'n><)/e P)>oc<dure Cal!).
Servidores de inforu> )( in ci< red; cuando exist vn u>u< l>os orclena <lores en una red es
<cesarin ma<)jar diferentes tipos de nomhrrs: nnmhrvs <le usuario, palabras clave,
direcciones <iv orcl('na<l<)rvs, et<'. En estos csos. tr <bajar con toda esta inforn>acin
en cada )n>ptadnr pede llegar a ser una labor te<iiosa. Un < forma n>s sencilla
de mautener to<la <"sta iufnrmcin consiste en almacrnarla cn bases cle (latos dis
tribuidas vn I;) red. de >nancra que cuando se nccesitc alguna inforn>cin no l>ay
u>s quc solicitarl > a travs dc I rrd.
Sistemas cl< ventanas <>rintaclos a recl: dentro dv estos sisteu>as. cl >us exteudido
es X-A indo)v, Este sisteu)a prru)itv enviar a t r avs <lv la re(i la salicla grfi c <le
>u>vstra apl>c'l<'>n a los deouados t<'>'n))lvs X (uo'ualn>vl>te tv'n)alea gl" <f>('os
de all a resolucin).

7 .2.

I d e n t i fi c a c i n

Antes de pasar a explicar los s< rvi< ios <nu>ente<l<>s anterior>ente. es necesario rnno
(.'('l' <'n>nsv identifi>( a <')><la c()>uputador deutro de la re<l. Esta identificacin. vu vl caso
cle prntn<olos TCPi I P , o u n n>>nero binario d< 32 bits que diferencia a cad>< >n quina
conc("t <da a la > vd. (."on>o t rahajar < nn n>u)eros vr> binario resulta nu>lvsto. norn>alu>ente
sv ut.iliza una n<)tacin conocida co)nn notacin dvciu>al. En vst<' tipo clr nota(:iu te
nernos cuatro <dgitos d<ci>ales. <omprendid<)s entre 0 y 2.., separ ulos por puntos. A
conti>uu(cin teuen>ns un ejvn>plo d<' este tipo de nota(i<:
1 28.100.12. 1
El n>n>vro autrrior idr nt ifi< a ;< nn >nicn nr<lvn>lor dentro dc la rl . y vs ln quv sv cn>u)cv
nnrn>aln>< ntv con><> direcci<u Iutvrnct del cnn>puta<ior. ()bvi unvnte. dentro dc un ) n>isu>a

l<A-ltA

red iio pu e(len (x i s t ir d ( )s ordenixdores coii la i i i i s nra (lirr( ( i ( xx liiterriet. i<lentida<l. bi


t ilvis('lllos (llle Pxliplear' )rota('xil l)iii' ll is. I allt <'l'i(>r' i<l<ll)<'l <> sel'a ixlg() ('orxxo l<) slgulelxte:

10000000 01100100 00001100 00000001


As pues. en vista <le lo anterior n<> t(nemos qiic jiistihcar c l es la rixzrx del empleo <l('
la n<>tacin <lecinial,
A pesar de qxie la rxotacin <lecirrial (~ sencill;i. e preferible tral>alar coii ii oibr(.s
lgicos, tal<s conio dafne, amon. r i g e l <> nabucodonosor. ) i e<i)pie m)os esos nonihres
lgi( os para idexit ificar cadaiia de las rixqxxirx<xs de l;x re<l. del>er existir algn uxe( anisrxio
par'i t ra<lii(ir. <.a<la ll<lo de los ixoiiil>re ;i sii d i r eciri l l i t ernet. A<xix<t<te existen varios
iiit<>dos de tra<lxxcci(>xx, 1 iii;i ser<(iii<>, un<p)< rio el ms eticient( ( n l a m ay<)rii (le las
<><
>isiori(s, corisiste eri defiriir u r i
a r c h iv<> <pi <>ntenga l;<s tal>ls <le corresp<>ri(l< ncias.
Fste arcixivo eri Ux>1IX rs / e t c / h o s t s . y s i i c<>rit(nido p(><lr;i s< r similar a l r xinstrixd<>
s < gixl(lanlellt e :

$
!
!
!

cat /etc/hosts
Ejemplo de archivo de hosts
La sintaxis de cada entrada es:
<direccin internet> <nombre oficial

< ali a s >

127.0.0. 1
l oc al h o st
1 72.19. 16. 4
car dhu .a u t . u a h . e s
1 93.146.9 . 13 1
r a .au t . u a h . e s
1 93.146. 9 . 13 2
amo n . a u t . u a h . e s
1 93.146. 9 , 13 3
at on . a u t . u a h . e s
1 93.146.9 . 13 4
ap i s . au t . u a h . e s
1 93.146. 9 . 13 5
anub i s . a u t . u a h . e s
1 93.146.9 . 13 6
h or u s . a u t . u a h . e s
1 93.146.9 . 13 7
i s i s . au t . u a h . e s
1 93.146.9 . 13 8
os i sr i s . a u t . u a h . e s
1 93.146. 9 . 13 9
set h . a u t . u a h . e s
1 93.146. 9 . 14 0
n ef t y s . a u t . u a h . e s
1 93.146. 9 . 14 1
n e i t . aut . u a h . e s
1 93.146. 9 . 14 2
sel k et .a u t . u a h . e s
1 93.146.9 . 14 3
apo f i s .a u t . u a h . e s
1 93.146. 9 . 14 4
pt ah . a u t . u a h . e s
1 93,146. 9 , 14 5
t hot h . au t . u a h . e s
193.146.9.146 s e jmet.aut.uah.es
! Ot r o s o r d e nadores
1 93,146.56. 2 medi n a . a u t . u a h . e s
1 93.146.56. 3 mont an o . a u t . u a h . e s
1 93.146.56. 4 f o n s e c a . a u t . uah . e s
193,146.56, 5 q u evedo,aut . uah .es

loca lhost.localdomain
cardhu
Cardhu
Ra
Amon
Aton

Apis
Anubis
Horus
I si s
O siri s
Seth
Neftys
Neit
Selket
Apofis
Ptah
Thoth
Sejmet

ra
aman
aton

apis
anubis
horus
181S

os1r1s

seth
n efty s
neit
selket

apofi s
ptah
t hot h

sejmet

medina
montano
fonseca
quevedo

$
Est< mx hivo. >r<> p(>(le<ii()s <>l>s< i viii'. < (>i>t i< rw >iris list ( l e ( t i r e('ci<>rx('s Ite< iirt, uri ii <>ii>
l)re d<>rd< i)ad<>r. ii il i a s y l > sil>l<><1< ;ilgiri x>exit;iri<> p<>r ( i(l i l iie i,

194

RA-MA

c ' A l ' T ULO 7. SERV) V)O!> I))' RED

l'zar)clo lritvrnvt vr i pc<)(fia. la sol<i< i<rr interior <.ra factihlc. c'a<la sisteriia poda

tvrirr cii sii archivo / e t c / h o s t s v l l i stad<> <l< t<><las las n)()iiiue)s acresil>lvs. Actualrnvte.
siri c nil>argo. existen dcn)asia<los ordcnadons < ii lriteruvt, io <)iie l;i soliirir) ai)terior es
po('o \)f)l.
La sol)i<..in adoptada para solventar el p r o hlciii;i )uiterior r o risiste < ii cmplv;ir hases
<le' <lat<)s distribuid rs doiiciv sc aliiia<vnan le(s < ornpc>ii<l<'n< iris eritre i)ouihrd e iri()uin;)
y <lin( c in I r )tvrnvt. E sta bases (le <l'itos son iii iriipulaclas y ii iaiit< i)id;)s p<>r los servi
dores <ie r)onil>n s. Por razoriv <lv vfv< ti< ida<l y flexihili<lad, eri vez <lv vinplvar iiri inico
s< rvidor <le r)onihrcs < entralizad<) s<' vlilplcall veirios. La razll vs ()u(' a('t ualuieiite existen
d (masiaclas iristit.ii(ioi)es (ouectaclas a Ii i t v r vt . (o )o <)ue es )>o(<) prctico avisar a i i r )
svrviclor central c;uia vez <)u< rc ilizanios iin r a i i i hi<> (u iiu(str)i prc>pi;i rvcl. As puvs. el

manejo dc nouil>res se relvga a racia iustit ucir). Los s< rvidores d(' lloirlhr('.s forrlleul llll'(
< structiira eri rhc)1 corresponcli< ntc a l<i cstru< t<ira d< institilciov. Los pn>pios nomhrcs
d( las rii()iiinas sigiic ri una < strii( tura siiuilar. Un nonihr( t p ir o dc ord( iiador podra scr
ftp . E u vl caso aiitcrior, el c>r<)vi)ador pr('svr)tado <s uu servi(lor <le ft p p v r t< i)vc ivnte al
Dvpartruiivuto de Autoriiti< a <lv la Uriiversi(l)al d< Alcal (Espaa). Eri vl aso iiriterior,
el nonihn <icl orclenaclor es f t p . E l segiulo canipo aut i n d ica c)u< prtcii<>cc al Dcpeir
talrle lit o d( A i i t oni it i( a. El ( i riipo t( r(ero uah id( ntifi(.a a la ( i i )ivcrsidad d( A l c al< y el
iltimo es hace refercr)cia ;i Esparza, Dc.l nioclo ai)t< rior. cualcpiier <>rd<;iia<lor del iiiurid<>
()iie(ia ()iractcrizado. Al n)e< anismo ruitvrior s( lv (ono(.e'. ( onio organizaciri por don)iriios.
A la tc rminologa <)iiv sv utiliza para rcfvrirnos a unnoni1>rv de doruiuio se la conoce conio
Fully Qr<nlifird D<>m<rin Name (FQDN), Esta t< r)inologa suvlv svr la )ns a<irritada. ya
<)ii<. i)os pvruiite ohtvner iriforuiacin cl<'1 <l(>uiinio con slo sal>(r su nomhn . V o r ej <ir<
p )<>, vl douiinio i n t e l . c o m ideutifica ;i la rorpafii I n t vl, y el dorniiiio st a n df o r d . e d u
icl< ntific;< a la Universi(lad dv Stanfc)nl.
El rltin)o trniino chl F Q D N s <1< ten<.r uri sigihcacio espv<ial. >egiiiclaivntv s<
descril>eri algiinos <lv ellos:
com Esta ( xte r)siri vs vrnp)cada por 1<s (<>rnpauas <i otre)s iristitu(ioues coii)er( ialvs, tales
conu> ltel (int el . c o m).

edu Se en)pica para identificar iiistit i i ( i oues ( <lii(arior)ales. P<)r (jeniplo, la U i i v r sid ul
de Bvrkvlvy fberk el ey . edu)

gov l<lentifi(a a iina institu( in guhcriraiiieiital. Por (ju)plo, 11 NASA (nasa. gov).
m il E s em plea(la por clirvc< ior)vs militarvs. V(>r < jvi)rplo. ddn,mi l .
Casi i p)ls t)vi)v. <)(l( ies. su propia idvr)tific><cii). A (or)tiniiac'in s< nuivstr'ui ;dgiias (1(

ellas:
ar A r geritina

be Blgica

br Brasil

hn Hon<iiiras

it

mx Mxico

at A u st r ia

bo Bolivici

ca ('ar)ad

ie I r landa

jp .)apn

ni N i caragua

It ilia

R.A-MA

7 .2. I DENTIF ICAC'I(1N

ch Suiza

pr Puerto Rico

f r Francia

nl H o landa

do Rvpl>li< 11 Do11al'

uk Rei n <> Uido

cl C'llile

pt Por t ugal

no Nonlega

ec E(ador

cu Cuba

ru Rsia

pe Per

es Espl)a

de Alelnania

se Sue< ia

pl P<>lonia

f i F i ladia

cn C ll 1a

dk Dina>arca.

sv El Salvador

cz R( pl)lic C'.heca

195

gt C>aten)ala

us Estados Unidos
gr C'*reci;l

ve Vvnvzvla

Existen r<l< nes < UNK ( I u ( o s p er miten cooc(r tato el olhre dcl orden ldor al
(l< estamos coe( t>(dos colo el dominio al cu;11 pertenece. Si estalns trahaja<lo en 11
sistema UNIX v <Iervmos sal>vr s nolhre. tedr<>s <le emplear la orden hostname
<llse Inuestra a cotiaci.

hostname

Sintaxis: hostname
Ejvlplo:
$ hostname
apoll o

$
I.l host name es cl o11>n <Ie idvtifi<a >1<stn> <>r<h<l<>r v la n'<l. En el vjv>plo
; >t< rior, (.I 1hr( vs apo l l o .
Para sahvr vl (1>rv <lc< stn> <lo>ii<>, t< cm<>s <I< vlplv lr la <>r<l< domainname.
<'l IYa sit.>lxis s<' lllvst l'a svgu>dalvt v:

domainname
Sintaxis: domainname
Ejel plo:
$ domainname
a ut.u ah . e s

196

C A P l'UI.O 7. c)FItVIC.'IOS DE lt ED

><A-l>tA

En el ejerplo ar>terior, el dorir>iosocia<lo a la> qin(> apollo , , > 1;> qe cstarnns <.n
cctadns, cs aut. uah. es.

7.3.

R e s o l u c i n d e n o m b r e s y d i r e c c iones

Ya l>ernos indic>L(lo anteriormente la necesidad <le n f< rirr>ns a 1)>s distitas rrrculuir>as
pnr sn nnn>hrc lgico y nn pnr s <lirr(cinn IP. A>>que csa tra<lrcin s< pede hacer
a escal > local. lo 1>o>l cs <.1picar los srviios d< lo qe se cooce cnro servidores
de no>r>brcs. Estos s(rvi<lor(s, (orr><) ya l>c>nos ir>di<a<lo. snr>>quir>I>s <spccializadas er>
realizar esta labor de l r)>d(< i)n. Nnr>al>(te, di<.1>os servidores fon(L parte de r>a
base de <latos distrihida, ln c>r >1 pern>ite que la base <lc <latos sea n>s fiable quc r>a
(er>tralizada y. ad< rr>. (ada rqiao ec<.sit L aba<vena> toda la iformaci. Er> <sn
<le <lue un servidor >leorhresn cnozca la direc< i IV <lc ur><leterrnir>(>dr> r.quin;>,
pede pr(guntrselo a otro servi<lor. I)e este >no<lo se establece >>a jcrarq>ra cn rhnl que
pern>ite qc todo funior>e perfe<t>>Iel>te.
Si na prrsona qicrc conocer la direccin IP n la direccir> 1<gica d( calqicr ord(
ua<lor cn cl ruudo, podr utilizar (I prograu>a nslookup. cuya fucior>alidad y siutaxis
sc>cstra ('ol>tln>la('lo>l,

~TIS1OOkuP~

Sintaxis ;

n s l o o kup [ mquina]

I.a orden nsl o okup s< emplea para. determinar la direccin IP dc un ordenador <lel
cual slo conocemos su nnn>hre 1<)gico, o bien para conocer son>hre lgico shiedo s
direr< in IP. El progr;>>ll>> t>(l>e dos rl>ndns dc trabajo. el interactivo y cl no ir>teractivo,
Nosotros slo va>os a ver cl iterrn tivo. Para ('ntrar cu modo i>rteractivo, uo I)'>saremos
ingna opcin, y sc ut ilizarL co>o ser vi<lnr <lc non>hr( s ( l qe <ast e ('ollflg>11<lo pnr < I< fec
to. nslookup >rtiliza coro /)ro)1>pt el carcter ") . P ar > finaliz>u el pn>grarna, teclearemos
la orden ex i t.
Ej<)mplo:
$ nsl ookup
Default Server: dulcinea.uah.es
A ddress :
13 0 . 2 0 6 . 8 2 . 7
130. 2 0 6 . 8 2 . 1 2

(<) a )ero caber 1 nombre de >a mqucna cuya d)rece)n Ip es >a dnd(cada)

S erver :
dul ci n e a . u a h . e s
A ddress :
13 0 . 2 0 6 . 8 2 . 7
Nare:

A ddress :

gPS . f i S . uah , eS ()>eepnee>a)

13 0 . 2 0 6 , 8 2 , 1 2

tSX-1 1.>1>it .edu

S erver :
A ddress :

(()aaero aaber >a d)rece<da )P de >a mdqnxna cayo nombreee er Lndacado)

dul ci n e a , u a h , e s
130 . 2 0 6 . 8 2 . 7

Qc RA-MA

7.3. RESOLUCIN DE NOMBRES Y DIRECCIONES

Name :

A ddress :

ll '

t sx - 11 . m i t . edu ot espnesto)

18 . 8 6 . 0 . 4 4

128 . 1 0 0 . 1 2 . 1 (() o tero soben


cb nonbse dc to ncqncnocebo chvecctdn IP cs to tnAcodo)

S erver :
du l ci n e a . u a h . e s
A ddress :
130 . 2 0 6 . 8 2 . 7
Name :
dap . d s p . t o r o n t o . edu (Respuesto)
A ddress :
128 . 1 0 0 . 1 2 . 1

> exi t

Sintaxis: di@ Cs dns dominio t cons c cons +opt con -di@ opt
Existe una tendencia a ir eliminando la utilidad nsl o okup en favor de los programas
dig y host . La orden dig u t i l iza los siguientes parmetros:
qls dns es el servidor DNS al que queremos enviar la consulta. Este campo es opcional. Si
lo omitimos, dig utilizar el servidor de nombres del sistema (ver /et c / r e s o l v . con f ).
dominio es el nombre del dominio en el que estamos interesados.
t cons es el tipo de informacin que estamos buscando, por ejemplo:
a direccin de red.
any toda la informacin que exista sobre el dominio.
mx servidores decorreo para el dominio,
ns servidores de nombres para el dominio.
soa informacin administrativa sobre el do>inio, por ejemplo, quin es el encargado
de su gestin.
hinf o informacin sobre la mquina, por ejemplo qu sistema operativo ejecuta.
c cons clase de consulta realizada.
+opt con opciones de la consulta para enviar al servidor,
- opt di g

o p c iones de la consulta para el programa di g .

I.a forma ms sencilla de utilizar este programa es cuando preguntamos por ls, direccin
tic red de una determinada mi q uina, por ejemplo vamos a averiguar la direccin de red
< le vw.a u t . u a h . e s .

198

CA P T U LO 7. S ERVICIOS DE RED

4 dig www,aut . u a h . e s
~ ~ DiG 9. 1 . 3 + ~ www.aut . u a h . e s
global options: printcmd
Got answer:
->HEADER<- opcode: QUERY, status: NGERROR, id: 32103
flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
QUESTION SECTION:
; www.aut.uah . e s .
ANSWER SECTION :
www. aut. uah. es.
sphynx. aut. uah. es .

7684 6
768 4 6

IN

IN
IN

CNAME s p h y nx . aut . uah. e s.


A
193 . 146 . 5 7 . 3

Query time: ii msec


S ERVER: 130.206.80 . i i S 5 3 ( 1 3 0 . 206 . 8 0 . 1 1)
W HEN: Thu Nov 8 1 6: 4 5 : 0 2 2 0 0 1
; ; MSG SIZE r c v d : 7 2

Podemos verque www.aut.uah.es es un alias (CNAME) de sphynx.aut.uah.es, y que


la direccin de red de este ltimo (A) es 193. 146. 57.3.
S i queremos enviar un mensaje de correo electrnico al usuario chanCaut.uah . e s ,

antestendremos que averiguar quin es el servidor de correo electrnico encargado del


domlIllo aut. uah Bs.
S dig a u t . u a h . e s MX
DiG 9. 1 . 3 ~ a u t , u a h . e s M X
;; global options: printcmd
; ; Got a n swer :
->HEADER<- opcode: QUERY, status: NOERROR, id: 54418
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIGNAL: 3

QUESTION SECTION:
; sut . u ah . e s ,
ANSWER SECTION:
a ut.uah . e s .
a ut.uah . e s .
a ut.uah . e s .

IN

86324
86324
86324

ADDITIGNAL SECTION :
c orreo . a u t . u ah . es .
767 8 4
dulci n e a . u ah .es .
863 24
m ail.rediris.es.
2108 1

MX

IN
IN
IN

IN
IN
IN

1 0 corr e o . a u t . u a h . e s .
2 0 dul c i n e a . u a h . e s .
30 mail.rediris.es.

1 93.146.57. 2
1 30.206.82. 7
1 30.206. 1 . 2

7. l. ('OXEXI(<<f l<EKIOTA

g rtA-uA

1 99

guery time: 9 msec


S ERVER: 130.206.80 . 1 1! 5 3 ( 1 30 . 206 . 8 0 . 1 1)
WHEN: Thu Nov 8 1 6 :50 : 10 2001
M SG SIZE r c v d : 1 5 6

('<>rr < sta (nns>rlta avcrigrrarrr(>s (lu< (xist('r) tres s<rvid()res de correo en(argad(>s d<> es('
<lo>r>itrio, El pr im< rn (nr> < l <lrre Ierrerrros (l<r<' (<>r>t<>('I<ll' (1()) cs cor r e o . aut . u a h . es. si
<'sr<. r>o cntest;r (pnr eje)r>p)o, porqrr< s( 1)a idn I)> ir)x), er>ton< es del>ereros contactar con
<.1 siguierrte encarg)l<> (2()) <iues dul c i n e a . u ah . es . Er> rrltirrra ir>atan< ia (30). si ste
tar))poco corltest)l el>t<>1>('('spoder<>s < rrviarln a mail . re d i r i s . e s. Adicinal>>r('nte se rrns
<l;rrr lasa direcciotrcs d< r.r<l dr forma (Iue rr(> sea rrec<'sari;r rra segrrrr<la consulta a la l>nra
<I<. errviar el correen s.

7.4.

C on e x i n r e m o t a

('o)r>o r jempln de pr<>grarl>a de ((censo l(>rlrot<> )> Ul> <>)d<t<>ad(>r para ll>r('lal' >lila. s<sr()rr

< rr <'1. v;rrnos a clescril>ir cl pr<>gr<)nr;< telnet . Cn t e l n e t l a sesi(>rr se irricia espif< atrdo
< I <>rdetra(lor al < r>al nns <l<r<.n)r><>s correctar. D(s<l( < st<. rrrorr>< rrto, lr)rsta qru rr()s d<se<>
r>e<'terrru (llrralicer(>s l;< sesi<n), r<lo lo <l>r< t' le< r>r<>s ser' er>vi >clo )rl o>n> nr<l<.rr;rdor.
:Krrt< s <l< errtrar rr<)s piule nrustr<rnrrrl>re de usrrari<> y I;r palal>ra cle acceso. lr r vez
d< r>tr(>. to<l< > el traI>aj<) <t>re llever<>s a ( al)<) seje< rltr<r < rr I ord('nador r< rrr(>t(), ) llcatrn
<>r<l<'r<lor local si>r>plerrrerrt< (.st) 1>;<s;rnd<> if<>rn>a< inr> <lesde y Ira< ia cl rerrrrirral a tr;)v<s
<l< I r red. t e l n e t < s rrn progr rrrr > r>r>)A vera til ) rro r>i sita <ir)c el sisterrra np<r >t ivn <1<
1 rrr i(l>rin;< rvm<>ta sr r el rrrisrrro < irte <ur>1>leamns < rrrr<'stro <>r<lcnad<>r ln< al. As pes.
p<id>< m<>s. si>r rrirrgurr tipo de 1<>1>l<r>>as. inii;<r r>ll)> scsr<>11 VAIS (srst<'lr>a nperati((> d(
D></>t<)l E</ui/>r>:>>t C'ot7>omtro>< l d< s<l(' llll(rstlo ssl <'.rr; I. ) IX. y v i c e versa.

Sintaxis: telnet [servidor][puerto]


Eje)r>pl(>:

$ telnet grc.fis.uah.es
T ryi n g . . .
Connected to grc.fis.uah.es.
Escape characte r i s ' ] ' .

H P-UX grc 8 . 1 0 . 2 0 A 9 0 0 0/ 715 ( t t y p 2 )


l ogin : c h a n
Password: (N o se v z s u a t i z a )
$ hostname
grc
$ exi t

200

( . ' A P T ULO i , S ER%q('l05 DL l( E D

RA-Xta

logout
Connection closed by foreing host.

ssh

Sintaxis: ssh [-l login] [usuario@maquina] [orden]


El progrania (. li('iite ssh ( svcnr<: .i/iel/ o sl i( ll seguro) iios periite i i i i('i?Ir >iii;i Avai
(.'n ilfl

I q i i i l l l I v r o t ' l v v l( c l l t a r ' l ( i v e s P ii l ? 1 l i s l ?1. L?l l(lva l >?si('a ('A Alulll a i' A l a

< l< l progriuna t e l n e t ; Ai ( rnl>argo. ssh vs n>ii( l>oIs vera?til y segiiro qiie t e l n e t . D v
iiv(!ho. actalmeiit< t e l n e t a v 1ivd (..Osi<ler?Ir ol>soleto y Aii Iiigar lifl l>asfl<lo a o(iiparl<>
ssh. La v<uit?ija fiin<larnental <1( ssh va q>iv l <s ((nurii( i< iovs a (stalileceu <l(. uii raudo
A (gr() fll t r"lilalit ir ( ii< ripta(lfl t o rlfl l a i i i f<)rniaci ?i tr?ivs <l< la red. D A t e l o ( l o ,
aiique algiiien p>iv(1?i?< vclvr i la iiiforrria< i(>ri qiiv viaja a travs <lv ua rv(l ina( pira, o
po<lr liA('pi iiso (iv l?1 Inisriia p<)r vncont rarsv cifr;lfl.
E l('llip l o :

$ ssh v a l d e b i t s
The authenticity of host 'valdebits (172.29.16.51)' can't be established.
RSA key fingerprint is 1e:ca:60:02:dO:5e;70:57:e7:la:48:65:f5>31;42:84.
Are you sure you ><ant to continue connecting (yes/no)? yes
Warning: Permanently added 'valdebits' (RSA) to the list of known hosts.
chan(ttvaldebits's password:

$
A pflrt ir <l<' vst( (non>( rito. Al igiial (piv o< iirrv c(1 tel n e t . t <><lfls las (r<lvv qu< iuvo<ti
ll>os API li vjv<'llta ( lf ls P l ?i 111?(ti?1 r<'l(>t?i. Lrl pi i i l l v l '?i vv: ql l ( ' i n l ( ' i ?Illloa i lfl ( ' o v > (lll

( ii s sh . ta l y

( o i o l i c ' os v i sto ('. vl ej('rril)lo, ('A iiv(esario geii(ra r u r i' i ( l ?Ivv BSA q u ( .

vn l><)at(riors <'o('i(iori( svr utilizr>d i. ssh ?(<lrnit<' 1iiltiplvs op< i<>rica <l(' las que s<lo
(oinetar<i>os la ()p( iii - l q ( i v sv i i t i l iz a p ar a i i i ( l icar el n on>l)rv dv lo (/iii v ii l i I ql ii l l?i
rvn>tu en caso (lv q(iv A('a <lif< rvrit v <lvl vnipleado en la m qiiia lociil. Si fll fial coloca
l()s il?i ol (I<. Il, ( n l lig u

<i v i i < iflr i i a s v a i i i r e i i i o t ?l., sv ('lv('ilt ara l(l o r ( l(..n iii(l ic(l(IB ('n

l'i nlr(Juiii?i l'<'Illot a.


Ej( iiil )l(>:

$ ssh valdebits -1 ssp id


s sp(4valdebi t s ' s p a s s word :
uid=501(ssp) g i d = 5 0 1(ssp) g r o u ps=501(ssp)

$
l iii i V< z vjvcut l' i lfl ( >r(iv ( i d

( n v l ( a s <) <]vi vj( i p l ( )). Avgiiir<'Ii>os iii a t r?i Avai(ii v l ; i

ni(i q( l tila l( >('?I L


Eii <.As<> <l< qia lial>it iialiviit< iit i li< v vl progr?a t e l n e t

p ?ira irii< iar avsi(ivs rvin<>t;>i.

<ra r( <ui>iv(i(l?11>lv sstitu i r l<> l><>r ssh. A(>l)r( t o <l(> Ai lfl i l o r i i i a ( i ( i <ii i
iril<>riiiflci<Ii ( t r;il gi('fl y la r v(l l>or lfl(tiiv viaj i . l )(>('<> Avgili'fl.

t r a a iitv <A

Sintaxis: ftp [servidor]


ftp (F / / < I r < >~frr Pr<>>r)< s u 1>r<>gra> i<>< setilixa I> <ra >ra~f<rir ar< l>ivos
>l r<>a<I<>in><s <liar<t< s. i s ><>;i<iis iis<>. l igual <le oc>lrr< > teln et o s s h .
I>edo<> < jr><ar sistm;<s <N>< rativos <iif< r>tos, f tp s<' er>< arga <l'anluH'<r las f>e<'uNal >
III;<<l(s (ic < ml < sist( <;< y <I >fr ( r u<< ir>t ( rf <z>>if(>r>>><al >rsuari< > li>>al,
I'.j <s II<
>>:

$ ft p f t p .
Connected to dopey.rediris.es.
2 20-Bienvenid o a l F T P a n n imo de RedI RI S
2 20 dopey FTP ser ve r ( V e r s i o n w u - 2 . 4 . 2 - a c adem [BETA-13]( 1) ) r e a d y .
N ame (ft p .
331 Guest login ok, send your complete e-mail address as password.
Password: ( D i r e c c i n d e co z .reo el e c t r n i c o qu e no s e v i s u a l , i z <>)
230 Guest logia ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /docs/security/unix
250 CWD command successful.
f tp > l s
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
t ot a l
1956
d rwxr - s r - x

1 024 Mar
5 12 Mar

2 infoiris cert
24 infoiris cert

d rwxr- s r - x

6
3

e tc .

-r--r--r-- 3 i nfoiris cert 8 1575 Jan 9 1995 rfcl2 4 4 .gz


-r - - r - - r - l i n f o i r i s cer t
199 1 r f c 128 1 .g z
7404 Nov 30
-r--r--r-- l i nfoiris cert 6 2506 Jun 6 1995 sec .p s .gz
-r--r--r-- 1 i nfoiris cert 1 8027 Jun 6 1995 utnet . ps.gz
226 Transfer complete.
f tp > h a s h
Hash mark printing on (1024 bytes/hash mark).
ftp> prompt
Interactive mode off.
f tp > b i n
200 Type set t o I .
f tp> ge t s e c . p s . g z
local: sec.ps.gz remote: sec,ps.gz
200 PORT command successful,
150 Opening BINARY mode data connection for sec.ps.gz (62506 bytes).
!

226 Transfer complete.


62506 bytes received in 0.777 secs (79 Kbytes/sec)
f tp> b y e
221 Goodbye.

202

C A P l ' U L O 7. 'SERVICIOS DE RI I)

RA-MA

Para transferir archivos a o desde un conrputador remoto. se rrtiliza la onferr f tp. Cuado
se establez< a lrr correxi, el 1)rograrna r)os pedir urrorrrhr< (le usuario y s I>alahra clave
para poder iniciar la sesin en el sistema renroto. Una vez conectados. po<lrcnros r)t ilizar

todas las rdenes l>ropias <iel programa f tp.


Err el cas(> del (jerr)plo, l)en)os iutro(lu(ido como nonrbre de conexio anonymous, y
como palabra clave rrcstra direcciu de correo cl<ctrnico. Eso se debe a que estauros
acc<di(ndo a un servidor l nt ernet de f tp . el ()(lal tic))e establecido el convenio de dejar
acceso libre (pero controlado) al rrsrrario anonymous con clave de ac(eso igrral a nuestra
dire(cin de correo electrrrico.
Veamos algrrnas d( catas rdenes utiliza(fas desde f tp:
cd Sirve I>ara movernos por el rhol de dire< torios remoto.

ls Listado de lo arclrivos del computador remoto.


get f i c h 1 f i c h 2 O b t enemos arclrivos del computador remoto. El archivo f i ch l e s el
norbre <lel archivo renroto. y f i ch2 es el orrrbre que <lesearuos <larlr- al nrisruo err
nuestro ordenador local. Si este rltimo no se espc<ifica, se copiar con el nombre
origirral.
put f i c h i f i c h 2 C o n esto copiareur<>s ar<hivas locales en el ordenador remoto. El archi
vo f ichi cs el lo(al, y f i c h2, cl renroto. Ni get rri put a<lrit(n cara< teres comodrr.
Si <lcseamos c)r)picar conrodines, tendremos qrre enrplear las rdenes mget y mput,
mget f i c h f f i c h 2 S i m i lar a ge t p e r o admite caracteres corrr<>drr. Por cada arclrivo a
transferir se pedir confirma< in.
mput f i c h l f i c h 2 Si milar a p ut , p ero a<lrrrit< caracteres comodn.Por <ada archivo a
transferir se pedir confirmacin.
prompt Realiza. las transferencias sin solicitar corrfirrnacin.
hash Se rrtiliz r pua coml>robar qrr( la trarrsmisi()rr no se ha deterri(k>. Por cada 1.024 bytes
trarrsfcridos se visualiza el carcter ! . E sta orden es muy rtil ( (raudo utilizamos
lneas <lc transmisin dc baja velocidad.
! S( ut iliza para salir tcurporalnrente al shcll.

' ? Lista todas hrs ordenes de ft p ,


quit

D e sconexin y salida definitiva al shell.

close Descouexin,
La informa<.i)n que ft p t r a nsmite por la red no va <ifrada, por lo que prrede ser l>oco
re<..ornendable srrso crrarrdo transferimos informacin estratgica a travs de urra red poco
segrrra. En estos casos (s recorrren<lable hacer rrso <le sf tp que s< trata de rrn protocolo
de trausfereucia de archivos seguro.

7 .4. <.',ONFXI. J REN1()TA

11.-t<t A

203

f irme@
S intaxi s :

f i n g e r [ - 1 s p ] [ u s .. . ]

[u s @ord. . . ]

L?l o><l('11 f inger se u t i l iza para ol>tener inf<>rrrra( irr relaciorrada >n los usrrarios
(usl d< rra rru(lrrirra '.>ne(t r da a la re<l (ord). Si rro se sp<xifi<'a usuario. fi n g er v i
sr!;<lizar infurrnaci de tork>s los usrrarios <onectad<>s al sisterrra ('n es(' rrrornento. Si el
<rsrlario est? err lllr<.'strr< lrl?quina. >ro ser necesario esp(cifi<?u el or<lrrrador'. si ll<> lo est.
el carrrpo ordena(ior es n< cesariu. 'farrr)>i es posible invo( u. a f inger u t i l iza>sin slo el
rr<>rrrhre <l( la rrr<utrril!a <le l r f<>rrrra siguiente:

$ f inger
[qui j ote
Login
root
fisfar
fisfar
quimica
fisfar
fisica

C lquijot e . u a h . e s
uah.es]
Name
TTY
q2
System Manager
Dpto, de Fisiologia
q3
Dpto. de Fisiologia
q4
Dptos. guimor y Puif +ft p
D pto. d e F i s i o l o g i a
q9
D pto. d e F i s i c a
q 10

O ffi c e
When
M o n1 1:54
Wed 14 : 1 3
Wed 13 : 5 5
Tue 17 :48
2 : 0 5 Thu 12:47
26 T h u 1 3 : 5 7

Idl e
41
1:36
1:09

$
Err este caso. n<> ir>f(>rrrrar sot>re todos los usuari<>s <lue estn <orr(cta<lns ;l 1?> lllqrllll?r
quij o t e . u a h . e s en es< inst?u!t<.
L;rs opcior.s nrs conrn(s dc cata orden son l?rs sig! ricrrtes:

-s .W/>rt fonrr/(forruat<> corto). Co esta <>p<.in. f inger visualiza < l onrl>re d< correxirr
(loyr r! rr <<n! <.
), <'1 rr<>rr!1>re real, el raer>l>r( del tcrnrill?11 asociad<> y la lu>r?< de correxirr.
as .>rr><1!i>mero <lc <>fircirra v t(lf<>rr<>.
-1 Lo r/ forma/ (1<>r<r<ato largo). Corr esta opcin se visualiz?r tod<> 1(> (lue 1!<'r>>os ir><lic <(l<>
<orr la <>pci<>n -s y. ;><lerrrs. se rrr<stra los?<r< lrivos .plan y . p r o j e c t c o l oca<l<>s
rr <'l dirc< tor i<> de ir<i< i(> d(-1 <lsll?(ro ell '1<'st lrl.

- p ()!!!ir< la visrraliz<irr de l<>s ar< l!iv<>s .plan y . p r o j e c t .


1.. j< n <1
>1<>:

$ f inger sspCIquijote.uah.es
[qui j ot e . uah . es]
Login name: ssp
In real li f e :Sebastin Snchez Prieto.
Directory: /usri/people/ssp Shell: /bin/csh
Last login at Fri Qct 27 12:16 from chan(tlapollo.aut.uah.es

2o4 ( A v r v ),o -,. s)-.Rv)c)os nr; REn

BA-MA

Plan :
D irecci 6 n :
Sebastin Snchez Prieto,
Departamento de Automtica
rea de Arquitectura y Tecnologia de Computadores,
Asignatura: Sistemas Operativos
Despacho E314
T elfono : ( 9 1 ) 8 . 8 5 . 6 6 . 0 2
F ax:
( 9 1) 8 .8 5 .4 8 . 0 4
Escuela Politcnica.
Universidad de Alcal.

Email:
ssp<))aut.uah.es

tal k
Sintaxis: talk usuario[Cordenador] [tty]
L;r <>r<le)r tal k s < rrtiliza ))ara i(riel;(r (rrr ( eonvers)< irr <>rr <>tra )>< rs<nra a trav <k
la n <I. t al k < lis i<le. Ia ))alltall'r ell (los vellt 'll)as. ( <rarl(10 s(' ('st)ll)le<re la < (nrexirr. Io <)<u
t('('IeBII)(>s 'vrl H ))arar )l 1)l vvl>t Brin <I< 1>< rr>ita<1 srr))eri<>r. y to(l<> lo <le nos <va vier)e

a )>arar ;( la v<n)t'(rr ( ()<' I ( rrrita<l inferi<)r. l'ara r<(lil>rrjar la ver)tar)a t l < ar()r)os Ctrl-l y
) >ar)( ti)r <lizal' ))<lis(<r('l))os la t<.'('la (l( l l ) t e r r>1))('il] ( ' t ) l - ( .

O))( i<>rn s:

persona Es ( 1 rronrl>rl e <<)rrexi<)rr (l< l;< )>< )<s(>rr;.on <)i< n <1(searrros connrnic <rnos. Si
esta persorr < est ('n ot ra lrr i<)r)ir)a. terr<lrcm<>s <)n< in<lie;(r el rrorLit I<' la rnqrlrlra.

tt y

1 rr< ( esario < s)> ifi<r < I rrrrrrero <l< t < nnirr rl < rr ( aso cle <)n(' I r p( rs<>rra este e<>rr <
t a(l;( a rrrs dc rrrr t< nni;(I sill l l l l t l l (')<lll('rlt( .

I;j en) )) lo :
$ talk broncha<)lgps.fis.uah.es

ping
Sintaxis: ping ordenador
La or<len pin g p rrecle <rtili.arse )>;<ra <leterrnin <r si rrrr or<lerra<lor est vivo err ese
r(tometo. Si < I or(le)dor est<i < i>. (otestar a ping ))or (a(la rner)su je qu(' reciba. ping

' 8A-MA

7 .4. CONEXIN REMOTA 2 0 5

. atar estadsticas de tiempo de respuesta de cada uno de los paquetes euviados. Para
hualizar el envo de paquetes. pulsaremos Ctrl-c, pin g adn>ite diversas opciones. pero
iuisotros no vamos a entrar en mas detalles.

Ejemplo:
$ ping d u bhe
PING dubhe (193.146.9.72): 56 data bytes
64 bytes from 193.146.9.72: icmpweq~0 ttl=255 time=1.2 ms
64 bytes from 193.146.9.72: icmpweq=l tt1=255 time=O.8 ms
64 bytes from 193.146,9.72: icmpweq=2 ttl=255 time=O.8 ms
64 bytes from 193,146.9.72: icmp~eq=3 tt1=255 time=O.8 ms
64 bytes from 193.146,9.72: icmpweq=4 tt1=255 time=O.8 ms
64 bytes from 193.146.9.72: icmpweq 5 tt1=255 time=O.8 ms
64 bytes from 193.146.9.72: icmpweq~6 tt1=255 time=O.8 ms
64 bytes f rom 193. 146.9.72 : icmpweq=7 tt1=255 time=O. 8 ms
Gtrl - c
dubhe ping statistics
8 packets transmitted, 8 packets received, 0 / packet loss
round-trip min/avg/max = 0.8/0.8/1.2 ms

$
$ ping g a r b o . uwasa, f i
PING garbo.uvasa.fi (193.166,120.5): 56 data bytes
64 bytes f rom 193. 166.120. 5 : icmpweq=2 tt1=243 time=292. 1 ms
64 bytes from 193.166.120.5: icmpweq=3 tt1=243 time~326.9 ms
64 bytes from 193.166.120.5: icmpweq 4 ttl 243 time=320.6 ms
64 bytes f rom 193. 166,120. 5 : icmpweq=5 tt1=243 time=271. 9 ms
64 bytes from 193.166.120.5: icmpweq=6 ttl=243 time=370.3 ms
64 bytes from 193,166.120.5: icmpweq=8 ttl=243 time=332.3 ms
64 bytes from 193.166.120.5: icmpweq=10 tt1=243 time=213.3 ms
64 bytes from 193.166.120.5: icmpweq=ii tt1=243 time~309.1 ms
64 bytes from 193.166.120.5: icmpweq=12 tt1=243 time=352.2 ms
64 bytes from 193.166.120.5: icmp~eq=l4 tt1=243 time=296.3 ms
64 bytes from 193.166.120.5: icmpweq=15 tt1=243 time=310.6 ms
64 bytes from 193.166.120.5: icmpweq=16 tt1=243 time=334.9 ms
Ctrl - c
garbo.uvasa.fi ping statistics
17 packets transmitted, 12 packets received, 29 / packet loas
round-trip min/avg/max = 213.3/310.8/370.3 ms

$
< >iisi'rvese la diferencia rle tientpos que. aparect en los, rlos ejespos empleados, as con>o
i,canti(ad tle paquetes perditlos. En el printer caso se trata de un ordenador ubicado en
l i retl de la Universidad de Alcal. y en el segundo se trata de tn>a n)<fuina situada en
Fhda>wiia.

BA-htA

7 .5.

E l n a v e g a dor l y n x

lynx es un visualiza<lor <Iv p iginas llT KIL (h (/I>(rt<r/ n<ar/ np la>L</<((/e)<p(< pvrn>itv
l < >(aveg (< i<n vn (o<lo tvxto por la IV o rd l l / < /c IV< /> (((((v1. A(n><1v 1<> tns tipie<> (
en(pl< ar navegadorv grfi((>s <lvl tipo 'Alozill((, li<>n<pter<>r. (Ialvotn Epiphany o sin>ilares.
vn <i( tern>it> (<las o<'si<>nvs vs intvrvsant< p<><lvr cot>(ct (rs( a pginas D'el> utilizando ut(
tvrrnitlal ' ( l l a l n l n l((rico.

Al atranc;(r. lynx cargar una pgin ( 1<><al <> un ( UIIL 1(.'t>ifonn Rcso<re Lo<<>/ur)
rvt>lot a (Iue sel n (sp<'.('(flca(los ('u l'l ll>v(> (lc (t(l(ates..0('g>ll(la(>>el(t( s(' n>>lvstra (ll> <jvn(pl< >

de cn><> inv<>curen>os a lynx:

$ l yn x v v w . v 3 . o r g

The World Wide Web Consortium (pl of 10)


!Technologiea I News I Contents I Search
The World Wide Web Consortium (W3C)
Leading the Web to its Full Potential...

Activities I Technical Reporta I Site Index I About W3C I Contact


The
W o rl d Wi d e Web
Con s o rtium ( W 3C ) d evelops interoperable
technologies (specifications, guidelines, software, and tools) to
lead the Web t o
i t s full potential as a forum for information,
commerce, communication, and collective understanding. Qn this page,
you'11 find W3C nevs as w e ll as links to information about W3C
technologies and getting involved in W3C. We encourage you to learn
more about W3C.
W3C A to Z

+ Accessibility
+ Amaya
- - p r e s a s p ac e f o r n e x t p a g e
Arrow keys: Up and Dovn to move. Right to follov a link; Left to go back.
H)elp 0)ptions P)rint G)o M)ain screen g)uit /=search [delete]=history list

Las palal>ras <> fras(.s q(tv aparecen resalta<las son hiper< ulaces (Iue pvn(>iteu (notarnos
(fv unas pginas a otras y de unas URL a <>tras. Pulsan<lo las teclas dv cursor ;(rriha y
cursor abajo. el hii><renlac( activo ir < onmtan<lo, esto lo notaretnos por su can>1>io <le
color. Si <lu(rvn>os acce(lvr (I r u r s o i n<fic(>do por ( l h i p< tenla a ( t i v n , p (tls'(n>nos la
tecla ENTR AR . Para volver a la pgina antvri(>r puls (rv>nos la tecla <lv cursor iz(tul('r<la
y para pasar a la siguiente pulsaremos la tv( la (l( cursor (f( rv(ha. C',ou><> se pue<lv (prv

7.6. EJERCICIOS

R A-MA

2 07

inr. utilizando bsicamente las cuatro techas de cursor podernos movernos por diferentes
i RLs.
Otras funciones asociadas a teclas son las que se n>uestran a continuacin:
Barra espaciadora: pe rmite pasar la pgina hacia abajo. es lo mismo que pulsar la
tecla AvPg.
G: permite abrir na, nueva URL.
H : nlllestra la avuda,
g: sale del programa,

7.6.

E j e r c i cios

7.l A v e r ige el nombre de su mquina v el dominio al que pertenece.


7.2 haicie con t e l ne t u n a sesin remota en otro computador. q,Qu sistema operativo
est utilizando el ordenador remoto?,'Cuntos usuarios hay conectados al sistema".
7.3 Ut ilizando el programa de transferencia de archivos f tp copie en su mquina los
archivos /etc/passvd y /etc/group de una mquina renwita.
7.4 Determine la direccin IP ( d i reccin nutnrica) quc le corresponde al ordenador
garbo. uwasa. f i, Detertnine tambin la direccin lgica (FQDN) que le corresponde
a la siguiente direccin IP: 130.206.82.7.
7.5 Haciendo uso de lynx conctese alservidor feb v@v.w3. org.

Captulo 8

E l sistema X W i n d o w
El sistema X KVindow. conocido generalmente con>o "X". es un sistema de ventanas
ir(al>l('. que se ejecuta de forma transparente en red sobre diferentes plataformas y siste
u<;>. oi>erativos, El sistema X permite que los programas presenten ventanas, que pueden
iu('n( r informacin textual y grfica, en cualquier ordenador que soporte el protocolo X
N'i(low. Este protocolo especifica cul (s la informaciii que deb( ser transmitida entre
l ~ procesos a(tivos en el sistema X haciendo que se consiga una compatibilidad< no slo
al i>ivel de cdigo fuente, sino tambin a nivel binario. Gracias a este mecanismo podemos
ri(r niquinas con arquitecturas diferentes e incluso con distintos sistemas operativos
<i(rcambiando informacin por medio de una red local.
El sisteina X 'A'indow fue desarrollado en el lIIT {Instituto Tecnolgico de lvIassachu
~ (ls) ron la ayuda de la compaiia DEC {D igital Equit>ment, t'orporation). Su arquitecto
principal fue Robert Sheifler. X V ' i ndow evolucion a partir de un sistema de ventanas
<~arr<>liado cn la Universidad de Stanford conocido como sistema D'.

8.1.

Con e x i n en red en el sistema X % ' i n d ow

El sistema X Window est diseiiado para ofrecer sus servicios a traves de la red. Esto
><(rc decir que las aplicaciones que utilizan el protocolo X pueden utilizar la red para
<(< rr ambiar informacin. Para los prograniadores que desarrollen aplicaciones X % indow
' L'XI X { o c ualquier variante del mismo) ut ilizando lenguaje G. existe una biblioteca
l< i>oiiiiiiada Xlib que permite el acceso al sistema X abstrayendo el protocolo, lo que
l>< r>ite centramos exclusivamente en aspectos relacionados con la aplicacin. Existen
>r<>s servicios de n>s alto nivel construidos sobre Xlib y qlle proporcionan iina gestili
;ii> n>'s cmoda. Estos servicios se coiiocen como Toolkit, y c o ino ejemplos poden>(>s
< it>ir X Toolkit y OSF / M o ti f Toolkit .
Xlib proporciona servicios b;sicos como crear ventanas. priinitivas de dibujo como
iii<(as. crculos, arcos, rectngulos, etc.. as coino el (ontrol de dispositivos {teclado y
rai>n) y coniunicacin entr( diferentes programas. Los Toolkit son servicios ms avanza
ls I>asa(los en el modelo de programacin orientada a objetos. Estas bibliotecas permiten
l < (rea(in de ventanas de diferentes tipos; ventanas de dibujo, ventanas de meins des

210

CA P T t ' 1.0 tj. F L (>ISTEl<IA Y iVIND()A'

lkA-MA

plegal!les. <le ntettts de j ! ot<>n(s. <tc. T n j >in pertitett <lotar a l a s v < ntanas de u t ta
<lecoraci cott <>jjjeto <le poder ntattipttl <tlas t ts cttto<lantente.

La figura 5.1 muestra >t>>o es ht estrtn tura d< l sistetna X IVitt(fow. E la parte ms
superior se <'ncuentra la aplicacin, la cal perle ltacer ttso <l(. tod(>s l<>s servt('tos X
D'in<ioiv, los c>tales a su vez pr<len >tj>nyars<- ett los servicios de red.

Nodo A

Xlih

Protocolo de red

Protocolo dc red

Protocolo de red

Xlih

Xlih
Nodo B

ere>

Nodo C

Terminal X

Figttr;t i . j :

8 .2.

Terminal X

l ' l i e t ttr s y ser v id<>t<s X ett re<l.

M od e l o c l i e n t e-servi d o r

A la hora <le gestiottar los recursos de utltt led se emplea nut<ho el ntodelo cliente
servidor. 1Jn cliente es utt proceso <lue se ejecut>t. en ll<t t<o<lo de la red y tt(mesita recursos
ajenos a l. Un servi<.lor es un nodo de la red configttrado para proporcionar recursos a
otros nodos <le la red.

gc H.A-) IA

H.3. J U L' IKIPLICA ESTO PARA EL USLARIO FINAL ?

211

l l sistenra X )>Vind<>w se sirve <lcl nrc>delo cliente-servidor para inrplcnrentar su arqui


< -<r rrr le presvrrtaci(>rr ( rr ventanas. El servid<>r <lv X >)> incl<>w se ron<>< e con>o X-server y
~ (rr> proceso capaz <le nr ruejar el protocolo X j(rnto c<>rr l<>s dispositiv<>s fsios rrecesarios
, r1;><l<>, rat<)rr v par>talla o 1>;>ntallas). El svrviclor sc n(carga <le rvc.oger todas las rders
<rv se generan desde los dispositivos de (ntracla (r(rt>n y tvclaclo) y reerrvirs(las a los
.li< r>res a los cuales van clirigidas. Fl servidor tambin recoge las saliclas proc(dentes de
li>s < lientes, las cuales clcberr ser prcscrrtadas eu par!talla.
Los < lierrte>s X Kirrdow son programas que se comunican corr el scr vid<!r X a t r avs
:i< l 1>r<>toculo X. Esta corrrunicacin se pueril<' ll(r"rr a < al)<) a rrivvl local (clinrte y servidor
< '1! ('r('
>r>t I an vil la r l llsll >a rllqll r ira) o a r l avs d(' la I (d ( < l c ll('nt v y el s c rv rdor' sv
'Il<'II('r>tran en nrquiur>s difer(rrtes). En rmr( r'(d poder>>os tener varios lieutes y varios
~'r'i'i<l<>rvs activos. vjccutndosv sinrultnearnente c intercambiar)(lo informacin errtre si.

8 .3.

q Q u i m p l i c a esto p ar a e l u s u a ri o fi n a l ?

IIr>(> clv las prin<ipale vnrtajas dv. X r>Vindow ron rcsp(.('t<r otros sistenras < on ven
((u>as vstriba <)n quc I>odcrrros tener un clierrte cjecutrnclose er> urr <>rderrador d(- la 1(''(l
lifvrnrt< al nuestro y poder controlarlo por compl< to cn rrrrestra mqrriua. Por ejempl<>,
r rur< stro ordc r>ad<!r sc de)u>mirra Amon y en l i!ririan)os 1 servidor X, entorr<.es podrc
rnos irririar rrn (li< nt( X en <>tra nuquina (por ejemplo, Sphynx) y )>acvr qv. la salida
gr>ifi< a se realice c r) Amon. a srr vvz. Amor> e)>va al c li< nte que se vncuvntra err Sphynx la
r>rra<las s<le usuario (tecla<l<> y ratn). El <lic>>te se <jvcutar por n rrplvto en Sphynx,
p<'r<> srr vis(caliza< ir> se realiza cn Amon. A<lerns. anrbas n>quirras prrederr tcrrer arqui
rv< t >ll >rs corrrpl< t 'rlll( r)te difcr( nt( s ( PC. SPA R(' o (rn sp( ror(l( rrador) e in( l uso sist errras
p< rativos clifvrvrrtvs (Lirr(rx. FrveBSD. VMS, IRIX. '>Vindows. etc.).

8 .4.

U s o d e l s i s t em a X W i n d o w v e r s i n 1 1

'>'os a iniciar aqui l estudio dcl sistema X 4Virrdow <les(le el punto cle vista dl
srr;<ri<>. Supongarnos qrre vl sistema se encunrtra corrfigrrra<lo adenradarnerrte y <re vl
vnr<>rr><> X sv ir>ici>r de forma c<>rrvcta. ste cs el c~ ) de cualcluivr Ul>IIX comercial. Etr el
,r. <><1<'que cst rrtilizarrdo Liux, srr distribucin particrrl >r lc proporcionar informacin
>rr><> p<>rr< r n'rr< )ra vl sistnna <lv vvr>tan>rs. El sistenra X D'iu<lc)w dv I.inux sc dcno
:r>irr;> Xl r '3(>. Est< sistvrrr;r lr;r si<lo <lvsarroll)ulo p<>rrr gr rrpo <l( prograrrrad<>r< s dirigiclo
r 1);(vid K<'xvlblat y sv clistribrryv <lv f<>r>a gratrrit;( par>r sistvrr>as U.(IX (incluido Li
.'lllx ) 1)(ras<l<)s vlr proc<'sadc)1'< s i+03H, ]13 y Pvnt i(r(r>. XFre(')3 < srr > irrrplerrrvnt acirr <1<
X KK'ir><l<>w v< rsirr 11 li( i>rr (XI IR() <lc f<>rma,rbr(vi;rda) <lv libre <listril>uci.

8 .5.

A r r a n q u e y p a r a d a d e l s i st em a X W i n d o w

V >ra ini< iar vl sistnr>a X vr> (ru tvrrrrial grfi>. rrn>< vvz irriciacla la sesi<>n er> < l
~ r)ni>>al. gn>vrallllvnt( <1>uc r!r<>s l)> <>rdvrr star t x . a r)r>(l>l.ir algurras versiones cl< LJNIX
,'~ul< s<'r <>tra difvrntv. st a r t x < s rrr) progranra (ur>.shvll svriyt rl o rrllalnr< r>te ) clu<
vtl('llvrltra er> el dir< ( torio / u s r / b i n / X I l y q > l e vt>r') <'())ll<> rllr<.1'f
>. ('r>tle ('1 rlsrlario y < l

212

CA P T t .'LO 8. E L SI.J TEXIA .X i('lit'DOi'>r

l<r>t-i l A

prograia x i n i t . x i ni t vs v l p r o g r r l i ila (lu(' ll('vi) >1 ('i)1)(>('l ini< i<> ) ;irrii)i< i)v <lt 1 servicl<>r
X j ) u )t<> >t) 1<> prinivro c l i v l i tP (1e (' v i )l) vi ('(>ll)ii)l)<'ai' ('o cl s c r v i c lor. s t a r t x
sv

)iniinistra paro( fa<'ilitar 111 uari<> cl ii< io ck l it<ni>i Xiii neei<lacl cl< Conoer ;i foii<lo
la forni<1 cfe iuvoar al p r ograiiia x i n i t . s t ar t x t ) i a )'cl)ii<> (lu<pPAP ser ci>piacf(> <ii
nii(tro (liret()rio clv ar)aele y tlio<lifiii<lo por ('l iiiiario para < oiifigiirar la X. (1( 1)i<)(lo

a<leoi)clo.

t rla v( z ii)iia<lo Pl it< nia ot)('.rvarvmos (ii)e <')u)l>i i t l tno<lo clc vcf( o y e patitall i
aparccn) <livcros gr ti< o. f n a p r < vi)t;1< in t ipi(a 1)<fe ser la (l l i ( ( ' n i ) H".it r>i (ii l i i

figura H.'2.

[ohaodvaidaht tachao >S

<rhaot a>dahtta ao oaaahoto)$ tatrort w t o doo root a t a @ w. )>rS

ew ggggQ'
l )g)ll'ii H.2: Ap('C)O (lvl ).i tia (lv 'V('IIItu)ii . v K)II<l(a.

l';ir;i (1< t< n(r vl i tr>a y c l ( 'v<>lvpr pl ( o ) r<>l iii i i i t('Ipr< tp tl(

( r ( 1(I)( l> lilarp)o

iiiiltiii< a)i)vt( la t cla ("T H L + A L T + B A C f wSPA( 'f.. V ; i r r )ip nc> p n><!ux< ;t )ia
pr<li<la <lV.<l;it<> <)i)Vi< n( Ct( pr (vriainviitv r r <Ii> t<><la a(fvil;) ;ipli< :ii<ie ii)iia
(la. Por c jeinplo. i < ) i ii t e r i i i i n al P t>11110.i e<lit'ii)(l(> )ii) <1<><'uin('t <> ('<>ii vi. al f i n i i l i z a r
la X finliz 1 (l vrvicfor 1 ( o l el (( l i t or v i . i i Pte( irmi iit i( iii (1 t(xto ( ll i(' ctf);)
1() ('<lit aii<l< > sc 1><'r<iv)' a II<>vr <l)I< 1<> l11>i()iioalva<l<) f>rvvia)('t<' (a rnvia) < luc.
i)t iiic inos la op<:i<i -r (lc' vi p >1r;> r((i)pvrar Pl tr i l );>j<> itit( rriinipi<l>)).

S.t>. MANIPULACIN DE LAS VENTANAS

H :>(-X I A

8.6,

2 13

Ma ni p u l a cin de las ventanas

Fl )anejo del raton en X es idntico R como se realiza en otros entornos de ventanas.


leclatula que PnlplcRrenlos en las dcscrlpclones subslgulentes es:
Apuntar ll o v e r el rat hasta que su cursor asociado aparez(a sobre la zona de pantalla
( lPMadR

Picar Pu lsar Pl l)ntn del ratnn (generalmente el izquierdo).


lecciorlar Ap u n tar + p i r ar,
Picar dos veces Pulsar dos veces rpidamente Pl botn del ratn (generalmente el iz
qicrrln).
A.rrastrar Ap u n t ar + p u l s ar + n l o ver + soltar.
f. I > trol rlc las ventanas abiertas se puede realizar generalmente a travs del marco que
Plur <le ventanas cnloca alrededor de cada u8 <fe ellas. La figura 8.3 muestra un
>lllu tpico le ventana con sus llfcrcntcs pRlt('.s.

Figura H..h: VPtll8 tPI('8.

Las up(IIHcloncs lc piral('n rcalizarsc soblc una ventana estn dlsponlb)cs 8 tl'Rv(ls
i 1 1l(reo de <lecura(in (fe 18 1is18 o 8 travs dcl nlen de 18 ventana, Tanto el marco
> l('<'nl'acln ('unlu cl 1<'nlldr' 18 ventaR son rlependlcntcs del gPstol' d<' ventanas que
- >>1os configuradu (Motif . f v wm, twm. metaci t y . Olwm. wmaker. Ptc.), El len(1 dc la

' t 8118 SP
act i va picand<> co Pl ratn sobre Pl icono sit a(lo e la esquina superior izquier
l,l( 18 ventana. Las opciones del men de venta,a se puedrn seleccionar arrastrando Pl
- (1> hasta la npci<)n d(seada. pulsando la tecla que aparece subrayada e cada opci
l>1(' pulsandn la ('ulblnacl (le te('188 de la lis>18. Estas upclolles puc(lcn val'lar 1P
>g(stor('.s de vet(las 8 otros, un caso particlar de menl de vetana p(>dra ser <l
l>1> Rpare<.c Pn 18 figura s.db
GPcl Rlnlentc las opciones nl'Ls colun(s quc apHIcccn cn Pl nlcnl dr'. vPtR8 son las
-1" > l let PS :

2 14

C A V i i i ' UI.O R. EL SIS'l'llhlA X L ' I N I ) O U)

Hc ve

Rl t +F

Sl ze

R lt+F8

tiinimize

R l t+F 9

taxi)ize

R l t<'l'

) RA-NIA

Vigiiia 8).4: i)i< Iii de vviitaiia.

Opci

T(.( las

Signifi< ado

Restore

Alt+F5

Mo) e

Alt + FT

H< itaiira Ii;< vrnta<i i su t ; u a iio ori gi nal


Mueve uiia v<"iitana al lu gar q ue le i i i<liquvnwti iv
< li )Iit vl r a t n <> l is t ecl;is dv c u r sor . I '.n ( a i o d <
liacerl<> invdiantv las t .le <le cursor. la vv ntaa s<

Alt+F8

posicioiiar defiiiit i vammit i ) a n do s( pulse 1;< tecl;),


ElvlT H A It.
P vrinit e i o d i ficar ( 1 tei>ai> dv Iia vvta ( Iit i l i
z;ui<lo (1 ratn o l t . 1( <l u r s o r . Ei i <aso d<
lia(< rlo nivdiante las tvcla d u r s o r . l a vetaa s(

.izc

<limvnsioiiar de f iiiitivanlrllt(' ('llilil(kJse' pulse' la 'te

cla Elx(THAR.
Estel op('ill s<.' enlpl<'.a p'll a lilillllllizar o l('<)nlz;u' olla

Alt+F9

veiit. <iia. Una ve ntaiia icoizada i< tr ) msfornia < u n


icono, ocupa un espacio niiiiio eii lei pant;illa y no

Alaximize

Alt+F10

sv puede acceder a su intrior.


Maxi)iza el tamao de la vvt u)a para que sta ocu
pe vl mximo espacio posible.
Enva a la ventana a l a i l t i )a posiciii dentro dr,

Loiuer

Alt+F3

C'los e

Alt+F4

/lfinirnize

la cola de vviitatias. Con cit a o p c iii pv r ni i t i i nos vi


sll((l(zar aquellas vvIlt allai si t o ;las poI' deti'i <1v la
vntaiia activa.
Cierra l,i vent.aa y la aplicacin Iso( i)l i fiiializa.

Con)o ya b< Iiios iii<ii(ado. to das estas <>pvra< iones sv pue<lvii realizar <lirvctameiite
maiiipulando los eleiiivntoi qu e f o r ma)i l)i <1(coraci dv la v entana: si < ibar.go, este
)pecto est ligado al gest<)r de ventaas y puvdv existir difere< iai et r< iios y otros.
Lo Ins general cs que la vr nt aa se piivda rediiensioar arrastrando sus bordes (eii
alg<>i
sgestorvs no todos los 1>ordei son activos), que se pueda mover arrastra)id<> l;i barra
dv ttulo y sv piid;<iininiiz ir o m a x i m izar-i< staurar ut i l izari<lo los botones situados e
la esquina superior d< r((.li ( de la ventana.

8.7. CLIENTES X WINDOW

8 .6.1.

2 15

L a v e n t ana raiz

X Window es un sistema jerrquico de ventanas en el cual tenemos ventanas padre y


ventanas hija.Toda ventana tiene asociada una ventana padre de la cual depende, excepto
la ventana raz que es la primera que inicia el sistema. La ventana raz no tiene asociado
ningn marco visible, no puede ser redimensionada y tiene un comportamiento especial.
Esta ventana es lo que vemos como relleno de fondo y ocupa toda la pantalla.

8.7.

C l i e n tes X W i n d ovr

Los clientes X Window son programas de aplicacin que se comunican con el servidor
X a travs del protocolo X. Esta comunicacin puede realizarse a nivel local o a tr avs
de una red. Seguidamente vamos a dar una breve descripcin de los clientes estndar del
ist.etna X.

xclock
xclock es un cliente que visualiza la, hora, tanto en formato analgico como en formato
d iglt,al.

Ejemplo:
S xclock -update 1 -hd Blue -bg Salmon k

i>/

S eg /

F igura 8.5: Cliente xcl o c k .

Todas las opciones de xclock pueden ser consultadas en la correspondiente pgina del
manual o bien con la orden:
S xcl oc k - h e l p
Existe otro cliente denominado oclock que visualiza un reloj con un formato diferente de
xclock.

CA P 1 ' V LO H. VL . )I!)l'F.'<I:)< y D'INf [O'

216

; RA-f<[A

xterm
xrerm <s < l < li< r>tv est;>ud(r dcsarn)lk>do cn vl 1>[['[' p<)l' ('1 gr'up<) (I>rv des~ll'>'<)lk) X
>>Vii>dow. xterm p>'op<)n ior>a e>>u>la<'ir> <l< t>cm>ir>al y puk c orrai<1< r;>rsc ( oruo (1 (livn> <
u>as utiliza<l<). l'ar ir>i< iar el (liento vs sufi< i(tv cou tvclvr <Ivsdc ur> tvrrir>l I;> or<lcu
xterm. [ n i ( i a lu>(nt< ;> xt e r> sv 1< p>w<len pasar par>irctros ([uc <l<t<.ru>il' lLsp('('tos
c<ar>o cl < olor. tipo de k tra, ctc. [ Ina vez ii< iad<> xterm. < r> algunos sistvrr>as pu< de ar
rccr)nfigura<lo col<)car><lo vl ratn cr> su >rea <k.' v>s>la[iza< ir> y pula>uuk) sirultu>eau>cr>tv
la tecla. "Ctrl" j u nto con ('1 l)<)tr> d('recia> d(l >at>>. dr ('st( u><nlo podr< ros roo<ii[i< ar < I
ta>na>o dc k/< r>tar> y d< la fuente dv k'tr;>.
Fjvn>pl<):

$ xterm -font 10x20 -bg >rhite -fg blue k

3054 2
3061 'P
3260 tty 2
3261 /
3275 tty 2
3271 pts/ 8
3299 pts/ 8
3300 pts/ 8

Ss
Ss
S+
S
S
Ss
S
S

0:00
0:00
0 :00
0:57
0:00
0 :00
0:06
0:00

3302 pts/ 9
3349 pts/ 8
3350 pts/ 8
3351 pts/ 8
3352 pts/ 8
3310 pts/ 8
3374 pts/ 8
3398 /
3494 pts/ 9
3497 pts/ 9

Ss +
S
S
S
S
S
S
Ss
S
S

0 :00
0:00
0 :00
0 :00
0 :00
0 :30
0 :00
0: 00
0 . 14
0: 00

3502 pts/ 9
S
0:00
3504 '7
S
0:01
3625 pts/ 9
S
0:04
3627 /
S
0:00
3651 pts/ 8
R+
0 :00
lchangvaldebits chan]$ g

dbus-daeeon-1 systee
r hnsd -- i n t e r va l 2 4 0
x ini t

X :0
xtera -geoaetry +1<1 -n login

bash
Dee

xtere - f o n t 1 0 x 20
bash
xeyes +shape
xload
xconsole
xclock
/usr /bin/galeon-b in
/usr /libexec /gco n f'd-2 14
/usr/bin/esd -terainate -nobeeps -as 2 -spanfd 33
giap
/usr/l ib/g>ep/2.0/plug-ins/script-fu -giap 6 5 -run 0
eog xcloct<.gif
/usr/ l i b e x ec/ eog- i a age-vi e><er - - o a f - o c t > vat e - i t d xOAf I
evoluti on
/usr/libexec/evolution/1.4/evolut.ion-alero-notify o
ps ax

Figur > H.t): C'llvr>tv xterm.


l'ara ol)tvner mayor ir>form u i pu< dv <x>saltarse la p>igina c<)rrcspor>divr>te del u>a
rral o l)ler> ejecutar I ol dvl>:

$ xt er m - h e l p
Fst<) ltiu>o va apli('al)lv a cuak's([>ri('ra d(' k)s clivrrtes ([u(' (.'it>uoa (' ('atc pu to.

xcalc
xcalc cs ur>a cale>rladora cientfica rr>uy scr>cilla (Iuv p>ledv ser maneja(la tat.o por
n>v<lio dvl ratr> con>o p<>r <1 tv< la(k) nun>(>rico.

8.7. CLIENTES X WINDOW

RA-NIA

2 17

Ejentplo:
$ xcal c

3.1415927

DEG
tF

CEr C

RC

san

coa

t en

DRG

EE

l ag

lo

g "x

1/x

xi

I NV

s
n

~ xl

STO

RCL

SN

QN

+(

F igura 8.7: Cliente xcal c .


Esta calculadora puede operar haciendo uso de la notacin polaca, para ello tenemos
q11e utilizar la opcin -xpn.

xload
xload es un indicador de la carga del sistema. Puede utilizarse para comprobar cul
ha sido el grado de utilizacin del sistema en un determinado intervalo de tiempo.

Ejemplo:
$ xl oad - u p d at e i k

Figura 8.8: Cliente xload.

xman es una versin grfica del manual de UNIX. Proporciona un mecanismo simple
i>ara obtener cualquier tipo de informacin relacionada con UNIX. xman incorpora todas
las secciones del manual:

CA P T U L O S . E L S ISTEMAX WINDOW

2l8

RA-MA

1. r d enes de usuario.

2. Llamadasalsistema.
3. Subrutinas.
4. D i s positivos,
5. F o r m ato de archivos.

6. Juegos.
7. Miscelnea.
8. Administracin del sistema.
9. N u e vo.

Ejemplo:

Figura 8.9: Cliente xman.

Pulsando en elbotn "Manual Page" podemos acceder a cualquier informacin que


nos interne. En el caso del ejemplo se consulta la seccin de llamadas al sistema y dentro
d e all la llamada "sociret" .

xedit
xedit es un editor de archivos de texto ASCII que puede ser utilizado en lugar de vi .

Su manipulacin es muy sencilla, pero su funcionalidad es mucho ms restringida que la


de vi.

Ejemplo:
$ xedit /etc/services 4

8.7. CLIENTES X WINDOW

RA-MA

2l 9

cocksc clast4e 0dpstt tor o~c s c l o

~
c tre t pee,b)
feetteb ceteteaabec.b)
it cacheo(it cbel. Iet Cpps. It proCoaQ)l
bdt crestas 0 0dpolc tol ceeecicattlal0d retarse &esctipcot

p~

ta r apear(lee e o~ cec r l doel thls 0010CCC

proracol tclip cbtth alll bsase& tsr c~ c a ctcm. tbeoe t~iras


ce dsft4& I cafepedt.bs )be csrcerlp aederocoad te reste
141de

perpaea
Laoel ~

t l l al

lpat \telec pratocolo


Ipsd 1cslatprococolc
IPZ - Pscsll pcatacsla
tot01 caer lc4tfece &coles
rtt-t k tp t )00-td(blpro~o)
tetaot llcbo ht tl plotocol
L40004 tll ~ btb pote

hpple \e)k
Loe lcoel pockat 1Ctf
aco

kc pel
Ctebl(t)

ip(t)
eetlltb(7 I

th{t)

de())

pertrttu)

tbe oactet hec Cha Ielbceto& llpe, eblch cpcclfte tha ~ c


0lttc {beteC)p detl0& Ctpeo erc

atl lel

et p d&
tosr&00 eatscek rellehls, CCOHPef, CICI0Ctlebese& bfto
ll~
1 ae c -of~
&eco ll141
ollal eacha10 et b cep

pot Cod

Figura S.10: Pgina del manual de la llamada socket.

xset
xset es un cliente que podemos emplear para reprogramar ciertos aspectos relaciona
{los con el funcionamiento del sistema X W'indow. Entre ellos podemos citar el control del
volumen del teclado, la aceleracin del puntero del ratn, los protectores de pantalla, el
~taelo de los LEDs del teclado, etc.

Ejemplo:
$ xset s i 0 0
$ xset m 5
En el primer caso activamos el protector de pantalla y definimos que se active despus
lic 100 segundos transcurridos sin que se ut ilice ningn dispositivo de entrada. En. el

~gundo ejemplo definimos la velocidad de] ratn. Si el nmero indicado en el segundo


{ aso es grande, la velocidad del ratn ser muy alta.

xsetroot
xsetr oot se emplea para modificar el fondo de las X, que puede ser un color slido o
Irn mapa de bits.

Ejemplo:
$ xsetroot -solid DarkoliveGreen

220

CA P l T U L O L<. EL 8ISTKKIA X WVINDOA'

' BA-XtA

Quit Sava Load (etc/cervices

Use Control-S and Control-R to Soarch.


File /etc/services apenad RENO ONLY,

/etc/services
Netuork services, Internet stUle

RENO O NLY

L7

g
g
g

Note that it is presontlu the policu of IRNR to assign a single uell-knoun


port nuhber for both TCP and UOP> hence officlallg porte have tuo entries
even if the protocol doasn't support UOP oparations.

g
g
g
g
g

Updated fron http://uuu.lana.org/asslghets/port nunbers and other


sources llka http://uuu.frcebsd.org/cgi/cvsueb.cgi/src/etc/cervices
Nau ports uill be added on request if the>>have been officlallg assigned
bg IRNR or are needed bg a debla package.
If Uou naed a haga llst of usad nunbers pisase install the nhap package.

tcphux
echo

ocho
d io~ d
discard
sgstat
dagtihe
dagtihe
netstat

qotd
hSP

1/tcp
7/tcp
7/udp
9/tcp
9/udp
Il/tcp

g TCP port service hultlplexer


sink null

slnk null
usara

13/tcp

13/udp
15/tcp
17/tcp
18/tcp

quota

g nessage send protocol

F igura H. l l: Cliente xedi t .

x mod m a p
xmodmap se ut.iliza para drfinir un <napa con la <lefini<in del t<+lado. <le este nro<lo
< s posihlr etahlerer ut>a, correpot>drncia entre lo cdigo e>>viado por rl teclado y lo
caracter<s <lue asocia>no a <li< hos c<><ligo.
Ej< n>i>lo:
$ xmodmap, Xmodmap
En el eje>nplo anterior estahlecento la correpondrncia it><lira<la anteriortnctc por tnedio
dr la d<.finicin contenida en cl arcl>ivo .Xmodmap.

xlsfonts
xlsf o nt s v i sua)iza una lista <on todas lts fuente diponihles.
Ejell>pl<>:
$ xl s f o n t s
-adobe-courier-bold-i-normal--0-0-0-0-m-0-iso8859-1
-adobe-courier-bold-o-normal--0-0-75-75-m-0-iso8859-1
-adobe-courier-bold-o-normal--10-100-75-75-m-60-iso8859-1
-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1
etc.

8.7. CLIENTES X WINDOW

I<A-htA

221

lucidasanstypewriter-bold-14
lucidasanstypewriter-bold-18
lucidasanstypewriter-bold-24
lucidasanstypewriter-bold-8

xfontsel
xf ontsel p ermite visualizar la composicin de los tipos de letra y seleccionar fuentes
que pueden ser utilizadas en otras aplicaciones.

Ejemplo:
$ xfon t se l

ABCDKFGHJi2JWVOPQRSTKllAKA2' /0129455789

abcdefgh/jh/m nopalrs tu vauxyr ERAAEOPpS//j/


'""/ ...w ~ B

F igura 8.1'2: Cliente xf ontsel .

xfd muestra en una ventana los caracteres que forman una determinada fuente ti
I wgr fica.
Ejemplo:

$ xfd -fent -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1 k

xmag se emplea para ampliar una determinada arca del entorno de trabajo {aplicacio
rs. botones, iconos, fondo, etc.).

Ejemplo:
$ xmag k

CA P T I . LO rr. EL SISTE!<IA X. KINDO>>t>

222

-6<>ny-Fiael ~

(c, RA-htA

aa .
f 4)rm al 16-120-100-10(K-60-IS0%&1

~Quit .:;j~rr~ [% J[ rf
selacta charactat
ra<>rra: 0><000001 (0, 11 thru 0><0000ff (0, 2553
ur>r>erlaft: Ox000000 (0, 01

0 1

PQ
a

b n

Vigrrra H. 13: Cliente xfd.

xrdb
xrdb vs rrn gestor d< la base de recursos (.r( r@sor<me <f<rt<r f><rse).Se utiliza para que < l
usuario prrvda definir las propiv<la<les <fv las distirrtas ventar<as. Este prograrrra se invoca
normalnrerrte al irriciar la X. El archivo < lasico d< recursos desrrario suvl l enonrirrarsv
/. Xdef ault s . Este archivo svt iliza para defiir aspe< tos gerrerales <l< la ventar>r< r az y
de los clientes. f os rv< rrrsos puvdvrr ser <lefinidos vrr < rtalquier instrurr< llamando a xrdb <lv
forura n>anual. Veamos un <'jvrrrplu: suporrganros q<r< a partir de urr nr<>nrento <lecidinrus
quv el reloj xcl oc k d< ba tener rur dterrnirrada aparien< ia por d<fvcto fond<>, <on o sin
segrrndero, colur de manecillas. etc.). Err este caso poden>os <l<'finirnos <m deterrnirra<lo
arclrivo dv recursos asociad<> al reloj y quv d<nominar<r>r<>s RecReloj. E l <.<>rrtvni<l<> <lv
<stv arclrivo <f< rv< urs<>s poclr.a svr < l sigui< ntv:
$ cat RelReloj
x clock+updat e :
x clockharrds: y e l l o w
xclockhilight: royalblue
xclock+background: lightblue
Si a continuacirr jvcut unos la ordvn xrdb RelRel oj , t o dos los tnrvvos xclock que larr
< vrrros tendr>r ltus cara< tvrsticas dvfirridas en el archivo dv rvcursns RelReloj . El formato
dv los arclrivos <l< recursos svra analizado cu posteriurida<l.

8.7. CLIENTES X WINDOW

223

m fi
Figura 8.14: Cliente xmag.

bitmap
El cliente bit map se puede utilizar para generar un archivo de mapa de bits para su
t~~~ posterior. Con el botn izquierdo del ratn dibujaremos puntos, lneas, crculos, etc,
't con elderecho podremos borrarlos.

Ejemplo:
$ bitmap -bg white -fg black -size 16x16 k

~ FUe ~f4ll f~

aseas en ~

Li
I

~F lee4~Fill

Figura 8.15: Cliente bit map.

li
sa

224

CAP T U LO 8. EL SISTEMA X WINDOW

RA-MA

appres
Appres visualiza los recursos asociados a una aplicacion.

Ejemplo:
$ a ppres x c l o c k
x clock~update : 1
x clock+hands: y e l l o w
xclock+hilight: royalblue
xclock+background: lightblue

editres
edit r e s es un editor de recursos que permite definir de forma dinmica las carac
tersticas de los clientes X. Una vez que estamos contentos con la configuracin, sta se
puede salvar en un archivo de recursos.

xkill
xkil l s e u t i l iza para finalizar la ejecucin de un cliente X. Para ello ejecutaremos la
orden y con el raton seleccionaremos el cliente que deseamos eliminar picando sobre l.

xeyes
xeyes es un cliente en el que aparecen dos ojos que miran siempre a la posicin del
ratn.
Ejemplo:
$ xeyes +shape k

Figura 8.16: Cliente xeyes.

xlsclients
xlsc l i e n t s genera un listado con los clientes que se estn ejecutando en un determi
nado dispositivo grfico.

H.H. MANEJADOR DE VENTANAS

225

Ejetllplo:

$ xlsclients
d afne.aut . u a h . e s
d afne.aut . u a h . e s
d afne.aut . u a h . e s
d afne.aut , u a h . e s
d afne.aut . u a h . e s
d afne.aut . u a h . e s
d afne.aut , u a h . e s

/usr/dt/bin/dtfile -noview
dtterm -session dta00368 -sdtserver
/usr/lib/netscape/netscape-communicator
xplaycd
xclock
lyx
xcalc

XV

8.8.

Ma ne j a d or de ventanas

Fl manejador de ventanas es otro cliente X. El usuario final puede elegir entre tnlti
;+~ maiiejadores de ventanas existentes. Algunos de los ms extendidos son: f vwm, olwm
~>/~n Look Kin d ota Mariager), mwm(Matif H' i n doutManager). m etacit y , A f t e r S t e p ,
~lightenment, gwm,ctwm, twm. WindowMaker, etc. Los manej adores de ventanas indica
i ~ ii<>existen para. todas las plataformas UNIX disponibles en el mercado.

8.9.

Op c i o n es de inicio de los clientes X

Aimqe cada cliente X pueda tener sus propias opciones de arranque, algunas de ellas
~ ~~ relativamente estndar. stas son las opciones que vamos a comentar en este punto,

8.9.1.

Col o r esde primer y segundo plano

El color de primer plano (fo reground) hace referencia al color de los elementos del
!i te situados en primer plano. Por ejemplo. en el xt er m es el color de la letra. en el
xclock es el color de la marca de horas y minutos, en la calculadora es el color de las
~.tr i~. etc. El color de segundo plano (background) es el color de fondo del cliente X.
l -- opciones de color de primer y segundo plano se especifican con los parmetros -f g
'.~~~ground) y -bg (background), respectivamente.
Ejemplo:
$ xterm -fg green -bg black k
L ~ colores especificados para el primer y segundo plano aparecen definidos en el archivo
texto /us r / l i b / X 1 1 / r g b . t x t c u y a apariencia es la siguiente:
$ cat /usr/lib/Xii/rgb.txt
! $XConsortium: rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp $
255 250 250 snow
2 48 248 255 ghost w h i t e
248 248 255 GhostMhite
245 245 245 wh it e s moke

226

CAP T U L O S . E L S ISTEMA X WINDOW

245 245
220 220
255 250
255 250
253 245
etc.
255 222
255 228
255 248
255 255
255 250
255 250
255 245
240 255

245
220
240
240
230

Whitesmoke
gainsboro
floral vhite
FloralWhite
o ld l a c e

173
181
220
240
205
205
238
240

moccasin
c ornsi l k
ivory
lemon chiffon
LemonChiffon
seashell
honeydew

RA-MA

Navaj omite

$
Las tres primeras columnas numricas especifican la cantidad de color rojo, verde y azul,
respectivamente, quecomponen el color que aparece en la cuarta columna. Estos nmeros
estn comprendidos siempre entre 0 y 255, con ello, la cantidad de colores definible es de
256 x 256 x 256. El usuario puede modificar este archivo para definirse nuevos colores.

8 .9.2.

T i p o de letra

Para especificar el t ip o d e l etra con que deseamos que se presente la informacin


textual debemos emplear la opcin - f n . Recuerde que las fuentes instaladas pueden ser
listadas con laorden xlsfonts.

Ejemplo:
$ xterm -fn -adobe-conrier-bold-r-normal--18-180-75-75-m-110-iso8859-i k

8.9.3.

T a m a o y p o s i c in de la ve ntana

La opcin -geometry se utiliza para determinar la posicin inicial de la esquina supe


rior izquierda, de un cliente X as como su tamano. Su sint,axis es la siguiente:
-geometry AnchuraxAltura[(pm Columna(pm Fila]
Anchura: In d ica la anchura en caracteres (para ventanas de texto) o pxeles, de la ven
tana.
Altura: In d i ca la altura en caracteres (para ventanas de texto} o pxeles, de la ventana.
Columna: In d i ca la columna donde se posicionar la ventana, en pxeles. "+" se refiere
a la esquina izquierda de la vent.ana y "-" a l a derecha.
Fila: I n d ica la fila donde se posicionar la ventana, en pxeles. "+" se refiere a la esquina
superior de la ventana y "- " a l a i nferior.

8.9. OPCIONES DE IlNICIO DE LOS CLIENTES X

i'' R A-MA

227

F j ('l ll p lo :

$ xcl oc k

w ,0.4.

- g e ometry 4 0 0 x400+0+0 k

A s p e cto inicial

Co la up< i<>n -iconi c po<lr(;los especifi< ar si el ( lierite se iriicia a pantalla c(upl( ta


t i)lu uli Icono (lvivendo l i opcin i c o ll i c ) .
EJ('ll lplu:

$ xcl oc k - i c o n i c ! ! l

)s.9.5.

Esp e c if ic acin del s ervi d or X

C uli l;1 op('i<>ri -di s p l a y p o d emos esp<.ificar <llal e el servidor X d u i id e s v a a


ualizar (l ( lictei Dv c i t e l u odo p odcius provocar que < lietv s(a visualizado e ii
' r(1 ll)q llla q u(' ((ate ( u ( c t ad)1 a ll i u i l ( i t I a p<)I l di o d v ll a , I ( d S u s i t H ls s ! )(

-;gulpl v:
- dis p l a y

[ N o d o ] : S e r v i d o r [ . Pant a l l a ]

's()do: F i ! ; ) d i r v cci<I) liiteret. asociada lll scrvi<lor X <.oli el qiic desealos cuiuuic ini<>s

y que rvcihir 1))s rd( iis dl cli<nitv. Fsta dirvcciii puv<ls< r li alias u ii nii< ru
IP.
~ rvidor : E s ( l i i i vn) <1( i<ervidur qiu v i ;1 ribir las rdevs dcl clivnl e. F un sistvrila
i iiilll i u i u a ri u p i u deri < xiiti r v a r io s t ( r i i a ls X y a d a i m u d c e l l<>s lic(sita si i
pn)plu i ('I vldul'. E i l s i s t ( ' lila ('u u u i l i i ( u 1('I llal, c ! ser v i d ()r s id en t i fi< a culi
i! rinu ru 0.

Pantalla : E el niiicro dv pantalla donde se van a representar loi gr;fi< o del < lieiite.
Uii terruinal X se puede componer dc varias pantallas pero tudlis (llas corparteli
il rilislii(> teclado y ratn, Ca<la tcrriilal X debe estar gvstioadu por n s('rvidur
X. y iin iuisniu servidor puede at<.nder a las difcrerites p uit;11!;Is.
~.~ cotigiiraciri las habitual c<>asiste en qe cada estaciri de treihaju sv ( umpnga d(
:. ~)lo tcr i i l ial c o n r l a l r)i(a p a n t a l l;1.
("uos u ejeriiplu que nus ayi id a ilustrar lo coletado ;uit< riurmente. Siipoiiganlus

. l~ t< ii<iiius <los iqiiinai (.onv< tadas por i<li <1<. Iii)a rcd loc;il. La primera m;qiiina.
<l( d< ll<>riiiriaririus dafne (<luiide lios ncuntrauius situados). es la que' tiii( i i cilrd<> vl
idor X. La seglilida, sphynx, es la que jec)it Ira el clietv qlie euviar iliforia(.in al
mw irlor X. Dc algrn rno<lo tcr)drms qlie terier a< ceso a lauquiria sphynx con ubjctu
- !)u<h r iiiiciar el cliente. Esto lo pudenlus llevar a cabo iniciaridu ua sciili curi t e l n e t
~l(' daf ne o tll>hin lihi< lndulius fsiraii) vnt< (11 sphynx. Ulia vez iniciada la iusi(n> ya
~~]e iiius ii< iar un clieritv y visualizar su salida el ivrvidor local. Para 11('val 11 ('abuesta
Mi r e i> es iivsariu qliel cliente este autorizad<> pur l servidor. Esta alitoriza<:ri se
. l~!)Iv('< eri el servidor u)ediarite la on lc xh o st . E n l l l K(stro coso. <.' I;1 r'qiliB daf n e
lidriarn<>s que ejecutar la ord( ri:

228

CA P T L LO H. l'.L SL>TEf>1A y K I N1)()K

, HA-al

$ xhost s p h ynx
sphynx being added to access control list

$
Ahora dvsd la sesin ini< i<ll< co telnet vn la mqina sphynx podr<os ini(iar varios
('l lentes.

Ejemplo:
$ xeyes - d i s p l a y d a f n e : 0 . 0 &
$ xterm -display dafne:0.0 &
La or<len xhost sc puede e)pie>r t;ubi para evitar q(iv una dctcrnlinadll In ufuia
peda enviar ifornlaci grfi< a al scrvi<lor X. l'or ejlplo, si desealos que la nlquina
alllozl o pueda cvl'u' ifol lal<), ('j('('t,'','\los la orden:
$ xhost

- a mon

S i desealos evitar v l t v ( l ( p l v p o cr , cada vez qe i n i ciamos lul ( l i e te. Ia o p ( i


- dis p l ay . po<lrelos clpicar ua variable d<' ahll qv <1tcrlinv cl valor dcl di s p l a y .
La variable e cuesti sc dvl>)ia DISPLAY. y la form'I dv iici u la sera la siguivntc:

$ expor t

D I S PLAY=dafne: 0 . 0

A partir dc <>te nloleto, todos los clictes que iiciclos tolar por <1<fv<.to cl valor
del di splal/ indica(k>.

8.9.6.

C o n B g u r a c iu de r e c ursos

C olo ya helos aaliza<lo l>rcvimt<', lchos aspe<'tos dv los <'livtvs X 1led<


ser configrados por vl sari<>. Existe nlultitud <lv opciones qv peden ser t i l iza<las
para modificar la forl, posicin y aspecto dv los (liv< rsos clientes. Para facilitar la tarea
dc cofiguracin. el sistcla X ll)>lindow pr<>porcioa ;ll sario l;1 posibilid ul dv dcfiir
parlvtros por defecto, El p r odilicto consistv e alla na r v c i ertos ;Ir< hivos l;1
c onfigura(.i por def(cto dc cada uno de los clivnt<.s. Estos archivos son . Xdef ault s o
. Xresources y deben residir cu cl dirc(. torio dc arranque dv cada us Iri<>. Cada valor por
defecto cs fijado usa)l<> lla vari;d>le dnolinada recl>so. Los valor<s <iv 1<>s rc<rsos sc
cargan e el servidor X t i l i zando el progralna xrdb ( '1 resol<n:e (f<lta/>ase mal)ugvr),
El aspecto final <lv u (licntv y s forma de trabajo est determinelo por cl cdigo
<lel propio cli< nte y. en algnos < asos, por un archivo qv cotiene s configura< in por
d efecto. Estos archivos dc sistema rsi<iv en el directorio /u s r / l i b /X i i / a p p - d e f ault s .
Cada aplicaci dispoe de su propio archivo d<' cofigracin y las variables rvcoocidas
por <.ada licnte pucdvn scr <.Onsultadas haivdo us<> dvl lnanual de UN1X.
El an hivo dc cofigracin <lc recursos se colp<>ne bsica)ente dv una lista dv dos
collas donde cada lnea especifica u rcurso. El aspecto <lc cada lnea es l mostra(<>
a con t la('l<).

NombreDeclient<)+VariableRecurso: ValorDeVariableRecurso

R:<<- l<!A

8.9, OPCIONES DE INICIO DE LOS CLIENTES X

siguiente ejemplo muestra las lneas del archivo


cs :

229

/ , X d e f a u l t s a s o ciada al cliente

< I <!I I I I I < < I I } I I < I I ! I I! I I I I I I I I

! Configuracin de emacs
I

emacs+Background: DarkSlateGray
emacs+Foreground: <</heat
emacs+pointercolor: Orchid
emacs*cursorColor: Orchid
emacs+bitmapIcon: on
emacs+font: fixed
e macs.geometry :
>< qu remos especificar una variable de recurso aplicable a todos los clientes, emplearemos
siguiente sintaxis:
+VariableRecurso: ValorDeVariableRecurso

8.9.7.

E l ar c h i v o d e i n i c io x i n i t r c

Al iniciar una sesin X con la orden st a r t x p o demos especificar mediante un archivo


k configuracin cmo ha de realizarse el arranque (clientes que se inician, gestor de
~~atenas elegido, configuracin inicial, etc.). Este archivo de configuracin se denomina
. xini t r c y r eside en el directorio de inicio de cada usuario. De este modo, cada persona
puede especificar
su archivo de configuracin adaptado a sus necesidades o preferencias sin
,<<t< rferir con el resto. El archivo . xi n i t r c e s un programa de shell que sigue la sintaxis
i l shell de Bourne. En caso de que el usuario no aporte este archivo de configuracin,
~ riste uno genrico ofrecido por el sistema (/us r / l i b /X 1 1 / x i n i t , x i n i t r c) ,
Las rdenes incluidas generalmente en este archivo son:
Cargar la base de datos de recursos (xrdb).
Establecer los parmetros del terminal (xmodmap).
In iciar el gestor de ventanas ( Windou< Manager).
In iciar ciertos clientes (xterm, xclo c k, xeyes, etc.).
A c<iiitinuacin se muestra un ejemplo tpico de archivo . xin i t r c .

Ejemplo:
$ cat ,xinitrc
!!/bin/sh
! .xini t r c
userresources $HOME/.Xresources
usermodmap $HOME/.Xmodmap
sysresources~/usr/XiiR6/lib/Xii/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/Xi1/xinit/.Xmodmap

230

C A P T ULO H. EI. SISTE',ctA X WINDOW

Qc RA-> IA

! Definici6n de recursos y parmetros del terminal


if [ -f $sysresources ]; then
xrdb -merge $ s y s r e sour ces
fl

if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f $userresources ]; then
x rdb -merge $user r e s our c es
fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
! Inicio de algunos clientes
xclock - g eometr y 5 0 x 5 0- 1+1 k
xterm -font 10x20 A
! Finalmente arrancamos el gestor de ventanas
exec f v wm

8 .10.

G e s t o r e s de v e n t a n a s

Una de las cara( tersticas del sistema X D'ir)d(av (y tarnl>ir) cle IJNIX) es que srr fr)
cionalidad se cor)sigue gr' )cias a la < o<>peracin cl' 'orr)ponentes sencill()s e irrclc prrrdient< s,
,rl <>rrtrario qc otros sistemas en lo que se opta por integrar t<><los los c 1< n)ent<>s. L;)
ventaja de este esquen)a es qrre cacla una de la p )rtes p()e<le sc r desarrollada, n)<>difi< ada
y (oclific (da cle fornra indeper)dieutc. El n)ej<>r c j< mplo d< esto es l < oncepto de gestor <le
ventanas, rr)aneja(lor <le v< rrt)ura o I//indorr) Mana(/(r, que bsica(ente es el c<)rr)p<rer)r <
cprc deterrr)ir)a la aparicr)cia de las vcutau )s y pr<>por(iona los nr(clios rreccsarios p;ua qu(
) l usuario p(r da irrterac tuar corr <'ll rs. Esto sc ce))sigue por medio del n)ar> <r d< cor )
< in que el gest<>r p(>r)e alrede(lor dc a<la. ver)tar)a. cor) el meur de la ventana y ) < l
nrcn <le l r ventana raz. De este'. rl)odo, cuela (lsrlallo p )l<de detern)ir)ar el ;)spect(> qll(
tien< r) sus ventar)as y no verse ol)ligado a s(>portar rlllrc int('rfaz rgida y r)o n)c)diical)l< .
Bajo X. cada usuario prrcdc elegir su propio g<'st<)r dc vent'u)as y configurarl<> acorde c<)rr
sr)s r)( cesidade~.
P ua <ornprobar cules son l rs funciorres del gestor de ventanas, vamos a iniciar r);<
sesin X sin iniciar el H'rtr<o(c) M<r)(a(/er.La orden para iniciar <1 servidor es:
$X
Sr re>rllzalrlos la, opel acrrl arltel'lor per'delllos el colltrol del t erlrlrllal, y ll o t e)l(ll ernos

rrr remedio que r)>atar al servidor X prrlsarrdo CTRL+ALT+BACKSPACE. ya qrre el servidor


no es capaz de entender las rdenes que emitiuros. l'ara evitar este problerua vamos a
generar urr prograrrra <le shc ll qrre inicie el serviclor jurrto cou algurros clierrtes pero sir)
ir)i< iar el gestor de ventanas. El programa <e shell puede ser el siguierrte (r)o olvi<le por)< r
al ar1)ivo Xini el t ributo de ejecucin):

8. l0. <.'EST()RES DE VENTANAS

R/tt-X I A

231

2911 '/
2621 ' 7

S
Sa

D :00 / sor / ab t n / a ao td
0.
'0 0 cinetd -steolioe pid/llo /oor/ru /*<no<d.pid

PSOO V

So
Sa

D:00 c r o d
0:00 / o a r/obin/oahd

2 05d '7
2 565 llO P
30<5 '>
305< V
3001 7
3982 tt8 2
3983 7
3997 itp 2
3999 pts/11
O OPX pis/li
299a/ pts/11
28951 pts/11

Se
Ss
Ss
Sa
Ss
S
S
S
Ss
S
S
S

0:00 co p a d
0. 00 -ba a h
0 00 / o s r/ebin/std
0 : 00 db o a -doaeon- l - -apetee
0:00 r hn s d . intaroel Pd
0:00 r i n>t
0:18 X :0
0:00 ot er o - Oeoeetr9 ol I n l o t
0:DO besh
0:03 ~
0:00 / asr/llboroc/Oconpd-2 ld
0:00 ca t >oe s hepa
P8959 7
S
0:00 ator a
2$%1 pts/12 Sa
O:00 besh
P9029 pte/11 S
0:O cclocb
,29031 pts/11 S
O:00 c load
i29030 pts/1 1
R'
0 :00 ps ac
'<chanOraldab t te ocroonshot IS ii l I O071
<chanOoaldobits screenshots>O tspert atnoa root Xstspi .d
p

Figura b.l7: Servidor X con algnos clints.

$ cat X i n i
! Programa de shell que inicia el servidor X y algunos clientes
X&
export DISPLAY=valdebits:0
xterm -font 10x20 -geometry +100+100 -bg tan -fg black&
xclock -geometry +0-0 -fg grey60 &
xload -geometry -0-0 -update 1 -fg cyan -bg grey70 &
xsetroot -solid yellow &
xeyes +shape &

$
< 't>n>o se puede apreciar. los lictes >Io tieen tnarcos y no es p<>sible tnaniplarl<>s. Para
:der realizar estas operaiones, es necesario iniciar n g( stor <lvetltanas. Para rllo. Il
1 propio ar< llivo Xini, o <l(s<le (1 xterm activo, ;uranariunos el gestor d(sea<lo.
1.. los l>tos sigite tnostrarn>os el aspet<> q< presentan algnos d los ges
rslas extendidos. l.a >nfigracin <lr < ada gstor de ve>>tanas es <1< p(diente (l< l
;ir<>pii> g< stor y puede dil< rir et r, ellos. Ya lllos it><licado previ;(n>ente (lue los gestors

CA I' T D I . O >I. l'L S ISTLrl<IA X tt'll}UDO6'

232

HV }t-lh,IA

de vetanas qc nlostrar('n>os (.n ptos posteriores no esta disponil)les pilla t o d lls lllfi
platafornlas L[I}XIX.

8 .10.1 .

G est o r W i tt d o w M ak e r

Windoll [[aker cs gestor de v('ntana qnr t r ata dc ('nliar cl ) spcctn del entorno
NeXTSTEP d( Appl(.. El rcfipos>ll)lc d(hl dcs<lrrollo <l(1 prov('ct<> ll)} i<l<>xv [}}lakcr cs Alfredo
K. Iojinla. %Vidosv [< lk< r se <lifitri[lv o n l i ( e cia ( IPL ( G v LI Pu b !i( l i ( e nsr ), eso
qUI('I c dc(.'ll' qe <"fi plogl"lla dc ii[ }rc <ist ri[>( i<>. Como cara( t rrfit i< afi nnis resaltal>lefi
ll(Nlenlofil (:Ital' s>l glll v l s l o sl(la(1, rapi<1('z l' s po('o (<)nslnlo dc l c n l o l l a . E s tas l l l l l n l afi

cala(tersticas lo covierte c n l > en cun<lldllto [>al>< scr t i l i zll<lo cn l aqil>s co


lilitacione de procesador o <L' lenloria, Otro aspe(to q< nlerc< c csprcial menci(>n es el
soport( para aplicacionesliniatura o <ocks. Este tipo de <plica< i<>ncs tiene lll)itall('t('
n tala)lo <le 4x4 pxclcs y pncdc fijarsc <. los laterales dcl escritorio. E l;l ligara
g. leal >q>arece reprefientadon (jcnlplo del 'lfipecto qlle tiene 41} indow llak< r.

Anhno

h. l f ll

Il vv

h UU

Al f l I 'I

Hv fl

t f nl. ve l ' l l>'

ALI4

'

'

le mwwh >S on l4}

IFVBOX 5

Sor ll

Hl l 2 IIB i8 355

I
flv d UU dl

fnnwnl

, Rnno nooeml

d dfn Udll

dnlnt
h

n'

H. n C> tll) Q Q Q

Q f . I, . l

fmff v I I vf

I hef

ol h W n ttfo
lid d n Uhtl o

lnnwn

Ihm enl

v4 O,l

iw RIA ernf rRIEvnmven holovnvm on 1


H OP hRIOS OE CLASE S V LARORATORIO .
Il lo\
wtnlmt Inl>Rv wonthoo Irl onwloofrhtvh

hn l l o

RV VRI lh
n vn
Cmwerwffd L I d Ovoenhnvnw. wv
C etwmwno v plhrh
Ptotnt pfehlv
ItL Sof4
HU4

iw II )'I

f honvn} l,t,ltv f h IS I e p nrt

I r vl

Fvdm
hw t mi

hm II oo
hm }SSS
Pm l1 S
hm Oo
m4 LF IH
mle l S'I
4 IRSE

vl n o r oo t U e n her. p

Ennml I

Eigra )I.l)[: Apariencia del gestor de vetanas L'indo(v ll lakcr.

c. R.st-%t A

> .10.2 .

tt.lO.C ESTORFS DE VENTANAS

23 3

E l en t o r n o x f ce

Hasl(> cn f vtdm Olivi( r Fordtur ha <lesarrollado xf ce. xf ce lo <Onlponcnn (orr) unto


apli(;i()r>os o programas para cl sisteura X K i u d olv (le proporci(ra uu (onrpleto
-=trn<l< escritorio. Dicho progranras ich(yIrn gestor de vctanas, rr peorl hica<lo
.I.r;llrente en la p>r t(' inferior de la pantalla tal y coIo aparece en la figlura 8.19, n
ll>iitrador <le archivos. un gestor <le es< ritorio yrla serie <i<tilidades. La apariencia
x f ce c Iuy siruilar a l a d CDE y su cofigraci<)n tarhirr sinrilar. Con x f c e
=-.-traru <'<litar d r u odo manual lo archivos <le c(lfigr;Icin d< re(ros. y tod<> ello

pv&ie ralisar< d<lrra it< rfaz d< vt ana. En la figra S. l9e muestra Ima captura
.o<'a dl' este ('ntor'uo.

r r ae e l t

ienal

B 'I A S

' 04
~

R O d re <>

t ad ietdar deCanfiee recrea de afee

x % t %Q i p + + p

Ontee tetlae

Ma r cadores

Sua arena ~

Red SMB

tee t attel

pv ~~
t:

Aplicaciones

l tl ee

Buscar

co v r o w e r a
l Scw ka

cllah

Basura

Sistema de arcrllvos

canflelte
I deltnel dafee
retele
r~

aet at

I aat

Oetete a leen

eer

( ae l

i ao s

d c~

e te nn
t a lel t

N4

. '>t

t u

F igra H. l!h Entornxf ce- 4 .

> .10.3.

E l en t o r n o K D E

ILUDE (A Dsl'to/) E)rrriro>111>en/) c 11r)torno <luc I>rol)n ir1na it< rfaz cnit('nt
lu t()(hls ltls lp l icaciou< s X t;lt<> frl< iorralu)nte con) e a p a r iencia,. I(DE p r o p or< iua
l ( n j nt o d < I P l i ( a< ioru h>1.1(' tlll<s conlo Ir n n r a n eja(l()r dc v l>te>Iras, U ll)n(Ja(i()r
;>r< lliv<). item;1 d< ;Iy<la. configr 1< inrl <l( l etorrro. tc. IxDF. t; has(l<lo cn el

234

HA-t<>A

C A [ ' T I >LO 8, L L S[STEI>,[A X '>'[NDO'>>'

llil>li<>ta d< IV i<l</<'ts<l<no>ir>a<la ()t. cy<> <digo vs Ot><'r> S<>t<>cv,lo mismo ([ur vl d<
lDE o vl dvl propio Liux. Op< r> .'>narreirplic >, vtr<> (>tras (osas. (Iur vl usuario lial
>ivv acceso al cdigo fuer>t<' <l<1 prograrr, Dv <-ste rr>odo. la <letv<.ci<>r> d< prol>le>as,
dvpura(i( y l a ('volu('i(>r> d<l risr>> sv v<' 1vor''i<la e grar r>vdida. I.a hgura ><.2>()
restra la p;>rirncia <lv KDE.
Aalaa <<taa V .' .

l . Ia a g v~

t M

R+e

Q<V> / +

O llas< b

> C <> a < I l(


J4 4
>v 4

4 .
I

Qaw

vM vv r>a a a $<wat >a IA a ll ata al


". a a . gres , ~
m ~

alga,y'Q <>
~a

Jg av a< v a<ata a>tm

4 O

E
r

a, gaalaa aa gt <taattttaaaA3~

v aat t ga I Wa a al & <aatt <a<< I<At I Vl agt

A ~

a g at
lA V

Vaa<t ~
a I AIM A

.l +
aal ~

a
l <w~

k
Pw k

i ~

v aa A ~
P At ~ tt

ta
tata Av. I'e'o

IQ
I

Vaal l VA

o
ga

Vtta

I% 'e t>~t4 O
Figura 8,2>0: Aparin>(ia drl r nt orno KDE.

8 .10.4.

E l e ntorno GN O M E

GI<<OI>IE (G/VV .t<let><l(k Otj >c<'t hlu<lel Et><'in>rrrncr>t) forrr>a junto a K DE r l f r e r>tr
de I.ir>x r <ntor<>s <lr a[>li<(i<>vs grficas. A pesar <lr (t>r<' GtNOA[E pueda parecer
muy vinculdo etorr>s Lin>rx, t >rr>bir> se < jvrul a rr> otr;>s plataforras coro FreeBSD,
NvtBSD. Solari. Oper>BSD. IRLX. HP-lrX )' A I X . G N OI>IE vs p>u((' d('l proyecto GVL
y como tal, su cdigo es dr libre distribucin. Ya <.xistcn m>ltiples aplicacior>cs <1e se en
eer>trar> pvrfrctr>rn<.r>te ir>tegradas co GNOXIE, <'ntre <'llas p<l< rn<>s < itr l;>s siguientes;
girr>p: prograu>a de>aipul r< i de irngvr>es.
abiword: proc<.s;lor de texto.

!l. lt>. GESTORES L)E '<'E%TAZAS

R.><- t< r>t


t

2 35

evo l u t i o n : i r i t egra (ii i i r ia i nic a, r p lica(iil n < lirite de corr(x). Ii calendario y


iii< geiida. ll<><lrriios ll<i< ir q< s< trata dc uri gstor <1< iiiforriil in pr<ial.

bals a: esn liete <le correo.


gnumeric: s ua lioja de cl(ult>.
epi p h a ny: <.s llriav< ga<li>r w< l>.
Q

a m aal h<cae

9>94 4 ~
aliada

( p q, % 'l tt r

yp p A + '

i4 %

l' Q t t ! / k

llae

4 9>

W 4% % % P I

91 0au
Daae ta lega

pj

Orq lla 'N


ar
I mee

Ca

r c N N hl

r : y y o que

en ~

t tpni t qte achraoe<9<999 ~9 '

'0 N N 0

noo009 t

co de 4 no <la <de>de 9>9q99<pdt>tllllehl ll+, l<t>t<


pecando por +q>n+q<o 9( t >tttt, J, le llora qu H pintado a
c<te munto ei tttu4 de le nota de Malo w orld n a n w l n
Hyponrar 'prooy Mucho oout ootruno' 490 qm como
una oeancl hay que temario <omo qw la evaluacin afer

I9 ' 1.

! '

peh er al a tuloer <va<loalto llf la<mar< 5ique tacto


t t&Mal ' ~
l q lta l ae a l4
t

N i

a r e
Ir

aa

e~

N I

lo
i I NN i

.o

lr 1
Il

ccenlo I

'0 '

yerenno an cwnla 4 canndaf de medloh ow ae he hecho

op r

9>lg>tqhtttthtnii y rahlfa qw I h uplalt a


denroanacnulhhuta<ara Oue une nloneda de i
airar t> por lo rranoh aco aa 4 qlr <pce en Mqe

'u la ya 1 ! !

aire l' '

1 q tt

eltee tan conCe ro con Mm>tqdttq!p rq

i l Nm , '1

,~

g ~ )4 4l \ l <o ' r a r e n lamaaaeiau


4
<4 e ar r 0
r. k. 4 f

r oe ~
mr e

tlat rmhcueraa e n ~~

qraaoar adrede oreen

>dacclielaora4 rqocl 0 O F .

9Ca i>

<0 ~%

.4

%1Q T * g I

g'

48C>4

9 dt9

h 5 % 0 44

na

I a eal v a l el o aq r r a a r o

.5%
~X X 3GB

Figura 8.21: Aparien('i i del eiitorrrt> GNQME.


~t> <' ll)e lliriga (ltla <lll(yiVOAIE y KD E sorr los eritoros <le ventaiia llls erPlea
ri l tndtl Liiiux ya (llie la niyora de la <listril>u< ioe (<lcl>i>ln. Redhat, SSE.
F ll>r >i. llliiitlrak, ctc,) iit ilizan por <lefcto un<> otro. A i i n<liie ii a d( teriia<la distri
l "ll i l ll( (>I porc pol (l<'f('cto l ll l d e t (ii l lllllado < tol llo, el Usiil ro l(. lpl e pllde col llilt al
' l l i t t lit< tl<' llri<> a otr<> (je<irtali<lo la or d ci i s w i t c h ( Lesk. <llie 1 pt.riii i t i r l d e l i i ii r c u l
'.;1 < rit orrio de t r d >ajtl.

k ii t tornos U!<llX liaii exist<k> siempre 1has "n ligiosa" cii la <pre p<irtidari(>s dc
:: t pll(;a<'l()11 t.i)l('a s(' (' l l I)r all a o t .l<>s (lll(' l l t i l i z al r l l a <l p ll<'a<'10 sull<!I . < te es el

I tk' sriari<>s <le vi fret( a emacs, <> llirari(> <l( l.iiix friite ri los (tue (mplcari BSD,
>!>r",t hay <llie ;iiia<lir lr l l u ( v o f r n i t e <le iruarios part i d ario i <le li D E c i i t r e nta<los a

236

C A P T ULO 8. EL SISTEMA X WINDO%'

RA-MA

aquellos que utilizan GNOME . El aspecto de este entorno aparece refiejado en la figura

8.21.

8.11.

E j e r c i cios

8.1 Averige cmo iniciar el servidor de ventanas de su sistema UNIX .


8.2 Finalice la sesin X Window iniciada anteriormente.
8.3 Vuelva a iniciar la sesin X y pruebe a manipular las ventanas tanto con el teclado
como con el ratn, para ello realice lo siguiente:
Mu eva la ventana xterm arrastrando la barra de ttulo a la posicin central de

la pantalla.
Vuelva a colocar la ventana en su posicin original utilizando el teclado.
Mo d ifique el tamao de la ventana empleando el ratn.
Mo d ifique el tamao de la ventana utilizando solamente el teclado.
Mi n imice la ventana utilizando el icono correspondiente.
Restaure la ventana a su tamao original.

Cierre la ventana empleando la opcin correspondiente del men.


8 .4 Pruebe a eliminar su manejador de ventanas, para ello emplee la orden kil l
a continuacin el PID de su Ri n d o' M a n a ger.

-9 y

8.5 Ut i lizando las rdenes man y xmsn, busque informacin sobre los siguientes trminos:
X, xterm, oclock, bitmap, editres.
8.6 Inicie el cliente xcl ock con la siguiente configuracin:

Color de fondo: negro.


Color de las marcas: rojo.
Color de las manecillas: amarillo,
Tamao: 400 x 400 pxeles.
8.7 Inicie el cliente xterm con la siguiente configuracin:
Color de fondo: negro.

Color de primer plano: blanco.


Color del cursor de texto: rojo.
Color del cursor del ratn: verde.
Tamao: 400 x 400 pxeles.
8.8 Inicie el cliente xeyes con las siguientes opciones:

S. l l. E JERCICIOS

RA-MA

2 37

Color de fondo: 50% gris,


Color de primer plano: rojo.
Color del cursor del ratn: amarillo.
Tamano: 100 x 100 pxeles.
Posicin: centro de la pantalla,.
8.9 Inicie el cliente xcl ock ron la siguiente configuracin:
Ti po de presentacin: analgica.

Color de fondo: 50% gris.


r Color de primer plano: rojo.
Color del cursor del ratn: azul.
Color de las manecillas: amarillo.
Tamao: por defecto.
Posicin: esquina inferior izquierda de la pantalla.
Ma necillas de los segundos activas con un periodo de actualizacion de un se
gundo.
La campanada doble de las horas y la simple de las medias horas deben estar
act. Ivas.
<.10 Ut ilice el cliente bit map para edit.ar el icono gumby de tamafio 40 x M p xeles que
se nntestra a continuacin. La orden para iniciar el cliente debe ser:
$ bitmap -size 40x50
Guarde el icono con el nombre gumby antes dc salir del programa,

238

C A P T UL O 8. EL SISTEMA X WINDOW

RA-MA

8.11 Ut i lice el cliente xsetr oot p ara cambiar el aspecto de la ventana raz y que aparezca
rellena con el patrn de bits definido en el archivo gumby, Los colores de la ventana
deben fijarse con los valores siguientes:

Color de fondo: verde oliva oscuro.


Color de primer plano: bronce (color Tan).
8.12 Ut i lice el cliente xset r oo t
oscuro.

p a r a rellenar la ventana raz con el color slido verde

8.13 De qu tipo es el archivo gumby.


8.14 Edite el archivo . Xdef ault s p ara definir los siguientes recursos del cliente xten n.
Color de fondo: negro.

Color de primer plano: blanco.


Color del cursorde texto: rojo.
Color del cursor del ratn: verde.

Tipo de letra: courier, negrita, sin inclinacin, cuerpo de 18 puntos. Para de


terminar la cadena de definicin podemos utilizar los clientes xf ontsel y x f d,

Tamao: 32 lneas con 80 caracteres cada lnea,


Barra de desplazamiento activa (opcin -sb).
8.15 Edite el archivo . Xdef au1ts para definir los siguientes recursos del cliente xeyes.

s Color de fondo: 50% gris.


Color de primer plano: rojo,
Color del cursor del ratn: amarillo.
Tamao: 100 x 100 pxeles.
8.1B Edite el archivo . Xdef aults para definir los siguientes recursos del cliente xclock.
Tipo de presentacin: analgica.
Color de fondo: 50% gris.
Color de primer plano: rojo.
s Color del cursor del ratn: azul.
Color de las manecillas: amarillo.

Tamao: por defecto.


Posicin: esquina inferior izquierda de la pantalla.
Manecillas de los segundos activas con un periodo de actualizacin de un se
gundo.
La campanada doble de las horas y la simple de las medias horas deben estar
activas.

8.ll.

E J ERCICIOS 2 3 9

8 -17 Edite el archivo . Xdef ault s p ara definir los siguientes recursos del cliente xcal c .
Color de fondo: verde marino.
Ti po de letra: 9 x 15 bold.
C olor de fondo de la pantalla: 50% gris. Utilice el recurso xcalc + t i + s c r e e n
+background.
s Color de primer plano de la pantalla: blanco.
Color de fondo de las letras: 75% gris. Utilice el recurso xcalc + t i + c o mmand
+background.
Color de primer plano de las letras: negro.
8 18 Localice el archivo xi n i t r c
uonlbre . x1111trc.

d e su sistema y cpielo en su directorio de inicio con el

8.19 Edite el archivo . x i n i t r c p a r a que al i n iciar X l o s clientes siguientes arranquen


automticamente:

Indicador de carga del sistema en la esquina inferior izquierda de la pantalla.


Reloj con presentacin digital en la esquina inferior derecha de la pantalla.
Terminal X en la posicin central superior.
Ma nual X en la posicin central de la derecha.
Calculadora en la posicin central inferior.
Ojos espasen la esquina superior derecha.
Terminal X min imizado en la esquina superior derecha.
8.20 Edite el archivo, xi n i t r c p ara que contenga una llamada al cliente xsetr oot donde
se fije que el patrn de relleno de la ventana raz sea el mapa de bits definido en el
archivo gumby. Loscolores de configuracin deben ser:
Color de fondo: verde oliva oscuro.
Color de primer plano: bronce.
8.21 Ut i lice el cliente bmtoa para transformar el formato del archivo gumby editado con la
aplicacin bitmap en un archivo de texto denominado gumby. ascii . En este archivo

rlebe haber un patrn de signos numeral (!) y guiones (-) que describan el patrn

del mapa de bitsque hay en gumby.


8.22 Inicie tres procesos: el cliente xt erm, el cliente ocl ock y x c a l c . U t i l ice el cliente
xls c l i e n t s p ara presentar por pantalla un listado con los clientes activos.
8.23 Ut i lice la aplicacin xprop para presentar por pantalla las propiedades de un cliente
determinado que se est ejecutando en ese instante.

240

C A P T ULO 8. E L SISTEMA X WINDOK

RA-MA

8.24 Con ayuda del cliente xlsf ont s y de la redireccin de entrada salida del intrprete
d e rdenes. cree en su directorio de inicio un archivo con el nombre t i p o s . t x t .
Este archivo debe contener una lista de los t i pos de letra que hay cargados en
n uestro servidor X. Emplee el cliente xedit p ara editar el archivo t i p o s , tx t y v e r
su contenido.
8.25 Ut i l ice el cliente xf d para ver los cursores que hay cargados en el servidor X (opcin
- fn c u r s o r d e x f d ) .
8.26 Cambie el cursor de la ventana raz para que sea el mapa de bits del archivo gumby.
Para llevar a cabo esta operacin siga los pasos siguientes:
Obtenga un duplicado del archivo gumby con el nombre gumby. mask.
Invoque al programa xsetroot con la opcin -cursor.
8.27 Realice la misma operacin que en el ejercicio anterior pero invirtiendo primero el
patrn de bits que hay en gumby. mask. Para realizar esta inversin podemos utilizar
el botn In vert del cliente bit m ap. <Qu diferencias existen entre el cursor actual
de la ventana raz y el cursor definido en el ejercicio anterior?
8.28 /.Para qu sirve el cliente atobm? Ponga un ejemplo de uso.
8 .29 Cree un archivo de arranque del sistema X K i n dow que no utilice la orden st a r t x
ni xinit. Elnombre de este archivo ser arrancarx y debe contener las siguientes
secciones:
Declaracin de lasvariables de entorno adecuadas.
In icio del servidor con la orden X.
Ll amada a x se t r o o t p a r a r e llenar la ventana raz con el color slido verde
oscuro.
Ar r a nque de los siguientes clientes: terminal X, reloj, monitor del sistema. cal
culadora, consola y manual X. Estos clientes deben tener la geometra adecuada
para evitar solapamientos entre ventanas.
In icio del gestor de ventanas.

PARTE

Administracin del sistema


Introducci6n a la administraci6n

Administraci6n de usuarios y grupos


Administraci6n del sistema de archivos

Parada y arranque del sistema UNIX


Administraci6n de la red
Administraci6n del sistema de impresi6n
Miscelnea

Captulo 9

Introduccin a la
a dmini s t r a c i n
Cada sistema UNIX debe tener su propio administrador o persona encargada de que
-;~4o est a punto en cada momento, Esta labor r equiere una serie de conocimientos
que los usuarios finales no necesitan dominar. Adems, es necesario invertir un t i empo

~ considerable para estos menesteres incluso aunque seamos el nico usuario del sistema.
Antes de nada es necesario sealar que la administracin del sistema es uno de los
~ pectos menos estndar del sistema UNIX, Tanto las rdenes empleadas como los archi
vos de configuracin pueden variar de unos sistemas a otros. A pesar de las diferencias,
nosotros trataremos de presentar los aspectos ms generales relacionados con la adminis
t racin. Estos captulos son solamente una introduccin que puede servir de iniciacin a los
uevos administradores, Si alguien desea profundizar en los distintos aspectos, podr con
-ultar los libros al respecto propuestos en la bibliografa. Hay que sealar tambin que
"l mejor aliado de cualquier administrador que se precie de serlo es el manual (man) de
l NIX, donde podremos encontrar todas las peculiaridades de nuestro sistema concreto
que nos ayudarn a resolver cualquier tipo de problemas.
A pesar de que la administracin sea un aspecto poco estndar, la mayora de los
-.istemas incluyen alguna herramienta propietaria que nos permite administrar el sistema
de un modo ms o menos cmodo, Esta herramienta en sistemas HP-UX se denomina
sam (System Administrntion Manager), en sistemas AIX se denomina smit, en sistemas
IRIX de Silicon Graphics ayamgr, etc.

9 .1.

C i c l o d e v i d a d e l s i st em a

Un sistema informtico pasa por varias etapas a lo largo de su vida, Desde el punto
le vista del administrador de sistemas, cada etapa queda caracterizada por un conjunto
distinto de actividades que es necesario llevar a cabo.

244

C A p T U L O J. l'JTllOL>LC('IN A LA AL>KIINIBTIKACIlv

l.

ICE-%1A

A n l i sis <lr. nquisitos <tel sisteiiia.


Eii esta ct<q>a se establecen <lii prnhlrmas tir n q i i r s n lcionar el sistema inforiiiti
co, a qu actividades de la orgaiiizariii drhe <l;ir soporte y qii tipo de servicios
debe prestar. El resultado (le esta etapa es iin d<>c>iii>eto <l( requisitos q>ir r((ogr
t< >dns los ispc('tos ii u'ilciollados al>tel ioi illeilte.

2>. Disriio dr l sist.en>a,


Uiia vez (oocidns 1<>s requisitos. se aiializa <Iu (oipouct< s hay qiie utilizar para
sat isfacer diclios r< qiiisitos. Los < oniponentes geiieralriirutr soii <le <lns l ipos: hard
ware y software.

3.

I m p l a ntacin del sistenia.


Consiste (ii riiontar, instalar y adaptar 1<>s compnneiites hardware y software, segii
(l docuuiento de diseuo, para que el sistenia infnrintico satisfaga una serie dr re
quisitos. Cada < on>poi.i>te se instala segin la iiistriiccioiies d <d <s p<>r < l proveedor
<lel component< .
Configuraci<>i< liardware y s<>ftwar l e f o rm a q<ir el sistema runipla lns rewi<iisitns
exigid<>s.

Una vrz instala(los los coinponeiites rs ne(.'esario adaptarlos a las iiecesidades es


pecficas del sisteiiia. Una vez configiirados t<>d<>s los coniponeiites. stos proporcio
narn lns srrvicins tal y colno se especific en el docilineillo de requisitos.

5. A d m i r iistra< iii y mateuiniiento (explotacinn).


En esta etapa el sisteiua se eucueut r a ya en fiinci<uiaiuiento y prestando los servivios
para los qe fue < reado. Drantr todo rl tienipo <le servicio s< r necesario>nant< ner
actualizado el software para evitar err<>res y probleiuas dr seguridad, fncioualida
des. ajustar parnietros de rendiiuiento, rt<.
1>. 1< figracin. <lesiiiaiitelaniientn del sistema.
Si (l sistrm a q ue<la <>bsolet<>, ser< iiecesaria la i>ripiatacin de i ii>o iiiievo. Esta
etapa asegura qur se 1>odr reutilizar. a ser pnsil>le, la totalida<l <le los datos y li<icer
que la migra(i<>n hacia el nuevo sistema se haga de fornia progresiva. rcdu< iendo al
innimo el tiempo en el que el sisteiiia se eri<. ueiitre iiiop<.rativo.

La administra(in <lc sisteiiia e iii<a activida<l iuuy amplia qiie' se centra fiindainental
menle en los puut<>s cuatro y riiicn <lrl <icl<> <lc vida de <in sistema iiifnrmtico, aiinque
en la reali<leid abarque tus piintns.

9 .2.

E l a d m i n i s t r a do r d e l s i st em a

Conio cs bieii conoci<ln <lr. todos. 1!XI X <liferericia entre los di stiiitos iisiiarios, d<
manera que se regula qu (es lo qu( podeiiios liacerle a otros usuarios (a nadir le gstaria
que lr leyese<i su correo, por ejemplo) o al propio sistenia. Cada ui>o <lr ellos tiene sii prnpi i
('uenta, la < ual iiicluye iioinhre de (<>n< xi<>n. griipo al qiie pertrne(e. dirr< torin <le arranqi>< .
etc. De t<>das las cuente>s (lrl sistenia. siu duda alguna la nis iuiportaiite es la denoininad i

9 .2. EL ADNIINI!vTRADOII l)EL SISTEKIA

245

.'t;) <le adrinistra(lor o spersarin, cuyo (ron)1>rc dc conexin cs root . Esta (uenta
-ierrrpre creada atom tic uerrte en la irtalacin dr l sistema UKIX . momento cn el
. <' <Stahlc n a palabra clave irricial. Es urr aspe<.tn clave e el Iarrtenirnicnto dc la
-=-r i<l;(d inforrrtica asegurar la cnrrfidcn< ialidad dc la < l;Ive <lcl adnrirristrador. acceder
i. t<>a a t.ravs <le la inrr>esarayora <le los sisteras <lc s< guri<la<l arra<lidos.
.'Lnrralrcte las cuerrt<LS d(' Ilsll'll los l l e l l ( l l

a s n(.'ludas rla selle d e I c s t r c ( oes, dc

..rra qc Irrrdic pueda rnlcstar al r<.sto, a lo suro a pllns risrrros. IVadic va a poder
rrar <lir((torios como /etc n / b i n , ui nr)dic va a poder desactivar u() inrpresora. To<lo
r' t ip o d c r estricciones rr<> sor( aplicables al adrinistradnr r o o t ) . E l a d n rirristra<lor
.-r)< plnr<>s pn<lcres para horrar, <r<;Ir o r o difi<ar Iralquier archivo o d i rc<torio dcl
retira, para <Je('ut ar progranras esp<'( i;(les o para <lar formato al d isco. Coro ro o t
'"'d<' ha('('I ndo lo qe desPe, cs nc<csallo qP Pxtrclll(' ss preca('loes. ya q(' sl o Ps
L-i. Irus Iscccucias prrcden ser catast.riicas. A < nntiua< i varos a dar una serie de
: >rm;Ls qcos pueden aydar nr gran medida a prevenir lns accidentes cuando Pstanrns
".u <. t;Idos con)o )<lmiistra<4>rcs del sistema,:
D( spu de tc< ler II ( or<lnr y atcs d( pulsar la t la ENTRAR, v< rificar las corrse
cnrcias qc pueblen producirse. Pnr Pjcrpln, ar(tus <le horrar urr directorio. releer
la nr<l<.n corr ot>jcto de corrrprnh,(r qc todo ps <.Orrccto. Pnr ejcrrrplo, una orderr
c<>nr<> la sigientc, <prc rr prirera vista pulc parecer algo inocente. Ircd( prov<)car
rcslll t 'idos C;lt<Lstr'flcos;
! rm -R * . t m p
! (Obsrv)ese er espacio en blanco entre et asterisco y . tmp)

Ev i t ar conectarse <oro root a rro ser qup s< a estrictar<. ntc rrpcesari<>. Por pjnplo,
n cs a<onsj(rhlc cscril>ir progranras nr l'ascal Irtilizado la < u< rrta <l< root.

l.!tilizar r r prv)rrg)t diferente p;Ira la < uerrta <lc root. L o r ,s nornral es nplear
(.nrn 1)>otnpt. cl carr('ter !.

( I.2. 1. R e s p o n sabilidades del ad m i n i s t r a d o r


I:.l administrador dcl sisterrra o supcrsario ti<ea s< rie <lc r<sp<>nsahilidadcs <pre
i l< rns dividir cn tres grp<>s: Icspnsal)ilidad 1>ardwrrre, soft(var( y respnnsahilida<l corr
(IS(l<ll'IOS.

R esponsabilidad h a r d w a r e
Ve r ifi( ar la, cnl'l'P<'ta Illstala('Ill del ll' u'< l%vare.

Corprol> Ir el estado dc los I>crif('ricos y ser < Irprrz de hs<' Ir cl fallo en caso <le error
d (' la l l l s t a l a c l l l .

l llst alar nrrcvns dispnsit ivo lrard(vare (me roria, discos. terminalcs. etc.).
D( ternriar liritacinn<'s cr) lns dispositivos qc puedan (nmprnnreter la pr(stacin
de servicios cnn 1) < ali<la<1 rrccesr(ria.

24I> c A P T l JLo g. I N T I t o L)l.l('cIN A I.A ADI<IINlsTRAcI N

RA-I>,IA

Responsabilidad soft w ar e
La responsabili<la<l sol>r( Pl nlarlteninlient<> <lel software Ps cada vez rn irrlport.'u>t<
puesto quc a rrledi<la qu< sc elnpleau sistemas para pr<>porciorlar servicios (onrplcjos, < l
software se hace cada vez nl rs difcil de r>lrlterler.
Dclrtro d( las responsal>ilirladcs dcl mantenimiento software po<lcrnos h;leerna <'lasi
fic;l( i<rl adicional ent.r(' software del sistema. y software especifico. El software <lcl sistPlll
es a<luel que proporciona 1<>s servicios l!siros de flmcionalniento de url sistcra UNIX
genri(o. Por ( j< lnplo. el software que l>ermite a h>s usuarios corlectarse al sist< r>la o < I
pr<>pio sistema operativ<>. El soft~are especfico se refiere a Iuelque prop<>r< iona un ser
vicio det<r<ia<lo utilizando cor(> plataforma >>estro sistema UNIX, colo por ejelnpl<>
sprvi<l<>rcs de has< s de datos <> servi<l<>r(s wpb.
Responsabilidades derivadas del software del sistema
ll l stalar el sist.ema operat,ivo, c<>nhgurarlo y triar>tenerlo al <la. c(>n las act ualiza< iorles
oportllnas.

Cr<.ar y rar<tener los sistemas de archivos. drtect><ndo y corrigiendo los posil>les


error<s qlrp puc<lan produ< irsc.
Col>t.rolar la ut ilizaci<n de este sistcnl;le archivos y su (recinlicnto.
Di sear e inlplenlentar las rutinas para realizar ((>pias de seguri<lll<l. as (o>no par;l
su posterior rc( uperacin.

C<>rlfigurar y r nautccr el s<>ftwarr de cualqier <lispositivo: inlpreJsoras, mdenr.


tarjetas dc re<l, etc.
Ac tl lalizar (I sistema operativ<> erl caso <le p<>sc<>r una versin ms moderna,
Instalar el softwllrc de cualquier aplicacin (X 3 idow. has<s de <latos, procesadores
dP tPxto, et(.',).
Responsabilidades derivadas del software especifico
Irlstal lcin y corlfigra< i<n irlici ll del soft war(.
I ornlaci<n especifica en cl mbito de 1>l aplica< in.
Evahlacin dp las rrp< rclrsionc en la scguriclad gln1!lll dpl sistenla.
La bores de a<lnlirlistra(in esppcfils (l(l servicio precta<lo.

Responsabilidad sobre los usuarios


Ala<lir uuevos usuarios y dar d<' l>aja >l los qlr<' va no sp. Con'"trln al sistel;r. Esto
cobra especial relevancia ('ukl<lo existen p<>lti('>ls de acces<> con firles ecorlnli(os.
Permitir c l a (.ceso a los usuarios de fornla c<rtrol<rda.

9 .3. S>E(:PURIDAD

B A-iI A

247

!.valrrar I rs rr cesida<les e cuanto a <quipos se refier(. Determinar si es <>ve< srrrio


aa<lir nu< vos discos, irprcsoras, rnerrrorias. etc. cnn objeto de que los rrsrrarios
<'rlcuvrltrvrl r>Ii erltollln agradable d( t r a l>a jo.

l' r n pnrcionar asist<(ia a < a<la urra de fas p< rsnnas.


Tener a los rrsuarins infnrnrados en tndn momento dc los posibles nuevos s(rvicins y
sr<s (;rra< tcrstic rs. Tarrrbirr vs nvccs;rrio q<r< los usuarios con<>zcan las polticas dc
seguridad y de presta< i<>rr d( servicios, de fonrr;r qu< vl uso de los sistvnras sc lraga
sivrnpr( dentro dvl mar< o legal <lv cala pas.

Aspectos ticos de la a d m i n i s t r a c in de sistemas


B< spvto a la priva< ida<l sobre to<las las cosas. (..o>no adrinistrador de sisterrras sc
<fisporrv dc la p a cidad para ver y lracvr < ualqi< r cos>r sobre los datos y pn>gra
n>as de lo usuarios. Este h(x t>n no d<1>( inq>lic;<r urra posi<in dc poder. sino de
res!><>r>se lii(lad.
>
Prrvdvll existir sistvm rs >rr polticas quc permitan < nnocvr cn todo momento qu es
t; ha<'iv>r<l<> rrnusuario y d(' qu forma est lraciendn rrso del servicio prestado p<>r
< l sistema irrforrntico. En este caso vl usuario d< b< scr infornrrrdo de las medidas
de irrspeccirr qrre se prr(<lan llevar a cabo sobre s<r <latos y ss a< tivi<lad(s.
Las u tivi<1'><les d( drninistracirr de rur sistvrrra infnrr ti<.o dcb('rr llcvarsv a cabo
< orr fa rrr>xirrra prnf< siorr;rlidad y seriedad.

9 .3.

S eguridad

El <dnrirristra<lnr es el r vsporrsablc de rrr (r>tener i (n(> p<>lt ica <lv svgrrridad vn el sistcnr <.
E ra poltica <le svgurid;rd pucd< irrrplicar div< rsas acciones, las c<tales incluyen ds<le
r<>probar qrr rro existen agrrjcros cn la scgurida(l hasta det<ctar que na<liv pierde cl
:"nrpo jrrgarrdo al tetris c<r>urdo d< hiera vst.rr jugarrdo al </rr(rk(' /Il.
1<><fn adrnitristrador dvb<". tvrrvr sienrprv prcs< r>te lns sigrrivnts aspectos rela('inrrados
)rr hr svguri<la<l:
Fl ; ulrrrirristrad<>r dvl sisterrra tiene ;uceso si>r restricciones a tn<lns los rc<ursos. Si
rrrr rr<lmirristra<fnr rrr> es < nns< ierrte de lo arrtvrior. pnsihl< rnentc sva l rnisrrro cl que
tire v! sistcnra abajo si<r nv< vsi<la<1 d< rringrrr tipo <!v ayrlda exterrra.

Es rrry peligroso enrpl< ar privilvgios dc (r(lrnirristra<lor pnr periodos prolorrga<los.


Los errores pucd<n tener cnnsvcu(ncias fat.<licas.
L<>s usrrarios <l< b< rr < rrrpfvar cnrrtraserras adc< uad rs. I.'arrdo h rbl'urros dv la orden
passwd, (orneutarrros algrrnasorrnas a<nrrscjaf>l<s a I;( l>ora <lelegir l;< palal>r;r
< lave. E aconsejable por parte del adnrinistra(l<>r buscar posi'hlvs cuerrt as de usrrarios
si<r cnntrasvfra. Esto v fcilrrrerrte <letvctablv <orrrprnbarrdn q<te el segundo caurpn
t l< 1 anchivn /et c / p a sswd no est.; vaco, para. ello s< prreden vrrrplr <r Irerramicntas
( <>r<>o awk <> grep. Existe>r otras herramiet;>s m>yosn p<r< dv r>(> c<>siderars( tico.

248

( :A P [ ' I I [,() <), INTII ( ) I)C'C('ION A LA A D[<[liv[HTHAC'IC)><

Qc feA-%la

ns ref< rin>s >i las l i c r r a l i i i ( i i t a s (i l i p k :ul >s [>nr < r<(c/>.(Is p' i ( r i ) r itrar p i l l l t n s
di)iks eii ( l s i s t ( i a , ( o r ia) (<)tri s ( r)as rri il l o rn>a<l <s. La i<l('i ( s q ( ( n n ( ; <sin(s
resulta r)ti[ poiicrse eii el [)ap<'[ de quicrics Ii< (1;i,iteritar cor)tr i la scgri<l i <lel
sistcia c<i <>l>j< t<> <1<>rio(( r lns p u iit os d( hik s <k' Il l lpst l<> slstplIlii.

La p a l a b ra ( l a v l e l i l r r iiistrad<>r <[che rii<irite)iers< estri<tanict i i se c r < to y


ser coriocidii coinn iir<xirrio pnr dns n t r es usiiarios. Esta palahra clave debe s<.r
modificada p(ri<licamrntc.

Ei p icar varios [og)n <ic. sistci,i, t;il v coR> sc i<ii< a a c<>t iiia< i<n:

lo<[i n

Pl np<)sr to

root
daemoa
h tt p
f t pd
mail

Tareas de admiriistracin ar)t<>i )tizada


Tareas d( administracin dcl servicio <vch
Tareas de adiiistra(in (icl servi(in ftp
Tareas de adniinistraciri <lcl c<>rren e[rwtrriico

Adl) llriistra('l() gerler'Rl del slstcII)a

Vi g i l ar l 'i c<)lit)da(l d(' a('cesos Prr<>IIPns piodiicids cll <'l sist('tira. los (')Iii[es qu(.'d<l)l

riorniriliiierite aprrta(ios Pri 'in hivn <le rngistn>. Este arcliivo <le registro eii el cas<>
<le Lrrx suele ser /var / l o g / messages> eii otros sisteiiias piio<i< tcr)(r otro ori>1>re.
Los dire(t<>ri<>s d< l sistt i)iii. ttik s corrio /e t c , / b i n , / d e v , c t < ., iin d<'hen terier IR r
misn de es< ritiira p(ll<i k>s iisii>(I'los nrdiiiarios,

El acceso al terniial qu< actra (nni<> consola. as c<>rno a los tcrniinaks don<l< s<
pu(d acceder crn root . dehr estar rcstringi(l<>s. Dicho d< otn> rodo. sl<> <khc
ser pnsik)le co((t a rsc coro ad(i)iiistrador del sist<iii< <les<le aqii<'llns teriiiiriak's qu('
sp ( (msi(k r< negiin>s.

La p o l tica de segurida<l <leh( estar perfecta)p(i(e <lefii)id'i sieiiipr< qrrp los iue(a
isiiios <le scgurida<! <le 1.1!<[IX lo p< rniit ar),
l> igil ir (strcc)iaiciitc a [os i)su u io p<>t < rrcia[rrrcrit( peligros<>s. C iertos iisuarios l>u<

<leii de<ii(ar caritidade ingentes <le tiempo <on <>l propsito dc roniper la segiirida(l
del sist,eiiia,

El i riiiri;ir <ki I;i variahk PATH <k l a<lministrad<>r < 1 <iirect <>rio actua[.Uii bu< ri PATk[
po(ira ser el sigiiicntp:

PATH=/etc:/bin:/usr/bin
[<<) r< ljar l rs poiti< as <le segurida(l porque estira c<>ristitriv iii iii) e))gorro. En oca

sinias k>s iuliiriistrruk>ns dc s[s(< mas sc pued(ri vcr t< ritad(>s a atorizar ciertas
<>pcr<i<ic>n<s pnt<cirdieiit( p e l igrosas, porqiw < t<>rizar[<s ps mas fac[ o r ; pi<k>
q< l>usar ua sluci<)n segiira.

HA-hfA

9,3, SEGURIDAD

24 9

Buscar regularmente en todo el sistema archivos cuyo propietario sea root y archivos
con el bit set - u i d a ct,ivo. Para ello podremos emplear las rdenes siguientes:
find / -usar root -exec ls -ld () $; I mail root
find / -perm -04000 -exec ls -ld () g; I mail root
Consultar peridicamente la informacin sobre fallos de seguridad inform.tica que
se publican en Internet, por ejemplo a travs de la pgina feb del centro de coor
dinacin de seguridad en Internethttp://wvv.cert.org.

~ Aplicar cuanto antes las correcciones de seguridad que vayan publicando los pro
veedores del software de nuestro sistema. Generalmente estos proveedores disponen
rle una base de datos de losusuarios de sus productos y se les notifica cundo se
encuentra disponible una actualizacin de seguridad,
siguiendo todos los consejos citados no conseguiremos que nuestro sistema sea inexpug
nable, pero la falta de cumplimiento de las normas anteriores asegura que nuestro sistema
;a ne agujeros. Existe amplia bibliografa donde se describen los agujeros bien conocidos
i~ la seguridad de UNIX, pero aunque muchos de ellos hayan sido eliminados, no se puede

Nrtnar que no existan an ms. As pues, podemos concluir diciendo que la seguridad es
un aspecto fundamental que debe tener en cuenta todo administrador de sistemas UNIX,
~ que dicha seguridad comienza por no abusar de los privilegios de root .

Captulo 10

Administracin de usuarios y
gl upos
Una de las principales responsabilidades del administrador del sistema UNIX es man
tenerlas cuentas de usuarios y de grupos de usuaria. Ello incluye dar de alta nuevas
cuentas, eliminar las que no se utilicen, establecer mecanismos de comunicacin con los
usuarios, etc, En todas las operaciones anteriores se ven implicados principalmente dos
archivos en los que se guarda la informacin concerniente a los usuarios y a los grupos
a losque pertenecen. Estos archivos son /etc/passwd y /etc/group que describimos
seguidamente.

1 0.1 .

E l BX' C 41VO /etc/passwd

Este archivo est compuesto por una serie de lneas formadas por campos separados
por dos puntos :. Cada lnea guarda informacin de un usuario y tiene un formato como
el siguiente:
nombre~: clave:usZD:grupoZD: coment :dir ocio: progMicio
nombre~ E s el nombre de usuario o nombre de login que damos cada vez que entramos.
Debe tener entre uno y ocho caracteres.
clave Este campo es elcorrespondiente a la palabra clave o clave de acceso, que est en

criptada por el sistema. Como se puede apreciar en el ejemplo, en el caso de Linux


aparece una x porque la palabra clave encriptada reside en el archivo /etc/shadow
que estudiaremos ms adelante.

usDD Es el nmero de identificacin de usuario. El nmero 0 corresponde a root.


grupoDD Es el nmero de identificacin de grupo. Este nmero se asocia a una lnea o

entrada enel archivo /etc/group.


coment Aqu aparecer un comentario sobre elusuario, tal como su nombre completo,
nmero de telfono, direccin, etc.

Captulo 10

Administracin de usuarios y
grupos
Una de las principales responsabilidades del administrador del sistema UNIX es man
tener las cuentas de usuarios y de grupos de usuarios. Ello incluye dar de alta nuevas
cuentas, eliminar las que no se utilicen, establecer mecanismos de comunicacin con los
usuarios, etc. En todas las operaciones anteriores se ven implicados principalmente dos
archivos en los que se guarda la informacin concerniente a los usuarios y a los grupos
a los que pertenecen. Estos archivos son /etc/passwd y /etc/group que describimos
seguidamente.

1 Q.1.

E l ar Ch i V O /e t c / paaswd

Este archivo est compuesto por una serie de lneas formadas por campos separados
por dos puntos :. Cada lnea guarda informacin de un usuario y tiene un formato como

el siguiente:
nombrews : clave:usDD : grupoZD : coment :dir inicio : proganicio
nombre us Es elnombre de usuario o nombre de login que damos cada vez que entramos.
Debe tener entre uno y ocho caracteres.
clave Este campo es elcorrespondiente a la palabra clave o clave de acceso, que est en
criptada por el sistema. Como se puede apreciar en el ejemplo, en el caso de Linux
aparece una x porque la palabra clave encriptada reside en el archivo /et c / s h adow
que estudiaremos ms adelante.
u s ID Es el nmero de identificacin de usuario. El nmero 0 corresponde a root .
grupo ID Es el nimero de identificacin de grupo, Este nmero se asocia a una lnea o
entrada en elarchivo /etc/group.
coment Aqu aparecer un comentario sobre el usuario, tal como su nombre completo,
nmero de telfono, direccin, etc.

CA P T U LO IO. A D M I NISTRACIN DE USUARIOS Y GRUPOS

252

RA-MA

dirwni ci o Es el camino completo del directorio de inicio (borne) del usuario al que
acceder cada vez que inicieuna sesin.
prog inicio Co rresponde al programa que se debe ejecutar cada vez que entre el usuario
al sistema. Generalmente, este programa ser el shell con el que queremos trabajar.

Ejemplo dearchivo /etc/passwd


$ cat / e t c / p a s s wd
root:x."0:0:root:/root:/bin/bash
bin:x:1:i:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:

lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0: shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:

gamas:x:12:100:games:/usr/gamas:
gopher:x:13:30:gopher:/usr/lib/gopher-data:
ftp:x:14:50:FTP Usar:/var/ftp:
n obody:x : 9 9 : 9 9 : Nobody: / :
xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false
gdm:x:42:42::/home/gdm:/bin/bash
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/bin/false
rpc:x:32:32:Portmapper RPC user:/:/bin/false
mailnull:x:47:47::/var/spool/mqueue:/dev/null
chan:x:500:500::/home/chan:/bin/bash
lucas:x:501:501::/home/lucas:/bin/bash
correo:x:502:502::/home/correo:/bin/bash
ident:x:98:98:pident usar:/:/bin/false

1 0.2 .

E l ar Ch iV O /e t c / g roup

Este archivo est compuesto por una serie de lneas formadas por campos separados
por dos puntos :. Cada lnea de stas se corresponde con un grupo de usuarios y tiene un
formato como el siguiente:
nombre~

p o : password
grupodD
:
: lista~omponentes ~po

nombre~r upo C o rresponde al nombre del grupo que est asociado con el nmero identi
ficador de grupo.

l<A-tctA

10.3. C'()1(IO AADIR llSI.':<tltIOS AI. SISTEMA

2 53

= as s wor d A < t u alict Po sv iisa

smupo ID l ' n i resporrde al lrrrrrero itlentifi< adr <lt gr<>p<). <Ic d< l><' )vr igual al qiiv apa
r< zca vn los usuarios qiiv pert( ( z( iri ;i <liclit> gnipo cn < I an liivo /e t c / p a s s w d.
componentes g r u p o E s i i a l i st a separa(la p()r cora) <l<' lc)st>rl)res dv i isiiarios qiu
pU('ilelr corivert.irsc' c' rnierhros <lcl grlipo col) la onlvri newgrp, no (') por tant<) t>r>a

lista <lv rrrieirihros a( tiialvs <lvl griipo,

Eje)plo:
$ cat /etc/group
r oot : : 0 : r o o t
bin : : 1 : r o o t , b i n , d a emon
daemon::2:root,bin,daemon
s ys: : 3 : r o o t , b i n , a d m
adm::4:root,adm,daemon
t ty: : 5 :
mailnul:x:47:
s locat e : x : 2 1 :
l ucas : x : 5 0 1 :
c orreo : x : 5 0 2 :
i dent : x : 9 8 :

10.3.

Cm o a a d i r u s u a r i os al s is te ma

Para aa<lir irsiiari<> al sist<.ra sc d< l>vn )(giiir. en cl <>nlvii qiiv aparecer). e>stos 1)amos:

1. C o p iar el H(tal arcliivo / e t c / p a s swd vn / e t c / p a s swd.aux con objeto <le poder


(Icsliil('er los carril>los ('li cHAl) (Ip. (lll(' >ligo falle.

Aiia(lir l a

l i nc a o e r it r a(l>t (()rresf)oiidi(r)te ;il i i suario quv q u ercrrios <.rt'Hrcll cl ' t l.

chivo /etc / p a s s wd couc u alqicr editor dc texto, cii vl foriri tto quc hercios visto
;l i l tcri(>i lllclltc. )>/Hlrio), 't <Ial', 'l ('olltl) ll >a('i<ll tlll>l sPI'if' (IP iloi liras qiiP >los ay( l ( l)tr,'n

t rpllvriar. Ia, liriva (or.rpspor><li( i)t<' )tl iivv(r sftri<). Fii I>rinicr i i>gr. (I r ionit)re <Ic'
a< s(> <> ri<>rril>n cl< (onexi<>r> clel ii)iiaric> iio <lvl> x l < r tl< 8 c arac t< rvs. Fl caiiip(>
sigii ivi)t e. Pl ( r r< sp<)n(l iv))t v a I H p;ilal>r;t ( I t<v< . 1<) ti< 'Jitl'('ll)t)s vit('(). () r r lvjor flllrl, ( (+
lo< tn'ritos ii H)rvris< c> +. En vl cariip<> UID p(>ii<ln riu)) <'I iiirri< r<) clv i<1<sitilicar' Hl
iiiivv<>ii)iiario. Dv l>vriic>s vl< girn <lcrrtifi< ;t<lr <lifen ritt al c l(' clralqtricr c)tn> i>si);t
ri<>, ya que si rio <) i)si se proclc irar) pr(>hl(r;i). El <)iip<)GID lo rvllvn;irvincx) (<>ri
< l icl< iitifiicaclor dv gnipo ( o r rcspoirdicntv ;il griip<> al cal <I< 1>a p< rtc nvcvr el iii)e vo
lis)l'irio. Li i c I c aii><) sigu iv) >t c coloc;tn m(>s iiif<>ri;i< i<>i) r< I;t< iona<la cii la I >c r)<>ira
cri cttvsti<)i>: iu)riil)n' ' t ) I>let<>.tc I<'forro, (lir< (< i<ri. ( t(. . ' i ( ' gr>i<la>ii< itt< (1(tiiii r v i i i t>).
eri vl sigiii( iitv < ariip<>, c u'l svra vl d i r v< t<)ri<> d(' arrii i q u c' <lcl iiu( v<> ii)u'trio, d tricl<)
IH l'lit)t (o l l l l)lf'ta tl<' ilqllvl. P<>i' lllt ii>l(), vs ii('<'PHHI'1() (lt'Iiriir ci i t l )( r; el I > rogra i i i a ( l t '

iiiicio. ri()rnialriiviite c l slivll ( / b i n / s h , / b i n / k s h . / b i n / c s h , / b i n / b a s h , <tc.). LH


llll('a corre ) p o l l ( l l v l lt t' po(li'lit )<'l sillll,'tr it l)l s)g)ll<'ilt <':

254

C A I ' T U L O IO, ADI<IINISTRA<'IN DE USUARIOS Y ('RUPOS

RA-MA

jpg:*;509>17> Iavier Prieto Gomez:/home/jpg: /bin/sh


3. C o p iar cl actual rchivo /et c / g r o up en / e t c / g r o up . aux con o!>jeto de p<)der <les
hacer los can>bios en caso de q<>e a! go falle.
Anaclir o anq>liar una lnea en el archivo / e t c / g r o u p <.o el nombre del usuario.
Debe haber u>)a correspondencia entre cl GID dado en el al<'hivo / e t c / p a sswd y
el grupo al cual pertenezca e! nuevo usuario. La lea correspo>aliente podra ser
si>ilar a la siguiente:
sisop::17:opm, masp, lcsp, assp, jpg
J. C r ear u n d ir< ctorio HOME para el nuevo usuario (el >nismo que <leclaramos en el
archivo /et c / p a sswd) y cambiar el propietario y grupo del <lire<torio en cuestin,
utilizando las rdenes chown y chgrp. Por ejeu)plo, si el <)tnbr lel nuev<> usuari<>
es jpg. cl gr<>po al que est adscrito es si sop y su <lirect<>rio HOME es /home/jpg .
daremos las <)r<len<s siguiet>tes:
! mkdir /home/jpg
! chown jpg /home/jpg
! chgrp sisop /home/jpg
!

6. C o p iar en directorio HOME del usuario todos los archivos de co<>figuracin necesarios:
. prof il e , . e x r c , . xi n i t r c , e tc, Estos archivos p<><lemos < opiarlos de otro usuari<>
que los tenga <lehnidos de f orma correcta o l>ien to>nar los que tenga el sistetna
definidos por defecto. Los definidos por defecto suelen residir en los directorios
/ usr / l o c a l / s k e l o / e tc / s k e l . T a n>bien deberemos can>biar el propietario y c l
grupo, as conu> los d< rechos <le acceso de los nuevos archivos de conigura<in.
Siguiendo con el ejemplo anterior, t.endremos que escribir lo siguiente:
!
!
!
!

cp /usr/local/skel/. [a-z] +/home/jpg


chmod 644 /home/jpg/.[a-z] +
chown jp g / h o me/ j p g / . [ a - z ] <
chgrp sisop /home/jpg/.[a-z] +

Definir la palabra clave inicial <lel nuevo usuario utilizando el programa passwd.
Esta clave, aunque sea provisional. la elegirernos cou cuidado, ya que si no passwd
protestar y ex igir; que introduzcamos una clave apropiada. Evideternente, es
necesario cuu>unicar esta clave de acceso al nuevo usuario, recomendandole que la
cambie y elija una nueva. Si continuamos analizando el ejen>plo anterior, teudren>os
que teclear:

RA-XIA

ll).4. EL SISTEIIA DE COl>ITRASEI>iAS S HADOl4' 2 5 5

! passwd j p g
Changing password f o r
Enter new password;
Re-type new password:
Password ch anged.

j pg

Par'i cc>ntrolar llnalxvi>te si h erir<>s modifica<lo corrcctarnente los ar hivns /e t c /


passwd y /et c / g r oup podern<>s ut llizar en ciertos sistemas las rdenes pwck y grpck.
l'ii( dc quv eri otros sistvnxas estas >rdviivs ri<> este<ii presciites.
llii( i;ir iina s< siii cori < I noil>rv <lv iisuario qiie acabanios <le crear y coiriprol);xr qiic
r >ck> fii< i<>a correct axrxeirtv.

L3<>rrar los arcliivos /et c / p a sswd. aux y / e t c / g r o up . aux.

10.4.

E l s i s t e m a d e c o n t r a seas Shadom

Vii algurios sistemas UXI Y e l a r cl>ivn / e t c / p a sswd corxtiene. entre otras <c>sas, Ia
..(>rrasvfi i clel usiiario coclilicacla svgxrlira ( l ave qiiv <t;il>lec( el usirari<) (:<>ii el pro
rrarixa passwd. De esta foria. anqirv alguivri pu' la Iv< r I arcliivo / e t c / p a s swd. rio
-rr>i >iv('rigu>ii las col>t reis(fias <lv ningiri usuririo. y i riu( lio i< iios I;i d(1 adiiistr.>i(lor.
<)<lific a< in <lv la >iit r (seria se luce iitiliz xil<iri sistenxxi de privrta gir atoria o <le
.. .i) setid<) (on< ni<// /rs/> fs<nrt><i). <Iv fonxxa quv cs rin>y sciicilln cocliicar la clave
:. < ivrid() l;i (<)iitraseria. p< ro ry difcil d e d ( s co<lifi< ar si st>i no s< conoce. C'iiai>do
iix;xri<) a(((d (

a l s i s t e i i i;x pr()p<)r(.i<)ii;i su <)rxtr >seria. (sta s( c o d i l i cci y sc c<>n>prucb<x


in< i<l<" cori la contl'aspil<> ' idih( d;1 qllv sp viiciientra eii / e t c / p a s s wd. A pesar de quc'
= i>< nios <licli<> <qi< l proc< so iixic rsc> < s <lif< il. existe te< ni< as criptografi< rxs ;il al<ar>c<

i <lqxrivr x qii< pc ririiteii < >1)texi< r I i c <)xrt raseria a partir <l< la < I ivv c o<lific ula. Acl< r>ras,
iii . ist< rii;i < oxi iriu<.l><>s iisarios. < s fe il <Ii irn gran niriiero cl<' ellos liaya elvgicl(> c<>ri
. >. ri;<s <l('l)il(s. ( s (I( < ir, < oiii r>is< is lxasa<las vi> pal;il)ras que aparecvri ( xi <liccionario.
ir) < )n< As'r'disp<>ri< dv iii><> <> v;iri<>s dice.ionar ios, p<><ira pn>1)ar palal>ras li;ista ciar cori
i>i>t rasa(iii (;it;iqiic s <lv <lic< iori;xria>h <) sirxxpl<rrivrxte prol)ar' c orrxhiixacioixvs dv lv t r i is a
-i <ivrtci <or) lci <ontr;is<fia atactues cl< fiivrza h r i i l a ) . T.a soliici<ri a este pr<>1)lelrlci
-- . . I >iv < I ar( liivo / e t c / p a s swd ii o l u v r;i Icgil>lv p<>r iiirxgrri iisirario. a ex<+pel>r <lv
. pero veto ii<> < s p<>sil>l< porqiic ui>a ordc ri tar> ser>c ill;i cc>iii<> ls -1 ric cesita ac <v(lvr
<r<.l>iv<) /etc / p a s swd p ir i ; iv<rigirar c I xiornl>rc <l< I irsuari<) <la<lo ir(i VID. f ' o ri e stas
-c~rixisas s< >1<) iios qii( da i>r>a solu< i<)n: aliixa< errar la corit raseru c(>< lificrlda ('Ii ()ti <) ar(.'lllv()
<tire s<lc> root y a l g i i r>s p<>>s prograrrias axitoriz;>di)s (p.v. passwd) piicd>iii a <'clvr.
<r< l>iv<> vs /etc/ s hadow,

L0.4.1. Form ato del archivo /etc/shadow


L l >>r< liivo /et c / s h adow < onti< r>e la sigieritc' inforni<icin:

nombreusuario :clave :ult cambio : pue cambio : debe cambio : aviso


: caduca:desha : r e s e r v a d o

256

CA P T U LO 10, A D M I NISTRACIN DE USUARIOS Y GRUPOS

RA-A

nombreusuari o es el nombre del usuario utilizado para la identificacin del mismo ante
el sistema.
clave es la contrasea codificada,' de dicho usuario.
ult cambio nmero de dastranscurridas desde el 1 de enero de 1970 desde que se cam

bi la contrasea por ltima vez.


pue cambio nimero de das que debe transcurrir desde que un usuario cambia su contra
sea hasta que pueda volver acambiarla de nuevo.
debe cambio nmero de das que deben transcurrir antes de que el usuario deba cambiar
la contrasea.
aviso nmero de dasde antelacin con el que se avisa a un usuario de que debe cambiar
su contiasea antes de que caduque.
caduca nmero de das que deben transcurrirdesde que una contrasena ha caducado
hasta que se deshabilita la cuenta asociada a dicha constrasena.
desha nmero de das desde el 1 de enero de 1970 que lleva una cuenta deshabilitada.
reservado campo reservado.

Ejemplo:
4 cat /etc/shadow
root:$1$SXAqIW/d$f/idE3PUDOi/UwhvGrUyl/:11624:0:99999:7:::
b in : + : 1 1618: 0 : 9 9999: 7 : : :
d aemon:+:11618: 0 : 99999: 7 : : :
a dm:+:11618:0 : 9 9999: 7 : : :
l p : + : 1 1618: 0 : 9 9999: 7 : : :
s ync:+ i l 1 6 1 8 : 0 : 9 9 999: 7 : : :
s hutdown:+:11618: 0 : 99999: 7 : : :
h alt : + : 1 1 618: 0 : 9 9999: 7 : : :
m ail: a : 1 1 618: 0 : 9 9999: 7 : : :
n ews:+:11618:0 : 9 9999: 7 : : :
u ucp:+: 11618:0 : 9 9999: 7 : : :
o perato r : + : 1 1 6 18 : 0 : 9 9999: 7 : : :
g ames:a: l l 6 1 8 : 0 : 9 9 999: 7 : : :
g opher: + : 1 1618: 0 : 9 9999: 7 : : :
f t p : + : 1 1618: 0 : 9 9999: 7 : : :
o scar:$1$0sKydU/w$y3dZdTdUqrsNSVwoG1613.:11624:0 : 99999: 7 : : :

Si no colocamos nada en el campo de contrasea, la cuenta del usuario no tendr ninguna


contrasea. Si se coloca un signo de admiracin, significar que la cuenta se encuentra

bloqueada.
' Formalmente no se debera emplear la palabra encriptado sino codi6cado, ys que la utilidad que
genera este cddigo (crypt) utiliza ls contrasena como llave a la hora de encriptsr un texto nulo.

tt).4. EL SISTEt>tA DE COi>tTRASE)tAS S H.1<DOtV 2 5 7

RA->NIA

1 0.4.2.

U s u a r i o s y g r u p o s de u suar i o

En UNIX t o dos los iisii;irios perteiiecvu, al menos, a i>r> grpn <l< iisiiarios. El a<lmi
riistrador del sistenia es el encarga<lo dv dar <lv alta l()s grupos dv usuarios que considere
p<i t inentes. D< ntro de cada grupo de usuarios e><istirn ad>i>inistr idorvs <le grup<> y niiem
br<>s d<. grupo. La. labor de los prinieros p<.<lvn d;ir de alta y baj;i iisuarios en el grui>o

<lvl q>ie son administradores.


1 0.4.3 .

H er r a m ie n t a s p a r a g e s t i o n a r l o s u s u a r i o s y g r u p o s

Cuando se incorpora el sistema de proteccin s/><><or<>


;i uri sistema, l;>s l ibores p>ira
dar <le alta a i>r> us>rario se liarvn n>as complejas. Por est< inotivo. <1 softivarl e .sh<rdou'
i< liiyv alg>inas 1>errainivi>tas q>ie facilitan dirl>a gestin, ) eremos a rontimiacin algunas
<1< ella.

adduser
Sintaxis: adduser usuario
Esta orden se utiliza para dar de alta a nuevos usuarios vii el sistema. Si no sv. propor
< i<>rian argunieritos, adduser torr>ara dvterininados valores i>or defecto. Podemos corisultar
<li<.l>os mlorvs con la npciri -D.
GROUP=100
HOME=/hoie
INACTIVE=-1
EXPIRE=
S HELL=/bin / b a s h
SKEL=/etc/skel

Estos valores por defecto se aliacvnan < r> el ar< liivo /et c / d ef aul t / u s e r a dd, pero para
>dii< arlos po<lemos hacer iiso <lvl misnio pr<>grama useradd. Por eje>)>plo, si querernos
q<>e las cor>trasvr>as cad<tuen por d< fect<>l 21 <l< o< >ubre dv 2OO5, dandon niargen <le

7 das para cambiarla teclearamos:


! us er add - D - e 2 0 05- 10-21 - f 7
!

)i quer<'ir>s ai>adir ui > uvvo iisiiario antes te>w mos q>>e d<'hiiir uri g>upo al qu e p < r
>< n<'rii <ii<l>o usiiario. P<>r eje>ripio, para rr< ;ir vl gr>ipo dv Usuar i o s u t i l i zaremos l i
<>rd< ii:

! g r o upadd Usuar i o s
!

.'>I l idvl uite pr<>fui><lizarvios < ii vl s<> <1r esta or<l< ii. Al><>r > ya tv<'n><>s >iii grupo <iv

>>s<>ar>os al q>lv r>>la<ll>' ill> il>levo lis>l<ir>o.


! useradd -g Usuarios -c ''Oscar Garcia'' oscar
!

25S

C A I ' f b ( L O 1(>. AI3<XIL<(ISIRACIOi D E U S I ' A HIOS 'i' ClHI>l'OS

Qc RA-.'<IA

U>ia vez r<>d<i iisari<) <leheiiios asigi>arl(. un;i coiistr >sena iitilizan(lo la <)r<leii passwd.

! passwd oscar
C hanging password f o r u s e r o s c a r
New password:
Retype new password:
passwd: all authentication tokens updated successfully
!

Tanihin es posible dcjiir l a c cnta sin coritraseiia, de frina qii( sea el p r opio i>si>ario
qiiien 1;i est iblczca.

! passwd - d

oscar

Esta opcin. aunqiu. cmoda en n>uchos casos. puede (onstitiiir ui i i ruportante fallo <le
seguridad por lo que hahra que i>tilizarla con pr(xa<.ii>.

ou add
S int a x i s :

g r o u p add g r u p o

Cori est i ordcri p()dem<)s dar de alt i >iii riiievo gr>ipo en el sist( u>a. Por ( j( rriplo. p>(r;i
dar <le alta el grupo de usi> irios de l terr t ll>i>nado as> (e/ utilizarauios la siguiei>t<

or(len :
! gr o upadd us r w n e t
!

as s wd >r~ - '
S int a x i s :

g p a s s wd g r u p o

El a<ln>inistra<l<>r del sisteriia es el encarga<lo de i>or>tbrar uri >dr>>ii>istrador para (l


gr>q>o. Di< ho ad>iii>ristra<l<>r pi>e<le ser ur> usuiirio m>;ilquicra <lcl sisteiii;i. El ul>iiiiiistra(lor
de grupo t er>dra la p o t estad d e i i>< hiir r>uevos usiiari<>s ei> sii grul)<). Slo r oo t p i i e<l<
< .stablccr qi>i ser>i el diinistrador <le un gr i i po . V()r ej<.uil)lo. p>ir l e finir ; i o s c a r
coiu<> idiinistrador del grupo us r w n e t i >t i lizar.ari>os la <)r<leii:
! gpasswd - A o s ca r u s r w n e t
!

A p>irtir de al)r;i, el usu<irio oscar p u ede ariadir n( vos >iii< ihros al griipo us r w n e t .

$ gpasswd -a u s u a r i o 0 1 u s r w n e t
Adding user usuario01 to group usrwnet

RA-MA

10.4. EL SISTEMA DE CONTRASENAS SHADOW

259

newgr
Sintax i s :

ne v g rp g r u p o

Cuarr<lo se da de alta un usuario en el sistema se le asigna un grupo prinrario. En los


ejerrrplos arrteriores, el grupo primario para cl rrsrrario oscar es Usuari os . Para consultar
a qrr grupo pertenece urr usuario podemos utilizar la sigui<rrrtc orden:
$ id
u id=500(oscar )

g i d = 5 00(Usuar i o s ) g r u p o s=500(Usuari o s ) , 5 0 1 ( u s r w n e t )

$
I! rr usuario puede cambiarse de grupo lracicndo uso de la orden neugrp
$ newgrp u s r w n e t
$ id

uid=500 (oscar) gid=501 (usrznet) grupos=500 (Usuar ios), 501(usr ~net)


$

Chage
Sintaxis: chage -l usuario
Con esta orden poderllos Illalllprllar los tierrrps rrrxirrros y mnimos en los qrre los
<rsrrarios debe canrhiar sus corrtrasenas. La fornra ms serrcilla d< invocar esta orden es
r rrediante el modificador - l .
! chage - 1

a s e ar

C<>rr esto se ohr ienerr 1<>s parmetr<>s a< tuales rle tiempo <le la cuenta riel usuario oscar.
Minimum:
0
Maximum:
23
Warning:
4
I nact i v e :
4
Last Change:
P assword Expi r e s :
P assword I n a c t i v e :
A ccount Ex p i r e s :

n ov 06 ,
n ov 29,
d ic 03 ,
d ic 12 ,

2004
2004
2004
2005

Minimun in<lica el tiempo rnrrirno er l ias que deber> transc<rrrir para <Iuc un usrrario
p>red'> calllbiar su contrasefia. Si va!<. cero. sigrrifica qu< cl s<rario puede canrbiar
su contraserra err < rralq<ricr nromerrto. Podemos alterar cst< valor cor> la opcin -m
<lc la orclerr chage.
Maximun indica el tiempo en das a partir del rltimo cambio dc cambio de la contrasena.
en e! q<>e el rrario cle!>e < arhiar srr contrasefia, Podern<>s alterar este valor corr la
opcin -M de la or<len chage.

260

( ' A f ' l 'l'ULO10. Af)">lllvlg l'l<A('IN DE ttgtlABIOS 'L' (lRl'l' O S

Qr RA-t<IA

Warnin g i i >di<)L ( oll ( lll(tos <l Ls dv al>t vlaci<>ll s( avisar L <)l< us>L Lrio <le q(te s(t cot>trt(sva
vst a p(tto de < duar. P<)(le(nos altvrar <'st(' valor o l'L op('.i<n -W <1(' l L ord<'

chage.
Inact iv e

i ! t d ica cutt tos <l'Ls d<' pl'Lzo i(' <1(j'


.L al <lstl(LI'l<) d( sd<' q! Lv ('ad(l'( s)l ('(>lit rasetl

ll)<sta (}It( la ('Uvl>t)> (l(1<'d<' l)lo<t<lea<la. 1. )la vez q<l(' sv 1>loq<1('<L


<ll(a ('>ll)t(L vl <ls(tal(o
llo ptl(d v H( ( (<1<l' d( U v v o

l u < st(L(lllv <'l adtt(llllst L(Ldor la d v s l ) l o (t<>ve. P(><IPI< >s

alter;Lr (stv valor > l;L <>p<.it) -I d< la <>rdvt> chage.


Et> el vje)L>plo >Lt(t( rior. el !Lsuario o s ca r n > odifi(() su ( o n t r 'Lsv)a por >ltitn;L vvz ()I f) d
ovtpll>1)l p (1( 200 f l /><Las)o>d. < /)<L))ye). S(' ('st LI>l< ( i( <t!( t ivtp<> tu xitt(<> d< d>>racin <l<
23 <l(Ls (t)<(u<)t<r)L). por 1<> tat<> la ontrasvtL del !Lstt <tio c l<t< ;Lr vl 2'.t d(' t(ovl( lul)I<
<l( 2(lt)1 (/)se(<()r<l e <!i res j. 4 (las <l(spu((s ( In(L/i <>e j,(s d( ( ir. ( I :3 (I(' (ficien>1>rc dv 2tjt)-I
s(' l>ro('('der ;L l>loq<lval Ia ct(('Lit'L <lvl Lls(l<(I'lo.

El ;ui>inistra(lor p(te<l< tt(odificar cualq(tivr'L d( estos p Lr;t( tr<>s. Por eje(plo. pl<
vst>LI>lv<!< r la fvha vn la q<!v VI <!sar io u>o<lifi<> por (lt!ma vvz u)L(L (ot>tr>sera. Est<) ( s
ttil p;ua f o r zar qttv <ttt s<tario < ;uI>iv. s<t < ontr;<s<()a.

! chage -d 0 o s c ar
! chage - 1 o s c a r
Ifinimum :
0
ffaximum :
23
Warning :
4
I nact i v e :
4
Last Change:
P assword Expi r e s :
P assword I n a c t i v e :
A ccount Ex p i r e s :

Never
Never
Never
d ic 12 ,

2005

I.a prxinta vez (t!Le Pl <tsttario itvt>te ac(ed< r s( le ol>ligar a qu ..(LL>>l>i< s<t contrasea.
Si o lo ltace. no se le permitir a(cv<ler alsist( tt>;L.
Esta OPvraci<n t(<ml)iv@ vs )!t il cl((L))<lod(L(l>os dv alta (l l lLcU('lit)L ll>>c)al q(le 110 f(v(l('

cot(trasva v q<tervn>os q(tv vl tts(tario la Pstal>l< zca la printera vez qv acceda al mis(o.

! passwd - d o s c a r
C hanging password f o r
R emoving password f o r
passwd: Success
! chage -d 0 o s c ar
!

S int a x i s :

pwck

u ser o s car
u ser o scar

t<A-Xln

IO..I. EL SISTEXIA DE ('01> TRAS>E VAS> .'>H:IDOH'

26 1

Des< rip( i<ir): la or<lvrr pwck (pasar<>on/ (/rerk) bus< a vrr cl arclrivo /et c / p a sswd posibles
~ r es <l( f<>r<nato, as <orrn> posil)les incosistc(i rs (rrsrrarios <1pli<"><los, usuarios sir>
= ~ t<>rio d< inicio, errores sirrta(ti<<>s. (tc.).
Ej< nrplo:
! pwck
user adm: directory /var/adm does not exist
user news: directory /var/spool/news does not exist
user uucp: directory /var/spool/uucp does not exist
user gopher: directory /usr/lib/gopher-data does not exist
user gdm: directory /home/gdm does not exist
pwck:
!

a%i ~

grpck
S int a x i s :

k~l

gr p c k

Des< rip(i<>rr: l<r ord< rr grpck (</rorry <:/<<c!') busca < u el arclrivo /et c / g r o u p p osibles
-.rrcs <lv fornrato e ir><.orrsistvrr( ias avisar><lo)>os dv vilo.
Ej <'<ir p lo :
! grpck
!

chsh
S int a x i s :

ch s h

l.a onl< rr chsh (('/r(r)rgre .~/r(ll) p<>v<le errrplv;rrl r rrrr usrr'rrio p rra < arl>iar srr irrtrpretv
<)r (1<'11( s. ( 01110sal)crllo. vl it rpr< te <lc <>r <1<
rrvs vs vl rltinro c;rrrrpo <le ca(la lrrea dvl
an llix o /et c / p a sswd. L;r forma dc operar <lc esta or<lc cs rmry similar > la or<lr n passwd
>>>e<)t <r<l r err r r r> <
apt ulo ;u)t< rior. c<>r> la clifercncia (lc <lc lo <luc sc r>ro<lifica <rr vstv < as<>
< l shcll <lv rrsuario y no srr p rl rbr r ( l rv('. ("<tan<lo (Iuvrvrnos canrbiar llrrestr<> irrtrprctc
<le <>nlvrrvs, chsh < isualiza vl shcll <Iuv vstarrros vrrrplean<lo y r)os pi<le <Ir<v irrtro<luzc;rrrro
rrro rurvvo. El rruvvo irrtrpretv (lc <>r<le>r<s d< bv s< r. r<r)o <5' k>s ir><lic>ulos crr cl arclrivo
/et c / s h e l l s , a, o s(r (pre s<'r vl pn>pio (lrinistra<lor <lvl sist(rrr r <l<Ir<v irrvo< a la or<lvrr.
i i < l ><r< lrivo /etc / s h e l l s n o < xiste, k>s rrri>s sla 11 v;li<1<>s s<r /bin/sh y / b i n / c s h .
E jcmplo:

$ chsh
Cambiando intrprete de comandos para chan.
Password:
Nuevo intrprete de comandos [/bin/bash]: /bin/sh
Se ha cambiado el intrprete de comandos.

262

C A P T UL O 10. ADNIINISTRACII<' DE USUARIOS Y CRUPOS

ItA-I<>A

Sintaxis: chfn
La orden chfn se utiliza para actualizar infor>nacin relativa al usuari<>, co>no nombre
con>pleto. desp'uho, t<lfono <lel trabajo y tclfouo <le cas <. en cl r<'hivo /et c / p a sswd.
C'uandn s(' nos pregunta acerca <le la informacin anterior, se nos ofrecen unos ia.lores
por defecto encerrados entre cor<1>etes [ ] . Este valor por defecto se acepta sin>plen>ete
pulsando ENT R AR . P ara in<.h>ir un can>po en blanco, deben><>s introducir la palabra
none.
Ejc>plo:
$ chfn
Cambiando informaci6n de finger para chan.
Password:
Name []: Sebastin Snchez Prieto
O ffic e [ ] : E 3 1 4
Office Phone []: 91-8888888
Home Phone [] : 9 1 - 7 7 77777
Se ha cambiado la informaci6n de finger.

10.5. Permisos especiales sobre archivos


El n>m< ro identilica<lor de usuario (user - I D ) es un entero qe se encuentra cn el ar
< hivo /etc / p a sswd y que est asocia<lo ron el >u>mbre de logi t> del usuario. Cuando ini< i;<
sesinn usuario, l'> orden /bi n / l o g i n c<>nvierte < stc n>n>en> i<l<'ntificador en el n>n>e
ro <le usuario asociado <I prim< r pro<eso credo, < l interpret< de rdenes. Los procesos
que vayan ejecutndos< a partir de ahora llevarn asoci;>do est< n>nu ro de identificacin.
Los procesos tambin estn o>'ganizados en grupos, lo cuales tan>bi>n poseen >m n>me
ro dc identificacir> llan>ado n>mero <le ident.ificacin de grupo (group- I D), qu( ta>nbin
se <ncuentra en l archivo / e t c / p a sswd. que se convertir en el n>m>ero d< identihca
ci asocia(lo al sh< ll. Estos grupos estn defini</<>s en el archivo /et c / g r o up. Est<>s <los
n>n>eros de idctificacin son d(nomina<los rel< s porqu< son repres< ntativos <lel usari<>
real, esto es, el quejecut el pro<.eso lg<n. Aparte existen otros <los nn>croa de ide
tifict>< in q>u. tan>bin estarn asociados a <a<la pr<>ceso y se lcs <o>u><e con>o n>n>e>x>
de identificacin de usuario efe<tivo y nmero de identif>cacin de grupo efectivo. st<>s
suelen ser igu(>les a los reales. pero pu< den ser <listinto. y se usan para determinar 1s
per>nisos, n>ientras que los r<ales se usan I>ara saber la identidad verdadera del usurio.
Cada archivo (ya sea ordinario. directorio o especial) contiene en su r>odo->'el UID de su
propietario y el GID de su grupo propietario, el conjunto dc permisos de 1<..ctura. escritura
y ejecucin para el propietario, grupo y otros, aden>s dc datos adicionales concernient s
al archivo. Este conjunto de permisos <k termina cndo n p ro<eso puede ejecutar u;>
accin (lectura. escritura o eje<u< in) en >m archivo dado. E archivos ordin;uios, estas
tres acciones son obvias. E <lircctnri<>s, la accin <le escritura significa po<ler n>odif>c >r
e! directorio aadiendo o borrando una entra<la en el mismo, n>ientras que la accin d<

r' I(A-M A

1 0.5. PER!vIISOS ESI'ECIALES SOBRE ARCHIVOS

263

e je<cin significa que piieda ser inclui<lu eii un PATH ll>ur ejeniplo. para utilizar f i a d .
I > para acceder a l cori la ordeii c d). En a r chivos especiales las acciones dc lectura y
c s<. ritura significa>i la posibilidad <le p<>dcr ut.ilizar las llariiadas al sisteina read y wr i t e .
Este sistema de permisos finicioiia de la siguieiite fornia:
Si el nmero dc identificacin <le usiiario efectivo es 0. entonces se clari lns pcrtiiisus
i <>iiin propietario (0 es el UID ef<'ctivo del adniinistrador <lel sistenia).
Si el nincrn de iderrtifica< irlc usuario efectivo coiricide cnn el nirrern dc idciitifica
i i>ii <lc usuario propietario <lcl ar < liivo riuuca<ln eii su >r<><lo-i,<uitoiices se dan los per.misns
~l< pr<>pietariu estahleci<1<>s.
Si el iimern d< i<lcntificacin de grupo fectiv cninc idc cnn el iiiiiiero de identificacin
~h griipn propietario dcl ;ircliivo marca<lo rn su nod<r-i, (.ntunces se <la>i los perniisos de
al'i lpu.

Si no se da nigria d las tres anteriores siipnsiciones. sc darn lns permiso estahle


< iclus para otro.
Varuos a profundizar ain nis eii los derc(hs aso< iadus ri uii archivo. Hast i ahora
hmnns considerado los derc< hos dc lectura. escritiira y ejecuci<ri aso< iado al propietario
del archivo. al grupo al que pertenece el iisuario y 1 resto de las pcrsorias. Estos dcrechn
se representaban pnr nueve bits. Un hit activo (a iinn) inclicaha qe el derecho correspon
dieiite estaba activo, y uri bit a cero iiidicaba lo contrario. Adcmis de estos >nieve bits
de dere(l>os asn(ia(h)s >l ca<la archivo, pnderiius <onsid< r,ir tres ins, lus bits dirz. orice
d oce. cono(idos n>niu l>it pegajoso (st i c k y - b i t ) . h i t <l< set - g i d y b i t d e s e t - u i d .
n spectivarrrerrt(. Van>os a describir a cniitiiiuaciri la t i l i<lacl <le <'stus tres bits.
El bit <le set- u i d es una iclea relativamente simple qiie rius periiiite suliicinnar pro
l>leiiias relac iori;ulos cuii l;i proteccin. El hecho de qiic uri prograia teriga este hit activo
iil>lica qiie cuarido ejecuteinos dicho programa, ste toiiiar como identificador clesu'i
ri<> el idcritificadur del propietario. Si cl propietario fuese el adniinistradnr. entonces el
1>n>graina se ejeciitara conio si ln hubiese lanzado el propio acliiiiriistra<lor. Dc. este muelo.
I><>deinos explicarrios < mo uii usuario nnrm;<l puede modificar su pal;ibra clave cuando
> llu implica iiiodilicar el cniit(iiidu del archivo /e t c / p a s s wd, qiie slo ticnp e rmiso dc
es< r.itiir,i por parte clel administraclor <lel sistema. L;i razii <le pc.rniitir esta modihcacin
rs quc 1 programa passwd quc prtenece al a<lrniriistrador tic>>e el bit <le set-ui d activo.
iii niodo qiie cuando ejeciitaiiins cs( progr;una, y s(lu mierrtr>>s ej(.'cutamns esc programa,
a r iiainos romo si fu('scirios el adri>iriistradnr. El bit. de set - u i d e st a<'tivadu cuando eii
l;i mscara cle dcrccli<>s del programa, cii cl carripn dr cjc <.rrciri para el propietario. t.ieiie
a< t iva tina s en liigar de una x. Veains ciiin <.1progrania passwd tiene activo este bit :
$ wherei s - b p a s s wd
passwd: /usr/bin/passwd /etc/passwd /etc/passwd.rpmnew
$ Is -1 /usr/bin/passwd
-rwsr-xr-x
1 r o o t r o o t 26 6 16 2004-05-21 07:04 /usr/biii/passwd

$
laibiii i i osotrns p<><lemns p<uicr. (I b it, de s e t - u i d a c t i v o c n c u ; i lqiiicra d c i u iestrns
prugrar;rs. De este inn<ln. < ii>irido utrn iisuarin cjeciitc estos prograinas. tedrr lus niisnins
<1(.rechos cine el propietario. Este bit. riu se pecl ict ivar en lo prugrars de sliell. Veiuia>s
iin ejemplo eii el cliie activanios <1 hit de set - u i d a ui i pr ograma:

264

CA P T U LO 10. AD M I NISTRACIN DE USUARIOS Y GRUPOS

$ l s - l si m
-rwxr-xr-x

1 c han ig x

RA-MA

293 0 8 ene i8 18:53 sim

$
Como vemos, el programa sim no tiene activo el bit comentado, para activarlo haremos uso

de la orden chmod. indicando que deseamos activar el bit nmero doce (bit de set-uid)
del siguiente modo:
$ chmod 4755 s i m
$ l s - l si m
rwsz xr x
1 chan

i gx

29 308 e n e 1 8 1 8 : 5 3 s i m

Ahora. cuando cualquier usuario ejecute el programa sim, a todos los efectos, el programa
actuar como si hubiese sido invocado por el propietario (chan).
Al igual que existe un bit de s e t - u i d , existe su equivalente aplicado al grupo, y se
conoce como bit de s e t - g i d . L a f u ncionalidad de este bit es completamente similar a
la del bit de se t - u i d , p ero en este caso se aplica al grupo. Para poner activo este bit.
haremos tambin uso de la orden chmod, indicando que deseamos activar el bit nmero
diez (el resto los dejamos como estaban).

Ejemplo:

$ ls - 1 s i s a r c h
- rwxr- x r - x
i ch an
$ chmod 2755 s i s a r c h
$ ls - 1 s i s a r c h
- rwxr- s r - x
i ch an

i gx

4 37428 ene i 8

18:55 si sarch

i gx

4 37428 ene i 8

i 8 :55 si sarch

$
Tambin podemos activar estos bits sin necesidad de operar en octal. Veamos cmo po
demos activar estos bits de forma simblica haciendo uso de la orden chmod:
$ chmod +s nz o
$ l s - l nz o
- rwsr- s r - x
1 chan

i gx

74 5 12 e n e 1 8 i 8 : 5 5 n z o

Por ltimo, el s t i c k y - b i t i n d i ca al ncleo de UNIX que este archivo es un programa


con capacidad para que varios procesos con>partan su cdigo, y que este cdigo se debe
mantener en memoria aunque alguno de los procesos que lo utiliza deje de ejecutarse, La
tcnica de compartir cdigo entre varios procesos permite ahorrar memoria en el caso de
trabajar con programas muy utilizados, tales como editores de texto o compiladores. Este
bit est activo cuando en la mscara de derechos del archivo en cuestin, en el campo de
ejecucin del resto de usuarios. aparece una t en lugar de una x.
Ejemplo:
$ ls -1 /usr/local/bin/exax
- rwxr- x r - t
1 r oot
bi n

332 26 D e c 1 0 3 : 2 7 e x a x

10.5. PERMISOS ESPECIALES SOBRE ARCHIVOS

Q RA-MA

2 65

El sticky-bit tiene.en muchas de las nuevas versiones de UNIX, un uso especial para
proteger archivos dentro de un determinado directorio. Cuando en un determinado di
rectorio tenemos activados los derechos de escritura para un grupo de usuarios o para
todo el tmmrlo, implica que cualquiera de ellos podra borrar archivos de ese directorio,
incluso aunque no le pertenezcan. Veamos un ejemplo que aclare el escenario planteado.
Supongamos que el usuario ssp t iene un directorio denominado publ i c o a l c ual t i ene
acceso todo el mundo:

$ pwd
/home/ssp
$ ls -ld publico/
d rwxrwxrwx
2 s sp

s sp

4 096 s e p 2 1 1 8 : 0 0 p u b l i c o /

$
Supongamos que en ese directoriotenemos un archivo denominado datos.ssp que per
tenece al usuario ssp. Si otra persona accede a ese directorio, podr borrar ese archivo,
a>mque no sea el propietario. Supongamos que el usuario oscar intenta borrarlo del modo
siguiente:
$ id
u id=502(oscar )

g i d 5 0 2 ( o s c ar ) g r u p o s 5 0 2 ( o scar )

$ pvd
/home/ssp/publico
$ l s - l dat o s . s s p
- rv- r r
i ssp
ssp
94 1 s ep 2 1 1 8: 0 3 d a t o s . s s p
$ rm dat o s . s s p
rm: remove vrite-protected file 'datos.ssp'? y
$ ls - 1 d a t o s , s sp
ls: datos.ssp: No existe el fichero o el directorio

$
Como podemos apreciar, aunque oscar no sea el propietario del archivo, puede eliminarlo.
Si queremos evitar esta posibilidad, podremos hacer uso del s t i c k y - b i t a s o ciado al
directorio. Activando este bit.. los usuarios ya no podrn eliminar ni renombrar los archivos
del directorio. Para ello bastara que el usuario ssp pusiese el directorio publ i c o con los
siguientes atributos:
$ chmod 1777 publico/

$
Si ahora el usuario oscar intenta eliminar otro archivo, veremos qu ocurre:
$ ls - 1 d a t o s i , s s p
- rw-r r
i ssp
s sp
150 sep 2 1 18 : 0 7 d a t o s 1 . s s p
$ rm dat o s i . s s p
rm: remove write-protected file 'datosi.ssp'? y
rm: cannot unlink 'datosi.ssp': Operaci6n no permitida

$
Ahora la operacin no puede llevarse a cabo, con lo que tendramos protegidos los archivos
lel directorio especificado.

266

( ' A p l 'IULO 10. ADMINIS I llACION DE llSUARIOS Y GRIJPOS

10.6.

RA-!>IA

S u p r e sin de usuarios o grupos

Para suprin>ir usuarios dehuitivan>ent(, lo >nico que tenemos <lue hacer es horrar
sus entra<las er> lns archivos /et c / p a sswd y c'r> /etc/ g r oup donde aparezca el r>o>r>bre d(
l ogin (un usuario puede estar in( h>idn < n ms de una cr>tra<la cn el archivo /et c / g r o u p ) ,
Scgui<lamer>te p<><lcmns borrar el directorio de conexi(n clel usuario suprin>i<lo. Para su
primir un grupo hnrrarc><>s su entracla clel ar('hivn /et c / g r o up. pero sierr>pre que ning>>
usuario pertcncz<.a ya a cse grupo. Para d<'sa('tivar o horrar ternpo>ahpl>te u usu'>rin.
esto es, r>o darle pern>is<> a acceder al sisten>a sin horr;>r su entradas e los mencionado
archivns, p<>de>nos simple>ente e<litar el archivo / e t c / p a sswd e ir>troducir en el can>p(>
dc l < laven ast(>risco +, por eje>npl<>:
pepe:+:8:100:administracion:/users:/bin/ksh
Para reactivarlo. slo ter><iremos que borrar el asterisco y dejarlo como estaba. En algunos
sistemas Ul>IIX pndermos encontrar la orden userdel , que nos permite eliminar usuarios.
Por ejen>plo, si qeren!os eli>uinar al usuari<> jpg, ten<lramns que escribir lo siguiente:
! user de l j p g
!

A partir de este n>on>er>to. el usuario eliminacl(> ya nn existe. Si adem's queremos eli>r>inar


tan>bin su directorio HONE, (lcberemns emplear la orden user de l - r . E s a c onsejable
eliminar las cuentas de usuarios que ya no se cone< tan al sisten>a. ya que stas puede
ser agujeros en la seguridacl.

10.6.1.

C o m u n i cacin entre administrador y usuarios

Er> este punto se citarr> l<>s modos que existen para la intercomunicacin del ad>ni
nistrador cnn lns usurios. Cnnsideraremos slo aquellos mecanismos especficos. Ohvia
mente. se pueder> seguir utilizand<> cualquiera dc las rdenes cine y;> han sido comentadas.
Adems. no olvidaremos por cnn>pletn d<. las comunicaciones en red. Bsicamente, estos
modos de comunicacin son la order> wall (u >r>te <rll)y (l a rchivo rr>otd (n>essnge of ll>e
d<!y).
wall E s t a ur,ilidad <lel aclrninistrador enva simult>nea e inmecliata>nente un mensaje a
todos los usuarios que estn e ese n><)>nent<) cnr>e<tados al siete>na.
/et c/ motd E ste archivo ( impreso en pantalla cada vez que un usuario inicia una sesin.

1 0.7.

E je r c i c i o s

10.1 Afi>adann u< vo usuario de nombre lucas al sist( ma. Este usuario debe prrtenecer
al grupo users, su dire(>orio de ar.raqudeh< ser /home/l u cas y su programa d<
inicio /b i n / s h . Cc>rnpru(be que l u cas p<d> iniciar una sesin correctamente. A
cnnt >nuac>n desa<'t.lve ><u cuel>ta v co>npr'ueb(' s> put'(l(' o n( u>c>a>' ur>a ses>n.

10.7. EJERCICIOS

2 67

10.2 Reactive la cuenta de lucas e iniciando una sesin como lucas, modifique su infor
macin personal, nombre, oficina, telfono, etc.
10.3 Fuerce al usuario lu c as a c a mbiar su contrasea la prxima vez que se conecte
haciendo uso de la orden chage.
10.4 Cree un nuevo grupo denominado documentacion y aada elusuario lucas a ese
grupo con laorden gpasswd. Cree un nuevo usuario leoncio y adalo tambin al

grupo.
10.5 Creen un directorio en /home cuyo propietario sea lucas, Modifique los permisos de
ese directoriopara que lucas pueda escribiry leer en l.Lo s miembros del grupo
documentacion slo podrn acceder al directorio y l eer sus contenidos, pero no
escribir.
10.6 Mo difique los permisos del directorio documentacion para que puedan escribir en
l losmiembros del grupo. Compruebe que el usuario leoncio puede crear un direc
torio dentro dedocumentacion. !Con qu nombre de grupo se crea ese directorio'?

10.7 Pruebe a activar el atic e - b i t d el directorio documentacion. Si el usuario leoncio


crea ahora un nuevo directorio!con qu nombre de grupo se crea ese nuevo direc
torio?
10.8 Mo d ifique su shell de inicio para que sea bash y modifique tambin sus datos per
sonales.
10.9 Coloque en el archivo /etc / m otd un mensaje de presentacin generado con la orden
banner o figlet.

Captulo 11

Administracin del sistema de


archivos
La administracin del sistema de archivos es uno de los aspectos ms importantes
~~ debe tener en cuenta el administrador del sistema, Es bien sabido que cuando se
.n.'t da un disco nuevo, a los dos das ya est medio lleno, obedeciendo a la siguiente
:nxima: los archivos de usuario siempre tienden a ocupar el mximo espacio posible.
Para evitar esto, el administrador debe preocuparse de que cada uno de los usuarios

mantenga limpio su espacio de disco (labor ardua. por otro lado). Adems de eso, es
-:~~ osario que el administrador sepa cmo anadir nuevos discos. darles formato, montar
'n ellos un sistema de archivos, etc, Todas estas funciones sern vistas en este captulo.

ll . l .

C ar a c t e r sticas del sistema de archivos

Hasta ahora hemos tratado el sistema de archivos de UNIX desde el punto de vista
k~. I usuario. Vamos a realizar a continuacin una descripcin rle cmo el ncleo organiza
un r rnamente la informacin. De est,a organizacin interna van a depender en gran medida
<alidad de los servicios ofrecidos. Nos interesa conocer a grandes rasgos el sistema
h archivos por dentro, porque eso nos ayudar a comprender mejor todas las rdenes
'fnpleadas en su administracin.
Hablaudo de forma genrica. podemos decir que el sistema de archivos UNIX se ca
racteriza por:
Poseer una estructura jerrquica. Este aspecto ya nos es familiar. puesto que cono
cemos el sistema de archivos como usuarios y sabemos que tiene una estructura de
rbol invertido.
Realizar un tratamiento consistente de los datos de los archivos.
Permitir crear y borrar archivas. Esta caracterstica hace que el sistema de archivos
sea algo dinmico y cambiante con el tiempo.

2 70

C AI ' T L ILO 11, AD)<IINIS'l'RACIN DEL SISTEI<IA DE ARCIII)>'OS

pc IIA M A

Permitir u < recitnient>o dinmico de los arcltivos. El usuario rto tiene que dcfittir
priori ( l tatnao tttxitno dcl archivo cotno octtrra en algunos sistcntas antiguos.
Pr o teger los datos de lns arltivos. Cad t t<I'clttvo tiett<: urta serie de derechos asoi>1
<los. los c>l)ti(s dPt Pl tn)I)all >> ltIlllt all !os poslhlPs accesos por pat'te cle ot l as pet sol l;l.

Tr atar a l os <lisp<>sitivos <le etttrada salida coto si f uesen ar< hivns. Esta cara<
terst ica permite tt t tttattipulacitt ttts si)pie dc los perifricos. Por ejen)plo. para
itnprit t)ir ttn ar< ltivo, po<lriantos simpl< mente rdireccionar la salida de l t ordett cat
tll ar hivo de clispnsit ivo asn('i))clo a la itnpresora. T<><los los archivos de disposit iv>
s uelen residir Itortnalntertte n cl directorio / d ev .

ll .2 .

A lm ac e n a m i e nt o d e lo s ar c h i v o s

Va)t)ns a ver ett este punto cmo s< alntacettatt fsicatncnte los archivos en el disco,
Bsican)cttte, a la h or a d e al tllacetlttr Ull ttrchivo de "n " b y t e s Pn el d isco t r n emos <lo.
o p<iones. La pritttera cottsiste en colocar lns "n " b y t es consecutivos Pn el disco, y l a
segttn<la> eu clividir el arltivo ett un ttntero de hlnqttes (de tarnaf)o fijo dc tertninado) q>
depender dcl tamao dc. cada bloque. y colocar cada t)no de los hluqucs ett cl esp<ti<
dpl disco q)te l)aya lit>re. Ett pl segundo caso, la i ttf<>rmaitt s< 1(w y se escribe en < l
clisco en fornta cle bloqttes: para ello. t<>do el Gis(o cs considerad<> <x>mo una. oleccitt <1>
hinques nttmerados. La 1>rimera op< in tiene el prohlenta d( que si el archivo tu)met;< su
tamat)o, es nc<.csario tnoverlo a. otra rea <lel <lisco. con lo cual al final tettdramos tncl(> <1
disco fragmetttado e inutilizaclo. Una posible solucin podra ser cotnpactar el disco c<t<l )
cierto t ietnpo, pero tto es utta solucin demasiado atractiva, puesto que requerira gr<u)d<.
canticlades de tictnpo. As pues. debido a las razones citadas, casi toclos los sistett)a~
<1e archivns opta)t por d i v idir lns archivos en hloqttes de tatnatto fijo qp n n pcpsitat>
necesariamptttp est.ar contigttns.
Una vez que hemos optado por la segttncla alternativa, cabe pregttntarn<>s cul <1< b<.
ser el tamaftu de bloque eutpleado, puesto que <lc ese aspecto va a depettder n)t<<l)u <1
rendimiento clel sistema, Este tan)ao, en principio, se elige acorde con el tamao <1 I
sector de disco n ttn mttftiplo etttero. Si el tamafto del blo<pte Ps pequetto, eliminarent<>.

c l desaprovechantiento dcl ltimo hloqtte, q<te como mcclia qttcdar i s<)lo lleno hasta su
mitacl. La desventaja del bloque peqeno <s quc si estn nuty <lispcrsos, los tientpos d<.
acceso aumetttan mucho..>inrrnalmettte. Pl tamao del bloque Ps dc ) l ') , 1.02:I 2.04>i
bytes. A l g u nos sistemas perntitett d i f erentes t>ttrtaitas d hl<)qlle. en un

l l l t stllo slstctll'>

de archivos. cnn lo que se mejoran los tiempos dc acceso y disminuyen las prdidas pur
dcsapl ovec)laIt llcIlt o S I III)lit IIPanlPIlt c.

11.2.1.

T ip o s d e a r c h i v os

La mayoria de los sistemas <)perativos pertttiten varios tipos de archivos. En Pl < as<>
de UNIX tenemns bsicamente los siguientes:
Archivos n o r m a l es, t a tnbin conoidos como archivos regulares o arcluvos ordin'u ios.
Como sal>emns, estos archivos contienen imgenes <le programas, texto ASCII, cdi
go fuente, et<.

RA-tA

l l.2, ALMACENAMIENTO DE LOS AB(.'l lIVOS

271

Directorios, er> este caso se al!r>a<.er>a inforn>acir> relacionada con otros archivos. S<)ln
el >< le<) del sislera oper >tivn pued< alterar el <nnt(ido <l( los (ii> ectnrios.
Archivos de dispositivo, existen dos grandes tipos (1( archivos de dispositivo, los de
tipo hloq>rc (discos. cir>tas, disquets. etc.) y los de tipo carcter (termir>les. (Igu
nas cintas, i!!>presnras, etc.). Fstos archivos dc <lispositivo snn cn>picarlos por los
programas par;> a<ceder ;> Ins dispositivos hardwar( dc entra<la y salida.
Tuberas con nombre, si rver> par;> prrit.ir con>irarin n>tre (los procesos qu( s<
<'stp>> (!Jecut a>>(ln cl> la nl>sn>a >l>q>l>na.
Enlaces, pe(len ser <lr <lns tipos< cnlres duros o enlaces hlandns.

L NI% trata > 1<)s archivo < ornn si>pl< s seco< nrias <l( bytes. De est( n><)do, al no irpnni'rsc
nir>g>in forrr>ato a los archivo. sc proporciona u >r>('tu<le) rn llxihl< para su a<.resn. Sor>,
cn >ltima instancia. Ias aplicaciones las quc dchen int< rprctar la inforn>;(cin <>lmaccr>ada.
I>lcp('ndi< nt(rr>(!nte del formato (le lns ;>r<hivos. UNIX h osca la ir>depender>ci<> d(>
i lisp<)sitivn n. dicl>n d<' ()tra f<)rn>a,. el n>n(h) de acceder al ar < hivn (lehc ser el n>isrno siempre.
> <'si<la est<' fsica>neo>c dor>(lc r( si<la. Al soportar UN IX in<l( p( ndencia d(' disposit ivns, se
van a en@)lcar 1s >r>ismas fur>( inr>es para a(ceder a archivos qe sc cncuer>tren en disco
<h>ro, CD-ROi>l, cinta. etr.
ll . 2 . 1 .1 .

D ir e c t o r i os

Los dirertorios en UNI X so n a r chivns que contienen ifnr>r>acin qc r>os permite


localizar a ntn)s arrhivns. La <strurtura dcl dircrtnrio es rny si>pie. Cada entra<la en
el dirertnrin contiene rl nn>hre del an hivn y su n>mero de no<lo-i. La cantidad de bytes
>'eservada para el nombre dcl ar< l>ivo depende del sistema, aunque u valor n>uy utilizad< >
cs el de 26 (ara< teres. Toda la informacin relativa al archivo est almacena<la er> su
nodo-i. Todos los directorios cn U.'IX so archivos y pueden contener cualquier n>n>ero
de entrad >s, aden> nn existe li>nita(in < n < I r>>rn<'.ro d< archivos o shdircctnrios que
se pueden aln>a(enar en un <lirectorin. Con>o sahr>nns, los <lircctorios se crear> con mkdir
y se horrar> < on rmdir.

Nombre del archivo

Numero de nodo
i
Figura l I.l : Esquema de una entrada de directorio.
Lns dirertnrins snln por<l< n srr modificados pnr cl sistema operativo. nir>grr> usuario
tiene <l<rerhn <lc escritura cn (.llos. 1cluso el adn>inistr.<>dor del sist<nna <arere de esta
I)os>h>l>dad.

272

CAI ' l T L L O l l . A D X l l y I S T I t A C I O~ D EL .>I!)TL!>I.>> DE AHC'Hl'(>OS Q

ll . 2 . 1.2.

B A- A
' IA

A r ch iv o s d e d i s p o s i t i v o

El siste)a L'')<IX se u)iiiiic?'nri lus <lisp<)sitiv<)s p< rifri< c)s, coii)<>uiii(1 les <lc <lis< u.
t( rrnii);)les. inipresnr is. traz i(lores grlicns (/>lo/t<">s) u r)i<xi('rrr. ?i travs <1< 1(>s arrhivus <h
(lispusitivu. L)1XIX r r;it i hi entr;ul i y sali(la <le datos <l( I?i iiiisrriri ton))a qia la E / S < lr' ii)i
iir'<'liivu. Di<'lio <l(' ut r'<))rin<lo, p?1)" i col)l)l)lic?11's<' ('ull i)ll p( 'l')f<'l'i<'u, 1>?)st ac<)il re(lireccl< >)l?)1

l?l ('))t I a<l>i n salid?l <les(l(' n ll?)<'1?i l iii ln liivo <le < lispusit ix n. C?><la rlispusit ivc> (l(' E/S p))e<l<
I<'Iie) iii)<> <) )li)s ?)1('liiv<)s <le <lispnsitivn <l)le s<' ('r<'?>Il <'nil la nrcleri mknod (mknod t?))1)iii>
existe (u )l)u ll?ti)la(la ?il sist( ll)a). Estos l i rc llivus (1(". (Irspnsit l vos Iiu ( nl)t)e)i('ll (lat < >s ( n)ll<>
los arclrivus reg>iil?iris. si)i<> iiif<>rrriiu i()ii (l( l i i h i c a< ioii <lel <lisp<>sitivn y <le (<>ii)o sc v?>
;i < u riiiiiii< ar I X I X
n > c l r i i i s rii<>. Estns ar c l i i v us sc ?ilm?i(eii?iii eri el < lir r ( t n r i < > /dev )
t'll)ll )1('Il s(' l('s (1('llui i)ii l?)li ?irchi v<>s esl)<)c i ii les. Lus ?ir<l)i vos < le (lisl)usi t iv<>s s< 1>ue<1< i >

(.Iasihcar. <'ri rlns tipos:

Ar< l)iv<>s <l( <lispositivn cle tipo 1>luqiie.


Ar c liivus <lr <lispnsitivn <le tipo carcter.
Archivos de d i s p o s i t i v o d e t i p o b l o q u e . Lus ?) I YI)ivns de clispositivn niorln hlnrtir<
suri ;)q)i( llus qu< se creaii <'oii ul> jetn dc arce<ler a <lispositivns rn<><l<> hl<>que. Lus clispusi
tivos )rin<lo l>luque triursfierer) (latos eri )>loquea rlc lnrigitiirl fij;i (geriralincnte >12. I.t)2)-1
<) ).() IY bytes. segiiri 1?i cniiligiir?ici()n) a t r a v( s <l( lo /) igrrs de e ritr arla sali(l?i, Lus <lis
pnsitivns rlu(' i)san (stns ar('hivns sni) (lispnsitivc)s (le alm r<'er)ari)i( r)t<> y a< (es<) leaturiu.
?i lg i i t ias ( i t i t a s q )i<' t i ('t)r'ii )i ii s i s t e t)i?i <le ?ir< liivus ni n n t a 1)le. Est u
arcliivus <le <lispusitivn. al ser ;)n liivus especi;il(s, nn se c) eaii (<>tiro lns arr liivos ri<>rrii,'il<
(llarn?)<Ia creat ) , si)iu qur e iiecesariu (ipie?ir. 1?i llai)ia<la al sisterii;i mknod (>r><rh> r>r><t<
h

t;)les con)n <lis(os y

P ira horrarh>s. podemos eiiipl< ar la or<ler) rm.


L?rs upeirlcl(>il('s (1(' e)ir)?i(l<l s?<Ii<l?i < ri < stus dispositivos s<. realizriri sieiiiprr a t r a x es (h
lus t>i<f/(>rs ca< t>ccoii ul)jc t<> <4. i(<'l<r u Ins?iccesus. Estos t)>)gr>rsr<>iit i<'Il<'il g< llcr?<hll( lit(

los l>lncpi<s dc (l ) tus in i u t i l iza(l< rr r i er)trnir i i t( .

L n s <dispositivos m<>cln hluclire s<>i.

l l) lllza(Jus llur ll)c)l)ll('r)te p?ii ;i )ll<>lit,'il Subr<' ellns sist V)11?rs (IC al <'ll)vos, ?ii))lqll(" t i('ile) i ut I < >.

i)sus.

Archi vos de di s positivo de ti p o ca r c ter.

Ls t e t i p o <le anhivos se iitiliz i par'a a<

c('<l<r ?i h)s rlispnsitivus inu(lu ( a r ;i( ter, en)n<> pii(<l(ri s('r. terrnitialrs. irr)l>resnr?)s. />lit t< >

u)ii<la<les (le cirita riiagiitira y algur)i <lis(os. L<>s ar< hivns <1 <lispsit iv<> cl< t ipn car< t< i
se ! < fl(rvl) < Il g( il(1" il ?l r ilalqil i ( r ' <lispnsit ivn qt i(' u t e n g a i i n s i s t ei ira <le ?ir< liivns iii<>n

t;ible. Se <)error)iii)a)i <lisp<)sit ivos riiuclu c ar i('t(r po i 'qir( l?)s eiitr?)cl?rs y sali<las se realiz;i
< 'ir< t(r ?i car' i( t(r. si)i i i sar lus t>uffr'rs. Al i g r r ;il <tire l<>s ar< l)iv<>s <le <llspnsit iv<> r))u<ii
l>loque. estos ar< liivus se <rear) ii)(diarite I i ll ini?i<la al sist( riia mknod y se p)te<le)) hurr ir
h? len(lo i)s<> rl< la nr<l< ri rm.

.'<Iediate estos arcliivos de <llspusitivu. < s posihlr accerler tarl>i a (lispnsitivns in<l>
hluqile. culiiu lus <lis(os o las ciiitas. A este niu(l<> (1(- :iccesu se le (Ie)lnliil)1?l e)l)I a<Jcl-sali<la

c ru<la ( >n u J/O). Citando utiliza)i)n estr t ipu <l< a< sn, lu que liac<i<>s < s >r tocin iiit ;ir
el t>uJ7er cric/>e.
Algllnus (lispusi t)vos l)rle(l('Il llacei' E/ ) c il los <lns ))l<)(los, p<)l' ln q(l<' 1<'rl(llll <I<).
arcliiv<> <le clisp<isitivc>: iinn para rito<lo (arter y <)tr<> para )no<l<> 1>luqe. L<>s <lis(n.-,

'ci RA-MA

ll.2. A L MAC l'.NAl>fIENTO DF. LOS ARCflIVOS

2 73

'intas 1agnt.icas y cartuchos dcl)cri> tener lns <f<)s, ya que tienen sistemas <le arcliivos
1<l>l
> >h I<'s.

Tc)<fos los den>s <lispositivos suelen tener el an'1>ivo de disla>sitiv<) <le t ipo carcter. Co
riii) lien>ns dicho. los an hivos de. dispositivo <ist < olguios del <lirecrorio /dev, y algui>os
.1< los ii>s iri>portates son:
dev/dsk Ar c l i ivo de clispositivo i n dn bloque de las i>iclacles de disco rgido n disco
<liirn. En algunos sistemas (c<)ino Linux, pnr ejeipln), lns clis(os diiros tienei> c<o
archivo de dispositivo el ar< hivo /dev/hdxx. <londr xx vale a1, a2, a3. etc. para las
particiones del primer disco; b1, b2, b3, etc. para las particiones del segundo disco,

etc.
'clev/r ds k

A r c h ivo <le <lispositivn modo <.arctcr de las uriid'les de disco.

'dev/ s dx x A r c h ivo de dispositivo modn hloqiie para los discos de tipo SCSI (Sinll
Coi<>p>rter Standard Ir>terfa<e). xx identifica el nimero de disco y su particic o
rrespon<lieritc.
'dev/fdx Ar c l i ivn de dispositivo correspodiente al disco flexil>le x.
/<lev/ [ r ]c t

A n l >ivo <le <lispositivo cle bloque o carcter de las unidades <le cart riel>o.

/dev/ [ r ]mt
/dev/ t t y N N
/<lev/lpx

Ar ( 1 >iv<) de dispositivo de bloque o carcter de las < ir>tas d< media piilgacl>i.
Ar c h i v o corrcspnndiente al terminal NN.

Ar < liivo correspondiente al p>iertn paralrlo x, hahitualmente la iiprcsora.

/dev/ c d rom

Ar c h i vo cle dispositivo asocia<lo al CD-HO1>1.

Estos archivos, al llacer listaclo <iel <lirectorio /dev. se i<le>>tificari p<ir s>i nonibre y pnr
dns nieros, llamados riiimero mayor (n>vj or r>nrner )y nimero menor (mi>>or r>umer),
El prirero de ellos coinri<le para todos lns clispnsitivns clel niismn tipo ( por ejemplo,
><los los terminales serie tiene< l rismo iriajor iiib<.r) y cl sgndn es el q>>epermite
ilif< rcnciar ei>tre distiiitos dispositivos de la iisma familia. Ambos >iimern soi>empleados
por cl al<'Ien para localizar l;ls n>ti>>as dc r u>ej d(-.l (lispositivn en < ii( st in.

Creacin de un a r chivo de d i spositivo.


IJn a v ez que ln >.cricios todo (noibre riel
;>rcliivo cle clispositivo, n>rnero r<iyor, riimero n>enor y si es dc tipo ('arcter o hloqi>e),
y;> l)ndcrnns crear riuestro archivo para cl dispositivo con la ordeii mknod, cuya descripciri
figura H colltlil uacin.

Sintaxis: mknod nombre tipo nmayor nm enor


mknod se i>tiliza para crear el archivo dc <lispositivn <lel tipo qe le especificarrios
<'nmo argu>< rito. Este tii)n puede valer b par i lns dispositivos>ndn hloclue n c para los
<lispositivos mn<h) carcter.
Ej p> i >1)
lo :

2 74

C .'APTULO I l. A D I<IINIS l'RACIN DFL SISTL51A DE ARCHIVO S

! mknod /dev/ttyD c 1 2
! 1s -1 /dev/ttyD
crw-r - - r - 1 r oot
r oot

1,

RA-K ! A

2 j un 2 1 1 7 : 2 9 / d e v / t t y Q

Con sta orden crearaos u archivo de dispositivo de tipo cari cter correspondiente a
n terminal cn nmrn mayor I y n nern menr 2.
Algunos sistenas proporcinnau n p r ograna denninado MAKEDEV. que se almacena
e el directorio /dev. Este programa se puede utilizar para crear <le umodo ms sinpl
los archivos de dispositivo que Ic indiquemos. Es recomedable leer y entender las rde<cs
inclidas eu este archivo antes de ejecutarlo.
ll.2.1.3. Tuberas con nombre
Las ther><s con noml>re son mecanismos de cnnmi<acin que permiten la t r ans
ferencia <le datos entre dos pro<esos. Al igual que los dos tipos de archivos comeutados
anteriornente, stos se crean tambin con la llanada al sistena mknod. Para crear en nues
tro directorio <l trabajo actual una t<<hera con nnmbre denominada tuber i a . debemos
escribir:
$ mknod tub e r i a

$
$ 1s - 1 F t u b e r i a
prw-r - - r - 1 ch an

igX

0 ene 19 2 0 : 2 4 t u b e r i a

$
La opcin p indica a mknod que lo que deseamos c< ar es ua t<<hera <.on nonbr< . P,ra
horrar un archivo correspodiete a <na tubera con nombre, tilizaremos la ordcu rm.
La cou<>i< aci entre procesos a partir d<. tuberas con nobre tiene ua ventaja
sobre las tuberas sin on>hre, aunque su luncioali<lad es la nisma, y es que I>erile la
comunicacin ntre dos proceso < ulesquiera, no hace falta que sean de la misma familia.
l l . 2 . 1 .4 .

E nla ces simblicos

Est< tip<> de archivos ya ha sido comet dn con aterioridad. simplnente cabe r


cnrdar lns <lns tipos delas xistets. Estos tipos son los enlacs duros (hard linl's)
y los nlaces hland<>s (soft links)1: estos ltinn>s puden ser <estilizados. a difrcia d lo
prinrns. ar< hivns qsidan en difernts sistenas de ar< livos.

1 1.3.

E s t r u c t u r a d e l s i st em a d e a r c h i vos de U N I X

Lns sistenas de ar< livns e UlI X suelen estar sitadns en dispositivos de alace><
mieto odo hl<>qu. tal<'s < nn cintas y discos, Lasnidades de <inta geer;lmts<
reservan icanntpara realiz;r copias de seguridad n a<'/'<psy para, istalar el sistea
operativo. Va<>s a c<usidrar <1 caso de la estr< t ura de sistea <le ar< }ivos instal <ln
sohrdiscos.

>c RA-MA

ll,3. ESTRUCTURA DEL SISTEMA DE ARCHIVOS DE UNIX

275

El ncleo (kemel) del sistema trabaja con el sistema de archivos a un nivel lgico y
o trata directamente con los dispositivos fsicamente. Cada disco es considerado como
un dispositivo lgico que tiene asociados unos nmeros de dispositivo (minor nt tmber y
maj or nttmber). Estos nmeros, como ya indicamos anteriormente, se utilizan como ndices
dentro de una tabla de funciones del ncleo para determinar cul de ellas es necesario
ontplear para manejar el disco.
En la figura 11.2 se puede ver la estructura que tiene el sistema de archivos corres
pondiente a UNIX System V.
Superbloque

Lista de nodos-i

Bloques de datos

Bloque de boot

Figura l 1.2: Estructura del sistema de archivos de UNIX.


En la figura podemos ver cuatro partes:
a El bloque de arranque o bloque de boot,

El superbloque.
La lista de nodos ndice.

Los bloques de datos.

ll.3.1. El bloque de arranque


Ocupa la parte del principio del sistema de archivos, generalmente el primer sector, y

puede contenerelcdigo de boot o de arranque, Este cdigo es un pequeo programa que


se encarga de buscar el sistema operativo y cargarlo en memoria para iniciarlo.

ll . 3 .2.

E l su p e r b loque

El superbloque describe el estado de un sistema de archivos y ocupa siempre el primer


bloque lgico del disco. El superbloque es iniciado al crear el sistema de archivos cou la
orden mkfs (mke2fs en Linux).
El superbloque es un elemento fundamental en cualquier sistema de archivos, su prdi

da por lo general supone la prdida de todos los datos almacenados en el sistema de ar


chivos que representa. Por lo general, siempre se mantienen de forma automtica varias
copias del superbloque con objeto de evitar posibles problemas derivados de la prdida
del mismo.
En el superbloque se almacena la siguiente informacin:
Tamano del sistema de archivos.

Tamao de cada bloque de disco,

276

<.,'APTL<LO
l l. AD f (fl VISTftA('l1v DEL AMISTE)(IA DE AHCHI VOS

k A- l< ! A

Li sta de )>l<>qes libres.


Ir>dice drl siguiente bloque lihr( (n la lista rle bloques libres.
Tan<ar(o de la lista de ods-i.
%<rlrrero rle nodos-i libres.
Li sta <le nodos-i libres.
rrdice drl siguierrte noria->.libre err la list;r de nodos-i libres.
Campos de bloqueo de el< mentos de hrs listas de hloqrres libres y de nodos-i libres.
Estos < ampos se empl< an crrarrdo se realiza una p< ticin de hloqrre o d<. >rodo-i libre.
Barr<lera (Jfrrg) (frre indica si el superbloqr<e sc l<a nrodifica<lo u rro.

ll . 3 .3 .

L a l i s t a d e n o dos ndice

Sc encentra a continuacin del superhloqrre. Esta lista tiene rrna <n>t rada (nodo-i) p<>r
cada archivo del sistema de archivos donde se guarda la descripcin del misnro. Durar>r <
(.l proceso de arranque del sistema. el nrcleo lee l r lista de no<los-i del disco y carga un;>
copia err rnenroria couocida c<>mo tal>la de nodos-n
Los nodos-i contierren t(>da la informacin acerca del archivo rlue representan. Esta
irrfornracirr iru luye propietario. derechos de acceso. tamao. localizacin en el sistr.nra de
archivos. etc. A cor>tinuacin se muestran lus campos romporrentes de rrn nodo-i:
Iderrtificador del pr<>pietario riel arclrivo y del grupo al que pertenece.
Ti po de ar'chivo,
Derechos de acceso. Se reservar> nueve bits para representar los rlerechos rlelectura,
escritrrra y ejecucin (rvx ) par'1 el propietario, el grupo y I r(.sto, y otro tres bits
para definir si est<r o no activas las han<l< ras set-u i d . s e t - g i d y s t i c k y b i t .
Fecha de la rltima nrodifiaci<>n.
X<nr(ro de errla<es(lrnks).
Tan>ao del '<r< lrivo.
Errtr ulas par>r la dire(cir> de hl<>qrnts <le disco.

Las entradas qrre apuntan a lus bloqrr< s dlisco sur> 13. Lus 10 prinrerus purrteros apntau
a bloques <lir't<>s: as. los dat<>s <le ar< lrivos f>(q<rerr<>s (a l<> srrrno 10 hloq>res de disco)
p>r(den ser referencia<los irrrrrediat.ar>r< nte, puesto qrre mierrt ras el rchivo est abierto se
rrrarrtieru rrna copia <le su nodr>-i < r> nremoria princip;<1. Los tres aprrrrt<rdores siguientes
apuntar> a bloques rrdire<t<>s. Fl prinreru de ellos (s urr p<rrrtero indire<to simple. <1 se
gundo rrn p>rnter<> direct<> dobl< y < l rltim<> un p>mr< ru ir>rlirectu triple. La <strctura
( Orrl< l>t a<l>> >par< ( r repr sentada en la fig<rra I l .;l.

c HA-XtA

t l..t, PASO DE Rt>TA DE ARCHI>,O A >V1(IERO DE VODO I

277

I puntero simple
) punicro simple
3 pun>cn) simple

4 pun<cro simple
S puntero simple

6 pun>ero simple

7 pun>cro simple
S pun<cro simple
<) puntero simple
>0 puniero simple

puniero indirccio simp>e


Pulse<o indlfcc t dot)tc

Puntero indirec>o <riple

Figura 11.;3: Punt< ros a hloqu<'s dr discos pr< setes <u> un l)o<lo-).

Vii el caso antrior, si 1 ta>al>o del bloqiie es de l l i h y t e y p a r a i<lentifi(ar cada


hloq>ie se en>t)le;>n,'$2 bits (tan>ao del puntero), podrcn>osli;i<ii;ii. '2;) etradas en
< a< l;l bloque.
Los ))ortos-i se coniieiizali a nui>ierar a llart ir d< l '2. Los n< ros () y 1 esta r< s< rvados.
El niniero () se eniplea para mar(ar d( n t r o de iin d i r (t o r io l i ( i i t r a da d( i in a r ( h i co rtil('
lia sirl<> horrado. El niiiilero l h a sido reservado hist()ri<'nlete para bloques erri>eos <1<
dis<. o, Todos los bloques err<)neos sol;>n estar ct>lazados ;il l>orlo-i iniro l. Actual>et<'
< si<> ya iio se utiliza, p< ro se sigue 1;ilitiii<do p<>r razones rlr coipatil>ilidad. De estii
>n uiera, po<lemr)s decir (t>ie el pr iiner n o do-i i i t i l i zacln cs (1 ni>ii>(r<) '2 y reprrsenta al
<lir torio r>iiz d<l siste>a de a>< liivos.

ll . 3 .4 .

L os b l o q ues de <latos

Co>i(zan > coiiti>u>aci<i rl( la lista d ( <><h>s iii<ii< e y <>< upa ('1 r('sto del sist('nl>l de
archivos. F esta z<nia es doiids< ncuiitr>i sita;>do el < oliteni<lo <le l< ar(l>ivos a los
qiie hace >ef( rlicia la lista <le o<losi. C"a<l iino d l<)s bl<tu<'s d(sti>i lo a d >tos slo
tied( ser asigliado a iii> arcliivo. tato si lo ociip;i tot a lmelite <-on>o si iio.

l 1.4.

P a s o d e r u t a d e a r c h iv o a n m e r o d e n o d o - i

K a>os a v('r c<>o ol)t('('los ('l >>I>('>o d(' >lo</o-I >l part ir <le la r i it > <l(. archivo o
/)<)/l))><< n>
e, pllest o (ll><' > ll>a v<'z que ('o>i< )( elos ('l llin>ero < le ll orto-I. po(l> <'1os oht ene>' toda

278

C A P T ULO 11. ADhiiislISTRACIIs DEL SISTEKIA DE Al<CHIVOS

RA- 1<IA

la ilrfor.rrtacirt referente al propio ;trchivo (Io<.alizacin de los bloques cle disco. tanrao,
pr<>pietario. p( rnlisos, etc.). Esto lo vamos a hacer < on un ejemplo.
< Cllro se obtiene el ntlrcro <l( no do-i del a rchivo std i o . h c u ya r u ta ab soluta es
/usr/include/stdio.h/
210

l6

US

l05

locl

etc

203

inclde

bin

l l<7 bi

l06

stdlib.h

stdio.h
SyS

hnn>e

t mr>

Figura I 1.4: Correspondencia entre nlnero cle nodo-r' y nonrbre de archivo,


El archivo st d i o . h se localiza con>o se <itrl a cottiruacin. En el directorio raz, que
tiene un nmero <le nodo-i fijo, se btrsca urt directorio cuyo nombre sea usr, y si existe 3
es un directorio, se lee su nuuero de nodo-l'..A partir clc este llodo-r' sc busca dentro cle
los bloques cle datos del directorio una entrada con el nombre inc l u de, y si existe y es tul
directorio. se lee su nnero de rodo-r. A partir del llodo-i se localizan los bloques de datos
del directori<> y se busca una entrada con el nombre std i o . h. Esta entrada almacenar el
umero de nodo-l' del archivo en cuestin. A partir de este nmero de nodo-l,'.localizamos
en la tabla cle nodos- la entrada corresporrdiente al archivo, la c<tal contendr toda la
informacin relacionada con el mismo.

11.5.

Or de n e s para administrar el sistema de archivos

Van>os a describir a continuacin l ls rdenes ms comnmente empleadas para la


administra( iu del sistema de arclrivos de UNIX. Aqu darenos una descripcin genrictt
sin entrar en detalles particulares. Deber consultar el marrual de su mquina con objeto
de profundizar en todos los detalles caractersticos de su sistema.

11.5.1. Creacin de un sistema de archivos


Para la < reaciu de un sistema de arcitivos deberemos seguir los cuat.ro puntos que

detallamos a cnntintlacin:
I.

C r ear el archivo de dispositivo si hemos conectado un nuevo dispositivo (por cjenrplo.


tllr dLi('o duro) .

2. I n i c ializar el dispositivo si es necesario.


3, C r ear el sistema de archivos en el nuevo dispositivo.
4. N l o ntar el rnevo sistema de archivos,

R A-htA

I I ., > . R DENES PARA ADI<IINISTRAR EL SISTEMA DE ARCHIVOS 2 7 9

l'ara la realizacin <l< l primer punto nns r.en>itimo al apartado cle<li< a<l<> a ello, rnient ras
qrrr p >ra la realizacin <lc lns sigrrientrs nns hasarrmns en los apart><dos sigrrientes.

l l . 5 .2 .

I n ic i a c in d e u n n u evo d i sposit i v o

Si tener>>os un archivo <le disl>nsit iv<> < reado y asociado a r!Il t le>n<.nto dnt r a da sal i<l >,
al>ora es necesario inicializar <ii<l>o elemento. Las r<lees err L VIX para inicializar rrn
rulevo <lispnsitivo depender> ir>u< ho drl sistenla utiliza<l<>. <.ada sistenra su<le proporcionar
srr propia >rtili<la<l. Cnnsrrlte en el r>!ar>ul la orderr erpies<la err su sistenra para ini<.iar
> !r> nuevo <lisp<>sitivo. Si su sisterrra es Lirrux. la <>rden q>w <lehc emplear es fd i s k .

ll.5.3. Creacin del sistema de archivos


Los sistrnras d< ar< hivns rurevns prredcn crearse con la or<lcn mkfs. Esta <>relen se
<'nrarga d< dar fnrnrato al dispositivo indicado de nro<lo <I>re p>roda albergar ur> sistrn>a
de al'el>r 'vos.

Sintaxis: mkfs [-vct] dispositivo [tamao]


mkf s !rrstr >>ir < I nuevo sistema de archivos forr!!atean<l<>lo. El pararnrtro dispositivo
que aparece er> la dcscripcirr de la <!rdcrr sc refiere al arclriv<> <lc dispositivo empleado para
'><ced<-'r al perifri< o, y el tar>>ar>o indica el r!rrrrero d<- bloqrrcs quc <lebc ter>< r el sistema
<I<' ar< hivos. Este formato implica estr <r< t urar el dispositivo cn las partes r>e< esarias para
s<>portar <rr> sistema de archivos: arca <le />oo/, spcrbloqe,r>o</os-i y rea <le datos.
Esta nr<lcrr adnrite np< innes, algunas de la n!as comunes sor> las qrre se cita a < onti
r>>raclrl:
-v hi ede> verboso. Cor> este< opci<n sc nruestra por par>talla rnes ir>for !n>rcinn <l< la que se
nurestra habitualmente, relativa a ls opera<.iones que se estn realizando rr! cada
n>o>trento. Esto p>r<>de ser rtil I>ara nbtcr>rr irrfurnu.irr espe< fi< a n para ay!>dar en
las labores dc d< puraci>n.
-c l rrdica que se realice uua comproba< in <x>r> <!bjeto de ve'rificar qrre todos los l>loqucs
sor > < orrect os.
-t S i rve para ir>di< r<r el t ipo de sisterr>a de ar< hivns qe desear>>n <.rear. Esta nprir> slo
cs v lida en cl caso <lr qc < l sist< rna soporte <livrrsns tipos de sistemas de archivos.
EjerI>lo:
tt mkfs /dev/fdO
mke2fs 1 . 3 5 ( 2 8 - F eb-2004)
Filesystem label=
O S type: L i n u x
Block size=1024 (log=O)
Fragment size=1024 (log=O)

280

C A P T L'LO 11, ADMINISTRACIN DEL SISTFI<IA DE ARCIIIVO S

Q RA-I <I A

9 6 inodes , 7 2 0 b l o c k s
36 blocks (5.00 /) reserved for the super user
First data block=1
1 block g r o u p
8192 blocks per group, 8192 fragmenta per group
9 6 inodes pe r g r o u p
Writing inode tables: done
Writing superblocks and filesystem accounting information; done
This filesystem will be automatically checked every 31 mounts
or 180 days, whichever comes first. Use tune2fs -c or -i to override.
!

En el <jen>I>lo he<nos creadon sistema <le an hivos asociad<> al <iisl>ositivo /dev/f d0 cuyo
t<unao es <ic l. l44 bloques.
I uesto que la orde mkfs ha si<lo ejecutada por r o ot , l a p r opiedad v el grupo del
nuevo siste>ua de archivos creado es la de ese usuario, por lo t anto, cuando monten>os
este sistema <le archivos se aplicarn las reglas de acceso correspodientes al usuario root
y a su grupo. Si queremos l r l;> propie<i<1 del sistema >le an hivos, por ejemplo a n
usuari<>, <1<.beren>os hacer uso de las rdenes chown y chgrp.

ll . 5 .4 .

M ont a j e d e u n s i s t ema de ar c h i v os

Es n>uy con tener conectados a ua n>istna mquina varios discos fsicos, cada
uno <ie ellos. probablemente, con >listintas particiones (cada u>ra descrita por su archiv<>
dc dispositivo). En cada una <ie estas particiones podemos tener un sistema de archivos
diferente, y srge la necesid'><l de aadir este sistema de archivos al >nico disco h>gi<o
existent<. Auque tengamos <iistintos discos fsicos, en U%IX todos forman parte <le u
nico <lis<o lgico, al contrario que en otros sistemas en los que cada disco fsico supone
al menos un disco lgico.
La llan>ada al sistema mount sirve para conectar un deter>ninado siste>na de archiv<>s
a un disco lgic<> y la llama<ia umount sirve para el pr<><.eso iverso. Si la existen< ia de
estas llamadas al sisten>a, solanrente se podra acceder a la informacin <le los discos a
travs de sus archivos de dispositivo, que no sera demasiado prctico ni cmodo para el
usuario final.
En el caso de la figra ll .5. la operacin de n>ontaje se realizara mediante la siguiete
orden:
! mount -t msdos /dev/hdai /mnt/dos
!

Despus de ciar la orden anterior, cualquier acceso al directorio /mnt/ dos es transparet
para cualquier persona. El archivo de dispositivo en>picado en la orden debe correspon<lcr
con un archivo <le dispositivo de tipo bloq<>e.
Los sisten>as de archivos deben ser montados siempre en directorios va< os (puntos <le
n>oteje o tnount points) en la estructura en rhol existente.
Cuando monta>nos un siste>na de ar<'hivos, <1 n<cleo a< tualiza una tabla interna c<>
nocida como tal>la de montajes (>oun/ tsble), aadindole una nueva entrada con objeto

R A-MA

I L 5 . R D E NES PARA ADMINISTRAR EL SISTEMA DE ARCHIVOS 2 8 1

I1I

/dev/bda2 i

Is

cai

pas s w d cd r o m

/de v/hda I

doom

dm

a.dcc

des

b.do c

temp

doo m .ese

Figura l l . 5 : Esquema de montaje de un sistema de archivos.


de mantener en todo momento el estado del sistema de archivos completo. Cada entrada
~ n la ta,bla de montajes contiene lo siguiente:
El nmero de dispositivo que identifica al sistema de archivos montado.

Un puntero al ber donde se almacena el superbloque del sistema de archivos.


~ Un puntero al nodo-i raz del sistema de archivos montado.
Un puntero al nodo-i del directorio que acta como punto de montaje.
La asociacin del nodo-I del punto de montaje y del nodo-t' del sistema de archivos mon
tado. realizada por la llamada mount, permite al ncleo (llamada chdir ) a t r avesar este
puente sin ningn tipo de problema.
Vamos a mostrar a continuacin la sintaxis de las rdenes mount y umount:

Sintaxis: mount [-tahvrwl [dispositivo] [dir]


La orden mount sin parmetros mostrar los sistemas de archivos montados actualmente.
Con los parmetros adecuados asocia el directorio raz del sistema de archivos del dis
positivo referenciado en dispositivo con el directorio que se encuentra en el sistema de
archivos raz,
Opciones:
-t S i rve para indicar el tipo de sistema de archivos que deseamos montar. Esta opcin
slo es vlida en el caso de que el sistema soporte diversos tipos de sistemas de
archivos.

2 82

C A P T k'1.0 l l. A D < fliXISTRACIN DEL SISTEMA DE ARCHIVOS

RA- K I A

- a kl<>iita todos los sisteriras <le ar(lrivns irr( luidos eu /et c / f s t a b .

-h Vis,<liza urr rrrerrsa je <le ay>lela.


-v !<Iodn verboso, Cou <sta npciu sr nruestrpor par>ti<ll(r riis informacin de la que s<
urrrestra lurbitrralruerrte, relativa a las opera< iones qc se estn realizarrdo < rr c;ula
trrorrreuto. Esto puede ser rtil para ol>terrer irrforrrrairr esI>e< fica o para ayudar err
las labor'es d( d('pura<'1ll.
-r X l o nta el sistera <le arrliivns eri rn<lo sl<> lectura.
-w Xlnntir el sistcrn;< d( ;<r< lrivos err nrodo lectura-escritrrra. Este es el nrodo pnr d< fecto.

Ejenrplns:
! mount
/dev/sda2 on / type ext2 (rw)
n one on / p r o c t y p e p r o c ( r w )
/dev/sda1 on /dos type msdos (rw)
/dev/fd0 on /mnt/floppy type ext2 (rw)
!

Como poden<os apreciar e el ejemplo, la orden mount si<r parnretros muestra tod<>s
los sisterrras de arc}iivosrotados en ese instante. En concreto, y de izquierda a dere
lra, seala lo siguiente; el arclrivo de dispositivo correspon<iieiite al sistema de archiv(>s
munt;ulo, <1 p<<rito <le rrrorrtaje. el tipo de sistenra de archivos i los derechos de acceso,
Lo rrrisnu> quc montarnos el sisterrra de archivos curr la orclen mount. poclemos provo< ar
sll desllg<le lgico o d('slllorlt a je corl la OI'clerl umount.

Sintaxis: umount dispositivo


La onleu umount disncia el sisterrra de arhivns del dispositivo del sisterua de archivos
raz. Para que se pueda desmontar, pr inrero se <lebe desa(tivar. esto es, comprobar que
no tierie r>ir<g<r<r arclrivo a1>iertn y qrre ningrnairar io lo terrga como directorio actual de
trak>ajo. Para coruprobar qu procesos tienerr abiertos arclrivos err urr determinado sisteri>a
d e arclrivns, pnd< mnstilizar la orden fuser .
Ejerrrplu:
! umount /dev/fdO
!

ll.5.5. El archivo fstab


Para que lo sisteuras de archivos sean runntad< de forma autor<r;itica cada vez q<te
s e realiza urra carga del sistema. deben>os porrer una errtrada err el ar< lrivo /et c/ f s t a b .
La estructura del archivo / e t c / f s t a b podra ser similar a l;< mostracla a contiriuacin:

R :>(-).lA

l 1 . 5 . O R DE. (ES VAIEA AD!>llXISTRAR EL SI)TE!ti A DE ARCE IIVOS 2 8 3

$ more /etc/fstab
/ dev/sda 2
/
/dev/sdai
/dos
/ dev/sda 3
s wap
/dev/fd0
/mnt/fl o ppy
/dev/cdrom
/mnt/ c d rom
n one
/ pr o c

ext2
msdos
swap

d efaul t s
d efaul t s
d efaul t s

ext2

noauto
n oauto , r o
d efaul t s

iso9660
proc

11
00
00
00
00
00

$
('nr!rn se prrcdc' (>hsrrvar. (ada lirrca < nrrtiene clistirrtos campos que <lescrii>nr I sisterlla
dc' archivos. El primer campo <s el ar Erivn (ir dispositivo <'mplracl<>. el c(tal represvrrta
al sisterrra clc.' arclrivos qrre se dehe rrrorrtar, El svgrrn<lo canrpo irrdic;r vl dirv(.torio <lrr<le
iivl>e ser rrrorrta<lo c l sistema <le archivos. El t<-rcvr < ;rrrrl>c> <lescril>e (l tipo clel sistema
<l(' )rr ('l!i( o, El ('liar t o ( tur>1>o dvs(ril)e Ias np('inrr( s (le rrrorrt a le aso(.'iadas al srst el>r)r de
a lrc h 1 v o s.

El arclrivn /et c / f s t a b , <Irn' (l< scril><! tn(l rs l <s p rrti('inrres. rn la versi(>rr del UNIX <le
>'l'T se (<)rrn('e ('nll ('l rlorrll)I(' <1v /et c / c h e c k l

i st ,

Para ver el esta(k> d< u si stema (le arlrivos y dvt(< tar posil)les errnrrs. p<><lerrros
r t i I izar la or clrrr f s ck.

fs
Sintaxis: fsck [-t tipos [-valr] sist arch
Fl sistema <iv are lrivos cie 1.;XIX, pc>r diversos motivos. puv<lr < ontenrr inconsistencias
o inc lrrsn cnrrnrnpvrsv. Pdrn svr <llvrrra la < ausas qrre provnqrren los vfvctos indica(los,
prrn .ii>l d! !(la rrirrgrrna l ( !>reis c nrri(n te es la <lrriva(ltr (le rrrr apagn d(' luz, la (lescorrexinn
u < i<l( !>tal (1<'l or(l< na<lnr n qrre vl rrsrrarin apagrre el ord<'na(lor c<>rrro apaga la piar>vira.
('r(arlo esto o(urre. vl rrri(1<~ clv U)>, IX rro tiene la pnsil>ilicla<l clv gr(anclar lns /)rrgers de
> rrtra<ia-s <ii(la rri <lv alrna<rvnar <1 cnntvnicl<> d<i srrperl)loqrre, cn m(r>>orla. en vl disco.
Dehiclo a eso, s< prrvdvn produ(ir clistirrtns prohlenras. vrrtr<' los qu(' p<)<l< ros < itar:
I forrnaci ir><!nrrec ta alnracerracla en el supvrhl<>que.
Ap a r i<i<>rr <lc 1>1(>qes (iv (lat<>s (Ir)v Iigrrrarr c<>rr>(> iii>rcs <r>tu>(lo vrr rcali<lacl estar>
Hslgrl'l(lns B (1('t('l'lrl lila<los crl ('l lrvns.

Ap aricirr cle 1>loqrrc <le datos rrrarrcados coro oct>E>a<los y, si errrharg(>, rrn l>ay
rrigr'r>) an l>ivn <te 1<>st iii< e.
Ap arici<>rr (1r>odos-r' si>r r<..iererrciar,
lelo(i(les re('ltrllla(los l>or rlrci.i dc rlll archivo.

Est os pr.'nl)lvrllcrs l)ll('(lell s('r sr lhsall'l(lns lit iliz;(ralo lt>nlerr f s ck. Est a nrdvrr es invncada
ar>t<>raticarr!errt< err el irricin (le la!r!aquia, si es qe la riltira vez que se <ies<nnect no
ln hicirn. <.orrvctarnm>te. El sistenra <ivt(cta <trren frre apaga<lo cnrrectanrente porqu<
<')tan<lo sv ha(v hivn s( ponv r>r>a marca in(ii( rr>clc>1(>. Si en el ;rrrartrr( rrn sv <l(tanta tal
r!>ar< a, qra rr r dc < ir qrrr nn s< Erizo 1>ivn la!>ltinr;r <l< s<orrexirr.
Las opciorr< s mr)s (.orrrrrrs <l( f sck snn las sigrrivrrtes;

284

( , ' A l ' l'l'ULO I I. A M I I N I STRACIN DL(L Sil>TEAIA Dl t>(ll(.'l l l VOS

BA- l < IB

-v Ora u n>o(lo v(rhoso. Con (sta <>I>( in s( uu(str' 1>or pantalla n>s informacin <f<
l(l (lus(' n>l>estIB ll((hit ualn> nt, rel;t iva ; l'(s op raciones (lu<' s< estn r( alizru>d<)
en cada Ino>nento. Esto pu<l.. ser til para ol>t(nr inforn(aciu spfica o para
ByudBI n 1(ls laho>prs d(' (lepl u Bloa.

a Hc'p,l'Bcln Butonlt(<';1, sin ralizaI prguntas.

-l

L i s t;< l nonthrde todos los Br< 11ivos del sitn(B <l< ar<l>ivns.
T' Plg<ll>t'1 antes d(' re'uf u '.

Ejen>plo:
! fsck /dev/fdO
e2fsck 1 . 3 5 ( 2 8 - F eb-2004)
/dev/fdO: clean, 11/96 files, 30/720 blocks
!

Para ver la cantidad d( spacio libre en discoo(lIu<>s utilizar la orden df (d i~/. fne):

S int a x i s :

df

[- i ]

[ s i st el l l a d e a r c h i v o s ]

Descricin: la. urd(..n df uos Iuestra, sin esecificar el sist( Ina de arcl>ivos. iuforn>acin
s(>hre todos los sistn>as de arcl>iv(>s. Los c;uupns n>ostra<los se refieren al uon>hre del
arcl>ivole dispositii o tipo blo(lue, uu>ero total d< kilol>ytes de espacio <'.n disco que ocupa
el sistema de ar< t>ivos, n(Imero <le kilobytes o< upados, nIInero d k i lobytes disponibls,
porcentaje despa<.io en disco utilizado por los archivos y lugar dnnd" est u(outado l
sisten>B de Brcluvos.
Ejemplo:
! df
Filesystem
/dev/sda2
/dev/sdai

1k-blocks
Us e d Available Use % Mounted on
1616495 1414790
118 1 6 7 92 /
/
208592 1 7 0 88 8
37 704 82 /
/ do s

C<>n la <>< in -1 Barcern otros tres campos (lu tinu iuloru> 1in sobre el n>n>ero
rle nodos-i n uso, lihrs v'i( (h. nodos-1' utiliza(los.

! df - i
Filesystem
/dev/sda2
/dev/sda1
!

nodos-1
4 17792
O

I U se d IF r e e I u se / Mounted on
5 52 7 2 3 6 2 5 2 0
13 % /
0
O
0 / /dos

RA-A1A

I I . ) . O R I ) E NES PARA (LD.(IIXISTRAR EL SISTE "(IA Dl A R C I I I VO S 2 85

Vara ver cmo ( st n partirlo < l espacio et> disco et>t re los directorios utilizaremo la nnlen
du (dita/< us<)//e).

S intaxis : d u

[ - s ] [di r e c t o r i o ( s ) ]

La <>rden du<>s if<>rma drl espacio et> bloques que ocupa el(los) directorio(s) que le
lu >nos dado con>(> argum< nto y to<los los archivos y subclirectorios que cuelgan de l. Cn
l>< opcin -s slo it>for>ar del nmero (le t>1<>qucs total que ocupa el dire(torio. sitt ver
cnmn sr divide esta canti(tad entre sus archivos y sul><lirecturins.

Eje>t>plo:
! du - s / b i n
4 154
/ bi n
!

ll.5.6. El archivo /etc/fstab en Linux


Este archivo mantiene inlnrn)a< it> relativa a los sistetas de arcltivos existentes en
e l sistet>(. El siguient< jrmplo n>uestra rl coste>>ido del ar< hivo /et c / f s t a b p ar a u t t
sst <ella con('l'et,n.

LABEL=/
none
none
none
/dev/hda3
/ dev/c dr om
/ dev/ f d 0

/
/ dev/ pt s
/proc
/dev/shm
swap
/mnt/cdrom
/mnt/floppy

ext3
devpts
proc
tmpfs
swap
iso9660
auto

default s

1 1

gid=5 ,mode=620
defaul t s
defaul t s

0 0
0 0
0 0

default s
n oauto,owner ,r o
n oauto,owner

0 0
0 0
0 0

El <lelititad(>r de < an>p<> p (r(te an hivo es el taltladnr o (tn esp>(cio e l>lanco. Cada
lt>e < mat>tic>>e infortuacin sobre ut> sistema <1e archivos siguicnd<> la siguiente estru< tura.

fs disp punrnontaje tipo~is opciones freq secZsck


fs d i s p i d ir a <I' lisl>nsitiv<> ><>ti< t>r rl sistema <lr rchivos. Pue<ir srr u <lispnsitivn
fsico < o<>( < t>(d<(l o> <leadnr, <><> <lispnsitiv> irt>tal. la <(hica( in <lt n siste<nde
(<rrh i vos en n < l. rt < .

punwont aj e i t><lica en q>t p;<rt l e l sisteta d( ar chivos se u>ot>tar el sisteu> < de ar


(.hivn e ('><rstit>. Exist( algut>os valores ('speciales, por rjell>plo swap it><lica que
/dev/ h da3 n<> t i<< t> p r>t n de >ll<>l>t.'lj(' pnt < Iu(' s(' t l at.'l<'l a> ('h>Yo<l(' (lltrl ( anll>in
(lrl sist ma.
ti p o w i s i t >di(a q<t(' tip<> <I( sist< ><>;l< ar(hivns >tirar < l <lispositivo rsi>r(iticadn c
f s di sp . L i ux < i<( la capa< ida<l <l<>un< j>(r vari<> sist(><>s (lr <n hiv<>s distintos.
a<ll>q(l<' ('st i< ('ap(>('i<l'(< l (l('p('<><le d<' l(>s ld < <los q<<r t('ngatl>os cal g(>(los rl> ('l s>st('n>((.
L<>s u> s cn>(tt>es s(u

286

C API T L I I.O l l. : ) )DXIINISTTIA('IN DEL .')l!)l'EBRIA 1)E AR('lll V OS

RA- Xl x

ext2 es <'1 sisten>a <1<' ar(hiv(>s utilizaclo habitualmetn I.inux,


ext3 s ext 2 <x) sol>))I't< t r,u>saccional (j c)urn<>li>I</),

msdos siste>a d< archivos <le "AISDOS.


nfs sisten>a <larchivos en re<1 l)Vet<u<>I/: File SI/ster>l).

iso9660 si. tnna 1

a r hivos <le CD-ROXI.

ntf s sist<.tna de archivos utilizado por D'idowst)IT/2I< //XP.


smb sisten>a <1(. archivos e red Sa11>a.
En las versioes acta;<les de Liux. la or<len mount es la cara visil>1 p<)r l
sur>o dc varias rdees <'sp<>rializ Idas < n el tonta j< d un sist ema de ar('hix <>s
c<>nr t<>. Por ej<>pie. si utilizan>os la <>rde mount - t s m b , mount i voca ;>
su v< z la ord('n /sb i n / mount ..
opciones es una l i sta de op< iones separa(las I>or coII>s. Existen un g r a l >Pro <l
ellas que p<><lemos utilizar par I gestioar I>estro sistcras de Ir< hivos. etre ll<l.
podPlos <I<'st a('al' las .)>glentes;

auto/noauto i d ia si el sisten>a cle archivos se montar c'ua<k> se invoque la orcle


mount -a . SI>Pie ser 1>al>itual que durate <1 proc eso de arraque se invoqn<
mount d< esta for>a. co ol)jeto <le IOtar to<los los siste>as de I(rhivos
n pesa l'I os.
async/noasyn iclica si las operacioes d< lectura y escritura sol>re Pse <lispositiv<>
dehen re;Iliz'usd< f<un>a asncroa oo.
exec/noexec permite o n<> ej<(t a> ar< hivos 1>iarios situaclos n siste>a de archi
vos e ('upsf >.
user/nouser p e r m ite o <> ) lue el siste>a de. archivos sea Inoutado por un usuari<)
(Ju<' <) s("> root. Si se elige user, el sistna a p licar por defecto noexec,
nosuid y nodev. a Ineos que se esp<~ iftque lo contrario.

nosuid hace quc sc ign(>re el signific ado de los l>its SUID y SGID.
ro Inota el sist<>a cle )Ir< hivos en Io<lo de slo lectura.
rw I<)t;I Pl siste>a <le c(r< hivos P n>o(lo d< lc<'tura y PscritI'a.

def aults Ps qivlta lasopioes rw, suid. nouser. dev. exec, auto y async.
Hal)itu,<lte o

s p e r >it< qP un usuario ( apat t d r o o t , < v i<l<telete) pe<l')

Iotar sistPlas de ar('h>vos. Pol Pje>Dio. s> <.'l usual lo j (i p q u>sK I a I<)t at' un sLsf Pu)

de archivos tipo ext 2 r sidetp e II disq<I'te, p I <lirectori<> /mnt/ f l o p p y


la orde

i t et;Ir;)

$ mount /dev/fd0 /mnt/floppy


mount:
El adlinistr>>dor dsistInas puede autorizar a los usuarios a montar <leternliados si
t Ias dc archivos h;Iitlo us<) <l la <>1>cin user, E<lit<uos Pl archivo / e t c / f s t a b .

3 RA-MA

l 1 . 5 . R DENES PARA ADMINISTRAR EL SISTEMA DE ARCHIVOS 2 8 7

! vi /etc/fstab
LABEL=/
none
none
nona
/dev/hda3

/dev/cdrom
/dev/fdO

/
/dev/pts
/proc
/dev/shm
swap
/mnt/cdrom

/mnt/floppy

ext3
devpts
proc
tmpfs
swap
iso9660
ext2

default s
1 1
g id=5,mode~620 0 0
default s
0 0
default s
0 0
default s
0 0
n oauto,owner ,r o 0 0
use r
0 0

D e esta forma autorizamos a los usuarios a montar un sistema de archivos del tipo ext 2

que se encuentre en la unidad de disco en el directorio /mnt/f l o ppy. Ahora, si el usuario


jdp intenta montar dicho sistema de archivos podr hacerlo.
$ mount /dev/fdO
$ cd /mnt/floppy
$ ls - l
t ota l 1 6
1 jdp

1 jdp

U suario s
U suario s

137 13 n o v 8 15 : 2 2 m i p r o g
38 n ov 8 15 : 22 m i p r o g . c

Cuando el administrador autoriza a montar sistemas de archivos a los usuarios, stos


pueden llevar acabo esta accin pero no pueden ejecutar programas que se encuentren
en l (noexec) ni tampoco se hace caso de los indicadores SUID ni SGID (nosuid). Esta
restriccin tiene como objetivo evitar problemas de seguridad. Por ejemplo, supongamos
que el administrador autorizara explcitamente la ejecucin de programas en los sistemas
de archivos montados por los usuarios, y que se interpreten tambin los indicadores SUID
y SGID.
! vi /etc/fstab
LABKI.~/
none
nona
none
/dev/hda3
/ dev/cdr om
/dev/fdO

/
/dev/pts
/proc
/dev/shm
swap
/mnt/cdrom

/mnt/floppy

ext3
devpts
proc
tmpfs

default s
1
g id~5,mode~620 0 0
default s
0 0
default s
0 0
swap
default s
0 0
iso9660 n oauto,owner ,r o 0 0
ext2
user,exec , s ui d
0 0

Ahora el usuario ya puede ejecutar programas desde el sistema de archivos montado por
l.

$ ./miprog
Hola mundo

$
Si el usuario jdp se lleva el disco a un sistema en el que tenga acceso como administrador
(en su casa, por ejemplo) podra hacer el siguiente programa:

288

C A P T UL O 11. ADMINISTRACIN DEL SISTEMA DE ARCHIVO S

Q
c RA - KIA

$ vi t r oy a n o . c
i nt ma i n ( )
execvp{"/usr/bin/whoami",0);
$ make t r o y a no
Este programa simplemente ejecuta la orden whoami para averiguar el nombre de qu usua
rio seest ejecutando. Como en ese sistema podemos acceder a la cuenta de root, cam
biamos el propietario y el gr upo de ese programa a r oo t y a c t i vamos su indicador de
SUID.
! chown ro ot t r oy a n o
! chgr p r o o t t r o y a n o
! chmod +s t r o y a n o
! ls - l
t ota l 2 0
- rwsr- s r - x
1 root
-rw-r r
1 jdp

r oo t
U suario s

137 i 4 nov
4 6 nov

8 15 :2 0 t r o y a n o
8 15 :2 0 t r o y a n o . c

Ahora el programa t r o y ano se ejecutar con los privilegios de su propietario, es decir.


root. Si q ueremos irrumpir en el sistema, slo tendremos que copiar ese archivo en el
disco, sabiendo que el sistema al que vamos a atacar no slo permite que jdp monte un
sistema de archivos contenido en un disco, sino tambin ejecutarlos segn el indicador
SUID.
$ mount /dev/fd0 /mnt/floppy
$ ls - 1
t ota l 3 1
- rwxr- x r - x
i jdp
Usuar i os
1 jd p
Usuar i os
- rwsr- s r - x
1 roo t
r oot
./t r o y ano
root

1 37i3 no v
38 nov
1 3714 nov

8 15 : 2 2 m i p r o g
8 15 : 2 2 m i p r o g . c
8 15 : 4 0 t r o y a n o

Evidentemente este programa es inofensivo, pero abre las puertas a que un usuario pueda
ejecutar cualquier orden como si fuera el administrador del sistema. De este ejemplo
se desprende que dejar que un usuario pueda montar un sistema de archivos puede ser
peligroso, pero lo es ms an el autorizarlo a ejecutar programas que tengan activo el
indicador SUID,

ll.6. Sistemas de archivos en red Samba


l 1.6.1. E v olucin histrica
A mediados de los aos 80, IBM y Sytec desarrollaron un sencillo sistema para pro
porcionar servicios de red denominado NetBIOS (N eturork Basic Input Output Sy stem).

It ><-!<IA

I l.(i. SISTEI<lz><S DE AH(.'llIVOS EN RED )A),IBA

28 9

Dii lxo sistema estaba orientado a t r ab(<jar coxx peqex>as redes aisladas, sin cxxpxci<lad
d< ixxtercoxxpxixx ntre s, < otras palabras. xxo c<nxtpnxpl xha la posil)ili<lad d( encanxi
n xxxxxexxto le datos a travs <le redes. <IS-DO) iel><yo la posibili<lad d< redireciuxxar el
x x<'xzx>x
<le ntrada y salida dc los dis<os hacia la ixxterfaz <le I< etBIOS, dr forxxxa que el
~ o>>te>xi<lo de los sist< xx>as de ;xrl>iv<>s fuera accesible a travs d<. red. El pro< orolo para
xx>partir xulxivos >x travs le la red se <lenoxuin S> ll3 (Sentar .Aleas<x</eBlo/ protocol).
A<<al<x>ex>te a este protocolo se le coz>o<e con>o Cll'S (Coz>z>no>z In/(:>~><t Fiir .')x/aten>).
El sigxxient< pas<> fue axx>pliar los servicios prop<>rcioxxados p<)r NetHIOS 1>ara que
pu<lieran operar sobr< rede> Etlxernet y Tokenring. El resultado f<te 1<zetI3ELI (<-tBIO')
E>z/znce<1 Uset J>xterfoce). Taxnbin se desarroll softivar( p;<ra e>xx<ll><r NetHIOS sobre
pro<o<.olos de mayor niv<1, como IPX o T C I ' / I P , Est< xltixxxo es xxxy ixxteresaxxte porque
Iu rxnite exxviar paquetes NetBIOS a travs dr redes ixxter<.>ntctxxdx>s xxxedi>xnt< m<z/ers o
x><.;uix>adores, NetBIOS se <lesarroll<) pata trabajar exx p<>queas r<.des aislarlas. as es
qxxP l>x solxxcix> f>x< tr>x<lu<.ir los noxxxl>res de N<.tBIOS ( l(i byt(ts para denominar uxx <.quipo)
l ix'<'ci<>x>es IP. El nxecanisxxxo par > llcvx<x' zl ('abo esta t>ad>x('cixx Pst. docuxuenta<lo exx
"! IRFC1001 y HFC1002..'<I;is tarle 1<licrosoft s>a<li algxxna fuxxcioxx xlidad adicioxxal al
1>aqxxete S<II3: el servicio de axxxxxxcio ()roz<sizx</) y xxn servi< io de autcxxticacixi ce>>t xalizadxx
lexxoxxxix>ado Domixxio XT. que se ixxclxxy> por prixzx(ra vez ( xi D'ix><lo>vs NT 3.51 (1Vi>><lo!s
.'V T Dozn<xin Control(.r).
l' xx esa xxxxsxlxa p<>ca. Ax><lre>v Tri<lgpll rst>xl)a fr xl>ajaxxclo en xx>x soft>v(u e qxx(' ppx nxxtxexa
.e < e<ler <oxx un PC coxx sistexxxa operativo 1<IS-DOS, xx un sist.m>a <lc ;xrlxivos rcsident< cxx
'xx>a xxxqui x>a U%IX. E ia pax't e xxo (x a xx>x pr<>l>l('xx>a i)or(jue P)<xst xl xx<x pacluete p Lx'a x>t ilizxxr
.'<IS-DOS ( on sist e>r >as NFS. El probl< nxa ( r < 1 x <u)e><ist P>x<
ia < n <IS-DOS le dos proto< olos
h r<l distintos: XFS y N< tBIOS. Axx<lre>v 'Iridg< ll s< ril>i(> uxx s>xijfer <le p xquetes <le
Ir>xx x qu< p<ii< ra lxaccr ixxgexxi( ra ix>versa s<>hre < 1 prot<)cok> SIIB, ya qxx(' est(' px'ol ocolo
.ra y sigue siexxdo propietario de I i i r<>soft. C>>ando las prixxxera versiones estxxviernxx
lispoxxil>les. l>xx(x <oxxxpaxxxa (le, sol><vare x<la>x> los <lere<h<>s sobre l xxomhrp dad<> a sxx
-istexnx servidor de archivos (S%IB). Para sohxcioxxar este prol>lenta. Ax><lre<v Tri<lg(11
1xsc xxna listxx de p;<labras qxxe <..ontuvi<.r:<n las l( tr;xs S%IB, se <'s ('l >rigen del noml>re

.>x<tal: Saxxxba.

l l.0.2.

S e r v i c io s p r o p o r c i onados por Sarnba

E) s< rvicio Sal>>b;x <st fox x;>dr> por dos prograxxuxs quc se rjerxxtan como dexxxonio en
l . ist en>xx: smbd y nmbd. Sxx ol>jetivo es proporciox>ax cxx;<t ro servicios cl xve del prot<><olo:
S< rvicios sol)r< ax hiv(>s c inxpresor xs,

Axxtenticacixx v axlrorizacixx.
Hesolxx< i>xx
de xxonxl>res.
Axxx>< io <le sprvi<.ios en la rp<l((rrou,si>zg).
L< servicios s<>hre arclxivos e irxxpresoras los propor< iox>a smbd. Est( t>xx>>b>P>xSP<'x><"x<g'l <1
;>x<)1><a< i<xar servici<>s d<' >xxxl exxt icacixx y xxxtorizaixx a t>xxvs l<' dos x>todos d(' t<"ll>xxjo:
xx><
><l< > c<>mpart ido (s/z <zr<'.)z> o<c) y nxodo du s u ario ( <>serm ode ) . El primer(> p< r> >xi
tP
~ o>x>partir xx>x r<!xxrso ut.ilizaxx<lo una xxxi;oxxtrasexxa, par x tokio aqix< l <lxw. qxxicra '<ceder.

2 90

C A P f T UL O I L A D WIINISTRA(.'I!y DI.L SISTEMA DE AR<.'Hl) 'OS

Q I( A- x t . .

En el segurido cada usuario tiene su propia cntrrisena y el a<lininistra<lur puede at erizar


o denegar el acceso a cada usuario indepe<lietemerite.
Fl cnnc<pto <k D o m i nio N T a i i ; idc ii n m c caiiismo adicional dc i i i t < nti<acin. qii<
consiste <n qu(.' uri iisuario seautentica uria iriica vez y, una vez la< lio esto. tiene ac< es<
a todos los servicios para lns qiie est autorizado d('r)t ro <l(' iin dominio. Este servi< ii
lo proporciona iin controlador <le dominio (D <)!nairi Curitrollee). As, iin doriniu es un
(onjiinto d<' ni qrrinris qiie comp irten cl misnu> controlador d<. dumiiu.
Los otros dos servicios. resoliicinn de n<nni)res y ariiiriciu <le servicios, los proporciori i
nmbd. El objetivo es propagar y controlar uiia lista de iiomhr<s N( tBIOS de equipos. L;i
resolil< i<)n d<' iinnihres s(' p<)c<l(' llevar' a cabo d(' <lns forillas. rn('diarite difusin (!r)(<<l< as/
y puiitu a p u i i tu . L a p r i n icra cs la. sulu<!in iirs cercaiia a la i n i p leinentaciii origirial,
Cuaiidn im a n i q u i n a q u ierc curi()((.r la dir e( ( i ri I P <l( i i i ) equipo. <lifiirid(.' sil rlnlllbl<' a

travs de t(>d;i la real a la esper i <le qii< el aludido respuirda <on sii direcciri IP. Esto
piiedc g(ncrar algo de trfico eri la red. pero si('mpre corifiriado a la, rl local. El seguri<lo

mecanismo implica iitilizar un servicio conocido coirio NBNS (NetBIOS Name Se).veul,
il icrosoft llain ;i sii i m p lemciitacin d<' (ste servicio MiINS ( H'indo<us Iriteniet Nan!<
Server). C.u idu u i i(i i r lquiria arr arica, registra su i l n n lh re y s u < li recciil IP e n e s t<'
servidor, dc funua que cuaiido quiere ericuritrar la <lirecciri IP de uua iiiquiua a trav.
d( sii i i unibr(' cunsillta en este misni<) s<'rvicio. La ventaja de est a p r o x i m acin es <rli<
las lrlqilillas sitiiadas eli redes <listintas piledell curripartir el iiiismo servidor NBNS, pnr
lo tarito. el servicio nn est limitado inicamerite a las rii qiiinas <'onfinadas en lrl lllsllla
red local.

l'or iltiriiu, el auuricio (bruu!sin(/) consiste eii hacer saber a los de)irs participarit< s
qu servici<>s coriip,irte un <leterniinadu equipo. Inicialniente todos los equip<>s que coirip<)
i)en ui)a red ll( van a abo uii proceso de selecci<)ii para <leterriiinar quin ser cl encarga<l<l
de llevar a cabo el registro <le servicios. La. iii;<piiiia qiie sale elegida d<l proceso se ;iii
todenomina L<)(zrl ./llacter Brou'sei (L B I )1) y se id(utifica rncdiarite iin nombre especial
adenis del suyo propio. Sii t r (ihajn ser ni.iiit('ner tina list i de servicios que es el qiu
acostumbrarnos a ver cuando utilizamos "!<Iis sitios de red" dc l<licrnsnft XViiidov;s,
Al lpllias de lu aiit< riur. exist( la figul (i (lel D%IB (Doinai n..tl(istrr Bmruser )que coor
dina las listas de servicios a trav~v de distintos dnrniriios NT. in( luso a travs de redes
distintas. Utilizar)de el servi< iu NBVS. iii) LKIB busi a su Di I B e i ntercarribia iriforma
< in cuii l. Actualiriente, el niecanisuiu de siricruiiizaciu hace que sea riecesario hastaiir<
tienipu para que toda la informacin se propagiie pnr las distintas redes y aparezca (lc
furiiia correcta en ")<lis sitios de red".

l l.6.3 .

C o nf i g u r a ci d e S a m b a

P r<ti< arllent( t n d;i l a c ufiguracin <le Samha en uri(i niquiria U NI X p >ii'tf' de i i l l


archivo <le coiiliguraciu cuyo nombre (is smb.conf y se encuentra eu / e t c / s amba. Es
te archivo se (~vtr<'r!ira segin se((iones y parinetros para cada sec(in. I.as seccinii(s
coniienzan coii su iionihre entre corclietes [nombre secc i n ] . P ara asigiiar valores a los
parmetros se utiliza el formato parmetro = va l o r , T a n to los nonihres <I<. secciri c<)
mn los parmetros se piu den (wcr ihir en maysciilas o minisculas (case insensitir)e). Las
lneas que coniieiizan pur ; o ! s e consideran comentarios.

~c. RA-5,1A

.6. SISTEI<1AS DE ARCHIVOS FN RED SAI IBA

29 1

Los valores que se pueden asigl>ar a un parnletro pueden ser caderlas de caracteres (sin
< on>illas) o valor<>s bo<>leans, que In>eden expresarse con>o 0/1, yes/no o t r u e / f a l s e .
Secciones
L <s secciones comienzan cou su no<ubre encerrado entre <orchetes. C.'ada seccin de
~ig<>a el on>bre de un recurso cu>partirlo. regulado segn> una serie de parmetros de la
s <i. Existen tres secciones especiales llamadas [gl ob a l ] , [ h omes] y [ p r i n t e r s ] q u <
tratarn n>s a<l< lante. Los recursos compartidos p><eden ser de dos tipos; directorios
<le los <.lientes podrn integrar en su sistema <le ar< hivos o impresoras,
Las secciones pueden utilizarse et> modo invita<io (gurst), de forma que los clientes no
tengan que autenti<ara< para harrr uso de ellas. Para regular este tipo de acceso debe
existir una cuenta especfica <l<' invitado en el siste>na. Las secciones que no admiten nr<>do
ivitado requieren un pro<'eso de autenticacin basarlo en un no<nbre y u<u< co<>trasena.
I os privilegios obtenirlns <lependern entonces del non>bre de usuario,
P or ejemplo. para crear un directorio colpartid<> en el servidor denominado publ i c o
aa<lircmos en el archivo smb. conf las siguientes lneas:
! ======== = = == = D e f i n i c i n d e

r e c u r s o s c omp a r t i d o s = = = = = = = = = = = = = = =

! Acceso pb l i c o
[ publi c o ]
comment = Archivos pblicos
path = /home/anonimo
r ead o nl y = n o
p ubli c = y e s
P><ra comprobar que el un hivo de <onfiguracin es correcto hacernos uso d< h< ut iii<h<d
testparm. El resultado puede ser un mensaje de error o bien un volcado d<. los recursos
exportados por nuestra mquina:
! testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[publico] "
Loaded services file OK.
Press enter to see a dump of your service definitions
! Global parameters
[ global ]
coding s y s t e m =
c li en t c o d e p age = 8 5 0
code page directory = /usr/share/samba/codepages
workgroup = WORKGROUP
netbi o s n ame =
netbios aliases =
n etbio s s c op e =
s erver s t r i n g = S a mba 2 . 2 , 1 a
fake directory create times = No

2 92

C A P T UL O l l , A D M I N ISTRACIN DEL SISTEMA DE ARCHIVO S

RA-M A

v fs o b j e c t =
v fs o p t i o n s ~
m sdfs r oo t ~ N o

[publico]
comment
A r chivos pblicos
path = /home/anonimo
r ead onl y ~ N o
guest o k
Yes
Todos los valores que aparecen son valores por defecto, salvo las ltimas linces que mues
tran la existencia de un r ecurso denominado [ p u b l i c o ] a c cesible de forma annima
(guest o k y e s ) situado en el servidor en /home/anonimo.
Para probar nuestro servicio podemos hacerlo de varias formas. La primera de ellas
es utilizar el cliente Samba de Linux, Este cliente smbcli e nt , est incluido junto con
el paquete Samba, Por ejemplo, para saber qu recursos exporta una mquina podemos
utilizar la orden:
! smbclient -L tierra
added interface ip 172.29.16 5 8 bcast~172.29 . 1 9 . 2 55
n mask~255.255.252. 0
passvord: expulsarester para entrar co mo in v i t a d a J
Anonymous login successful
Domain~[WORKGROUP] OS~[Unix] S erver [ S amba 2 . 2 . 1 a ]
Sharename

Type

Comment

p ubli c o
IPC$
ADMIN$

Disk
IPC
Disk

A rchivos p u b l i c o s
I PC Servic e ( S amba 2. 2 . 1 a )
I PC Servic e ( S amba 2. 2 . 1 a )

Server

Comment

TIERRA

S amba 2.2, 1a

Workgroup

Master

WQRKGRQUP
P odemos utilizar este mismo programa de forma muy similar a un cliente ft p
! smbclient //tierra/publico
added interface ip 172.29.16.58 bcast~172.29.19.255
n mask 255.255.252 . 0
Passvord: fd e j ar en b L a n co3
Anonymous login successful
Domain [WORKGROUP] OS [Unix] Server [Samba 2.2.1a]

I 1.6. SISTEMAS DE ARCHIVOS EN RED SAMBA

293

smb: $> ls
14 : 17:22
13 : 55:46
14:17:i
i 4 : 17:15
14 : 18:03

2 0 04
2 0 04
2004
2 0 04
2 0 04

57690 blocks of size 131072. 38152 blocks available


s mb: $> c d c o n t r a t o s
smb: )contratos(> ls
0 Mon Ju n 2 8 1 4 : 1 8 : 0 3
0 Mon Ju n 2 8 1 4 : 1 7 : 2 2
1
6 Mon Ju n 2 8 1 4 : i 7 : 4 5
c anutel . d o c
20 Mon Ju n 2 8 1 4 : 1 8 : 0 3
a dsl. x l s

2 0 04
2 0 04
2004
2 0 04

manuales
esquemas
c ontra t o s

0
0
0
0
0

No n
Mon
Mon
Mon
Mon

Ju n
Jun
Ju n
Ju n
Ju n

28
28
28
28
28

57690 blocks of size 131072, 38152 blocks available


smb: )contratos't> mkdir loloTel
smb: )contratos(> ls
0 Mon Ju n 2 8 1 4 : 1 9 : 1 9 2 004
0 Mon Ju n 2 & 1 4 : 1 7 : 2 2 2 004
0 N o n Ju n 2 8 1 4 : 1 9 : 1 9 2 004
lol oTel
1 6 Mon Jun 2 8 1 4 : i 7 : 4 5 2 0 0 4
c anutel , d o c
20 Mon Ju n 2 8 1 4 : 1 8 : 0 3 2 004
a dsl. x l s
57690 blocks of size 131072. 38151 blocks available
smb: )contratos(> exit

O tra posibilidad es utilizar un cliente Windows para acceder a nuestro recurso publ i c o .
Esto se puede llevar a cabo de varias formas. La primera de ellas es buscar nuestro equipo
d entro de "Mis sitios de red" de Windows tal y como se muestra en la figura l l . 6 .
Tambin podemos utilizar el intrprete de rdenes de Windows:

c:> net use z: )gtierragpublico


Se ha completado el comando correctamente
c :> z :
z :> d i r

Esto funciona sin problemas en las primeras versiones de Win95, pero no en las siguientes.
Uno de los primeros problemas relativos a Samba fue que, tanto el nombre de usuario como
la contrasea, se enviaban sin cifrar, lo que constitua un serio problema de seguridad, por
lo que se opt por cifrar dichas contraseas antes de enviarlas por la red. Ms adelante
veremos cmo tratar esta particularidad en nuestro servidor Samba.

2 94

O A V T l l L O 11. ADXIINISTIIACI()Y DEL SISTEI<IA DE AHCIIIVO S

ArChivo Ercron Ver

RA-5 1 A

F a voritos H erramren<as 4yua

] v >ii<r& ~, + ' Q~

~~ C<s p e6is +H istorial ~ gQ p (

pubLco t<opresoras

Tierra
Seleccione un elemento para ver su
conterro.

F ig<ira I 1.6: Aspecto dl dir<<torio c<partido publ i c o .

ll . 6 .4 .

A ut e n t i c a c in de u suar ios en Samba

L<)s iisuarios de Satiiha piieden autnticarse <le varias fornias, aunque las nuis hahitila
les soii utilizar la base de usuarios de Linux (/ e t c / p a s swdl y. de forma ms general. I
sisteina PAI<l (,Pluye<it>le A<>thenticatiori /llechaism), o utilizar una base de datos propia
(smbpasswd).
Inicialmente. el proto<olo SMI3 iitilizado por l>licrosoft enviaba las contraseias siii
cifrar, pro a partir del tercer sara>ice pck de KiV<T, I%i9S>h. )r) i<9Sc, M i98, mini< I<
y K i '>K s iit ilizaii otras< a cifrada. Para ad;q>tarsa ste iu v<> camhi<>, Saih;i
incluy un;i l>asde datos de usuari<) propia doii<le aliaiiar las contraseiias. I,a for) )
de iictivar est< niec;inisiiio es aadir la siguiente lnea en la se i glohal de smbd. conf.

e ncrypt

p a s swords = y e s

A partir de este moineiito todos los usuarios que quieraii a< cdr al sistenia a trav <l<
Saih;i d1><' existir eii el sisteiiia conio usuarios LIIIX y. d e m s, tener asignada uii;i
o<<trasa para el servicio S iniba. Vara facilit ir esta op<r ici se disp<>iie de la utilida<l
smbpasswd.

s obpsssvd ,

- ,Q g

i a7Ca

Sintaxis: smbpasswd [opciones] [usuario]


Para <!ar dalta al usuario jdp en el sistenia ejecutaranios la siguiente ord:
! smbpasswd j d p
New SMB passvord: ( n o s e m uest r a )
Retype new SNB password : ( i >o s e i rtuestr a )
Passvord changed fo r u s e r j d p
!

ll.6, SISTEMAS DE ARCHIVOS EN RED SAMBA

~ : RA-MA

29 5

Para que esta orden tenga xito es necesario que el usuario jdp exista previamente como
usuario en el sistema. Puesto que el tipo de cifrado utilizado por Samba es diferente al
t ilizado por Linux, la orden smbpasswd gestiona su propio archivo de contraseas, Dicho
archivo puede encontrarse en/etc/samba/smbpasswd.

l 1.6.5.

M ac r o s

Samba permite utilizar un determinado conjunto de macros que se expanden apropia


dau>ente en el archivo de configuracin. A continuacin se citan algunas de ellas.
'IS el nombre del servicio actual.
%P el directorio raz del servicio.

%u el nombre de usuario para el servicio.


%g el grupo principal de/u,
/U el nombre de usuario para la sesin, es decir, el nombre de usuario solicitado por el
cliente, que no tiene por qu ser el mismo que el otorgado por el servidor.

%G el grupo principal de%U.


'/H el directorio raz de'/u.
%v la versin de Samba que se est utilizando.
"/h el nombre de Internet del equipo donde se ejecuta el servidor Samba.
/m el nombre NetBIOS del cliente,
%L el nombre NetBIOS del servidor al que el cliente hace la peticin. Esta macro sirve para
modificar la configuracin del servidor en funcin del nombre de servidor enviado
por el cliente. De esta forma el servidor puede tener "doble personalidad".
%Mel nombre de Internet de la mquina cliente,
'/a el nombre de la arquitectura de la mquina cliente. No todos los nombres obtenidos son
fiables. Actualmente se reconocen los siguientes: Samba, Wf Wg, WinNT, Win95, Win2K,
WinXP y Win2K3. Cualquier otra arquitectura se clasifica como UNKNOWN (desconoci

do)
%I La direccin IP de la mquiua cliente.
%T la fecha y hora actual.
%$(var) el valor de la variable de entorno var.
Ilustraremos el uso de las macros creando un servicio Samba que ponga a disposicin de los
clientes una serie de drivers dependientes de la plataforma que est utilizando el cliente.
Cuando un cliente conecta con nuestro servidor Samba, le informa de la arquitectura que
est utilizando a travs de la macro %a. que puede tomar los siguientes valores:

296

C AP T U LO l l . A D M I N I S TRACIN DEL SISTEMA DE ARCHIVOS

RA-l l A

Samba para clientes que utilicen Samba, generalmente sobre Linux,


Wf Wg Windows for Workgroups, tambin conocido como Windows 3.11.
WinNT para WindowsNT.
Win95 para Windows95.
UNKNQWN para otras arquitecturas.
Crearemos un directorio raz para cada una de las plataformas. todos ellos a partir d
/ borne/dri v e r s d e f o rma que el servidor nos conecte al d i rectorio adecuado a part ir
de ls, informacion recopilada sobre la arquitectura que estemos utilizando. El rbol de
directorios propuesto, a partir del directorio dr i v e r s , es el siguiente:
d riv e r s
I Samba
I-- J DBC
I-- XWindows

' zxp

I Wf Wg
I Win2K

I l impresoras
I scanner
I

' - - v i deo

I Win95
' WinNT
El archivo de configuracin de Samba smb. conf debe incluir las siguientes lnea:
! Drivers dependientes de plataforma
[ dri v e r s ]
comment d r ivers para /a

path /borne/drivers/'/a
r ead onl y
y es
p ubli c ~ y e s
Si miramos en el entorno de red de un cliente Windows2K, el resultado obtenido es l
mostrado en la figura l 1.7.
O bservamos que el
campo comentario, que es elque aparece en elmarco izquierdo, dic~.
"drivers para %'in2K". Efectivamente, la macro Xa se expande al nombre de la arquitectura
utilizada por el cliente. Si picamos dos veces sobre el icono, accederamos al directori

/home/drivers/Win2K,en el que habremos situado losdrit/ers para dicha arquitectura.


Si ahora probamos con un cliente Samba bajo Linux, el resultado es:
Domain~[WORKGRGUP] 08 [Unix] Server [Samba 2.2.1a]
Sharename

Type

Comment

l 1.6, SIS'l'FERIAS DF. AR('llIVOS EN ItFI > SANIBA

RA-IA

J 4 Atrhs ~

I '4

al@

29 7

e Jz 5

Tierra
>,><Berro><drtvets
Cament>>r>o.Wv<:rs para Wr>2K

I ig>ura ll.7: Asp< t<> <ll directorio dr i v e r s ii "% lis sitios <le r(d".

p ubli c o
d ri v e r s
IPC$
ADMIN$
Server

l l.6.6.

Disk
Dis k
IPC
D is k

Archi v os publicos
dr i ve r s p a r a S amba
I PC Ser v i ce ( S a mba 2 . 2 . 1 a )
I PC Ser v i c e ( S amba 2 . 2 . 1 a )
Comment

TIERRA

S amba 2.2. 1a

Workgroup

Master

MYGROUP
ORVITEK
WORKGROUP

AMIDALA
POLARIS
TIERRA

S e c c inglo bal

Los p>Irietr<>s <le est;t snci<>n se aplica al servid<>r Saiba en geuer;il, tanto para
i<>dilic;ir s coiportanii<iito <.oi<> a la ii<>r;t de estal>lcer v<lores por <lfet<> que se
tplicar<t i( otras secci<>iis.

netbio s n ame es l i>o>iii>re NtBI().> que se asignar al servidor.


server

s t r i n g < s una cadnia <l txt<> qulsril>e al si.vi<lor..><. puedeii utilizar ri

l os p,'1ra ('Olllpon('l' esta ( 'Hd<'lla. PO I j ( 'Illplo, sl q i i ('1los coillpoil('I i l l l it ('<lde8

iiiforiativa que indi<pie la v< rsin del servi<lor junto coii < I nomi>1 < IP de laiqiiiiia
<' la qus< ejecuta. aiiadirii>os la sigiet lnea a la secci>ii glol>al d< smb. conf :

server string = Servidor Samba%v en%L

workgroup s < I grupo d tral>ajo < l que se icltive el s< r> i<lor.

2 98

C A P I T I !L O 11. ADlvlINISTRAC.'IN DEL SISTElviA DE ARCHI) 'OS

It A- X I A

11.6.7. Seccin homes. Directorios de usuarios


El servidor Saml>a es capaz de generar recursos comparticlos en el s< rvidor en tien)p
cle ejecucin. De esta forma un u suario Satnba puede acceder a su d irectorio raz r>)
un servidor l l N I X . P ara proporcionar este servicio es necesario que exista una sercit>
[homes] e>< el archivo de conf i g ura in de San)ba. Cuattclo un ttsuario intenta cono<t.ar
cot) el serviclor se inspeccionan todas las serriones para ver si alguna de ellas proporciona
el servicio soliritaclo. En caso clc >n> c))contrarse el recstrso, se rnmpru ha si el usttario
y s cotttr<)sefia son < orrectas. En caso alirnlativo, si existe tnta secci<n [hornea] sta s<.
<luplira con algunas mo<lificariones que clependet) del r>ontbre cle usuario utilizado p <ra la
rot)exin. Dici)as n)odificaci<>nes son:
El non>bre del nt)evo rec ttrso es el t>ontbre de usuario utilizado para llevar a abo la
conexic)n.
Si no se proporciona el atrib) tto. path se tomar; por o)isin el directorio de conexi<>t)
(home) clel usuario. En el caso de querer separar el directorio <le conexin del usuarh i
UNIX dr l usuario Samha, el sistema pone ) nuestra disposicin la ntacro'/S. Esta
tuacro se expat)de al non)bre <le usuariot i lizado en la conexin. Por cjempl<>:
[homes]
path=/home/usuariosSamba//S

Algunc>s de los atributos tns utilizados dentro cle esta secc.in son:
path directorio que alberga el recurso comparticlo.
guest o k ( p u b l i c ) s i su valor es true, t)oca necesario que el usuario se atttentique par >
accnier al recurso.
comment es una raclea decaracteres que describe alrecurso.
volume es una cadena cle caracteres cot> el nombre del volumen que aparecer < uanclo utl
cliente basado en ll S-DOS asigt)a al recurso una 1< tra de uniclad.
read onl y s i su valor es tr ue, el recurso se declarar; como de slo lectura.
<>riteabl e si su valor es tr ue, pertnit ir el acceso de escritura.

ll.6.8. Opciones de red


San)ha permite implantar una serie de politicas de segurida<I orientadas a conceder o
denegar acceso en funcin de la direccin IP de la mquina cliente. Dicha dirercin II' se
puede especificar cle varias formas:
N c>mhres de n)<quittas. por ejnnpln Pcconta.
Di recciones IP. por eje)nplo 192. 168. 2. 3.

ll.6. SISTEMAS DE ARCHIYOS EN RED SAMBA

r i RA-MA

2 99

Subredes IP, por ejemplo 192. 168.2. (precaucin: existe un punto detrs del ltimo
dgito de la direccin de la subred).
e Nombres de dominio. porejemplo comercial. miempresa. com.
Nombres de subdominio, por ejemplo .miempresa. com.
a La palabra reservada ALL indica "todos",

~ La palabra reservada ALL seguida de EXCEPT, para indicar excepciones a la


clusula ALL.
Los siguientes atributos se utilizan para llevar a cabo el control de acceso basado en
lirecciones IP :
hosts a l l o w

i n d ica qu clientes estn autorizados s utilizar un determinado servicio.

hosts d eny i n d ica qu clientes no estn autorizados s utilizar un determinado servicio.


Por ejemplo, si queremos denegar el acceso a todas las mquinas como poltica general,
en la seccin [gl o b al ] aadirernos:
h osts d eny ~ A L L
ste es un buen punto de partida para implantar una poltica de seguridad basada en ls
mxima de seguridad:
Lo que no estd ezplcitamente' permitido est irnphcitarnente prohibido.

Ahora podemos autorizar determinadas subredes, por ejemplo, ls subred pblica 193.146.57
y ls privada 172.29,16.
h osts a l l o w = 1 9 3 . 1 4 6 . 57 . , 1 7 2 . 2 9 , 1 6 .
Tambin se pueden definirclusulas de acceso para cada uno de los recursos compartidos,
Para hacer esto es necesario que no exista ninguna otra clusula de acceso en la parte
[global ] d e l a r chivo de configuracin. Por ejemplo, podemos restringir el acceso a los
directorios de usuario slo a aquellas direcciones que se encuentren en nuestra subred
privada:
!Acceso a los directorios de los usuarios

[hornea]
comment D i r ectorio personal de /u para el servicio'/S
!path = /home/usuariosSamba/'/S
r ead onl y = n o
w rit e a bl e = y e s
p ubli c ~ n o
h osts d en y
ALL E X CEPT 172.29. 16 .

300

cA I T l L o l L A DI l leal)'I ltAc'li D E L s l s TE'<IA DL' Afe('l ll vos

l l.6.9 .

Se r v i ( i o r e s v i r t u a l e s

Lus sPI"vi<lo! <s Vil't Il1<s sor i I iii iii<'cll!.ii ll< > [>r)1 Pl <'iil sP <'1 Pa 1 llu iili dP. 1 <" riel
vari<>s sprvi<l<>res ciiii<h> rerilliliitp (fsica!ente) slo existe ittiu. L f o r r iia <lp c<uisegi!

esto Ps <lue un servidor Sa!!!ha se registre <.o iarius nom?>res VPI DIOS distit<)s. 1>cr
i!SigriiidS tud<>S a la niiSma dirPCCin IP. San!ha permite que una Ir!;<luiriUi%IX regiatr>
variosu ihres NetBI () S u t i l iziuidu lii <.l;iusulnetb i o s al i a s e s . E s ta cl usuli <l< lr
estar situacla < n la part<.' I.global] d<l ;in hivo cle configr;icin de Smha.
! ============= Configuracin global de l

s er v i d o r

== ==== ==== =====

! Acceso pb l i c o
[ global ]
netbios name = tierra
server string = Servidor Samba%v en%L
netbios aliases = ><eb conta factu
orkgr oup = C anut e l
e ncrypt p a s st<ords = y e s
s ecur i t y = us e r
l og l e v e l = 1
Rpii< ii<>sc l s< rvi< iu Satiiha y p <1 piitorno <lp n'd de uri < lipnte<>'i!ido>vs ol>ten<lr;iiii
Pl reslt<iu <l<-' seiii< stra eri l i figura l Lg<,

r '+<iv<>

P~ a~

D 'Clk n

&e<>c>.g Cai><>tel

C<r<r< a

Faciu

ler ra

S
Wel>

Canutel
Seleccr<>
r>e <e><le<r>etc> para var au

c<><
>te!a<t<).

1 igiira ll . ~: Aspect<> <lc los s<rvidores virtiiales en -Mi sitios de re<l".


Ah< a l>i< n, s<>lu < oii Psu nu < useguinios niiestr<> ul> jetivu. p<)r<t< todos ellos put I!.
l Iiiisa> ser.vidur <uri 1<>s iisios r< cursu. Par i <tii < l a I i nu < le riestros s< rvidurr

virtuales ofre< i< rs< rvici<) clistitos te<li.a <Ii!e hal>< r distiut< ar< liiv<>s <le < r!hgr< i< r!.
1>ar;i c<la uriu d< lus serviclorps, cada uiiu uii lus r<.<.iirsus propios <lp cada sprvi<lr >r.
Anteriornu r>te viius <lu<' cxist<'. iiriserie <le riiacros <1P se expride en furi< il> 1
determin<k>s p;irinietros de la c<>n<'xiri. Cuiicret iriiet< %L se Pxp iride al iionihre X<'r
BIOS del s< rvidor l <luel cli< irte h;<<e hi peticin. l'or <jenipl<>, si n < liente )t< I.:
<..ii Pl s ervidor > ir t u al w eb.%L s< expdc P se v i l u r. T ! i i i ) )in cxist<. ui!a furriiii d< i i .

<1ir, desde el iin hivo <1.<nitiguraciii d S a n!ha. otro archivo dP coiifigtir< iii. C' ..

l l.6. SISTEMAS DE ARCHIVOS EN RED SAMBA

RA-MA

301

~~tu tenemos todas las herramientas necesarias para poner en marcha nuestro servicio
~i nba virtual. Crearemos tantos archivos de configuracin distintos como /iosts virtuales
iistintos tengamos:
s mb.conf . f e b
s mb.conf . c o nt a
smb.conf.factu
smb.conf.tierra
Los anteriores son ejetnplos, podramos utilizar cualquier otro esquema. Ahora, el archivo
ie configuracin smb. conf slo contiene;
! ~~

~==== = C onfiguracin global del servidor =~~ = == ~ ~

[global]
netbios aliases t i erra conta factu veb
include / e t c/Samba/smb.conf.'L
Dependiendo del servidor al que se acceda'/L se expandir a un nombre u otro y cargar el
archivo de configtuacin apropiado. Por ejemplo, si el cliente intenta acceder a fe b se

cargarael archivo de coniguracin smb, conf .web que contiene, por ejemplo:
!~~

~~ ~

C o nfiguracin global del servidor ~ ~ ~~~ ~~


R K C C R S I S P & f5
R SL~
WEB

[global]
netbios name ~ feb
server string S e r vidor Samba'/v en/L
workgroup ~ Canut el
e ncrypt p a s s v ord s = y e s
securit y
u ser
l og l e v e l ~ 1
!~~ ~~ ~ ~ Definicin de recursos compartidos~= =~~~~~ =~=
! Acceso pb l i c o
[ publi c o ]
comment = Archivos pblicos
path = /home/anonimo
r ead onl y = n o
p ubli c ~ y e s
h osts d en y
AL L E X CEPT i 7 2 . 2 9 . 1 6 .
!Acceso a los directorios de los usuarios

[hornee]
comment ~ Directorio personal de'/u para el servicio/S
path = /home/desarrolloMeb//S
r ead onl y = n o
v ri t e a bl e = y e s
p ubli c ~ n o

M2

C AP T U L O 11. AD M I NISTRACIN DEL SISTEMA DE ARCHIVOS

Q
c RA - a t a

l1.7. Ejercicios
ll . l

D e t ,ermine qu sistemas de archivos hay montados en su sistema UNIX .

11.2 ,Qu espacio queda libre en cada sistema de archivos montado7


11.3 Pruebe a crear un nuevo sistema de archivos en eldisco Bexible. Una vez creado.

mtelo en un directorio denominado /f d. Pruebe a acceder al sistema de archivo


recin montado,
11.4 Desmonte el sistema de archivos que acaba de montar.
ll.5 Modifique elarchivo /etc/f stab para que el anterior sistema de archivos sea mon
tado de forma automtica cuando se inicie el sistema.
11.6 Determine el nmero de bloques ocupado por el directorio /e tc y / u s x ' .
ll . 7

C o m p ruebe el estado del sistema de archivos raz y corrija los posibles errores,

11.8 Con6gure un servidor Samba para que ofrezca un directorio de acceso piblico lla
mado mp3 a todos los usuarios. No se debe permitir que los usuarios escriban cn
este directorio.
11.9 An ada al servidor Samba del ejercicio anterior un nuevo directorio de acceso pblico

donde los usuarios puedan dejar archivos.

Captulo 12

P arada y a r r a n q u e de l s i st e m a

UNIX
ll<s<le qP Pncedelos < l oral(nador hasta qP aparece Pl prompt <lel itrpretc cle rclc
<'s (illell). s<' (>j< ctan (arilis tar('as atonltlcanlPte <]uc s(' ('onoccn con el nnnlbrc (lc
..1n< ia cle arraque dcl sistenl;l, El proceso <le arr;Ir>que i< lye varias colprobacinnes
d(' sanidad, y c orl frccucnc ia tratar de reparar c>lalqicr dar)n Pncnnt r acl<>, Pspeci;limete
d;l<>s en cl disco <luro. >Inrmahente el llroccso dc arr;Ir>que (~ 1;s r ipi<lo si la<lcscnnc
xi<n ant(rinr fe <.Orrccta: s decir. f<' realizada corl la nrd< shutdo)rn. Este pro<'csn de
,>l laqc puc<l< cambiar col>siclerabh Iel>te de unas nlquinas a otras.
Hay (los fases en la 1resta cn nlarcha <lel sistema: la primer<l <le ell>rs cs particular
pal i> cllda>(iulna, y !a segunda es c aract crst ica del sistenta operativo U l l X . A a n lbas
spcl len(das sc las coocp <.onln:
S< cupn< i'l de llrran<iue (llool) <le la BO.'(l.

Sc< u< ncia de arranque clel sistenla opcrativ<> l'ivIX.

1 2.1.

L a s e c u e n cia de a r r a n qu e de l a R O M

El programa de inicio clc calqui< r or<lclr(lor. siclpr'C Pst,i allacen'ln <'ll n'l IP.
loria HOAI. Es Pn Pstll lclolla (lode el procesador colicrlza a leer <ligo co objeto
<l<' j< (tarln. Este cdigo < s caracterstico <lc < a<ll> tii)o <h <>r<l(l1<)r. El pr<>grala <le
:>rranquc selc realizar;l <.onlprnbacinde t<>do Pl hardware <lel sistema. Si tod<> Ps < o
rrc< t, lo qP har a cotilla< in ser IP< r >l<l discon pn)grarna < argacl<>r, <pie cargar en
n>eloria Pl nlclcn dc UlvIX y ii al>Pt(' IP pasar' Pl control. El archivo que contiene el
llclen <le U>XIX rlornl llmente se allrlacena Pn Pl dirc< torio raz riel sistema dc archivos y
p e<le te< r distitosomhres. Los nolnbres mst i lizadns pcdcn s< r Ul) IX. vmli n u z ,
vmUNIX. image o zimage, l edad ncrrir qc rlo qera>nos cargar <. l sistcnl l operativo dcsdc
(1 disco: pnr ello, la mayora <le lns progran>as de arraqe cn HOII conlprupl>arl dc algrn
lo<lo si qucrcnlos hacerlo desde otro dispositiv<> (una cinta. ua ui(la<l <lc CD-ROI(I,
>la tarjeta clc rccl. Pt('.).

304

C A l T L>LO 12. PARADA Y A R RAIV()l L DEL SISTEcilA tJ>VI)(

Qi RA-!c l A

12.2. La secuencia de arranque del sistema operativo

UNIX
C ita>i(ln cl (" l i ga<lr suftivarc i i i c nz;c su ejeciicinn. n iestr;> uii u i ( i i s,ije s i m i l ;ir ; i l
sigiiiei>tp:

Booting UNIX system


y carga cnturices el nil('<) <lel sisteruc> op<'rativn eii la meiuria de lci inqina. El carga<l(l>
sl)ft(vare ('p(lpr l<lego ( l ('nilt rol al i i i><'leo rcciii < arga(lu y < I sistrni;1 f '. c IX cc>iieuz;i 'I
ii>i< i;irs( a s risic> laiizadu el l)rocesu /et c / i ni t . A i n i t s <. Ie c<>iiuc( < umc) el pruduciui
ger>eral <lp 1)rc ><
('s<). ya qii<' cs pl l)riii>('r l>ruso r eal que se (je< cita ('11 cl sisteia. y s(
puc dc vcr c(>ti) el parie1( ns r< in<>lo cle tn<lns lns de>r> prc>< esos. init t a r 1>in esii;I
onl<i quc ej(ci itccrenios c>>a>ido sea necescu i ('cii>il!iar el n i vel cle ejec< iri. El p r u ( ese l
i ni t t i c P co>u d(srriptnr l proceso (PID) el n>ll(iu I .
En todo irinmento el sisteriici UVIX se ene>>entra ei> un <l(terriiiii (du iiivel cle Pjc< iici(>ii.
El nivc.l de ejecuciii (le iina 1quina <1< tcrniiiia iiuriiialniei>tc <'ntos y qu usuarios se
pueden (nncctar al sistema. Por <'jcmplu, l i iiuquiiia p<'d(' estar <lispuil)le para toda la
conii>ida<l dc usu irins (nivel d( ejecucin mulii>isriarin) n para u>i<> solo, 1>urialmetc
el a(lriiiistraclor d('1 sisterria (nivel (lr ejecucin inusuario). S(' p>red('ri <llsci>ar c)trc)s
iveles de cjccu(iii para que sp ot)t('irga (receso s<)ln a travs dc. piicrtus cape(fi(o, pc)i
ejc: mpl<), Eri lr>s versi<>cs cl(' l.'~ IX 'Systcni c' ps pusil)l(' drfinir varios iiivclcs ole ejcccinri.

IJn iiivel de ejc(ucinn sc define pnr cualqiiic r <lgitu <lel tl al t?. Al utilizar uii argiirrieiitc
cori ini t ( >mero cajel () al 6). se c;irhia c I iiiv<.1 de ejecuciri del sisteni>i Pspecificci(l<
pnr este >irguriicrit<). Ciiai>dn invncaiiius a i n i t

< l e este mndn. ste explorarc el archii <l

/ e t c / i n i t t ab l > i i s caridu t u d cls clqu('llr e >ll.la<las q>1P ('0111('>di(ll (.'(?Il Pl l>1>evn ili vc l d c

c jc < iiciii ( ii><. Iuyeiiclu todas las entra(l (lit<' snr> vli(ls par > todos lns niveles) y ( j< ci i t;i
Iris rdeiies aso(iad . C e n ( r a l niercte, cl nivel dc < je( uciri 2 sp iit i l iza par i I;i opera( ic>ii
rii ltiusiiari<>. Corii< > <
urisec ii< iicici. 1)ara cambiar < 1 sistc 11>a <le>c)i>niisiiario a i i>iii t ii>si>>il l<c
<-l <lministrador iritru<liicir> la urdeti sigiticntc :
! ini t

Col l>o I E%ltadu, aqu('.llas <-'i>t ra(las de /etc / i n i t t ab que sori vlid para t u<los los iiiveles
de Pje(ci()n. as <.nmn aqellc <p>< tenganii 2 cn el carp<> de nivel in i t . E l rc>s>ilta<lcc
t pico d< itruclucir I iiivel de ejecucin 2 es la prod u i ri <le los pruesos gett y e i i
las lneas de terii>ial y la < jc<ucit> d(' distintos pro<.esos <le sisteiiia para estal>le<;er c l
cuturo dp tral>ej<>ilt iusuarin.
P<>r lo tcintn. Pl nivel d< ejecuci>n <le uri sistem>i I.'XIX est coiitrulacl<> p<>r init. L r
acciniic de ini t e s t ll, '1 su v( z, cnl>trnladas por cl archivo / e t c / i n i t t a b . V e reriios lus
coritaidus y foriiiatus dc' est( archiv<) y rnn i>t iliza ini t e s te> infnriaci para cutrul;ir
P I ll>v('I c Ic PjPci'i(l> <l(' l(l lllrqlii i l a .

1 2.3. LOS CAMPOS DE /ETC/ll I TTAB 8 0 5

12.3. Los campos de /etc/inittab


Cada lnea del archivo /s t c / i n i

t t a b e st formada por cuatro campos separados por

ilos puntos. Se pueden introducir lneas de comentarios siempre que comiencen con el
carcter !. A los distintos campos los vamos a identificar por los nombres siguientes:
id : nivel : accin : procesos
l n ejemplo de archivo /s t c / i n i t t a b p o d ra ser el que figura a continuacin:
! cat /etc/inittab
! inittab para el apollo
is:2:initdefault
mx::sysinit:
r c::wait :
co: : r s spcwQ:
01:23:r e spawn:
02:2: r e spavn:
03:2: r e spavn:
0 4:2: o f f :
pf::poverfail:

El primer campo de /etc/inittab es id. Elcampo id consta de uno o dos caracteres


que se utilizan para identificar esa lnea en el archivo. Se advierte que slo se utilizarn
caracteres alfanumricos para crear los valores de este campo.
nivel es elsegundo campo de /etc/inittab. Este campo defme el nivel o niveles de
ejecucin para los cuales la entrada es vlida, Los valores admitidos son:
i Un n mero del 0 al 6 o una combinacin de ellos. Se permiten valores mltiples en
este campo, en cuyo caso indican que la entrada es vlida para todos los niveles de
ejecucin listados.
Un campo vaco, lo cual implica que la entrada es vlida para todos los niveles de
ejecucin de init.
Si el valor de este campo corresponde con el nivel de ejecucin introducido, i ni t e j ecu
tar el proceso del cuarto campo (proceso), teniendo en cuenta la accin especificada en

el tercer campo (accin).


El nivel de ejecucin 2 se utiliza normalmente para definir el modo multiusuario. Todos
los dems niveles de ejecucin disponibles pueden ser definidos por el adininistrador para

propsitos especiales. Si este campo se deja vaco, se indica que la entrada es vlida para
los niveles de ejecucin del 0 al 6. Por ejemplo, suponganios que se est utilizando el nivel
de ejecucin 2 (multiusuario). En este caso. siempre que se cambie el nivel de ejecucin
del sistema a 2 (i ni t 2 ) , slo las lneas con este campo a 2 o vaco sern procesadas por
in i t . Siempre que se modifique el nivel de ejecucin del sistema, a cualquier proceso que
no tenga un valor en este campo que sea igual al nivel de ejecucin introducido se le enva
una senal deaviso y despus de cierto periodo de espera se le mata con kill.

306

C A P T UL O 12. PARADA Y ARRANQUE DEL SISTEMA,IA UNIX

RA-),IA

Asignaiido uii iiivel de ejecuciii distinto a. Ias lricas <le terminal (por ejemplo, nivc.l
e ejecucin,'3 al /dev / t t y 0 p i ) p o denios coritrolar el acceso al <.onipiitaclor. Podra s< r
rtil. por ejemplo. para desconectar lgicamente ciertas lneas de terminal, excepto st;i.
para el iiivel e ejecucin 3.
El campo accin es el tercero de uria entrada cle in i t t a b . Este campo contiene iiria
palai>ra clave que le <)ice a init c>iri<>
jecutar
<
el proceso especificado en el ciiarto cainp<>.
En otras palabras. cada proceso que ejecuta ini t l o puede liacer de una forma clc teni;i
da. Por ejemplo, para algunos casos puede ser deseable que uii proceso sc coinplcte aiites
de que ini t e j e ciite otra furici<i, para otros puede ser deseable qe ini t a r r a nque irn
proceso y l<r go arrarique otros riiieiitras el primero to<lava no ha terniiria<lo. Los valore.
qilp se ppirllltpir pala l a i l c ciri soll:

respawn Esta a<cin ordena a i ni t q u e si el programa implicarlo en el campo proceso


no est activo, deber ser activado, i n i t n o e s perar a <Ie termine. y c<l>ll<o
el proceso niuera lo volver a arrancar. Si el proceso existe cuando se introdce < l
nivel de ejecucin, ini t n o liar nada y continuar buscando en ini t t a b el siguicte
proceso a ejecutar.
w ait C o n esta etiqueta. i n i t a r r a ncar el proceso y esperar i i u e t erniine. Si i n i t
vuelve a leer ini t t a b dc nuevo mientras se enciieritra en rl mismo nivel de ejecuciri.
la entrarla se ignorar .
once Coii esta opciii. i ni t a r r a nca el proceso y no espera a su terminacin. Crran<l<> el
proceso inuere, no se vuelve a arrancar.
boot E ! p roceso se ejeciita slo cuan<lo ini t l e e i n i t t a b a l r ealizar el arranque (I>oot)
clel sistema. init a r r a ncar el proceso, no espera a qiie termine, y cuando muer< no
lo vuelve a arran< ar.
bootwait E l p r o ceso se arranca solo criando ini t l e e i n i t t a b en el arranque </el sisteni i.
ini t a r r a nca al proceso, espera a que termine y no l o v uelve a arrancar cuaii<l<>
muere.

powerfai l E l p r o ceso se arranca slo cuan<lo ini t r e c i b e n a serial de fallo d<' alimen
tacin. ini t a r r a ncar el proceso y no esperar a que terniine antes de continiiar
l eyendo in i t t a b .
powerwait E l p r oceso se ejecuta slo cuando ini t r e c ibe una serial de fallo de alinierita
cin. ini t a r r ancar el proceso y esperar a qc termine antes de continu<u leycncl<>
i ni t t a b .
o ff I ton esta etiqueta, si el proceso asociado se est ejecutando actalmcnte, i ni t e n
viar al proceso rina serial de aviso y <lespus de esperar 20 segimdos lo n<atar. Si el
proceso no est en ejecucin cuando se introduce el nivel de ejecucin, la eiitrada se
ignorar. of f se utiliza tanihin para desactivar una entrada iirante algrrir tienip<i.
ini t d e f aul t E s t e valor determina el nivel de ejecucin inicial de la mquina despus clel
a rranque del sistcnra. Si err i n i t t a b n o existen entradas con valor i n i t d e f a u l t ,
ini t p e dir al operador que proporcione un nivel de ejecucin despus del arrariclii<
del sistema.

~>c RA-1<I A

12.4. Acc I D NEs DE INIT DEspUs DEI. ABBANQtJE

30 7

sysinit init ej<.cutarlos procesos con esta entrada antes de acceder a lii consola del
sistema. i ni t a r r a n car; el proceso y esp<rar a qiie terriiine antes de contii>ar
I c vend<> init t a b ,
El < iiarto campo de i n i t t a b e s el campo pr o c eso. Este cari>po contiei>e el programa
UNIX que se ejecutar ciiado se introdiizca el correspondiente nivel <lc ejecucin. La
orderi correspondiente de este cainpo sc ejecuta (va exec) y pasa a un shell liijo de la for
ri>a sh -c
ex e c c ommand . Pueden introducirse comeritarios en este canipo hacindolos
preceder con el carcter !.
Por ejemplo. Ia siguiente lnea de ini t t a b cr ean proceso hijo gett y . con i n i t c o riio
pro<.eso padre.
02:2:respawn:/etc/getty -h ttyS2 9600

1 2.4.

A cc i o n e s de i n i t d e s p u s del a r r a n q u e

Despus <le que se a< tive el proceso init , al terminar la carga del m<:leo de UNIX en la
HA51. ste comienza a, explorar /et c / i n i t t a b p ara buscar una c ntra<la etiquetada como
ini t d ef aul t e n el canipo accin. El nivel <le ejec>rciii asociado con <~ta entrada ser el
riivel de ejecucin inicial del sistenia. Si no existe una entra<la cori valor i n i t d e f a u l t ,
ini t p e d ir al aclministrador qe especifique >m nivel <le ejecucin inicial.
Si existe algui valor sysi n i t . I os proceso de esa entrada se ejecutarn antes de que
ini t i n t e nte acn der a la <.onsola. Estas entradas se utilizan para inicializar clispositivos
sobre los cuales ini t p o d r a realizar la peticin del riivel de ejecucin.
D espus de entrar en el nivel de ej<~ uciii por clefecto. ini t e x p l orar i n i t t a b p a r a
encontrar todas las entradas n>arcadas corrio boot o boc>twait en el campo de accin. Se
eje<.uta cualquier orden asociacla con estas eiitraclas.
Despus del procesarnieiito de las entradas boot y b o ot wa i t , i n i t e j e c uta todos los
procesos asociados cori el nivel de ejeciicin iiiicial.

1 2.5.

E l a r c hivo / et c / r c

Con>o ya hemos visto. siempre qiie se canibie el nivel de ejecucin de la m<Iina con
ini t . se lee el arcliivo / e t c / i n i t t a b p a r a buscar eiitraclas que coincidan con el nuevo
nivel <le ejecucin. Una de las entradas de ini t t a b puech. llaiiiar a /e tc / r c . Tal y como se
suministra. este archivo se llama cada vez qe se canibia el nivel de ejecucin del sistema
UNIX. A continuacin se citan ciertas furiciones realizadas de forii>a gerieral al ejecutar el
archivo /et c / r c , anqiie hay qiie decir que esto piicde diferir considerablemente de unos
sisteiiras a otros.

Se define el i>oml>re de la mquina.


Se cstablec<n la feclia v la liora.
Se verificar> todos los sistemas <le arcliivos.
Se irionta los sistemas de arcliivos.

308

C A ) ' T U Lt ) l2 . P A RADA Y A l t RA)BAQUE L>FL SIS l'E51A l')vly,

RA-)<t><>

Sv- activa el h>ter(a>ubiu <u < I disco (su ap).


Ll ama a syncer para sincronizar <.l disco (actualizar vl < ontvidu de lus bullera <l<
ntr <(la salida y evitar la incoher<n< ia <le datos).
Se borran lus archivos d< directorio /tm p.
Sv inicia vl <lemoio cron. Fstv proceso se utiliza para avisar a otros prus os <l<
<letvrn>inados ('ventos asociados al t iempo.
Se inician lus aspv<.tos relacionados co<> la in>presin.
L 'na vvz quv rc ha < otnplvtado stt ejec<u.iu. devuelve el contr1 a ini t .

1 2.6.

P r o ce s o s g e t t y

Los procesos gett y se emplean para ate)ler las posibles lfi>vas serie que controlan
cada unu de los t<>ruuualvs del sistema. Cada proceso getty realiza varias funciones, tales
c omo establecer las opciones del tvrminal, imprimir el conteni<lo del archivo /et c / i s s u e ,
in>prhuir el pro><ptdv lvyin, esperar la entrada, y por lt i n>o, llau>ar al pr<>ceso login.
Antes d<> es(> vstal>lecer la velo< idad y tipo de tert<unal cun < l qe va a tratar, La sintaxis
de esta orden gett y es la sigui(.ut< :
/etc/getty [-h] [-t x tiempo] linea [velocidad]
E l argumento nv(esariu es lh>ea. quv ser el uu)bre del archivo de dispositivo y q u v
parvc< en /dev. El resto >le l<>s parn>etros s<><> optativos.
Opcionvs:
-t x

' dv x t i e mpo se
t i e mpo Si ge t t y h a <>1>ivrto la lnea y nadie tvclea nada dvspu<.
gundos. gett y t e rndnar.

-h lv<> provoca una para<la en 1< lin(.a hasta que esta)>lezca Ia vc-'1<>ridad s<>licitada o 1<
vstablccidpor defecto.
Velocidad M a rca una defird< i de vvlucida<l en < l archivo /et c / g e t t y d e f s. Eu < l ar
(hivo i n i t t a b del ejvnq>lo utiliza>os una velocidad de .q.f>01) ha<<dios para los ter
n>inales cableados dir<w tan>ente. l'r defe(to valdr 3()() baudios. Cumu pod<utos
observar. <stus procesos gett y t i enen con>o eti<p<vta <lv se< i<>t> a respawn. c<> 1<>
que cuando el proceso gett y t e r n dnv (al prov<>var el usuario un lo<gont) se ejecu
tar otra vez la vntrada, y v>lvvr a aparecer el />r r>rr<p/ del /o</i><.
Con<u heuu>s idicadu. el archivo / e t c / g e t t y d e f s se ut iliza p <ra indicar a gett y <.uu>
dvh<' funcionar. EI formato dv cada <u>t rada vn el archivo anterior vs el siguiente:
etiqueta ! modificadores iniciales ! modificadores finales
! prompt de login ! siguiente etiqueta

12.<. AijRANQUE EN LINUX

RA->>IA

309

C>la entrada puede ir r n n a o e n v arias ln<as. Cuan<lo gett y es invocado, trata <1<
probar ruj es j entrada que le <orrespon<lc >nirandn las etiqctas. El < a>npo corres
pon<lient<' a lns >o<lificadnres iniciales determina cn>o sc ha de progran>ar el terminal
<rrespnn<li< ntc hasta que se ejerute rl login, El ca>po <le modificadores finales dcter>ia
<'n>o s<' h(> de programar cl ter>ninal una vez que logi n ha sirio ej<cutado. Es neres >rin
rrpc tir la velocidad tant<> para los n>odifi< a<lores iniciales ro>no para los finales. El cuarto
<an>po contiene el prompt <ie togi, El lti n>o can>pn cont,ien< la etiqueta de la entrada
que debe sustituir a la actual en caso <ie recibir un f>rea/>'.
Seguimos ahnra explicando el proceso de conexin que int<.rrun>pin>ns para hablar <lel
ar<hivo /etc/gettydef s. Nns habamns quedado en el momento <.n que getty llamaba a
/bi n / l o g i n cnn un argumento. Pues bi< n, este argu>ne to ser>i el nombre <iusuario que le
<lamos con>o respuesta al pr(>tr>I>t<le l(>g>nq ue nos l>a n>ost rarlo getty p or p>u>talla. login
>airar en el arrhivo / e t c / p a s sd 1>ara (nn>pro)>ar si existe <lirho nombre de usuario;
continuarin, n>nstrr el pm>npt <l< pass><><>r
(t para que le intrn<h>zra>os la rl >ve de
<>ccesn. U na v(z <on>probada la clave, login ( jecutar dns llamadas al sistema. setu i d
y set g i d , l'>s cual(s asignan a los n>n>ema dc i<lentific >cin de grupo y usuario> tanto
r<lcs como efectivos. lns valores que aparecen en lns ca>upos <ie n>nern <lc identificarinn
<l< usario (user - I D ) y n >nero de i<ientificacin de grupo ( g r oup - I D ) c n l a e n t rada
correspondiente del ar< hivo /et c / p a s sd. A continuacin. logi n < a>nhiar del directorio
a< tual <ie trabajo al <iirrctnrio borne que aparece en /et c / p a ssvd, ejecutando la orden que
'>parece en el >ltimo ca>npo <ie <lic'>o arrhivo (generalmente el sh<ll), usando la llan>ada
al siste>a exec. rnn l o qu e el shell sustituye al p r oceso l o gi a c on>o proceso que sc
<.st jecutandn en este n>omento en la t abla de pro<esos del n>cleo, Seginflan>ente se
ejecutarn lns ar<.hivos de login local y global, y por fin aparrcer el prornpt <iel shcll. con
ln qu< ya pode>uos con>enzar a trahajr,

1 2.7.

A r ra n q u e en L i n ux

Como caso particular vamos a comentar el proceso d(. ;>rranque en el siste>na Linux.
El proceso (ic arranque en Liux s similar al dc ot ros sist(n>as UNIX. Inicialmente sr
realiza la secencia d< arranque (ie la ROI1 y seguidan>ente se carga cl sisten>a oprrativo
en memoria. Linux dispone <lc un gestor de arranque n B(>oi M(>n(>gerque nns permite
defini. <..n caso de ten< r varins sistemas np< rativos en la mquina. cul cs el que desean>os
iniciar cada vez que ponen>os el or<lena<inr en >nar(ha. l'ara las versiones 13>16 de Linux.
los gesto>es dc aanqu(' >ns >>t>lizadns son LILO (LIn>LT LO(>(tel') y GRUB(GR(>7><t Unifie(t
Bootlo<>der). 1,>n vez que optamns pnr iniciar I.i>n>x. saldr pnr pant >lla una ristra d(
n>ensajes sin>ilar a la siguiente:
Linux version 2.6.5-polaris2.6 (rootCpolaris)
( gcc ver s i o n 2 . 9 5 . 4 2 0 0 11002 (Debian p r e r e l e a s e ) )
tt1 Wed Jun 2 1 2 : 2 3 : 5 5 CEST 2004
BIOS-provided physical RAM >ap:
B IOS-e820: 0 000000000000000 00000000000a0000 (usabl e )
B IOS-e820: 00000000000f0000 0000000000100000 ( r e s e r v e d)
BIOS-e820: 0000000000100000 000000003fff0000 (usable)
BIOS-e820: 000000003fff0000 000000003fff3000 (ACPI NVS)

310

CA P T U LO 12. PARADA >' A14(A!v>QUE DEL SISTE),IA Ui%IX

RA-1<IA

BIOS-e820: 000000003fff3000 0000000040000000 (ACPI data)


BIOS-e820: 00000000ffff0000 0000000100000000 (reserved)
Warning only 896MB will be used.
Use a HIGHMEM enabled kernel.
896MB LOWMEM available.
On node 0 totalpages: 229376
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 225280 pages, LIFO batch:16
HighMem zone: 0 pages, LIFO batch:1
agpgart: Found an AGP 1.0 compliant device at 0000:00:00.0.
agpgart: Putting AGP V2 device at 0000:00:00.0 into 2x mode
agpgart: Putting AGP V2 device at 0000:01:00.0 into 2x mode
cdrom: This disc doesn't have any tracks I recognize!
Debian GNU/Linux testing/unstable polaris tty1
polaris logia:
Tal y cou>o sc pue<ie apreciar. hasta que aparece cl tueusaje de log. sc nos muestr;>
gran cautidad de in f ormain rclaci<>nada cot> nuestro propio sistema. Un a n lisis d<
estos <ucnsajes puede aportarn<>s gra cauti<la<l dc inforruaci en cso de que el sistenia
n<> fut>cionc correctamente. La fortaci mostrada cn cl a r r at>quc pu<de volvcrsc
visualizar eu cualquier ulonlcuto utiliz<u>do la orden dmesg. Esta orden existe tatnl>i<>u cii
otras versiones dc Uh IX.

12.8. El arChiVO /etC/illittab


Para analizar cl proccs<> de arranque <lcl sistema <>pcrativo Lim<x exau>i>la>cm>os 1s
entradas del ar< hivo /et c / i n i t t a b , y a pitrtir <le ellas deducir<unos cu>o se ll ' a < .al><>
<sta opcracit>. El proceso que vamos a desarrollar po<lra ser utilizado de mo<h> si>uilar
et> ot.ro sistc>uas U.IIX. Uasicau><ntc disponemos dc la puuta del hilo, y t i r ando de <'l
descnr<>llare>uos tu<lo el ovillo.
En Liu<rx el proceso ini t c o n t r ola eu toclo momento cl modo dc fuucionatuiento del
sistetna glol>al a partir del arcliivo de configuracin / e t c / i n i t t a b . A c o u t i nua<iu se
nu>estra un ejemplo del co<>tenido dc este archivo:
$ cat /etc/inittab
!

! inittab This file describes hov the INIT process should set up
! the system in a certain run-level.
! Author: Miquel van Smoorenburg, miquels>1!drinkel.nl.mugnet.org
! Modified for RHS Linux by Marc Ewing and Donnie Barnes
! Default runlevel. The runlevels used by RHS are;
! 0 halt (Do NDT set initdefault to this)
! 1 Si n gl e u s e r m ode
! 2 Multiuser, without NFS (The same as 3, if you do not have netvorking)
! 3 Full multiuser mode

ig RA-MA

1 2.8. EL ARCHIVO /ETC/INITTAS 3 1 1

! 4 unused
! 5 X11
! 6 xeboot (Do NOT set initdefault to this}
id:3:initdefault:
! System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
1 0.0:va i t :
1 1:1:vai t :
1 2:2:wai t :
1 3:3:wai t :
1 4:4:va i t :
1 5:5:wai t :
1 6:6:va i t :
! Things to run in every runlevel.
ud::once:
! Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdovn -t3 -r now
! When our UPS tells us power has failed, assume we have a fev minutes
! of power left. Schedule a shutdovn for 2 minutes from nov,
! This doce, of course, assume you have powerd installed and your

! UPS connected and vorking correctly.


pf::powerfail:
! If power was restored before the shutdovn kicked in, cancel it.
p r:1234S:powerokvait :
! Run gettys in standard runlevels
1:2345:respavn:/sbin/mingetty ttyl
2:234S:respavn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2346:reepawn:/sbin/mingetty tty4
S:2346:respawn:/sbin/mingetty ttyS
6:2345:respawn:/sbin/mingetty tty6
! Run xdm in runlevel 5
! xdm is nov a separate service
x:5:r espawn:

$
Tal y como se puede apreciar, existen siete niveles rle ejecucin que citamos a continuacin:
0 se utiliza nicamente para detener el sisten>a.

se utiliza para realizar laboresde mantenimiento o correccin del sistema.


es un nivel de operacin multiusuario en el que no se inicia el sistema NFS (,Netu/ork
Fi,/e Sl/stem) o sistema de archivos en red.
es el tuvel normal de ejecucin, en l se inician todos los servicios incluido NFS.
no se utiliza.
lo emplearemos si queremos iniciar el sistema con una interfaz grfica.

312

C ' A P TLILO l2. PA RADA Y ARRAVQUE DEL S!STEhIA IJIVIX

Pc Ir A-i%t;))

6 sv. cni p l v )i p , 'll<i l'cll ( ' i al ( l s i s t ( '.lila.

H i j<> la vtiqiicta sys i n i t y p a r a t (xlos los niveles de ejecili<>ri. se cj(icta vl prr>grama dv


sli< ll /et c / r c . d / r c . s y s i n i t . A n a l i zandn est< al( hiio podeirios ;q)rciar. qu op( ra< invs
se ll< v>ui ;vaho. B si(aieiite estas opcr u innvs las rcsuiiiiios a (oiit i niia< i<i:
Sv d( fiiie la v iri i! >l<. PATH para (stahlv< rr lns < aminos cle hlsqucd i,

S < cniprii( l>a si liay rvd instalarla vvrifi(an(fo si existe el ;ir< liivo /etc / s y s c o nf ig
/network, y si vs as. se act.iva <letvriiiiii;las varial>ls qu( ii ) f orman snhr<. vl h< ( li(>
dc I( c r

l a r e d a ( t ivada. el i l o m h r (' d (' ! Or<l('rla(h)r o v l l l l l ) hr v <1('1</ut<'u)<li/ ('lltn

()I l'aS COSas.

S e a< t iv<i vl )rva dv. inter< amhio o su)<lp con la, orde)i swapon -a .
Eli as<) d( <lispolivr (le una red s<' d('filivi) tanto el oi!)rv del ord(.ador c<>io <'I
d v! <lnlllilliu .

Se realiza i ia lii i i p i (z l <1(l sisteina <le arcllivos ell caso dv s<rc(vsarin, por cjelrll>l<>
cniiin (ni)s(x ueri( ia d() apagar cl sistvnia (h. ri niodo incorrecto.
Si < l sistviii;i d<. arcliivos r;iz es correcto, sv realiziu. uii inoiita jc d cl n i i s mn.

S c iiu>iita otros sistenias <1( ar< hivos dvfiiiidos (li / e t c / f s t a b .

Se a< tivan I;Is (untas <l <liso(> si las tvncinos a<tiva(las, De este iiiodn s(. pued<
liiitar !)I caiitidad de disco asociada a cad i usuario.
Se ('ii)i linan !Os pnsil>l< s ir < liiv<>s t viiiporal<'s o (l( hloqu('() q)iv filvr()n crvadns vil la
I I I t l lila svsl() I I.

S e a(t i v ,i (l r e l o j .
Sv i i( iii l))s lric<l serie.

S< a< ti(1! g ( 'nvrad<>r dv niirl< ros alv;itnrios.

En el archiv<) /etc / r c . d / r c . sys i ni t p o d r c nios iiicluir cual<piivr otra nrdvir qv (leseeios


< jv< tar. para todos l<>s llivvlvs. vn cl arrariquc dvl s istcra.
llila vez pro< esado (l l r c h ivn / e t c / r c . d / r c . s y s y s n i t , i n i t c ( >tinia aiializ;lri<lo las
s igiiiviit( s en t r a d as. Esta vrit r(i(las las for la)i i i ria serie d< l vas ct i q i i vt adas <.Oii wai t .
l as c)iales d< p(ui<livii<lo dcl ii ivel d(. ejecuci(>ii <ll.firiido por l l e t i q i ieta i n i t d e f a u l t . j v

ciitan (..l prngraia de sliell /e t c / r c . d / r c pa s adle coin l>araretro el propio riivel dv


ejecucin. Coln (oiise< uericia dc ello. rc ejecutara ot,ros programas de shell incluidos ('II
lns siih<lirv(torios rcO.d. r c i . d . . . . ,rc 6 . d . Ca da un dv estns su!>directorios coritieile d(
lllndo (spvcfico (;lcs sn las nrdvncs quv dcsvamns vjvciitar para cada niv('! dv ejeni
ciii, Es pnsil>lv ariadir nuevas entrarlas (s/lell scripts) vii vstos suhdirvctnrios para dvfinii.
,iqilvllas utilida<l< s quv d(av linos activar vn < ada iiiin <lv los <listilitos niveles.
13ajo Ia vtiqiita once sv eje(uta e! prograia / s b i n / u p d ate . Cori l se optiiiza el
ii)ar)<jn de los /)l(J)era iilterine<lios y con vilo se mejor'l el rvndiliento glnhal <lel sistelrla.

Rc HA-.'(IA

l2.9. Il?FlTll ICAI?ORES PID Y GID

3 13

La lrica etiquetarla con ct r l a l t d e l e s exclusiva dcl sisteniaLiiiirx. Ciran<lo se pulsan


. iriiiiltricaruvnte l;rs te(la Alt+ C t r l + D el, sc invora al prngrariia shutdown que provoca
la fiiializarinn clvl sist<; rria. Dv este modo. tal y r oino n( iirre rori otros sistvinas operativos
qii< sv ejenitan l>ajo plataforma 38, esta cnmbiriacin de t<.c las provoca la finalizacin
d( l sistema.
Las dos lneas etiqiivtad rs coii powerf ai l y p o w er okwai t s v cuiplvan para invo<ar a
la nrd(.'ri shutdown. La primer<i para apagar el sistema si s( deterta iin fallo dv alim('nta
ri<)n y la s(.guirda par;i ( uicelar vl proceso de apagacln si se <lete(ta que la alinin i t acin
vsr; cnrrertanivnte r(stauracla. !(f s adelante vvrenins iin ej< mplo dc cnrn utilizar esta
l'irnrionalidad.
Las sei liic as etiquc t <<la <nn respawn sirven para ii( iar lns tvrmiales virtuales para
<lifervntes niveles de arrariqiie con la orden /s b i n / m i i iget t y . Los termiriales virtuales de
Liuiix soii aq('llos a lns que se arce<le p)risa<ln Alt+ F I , A l t + F 2 . A l t + F :3, etr. <desde
mn<lo texto. iio l>ajn X D ' i ) ido)v. Fl i isn clc termialvs virt i ialcs permitv t v i ivr abiertas
distintas sesiorivs LrilX en i i n n ico nr d n ia<l<>r. De este i o d. vn ca d a n o d v e l l o
poclrenu)s rciilizar diferentes accioi)vs.
l.a iltiiiia lnea se emplea p;ira iriiciar la s< siri l>ajn eritoriio grfico, Eii ella sv arranca
<'1 prngr ui>a pref dm qiie cs uii .shell sciipt qc permite detcrniinar cul dcl)e ser nuestro
Disploy /ll<i>i<iyer (gdm. kdm o xdm).
N osotros pn<3(mos ana<lir riuvvas Lricas al archivo /et c / i n i t t a b p a ra. qv cl prn so
de arraricliie sva vl <lefiiiido por nosotros. Pnr ejemplo. pii<dc svr iutercsaiite colocar ii
t vrrniri il covctado a la lncri seri< . La sigiii< nte lne;i sirv< para pvrniit.ir esta convxiii
<lc foriua aut<>riitica par;i lns i vvlvs 2. 3, 4 y .
SO<23456:respawn:/sbin/getty ttySO DT9600 vt100

1 2.9.

I d e n t i fi c a d o res PI D y G I D

Cacla proceso cn un sistniia UlIX t.ieneii iiimero idvirtifica<lor dvuoniiiiralo PID. el


c))al cs nico para cada proceso, Exist( otro id( i i t i fic;idor dviiominado PPID qu(' aliiiac(11'l
el id< ntificaclnr <lvl proceso p;idre. Ar)>os se alniacniaii en uii r a clv d'(tos clcl sistc.m'i
np<.rativn caract< rstira dr cada prc>ceso dvl sistvrna. Si riiiestro proceso queda luirfann,il
runrir vl proceso I>adr< . cntoiices <.l nuevo pro< eso padre ser ini t ( c ))yo PID es vl I). Di( ho
clv otro niodn. i n i t a <lnpt;i a tndos los prnccsos hurfans. I(f(-iris vercs iniplvnientariios
ii siihsistcuia (o)un ii griipn dc pro< vsns relarinn;idos nitrv s vn liigar <le <iii solo pro< eso.
El i< lv<> pcrrriitv ;i estos prncesos rvla< innados ciitre s estar nrgariizii<los ('u iiii grupo <lv
pr<.icvsns, doir<l<' uiio <1< Ios proces(> s( r' el ld( r del griipo y cacla imn <l< lns procvsns qiie
forn)an cl griipo guar<1>ir; c l PID dc < ste l<lc-r (<Lvrrninirradn p>oreas-yroi<I>-ID), Ad( rii,
uri griipo de p r ncvsos pii<d< tiivr ii u t e r ri iirial <le <nritrol, que scr; el p r i riicr t v r riiinal
al)iertn por el pn >cesold< r d<.l griipn. i<>nri>iliirerrte. este tcriiiinal de control para los
prnrvsos de iin usuario ser cl terminal por vl c i<al iriici la sesin, Ciiaricln este proceso
lder inure. enva a t<>dos los procesos clel griipo uiia scn;il d< hangup. qiic. i m enos qrie
sca, 'itrapada o igrinrada. provocar la. hn ilizacin <1v todos los prorcsns dvl grupo. As.
<ii nido i i u s u arin provoca iin lo yo<it (finaliza vl p roceso corrvspoiidivnte al i n t rprete
d( <>rdvncs. qe vs gcneralnivntc cl L(lvr del griipo de pn>ccsos). sv linipia t<>do par<i la
eiitracla del siguiente usuario.

CA P T U LO 12. r ARADA Y ARRANQUE l)EL SISTE)v1A Ur IX

314

1 2.10.

RA-l>>fA

P a r a d a del sistema U N I X

La pai'ada del sistenia pue<le scr iiecesaria por divers<>s niotivus: por ejeuipl<>. si que
remos desconecta< el eqiiip<> t<>taln>r><te o si iicccsitainos liacer ui>a c<>pia <ir seguridad d<.
los datos riel <iisco evitiuido iieiit ra taiito qiie 1<>s usuarios pu<'d>iii icceder a los arrhivos
qiie vaillos a giiar<iar. Al proceso <le pasar. cl sist< nia a Ii>o<lo >noilousuario (;q>arte dc qe
qrramns <lesronert>ir o volver a c;<rg ir el sistema) se le denoniina parada riel sistema.
Exist.en varias <rden<s y utilidades que nos pcrniitrn p a rar cl sistema, aiinque la i s
compkta y <st;n<lar es la <>rden shutdown.
La ordcii shut down provo< a la unir rte de lo procesos que se estii ejecutan<l<> e el
sistctna y lo s p r ogl"iillas dc los usllarios. <'amhia el ii ivel dc ej.stci<>n a nionousiiario.
desnioiita cualquier sistenia de arcliivos quc iio sea el raz (/ ) y v a r e< losufjers <l< l
sist< n>a. Cori esta ordeii podciiios de< irle, adm>s, <lue despu<'s de 1parada se vuelve< el
cargar el sistenia o q<ir se <lescoiiectr to t a liiiciite, Las <>pcioncs <le este prograina iniedeii
variar de unos sist en>as a otros; 1>or ejeniplo. cn el sisten>a Linux, para invocar a shutdown,
1>eisti< cori pulsar sirnultiieaiente las trr las Ctr l- A l t - D eh

sauaaowu,.'~i +- '

j P gi."

Sintaxis: shutdown [-rhf] [-t espera] [Mens]


Ejeiplo:
! shut down - h - t 30 0
(el sistema se detendr totalmente a los 5 minutos)
shutdown provoca cl cese de tu<la actividad dcl sistema. Para eje< iitar esta orden dcl>en><>s
estar col<>ado eii el directorio raz y coiiio n i n i i nistrador del sisteiiia.

()1>cioiies :
r Realiza uiia carga del sisteiiia auto<n;t ic;unentc <iesps de la para<la. Esta opcin h<
tilizeuemos ruaiido simplenient< queramos reinici;ir cl sisteniei.
-h Dcscoiiecta el sisteriia despus dc hi parada.
-t s e g

N i m rro d< scgn<los <tur <ichr esperar antes de realizar < ualqiiier artividad.

NOTA <IUY ll> IPORTANTE


No d esconectar nunca la m q u i na sin avisar antes al sistema con la o rd en
shutdown.
Esta iiorriia aiit crior es ne<.esario respetarla por r a zon<is <h' segiiri<lad. ya qii< el n<>
hacerlo piiede provocar la prdida de datos. A<le>n<L~. si Il<><lesronectamos el sist< ma
correctaineiite, cuando el sistema se inicie cle n<levo se dete<:tar que la ltima <iescoiiexin
no se realiz hieii y ser necesario roinprol>ar. todo rl sistrtna <.ie archivos en luis< a <l<
errores. lo cual provocar que el arranque sea ms lento rn el mejor dc los casos. En ei
peor. po<1rrmos h;il>< r prrdi<io i>>forma< in valios>i.

12.11. INIT Y LA GESTIN DE ENERGA

g It.-l<IA

12.11.

Sl 5

I li i t y l a g e s tin de energa

El proceso ini t est preparado para reac<.ioar cuado se detect ( un fallo en el sisten>a
<lc aliretaci elctrica del sistema. Si cosultan)os la pgina del n>aual de ini t ( m an
ini t ) , observaremos que existe un proced>ie<>to para gestionar di<.hos fallos de tensi<nl.
Si ini t n o se encuetra en m<><lo rotloUsUar>o v>eii ><la sefial SIGPWR, se pro(eder a
1(<.r el archivo /et c / p owerst a t u s . Dependiedo de su cotenido. ini t t o n>ar ua accin
< lt er>iada:
F(FAIL) L a tsi(>t> de alin>etacit> h > fallado. Se (>tic>>de que el SAI est proporcionar>
do e ese n>omcnto la tesi <le ali>ncta<inemara para rnat(cr el sistema
e marcha duratu ti e>npo que d<'pende de la capacidad <lel SAI. En estas con
<liciones ini t j < utar las accioes <orr<spotrlientes a I;<s etiqu( tas powerwait y
p owerfa i l .
0(K) L a t ensin d< alimcntaci<n> ha sido restabl< i<la. init
d i(tc a la etiqueta powerokwai t .

e j ecuta la accin correspo

L(OW) La te>>si <le ali>etaci<)n ha fallado v la batera dcl SAI se ece>>tra baja de
carga. Es necesario qe ini t d e t enga la mqia <. Uanto antes ejecutado la a< cin
c orrespondi<u>te a la etiqeta powerf ai l n o w.
Si cl ar< hivo /et c / p owerst a t u s no existe. sc etiende qc la tensin ha fallado. es decir.
asun>c quc cl < otenido dl archivo es F(AIL) .

12.11.1.

Ej e m p l o de implantacinde gestin de una SAI c on i n i t

S>lponganlos p'ua cal< ejelplo que exist(' (>a tUb( l'a llanlada Ups des<le. la obtcllnls

ifor>a(t> acerca dl estado de un sistema <lalin)etaci)n iinterrumpida (SAI). Para


( n ar la t>d><'.ra utiliza>os la orden:
$ mkfifo ups
$ ls - l
p rw-r - - r -

1 osca r

Usuar i o s

0 nov 18 1 2 : 4 5 u p s

El hipottico fabricante dc hl UP S d ice cn su maual que su softrvare escribe en esa


tb(ra dos tipos d( o t i fi<acion(s:
FALLO Cuado se prolucen fallo de aln>(>ta(in,
IIEST Cuan<lo s(' ha resta(>ra<lo la tensi de alimctaci.

Podn>os escribir un shell scri/>t que se (u><argtle <1e gestionar estos eventos v acte e
cosececa.
!Comprobamos que no exista el fichero /etc/powerstatus
!Si existe lo borramos
[ -f /etc/powerstatus ] && rm -f /etc/powerstatus

316

CAP T U LO 12, PARADA Y ARRANQUE DEL SISTEMA VNIX

while [ 1
1 3
do
R ESUL~ cat u p s
echo $RESUL
case $RESUL in
FALLO)
echo "Fallo de alimentacin"
echo "FAIL" > /etc/powerstatus
kil l - S I GPWR 1
REST)
e cho "Tensi n r e s t a u r a d a "
echo "OK" > /etc/powerstatus
kill -SIGPMR 1
t

esac
done
Como se desprende del programa anterior, lo p r i mero que se hace es comprobar qe
no exista accidentalmente el archivo / e t c / p o werst a t u s , y s i existe se borra. Luego el
programa, de forma indefinida, lee de la tubera ups y, dependiendo del valor ledo enva
l a seal oportuna al proceso ini t .

1 2.12.

M ed i d a s d e segur i da d en u n s i s t em a U N I X

Como administradores de un sistema UNIX d ebemos mantener su seguridad global.


Aparte de hacer que cada uno de los usuarios mantenga su propia seguridad (modos le
permiso de sus archivos y directorios). el administrador debe controlar todo. los archivos
ms importantes, cambio de las claves de acceso, desconexin de los terminales si estii
desocupados, etc. Vamos a ver una serie de tareas para el mantenimiento eficaz de esta
seguridad:

Protecciones de archivos
Se refieren al modo normal en que deben estar los modos de permisos de algunos
archivos o directorios importantes:
El d irectorio raz (/) d ebe estar en modo 555 (dr-x r - x r - x ) , y a lo sumo en modo

? 55 (drwxr-xr-x )
El a rc hivo /e t c / p a s s wd debe estar slo en niodo lectura, esto es, en modo 444.
Nadie debe poder modificar este archivo, excepto el administrador. Muchos de los
ataques al sistema UNIX se basan en la manipulacin de este archivo.
Poner losdirectorios del sistema. tales como /usr, /l ib, /usr/l ib, /bin, /usr/bin
V /etc, con elmodo 555.

,<,. (3A-t<(A

12.13. OBSERVA('[Y, f)E I.O() Al(C'k[[%'O(> ('O[<[TROL

317

l' <r<-'r <'I <lirv(tori<> t('>por;rl /tmp co cl r r>o<l<>7(i(i (sir> posil>ilidad cl( vj(cuci<)r>
I>ara el grpo <lvl srrari<> y 1<>s <lvnrs).

Desconexi de terusinales desatendidos


k[r> terrrrirral desatedi(lo < s aqrr( I q>iv allrlqlle <(<> act rvo, hr l)(*lsorl>1 c[>le tierre iiciad?1

sesi<r < rr < I. s< (ncentra ausnrte n>onu nt [rrerurrent< . Existe>r dos >nodos para c<>rrtrolar
este ti[)o dv sit >r u iorrvs;
Ls ar ( '1 valor <lc Ia vari;rl)1( dc ten>pnrizaci(r TMOUT q< provocar; q>re firr <lic(
alltorll'r( r('>llllvrltP >ir>a s('su>1> <
l('sprl(cs dv l)asar cl t l<'r l>1>c> q>lc ('ollt 1<'r>v diclra vari <I >h .
kl t l l l 7>11' hl ol'd('Il l o c k < ) xl o c k q < iv l) lq ll<'>lr"ll <'I 1('l'rlrrlral <) la ssi(lr X l l a s ta ql l ('

s(' ll <t l'o< I>ixr> la ('IH'v( (:ol'l'c("t a.

Seguridad para el administrador e cuanto a su t erminal


>(' rll('I c a q<l<) liad>('. Px( ('pto vl a d l l>ll>l.il l >u I(>l' dPI sra t t.'(ir>u, iv rl>t> od t(oca ( Olllo t(ll.

a(pr( sv[>a la < lave, <les<le c<ralqivr tr>r>ial q(<> haya dis[>vst<> < I adrnirristr>ulor vn
< I ar(hivo / e t c / s e c u r e t t y ( c st ( ar( lrivo dvl)vr tenn. el u)<l<) <l(' permisos a .")()()). l'or
jcnr[>lo. si quiero qv (l adrrrinistr ad<>r slo I>(da n>t rr [)<>r la rs<>la d<l sistvnra p<>r
< I terrrrirrrrl rrrrrrrvr<> I. vl archivo / e t c / s e c u r e t t y s er dv la f<>r>ru

! cat /etc/securetty
console
tty1
!

12.13. Observacin de los archivos control


I;rr algrrrr<>s sist<'rrr;rs s< rrrarrtinrnr d v f<>rrrr (rt<tina ;<r< hivos qrrv (<>r>tir>e ir>
f <)rraci<)rr q>rrr<>s I><nit< dvt(<tar si Ira h at>i<lo irrtcntos <lv rorrr[)vr la svgridad (l( l
sist('rrra. El <.orrtr<>l d' 'st<>s ar< l>iv<>s sv < stal>lv[>;>ra av< rig<r;>r si h r lr;<I>id<> algui< rr q>u
h>< ir>tvrltado ( I>t rar y ru> lr>r po<lido, las I>vrs(><ras <)rr(' har> erltr ulo al slst(l>la. Ios qlr( I l'>ll
irrtnrt>ulo c<>rrvvrtirsv n> a<l>r>iistr;ulorvs dl sist<'l. < t<. Los ar< hivos q>r(' gr>ar<la>r di(lr;<

ir>tr(a< irr sor> Ios sigrrin>t< s:

/usr / adm/sulo g

A l >r>ac(na irrforrrraci<)rr rvl;>tira a la <>rdn> su.

/et c / w t mp A l n u ( rra iforra(irr de t<><los 1(>s logir> > <rxit<>.

/et c / b t mp Alma<'erra iforrrra( i(>r> de to<los los 1<>gin si)r vxit<>.


l;n vl sistvn>a Lit>r>x los archivos qrrv manti(nn r irrforra< in relativa a ir)t(nt<>s errneos
d< correxirr. ltirrras corrvxiorrcs. sesion(s <on uucp o s a mba. Ct<. sv alnlacvrlall Prl vl
dirv<tori<> /var/ l o g . S(' a(or>seja vigilar los ;>r< lrivns <orrtnridos vrr cst< directorio con
<)l)j< to <1( d(.te(tar lo posil)lvs intvrrt<>s dc atru[rrvs ;d sistnrra, s<>l>rv to<lo vrr rr)qrrirras
q>rP sv Pll(rl<'rlt lIi ('(>ll(('tadas [)('rrrlarlf r>t erl )vi r t( >l II> t <'l rlP < > si l<>iii<r.

318

C A P T UL o 12. PARADA Y ARRANQUE DEL sls'l'EBRIA UNlx

1 2. 14.

RA-MA

E j e r c icios

1 2.1 lrricie rrna sesir> como administrador y deterrrrirre si 1<>s sul><lirectorios /etc , / u s r .
/usr / b i n y / u s r / l i b t i erren los derechos adecua<los c u a a la scgrrridad <lel sisterr>a.

12.2 Busque err todo el disc(> los programas qrre p<rtenecen al administrador. as com<>
todos aquellos que tienen su 1>it, de set-ui d a ct ivo.
12.3 Del ( r r ninc el valor de la vari rblc PATH para el administrador d( l sisterr< y < orprucl><
si est activada curr el valor adecuado.
12.4 Cornprrrehe qrrc todos los directorios del sist( ma estr> hal>ilitados correcta>r>ente e
c<tanto a <lcrech<>s dc acceso se refiere.
12.5 Brrsqrre err su sistema to<los los programas ej<>cutal>l<.s qrre tienen activado el l>it
set-ui d y <l<r<' p<rterrezcan al adnrinistrador de la n>qrrina o root..
12.6 <,Se pue<le activar el bi t

s e t - u i d a u n p r o grama de shell o shell script?

12.7 Cree en el directorio /tr r>p urr uuevo directorio denorinado conrpart ido al que pued;<
acceder cual<pricr usuari<>, pero que r>o pueda eliruinar arclrivos del misnro,
12.8 Irricie la n>quirra y ol>scrve su secuencia <le encendido. ;,Crrl es <.I PID dcl proccs<>
init ? ' e rr ocurrira si elinrin;semos este pro(eso?
12.9 <'Err qrr r>iv('l d(' arrarrque se irricia s>r sisterrla. <,C<>nlo podra can>?>iarse ese rrivel
de arranqu( de forma defirritiva para que p<>r def< cto se inicie siempre en el nivel
especificado" .;Cmo podra nrodificar el nivel dc ir>icio mnmrntneamer>te sin que
afecte al prxirrro arranque?
12.10 'Err q<tivel <le arrarrque se inicia por defecto cl entorno de ventanas X-' l indo<v?
;,Cmo podra iniciarse de modo autonutico crr el rrivel 3?
12.11 01 >tenga infonrracirr sol>re el proceso init
t.icular de srr sist(nra.

1 >ara deterrnirrar la corrfigura< in p <r

12.12 De tenga la m q uiua uti lizarrdo la orden shutdovn, corr los 1>arrrretros adecuados
para que se espere dos minutos y se enve un mensaje de finalizacin a todos los
usuarios que seencuentren conectados en ese momento.
12.13 Verfiqrre <Hr terminales son seguros y cu>les no, err srr sistenra. P,lo<lifiqrr<. la poltica
de seguridad para que el ulmirristrador slo pudiese iniciar una scsirr dc forma local
yun< a a travs de urra conexin remota.

Capitulo 13

Administracin de la red
En el captulo de servicios de red comentamos cul era el formato de las direcciones
empleadas bajo el protocolo T C P / I P . C uando nosotros asignamos una direccin IP a
nuest,ra mquina para conectarla a Internet, no podremos elegir una direccin aleatoria,
ya que otra mquina podra tener la misma direccin y ello sera una fuente de problemas.
Por este motivo existe una organizacin conocida como NIC o JVetwork Information Center
que asigna direcciones IP de forma centralizada,
Ya hemos indicado que las direcciones IP son de 32 bits, representados como cuatro

dgitos decimales. El problema estriba en que con cada direccin hay que representar
la red en que se encuentra el ordenador y el nmero de ordenador dentro de la propia
red, Por este motivo, las direcciones IP constan de dos partes, una que identifica a la
red, los bits de mayor peso, y otra que identifica al ordenador, los bits de menor peso.
Dependiendo de la cantidad de bits utilizados para identificar la red tenemos bsicamente
t res tipos de redes: de tipo A , d e t i p o B y d e t i p o C . L a s d irecciones de tipo A s o n
aquellas que comienzan por nmeros entre 1 y 126, Utilizan los 8 bits de mayor peso (el
primer octeto) como nmero de red y los 24 bits restantes (tres octetos) como nmero
de ordenador dentro de la red. Estas redes son de gran tamafio, pero slo podemos tener
126 diferentes. Un segundo tipo de redes es el B. Eu este tipo se emplean dos octetos
para indicar el nmero de red y otros dos para indicar el nmero de ordenador dentro de
la red. Los nmeros asignados a este tipo de redes cubren el margen comprendido entre
128.1 y 191.254. Existe un tercer tipo. redes de tipo C, en las cuales, los tres primeros
octetos identifican a la red y el l t im o octeto identifica el nmero de ordenador en la
red, Estas direcciones abarcan los nmeros desde 192.1.1 hasta 223.254.254, Finalmente
existen tambin redes de tipos D y E, la primera se emplea para mensajes de transmisin
mltiple en la red y la segunda para experimentacin. En la siguiente tabla se muestran
los diferentes tipos de redes.

320

C A P T U I.O 13. ADA1141<)'i l3ACIV DE LA RED


C lase

I d . d e red (hita )

C
D

RA-t)1A

I < l . <lc or<1<a<l<>r (f)ts) B i t s i n i ciales


000(.1-01 1 1
1000-1011
ll00-1101

Han g o
(l- I '>7
12g- I!J l
I!)2 2'7;3

I110

224-239
'2 I0-25) 5)

Xlru lrrrs orgarriza< ioes err< <<entrar> cov<ierrte <livi<lir su red en suhre<les. P<>r (jernl<>.
si terrnos rrrr < r(<1 <le ti<> B, st r a efe< los ir>t<r>>os p<<e<le ser dvidi<l r en r((f(s <f<
tio C , C or r v i stas al e x t ('rior. I a re d s(' sigu<' >r>r<>rtand<> urro r>r>a (1(>se B, < r<t
irrtcrrurrnerrte p<)<ternos terrer dstrrt(rs rc<les qrr( s< corrrortarr <onr<> < las< C, d<
rrrodo l;> adnrinistr>u i<) resulta rnu(h<> ms f<'l.
Los rrlmeros 0 y 255 ticrrcn urr significado especial y n< > p(te<f< n s( r asgr)ados a nrmeros
de rqrrirra. El 0 se r<s< rva para llr<squillas que no conoce)> srr direccin. Bajo ciert;r.
circrrrrstrrrr('asrr(<le o(urrir (pr< urra m (l<<ir)r< rr() (()rlozca srr proi r <lire(cir> de le<l <
irrcluso su <lirec(i<)rr <lc ordcrrador. El rrrrrrero 25? s' prllf)lea f)r(la <lifusi<in (h>n(rd<(rstl.
len rnerrsajc <le <iifrrsi<rr es a<f)tel qrr( rlcseanros que sea re< ihido<>r t<><lo < 1 nnrrrdo. Est<>
prrede ser inter(sarrte a fa 1>ra de pregurrt,;uor algo, <ic nrodo <Iuc cu lugar <lc enviar rrr>
nrensaje a cad > o>derredor <le I r r<)d. sc e>>va urr r>r<'rrsaje <l(' dfusrr que ser r<. cil>i<loor
tod<>s 1<>s ordenadores <lc nuestra red. El rrrrrrero 127 tic(>e tarr>I>irr significa<lo especial
y se emplea gerreralmentr r omo <Iireccirr de bucle lo(<d io bucle irrterrro). utiliza(lo crr
pr <7ces<)s de deprrracinu y p<resta en nrarcha. as con)o < liagnosis de l<s re<i. I.a direccin <l(
bucle local <l< la rc<l es la l'27.0.0.0 y la de bucle local de cada ordcrlador cs la 127.0.0.1.

1 3.1.

S u b r edes

La divisin de una re<l en suhredcs es algo muy utilizado err distintas orgarrzacioe~.
Esta divisinn pr<le of>e(l( cer a, dist int as ne< esida<ies tales con>o facilitar la a(ln) inistracirr,
lltiliza<.in de diferentes medios de comunicacin (por ejemplo. Eth<.mr t y To ken Rirr</).
ubicacin <le rquinas pcrter)c(ierrt(<s <s la misma re<1 en difcrerrtes cdifi(ios o laboratorios.
etc. Cada rrna d( las srrhredes s o r unica con las otras a travs de pasarelas o rr>utcr<
Urr n>rrter es rrna rrrquina quc dispone de dos o ms interfaces de rcd (tarjetas dc rc<l i
y rrrr soft)vare qrreernrite transferir infornracirr <ie u(ras subredes a otras en caso de s< r
necesario.
Suponierrd<> que disponernos d< una red <le tipo C, la 193.14fi.9. sta prre(ie ser <iivi<li<la
crl diferentes srrhredes. Por cjcrnplo, podramos esta( >lecer c<la( ro srrhr<des difcrct< s.
Irrici;rlmente cad ( direccin <f< rrtro de la red terldra el fornrato qrre aparece cn la hgura
13. 1.
El r>rcru <le bits <'n>picados para identificar cada ordenador cs de olro. stos s<>rr
representa<los err la figura conu> HHHHHHHH.
Al establecer cuatro s1>redes, el formato de la direccin sera el representado en la
figur<r l:3.2.
C.'omo queremos crear cuatro suhre<ics, teneu>s que reservar dos bits para <lifererr
ciarlas, st<>s son los bits SS. En frrncirr <ie que valgan 00. 01, 10 11 terrdremos I;>~
cuatro srrbr(sf<'s que <iescamos. AI establecer sul>re(ies. tendremos solament( (llsponihf<~

13.2. MSCARAS DE RED


Direccin de red

321

Direccin de ordenador

l l000001.100100l 0.0000100 l

HHHHHHHH

Figura 13.1: Divisin de la direccin IP en direccin de red y direccin de ordenador.


Direcci6n de red

Direcci6n de ordenador

I l OOO
OOl. l 0010010.0000 lOO I

SS

H H H H HH

Subred

Figura 13.2: Establecimiento de subredes a partir de una direccin IP.

6 bits para identificar a cada ordenador en cada subred (HHHHHH). El rango de direcciones
asignado a cada subred sera el siguiente:

Red

SS

Rang o d e g d e ordenador

193.146.9

00
01

000000-111111 en
000000-111111 en
000000-111111 en
000000-111111 en

193,146.9
193,146,9
193. 146,9.

13.2.

10

binario
binario
binario
binario

Ra ngo d e direcciones IP

193.146.9.00 - 193.146.9.63
193.146,9.64 - 193.146.9.127
193. 146.9.128 193.146.9.191
193.146.9.192 - 193,146.9.255

M s c a ras de red

Cuando un ordenador se encuentra en una red debe conocer qu ordenadores forman


parte de ess, red y cules no. La forma de determinar qu ordenadores forman parte de

nuestramisma red se basa en elempleo de mscaras de red. Una mscara de red mantiene
a "1" todos los bits que forman parte de la red o subred y a "0" los bits empleados para
identificar el ordenador. En el caso anterior, la mscara de red sera la mostrada en la
llgura 13.3,
Traducida a notacin decimal, la mscara de red sera 255.255.255.192, Si no hubise
nios establecido subredes y opersemos nicamente con una red de tipo C, la mscara de
red seria 255.255.255.0.

322

lRA-!<IA

C A P T L I.O 13. ADKIINIS'l'RAC.'I()N DE LA llED


Direcci<n de red

I l 000001. 10(110010.00001001

Direccin de ordenador

SS

H H I -IHHH

Subred

Figiir;i 13.3: ihliscari> de red.

1 3.3.

En c a m i n am iento

A l;i operacin <1< ll(iar (iii <latagraia a s i l v s t ino se la con<><e con el iiomhre d<
vncan)inamivrrtn. 'Aliichos dv los <letall<is <lel vncaniinarnietn <lvpericlvii dv cada irul>lv
iri(.rit (ciu; si>i embargo, podvriios lijarnos en (ivrtos aspectos gvrr ral(~c.

l'riruero, es nvcesariu coriocer el riioclelu en que se basa cl protnc<>ln IP. ste asiinie qiic
el sistema. est conet<ido a alguna red lu(al y quv se puvdv enviar uieus ijcs a cualqui< r
otro sist.e)ira d( la lllisli)a rvd, ste es el caso <lv Et h<-rrivt. El prnhlvnia sc pr(oenta c'uari<lu
e s nec<sario errviar un <latagrania a iin or<lcirmlor quc iiu cst< situado eii la pr opia i 1.
Este prnhlvma cs res>)cito pur lus <totcruoys. Un yoteiooy es un sisteiii<i que c'onectaua
r< d cunutra. ri otras rvcles. L<>s gotewoys snn rrornralrrrvi>tv <>rdviiaclorvs quv tieneri (irs
de iii)a lritvrf~u dv rvd. Sp<>iigarrros qiiv tenemos iina mquina l ' N I X c uii dos iriterfacc's
de red conectados a las reclvs 128,.4 y 128.I>..'5. Esta in <piill>l pllv<l<: liar <le <t<(te<q/
entre ainha redes. El snft<carv de esta ni>iqiiina <lvl>e estar coirfigurado <le mu<ln qiis<"i<
cpaz <lv enviar datagramas <le una red a la otra. As, si iina inquina dc la recl 128..-l.
e(>vaii datagrama al yo tewoy. vl < liitagrania est dirigido a una m q i i i r ia <le la r(.<l
128.).3. este goteii~oy clebe transferir cl mensaje <lena rcd a la otra. La mayora de lus
centros de cnmunicaciii disponen de yotetooys qe permiten < oiivctar uu nmero de redes
diferentes.

El encaniiamiento de I P est has'idu p<>r (ornpleto en el n irnvr<> de la direcciii


destirin. Cada or dviiadnr ti e ne uua t a b la de ii i nivros dv red. P ur c a da i iiiiivro d<' rv(l
debe aparec< r un </otvtooy asociadu q(iv n(>s p< rriiite acc' ler a la re<1 indi<.ada.
Cuando uii ordvriadoi' desea eiiviar iin datagr iina. priuiern coiprueba si l<l (lirc< ci<>n
pertenece a la propia rccl. Si vs as, el <latagraina puede encirse <lirvctarnviit<.. Dc utru
)nodo, cl sistema vspc.ra encontrar iuia entrada dondv se sitiv la riel asociada a la <llr(w c iri
<lvstiiio, y en este (irso el datagrnma se vi>va al gatcr'iy indicado vn la entrada. Esta tal>la
piiede s< r deinasiado graiide debido al gran r)imvrn <lv rvclvs <lifvrentes que hay vn lnternvt.
As pues, se liaii prupiiestn diversirs estrategias para r cducir 1 t<<mar)n <le esta tabla clv
e)i< arninarnientn. 1 na estratc.gia niuy empleada vs la que cunsist<' en en@)leer -riitas pur
<l<'fvcto", En vstv caso, citando nu sv vncueiit ra iiria ruta para un determinado datagraui i.
ste se enva al goterooy -pnr <lc fi cto'. Es te </oteu><iyl>iiedv rvsponclernus iiidicnd<>n<>s
una riita mejor l>ara el <latagrarna qiie <lesvamn enviar (vu c n de que existari vari<>s
</otci<>or/s cn la real).

'= RA-fcfA

1:3.-f. ADlLIINISTRAC.'ION DE LA RED 3 2 3

)<iii('hos expert<>s eii II' r cc<iii<cl;Lli <fe l<>s <>rclcnaclor<s in<livi<1;llcs nunca tenga

iii)a visin ainplia de la rccl. Del>c s< r los (><lteu>ayaIos encargarlos clc cst;ls lal>or< s. Este>s
< I< 1>c
li tener al) iplias t.;ii)l;Ls <le elicaiiiiiiaiiiieiit o v algiii f>rotocolo <liie pcl'llll I ILcol)lllicars<
< iitre < lh>s para c'coiitrar las ll)ej<>res rutas par) cacl l a t agrlnia.

1 3.4,

A d m i n i s t r a c i n d e l a r e d

P oiicr e l a r ( 111 nl I c(1 (o11 prc>tocolo TC P / I P l c c fulcl c c o o<er clf I to i (o n ( e p t o s


I);)si('os (f>lc hclllos tl 11 tl(lo <h rcsuiir Pii Ic>spiiiitos )Li)t< riol < s. Taiiil>in cse< esal io sahcr

cuilps sori las <)r<lciirs v archivos clc conligra< i>ii rcla< iona<los con este te)i)a.
Eii c'I c apitlo cledic ui 'i los servicios <le recl prrsentin)los iin<>dc' los archivos clc
( < aifigiiraciii. / e t c / h o s t s . (- l < lll col it iciic ll e<f ui vale< ia el)t re clir c c ioiics I V L. n<>n)1)res
Igi< os <IP orclena(lores. Aliorl (les< i.il >ireiii<Ls ot ras nl<'llcs v )ir< hivos relaci<>a<los coii I L
f)(lcst< c 11 lliirchL v <;oilcxio d ( ' u c s t l o sist cll i Il I cd.

i fconfi s
Sintaxis: ifconfig interfaz [-netj-host] IPaddr [opciones]
Lll ul<lcii if c o n f ig s e u t i l i za f>ara iiciar las intcrf)ccs cl< rcd o par a i o s triu. iiifor
Iiiacili sol)re las 1isnias. Si sc inv<>ca siii aigii icil ios i>s lliostrlra c'l (sta<lo de toclas las

iiitci faces (l<' recl (fu( l lllcl(<> <olio< P. Las opc ioiies -net v - h os t s r c n iplc aii par l cllie la
<iii ( < ciii IPaddr s< a l riita(l L < ui i lo ui)a <lircc< iii <lc r < d <> c<>ii)o la (lirecciii I P <lel f)i'<>pi<>
< >r<l(*ii lclor. r< sf>ccl ivalnelitc. El arg u n ieiit<> int er f a z s( li t iliza liara i<I< lit ific ir la ii)t< rlaz
<l< red (f(' d( selnlos (o l i flgul al' (>silll f)IPlll(.'litc d( hi (f ue < les<)l)lls <>ht('ci i f l lll'Lcf<)ll.
L Ls of>ciocs las colu(s cfe sliclcii eniplc<lrse se citan a coiit inuac i(i:
up C'oil csti of><i<>11 s< a< t iv)i lll iiit< rfaz iii<lic hL.

down Sirv< par;lesa<.tivli l;L iiiterfaz i<lica(la.


netmask mask S( i t t i l iza p;lr;i <l<fiiiir hi ni;is< ;Ira <h recl.
broadcast, a dd r

S c u t i l i z l pa ra d<hiiir la clire(ci)i clc <liflisi<ni. Est l (lircci<>ri scrL <Ii)

f)l('a(l>L ('u>ll)<l< > ( f('I alos (l<' I (>< los los ol'(1('<l<ll'Ps d(' i lc, it I"L f('(1 rc< il>aii <I 1isino

nu iis;L jc si)i) llfl acar< iit p.

[-]

a l l m u l t i Est i of ) < iti s( ( riipl< a p'ira a( t iv)r <> dcs;u tivar < I iii<>(l<> pr<>iiscii<> <lc la
iterf )z . C'llli<l<> Ii ilit< rf iz <>llri;1 < n este i o d <>. sc rc< oger li t oclos los I> filetes
<ii)r vayaii p<>r la rc<l aiicfP iio vav;<1) <lirigi<los <l ella. I l ; LL' (fue tciicr c i i i<lad<> <(>11
cst;i <>p<'ic>n. v;< cfii iii >r<icli) ck>r dcna ce<I nifiglir;ldo e iiio< l< >
pl <)ll lis('ll< >pf'd<'
s('I lit ll lzlcl() l)al)l (h ' s c'llhl'll' p<ll>ll)fts clo)v<'s o ha('Pise co li l f l ' l a ( 'l <'( nfl(l('('lllf

(file (<>llipr<>i)ict>L la scgliricla<l.


l' Lr'L coiihg u r ir

i i i ) <l< teriii))i<la ii) t( r f i z r l ( ' r c c l. 1>c>r ('jciii))loll ) i;L tarjc'ta I / h e > )le/. Ps

('('("s)l'i<> <f ll<' ('I il('I<'O l'P<'ll<)z<'l (ll('ha ll<t('ffiz. l O <'s asi. ( "1 f)O(ll'CII)os l)<>CI' Cn

I l lal'<'ll(< l(>s s('l'vl('los (1(' l'('(l.

CA P T U LO I 3, A D N fINiSTRACIN D1' 1.A ltl D

324

ttA-).lA

Supo)>len<lo <t>l(.' iliicstra i nt( rfaz dc r('.d se <leiioiuiiia et h O, coti la s igiiicrite oid (. la
c<>ttfigitrareritos para (lue iiu< stra direc< iii IP sea 172.2<J.16.5, tiuestra n)aseara <le n <i
2 >j.25)8.255>.0 y la (lirecciu <le f>io<tdcnst 1 r 2.2<J, 16,255.

! ifcot>fig eth0 172.29.16.5 etmask 255.255.255.0 broadcast 172.29.16.255 up

Si liura i>t iliziuuos if conf i g si n ar g iiuieritos, nos tt)ostrar l i sigiiieiite iuforinacit):

! ifconfig
ethO Link encap(Ethernet HWaddr 00:AO:24:E4:DB:05
inet addr:172.29.16,5 Bcast:172.29.i6.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:i
R X packets : 2 2304 e r r o r s : 0 d r o p p ed: 0 o v e r r u n s : 0 f r a m e : 0
TX packet s : 3 722 e r r o r s : 0 d r o p p ed: 0 o v e r r u n s : 0 c a r r i e r : 0
collisions:17 txqueuelen:100
Interrupt:10 Base address:Ox300
lo L i n k e n c a p : L ocal L o o pback
inet addr:127.0.0.1 Bcast:127.255.255 .255 Mask:255.0,0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
R X packets : 135 e r r o r s : 0 d r o p p ed: 0 o v e r r u n s : 0 f r a m e : 0
TX packet s : 135 e r r o r s : 0 d r o p p ed: 0 o v e r r u n s : 0 c a r r i e r : 0
collisions:0 txqueuelen:0
!

l.a ii)t erfaz lo cs la < niplra<la p;ii a n alizar pru< t>(>s < ii 1>ucl< local. C'oti>< > pod<>iuos ol >sr i v >..
ii(ru' asigii ida <>iuo dire(< i<>ii IV la 12 .t).(h l .
R -r

S int a x i s :

~-

g gi,

r ou t e [ ad d ( d e l ] [ d e f a u l t ] [ - n e t l- h o s t ]
addr [ g w g a t e w a y ] [ m e t r i c n ]

Est '> or<l<'1> sc cl>ll)l("< pilla <l('flilir ( (ii(> (lel>( ii e)i<"imiiiar se aquellos pa(fuetes (ii)e ii>

van dirigid<>s ;> ning>n or<leiia<l<>r iii<lid<> en iui(stra pr(>pia red. De este iod<>. el ii< le<
pll<'<I<' ('stal)l''cl

<'st l'lteg>l.i c()ll)o l'i sig(ll<'nt<'. p lr i <. )iv)si >lll p'l(lilet('a la i ed ext el ll<l . .

>itilice coii> piist(rcl(i la <lire< ciu dcl sistema Y -. S e p ue<leii <~tal>lccer dif<.reutes ri><l.
d( n ic>imiii;uuieiito <l<'1)<t)di('t>do de las r ( d e s desti i io a l a s q i i e s( < uvari los pa(t( t< s <
taiul)iin as i y i a r i i n c o ste a c )d a u ii a de las r u t as. Siempre es iiecesario definir )lila r l lt >l
poi la <tue se <lel>< n eiiviar aquellos iii<"usaj< s <1( iio coiii< iden < ou iiiiigiiiia <le las t <1>1;>.
<le en(aminauii(ut o <1('fii>idas eu el n f i ( l eo. esta r ut a es la <luc s (<>iio< e coiiio ruta p<>r

<lcfc< t< >.lt l>i in>iyora <le 1<>as<)s


< u<i es iiecesari<> establecer iuia. tal>l;i de eticaiuiiiauii< i)t>
(oiiipleta, l>asta >n <l< fiiiir el eii< auiiii'i<lor p<>r defecto o la riita por defecto. I~o auteri<>r
sera equivalciite a d('.cirle al n>i<'leo: -c(taf(tier iuensaje qiie v aya fuer(i d( i i u estra r 1
debe <uiviarse 'i la dir<.rci<>n Z". Z sera la dire<.cin <le nuestro encaininii<lor o rot</er p<>r
(lefe< t ().

L'' H E - t t . ' L

I:L4. .)(DXIIAIS'I lIA('Ilv DE LA RLD

325

Si ;I r o u t e o s <. I< cs p i fi <;i n i n g a o p c i(ii. i n i<ai(rit< v i sualizar> l;i t a h l' ) <1(


i Ii< iii)iii;ui)i<to a< t;<l. Las o p ( i < )iis add y d e l s -' I i i p l >uip ira ; )grgar o h o r r a r l a s
l'll) iis sp<'('ilt('ii<hls. I <'spe('t)van'Ill <'. S('gr)l<l>)IIIPI)re s(' I l'salir(' 1(<flrricion>ill(la<l lP1 I st <>
il > p ( ) nps:
def aul t

E s t a o p < i<>ii s<>l(> I;i mpl( ar mos p) ra el< tiir I add) ( I ('I)(ainlil "l(lol' por <1< f<( to.

' S irve par i tr a tar ! )> <lir<i<>r) indi< <la con)ouii i dir( (< i(>ii <le r((l.

-net

' Sii ve para iii<ii< ;ir lii <lir(( ci<>ii iii(li< ;i<l)i<oni<> <lin <( i<>ii 11' d ii oi(lira<lo)',

-host

addr E l a <lit<'c(inn <l< st ii)o <le l;i Iiu<'vi rn t i .

l ' ' l( sr i ina <lir< ((i<ii IP o i i i )a re<l.

gw gat e way ( ' o n ( ll o i i li( a)ii<>s ( l <ii<)iiin)lor <tiil h < i r iplears<' para ('l <1("sl ir)o Ps
p(< ifi(>)<lo.
irietri c

n I i i < i i( a 1 )ste aso< ia(lo i l i r ) ira ( sp< iii< 'i<l i. Estos c<>st<s p<>(le)r)s iit ilizat 1<)s
para <l<'t(rriiin>u' ciilps s<>ii los (ar)iii)os pt i r i)s t)ara ('t)viar los Ii i r r isaj( s.

En Pl sigiiiete ejrnplo <l< finiros ciil (s < l < n<.amina<lor. por <kfccto cn iistro sistnia:

! route add default gw 172.29.16.1


!

Si a (o)iii)nraii> invo< an)os ;i ro ut e


< ri< arin(iririto a< tuales:

si a r g i i i nritos. nos nfornir)r sorc 1()st>ilila <le

! route
Kernel Il> routing table
Destination Gateway Cenriiask Flags Metric Ref Use Iface
1 72.29.16. 0 + 2 5 5 . 2 5 5 . 2 55. 0 U 0 0 1 e t h 0
127.0.0. 0 + 2 5 5 . 0 . 0 . 0 U 0 0 1 l o
default 172.29.16.1 0.0.0.0 UG 0 0 0 etho
!

llii rn<><lo <l< saber l i tr a y <t<>ri>) qiis i g i ie i i < lteriia(lo Da<iii(t li >stii l legar a s u
< l('.sr)no, as coII)o los till)l )s ('lliplii<los ('a(1>1, 'vPzq< i pi)sa (l(' llll slstr l la Ii otro. < Orisiste
(.'Il ('lllpl( ar < I progr;(r iia tr a e ero u te q n e < l( s( rihin>os a'nit inii< i<>n.

t racemutsi
Sintaxis: traceroute destino
Esta o) <an a<imite miilt it ii<1 dop< ions qiic (lchcn consiilt. Irs< ii el riianiial par i po(ler
ol>tenr < l tri xiiiio partirlo. I',l iriico parnit r o ohligatri<> < s destino, qP i<lr ritifi<.a al
orrlpna<lor rori l q v a mos a < omirnicariios.

Ejn iplo;

CA I i T t ! LO 13. ADAIINISTHA(/I()N DE I.A HFD

326

g reA-t t1

! traceroute garbo.uwasa.fi
traceroute to garbo.uwasa.fi (193.166.120.5), 30 hops ma><, 40 byte packets
l 172. 2 9 . 16. 1 ( 1 7 2 . 2 9 . 1 6 .1 ) 1 . 2 5 1 ms 1 . 098 ms 0 . 998 ms
2 irisgw.uah.es (130.206.82.1) 3 ms 1 ms 2 ms
3 81-1-3.EB-Madrid3.red.rediris.es (130.206.207.13) 4 ms 6 ms 4 ms
4 A1-0-21.EB-Madridl.red.rediris.es (130.206.224.65) 26 ms 13 ms 6 ms
5 A1-0-1.EB-Madrido.red.rediris.es (130.206.224.69) 527 ms 82 ms 7 ms
6 madr>.d6.att-unisource.net (130.206.206.146) 5 ms 9 ms 6 ms
7 f r - s e . s e . t e n - l 5 5 . n e t ( 2 1 2 . 1 , 1 9 2 . 82 ) 1 0 3 ms ( t t 1 = 2 4 8! ) 1 0 9 m s ( t t 1 = 2 4 8 ! )
8 sw-gw,nordu.net ( 2 1 2 . 1 . 1 92 . 154) 108 ms ( t t l 24 7 ! ) 1 0 6 ms ( t t 1 = 2 47 ! )
9 f i - g w . n o r d u . ne t ( 1 9 3 . 1 0 . 2 5 2 . 50 ) l l l ms (t t 1= 2 4 6 ! ) l l 5 m s ( t t 1= 2 4 6 >)
1 0 funet 2 - a 0 005- f u n e t l . f u n e t. f i ( 128 . 2 1 4 . 2 3 1 . 14 ) l l 3 m s (t t 1= 2 4 5 ! )
1 1 funet 3 - f e 0 00-backbone,f un et . f i
( 19 3 . 1 6 6 . 4 . 3 ) 1 2 4 ms ( t t l - 2 4 4 ! )
1 2 uwasal- a03- f u n e t 3 . f u n e t . f i ( 19 3 . 1 6 6 . 5 . 94 ) 1 2 0 ms ( t t 1 = 2 4 3 ! )
1 3 garbo.uwasa.f i ( 1 9 3 . 1 6 6 . 1 20 .5 ) 1 2 3 ms ( t t 1 ~ 2 4 2! ) l l 9 m s ( t t 1 = 2 4 2 ! )
!

Eii ( l ej(tapio anterior sven inipli< ados 12 </c>ten>cr</s. el riiiiiiero 1 d es el oideri id<>r <1(st ir)<>.
Apuro< eri tariit)in los t i c)i><>s eri>leados 1>ara transf(-rir pa(!i)ates entre 1(>s difer< iii<.
eneaiiiiriadores. Esta iiiforina( inn pue<l(' iitilizarse para ver <ln<l<' se eir< ii<uitriiri l<>s < uell<>.

cle 1>n!ella eri la. triirisniisiy evit arl<>s si es pnsil)le.

JlgI~
Sintaxis: netstat [-acirv]
La or <leri netst a t s e enipl<ii p il il ( c>l llpr<)hal ( iiil es el est ;i(l(> gl() l >al d( la red TCP / I P .
Si se iiivnc i si argunrer)tos. niostrar' las (onexiniies de red activas <.ri ri sistera. I.a nr<lmi
soporta ))iiichas <>p( innes, algirna de las cll iles se Ieslirileli a e n i l t i r i i iiic in:

-a ) luestra iiilorriiaciii sol>re todas l rs < onexiones,


c ) Irrcstra (le f o r i i)a c n i i t i n)i )<l'i el c s t acln il e l; i r ( '<l iict u a l iziridns<' a ii i t e r valns d e i i i )

segirrrd<>. Esto se repetir hasta cine l i ordeii sea iliterruipida.


-i

X l estra estadisti<irs <l< los <lisp<>sitivos de red.

r A i i restia la t i <l)hr de eir(:allrlllalrlrerltn d('l il)<'len.

v IV<>s inforiiia sobre Ia vc rsic)n de net s t a t .

Ejen>los:
! net st a t

Active Internet connections (v/o servers)


Froto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 c a r d h u . a u t . u a h . : 1 2 6 1 207 . 3 . 0 . 7 2 : vv v ESTABLISHED
tcp 1 0 cardhu.aut.uah.:1258 207.3.0.72:wvv CLOSE WAIT
tcp 0 3 8 5 c a r d h u . a u t . u a h . : 1 2 5 7 2 0 7 . 3 . 0 . 7 2 : v v w ESTABLISHED
tcp 1 0 cardhu.aut,uah.:1238 207,3,0,72:vvv CLOSE WAIT

RA-MA

1 3.5. RESOLUCIN DE NOMBRES

327

tcp 1 0 cardhu.aut.uah. :1173 204.216.126.215:www TIMEAAIT


tcp 1 0 cardhu.aut.uah. :1169 204.216.126.215:www TIMEAAIT
tcp 0 0 c a r d h u . a u t . u a h . : 1 1 18 204 . 2 16 . 126.215;www ESTABLISHED
tcp 0 0 c a r d h u . a u t . u a h . : 1 1 16 204 . 2 16. 126. 2 15:www ESTABLISHED
udp 0 0 cardhu.aut.:netbios-dgm +:+
u dp 0 0 c a r d h u . a u t . a : n e t b i o s - n s + : +
Active UNIX domain sockets (w/o servers)
Froto RefCnt Flags Type State I-Node Path
u nix 2 [ ] ST R EAM 2514 / t m p / . X 1 1-uni x / X O
unix 2 [ N ] STREAM CONNECTED 2512
unix 2 [ ] STREAM 2330 /tmp/.Xii-unix/XO
unix 2 [ ] STREAM CONNECTED 2329
u nix 2 [ ] ST REAM 2121 / t mp / . X 11-uni x / X O
unix 2 [ ] STREAM 2120 /tmp/,X11-unix/XO
unix 2 [ ] ST R EAM CONNECTED 2119
unix 2 [ ] ST R EAM CONNECTED 2118
u nix 2 [ ] ST R EAM 1935 / t mp / . X i i - u n i x / X O
unix 2 [ ] STREAM CONNECTED 1934
u nix 2 [ ] ST R EAM 1933 / t m p / . X i i - u n i x / X O
unix 2 [ ] STREAM CONNECTED 1932
u nix 2 [ ] ST REAM 1931 / t m p / . X i i - u n i x / X O
unix 2 [ ] STREAM CONNECTED 1930
unix 2 [ ] STREAM 1S2S /tmp/.Xii-unix/XO
unix 2 [ ] STREAM CONNECTED 1928
unix 2 [ ] STREAM 1927 /tmp/.Xii-unix/XO
unix 2 [ ] STREAM CONNECTED 1926
unix 2 [ ] STREAM 1925 /tmp/.X11-unix/XO
unix 2 [ ] STREAM CONNECTED 1924
unix 2 [ ] STREAM 1880 /tmp/.X11-unix/XO
unix 2 [ ] STREAM CONNECTED 1822
unix 1 [ ] ST R EAM 1550
unix 2 [ ] STREAM 1472 /dev/log
unix 2 [ ] STRFJN CONNECTED 1471
unix 2 [ ] STREAM 1164 /dev/log
unix 2 [ ] STREAM CONNECTED 1162
!

1 3.5.

R e s o l u c in d e n o m b r e s

E n el captulo dedicado a los servicios de red vimos las rdenes nslookup, host y d i g ,
empleadas para realizar la conversin entre nombres lgicos de ordenador y direcciones
IP. y viceversa.Esta orden comprueba si los nombres o las direcciones que deseamos
traducir se encuentran en el archivo /et c / h o s t s . pero si no es as. no habr mss remedio
que preguntar a un servidor externo que nos informe de la correspondencia entre nombre
lgico y direccin IP. A estos servidores se les denomina servidores de nombres o DNS

CAP T U LO 13. AD M I NISTRACIN DE LA RED

328

RA-M.i

(Domain %ame Senier). El m o do de i n d icar cul debe ser el servidor de nombres <l~.
nuestra mquina seestablece ronfigurando adecuadamente el archivo /etc/resolv. conf
Este archivo rontiene cul es nuestro nombre de dominio y cules son nuestros servidor~
de nombres. Sepuede especificar un servidor de nombres principal y otros secundarios. A
continuacin se muestra un ejemplo del contenido de este archivo:
! cat /etc/resolv.conf
d omain au t . u a h . e s
n ameserver 1 3 0 . 2 0 6 . S2 . 7
n ameserver 1 3 0 . 2 0 6 , 1 . 2
!

La palabra reservada domain se einplea para especificar el nombre de nuestro dominio.


La palabra reservada nameserver se emplea para especificar cul es la direccin IP <ii
nuestroservidor de nombres o DNS. Se pueden especificar hasta tres servidores de nombr~~
v stos seln consultados en el orden eil qile apareceil en el aicllivo / e t c / r e s o l v . con f.

1 3.6.

E je r c i c i o s

13.1 Compruebe cul es la configuracin de red de su sistema.

13.2 !Cmo puede dar de baja su interfaz de red~ /,Qu ocurre si da de baja su interfaz
de red'
13.3 Vi s ualice la tabla de encaminamiento empleada por el ncleo de su sistema.
13.4 Cambie el servidor de nombres de su sistema y ejecute la orden nslookup. Configr~
adecuadamente la resolucin de nombres para que opere lo ms rpido posible.

Capitulo 14

Administracin del sistema de


impresin
Cualquier sistema operativo debe proporcionar las herramientas necesarias para per
mitir que los usuarios puedan enviar documentos a la impresora o imp r ~ r a s p r esentes
en el sistema, as como controlar la impresin de los diferentes trabajos. Tambin debe
proveer al administrador de las herramientas necesarias para poder aadir im presoras
locales o remotas al sistema, eliminarlas, controlar las diferentes colas de trabajos, etc.
En este captulo nos vamos a centrar en los sistemas de impresin empleados en el UNIX
de Berkeley y en el UNIX de ATT. Existen considerables diferencias entre ambos, por ello
los describiremos por separado. Aquellos usuarios que usen Linux deben tener en cuenta
que su sistema de impresin se ajusta al del UNIX de Berkeley.

14.1. S i s t ema de impresion del UNI X d e H erkeley


El sistema de impresin del UNIX de Berkeley est compuesto por un conjunto de utili
dades y demonio de impresin encargado de manipular el sistema de spoo/'. Este demonio
denominado 1pd se encarga de manipular todas las colas de impresin. En principio, para
imprimir un documento bastara con ejecutar una orden como la siguiente:
4 cat archivo > /dev/1pO

suponiendo que /dev/1pO es el archivo dispositivo asociado a la impresora. A pesar de


su simpleza, no es el mecanismo ms adecuado cuando deseamos obtener el mximo
partido a nuestro sistema, aunque es muy til para comprobar si la impresora funciona
adecuadamente o no. En caso afirmativo, lo mejor es configurar seguidamente el demonio
1pd con objeto de que sea l el encargado de manejar las colas de impresin de los
diferentes trabajos.
'El tdrmiuo spool (Sirnuttoneous Pertpherut gperatton On L,ine} Eue empleado por primera vez por

IBM eu lss mezquinas IBM 360.

330

OAP T I ! LO I-I. A D I<IIXISTRACIN DEL SISTEI<IA DE IXIPItESIY. Q

r<A - ~ L'

1pd '
Sintaxis: 1pd [-1]
El <leuioiiio lpd <s (l enc irga<lo de maiiejar todos Ios trabajos de impresin. Si <'. i
no cst i activo. iio se podr iiupriruir ningn trabajo. Cualqiiier iiiteutn de in>pr<.si<>n sl(
1>rovo< ;i que los distintns trabajos de iipresiii vaya siendo eucolados en el directori<l~
g estiii <le colas l>asta que lpd sea activado. Esta activaciii se produce general>iient i .
rl arra>>que <lel sistema. La <ipci(>n -1 se emplea para qiie se genere iin archivo <le registi
co cada peticin de iinpresin. Esto pue<lc ser inuy til cuando estanios llevando a <.>>1
labores <le depuracin.
El n>ndo de opera('in de lpd est det('riiiiiiado pnr un archivo de coufiguraciii d<
noiniuado / e t c / p r i n t c a p . Este archivo es un archivo de texto y su aspecto inicial <.
relativauiciitc crpti(o, por esta raz<>n In <les< rihire>nos paso por paso.
/et c / p r i n t c a p c onsta de diferentes entradas. ca<la iina de las ciiales descrih( iii>a
iinpresnra. Ca<la ent>'ada consta <le difere>it<.s cainpos qiie <lefiiien el >iindo d operaciii
<le la. iiiipresnra descrita: noiiihre lgi(o. ;ircliivo de <lispnsitivo asociado, directo>.io <l
spool. arcliivo de registro de errores, filtro de lns datos que se eiivan a la i m p resora.
etc. A contimiaciii describimos los campos ms iisuales einpleados <'n ca(fa eiitra<la de
descripcin de in>presora:
lp Este cauipo especifica el archivo de <lispositivn al que se enviar>i lns <latos par;i se.
impresos, A no ser que vayamos a euiplcar iina iiiipresora reuiota, este cauipo deh>
t oniar uu valor, por ejemplo, lp =/ d e v / l p i .
sd Este campo se emplea para especificar cl directorio de spool (spool (lirecto> y) doride -'
encolan los trabajos. Un valor posible podra ser sd=/usr/ s p o o l / l p d / i b m 4019ps
E l directorio <le spool es necesario qi>( exista coii objeto de evitar errores (u l a
irr>presin. Esta operacin debe llevarla a cabo el administrador sieinpre que afi>ada
una iinpresora iiueva.
lf S i rve para especificar cul es el arcliivo donde se registrarn los posibles errores. Esi>
archivo <l< bc existir. ya que si no es as, los errores no sern registrados. Uua eiitrda
v li<la podra ser la siguieute: lf = / u s r / s p o o l / l p d / i b m4019ps/Err o r e s ,
if E st e campo especifica el filtro que ser apliculn al archivo ant(s de ser eiivia<ln a la
iinpresora. Es n>uy con>n aplicar iii> filtro a lns archivos <le texto ASCII (..uand<>
ha>i de ser eiiviados a una in>presora PostS(.>ipt.
rm Fspecifi< a (l iinmbrc <lel sistema remoto de in>presin. En <>ate caso. el carupo lp deb>.
quedar vaco,
rp Especifica el nombre de la in>presora reiriota. No olvide d ejar vaco el campo lp e
este c>iso.
Un ejemplo de archivo /et c / p r i n t c a p p odra ser el siguiente:

i l%A-MA

14.1, BIS fEAIA DE ll) ll'HESIOX DLL L'!vio. DE llERivELE'I'

331

$ cat /etc/printcap
!

! Please don't edit this file directly unless you know what you are doing!
! Be warned that the control-panel printtool requires a very strict format!
! Look at the printcap(5) man page for more info.
!

! This file can be edited with the printtool in the control-panel.


!!Impresora POSTSCRIPT 300x300 letter {} PostScript Default
l p:
:sd=/var/spool/lpd/lp:,
: mx!0: I ,

:sh: >,
: rm=172. 29. 16. 54 : >,
: rp=i p : ,
:if=/var/spool/lpd/lp/filter:
!!IMPRESORA IBM4019
ibm4019ps:)<
:sd=/var/spool/lpd/ibm4019ps:~
:mx!0:>,
:sh:'
:lp=/dev/lpi:

$
L;ls l'(Iccs (II' v(os 'I ('olet>'8 coti>1('i< tral>ej<I <lc f<>rI;I 1>rc(l< t< r>ia(la <'nn
Ila Inlpl (sor'I ( l(011acl'l lp. E ('>Iso(lc (!el cl t I"<l)aj>ll poI' <iPfect(> ('o ol I" 1 In>pl esl">,.

(l< 1><>os ii< iar la varial>lc PHIVTL R < 0 el valor <les< a<lo. Si por ejpmpl)> quere>os <Ie
la i>presora por (1(fectn sea ibm4019ps. (jel>< r< n>os in< lir una nr(ic <oro la siguiente:
$ export PRINTER=ibm4019ps

$
A Irartir (le este>oIeto sicIPIP <!P Ina(l<>s itnpritnir
I la i>presora ll>>.10!9ps.

M pr ~ ~
Sintaxis : 1p r

< r cl>iv(> ste ser (nviado

k
[ - P I mp] [-h] [ - ! Num] [ a r c h i v o (s) ]

L<I or(len lpr sc < n>pie'> I>ar;I <viar h)s tr><bajos esl> ilica<l<>s I la >la <le in>presi>. Si
'I lpr n n se 1< especifica ning<n trabajo, leer <le la ('tla(l<I estn(l,<r. Esta or(lP 8(l11!P
lit tplcs op('10Ps. A cot>;l('l(i sc CIt,'I 1(>sls Ilpol ttes:

PImp Pcrtnit(' csp iti<.ar 1 in>prcsora ( Imp) a la <e s( <.nviarn lns trat>;Ijos. Si <> se
espccili< aigun I i>presora. sc <Ipl< ar<i l > <!p est cotigra(la pr (lef< cto.
-h Elin>in;I la primera hoja r!e cahr<pra.
-!Num (.'o cst I opci lpr r c (lisr<i rantas copi;<s <lcl tra)>ajo ('0lo las <.spP('iii< ;<<l Is e
Num.

332

C AI' l ' t ! 1 .<) I.l. A D I(lllvISTRAt'.IN DEL SISTEAIA DE ll(IPRFSI()N Q

'It A- M A

Ejemplo:
$ lp r

t l k- 0 . 1 - 1 3 - 1 9 . p s

]pq
Sintaxis: 1pq [-PImp]
La nr del> lpq sc (. >rrplea l>ara arlalrzar' ('l ('.sta(f<> de la cola de. (rl>1)res>o(r. Por (.' t(la
tr rh;(jn rrns devuelve su ider>t ificad(>r, (1 cal cs necesario conocer si q(rerernos carrcefarli>.
A<len>as, lpq nos muestra rrrr indicador quc ton>a el valor act i v e s i el t r abajo est; (.
pro<.esn <le impr< sin n urr rrrrnern qe nns indica su pnsicinn en la cola para el resto <le
ln trabajos. La op< in -Plmp se emplea para espe< fficar que deseanros corro< er la cola d<
trabajos asociada a r(r>a determinada impr<.snra.
Ejemplo:

ibm4019ps is re a d y a n d p r i n t i ng
ltank Owner Job Files Total Size
active chan 2 tlk-0.1-13-19.ps 28580 bytes

S intaxis : 1 pr m [ - P Imp]

[- ]

[T r a b aj o ! ] [U s r ]

La orden lprm se emplea I>ara carrcelar trabajos <Ira previamente 1>'ur sid<> lanz >dn.
a la cola de irpresinn. Para cancel;rr u deterrnirrado trabajo es necesario conocer s
iderrtificador de trabajo. cl <al es devuelto por 1>t orden lpq. Si querer(ros carrcelar todos
rruestros trabajos, esp('cifiraren>os como identificador el carcter . Las opciones r;s
sr(al(s snn las siguientes:
-Pimp Espe('ifica la impresora (lrnpl de la <prc deseanr(>s cancelar el o l(>s trahajns.
Cacela todos fi>s trabajos lanzados por <I usrrarin. Si esta np< in la emplea el admi
r>istra<l<>r del sistenra. se carrcelarn 1(>s trabajos de todos lns usrrarios.
Trabajo ! E s p< citic ( el nrrrrero de r rabajo de la cola. Este nrrnero es devuelto por l;(
or(len lpq.
Usr Esta opcin 1(r utiliza ( l administrador del sistema l>ara < ur(ciar lns trabajos enviados
por rrn <l< termirrad<> usuario,
Ejenrplo:

14.1. SISTEMA DE IMPRESIN DEL UNIX DE BERKELEY

Qc RA-MA

333

$1prm 2
dfA002Aa01958 dequeued
cfA002Aa01958 dequeued

$ lpq
n o ent r i e s

S intaxi s :

1pc

La orden lpc se utilizapara comprobar el estado de todas las impresoras. as como


para controlar determinados aspectos relacionados con las mismas. Esta orden operar de
modo interactivo en caso de no especificar ningn parnretro. Las opciones ms comunes
de esta orden son las siguientes:
enable { I mp I all } E s t a orden se emplea para activar la cola de impresin de la impresora
I mp o de todas las impresoras (al l ) .
disabl e { I mp I all } S e u t i l iza para desactivar la cola de impresin de la impresora Imp
o de todas las impresoras (al l ) .
star t

{ I m p l a l l } C o n e sta orden se permite que la impresora especificada por I mp, o

todas ellas (all) , comiencen a imprimir los trabajos que previamente han sido
colocados en lasrespectivas colas.

stop {Imp I all } Se emplea para detener la impresora especificada por Imp o todas (all).
pero se permite que los trabajos sigan llegando a las respectivas colas.
statu s { I mp i al l } M u e s tra el estado actual de la impresora especificada por Imp o de
todas las impresoras (al l ) , L a i n f ormacin que muestra es el estado de las colas,
el estado de lasimpresoras y el nmero de trabajos que estn esperando para ser
impresos.
rest ar t

S e emplea para intentar reiniciar el demonio de impresin.

exit S e emplea para salir de la orden lpc cuando la empleamos en modo interactivo. Se
puede emplear tambin la orden quit p a r a este propsito.

Ejemplos:
! lpc s t a t u s
lp:
q ueuing i s e n a b l e d
printing is enabled
n o ent r i e s
no daemon present
ibm4019ps:

CA P ' l ' ULO I.l. A DWIIN IS'l'RACION DEI. SISTLI>IA DE ll>il'ltESIN

334

RA- . '<IA

q ueuing i s e n a b l e d
print).ng is enabled
n o ent r i e s
no daemon present
!

! lpc disable ibm4019ps


ibm40i9ps:
q ueuing d i s a b l e d
!

14.2.

S i s t e m a d e i m p r e s in de UN I X S y s t e m V

El sist('ma <l<' impr(siii de UlIX S v sten> '>' <.st cniiil)iiestn I)nr i>n coiijurito d( ()r<l<
nes controladas I)nr i>ii prn(esn central n sp(><>lr r<le in>pr<'sii>. L>is p<>sihili<lad<'s qiie <)tr''<
este sistenia d< i>i>presi<)n son: exaniin;u r l ( s t a<fi) <Icl sist< rr>a <le iipr<sii>.caiiihi 1 <
coi>figuraci de las inq>resoras, permitir n proliihir l,>s solicit ii<fi s <le inil>rsiii I);>r;> (>id >
d(stiuo, arra<ar <> detener el sisten>a <Ie iinprcsin para que st< ssperi<la o 1>rn< rse l>is
soliciti><l(.s dc iii@>r<>si<). pnnrr < n la cola snli<.itudes dc irpresiii v caiicelar I >s peti< i<>ri< i
previas. El trrr>ir>o d(atino se rliere r>orni rin>ente a >in;> iriipres<>ra. I;> cu;>I perteri< (< ;i
cero n nis clases determinadas de impresoras, Si la solicitud va dirigi<l > a uria iipr<
s<>ra. saldr solarnei>te pnr <'sa ilnpresora. pern si va <lirigi<la a u>la cla ie <le in>prrsnras.

saldr I)or la priir>era <lispniiihl< que pei te>>ex(a a <licl>a < lase. El pn>ceso lpsched es I
que atieii(le I;> snlicitiid, eiiviridola i l p r ograriia de ii>te> faz qiie debe teiier la i>r>p> <.snr <
especilicada. Est<>s programas d<' int(rfaz soi> aq>i<'ll<>s q>ie < oordinar> la iiiipr< sin en>i l'I.
impresnras. La iihicacin de la informa< iri y el <.orijiinto <le rdenes del sisteiiia spo<>l< r
se expli< an a coritinuacin:
/usr / l i b A q u s <uicueutr.a los 1)rogra>r>as ejecutal>les einple;>do por < l adriiinistia<l< r
( lpadmin, lpshut ) .
/ usr / b i n A < pi sc enc>icritran lns 1)rngranias ejccutahl<s empleados por el sarin (l p .
cancel, enable, etc.).
/usr / s p o o l / l p D i r e( tnrin einpleado por cl sist< ma dc iml>r(si. Coiiticn( lns siguientes
<lirectorios:
class Designacinnes d( las clases d<' in>pn snras.
model Aqu se guard >r> los progran>as <1< iterfaz <Ie cada impresora.
int er f ace A qu sc guardan Ins progr'imas dc int< rfaz de las impresoras qiie estr>
ictii'>lment(' cni>cctadas al sistcnia. v provicin i> del dir< ctnrio model.
request E>i este dire< tnrio estn situadas las colas de destirio. Lxiste gei>eralrner>t<
un <lirectorio ahiertn para ca<la irpr(snra ('oi>< ta<l'> al sistenia. En al gu<>s
sistcir>as. el rlirectorio de destinns es /usr / s p o o l / d e s t , d onde dest ii>di< >i <l
llnrllhl'e <Ic I illlpresor>i n <le la ( lase cnn qiic l p

l a s conoce.

l4.3. RDENES DEL SISTEMA DE IMPRESIN

RA-MA

33 5

14.3.

Or de n e s del sistema de imp resin

A cor>tin>racin se rrurestra >rna tabla con todas las rclenes disponibles para manipular
l sistema, de i>npresin.
lp Realiza peticiones de irnpresi.
lpsta t

I n f o rma del estado de las partes <lel sistema de s/>oo!.

cancel C a nc< la solicitudes de irr>presi.


enable Permite el er>vo de solicitudes de iurpresin a un dispositivo.
disabl e

P r ohrl>e el envo de solicitudes de iml>resin a ur> dispositivo,

lpadmin Corrfigura y nroclifica la estructura del sistcnrt> de spool.


lpsched A r r anca el planificaclor y enva, las solicitrrdrs a, los prograrrras de interfaz.
lpshut D e t iene el pl;urificador y prohbe el envo de solicitudes a los prograrrr>rs de irrter
faz.

accept Perruite el envo de solicitrrdes de impresin paran dcstirro.


rejec t

P r o h be el envo de solicitudes <le irupresin para un destino.

lpmove Alucv< las peticiolles de inlprcsin quc se llayan l>echo r cierto destino a ot ro
dest ino <liferente,

Sintaxis : 1 p [ - d d e s t ] [- m ] [ - n n u m] [ - o o p c ] [ - p p r i ]
[-t t i t u l o ] [ - w ] [ a r c h i v o (s) ]

[- s]

La orclen lp se emplea para irr>primir los ar< hivos daclos como argurner>t.os. Realmente,
lo rrr>ico qe hace lp es copiar er> el directorio de destinos los trabajos que desearnos im
primir. Una vez all, la orden lpsched es la que se encarga de imprimir dichos trabajos. La
o>de>> lp r>socia a vuestro trabajo una identificacin (reques/ id). qe puede ser empleada
posteri<>rn>errte l>ara referenciar dicho trabajo, Por ejemplo. para cancel >r su irupresin o
para rru>ver el trabaj<> a otra cola.
Eje>r>plo:
$ lp .profile
request id is lp-85 (1 file)

$
() p c>orles :

-d dest C o n esta opcirr elegimos la impresora o clase <Ie irrrpresora cou la que queremos
qrrc se realice la impresin. Por defecto. Ia irupresora, ser tomada de la variable
LPDEST.

CAI ' I T U L O I.l. A D K IINISTRACIN DEL SISTEI<IA DE I!<IPRESIN

336

RA- t < IA

-m Cuarrdo terrrrine la irpresiu del trabajo, enviar c<)rreo electrnic<> para avisarns.
-n num Irrrprimir tarrtas cophrs coro valga num.
-o opc opc (op< i<>rr) ser; rrrr par;metro propio <le l<r irpresor;r elegida qrre provocar al
gurra accin al imprimir. p<>r <jemplo irnprirnir a <lul)le cara.
-p pr i

p ri l pr i n r i<la<l) ser rrn rrrmern errtre 0 y 7 qrre <lar priori<hrda la s<>licitucl d<
rrnplesrnn.

-s Suprinr< lns mensajes t. <les <nmn, por ejenrplo. "rcqaest id is ...".


-t

t t u l o I m p r i rnr t t u l o c r r la p'gina qrre ><ntecede r los archivos impresos.

-w Escrih< )m nrens rje en el ternrinal del usrrario cuando los ar< lrivns ya lrarr si<lo irnpres<>s.

Sintaxis: 1pstat [opciones] [id...]


La orden lpsta t v i srraliza ir>formacin sohre el estado actual <lel sistenra de irrrpresi.
Sin opciorres. lpsta t i mprimir el estrrdo de todas las s<>licitu<lrs hechas por el usu rrio.
Tnrlo argrrmentn qrre nn <onstituya rra opcinn ser tornado por rm rrmero identifi<adnr
de solicitucl (request r'.d).
Ejerrri)lo:
$1pstat
lp-90 chan priority 7 Apr 22 12:45 on lp .profile 439 bytes

$
Opciones:
-a [l i s t a ] V i s u aliza el estado de aceptacin por parte de los destinos (impresoras n clas<.
<le irrrpr< soras) qrre aparezcan err lista,
-c [l i s t a ] V i s u a liza k)s n<nrrhres <le las < lases <le irnpr< sor@s
y sus mierhros que aparez
c an en l i s t a .
-d Vis<raliza la impresora o clase de impresora qrre hay en el sistema pnr defect.u.
-o [l i s t a ] V i s rraliza el estado de las solicitudes que esten cn la cola de las irr)presoras
q <r< aparez<an en l i s t a .
-p[ l i s t a ]

V s u <liza sli> el estado de las impresoras que apareceu en list,a.

-r V i s ualiza el estado del controlador de solicit.udes.


-t V i s ualiza toda la inf<)nna< irr que cnmp<>r)en lss opciones -r. s, a, p. o.
-u[ l i s t a ] V i s r raliza el <atado d<' las solicitudes l)echas por los rrorrrhre de usuario qru
a pure< en en li s t a .

[tA-!<IA

[4.3. ORDENES DEL SISTEMA[A DE [><[PRFSION

3 37

C@@G

S intaxis : c ancel

[ i d ] [ i mp] [-a] [ - e ] [- u u s ]

La or<[en cancel s< emplea para < Brrc< lar s<>li< ii(r<les (aurr<[>u se ester> y>< irnpriricrr<[o)
<[>re [rayan si<[o l)el>as por la or(1< r> lp. Al rr>en<>s rrrrrnrcro (le i<lcntifi('aci<>n <lc s(>licitu<L
o rrn l)o>r>l>re <l< irprcsora. sor> argument<>s r)c< (sarios <le cancel.
Eje)r)p[o:

$ lp -dascii fifod.c
request id is ascii-148 (i file)
$ lp s t a t
ascii-148 chan priority 0 Dec 11 15)19 on ascii fifod.c 804 bytes
$ cancel a s c i i - 1 4 8
request "ascii-148" cancelled

$
En < l < r>so <1< l < j< n)p[o hcnu)s < r>v[a<[<> (I tral>;>j<> a la irnpr(sora (<lestir)i>) cuyo nornhrc cs
ascii . E ! i([crrtifi(ador <lc tral>ajo cs asci i - 1 4 8 y lo errrplearerrros para p<><l(r car)<c[ar la

impresin <lcl trabajo.


Opciorrcs
id I..spc(ifica cl rrrrrr< r<> <lc i<lcntihcacirr ([e la solicitu<l (r<)q(.~/ i</).
impr Especifica el r>o)r)1>rc <l(' [B(s) i>prcsora(s).
-a El in)ir>a to(las l,>s s<>li< it<[es <lel rrsrrario err la inrprcs<>ra esp( < i[ice<la.
e El>II)II>a to(las las s(>l)c)ti>(l('s (lc rlr)prcsrll (l>le l)aya cll c<>IB paI'B [B llllJ)lcsoI'B cspc<'r

fi<'B<[B.Esta opci)rrs<ilo la prrc<[<ti[izar cl <lministr'><h)r <icl sistema.


-u suario Eliurir)a t<[,rs las sol[c[t<r<[<s <[ru' l)aya h(ciro usrrari<>.

e aable y

d i sa b l e

F.

mis

Sintaxis: enable impresoras

d isabl e [ - c ] [ - r [r a z n] ] i m p r
enable a< tiva [;)s ir>r[>resorrrs <l>[as <o><> ar@<r)ct<>s [>ara p<><lcr. rc(i1>ir solicit<r<lcs
<le im[>rcsi<>n. disable <lesa< tiva las in)pr< s<>ras <[;1:.<s Ir() ar[,rcntos, ircrr>rmpicr>do
las solicitu<les <[r>c se estn iurpriuricn(lo act <tal>r)ente. p< r<> rciruprinricn(lo otra vez su
totalidad al eje< >>tar postcrionrr<tc enable.
Ej< Inp[n:

! disable -r "PONIENDO TINTA EN IMPRESORA" lp01


!

33S

CA I ' T U I .O I I. A D I<IINISTRACIN DEL SIS'l'l.liA DE I) IPRESIN

Si al>ora ejecutamos lpsta t

I( a -I ) I A

- p I p0 1 , aparecer:

'printer lp01 disable since fecha PONIENDO TINTA EN IMPRESORA'


Opcion< s:
-c Cancelar estas solicitudes que se estn imprimiendo act(<l)cte t>orrndolas <le s>

<. Ola.
-r [r azn] D (<n>osn> razn para la desativa< in que se imprinir por pantall>. Si esta
opcin no se d o r n o l l ev ' l l g u nento, elltou(es sc 'tonlar na razn por defect<)
qe t:anll)IPII sal(Ir p<)1' ptnt >lll.

Sintaxis: 1padmin -pimpresora [opciones]


1 padmin - x d e s t

l padmin - d [ d est ]
La orden lpadmin se utiliza para configurar la estr<.tura del sistena <le spool: par;
<ltr tln notnl)re a tina inpresora, para crear clases y para especifcar cl es la iInpr sora
por <lcfecto. La orden dcl)c tener <>1)ligatorianentc uuo de los t res argutnentos sigient<s:
-pimpresora E s el noml>re <le la impresora a la cual se refieren las op< i<>nes que lleva a

continuacin.

-xdest B o r r anos el destito dest del si stema spoofer, Lste destito podr ser una impre
sora o una < lase.
-d[dest ]

l l a c e qe dest sea el nuevo <lestino del sistema por <l<'fecto.

Opciones (slo pueden aparecer a continuaci<m de la opcin -p):


-ccl as s A I>ade la impresora especificada en la clase class.
-epri n t e r C o p ia Pl programa de interfaz de pri n t e r c omo programa interfaz de la i>o
presora especifi< a<la.
-i I n t e r f a z S er el catnino o r t a del nuevo programa de intcrfaz para l' i m presora
espe( i ficad(.
-mmodelo Selecciona el modelo d(. prograna de interfaz para la impresora especifica<la
d c todos los qe residen en <I directorio /us r / s p o o l / l p / m od el .
-rc l a s s E l i>nina la inpresora espe(ificada de la lase class,
-vdevic e A socia a la impresora especificada el archivo de dispositivo que se encuetr;
cn el directorio c)v<) ca>ino o ruta es devi c e . Si slo aparece como argment<>s
las opciones -p y/o -v , po<lreus >tilizar la orden lpadmin sin parar el planificador
o cont rolador,

I 4.3. RDENES DEL SISTE!<IA DE llcfPRESIOlv

Pc RA-I<,IA

339

Ejeml>los:
Cnnfigttr< r>tos <tna ttttev>t irpres<>ra que 11;ttarerns lp10 y cttyc> nnmhre v<.rda<lern cs
ibm4019:
! /usr/lib/lpadmin -plp10 -mibm4019 -v/dev/lp
!

Para poner por <l< f<cto a, una itpresora o tt;t < lasc ert el sistema:

! /usr/lib/lpadmin -dlp05
!

(Si la npci -d apar ce si arf;umetos, cspc< ificaremns q<te rto l>ay nittgtrrta por defecto.)
Para l>orrar la irttpr<sora lp03 <lc la < lasc a qtte 1>ert<t><e y para horrar la clase de
itpresoras c14:
! /usr/lib/lpadmin -xlp03
! /usr/lib/lpadmin -xc14
!

P ara cofit urar ttna impresora llamada lp4. cuyo ar< ltivn cle <lispositivn es /dev/ l p / l p 4 .
que sea icorporacla a la clase cl l y q <te us< l rrtisnto 1>rof;rama de irtterfaz qe usa la
irrtpres<>ra lp2:
! /usr/lib/lpadmin -plp4 -v/dev/lp/lp4 -elp2 -cc11
!

~4Qk
S intaxi s :

1 p s ched [ - v ] [- a ]

L orde l p s c hed arranca el 1>lartificador <le impresin. el cu;tl es u p roceso q>te


se ejecuta en sef,unclo plano (f><>ck</r<>trnd). ettcargandnse <lc tandar las peticiones de
impresin a los progratas <le ittterfaz dc l ts <listitas impresoras. lpsched es ivo<.ado
al arratt<ar el sistertta 1>or cl ar< ltivo /e t c / r c y @ t arda t oda s actividad en el arcltivo
/usr / s p o o l / l p / l o or;. Sc suele uttltzar stn op< iones.
Ejemplo:
! l p s c h ed
!

1psh~<>
Sintaxis: 1pshut
La or<len lpshut <l< tic<te la ejecucitt <lel 1>m<eso lpsched. Cn esto se interrurrtpe
tn<la la ttct ivi<lad <lcl sist <atta de itpresitt.
Ejeti>lo:

3 40

C A P T UL O 14, AD M INISTRACION DEL SISTEI<IA DE I> f PRESI!V RA- 5 I A

! l p shut
s cheduler

s t o p p ed

lpmove
Sintaxis: 1pmove peticiones dest
1pmove desti dest2
La orden lpmove. en la prinrera forn>a, u>ueve las soli< itu<lcs o peticionm. repres< ntadas
por su nunero de identificacin (<e</uest id)), y dadas con>o argumentos que est<'n en cola
por la orden lp al destino dest .
En la segun<la forma lpmove mover todas las l><.ticiones que estn en la cola <k. dest1
a la cola <le dest2.
Ejen>plo:
! /usr/lib/lpmove lp01 postcript
!

E n el ejemplo anterior se pasarn todas las peticiones I>ara lp01 a post c r i p t .

i F'- - 'K .
Sintaxis: accept destinos
La or<len accept per<nite que lp acepte peticiones para los destinos <iados como ar
gun>ent os.
Ejemplo:
! /usr/lib/accept MIPRN
!

r eje c t ~

:,.'

4)

Sintaxis : reject [-r [razn]] destinos


La urden r e j e c t i t n p ide que la or<len lp ac<'pte pc'ticionrs de impresin para lo
destinos dados co>no argun>entos. Con la opcin - r p o d emos asociar una razn de la
inhibicin de dichos destinos, que se visualizar cuando sc intente usar l p p ara dichos
d estinos o al ejecutar l p s t a t . S i no se da la <>pcin -r o - r n o l l e v a argun>cnto, se
ton>ar una razn por defecto.
Ejemplo:
! /usr/lib/reject MIPRN
!

14.4. ADICIN DE UNA IMPRESORA

RA-MA

14.4.

3 41

A d i c i n de una im presora

Para conseguir anadir una nueva impresora al sistema, tendremos que seguir los pasos
detallados a continuacin;
I.

C r e amos el archivo de dispositivo asociado a la impresora en el directorio /dev / l p ,

2. Paramos elproceso lpsched con laorden lpshut:


! / u s r / l i b/ l p s h u t
!

3. C o n figuramos la nueva impresora suponiendo que se llama pr n2, que el archivo


especial que hemos creado en el pritner punto se llama tt y 0 7 y que el nombre de la
impresora es ibm401S:
! /usr/lib/lpadmin -pprn2 -v/dev/tty07 -mibm401S
!

4. S i q ueremos ponerla como impresora del sistema por defecto:


/usr/lib/lpadmin -dprn2
!

5. D a mos pertniso al controlador para que acepte peticiones para la impresora creada:
! /usr/lib/accept prn2
!

6. Activatnos la impresora:
! enabl e p r n 2

7. P o r lt imo, activamos el planificador que paramos anteriormente:


! /usr/lib/lpsched

1 4.5.

E j e r c icios

14.1 Compruebe a qu sistema de impresin se ajusta su sistema UNIX. Para ello com
pruebe qu demonio de impresin se encuentra activo.
14.2 Conecte su impresora y redireccione a su archivo de dispositivo correspondiente el
contenido de un archivo de texto.
14.3 Antes de poner en marcha el sistema de impresin elimine cualquier peticin que
est encolada. !Qu orden debe emplear para ello?

842

C AP T U LO 14. ADM I NISTRACIN DEL SISTEMA DE IMPRESIN

RA-MA

14.4 Ponga en marcha su impresora para que sea la imprmora por defecto de su sistema.

14.5 Desactive momentneamente la impresora y enve un trabajo a la misma. !Qu ocu


rre?
14.6 /,Cuntos trabajos estn esperando a ser impresos?
14.7 Vuelva a activar la impresora. !Qu ocune?

Captulo 15

Miscelnea
En este ilt imo capt iik> vanios ;i tratar <leterrriiriad<> spectos. agrupados baj<> (1 ttiil<>
de miscelnea. Nos vernos a c< iitrar en <on< reto eri la posibilida<l cle ejecutar programas
a horas cleterrriiuadas (procesos aiitornticos), cri la realizi<ci<>i> de copias de seg>rrida<l
(/><r</;u/>s). en el sisteriia de registro dc everit<>s(loyger) y en la configiiracion de XDihl (X
D>,if>luy Muuuger).

15.1. Procesos automticos


To<los los sistema UNIX pr oporcionan la posibilida<l de qiie los distiritos usuarios
pir((lan ejecutar d( t(.rmina<los pl ogl arrl'Ls a <'ierta horas. Hac icndoso de esta posibilidacl.
podremos ejecutar esos programas qiie cargan nnicho el sist< rrra, durarite el firi de seniana

o a las tres <le la madrugada, < uando no l>aya iia<lie, o casi riadie, conectado.
Los procesos autoriiiticos soii ejeciitacl<>s por iin proceso demonio de U N I X d e rio
iniiiado cr o a. Es te proceso se encarga (le ejeciitar l<>s programas qiie le iiidiqiiemos a
(Ict(rmiiiadas l>ora. Para ello. cron (o nsulta sus ar(hivos de configiira( ii> qii( coiitieneii
la list'i d(' ac< iones qiie (kben ser ll<.vadas a cabo. as como las horas a las ciiales se deber>
cjecrrtar las acciones, Si l'i mquin i, por (.ualqiiier niotivo. no ('.stiiviese conectada a las
horas que cron debiera ejeciitar l;is rderies espe<.ifica<las, el rrsiiltado ser qiu d i chas
rdeiies no sc jccut.arn ruiiica.

15.1.1.

A r c h i v o s de configu r acin

Los archivos cle (orifigur;u iii cirrpleados por cron difieren <le iii>os sistemas a otros.
Er> los sistenias b;isados < n el U<XIX <le Berkeley existe l>sicaierit< un arcliivo <le confi
girraci<ni. /usr / l i b / c r o n t a b . Eii los sistenias basad<>s en el UIX'IX de ATT existen varios
archivos <le confiigura( i. coii k> cal se consigue uiayor Hexl>iii<l;l. Debido a esto. v>irnos
a centramos fundarrieritalmentc en este iltimo, aiinque mii<.hos aspectos que comentare
nios scgiiirii sien<ii> vlidos p ira cl pr iniero.

El UiviIX <le ATT erriplea iin dir(c'.torio <oniplc t(> p ira la corrfiguraciii. generalinente
<'I clirectorio / u s r / s p o o l / c r o n <>/var/ s p o o l / c r o n . C a da arcliivo alinacenado en este
dirc< t<>rio <le)>< ser coiisid< r;ulo coirio u arcliiv<> <le conhguracin. En lugar <le qe cada

344

C ' A P I)l't ' I.() 15. l<II)C'Ll.;>,Nf:.A

Il <lll loi ) ('<ll) ll)o(l i tiar. 1< ;)n liivoi d v

Cc, I<A-ILIA

e ) t v < li r< c t ori<> ;) su )it ojo, c xist< p r o g l n)n

<l<oliri I cronta b q<'<riiiit< i<lifl< ar estos ; < Iiivo i. f)( n> (I<' i fl i l <out lol Ia.
Cll;)clo il li s ) ll'1() cl< i<'n q< c r o n c j < (li t i i t i t ra l > a j os. ('i t o i < 1 (1>< iicr r< fcrrn< ind(ri
dvs<l i1 ;ir( tliv<> <1< coiitigilr i<n <>ii ii f <>rliiato <ltc rii>I<>. l'ti)i vvz q ) i< t v ( ll>i (I
)Lrchlvo ('o li(s (l<l<'c. q (' <I('I (' cj('<'l)ll' cr on y l n s

h <>i"i('<>ll((sf)ll<ll('t('). t ll)sal<'1i

I l l)ti)iii'id c r o n t a b p i r a q u ( < I anl i i v < < 'i ((q>i id<) il< < I <lirvct<>rio <le colifigura< iil. l'I
oliit>rc quc c r o n t a b < !)Lr ;i est e n n . h iv o <'oic i<)ir cr>li vl i l o l i i t )rc <h l i i s i i a ri o q i i e i i i )
<'viad(> cl t r<)l)(i jo. D' ' i t <' l o do . <'nd() p('rsoiiLLu('<I(' t('<'r su nr c ) i iv(> d(' c<u)figilra('i
p ropio, Vea)os a >iii ill< i<>ii lo o cl( los or)lr coti 1;i <>nl<' cron t a b .

cronta~
Sintaxis: crontab [-ledc] [archivo]
Lti n)n ) c r o n t a b s( < iiiplea I>nr L n)atpf'' ('l 'ii <'hlvo ch. ('otlfiilrn( iri del <lin ( tori<>
dc cront ab s ;Lsig;1( ;i ( .ada uslkcllo, El dir< torio <lcro n t a b s ) u le. scr /us r / s p o o l /
cron/ c r o n t a b s . C< cita ordcli. podreni<>i csl>vcifi<.nr il )l<.vo ir<.hi<o cle coiltiguraci<il.
l)orrnr cl a c t u al . dii i r lo , etc . A (< tiliu i(iil i<'nlcit r a l o ) i l i o s n ) s conlutl() c le I l
oi'de ii)di<'ada:

cronta b a r c h i v o B v < )l>laza < I ar(hiv<> d< colifigilrai)ii a( t;il p<>r vl archivo ci pv<'ifi
('ado eu al ('h)vo.
cronta b

- 1 L i i t ; L<I ;in liivo cl < onfigr) in <ll I sari<.

cronta b

- e V e r t i l it<- eclitar vl )< tiivo dv c<ihgur i< in <I<l iisario.

crontab - d B <)rr;) cl ;Lr('llivo cle cohgm('t< <I(-'I uiunri<>.


Ftl algt)as versioes d(- crontab
se clpl(.a l)i. o('i<n -r p u r(L l>orrnr el arc)iivo iiidi< ilo.
cront a b

- c d i r P <rl i iit(' dc'hliir ii nu vo <lir' tori<> <lv cronta b s . S<)lo < l 'ldniini i t l n<l<>r

pl 'dc I l)L('('r Liso < I(' Pst a op('lll ('o xi t o.

E algiinoi s i ste)as exist(. Ia I>osil)ili<lad d( ( . v i ta r q i i e ( i ( r t o i i i i a r io s p v<l;i hacer


liso (le la <nle c r o n t a b . l ' a n ( e l ) o. e xiste u ii a r ( ' hivo <le ('olifigilrac'i, <letiolit)acto
/us r / l i b / cr o n / c ro n . a l l o w . q iie <)litivc l i lista d<' llsilarios qil<' il( clv hacer ll)o <lc
ln on l cn .

L (L) u>l)')lli q i ' < api)rczca (.'Il l;i i i ) t ( i e s t a r )li exc luiclos. E)i L i ) lx c x i i t e

<loi archivos cfco)iiiados /et c / c r o n . a l l o w y / e t c / c r o n . d e n y n r a v r lit ir c> <l< n< g;ir


uso n, 1s ll)ll)11)os cl(' ln ol (I(' c r o n t a b .

r v s pec t iv)('tv. Si l (xi a r ('hi vo i n t ( 'T)01(.'i o

('xlslc, c)lnlqlll(1il l)ii'H) p<l)a tilizal la onf v.

15.1.2.

F o r m a t o d e lo s ar chivos de configu r acin

El forlilato <lc loi ' c h i vos d<. <<>figi)rac i( <le cron vs I)ast. llitv vsta<l ir. ('<la l( )
liit;i de s(is o sivt P ni))p<)s. i('parn<los p<>r (spacioi C hlnco. El for)ato de seis ciL)pos
p <>r liivn Ps Pl qu < s c i i ) u< it i ;i i( g i l i <l;)llivn t c ;

minuto hora da mes daswemana orden

RA-MA

15.1. PROCESOS AUTOMTIGOS

3 45

Es posible tambin introducir lneas de comentarios, siempre que comiencen por el carcter
!, Cada campo indica lo siguiente:
minuto I n d ica un minuto dentro de una hora. El rango vlido va desde 00 hasta 59.
hora Es la hora del da. El rango vlido va desde 00 hasta 23.
dfa I n dica el da del mes. Su rango va desde 1 hasta 31.
mes Es el tnes del ao. Su rango va desde 1 a 12.
diasmemana Indica un da de la semana, El rango vlido va desde 1. que corresponde al
lunes, hasta el 7. que corresponde al domingo,
orden Es la orden que debe ejecutarse,
Cada uno de los campos anteriores relativos a tiempos (los cinco primeros) puede contener
lo siguiente:
Un asterisco, indicando que el campo es vlido para cualquier minuto, hora, da,
etc.
Un entero simple, que identifica a un nico minuto, hora, da, etc.
Una lista de enteros separados por comas, indicando que el campo es vlido para
cualesquiera de los enteros indicados.
Dos enteros separados por un guin. con lo cual el campo es vlido para cualquier
entero comprendido eu el rango indicado.

Ejemplo:
Vamos a crear un archivo deconfiguracin que indique a cron que cada media hora.
desde las 8:00 hasta las 22:00. durante el mes de mayo, nos enve a un archivo informacin,
indicndonos quin o quines estn conectados al sistema, Para ello, el contenido del
archivo de configuracin debe ser el siguiente:
$ cat f i c h c r o n
! minuto hora dfa mes dfames orden
0,30 8-22 w 5 + who $>$> /users/chan/gente

$
A continuacion, para colocar este archivo en el directorio de cront abs daremos la orden:
$ cronta b f i c h c r o n

La orden crontab renombra al archivo f i c h c r o n con el nombre del propietario (en el


ejemplo, el usuario es chan) y l o coloca en el directorio de cr o n t a bs. A p a r ti r d e ese
momento, cron comprobar si ha llegado la hora de ejecutar la orden. y si es as, lo har.
Adems del mtodo indicado para ejecutar programas a determinadas horas, todos los
sistemas UNIX soportan la orden at, que permite tambin ejecutar programas de shell a

C. 'APTULO 15. Wf ISCELNEA

346

RA-MA

deter<ninadas horas. La or< len at se encarga de copiar el programa <lc shell indicado eu su
directorio de conf i g uraci, normalmente /us r / s p o o l / a t . L a ejccu< i<in real dela orden.
cuando llegue su hora, la lleva a cabo otro programa diferente de at qu e se denonfina
atrun. Es responsabilidad de cron que el programa atrun sc ejecute cada cierto tietnpo.
La forma de llevar a cahn lo anterior consiste en que el <d<ninistra<fnr del siste<na en su
archivo de configuracin de cron incluya una lnea donde sc llam< al prngrama atrun del
n)odo siguiente:
0,5,10,i5,20,25,30,35,40,45,50,55 + + + + /usr/lib/atrun
En cl caso antcrinr. el programa atrun se ejecutar cada cinco nuuut<xs. No cs muy recn
<nendable definir intervalos de tiempo de activacin de atrun i nferiores a cinco minutos
n i mayores qt uu a hora. En algunos sistemas atrun reside en el directorio /u s r / s b i n .
En algunos sistemas, cl so del progranra at est reservado solamente para aquellos
usuariosque aparecen lista<los en el archivo /usr/lib/croa/at . allo. En otros sistemas,
este archivo se encuentra en cl directorio / e t c . V eamos seguidamente la sintaxis de la
orden at:

Sintaxis: at opc1 hora[fecha] [+ incremento]


at opc2 [trabajos]
La orden at ejecuta las rdenes que le indicamos desde la entrada estndar a la l<ora y
fecha indi< adas. El final de datos de entrada se marca < on cl carcter fin de archivo Ctrl-d.
El cantpo hora puede darse de forma numrica o como palabra reservada. El campo fecha
puede darse como unes ya fecha, como un da dc lasemana o con<o una palabra
reservada. El campo incren<ento es un nmero entero seguido de una palabra reservada.
Veanlos 188npcnnps v'll<das para los dos modos qu<' 'tenemos de. invocar 18. orden.
opci:
-f ar c h ivo Ej e cuta las rdenes contenidas en archivo.
-m Una vez que el trabajn es couipletado. se enviar correo.
opc2 :
-l

f u f o rn>a sobre la lista de trabajos enviados por el usuario.

-r P ermite horrar trabajos que se encuentren en la cola. Para horr<u. un trabajo de


la cola, debemos ser su propietario o el administrador <)el sisten<a.
En el <:an<po hora dehniremos fa hora a la cual deseanux~ que se ejecute la orden. Tiene
el formato hh:m<n [n<odifi< ador<~]. Los minutos son opcionales y se pueden dar con no o
dos dgitns. Cualesquiera dc las siguientes horas son vlidas para at : 7, 7:15, Or 15. Como
modifica<lore, se pueden emplear las palabras a<n y pm. En este caso se asume que se
trabaja con una hora basada cn un reloj de 12 horas. en lugar de 24, Como palabras
reservadas podemos eruplear las siguientes: mi<tnigbt, noon y no. Cuando empleamos la
palabra reservada no, debe ir seguida de un incremento.

RA-t>IA

1 5.1. PROCESOS AUTOWITICOS

347

El cau>po correspondiente a la fecha tiene uno de los dos forn>atos siguientes: mes
num [ao] o di a . E l campo mes h;>ce rcfercr>< i a uno de lc>s cloce rueses con su r>ornhr<.
completo o abreviado a las tres primeras letras. num es u>>a f<>rma <lc referirnos >l u>es
de forma r>u>rica. y ao indica el ano corresponcliente daclo con cuatro <lgitos. Si se
err>pies el segur>do forntato, dia indica ur> da <l<. la sernar>a d<>do p<>r su non>bre completo
o abreviado por sus tres primeras letras. Tambin se pueden emplear las palabras today
y tomorrow para rcfriruos al da actu;>l o al prxiruo, rcspn.tivarncutc.
El can>po incremento especifica ur> ir><.rcrr>cr>to rn>mrico rcl;>tivo ;>1 tic>p<> actual. El
>uu>ero debe ir precedido de ua de las palabras siguier>tes: rnrnute (mir>uto), />o>>r(hora).
<l<>y (<la), a eek (se>nana), rnonth (>nes) o yerre (a>o'1 osus plurales. La palabra r>ert se
puede por>er con>o sir>c>ni>r>o cle + 1. ('u;>lqui< r <le los fonatos siguientes es vlido para
at:
at
at
at
at
at

8 : 3 0pm Feb 24
0 93 0 t o mor r o w
1 4 : 2 0 Mon
n o on
now + 7 h o u r s

Eje> uplc>:
$ at now + 20 minutes
warning: commands will be executed using (in order) a) $SHELL
b) login shell c) /bin/sh
at> who
at> l s - l
at> <EOT>
j ob 2 a t 2 0 0 1 - 0 6 -2 1 1 8 : 4 7

$
Er> cl <jcmplo anterior, lr>s rdcr>es who y l s - 1 s e r;n ejecutadas cuaudo trar>scurran
20 u>ir>tos. El n>mero 2 es el iclentificador de t r abajo quc neccsitareruos cn caso de
qu< rcr elimir>r Ia solicit>r<l. Existen otras d<>s rdenes r<qa<ior>a<l;>s con at. en>pica<i >s
para rar>ipular 1> col < de solicitudes. Estas sor> atq y at r m . Su sintaxis se nu>cstra
< oti>racin:

Sintaxis: atq
X isu;>liza los tral>;<jos que se er><cr>tran e la <ola sir> haber si<lo ej<>< ut ui<>s todava.
X<>rrn>clmente se visualizan en el or<lcu en que sern ejecutr>dos. Los trabajos visualizados
son 1<>s pertenecientes al usuario que ir>voca la orden, o todos los que hay en la cola, en
caso dc quc l quc < jecute la ordeu sca cl ad>r>ir>istraclc>r dcl sistcnm,
Ejcu>plo:
$ atq
1 2001-06-21 1 8 :4 6 a

chan

348

C A V T ULO 15. <tlSCKLNEA

2 2001-06-2 1 1 8 : 4 7 a

ltA-t<tA

chan

$
En el caso anterior. tvueinos dos trabajos eiicola<los < on i<lnitilica<lorrs l y ' >.

--'WP' -.'Mh. .
Sint a x i s :

4 4,:.' . ' '~

a t r m [ t r ab a j o (s) ]

Esta ord< ii s< iitiliza para < limin;ir d< la cola los trab;i jos rspecificados por sii idvnti
fica<lor dv trabajo.
Ejeinplo:

$
1
2
$
$
2

atq
2001-06-21 1 8 :4 6 a
2001-06-21 1 8 :4 7 a
atr m 1
atq
2001-06-21 1 8 :4 7 a

chan
chan

chan

$
P ua eliniinar un trabajo con atrm, vs necesario conocvr s identilica<lor. cos;i <tire p<>dvmo
l ograr lis< ieiido uso d< la. orden atq. <.'oirio podeuios ip r .iar, despus dr ejvcut.;ir atr m
eliminanios el trabajo ciiy<> identificador iiidicanios.
Cualesquiera dv las rdeues currientadas para ejecutar rdvnes a un tienrpo prefijado
asuiiivn qur la liora drl sist<r i es correcta. Sin viiibargo, por rniltiples razones, la supo
siciii anterior puede ser f;ilsa. En estos casos es ne< esario iriodificar la fech < del sistenia
y par;i ello podreuios rn>picar divers is rderies, <los d< l;s <ii drs c<iiiientarnos svguida
rriente. La pr iiiiera es la orden dat e q i i r y a f n e t r a t ada en iin captiil<i anterior. aunquv
no comvritiunos iia<la a< r< a d< cmo pu< dr utilizarsv para modificar la fecli;i. La op< in
-s s< giiida dr l a i i<i< va fr< li;i se eniplea para este prop<>sit<i. El sigui<'iite ejvrrri>lo ilustra
un caso particular:
! date
! d at e
jue j u n 2 1 1 8 : 3 9 <10 CEST 2001
! d at e - s " J u n 2 1 1 8 : 4 2 : 0 0 CEST 2001"
jue j u n 2 1 1 8 : 4 2 : 0 0 CEST 2001
!

Es evidriit< qur para poder niodific ir ia feclia dvl sistenia debernos ser a<irriiiiistr;ulores, si
no vs casi la orden fallar;L La seguridii ordvrr qu< vamos a describir y que tambin prrmitv
r uodificar la fecha es la orden rdat e .

S intaxi s :

r d a t e [ - p ] [- s]

[se r v i d o r ]

RA-I(IA

l ').2. BFAI.IZACIX DE COPIAS DE SECI. HIDAD

349

La ( <ln rdate se < rpies para determinar la hora de ur>a n>quiua ren>ota o tan>bin
para sicronizar la hora del sistema lo<al cor> Pl dea rr>quir>a rnota. La op< i -p
se err>plea para visalizar la hora de r> servi<lor r< r<>t,n y la op<in -s se Pn>pk'a para
<lef>i> la f< ha<n>.d<- co ln idi<a(lo por la n>qil>H ><'>nota.
Ej< n>pl<):
$ rdat e - p v v w . c s . b e r k e l e y . e d u
[ www.cs.berk e l e y . e du) Th u Ju n 2 1 1 8 : 4 4 : 3 7 2 0 0 1

$
E este prirer ej('mpln hen>os visualizad<) l > f<(ha dcl nrrlcnadnr remoto qc ni siqr>irra
es der>estro In>sn horar io pnr er>cor>trarsc. c Estados Unidos. La orden rdate sc encarga
(1< realizar d>r>odo traspan'nte 1>s tra<l i<>r>es p<'r>i(r>ts.
En < l siguiente <.jrpln van>os ;> ro<lihcar rustr. fha para sir>< ronizarla <nn la dp
I>1> OI'de>>i>do I'Pn>nt n;

! rdate ftp.fi.upr.es
[ ft p . f i , u p rr>.es] Thu Ju n 2 1 1 8 : 4 5 : 2 3 2 0 0 1
! rdate -s ftp.fi.upm.es
! dat e
jue j u r> 21 18 : 4 5 :4 2 CEST 2001
!

E el ej>pln anterior. despus de cnn>prot)ar qe la hora <lcl servidor cs < orrecta, sirrcrn
l>Izarnos la [>(stra co la d( l or<leador l'Pn>oto,

15.2. Realizacin de copias de seguridad


Ur>a de las principales resp<>us)>bilidades d< l a<l>ir>istra<lor del sist(>a es preservar l<>s
datos al>na('er>ads P <'I s>stPIa. pll>ih<'ad() > real>z'><lo < ()pias <lsgridad d( f or ma
l(glar. La cat >dad d< i>>forrr>aci()r> q(' d( 1)em<)s copiar y ( a<la ( ut o tiempo d( b( mos
ha('('rlo. dependr (l(' la >>t ilia('i<)r) (Iu(' s(' haga dcl sister'>. Para vr l a c ant idad de
infnrn>aci<) <Ie d< bn>oa copiar fr(<.nt< m<>e. Os fijarr>>ns er>(lrrllr>s reas qr><' snn
modificadas <nnt.ir>uarer>t<.. Los vol<"r>dos totales <l<l sistcr;> s< harn cor> mr>cita mer>os
lrecuer><ia. Sinna bu> polti(a dp <oph>s d< s<grida<1 sp pd< n llegar' > pr<lr datos
valiosos. Uu sistema es tar>to rs seguro <;>ntonrsfr<>PI>temet( se l>agar> l >s copias
de sgnridad. ><'<'an>os a (or>t ir>a< i< las )rd<'rs e>r>pied;>s para realizar. < atas >pias.

15.2.1. Ordenes para realizar lascopias de seguridad


Exister) ml t it >l de <'dees para realizar copias < le seguridad. Adn>z>, < >l>l sistema
partic>rlar sul( >q)ortar sus propis r<lene o <)1>jetn de facilitar el pro(esn. Nosotros
no varos a < nmetar t o<las 1s nr<lr>es, I>os vamos,> fijar. s()lo P aq< llas qe se encent r Pn
<' todos los sist<'n>as y q>r. aden><>s. sPa nly >lsadas.
cpio Esta ordcr> existe Pr> todo sist( n>a U>Y)IX y ti('<' lr> posibilid'>d de n('p('rar' ar('l>ivos
sl('ccinna< l<)s.

350

C A P I T U L O 15. iXIISCFLANFA

Pc RA-htA

tar Es la ordeii ins a>itigua para l>arer copias de seguridacl, p<>r lo qi>e es la n>s portable.
tar permite recuperaciones selectivas de archivos, pero. adems, tan>bin permite
aadir datos a la cinta, tarea que no se poda realizar roii la otra orden.
A coiitiiiuacin las describiremos detalladan>ente:

CPg
Sintaxis: cpio -o [cvx]
c pio - i
[ dcr u v >t>fx] [ m o d e l o s ]
cpio - p
[d v tt>rx] d i r e c t o r i o
Descripcin:
cpio - o L e e l a entra<la estiidar para obteiier una lista de archivos y los copia cn la
salida, junto al estado de dirlios arrl>ivos. Se utilizar para la realizacin de copias
de seguridad.
cpio - i E x t r a e archivos <le Ia entra<la estiidar si coinciclen con los n>o<lelos qe puede
a parecer como arguu>ei>tos. Por defecto. estos modelos correspondern al " * " , e l
cual referencia a todos los arrhivos. Los ar< hivos extraclos sern condicionalmente
rrc ados y copia<l<>s en rl directorio art,i>al seg>n las opriones q>ie lleve la orden. Sr
utilizar para la rec>ipera< in de la informaci volcada eu cl dispositivo.
cpio - p I . ee la entra<la estndar para obtener tina lista de archivos q>ie son creados y
copiados. segn las opciones que lleve la orden. en el directorio qiie aparece romo
argun>eiito obligatorio.
Opcioiu~".
-c Escribe o lee cabeceras de informacin en caracteres ASCII.
-d Crea directorios si es necesario.
-f Slo copia los arrhivos que no se aclaptan al patrn especificado.
-> Mantiene la fecha de modificacin de los archivos cuando se crean archivos.
-r R enon>l>ra los archivos interactivamente.
-u Copia incondirionalniente, aui>que el arrliivo va exista.
-v I m p r inie una lista <le los iionibres de los archivos.
Ejemplos:
$ l s + . c l cp i o - o > p ro g
2 5 bl o c k s
$ fil e p r o g
p rog: c p i o a r c h i v e

t >.2. IIE>)>I.IZA(.',IN DE C'Ol'IAS DI; 'iEOURID>>D

' RA-RA

351

Cori l; )r(lc arlterior v>l(arete<>a 11;lcia el ir<'llivo pro g lo i a n l l i vos lltcte en l( i i gtl)ij(' C
<tire 'xiat<'11(' el (lir . t<)ri<> a< t)i)ll. Al l ) r e gui)tar . < > lltiiia< i(>ii
p or <1 til)o <le anl i i v o .
(o l' i (>r(h ii fi l e. p < l rti<>a )f>n <iii (tii( < I an hivo (s d e t i f > o cpi o .

$ cpi o - i
2 S bl o c k s

< pr o g

$
ltll ('1 c )<'l1)lo at<'l'l()l' I('atii l> irl<)s 1<>+ >l)< hiv<Ls <>rif)iii)ll<'a aha<el)a<los eli el

l r ch i v < >

prog < ( I <Iir t<>rio ;i< tlial. Vri < I < f(iii >l lii>a volc)t(lo la if<>rriia< fri ll< ian )ir< liiv<i
<>nlitiariu, I<> noll)ll (a v<>l(al <st)l lf<>)lll( ll>ll h)l( l>i )1 llf<hivo <I<'(llsf)<>altivo (<>l(> f)e<l<'

scr una n i <ll)(l <lc < ii)t :i. (1( <lis( <> r< ')il) ll >I(' l i <lis<f('t(.

! find /etc I cpio -pdm /seguridad


3 150 bl o c k s

C(>i) l<i <>r<lct) atit< ri<>i >l>farero>a to(l<>s l<)s archivoa sita(los ( ti (1 (lin( t (>ri<) /etc y
( le sa posil>1< i si)l><lir tori<>a < ri < I < lin < tori<) /segur i d a d .

tar ~

w jf

S int a x i s :

ta r

w4

l < )a

c~

[ op c i o n e s ] [ ar ch i v o ( s ) ]

L; >r(1(n t a r f /( ) 7>r(t</>it ) ~( ) l t i l i x ( t l ~) t a ( < >ll(li/<>af) ua g ) l ir<l ll ()


ar('hlv<)s ('1) ll)l>i ( ' l l )l)l ll l a g c tl(';). ; a z' l ) l l ('(1<' s('l' )lt lit/)l<I<> f)')I aa l l l l ( i( rlal ( )

tr c I ) e r I I '
i ( 11f><'Il'

ii)f<>rti) u i<r) < l( < il ll<fi< r ;ir< hiv<> o (lisl>osit iv(> g( lltr i> >i<><iii(t< trs. <Iia>a n gr ihat>les
;in Iii v< >a >nliti'irios.
<
l>i ;ilgiiri<> le I<> ;in Iii v<> < iiI< scarii<>s rc llii ir < of>iii < i ii <Iin < t <iri<>. tar r o r r < r t o
<h> el (lirect(>ri<> y p<)~ii>l< a lll><lin ( t <>ri<>~ I>;ir)i n >g('r t<)(1)) I;) lfo) lli<'I<)ll (()lit<'lli<1'i (ri
l(>s I ll)s I<>a.
L;Li of)('I<)<'s Il<> llec<'~t~)tl. ('I f) I ( ( ' l i I ; ) i ( l ( 1 g ) i i <>)i. L Li )i(ci<)<s tar

(s t i r i co r i t r <>l>ll)ls

I)()1' lli('<ll() (ll l l )l ('hlv('. lli ('lll <'+ ll)l)i <'>)<l<'lla < l' '>)l'>)<'t('I <'s f()i i)l(hi I)<>l')) letl) l . ll > ll)l>i(hi

< l(' Ill<'l()li. s()gl ll(l>l (Ic1 i <> ll)'i. l 't l'lL< l la ll)>i<l)L. )< ><
l l ll('ll< >I'('s < le f l ll)('l()ll. L)L+

1('t l'as (f('

l l ll)('ll>ll Il('<lcll 'l' l'L< si',>ll(''t < '+:

c ( i P>111 nlrev<) )lr (hiv<) s< l il)i< ti<I< > <les<le < 1 llrili< if)i(> <l< I ar< Iiiv<>, <Icst rvii<lo lo <ltic

hah i.
r A i ) a(1<' ir( liivo >il fii)al (l( I ;ir( iii) o.

t I . i ata Ius ii<1>res <le ll>(1<>i h>s ))n'liiv<>a <II I ;ir< liiv<>.
u .>1() llli< le l< >> l ll ('h l v(>s (ll I<' s< >l l I ts l I<'v(>s ( t)l(' l(>a <'( >t <' l< los <'11 l@l ('o f)ll I cal ix<la

c <>ii ta r .

x >( itt ilix'i l>il"I <xtraer' <I( I lll ( lllv< >tar 1<>a ;ircltiv< >s iti<l i< a<l<>.
I.l)s i<><lific;)<l<)rcs <l< ftiti< l<)na<) loa sigicrit< >c

352

CA P T U LO 15, MISCELNEA

f a r c h L o s archivos sern almacenados o extrados del archivo arch. arch normalmente


es un archivo de dispositivo correspondiente a una cinta o un disco flexible. aunque
puede ser cualquier archivo. Si arch es el carcter -, se utilizar como archivo de
dispositivo la entrada o salida estndar,
l Se mostrarn mensajes acerca delos enlaces simblicos que no se encuentren.
m Provoca que no seactualice la fecha de modificacin (en caso de extraccin) escrita en
el archivo.
p Hace que archivo obtenga los modos originales, ss como el propietario y grupo escritos

en el archivo.
v Normalmente, ta r t r a b aj a silenciosamente sin mostrar mensajes. En modo verboso
tar escribe el nombre de cada archivo procesado con la letra de funcin que rige la
accin.
w Fuerza a tar a pedir la conflrmacin de la accin a realizar con cada archivo.
L Sigue los enlaces simblicos.
Z La informacin es comprimida o descomprimida con el programa compresa.

z La informacin es comprimida o descomprimida con el programa gzip.


Ejemplos:
4 tar cvzf /dev/fdO +
A lrit . t x t
lat ex 8 . aux
l at ex 8 . b i b
l at ex 8 . b s t
l at ex 8 . d v i
l at ex 8 . l o g
l at ex 8 . s t y
l at ex 8 . t e x

En el ejemplo anterior hemos llevado al disquete todos los archivos del directorio actual
comprimidos con gzip. Hay que tener cuidado con la orden anterior, ya que toda la posible
informacin contenida originalmente en el disquete se perder. Adems, la unica forma de
volver a leer la informacin sera utilizando t ar , el posible formato original del disquete
se perder tambin.

Ahora veamos cmo podemos determinar la informacin contenida en el disquete:


4 tar tvzf /dev/fdO
-rw-rw-r chan/usara
- rw-r w-r c h a n / u s er s
-rw-rw-r chan/usara
-rw-rw-r chan/users

SS321 2001-06-20 13:09:33 Aitit.txt


1 789 2 001-06-20 1 3 : 0 9 : 3 3 l a t e x 8 . a u x
630 2001-06-20 13:09:33 latex8.bib
19466 2001-06-20 13:09:33 latex8.bst

RA-MA

1 5.3. COMPRESORES

-rw-rw-r
-rw-r w-r
-rw-rw-r
-rw-rw-r

chan/users
c h a n / u s e rs
chan/users
chan/users

353

10836 2001-06-20 13:09:33 latex8.dvi


8 9 54 2 0 01-06-20 1 3 : 0 9 : 33 l a t e x 8 . 1 o g
4663 2001-06-20 13:09:33 latex8.sty
9466 2001-06-20 13:09:33 latex8.tex

Para recuperar la informacin almacenada en el disquete tendramos que emplear la orden:


$ tar xvzf /dev/fd0
A kit . t x t
lat ex 8 . aux
l at ex 8 . b i b
l at ex 8 . b s t
l at ex 8 . d v i
lat e x 8 . 1 og
l at ex 8 . s t y
l at e x 8 . t e x

$
La orden tar puede emplearse tambin {y suele utilizarse mucho) para enviar la informa
c in a un archivo ordinario al que por costumbre se le suele poner la extensin . tar .

Ejemplo:
$ tar cvf euromicro.tar +
A kit . t x t
lat e x 8 , aux
l at ex 8 . b i b
l at e x 8 . b st
l at ex 8 . d v i
lat e x 8 . 1 og
l at ex 8 . s t y
l at ex 8 . t e x
$ l s - 1 +. t a r
-rw-r r 1 chan igx 122880 jun 19 18:36 euromicro.tar

$
Si el archivo adems quedase comprimido, se le pondra una segunda extensin, gz o Z
dependiendo de si utilizamos como compresor gzip o compresa. Estos compresores los
tratamos a continuacin.

15.3.

C o m p r esores

Los programas compresores son herramientas que nos permiten reducir el tamano de
los archivos a partir de algn mecanismo de compresin de datos. Sin ninguna duda, los
compresores ms utilizados en el mundo UNIX son compresa y gz i p . A m bos basan su

compresin en el empleo de un algoritmo adaptativo denominado algoritmo de Lempel


Ziv. Esta tcnica de compresin consigue mejores resultados que el algoritmo de Huffman

354

C A P I T I.'LO 15. l<IIS('ELAXEA

QreA-t IA

utiliz lo por las r<l< lles pack y u n p a ck . L a c o l l l pl csi<ii de di<tus es ii aspe<'tu iuy
inlportatc, piiesto que p ( r l n it e iq)r<>ve< liar <'spacio <.n dis(u o, e el c aso de re llizar
copias dc segiiri<lad, aliurr i < si io y lieiiip<>. Veanios seguidai<.nte lus <los <onipresores
ms lit iliza<lu.

g zip i

aC

Sintaxis: gzip [opciones] archivo(s)


LB Orden gZip Se ellea para <.'Onlpl inlir lOS datu de lu ir< ii Vu, Si< lpre qi le Sea O
sihle. c ida archivo qi t ratiuiios ('oii gzip es reel1)lazado por su cqiiivalelit ( ( ' onipriliii<lo,
Bl cual se le afiiade la ext<.ui<!Il .gz. manteliien<lu los <lereclios <originales y la f(ch>l,
Lu >1lzehlVO,'i COipl'll>ll(lu pil l e<i Ser reStaiiradu (deSCOIriiidOS) ha< i<.Ii<le uSO d(

las rdclles gzi p - d u g u n z i p . Ei i l a descompresin tanlbieii s< r<c<>iiuccii los arcliivos


c<>ipriinidos coti compress (extesi< . Z), pack y lgln otro cunipresor. gunzip talii(>ien
recolio<.e las exteiisioes . t g z 1 . t a z. ( t e suri l o s o i i l b res <orto <le las ext eiision<-s
. tar . gz y , ta r . Z. res( < t i vame i i <'
t ..
Op('loes:

-c Ll i salida de gzi p v a B, p<ll>ll' <1 IB, .ialila estndar. Esta op<'ioli pil('d<' utilizarse para
visilalizar por palitalla archivos de texto colprinli(los.

-d Des<ontpriiiie archivos (uulpriuiidus.

-1 Visualiza ifornlaciil de los Br< llivo coq)rili<l<>s.


-q Supriie todos h)s iiiensajes <le ateci<>ii,

-r R e cilrsivo. Cou esta op< i, gzip se iuev< reciirsiviuent<or los sul><lire< torios, si
algiiiio de los Br< liivo esc(ifi(a(los desde la llu a <le <r<l< nes esn <lire<.torio.
-t C o n i p r i lei)a la iiitegridil <lc los archivos coiilprinii<los.

-v >nudo vcrl>oso. Viuliza cl om))l< y el p u r(etaje de re<luccion liara calla Bl< liivo
conlpl uid<) o d<'scotnprllludo.

1 Conlpriiue rpido (la rela<'i(>n dcompresin es menor).


-9 r o n l ) ) ll le ul<ijor (tarda ln tiempo en < oilipriniir).

Entre <.l 1 y cl 9 se pileden considerar todas las opciulies interiiiedias. El valor ilt i lizado
por def< ctu es el 6 (equilil>rio eiitr( v<.loci<lad y purcetitaje de reducci<li d taui;uio).
Ejeiiiplo;

$ l s - 1 i w o o os96- i p c . p s
- rw-rw- r - - 1 c h a n u s er s 2 1 9390 may 24 2000 i w ooos96- i p c . p s
$ gzi p - v i w o o os96- i p c . p s
iwooos96-ipc.ps: 50.2'/ -- replaced with iwooos96-ipc.ps.gz
$ ls -l iwooos96-ipc.ps.gz
-rw-rw-r-- 1 chan igx 109129 may 24 2000 iwooos96-ipc.ps.gz

RA-MA

E el cs<> d<! <j<>pl<>, el p<)r< n>t >jc <l< red(ci es del ')ll 2 'l<,, s< 1>as <1<1 ta>a<> <l< l
archivo rigial <le 21!t.:$!)0 l>yt< s al t;>u>fu> del an hivo (on>t>rin>i<lo. lt)9,12><J l)yts. Il
por<.n>taje <lredcci<n sclc estar <ompre<lido <>tre l :">0% y 7(1%<, t>;. > a>< 1>iv<>s <l<
text<>.
:kho>" >. p I a, dcs( o>pl l111' ( I >u ( h>vo ( l< l)(>os clpl( I' l OI < l< sig>>ientr :

$ gzi p - d i w o o os96- i p c . p s . g z
$ ls -l iwooos96-ipc.ps
-rw-rw-r-- 1 chan igx 219390 may 24 2000 iwooos96-ipc.ps

compress
Sintaxis: compress [opcionesj archivo(s)
La or(l< compress sc utiliz;> par c<pri>irr(hivos. Al archivo resultatc st 1a<1<
la Pxtensi . Z. L<>s ar< hivos pri>idos > compress 1>cdn> sr <lcsco>pri>idos (.<)
u ncompress <> compress - d .
()p<" ioes:

-c Prov<>(a <lue la s>>lida d< compress vay;< dirigid > a la sii<la <st>ndar.
-d Des<:(>>1>rin>< .
v ! lodo vrl)oso. l ' ada vcz <tuc sc (.on>pri)( t > ar( hi< o. s( visualiza cl p<)r(.ent ;> j( d(
rerlu<.ci <le t;u;>.

Ej<>i>lo:

$ compress i w ooos96- i p c . p s
$ ls -l iwooos96-ipc.ps.Z
-rw-rw-r-- 1 chan igx 127747 may 24 2000 iwooos96-ipc.ps.Z

$
Cn>eral>ctc se <>l>t in>( Ijor( s p()r<(taj( s <l( r r d u ( ( i< d(" t ao < on gzi p <tu(' (()

compress.
'> u<>s ;> n<tar a cotiua(i u n>( todo l) >state < xtPdi<l(>. que se e>pka para
I>lnnu>r <1 for>a < on>pri>irl. Pl c<>t< id<l< t<)<lo u rhol <le directorios n> u >i< o
><rchiv<>. st;> (s 1>< for>a hal>it><l e <t< se ahacn>a la i f m>a(in, por rj n p lc>. P
los s(rvid(>r(s de ftp. D < ( s t e >(>do, ('ad<> traen>os >tn ;>r<hivo, estan>os traynwloa
<structra de <lir< ctorios con>pl< ta de forma r>pi<l;>. por estar la infonnaci<) con>pri>ida.
s('c>lla. ) ('alos ('>o p<>dP]os h>>('el esto. 1>glc]os (lP <leseanlos >dn>acc l' tod(>s

lo. archivos q< ( ucl >an <le r>estro dire<'t<>rio de ar] u><lu( cn u >nicor< hivo, deo>i
>><l<> todo.tar ( p o r t <'< r f<>]>at(> de tar ) y p o st('riorn>ente (o>pri>ido. Par realizar
es<>, dar>os las <>r<l<< s sigui< nts. u]>a vez c<>lcados e el <lirc< torio d< iicio:
$ tar cf todo.tar +
$ ls - 1 t o d o . t a r

356

GAP T U LQ 15. MISCELNEA

RA-MA

-rw-r r i chan igx 102400 ene 22 19:02 todo.tar


S gzip t o d o . t a r
$ ls - 1 t o d o . t a r . g z
-rv-r r 1 c h an i g x 6 7 3 20 e ne 22 1 9 : 0 2 t o d o . t s r . g z

Si nuestra versin de ta r s oporta la opcin z, lo anterior se podra haber realizado en


un nico paso. A continuacin, si queremos descomprimir todo el rbol de directorios,

posiblemente en otra mquina, daremos la siguiente orden:


$ gzip -dc todo.tar.gz I tar -xf

o t,ambin:
$ tar xvzf todo.tar,gz

15.4.

X I 3 M ( X D i s p lay M a nager)

XDM, o X Di s p lal/ Manayer,es un programa que facilita la uti lizacin del sistema,
X dm proporciona servicios similares a aqullos proporcionados por in i t , g e t t y y l o g i n en

terminales alfanumricos, es decir, preguntar por el nombre de usuario y su palabra clave,


autentificar al usuario e iniciar una sesin, pero todo ello bajo un entorno grfico. Aunque
xdm esfcilde poner en marcha, existen ciertos aspectos oscuros en su configuracin. Cara
al usuario 6nal, cuando ste inicia una sesin, xdm busca en el directorio HONE el archivo
.xsession que contiene la configuracin personalizada. Este archivo es el equivalente a
SHONE/. xini t r c c u ando iniciamos una sesin ordinaria con start x o similar. Si queremos
que el inicio sea el mismo tanto si utilizamos xdm como si lo hacemos con star t x , podremos
realizar un enlace entre ambos archivos, de modo que los cambios realizados en el primero

se mani6esten en el segundo y viceversa,


S ln .xinitrc .xsession

Un ejemplo de archivo . xsession podra ser el siguiente:


$ cat . x s e s s i o n
! !/bi n/ sh
! SXConsortium: xinitrc.cpp,v 1.4 91/08/22 1i:41:34 rws Exp $
userresources SHONE/.Xresources
usermodmap~SHONE/.Xmodmap
sysresources~/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap /usr/X11R6/lib/X11/xinit/.Xmodmap
! merge in defaults and keymaps
if [ -f Ssysresources ]; then
xrdb -merge Ssysr esources
fi

15,5. ARRANQUE DE XDM 3 5 7

if [ -f $sysmodmap ] ;then
xmodmap $sysmodmap
fi
if [ -f $userresources ]; then
x rdb -merge $user r e s our c e s
fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
/usr/X11R6/bin/xterm -font 10x20 k
exec /usr/X11R6/bin/twn

1 5.5.

A rr a n q u e de xdm

Xdm puede ser configurado por el administrador del sistema para que sea el modo
estndar de conexin al sistema. Para ello el administrador debe modificar el archivo
/et c / i n i t t a b y d efinir un nuevo nivel de arranque por defecto, generalmente el nmero
G. As pues la lnea que indica el nivel de inicio por defecto, que viene a ser algo como lo

siguiente:
id:2:initdefault:
Debe pasar a. ser la siguiente:
id:5 :initdef ault :
A partir de este momento, cada vez que se arranque el sistema, el inicio de sesin ser a
travs de una presentacin grfica.
En algunos sistemas UNIX se permite el arranque de distintos gestores de arranque de
X. En el caso de RedHat o Fedora, existe un archivo de shell denominado /et c / X 1 1/ p ref dm
que permite seleccionar cul de los diferentes gestores de arranque, si es que existen varios,
debe ser utilizado. Supongamos que es xdm el configurado por defecto.
Una vez que tenemos iniciado xdm es necesario conocer ciertos detalles relacionados
con su funcionamiento. El primero es que si pulsamos Ctrl-C en la pantalla de inicio de
sesin, la sesin se reinicia. El segundo es que si pulsamos Ctrl-R, la sesin xdm finaliza,
Adems, si no logra iniciar la sesin de forma correcta aunque su nombre y clave sean
correctos, si despus de la clave (sin pulsar EN T R A R ) p uLsamos Fi y a c o n t inuacion
ENTRAR, se inicia una sesin en modo a prueba de fallos f a i l s a f e , l a cual incorpora
solamente un terminal X. ni siquiera se inicia el R i n do' Ma n a gcn

15.5.1. Configuracin de xdm


El administrador del sistema puede fcilmente modificar los archivos de configuracin
de xdm para que ste se adapte al funcionamiento requerido. Los archivos de configuracin
suelen residir en alguno de los siguientes directorios:

35S

C A P I T U L O l . ! >llSC'ELANEA

RA-'AIA

/usr/lib/Xii/xdm
/usr/X11/lib/Xii/xdm
/usr/var/X11/xdm
etc/Xii/xdm
El ar< llivo 1>ri< ip;11 de col>!iguraci<>n es xdm-conf ig, < l <><l resi<l a l g uno <1< los <li
rectorios <u>teriorlete i<iia<los. L)< u<>1<tier nu><l<>. xdm s<.>[>ort q>1< le idiqu< n>os u
arcllivo <le <.ol>liguraci>1<lif< re>>tr <lel est;l><lal, para ell<> <l< b<1<>s i>lvocar a xdm d<'l >o<lo
s>g>l>e>l t.c :
! xdm -config archivo-de-configuracion
Esto anteri<>r < s ll>y ltil para realizar l)rel)s. El <>r< llivod<>u!igur'<cin llor <lefecto
<le xdm pue<le s< r sinlilr<r al sigui<t< :

! cat xdm-conf ig
! $XConsortium: xdm-conf,cpp /main/3 1996/01/15 15:17126 gildea $
DisplayManager.errorLogFile: /var/log/xdm-error.log
DisplayManager.pidFile: /var/run/xdm.pid
DisplayManager. keyFile: /etc/Xii/xdm/xdm-keys
DisplayManager. servers: /etc/X11/xdm/Xservers
DisplayManager.accessFile: /etc/Xii/xdm/Xaccess
! All displays should use authorization, but we cannot be sure
! X terminals will be configured that way, so by default
! use authorization only for local displays :0, :1, etc.
DisplayManager. O.authorize: true
DisplayManager. J..authorize: true
! The following three resources set up display :0 as the console.
DisplayManager. S .setup: /etc/Xii/xdm/XsetupS
DisplayManager. S .startup: /etc/X1i/xdm/GiveConsole
DisplayManager. J3.reset: /etc/X11/xdm/TakeConsole
I

DisplayManager+resources: /etc/X11/xdm/Xresources
DisplayManager+session: /etc/X1i/xdm/Xsession
DisplayManager+authComplain: false
!

E>1 l se especifica dn<lresi<len los diferentes r< llivos <11)leados por xdm (ar< l>iv<> de
recursos. >ensaj<'s <1< error, arcl>ivo <le l>loqueo. etc.). A o ntimlacill <lcscribi>uos los
archivos m<s r< 1 vates.

15.5.2.

E l ar c h i voXresources

El arl>ivo Xresources l>rol)o>'<.'ioll'1 ll>ellas de las op<'ionos utilizarlas por xdm, Cad<>
l >11 cl< este arcl>ivo contiene r<lenm <le ol>figurai<ll< del til><> xlogin+at r i b u t o y a
<otinuaciu el valor <l< l atril>uto. Por <'.j< >llplo, la lnea siguie>>te iudiara qe el atributo
greet i n g <lel programa xlogi n es igul a la cadena "Bienvenid o . . . " . Este es el >acusa je
ll>>l>< >p<Llque <11?alece <'.>> la venta>la <le llres< lltaci.

Qe RA-MA

15.5. ARRANQUE DE XDM 3 5 9

xlogin+greeting: Bienvenido
A continuacin se muestra un ejemplo autoexplicativo de aquellos aspectos que podemos
modificar en la presentacin inicial.
! ca t X r e s o u r c e s
! $XConsortium: Xresources /main/8 1996/11/11 09:24:46 swick $
xlogin+login.translations: !override$

Ctrl<Key>R: abort-display()$n$
<Key>F1: set-session-argument{failsafe) finish-field{) $n$
Ctrl<Key>Return: set-session-argument(failsafe) finish-field() $n$
<Key>Return: set-session-argument() finish-field()
! Ancho del borde de la ventana de login
xlogin+borderWidth: 2
! Color del borde de la ventana de login
xlogin+borderColor: SlateGray
! Mensaje que saca arriba en la ventana de login
xlogin+greeting: Bienvenido a CLIENTHOST
! Pregunta por el nombre (login)
xlogin+nameprompt: Nombre:$040
! Pregunta por la clave (password)
xlogin+passwdprompt: Clave:$040
! Mensaje en caso de error de login o passwd
xlogin*fail: Intntalo de nuevo
!ifdef COLOR
xlogin+greetColor: CadetBlue
xlogin+failColor: red
! Color de las letras login y passwd
! (por defecto para quien no diga lo contrario)
+ Foreground: b l a c k
! Fondo de la ventana de login y passwd
! (por defecto para quien no diga lo contrario)
+Background: l a v e nder
! el s e
x logi n+Foreground: b l a c k
xlogin~Background: white
!endif
XConsole.text.geometry: 480x130
X Console.v er bo se : t r u e
XConsole+iconic: true
XConsole+font: fixed
Chooser+geometry : 7 0 0 x500+300+200
Chooser+allowShellResize: false
Chooser+viewport.forceBars: true
Chooser+label.font: +-new century schoolbook-bold-i-normal-~-240-+
Chooser+label.label: XDMCP Host Menu from CLIENTHOST
Chooser+list.font: -+-+-medium-r-normal-+-+-230-+-+-c-+-iso8859-1

CA P T U L O 15. MISCVLNEA

360

ltA-!<)A

Chooser+Command.font:+-new century schoolbook-bold-r-normal-+-180-+


!

15.5.3.

E l a r c h i v o Xsetup

Este es el prin)er @he/l script rje<.ttta<h> por xdm al < o)t)r))zar. I'ara l>t parttalht prirrcipal
: 0. la en) pl("a(ht et) lrt mayora de los casos. el arcltivn <le cnttgtlra( i<)n es Xsetup 0. para el
r< ato. el ar<'ltivo de configura( in es Xsetup. Las r<l<t<<'s(fuc poder()s ejecut. tr desde este
programa de shcll, snn las lrtistnas <lue en cualqtticr otro. A<p)i podetnos inclttir rdenes
para poner urr fortdo ou xset r o o t n <nrr xv, lanzar una consola X. ctc. A <nntimracinn
se it>cltryen ejeruplo tpico de este arclrivo:
! ca t X s e t u p 0
!!/bin/sh
! $XConsortium: Xsetup O,v 1.3 93/09/28 14:30:31 gildea Exp $
/usr/X11R6/bin/xconsole -geometry 480x130-0-0 -daemon -notify
-verbose -fn fixed -exitQnFail
! Coloco como fondo un mosaico de ladrillos con xv
/usr/XiiR6/bin/xv -root -quit /etc/Xii/xdm/brick.xpm
!

E l a r c h ivoXaccess

15.5.4.

Es tur archivo de coufiguracin que permite detetrnittar quin puede acceder a xdm
<)tilizan<lo tertial<'s X difer('.rtt(s a nttestra mquina.
Bsi< ar))e))te los ar< ltivos <lc configura(i(>rr rtts relevantes de xdm sor) h)s in<licados
;tteriormente, aunqtte existen otros adici<>ttales qtte nn van)<>s a tratar.

1 5.6.

E l s i s t ema de registro de eventos de U N I X

Una de las tareas 1)al>itualrs d<' un adriuistrador de sistemas es la rnonitorizacin del


sist< ma. La tnayoria de l(>s sist(.ma basad<)setl UNIX t)t ilizan tut sul>sistema denomirtado
Syslog para llevar a (al><> esta labor. Syslog penrrite registrar los eventos que ocurren en
<tn sistema (pnr ejentpln, el ac(teso <le un usttat io) (lasifi< rrdol<>s s('gttt su origett (focility)
y stt nivel de prioridad o intportancia (ler>cl).
Las entrarlas en los archivos de registr<> ptt(<len proceder de varios subsisten)as, cnn
cretametrte:

auth para el sistema de attterttica<:in.


authpri v

p a r a informa<'in relativa a la seg<)ridad del sistema.

cron para cl sistema de actividades peridicas cron.


daemon para lns pr<>c(reos q<te se ejecutar) en segundo plano como detnortios.
f tp para el sist,etna de transferetrcia de archivos.

Qc RA-MA

15.6. EL SISTEMA DE REGISTRO DE EYENTOS DE UNIX

361

kern para los mensajesdel kernel.

lpr para el subsistema de gestin de impresoras.


mail para elsubsistema de correo,
news para el subsistema de noticias,
security actualmente seencuentra en desuso y se considera seudnimo de Auth,
syslog p ara los eventos del propio subsistema de registro.
usar para eventos definidos por el usuario,

uucp para el sistema uucp (Vnix to Unir cop1/).


loca10-7 p ara registrar los eventos que ocurren durante cada uno de los niveles de arran
que correspodientes.
Los eventos originados por cualquiera de los anteriores subsistemas pueden clasificarse
segun su importancia en un determinado nivel. Los niveles reconocidos por el sistema de
registro son:
emerg (panic) mensajes relativos a condicione; que pueden hacer que el sistema no pueda
utilizarse. Habitualmente los mensajes de este nivel se difunden a todos los usuarios.
aler t

c o n d icionesdel sistema que requieren una actuacin inmediata., por ejemplo co


rrupcin de una base de datos.

cri t

s i t u aciones crticas, por ejemplo el fallo de un disco duro.

err errores generales. por ejemplo un fallo en el sistema de comunicaciones de una apli
cacin.
varning m ensajes de advertencia general, por ejemplo la inminente falta de espacio en
un sistema de archivos.
notice notificacionesgenerales.
inf o mensajes de carcter informativo. por ejemplo la entrega de correo por parte de ese
s ubsistema.
debug inensajes de depuracin, por ejemplo la activacion de un determinado mdulo en
un programa,

15.6.1. Configuracin del sistema de registro


L a configuracin del sistema de registro se lleva a cabo a t r avs del archivo /'et c
/sysl o g . c o nf . E n l podemos establecer las reglas a seguir a la hora de registrar cada
suceso. Cada regla contiene dos campos: un selector y la accin asociada a ese selector.
Ambos campos seseparan mediante espacios o t,abuladores. El campo del selector contiene
un par que especifica el origen y el nivel, siguiendo la sintaxis or i g en. niv el , a l que se
debe asociar una accin.
Las lneas que comienzan por un carcter it se consideran coment,arios y por lo tanto
son ignoradas por sysl.ogd.

362

CA P T F J[.O 15. Xf[!)('Ef.:<<.'NEA

BA-!<[A

Selector es

Los selctore sirven [)ai>l< tcriir>ar 1 si>1>sistenia qe nrigii>a el registn> y < l ivel
de >l f)ol ti>lic>a d(.' di<'llo f('gist >o. S' 'o>l>f)ol H. Il >[e dos p>ilt (s se[)a>'(las pni' l iii pli lit o
S>g>l>c>ldo IB siilta)(ls:

origen. nivel
El caif)n or i g e n [ )u('<I<' s(.r ialqiii< ra dc lns sigiiiciites: auth. au t h p r i v . c r o n . d aemon.
kern. lpr,mail, mark. news. security (sinin>n d( auth). syslog. user. uucp y loca10
l>asta loca17
E l campo nivel p i i(<l( ser riialqiiirra de Ins sigiiientes: debug, inf o, not i c e . warni n g .
warn (sicaiH> <l<' warning), err . e r r o r ( s ii>i>o <le errf. c r i t . a l e r t . e merg. pani c
(si treni mo < le emer g )
F'ndcios utilizar < l (>u.< tcr <.<>i~><l + para n fcriros a todos los <>rg<is y todos
Ios niveles (I<.'[>edi('<l<) d(' d<)ilc lo coloquciiios. Ta>hi( p<)<le>iiost i l izar l>i p>ilabra
reservad;i none para r( f('rirnns i i> iiign i v <'1 de un drl e r n>in>ido origcii.
Es posihl< espe< ifi(>ll' v>ii >os o>gr< s col> rl i>sino ii>v< I d<. priori<l<l, separa>ido di< lios
orgenes (n i i n a <nia. T a i hin s( p ('dc r s <rihir v a r ios selecto>cs f)al>1<i>la>is>a
iic('1011 s('paialfo l os s cl('cto i '< s ('oll

<ll>p>ll>lo y ( ' o l i>a.

Acciones
l' ste r>illlpo dct('i.'ii>ll>ii 1>ls ii<'cloiies q(1(' se <Iebcii t o>ar (oii < ada registro <I lo p<>r ii

slr<.t<>r. La a in >s < 1( n>< nt il es pn>ce<l('.r i su n gitn> ('.n >iii h( li('.rn. pero tan>hin se
pilcd('I> (OI>s('.glill' (O>l>l)OI"L'll>l>el>tos (1>st. >>lOS
t segll> SC'< 1B aCCI< ii:
Archivo co nvencional

<l< be <l>us( (n (1 <;iiin c<ii[>l<tu desde /. [ < )ifi) 1s rv<ntos

d<l scfectnr s< registran <h>>tr<> drl are[>ivo <Iadn.


Arch i vo s f l f o E posible t i l i a>' lll>a tiihera con no>i>hre coii> <l< stiiin de los iiieiisajcs
rl< 1 sistriiia (Ie registro. Par i esto hasta con colo< >ir el s>bolo "I" a i i t es <lel iioiiibre
de la tiih( r a.
Consolas y t e r m i n a l e s E l d estino d<. losiens>ijcs pdr srr t amhiii uii terriiiii;il. por
eje>nplo /dev/console.

Mquinas conectadas en red cl d e i iioiiio sys l o gd [>cni>it( ( rivi ir lns are[>ivos de re


gistro a otra ni iqiiina c<ie( t .Ia a travs <le ua red qii( d i spoga t>iiiihin <le (ste
siibsistenia. Si se <l<ca eviar l<>s registros de iia ii>qiii>i a otrii siipleinciite (fc
hemos en[n<ar. (n el (ampo dc lii a(ci(t> correspondiciite cl nnibre <le la miqiri;i
precedido pnr ui>a <ff. Por sii parte. Ia mquina que recoge lns n gistr<>s rlrlx ejecutar
<1 deiiionin sysl ogd coii la <>pciii -r . ya qiie [)or defecto dilio dinni>in nn escucfia

la real (,>[2/UDP)
Usuar io s S r p i i e<le iintiicar la n< urreii<ia <le uii <fct(r>i>l<> < veto a u u sa>in <n
[ocad en el campo <le accin el nornhre dr lo </n <l< dicho s u ario o i i s ii;irios.
separados por comas.

l>).(i. I;L SIS'I E)>):)> DF. HF('l!)THO DF. FVE>%TOS DF. l.'NIX

RA-t<IA

363

Todos los us u a r i os conect a d os Cr i ; ir)<l<) (>crrrre a)g>iii sri('('so esp<(i ilri)PI)TP lllgetlte,
lrol'rriiillricritP sc ri< >tf)('>1
l
a t < l(khlos us)1'll ros < l ll< s(' ( 11('ri( rit i crl ( ori<("t ><<l<>s al stit( tila,
P ir(i <oris(g)iii cs t ( ' ( fp( t < > 1)@sr< ((>ri) 10< ;ir iii) c lr ( l ( r

"* " ( n ( l ( ; i i o ( 1 (' (( ili.

15.6.2. Utilidades
ar"'I (lir(' p(>(I<lirios Priv r'ir' rilresl l o< pr<)i<)>i rli('rlsii l(".< 'il >iot(r)iii (lc i <'glsti < > < I(' <.'vciltos>.

s <' potr(' H. r)ii(*st. I" i <lisposici<)rr la or<lcn l o g g e r .

loggefrW ~ ~

- ~

>te < g

Sintaxis: logger -p facility.level mensaje


Por i ji iiipl(>. )i < l<w icros r<gistr;ir ( I ii i < iis ij( ' ' R e i n i c i an d o s i s t em a d e c o r r eo
ele c t r n i c o ' ' < ii mail ;i r > (t< r iiifori;<ti(<> t i)iv)ir< riios li> r(lcll:

! logger -p mail.info ''Reiniciando sistema de correo electrnico''


!

C<>r)ll)1(>l ir ( tilos cl t es(ii( a(lo < I<' cs;i ()Pie)i ll )s< ( ( )011>iii(l< > ('1 >ii ('l)iv(l(' regs t B) (lc ( <>ITPO
elect r <r)i> /var / l o g / m a i l i 1> >r()er) cat <lc la si@iii( tit(' f<>mii:

! cat /var/log/mail
Jun 1S 13:35:33 ccplus oscarg: Reiniciando sistema de correo
e lect r n i c o
!

15..3.

Ej e t n p lode apl i cacin

A < ont iira( i<)rl v('r (' tilos ( llio ( orlflg>tir>ir' <'Isist ('iii<i d(' i <'t> lst r0 p(<Iii a(l(i) >t BI'Io ii r)ll<'s

r ras< ( < si<la<les part ii.irlares. Por jeirllo. si <liier< rin>s <)ti< to<los los < vcntos gerrcrti(l<>s ;i
t l av< s (1( I orig< user s< ;iii rcgist r ><l<>s ( ii ( I ;<l (liiv<> /var / l o g / s y s c o n t a ; i u li n rr)s 1i
i)g<ir('ii(<' l'<fglil al 'il ('l)iv<) (1(' ('oli trgl ir'ci('lll /('1 c/.'>vslog,('Oli f :

! Save boot messages also to boot, log


loca17.+ /var/log/boot.log
!Registrar todos los eventos de USER al archivo sysconta
user.+ /var/log/sysconta
t'ir i i n l<> iiri iisiiari< il > n n i r ) t <'rn te <l > r <l< ii<'s s< ( jecirt'i ( I s< i i / ) / / e t c / b a s h r c . S (
< l<'s("l 11('v>ir' irri r ('gistr 0 (I<' to<los I(>s ilslriiri<)s (lli(' Prltl >ll) ill sist( ' i i )a <.'Ori sil li(>1"i(l<' e))ti' t<l'i
; il risiii<>. I.<is registros s< (i<ira)i/ar ir i t r ; <vcs <1< l Orit.<'rr user y t ( i i <)r>ri <"rt< gi>ra in f o .
(<I i <iii;i (1( I is < iitr i <l is iil r<gistn> < st;ii; < ti(lin t i<l'< >r< I i pala))r i < I lvc Conta U s er y s (
r ist rar>< ii <l >ir< liivo /v a r / l og / c on t a u s e r . ( ii i <l<i s<. r<)iii< ( los < iiriil)i<>s < ><>rt ir)i<)s
<'l) (.'l slsl <'lllii <lc rc g i st l'0 s' 1<'I)<'li('oll><<'l'v>il'l<is l'<>li/)l<los ('11 ('I cj('I('l('10 l<i>t('r'r< >r,

Los (;irl>ios i i r it r<lit< ii <-ri < I >ir< liiv<> /etc/ s y s l o g . c o nf s <>ii Ios siiri(li t ( s :

$64

C A P T ULO 15. MISCELNEA

@ ItA-MA

!Registrar todos los eventos de USER al archivo sysconta


user.t /var/log/sysconta
!Registrar user.info en contauser
user.info /var/log/contauser

Se tiene un pequeo sistema para servicios de Internet compuesto por tres mquinas. La
primera de ellas es un servidor'web, la segunda un servidor de base de datos y la tercera un
servidor de correo electrnico. El administrador del sistema dispone de un ordenador en

su despacho conectado a la misma red que las mquinas anteriores. El nombre simblico
de su ordenador es Sysadmin. Con objeto de facilitar la administracin de los tres equipos
es necesarioque todas las mquinas servidoras enven sus mensajes de regist;ro al equipo

del administrador segn la siguiente tabla:

Eventos

origen. nivel

Conexiones seguras
todos
Falta de espacio en disco

local i.warning
m ail. +
d aemon.aler t

Nquina
S ervidor
S ervidor d e

web
correo

/,Qu cambios deben realizarse en cada una de las mquinas?


E n el servidor fe b :
!syslog.conf del sexvidor web
daemon.warning Csysadmin

En el servidor de correo:
syslog.conf del servidor de correo

+.+ sysadmin
En el servidor de bases de datos:
!syslog.conf del SGBD
daemon.alert @sysadmin

En la mquina sysadmin:
En la maquina sysadmin seria necesario ejecutar el demonio sysl ogd con la opcin
-r con objeto de activar la recepcin de los registros.

15.7. EJERCICIOS

RA-MA

15.7.

3 65

E j e r c i cios

15.1 Cree un archivo crontab que permita eliminar todos los archivos que se encuentren
en el disco cuyo nombre sea core y no hayan sido modificados en los iltimos cinco
das. Este programa debe ejecutarse todos los das, de lunes a viernes, a las 3 de la
madrugada.
15.2 Ha ciendo uso de la orden at, deje preparado un mensaje para que sea enviado por
correo a todos los usuarios de su sisterua el da 25 de diciembre del presente aiio.
Compruebe a continuacin que el mensaje est en cola para ser enviado. !Cmo se
podra eliininar dicho mensaje.
15.3 Ut,ilizaudo la orden cpio. e nve todos los archivos creados o modificados durante
la iltima semana a la unidad de cinta o. en su defecto, a un archivo denominado
copia.
15.4 Ut i l i zando la orden ta r, i n t r o duzca todo su directorio HOME (incluidos subdirecto
rios) en un archivo denominado datos. El archivo debe quedar compriniido.
15.5 Ex t r a iga el contenido del archivo datos en un directorio denominado tmp que est en
su directorio de arranque.
15.6 Ha ciendo uso del sistema cron, programe una tarea para que se realice una copia
de seguridad del directorio /home todos los das a las 23:00. La copia de seguridad
se realizar con la orden t ar , estar comprimida y se almacenar en el directorio
/ var / c o p i a s .
15.T Configure el sistema de registro de eventos para que todos aquellos relacionados con
el correoelectrnico se almacenen en el archivo /var/log/emai l.
15.8 An ada una entrada al archivo de registro utilizando la, orden logger. La entrada
deber proceder del sistema de correo electrnico (mail ) y t e n dr nivel i n f o . ,En
qu archivo quedar almacenada la entrada~
15.9 Pr ograme una tarea peridica para que todos los das a las 21:00, se guarde una
copia comprimida del archivo /var/log/email en /var/copiasLogs. Despus de
hacer la copia se vaciar el contenido del archivo /v a r / l o g / e m ai l,

PARTE

Anexos
Bibliografa
ndice alfabtico

III

Bibli
ografa
[Aderso ct 'Il., 10(J3] Adcrsorl, C.. Dou< ett(, D., Glovcr, J.. Hu. >Y., Nisllirnoto. I(I..
Pcck, G., and Sweeney. A. (1!M ) . x f s p r ojert l r < llitccturc. Techniral rr port , Sili<o
Grapllics.
[Ba< ll, 1956] 13acll. )(I.,l. (19(3G), The Desiy>) of thr U/)/IY Operatiny Systen). Prcrltice
llall itenlatiorlal E<lit iorls. Este Iaal desrrib o r l l ) t u )te d< talle la ar<lite< tra
<l( UivlIX Syster V <le AT(' T. 1VO es 11libro tlc<licado a 1>rogmaradons, v') cplc s
efoclc es c>< scriptivn, pc ro es es(.r ial par;l < nrlncer las ideas impli< a<l> crl la c<>difi
cl in (lel llclco de UIVIX. Debido a los dcrecl)s cle ATA:T tiene sobre ( l c <digc> <1cl
sistema, el autor no lo publica. Sirl e)l>argo, opta por ir luir <.l seudocdigo dc. ;dglrr>s
dc los algoritmos ctue clescribe.
[Bnlsky acl Knrrl, 199G] Bolsky. !vl. ;m(l K nrn. D . ( 19(r;>). The Ko rn S l)ell Co mmat)<t
and Pmylanl)ir>y L()r>yaye. Prerltice llll. 2nd edition. Es la rt fen ncia ohligacla <lc
aclu('llos ql' (luieren < orlocer a fondo el intrpn tc (le r<lc nes Knrn (ksh). Describe
todas las pc'cliarldad((s dt est(', )trrpl'cte (lc <r'<lerles. a i co)o s prograracin.
[Bovet. <Ind Ccs lti. 2002] Bovet, D. P. ;l Ccwati. bh (2002). UI >ctcrstallctiny the Lirlur
4 c>>eL f1'Heilly, 2ncl edition. Es url libro <luc des<.riht el nlicleo <lc Linux cn s versin
2.4. Ghrc to<lns lns spertos clc esta versin el<llic lco excepto el sistema de rcd. Ivo
sc trata dc un a dcsrripcin general de <ada u)lo de los colponentts cnnstitlrycntcs
de este sistema operativo ind(pendiente de l l ar(iit( ( t u ra, si)lo que se (entra cn l;l
anpritertlrra 1<0xH(>, sta es s caractc rst.ira fim<1)lmcrltal V s prinripal ventaja, p< ro
tambin puede ser un ir)env(r)i< nt< p;u;) rp)el lectoro int< resa<lo e aspectos dt l)ajo
ivcl, La ir lusirl y <lrsrripcic <lc c)<lig<> d<l sist(ra se llt< c<a) (lif<rrcntrs lliveles d<
d< tall( en Cada captulO.
[Brooks. 19%] Brook. F. P. (L (1(J(4). Th e l l l y t hi(al h la>1-hl()th: Essat/s o>1. S<>ft.u><l>e
Enyirlecriny. A <l<liso))-)Vcslcy, 20th annivcrsary c<lition. E s n l i b r < o r pr< r)dete y
p ragl tico sobre (1 d< sarn>llo del sistcnl;l op(r<ltiv OS/JG(J <l< 113M. En l cl u l t o l
<l(arribe todas las p<'ripecia, prnbleras y error(s cornurles e el desarrollo clc sistcul rss
so(twar< ( orupl< jos con Iltit(1 dc pl'ogl" llt)dor< i. Es ua lect.ul'a nly n'('onl('dllble
v alerl,

[13rks et al., lM ()] B rk, A. XV., G<>l<lstie. I-l. H.. ;1 vorl 'Nerar), .l. (194(i). l'n li
Iiary discussi<> <>f l lic logi< ;ll cl((sig t >l a clec t r orlic co) pt ir>g irrst rlrt. Tt llrli< al
rcport. Institt( fo r A (iv ll)c(.d St,u<lies. Ur)iversity <>f I'rirct<>rl.

370

I l l leal.l(JG)t
A F IA

Qr ((A-,')IA

[B>1> lxs al>d A ) vil>l>g i. 2001] 13rr>s. A. <r><l U vllir>gs. A. (20() 1). Tt< ul- 7i nr < Syste)s u>r<!
thrir Pro<j>n<n<ir<y L<r>rgu<>!/<,s. A<l<lis<n> XV<'sley 1,<)r>gr'xi.,'krd vdit iorx.
[Btazzo. 1997] Bxxtazzu. G. ( l!)07). H<x>x/ R<'(rl-Ti>r>e Con)puti n<j Srjst<'.77>s.
Kluxvc r Aca
deri< Pblislrs.
[C'ard vt al.. 1!)04] Canl .
R.. ' I s ' o , ' l ' . . ( x( 1 T >v<'(di<, S . ( l !) ( A ) .
Dcsig
ar><l ir plcrvnt <tic> <)f
t l > < s e < orl e ) ' t c 1><l< d fil< systerr>.
P ro ve e <lir>gs
o l t l>e l i r s t Dx >tel> I n t< rnati<>>>al Syrxxposi1 o L i r >rxx.
Di sp o n i h k (
l>t t p;//w(v)v.rit.< dxr/ fs/'xthvrx>>.>it.<'dx>/ser/t/y / t y t s o/xv)v)v/llux/< )(t2ix>tro.ht>x>).
[C'or>l<tris <'t )>I., 2000] Coul<)xxr'is. Cl. F.. Dollin)rv. .f., arl Ii i>>dbc rg, T. (2()00). D i s
tr~t<c! Systvrrrs. Cour< p/s urrcl D((sign. A< ldison-Meslvy l' h l ishir>g C'c)rr>par>y. gnl
edition. Este libro proporciona urx itn)dxrcvirr a los prir>< ipic>s >xtiliza<los < rx cl diserxo
y < orrst r>r(cirx dc' sisterrxa clist r ibi<los b >s >dos ( n rc <les d< c stacior>as <le t rahaj y
servick)res. Algur>us de los t< x>xas trata(los en c'I libro sodc in>port ;>cia fx>xx<l ent;xl:
lla>x>ad>>s rx proeedirxxietos roxotos. scrvi<lorvs clr ar< l>ivos, transa<rionos at>i<.as, IP
plica< iorr <lv ;xrcl>ivos y lPC>ul>slos de proteccin y segurid ul. En c st'x tercera c.diein
sc ccrxtra nxcl>o vn sistcras dv ol>jctos distrihi<los (omo CC)RBA ) J ava R!(Il.
[de Castn), 2001] dc C>xstro. R . S . ( ' 0() I) .
I.i r >us ' . 4 > irtrrr(l rvrr>ory overvi()v.
l>t tp://lir>u)(corprcss< d.sourc <.fc>rg< .>xvt /vrn2-l/.
[Deitel. 1<J)J] D< itvl. JL l(I. (I JJS). Sistrn><rs O/)v7<rtirio.Ad<liso-Urvslcy Ihvroarrxeri(a
r>a. S.A.. 2>>(l (<litior>. Es r> lihn) <)uv tr >ta los sistvrrras operativos dc' 1<)s <listir>tos
tipos <lc ra<l>>in >s: grar><lvs. rr>i i y >r>i(ro. Ofn ce 1>r>a visir> arx>pli;> d( los s>st<'rl>as
opc r>>t>vos xs ('o>>ll>vs. ( 0>o l )XIX, l' .(IS, CV/1(l y )' XI .
[Draves. 1091] Drr>vcs. R. l'. ( 10<)l). P>xgc rvplacemvr>t arl r< fe>v<v bi( ex>xx>latior> i
rx>(l>. l'roce<.dir>gs of tl>v Sccorxd USEf) IX '>la(l> Syrposiurr>.
[Fer;lrxclcz. 2003] F<1>xa<lcz. G. (200J), Co r rcrptos <sieos<!( <>r<juitr<turu y sis t emas
oper<xtir'os. P>rhlic>>< ior>(s ETSITil , ' Al;>drid. 4 (di t i on. S ir plc y l k>l>'>l<'r>tP. >ll> gral>
libn) solv con< vptos gvrralvs <k ar<l>ritvvtra y sist(.>rx <s opvrativos. Es <le dcsta>xr
c r> < I )1o p>xso paso > ck sck 1>x>a ;xr(1>rite(tx>ra si>pie llega a ronst r>xi>se ux> sist< ra
operativo m>rltitan a. E <xr> lil>r<) r>>x>y <)i<la<tic<).
[l lorido. 2()00] Fl<>rifo.,J. I. 'S. (2()()0).,lo>>m <l fik syste>r>s. !.i>rur C'uzette.
[G xflxrx. 1!)9 1] Gaffi. A. ( l!)9-1). Dr<j Dr>77177>y
'.s C~u><te to the Intenrvt.
For>rrdatior>.

Elert n)r>ic Fronticr

[Garfik('I and Spaff )rd, 10!)()] Garfir>ki'1. S. 'xrl Spafford. G. (1<JJ(i). Pr u e rlcu! U/Vl.L'
Secrr>ity S'17>ter.rxet Seeurity. O Rvillv. 2d edition. Es simplvn>cte 1 rrrejor libro vrx
vl (.">>npo d<' la svgx'><l)>d dv los sist< mas Ubi IX. Des<;ribc c<xo sv p>>ede lxacP1' <1>x<' s>x
sistv>a sea. Io>s segrxro posible. Es una ol>r;x n>uy r<.Por>>er><lahl< .
[Gilli< s. ] Gillies. D. Th e F ) ( </<r< ntlyAskv<t Quest>or>s. Ac t <liza<lo peri()<li(ame>>te. Sc
puede <.or>seguir c l>t t p://w)v)v.f >(Is.org/f(s/realt i1rx<-(o>prrtir>g/fa(l/,

B IBI,IOGRAF A

RA-).IA

371

(Gilly aiid ) taff. 199i] G i l ly. D. ;irid Staff. (1. (l!)!)5h li t>II)'n r> ry>itst>ell (t><ir(iSystet l'
y .)olaris d). O 'Reilly, 2)>d vditi<>ii. Es iia v>(cvl< r>t< gii i <l referv( ia p>ira la iii >yora
dv las l del><(s dv I INIX ju nt o cor> sus op( ioii< s, Ad< n>cis. iricliiy( >1>i>ii< lantvs < jvti>pl<>
ilustrativns (1< fvorc(vii hi .riln<ensio>id vl t(xt o .

[llalin, 19!)] llahr>, H. (199), A St>iclenl's G<i<de tn VJVIX. 'A!cC*'raw llill. '2rid litiori.
Fs iiu g r ai i l i h l o p a r i ci(lri('llns (Ii>v d('s<'al> ii>t n)dil('lis(' vil ('.I slst('i>la opvlf >V<>1.'NIX.
Fl initnr a p o r t a t o (l o a<)iivll<> c)>r(>iii priii< ipiant< desea cnia)ccr: <)r<lenes. i>tiii<la<I<'s,
intvr'pr<'tes dv <)l <iv>>es. vi. X-V)> ir>dow, correo <'lvc'tri>iii('o. lloti('ias. ('f <'. No es ri('(('s'>rin
t<'rr<'r e>(p('rier><'i pr< via par i h or<larl<>. I.ii r<"s>ir>>vn, vs ii>iii <>1>r riiuy ad(('>>ad> p'ir
ll> t I odll<'lrs(' <.'Il l',it os l < rl>)>s.

[H;is< ri, l.l7:S] fl'>r>svrr. B. (l!)73). Ot><o>>t><><t


.N)tstct)>s l'r>r><.'(1)les. l'iv>>ti<'v H;ill V'l'R.
[Hcdri( k. I!)87] l l( <lri(k, C. L. ( l!)t(7). I t )o<i< t<n to t)ce Ir>t< r<>et. Prntn((>t,. Coruput<1'
l)c i<r> Facilitivs l ' r o>rp. 11>irgvrs.Tli< .'>t;>tv Lfr>ivcrsity <>f N< v,l< rsey. E iiri )irtc iii<>
<)e <>hlig;id > lc< tiira p>il'>c a<la<'llas p<'rs<)>las (lll(', s>ll corro('llill('lltos p l 'vvlos. pr et erid>ill

'>d<luirir i>t>as ideas 1)asicas <l< l<>s prot<>>l<>s TCI'/ I P . E l d o i i i i i ( i lt o pi i 4 . ( i i ( o ri


trarse c udist iiit is <lire(< ioii(s d l l > f('iii('1. )l >>lodo d v j < rnpl<> < it>ruina la sigiiiv>itc:
lit t p://w> vw2.)ll><ll <'ws.v(lll/ il l>U<'l'/t('p-do(s.I >f ll>l.

[Hartig <'t >il., 1!)!)7] lfiirt ig. I l . . l l<>liiiuirli, %1.. Livcltk<. J., Schni>hvrg. 'S..aii<l Ooltvl.
f 1 )<Ji). T l i ( ' p ('l'fol ll>l>ll'' <>fii>lelo-k('l>>vi-l)cisv(I ayst('iris. T < chriical r<'port. > Viss.
B('itr"'ige >n>r Iiiforinatik, T l.! Drvs<l< ii. l'akultat lrif ) r'iii'>tik.

flicho<, l!)9)i] ix< l>o<. B. (19!)Ii). Z < r> <c<l tic< :let <>f tl>c. Intr>n(t,

P r e i ) tic v Hall. I i i >

<ditioii . ' S v t r ; i t a cl v i >ii;> ii>tr<)<luccir>ii 1>itvriivt. A ( l u s e < lcsrihe t u < l<> lu <Ii>v iii>
pr'iiicipiruitv d< sc'a < ni>c>''r p ir > iiioversc' coii facilid ><l p<>r lutcruvt. I.;> priiii< ra <'dicinn
piic'dv c<>ris< giiir vi> lrttp:/ / w w w . ( s .ir><li;>lll>,<(hr/do(pr<)j(ct/ z('Ir/x( u - l .() toc,htrI>l.

[Kvrr>igair ar>(l Pikv. 19t)7] li vrr>ig >ii. B. U . ar>d Pik, R. (19)17). El ct<)eo d<' 1)r<)ye<crii<c
c <ca 1 :)VI Y. Prer>ti I I > II Hispano ui>cric(iii<i.!). :X. 11"cd>i<(ic>ii dv la <>1>r i Tli( UN I X
Vrogr;iiiiiiig Etivirontriviit. Prvrrti< v-H;dl. Tric. l!)g-1. Fs iiii lil>r <> c l>sf< o sol>re UXIX clc's
d(' <'I p>ii>t<)de vist x <l('I i>s>irio. Tivii(' uri capti i lo de<lic)d<> i la intv r f a)'. vntrv C y < 'I

sist <.iua.. El Ii) >ro ( s espv( i;i l r r i<


r>t < s<sE>r sal ivr>t c d( scril >ieiido < 1 ric o y v>ri i<l<> < ori j>>rito
d<' filtros dv <fii( <lisp<)iie cl sisteiiia ,

i s < otiio la p r o grcllll>ici()ri <lvl slioll. Ot n> )p< c

tn c)ii< 1(> li >v ir>t< r<'saiit( s<>ii l<>s captiilos d<dicaclos al <k'sarr<>ll<> dc aplica(ioi>vs (u

UN IX.
'Ix< rriiglian aud Ritcliiv, 1!)!)1] Kvrigh;>. B. U . ;<ud Rit(1>i(. D. (19!)1). Fl l cr>g<c<cje <lc
I)r<>!Ir<c)ccc'ior> ('. Vn i >ti< vH>ill ll i s p )ii>oaiiivricaiia, ) . A . L i > p r i i i i< r>i vdiciii <le este
l il>rn roiistit i i y e i i ; i r>rri; dv f i t o <iiv s< li;i vvr>i<lo aplicaii<lo par;i prograiu,ir v C .
Fl vstil<> <l< progr;iuia< i<>ii c)iie <lc fie esta li<>y riuiy dif i i i a l i<lo < iitrv citr<>s autores cfii<
<1vs>cr'loll)>ll softw <r< n> C y er i LL>IIX. L a svgiitid > a<lici<>i> ap irtecc >nio (<>i>s(c>iv>><ia
< l(' hc r><)l'il>al>la('rou dvl Iv>>g>1)lj('p<>I 14>1'te < lel A ir>vi i( ii N a t ioll>>1Sf >ll>(lal s lllst iI >ir <'
s(' aju 't>l 'I hi d<'firii(.iii d(1 A N ,)I C . A> >ll )1p('s>il' d<' < f>iv l >ltiiiia p;il;<1 r . l iv < I

luiiguiij< la ti< i>< la r><>rru)>. < I iii>cual de h v rr>igh;>r> sigia' sic ii<l<> >rica <>1>r dc priria r>i
ll>le>1sol>1'e hi progralua('l()1> <'1> 1('i>g>i)< 'f<' C

372

f3 1)3L IOGRA FA

RA-Mh

[Liedtke, 19(J6] Licdtke, J. (199,>). On niicro-keriiel ('orsstrucliosi. Iii 15th SOSP.


[Ma<lni<k uid Donova. 1974] ladui<k, S, E, aiid Donovaii..l. J. (1974). Operatiny Sys
te!n, McGraw-Hill Intei'ilat'sor)al Eclitions. ste ( uii libro >iii( iguo, per<> uo por ello
<leja de ser iriteresante. Eri l se <iana visin geueral de los sisteuias operativos eri
sus clistint<>s aspectos. tanto para los sistenias de esa poca corssu las previsiones para
sistemas futiiros. Este texlo av<la a < omprciicler rrsssclsos aspectos de los sistensas ope
rativoss. aspectos que hoy se daii por supuestos. pero que en aqucll'i poca no eran tan
evident<)s (debido sobre todo a la evolucin <ic la tccnologia).
[l< Iisssick et. al,. 19!)6] l< Kiisick, l. K . . B o stic, K. , K a reLs, M. . l , , u i d t ) u isrtcrnsars.
,1. S. (1996). The. Design. an<t Irrlpl<'r>sc'71/<stior> of >he 4.!r RSD UI>IIX OpeTAting Siystem.
A<ldis<>rs-Kr>esley. Se trata de un l i bro exceleutc sobre la arquitectura y d iserso de la
versiri Z,IBSD de UNIX . Est estru( turado eri partes que agrupaii los rs)cxlulos priri
cip'iles del sistema: visiu global. gesti <le nieusoria, subsistenia de eut.rada-salida.
procrsos. comunicaciones en recl y funcioamiento d(l si stema.
[lilcrskovic. 1992] lileiikovic. l . ( 1 992). Ope r <stir></ Systenss. Cori(ej!ts and D e siyn.
lcGraw-Hill. 2nd eclition, E s u u l i h r<> general de sisterssss operas.ivos estru<tiirado
l >sicam( iite eri tres part es: conceptos fundamental( s. implemcnt rsciii y conceptos avan
zados (sisteiiias riiultiproccsador y sistemas clistrihiiidos). Es dc clcsta<.ar cl desarrollo
del sisteiua operativo I~-lOS para IBl-PC. tanto c l< nguajc C coiuo en 1 ascal.
[Morgari and McHilto. 1987] Morgan. R. and icHiltors, H. (1987). Ir strodisciny UI>IIX
Systcni l' . l c G r aw-lli l l. E s te. es un lihr<> quc <les< ribe las rdenes de UNIX S ysteui
)>' desd< el punto <le vista <lcl usuario. Es recoiiicndablc para priucipi>ui(es, puesto que
viene a ser el manual d( UNI X ( m a n). pero con aburid'uit(rs cjcniplos y aclaraciories,

[Mrqiiez. 2004] Mrquez. F. l. (2004). UIv IX, Programacin Ai><snzad<s.


RA-lA, :3rd
edition. Es uri libro impre~ciss<lihle para t<>dos aquellos qe se clediqisen a la progra
rnacin eri entorno UN IX . t a nt o Systeiri s>' <.omo BSD. Eii l se <lescrihcu t<>das y
cada una dc l>ss llamadas al sistenia (System Calla) dc UNIX con aburidantes ejeiuplos
interesantes.
[Nemetls et al.. 2(N)0] Nemet.h, E., Snyder. G Seehass, S., and Heiu. T. R. (2000), UI>IIX
Systern Adrninistrutior> Harsdr>otc. P reutice-Hall, Iric, Niicva, l< rscy,,'3rd eclitioii. L a
a<liniuistraciri d<. UNIX es un aspecto hastruite sujeto al fabricante dcl sistcriia. Por
lo gerieral, los procediruieiitos clc adsssirsistraciu sois los irierios trausportables eiitre
mquinas. Este libro. tambin coriocido com(> la biblia <le la elrssirsistr;s(irs. describe
los prin< ipales aspect(>s a t(rier en c'uc'nta a la liora de administrar d i s t isstos sisteiss>ss
UNIX: entre ellos, S<>laris. HP-UX. Liux y FreeBSD.
[Pattersou asid Heuuessy. 1997] Pattcrsosi asid Henncssy (1997). Computar O ! y<sniz<st>ors
P Desiyn.: The Ha!(lis>u!e/Softtir!are Ir>teifare. lorga Kaufiiiauri. 2iid eclitiou.
[Pattcrson and Hennessy, 2002] Patterson ancl Henncssy (2002). Cornpnter Arrhteetr<!e.
:I Qu<srstitatir!e :Ipproach. lorg>sis Kaufinaiin. 3rd cdition.
[Robbins. 2001] Robbins. D. (2001). Advaiicecl Iilesystern iniplemeutor's guid. Iechnical
report, IBI, ht tp:// w w)v-106,ibns.com/devcloperworks/llbrary/ l -fs.lstiiil.

BIBLIOGII AVA

RA-t>1A

[Rusling, 1(J<J9] Bsling, D .

A . (1 9<J9).

The Li no

ker n e L

3 73

D si p onil> lc e n

ftp:// su)>site.nc.v<lu/pub/L inx/ docs/lim)x-<loc-project/linux-kcrnel/t lk-0.8-3. ps.gz,


Aunque. el libro no c u l ) re ln ) l t i n )a versin <lvl n)cl(s) de Li n u x, vs u t) < rvfer(ncin
obliga(la para principiantes y entusiastas dc vstv sistvn)n opc rntiv<> dv libre distribu
cin. El libro < ontivnv u)ultitucl cle figuras y estructuras dc datos que nyudnn en gran
meclida a entenclvr el cdigo del sistema.
[Silbvrs(hatz et al., 2(101] Silbvrs(hatz, A., C,'nlvin. l'. B., nncl Cagne, G. (2001). Operati>)y
Syxtem. Coneepts. . l o h n )V i l vy A: Sons. In(. ith v d i t i o n. E s t e l i b ro es u na b uena
introduccin para sentar las hnsvs tricns <lv los sisten)ns operativos. No tiene excesiva
dificultad y nl final a<)ndalg>)os c q>t))los d<>ndv ha(< un estudio cle los siste<nns n))s
emplc ados hoy en da. ns con)o de lns tendencias ft<)rns.
[Solomon nnd Russinovich, 20()0] Solo)on. D. A. an<l Russinovich. KI. E. (2000). ln s i(le
h1icrosoP' Windou>s 8000. !<Iirrosoft P ress. 3r<l eclition. E s s i n d u da n i n guna una
rcfvret)cin. ohligncla para tod<> nqu< l que dvs< v < or)o(vr nspect<)s internos d( disei)o del
sist etna %Viudo)vs 2()00, l'l lihr<> () <hre tod< >s los aspectos ligados n este sistema operativo
desde vl n)cleo hast.a el sistv)n clv archivos NTFS, pasnnd<> p<>r el sistema de red, la
seguridad y cl subsisten>n dc mvn)orin virt)>nl. El lihr<> inclyv <u) CD con hvrramivnt )s
para pod<.r obtener nf<>rn)n(i<n intern dvl sistv)na, de entre to(las vllns cahv dvstacnr
un depra<lor para el ncl(o.
[Stallings. 2001] Stnllings, 6' . (2()01). Si s temas Operativo. Pr enticv-Hall, 4th vdition.
Tra<luci<lo dv la obra. Opvrnting Systvn): Internals anal Design Principies. 4" edicicn,
20tH. Prcntice-Hall. In(. E un libro nu)y r(co)nvn<lnl)lv pnrn nq))ellos que deseen in
troducirse vn los conceptos relacionados c<>n siste)nas operativos desde un punto dv
vista genrico, ns con)o una obra hivn estructur uln y nn)vna que contiene ahun<lantes
vjn<p!os prcticos.
[Stvvvns, 1998] Stvvvns, )V. R. (19(J8). UlVIX 1Vetuiork Pn>gran)rn)ng. Prvntice-Hnll, Inc,
2nd (dition. Est( l i bre) s((. ntra vn ( l desarrollo dv nplicncione q))v <)vcesiten utilizar
l os servicios cle r d dv l s isten)a UNIX . P ara su l<cturn cs necesario tener u b u e n
conocin)iento clel Ivngu(<j( C. as conu> conocer las ll (n)ad'ls nl sistema UNIX, si bien
vn los primeros captulos sv hace un repaso de este segundo npart.ndo.
[Tanenhnum, 1997] Tnnenbnun). A. S. (1997). Ope)atin</ S</eterna< Desig>> A>>d 1>nplet))en
tatiorc Pr n t i c v-Hnll. 2))d e<lition. E s te libro posee tres caractersticas que l<) l)acen

aconsejable. Por un 1)do, vxpone iclens generales sobre sistemas operativos, particula
riza estas idvas para vl < nso dv UVIX y, dado que vl c<digo de UNIX es propio(la<l dv
ATkT , vl autor in)plen)vntn s)) propia versin de UNIX. a la quv llan)a 1<IINIX. y ofrvcv
el cdigo fuente para que el lvctor pueda estudiarlo, aprender sobre l y )nvjorarlo.
[ Tu)cubau)n, 1998) 'Inneubaun). A .
Prentice-Hall. Inc., 4th e<lit ion.

'S. (1(J98).

Str u( ' .t)<red Co) put(r O r e /a))i zati o)).

[Taenhnum, 2001] Tanenbau)n, A. S. (2001). hfoderr< Operatir)g Sc/stems. Prenticv-Hall,


2ud edition. E l li b r o c h re la t < n)atica de un c urso dv introduccin n los siste<nns
operativos. Cubre ta)nhin nspvctos relaciona<los con ) Vinilo)vs 2000 y I.i)u)x. as < omo

RA-MA

874 BIBLIOGRAFA

de sistemas operativos multimedia. Es muy recomendable el ltimo captulo dedicado


al diseo de sistemas operativos.
[Tanenbaum, 2003] Tanenbaum, A. S. (2003), Co mputar /l/etu/orbe. Prentice-Hall, Inc.,
4th edition. s t e es un l i bro excelente para introducirse en los conceptos que hay
involucrados en la comunicacin entre ordenadores. Esta tecnologa ha experimentado
un crecimiento muy grande y desordenado en los l t i mos aos, por lo qu e es fcil
perderse entre las muchas siglas y normas empleadas. El l i bro p r etende hacer una
exposicin clara rentrndose en la jerarquizacin de niveles conocida como Open Systen>
Interconection (modelo de referencia OSI).
[Timar, ] T i m ar, T .

Th e F r e quentty Asked Questions. Ac t u alizado peridicamente. Es

un compendio de las preguntas ms frecuentemente planteadas, junto con sus res


puestas, acerca de UNIX . Este FAQ (as se denominan estos compendios de pregun

tas planteadas frecuentemente) se puede conseguir en http://www.faqs.org/faqs/unix


faq/faq/contents.
[Vahalia. 1996] Vahalia. U. (1996). U% IX I n t e r nots. The Rew Ro n t ie rs. Pe ntice Hall.
El libro cubre los ltimos avances en sistemas UNIX , i n cluyendo SVR4.x, Solaris y
SunOS, Digital UNIX, 4.4BSD, )4ach y OSF/1. Su lectura exige conocimientos previos
de sistemas operativos, pero sin duda ninguna debe ser una referencia obligada para
todos aquellos que deseen conocer aspectos internos de sistema UNIX.

[van Riel. 2001] van Riel, R, (2001). Page replacement in linux 2.4 memory management.
Technical report, Conectiva Inc.. http:/ / w w w .surriel.com.
[Wurster. 2002] %urster, C. ( 2002).
edit.ion.

Co m p u ters: an i l t u strated History. Ta s chen, 1st

ndice alfabtico
Smbol os
.Xresources, 228
.bashrc, 88
.cshrc, 88
.exrc, 68
.plan. 203
.profile, 88
.project. 203
.xinitrc, 229
/hin, 30
/bin/login, 309
/dev, 31
/dev/null. 99
/et,c, 31
/etc/bashrc, 88
/etr/checklist. 283
/etc/passwd. 88
/usr/bin, 31
/usr/lih. 31
/usr/lib/crontab,343
/usr/mail, 31
/usr/man, 31
/usr(spool/cron. 343

A
adduser. 257
administrador,243
AfterStep, 225>
alias, 85
anonvmous, 202
apropos, 24
Arpanet, 190
autoindent, 67
awk, l 37
awk, matrices, 142
awk, patrones, 139

B
background, 84
banner. 18

hr., 72
hg. 116
bitmap, 223
boot. 303
hootws.it306
broa<lrast,. 320

C
cal, 18
calendario, 18
cancel, 334
rase, 169
rat, 38
rd. 37
rhfn. 262
rhmod. 35
rhsh, 261
clave., 9

clear. 19
cliente-servidor, 191
color, 216
contrasea, 12
cp, 42
cron, 308, 343
crypt,. 20
csh, 83
cut. 124

D
DARPAnet, l89
date, 16

dr, 284
difusin, 323
directorio, 28
Directorios, 271
DISPLAY, 228
dkspkay, 227
dmesg, 310
DNS, 328
domain, 328

3'T6

N D I C E ALFABTICO

Qc RA-MA

domainname, 195
du, 285

HOME. 88
hora, 17
hostname, 195

echo, 17
editor de pantalla, 61
editres, 224
egrep, l21
enable, 334
enlacm, 44
entorno, 89
env, 91
estados, 106
Ethernet, 189
ex, 61
exec, S4
exit, 11
export, 90
expr, 160

F
fecha, 12
fg, ll6
fgrep, 121
6glet, 18
file, 46
filtro. 100
find, 130
6nger, 203
for, l72
foreground, 84
fork, S4
Isck, 283
FTP, 190
ftp, 191
fuser, 282
fvwin, 213

G
gcc, 5
geometry, 226
getty, 304
GNOME, 234
grep, 102, 121
group-ID, 309
grpck, 255
GRUB, 309

H
head, 40
history, 85

icolllc, 227

id, 51
if, 163
ifconfig, 323
Image, 30
image, 303
impresora, 8
init, 304
initdefault, 305
Internet, l89

J
jobs, ll5

K
KDE, 234
kill, l l0
Korn, 85
ksh, 83

L
LILO, 309
link, 43
links, 35
Linux, 5
ln. 43
login, 10
logout, l77
lp, 21
lpadmin, 334
lpc, 333
lpd, 329
lpmove, 340
lpq, 332
lpr, 20, 331
Iprm, 332
lpsched, 334
lpshut, 334
lpstat, 336
ls, 33

M
mail, 13
MAKEDEV, 274
inail, 23

matrices, awk, l42

I NDICE ALFABTICO

Qc RA-MA

mattrib, 53
mcd, 56
nlcopy, M
mdel, 57
Indir, 38
mesg, 16
mformat, 57
mkdir, 38
mkfs, 275
mknod, 272
mlabel, 58
mmd, 54
n1nlove, 55

Inore, 39
mount, 280
mrd. 56
mren, 58
mtools, M
mtype, 59
MULTICS, 3
mv, 42

N
nameserver, 328
netstat, 326
newgrp, 52
nice, 108, ll2
nivel, 304
nodo-i, 271
nohup, ll2
nohup.out, ll3
nslookup, 196

O
oclock, 215
od, 40
off, 305
once, 306
operadores, awk, l40

P
parmetros, 159
pasarelas, 320
passwd, 19
PATH, 88
pathname, 28
patrones, awk, l39
permisos, 47
PID, 108
ping, 204

pipelines, 86
powerfail, 305
powerwait, 306
PPID, 106
pr, 129
proceso, concepto, 106
process-group-ID, 313
programa, ejecucin, 84
prompt, 36
protocolos, l89
ps, 107
PSI. 88
PS2, 88
pwck, 255
pwd, 37

R
raiz, 28
read, 158
redes, 190
reject, 340
respawn, 305
rm, 45
root, 245
route, 325
router, 320

S
sam, 243
scale, 74
script, 22
scripts, 153
seal, ll0
seales, 178
sed, 133
seguridad, 244
select, l74
set, 90
set-uid, 249
setgid, 309
setuid, 309
sh, 83
shell, 83
shift, 157
showmatch, 67
shutdown, 303
Slackware, 9
smit, 243
sort, 100
spool. 329

37T

378 NDICE ALFABTICO

startx, 211
stderr, 96
stdin, 96
stdout, 96
su, 51

subdirectorios, 28
superbloque, 275
swap, 308
syncer, 308
sysinit, 305
sysmgr, 243

T
tail, 40
talk, 204
TCP/IP, l89
tee, 128
telnet, 190
TERM, 89
terminfo, 23
test, 163
TMOUT, 89
Toolkit, X, 209
tput, 23
tr, l25
traceroute, 325
translator, 125
trap, 177
twm, 213
typescript, 22

U
umask, 49
umount, 280
uname, 18
UNIX, 3
unset, 91
until, l71
user-ID, 309
userdel, 266
usr, 30

RA-MA

wc, 103
whereis 50
whtch, 50
while, 170
who, 12
write, 15

X
xcale, 216
xclock, 215
xdm, 313
xedit, 218
xeyes, 224
xfce, 233
xfd, 221
xfontsel, 221
XFree86, 2l l
xhost, 227
xinit, 212
xinitrc, 229
xkill, 224
xload, 217
xlsclients, 224
xlsfonts, 220
xmag, 221
xman, 217
xmodmap, 220
xrdb, 222
xset, 219
xsetroot, 219
xterm, 216

Y'
yes, ll5

vmlinuz, 30
vmUNIX, 303
vmunix, 30

w, ll4
wait, 305
wall, 266

z
zImage, 30
zimage, 303

UNIX v llMUX

Guia prctica
3 '

E D I C I N

UNIX es un sistema operativo de referencia obligada para aquellas personas que


utilizan el ordenador de un modo profesional. Desde sus comienzos a principios de
los aos setenta se ha convertido en un estndar en el campo de los servidores, las
comunicaciones y como entorno de desarrollo de software. En los ltimos anos una
de sus variantesdenominada Linux se ha asentado con fuerza en el mundo de los
ordenadores personales, debido entre otras cosas a su robustez y a que puede ser
distribuido de forma libre.
El objetivo de este libro es proporcionar al lector una introduccin prctica orientada
al manejo de estos sistemas operativos. Tambin puede ser utilizado como guia de
referencia sencilla y completa que ayuda a resolver los problemas que se presentan
con mayor frecuencia a aquellos usuarios que utilizan estos entornos como
herramienta habitual de trabajo. El libro cubre ambos sistemas operativos, tanto
desde el punto de vista del usuario como del administrador del sistema, todo ello con
abundantes ejercicios resueltos.
Los temas tratados son:
Primera parte: UNIX para el usuario

Introduccin a UNIX
El sistema de archivos
El editor de texto vi
El intrprete de rdenes

Expresiones regulares y filtros


Programacin del intrprete de ordenes
Servicios de red
EI sistema X-Window

Segunda parte: Administracin del sistema UNIX


Introduccin a la administracion
Administracin de la red
Administracin de usuarios y grupos
Administracin del sistema de impresin
Administracin del sistema de archivos Miscelnea

ra-ma.es

Вам также может понравиться