Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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)
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
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
. . . . . . . . . . .
ll4
ll6
83
83
5.2.
Expresiones regulares
O tros filtros . . . . . , . . . . , . . . .
5 .2,1, L a o r d en t i n d
5.3.
5.4.
ll6
ll9
ll9
124
130
l33
137
l39
l40
142
l43
143
NDICE GENERAL
Qc RA-MA
5.5.
6.
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.
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
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.
9.2.
9.3.
S e g uridad . . . . . . . . . , . . .
10.5
10.6
10.7
ll .
Ejercicios . .
. . . . . . . . . . . . . . . .
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
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
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.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 . . . . . . . . . . . . . . .
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.
8
10
4.1.
4.2.
4.3.
4.5.
5.1.
8.1.
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.
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.
I l. l
l 1.2
l 1.3
I 1.8
1 3.1,
13.2.
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
. < 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 <
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 (
~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
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 ( '
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 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
RA-1>IA
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
N otas de la 3
e d i cin
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
R.A-MA
Deparfailiellto de Automtica,
Escuela Politcnica.
Canipus Universitario, Ctra. ) Iadrid-Barcelona, Km. 33,600.
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
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
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.
UN I C S
HA-XIA
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
('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
<. )(A-tslA
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
6 C A I ' I T t .:LO l .
< 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 :
) 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.
gc RA-MA
>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
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
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.
<' HA-[<[A
;<(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
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< :
vl s>givt v.
password:
(n o s e I ) i s ( ( a l i z s )
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('.
10
lt.A-htA
l'
Q Aceptar
%I '
Figiira I.'2: I errtaii < d( iiiiriu <l svsi presentada pnr Gi>f()A(E.
1.4.
E j e c u c i n d e la s r d e n es
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
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 >
1.5.
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
<'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
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
( o la ) l ) i 1 ( k ' t l(l>i(l.
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
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())
<-. 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
$ 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.
i- ~
, < >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
RA-MA
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:
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
w ri t t
Sintaxis: write usuario
L;i or<len wr i t e
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,
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
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:
$ 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
17
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.
$
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
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
c~g .
S intaxis :
c a l [ m es ] [ a o ]
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
19
$
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
RA-),IA
$
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.
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
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
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
$ 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 ~
$ scr i p t
csesion
22
Qc RA-MA
$
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.
clear (1)
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
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)
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
Pc RA-Xt!Ic
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.
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.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 .
l.l l
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
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
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
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< >
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
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
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
(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
([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
<''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
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
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".
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.
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:
L J $ $ " ( ) et c .
2.4.
Vamos a ver seguidamente una serie de rdenes empleadas para manipular archivos
y directorios. Mostraremos cmo podemos movernos por los diferentes directorios, cmo
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
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
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
- 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
$
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
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 .
38
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 ) ]
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.
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-
'(
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
!include <stdio.h>
!include <fcntl.h>
main()
h ead y
t ai l
t ai l
[ - N] a r chivo(s)
$ 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 ) ]
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
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
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 .
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
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.
$ 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
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
$
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
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
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
l ( .)<-t)1>)<
> 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
Eje)i) pln:
2.5.
U s o d e a r c h i v os: p e r m i s os
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
I <lodo
Usa r i o
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:
48
RA-MA
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
$ 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
$ 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
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
666
640
026
Donde:
666 <s rl valor por def' to
's40 <'s el valol des<'Ado
50
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
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
'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,
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
(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 '
$ 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.
( '! 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
[+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.
$ 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
-: ;
g .i
54
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<):
F < l eje>plo arlferior I>< >o crearlo <lo <lir(ctorio dvolia(lo src v i n c l u d e ,
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.
RA-MA
55
Ejemplo:
$ mcopy READNE a:
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
RA-!(IA
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(')'(
$ mcd i n c l u d e
$ mdir a :
Q(' ltA-f fA
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
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():
58
RA-l<IA
1 457 664 b y t e s
fr ee
$ 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
$ 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
$ 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.
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
RA-MA
tienen los archivos anteriores" .'Es nuevo un archivo fsico, ,Qu ocurre si bnrramns
e l archi v o i ' ?
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
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
3 .2.
Qc RA-MA
! C m o p o d e m o s ed i t a r co n v i ?
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
63
carta
64
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
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
RA-KIA
65
3.5.
),
66
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 .
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
67
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
RA-llA
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.
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<'
: 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
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
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 < >
vi n i
L f i ( o i i t iiifi( i()rir(*t(>rririi' a
70
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
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 .
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
"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
n o >i>bremrc h i v o
72
3 . l5.
RA-.'>t A
L a c a l c u l a d or a b c
(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) ]
$ 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
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
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
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.
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
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
3 . 15.4.
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
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 )
lengtb ( expr e s i 6 n )
Estas funciones que vamos a citar a cont.inuacin slo son accesibles si ejecutamos bc
c on ia opcin -l .
s(ngulo)
c(ngulo)
l ( expr e s i 6 n )
j (n,x )
3 .15.4.2.
O pe r a d o r e s
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:
$ 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
Il (n ll
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.
INTRODUCC16N
80
' RA-Al
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 .
Qr RA-llA
: 1.15. F JERCICIIC)8 8 1
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.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
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
+ $ 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;
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
>>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
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
<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
< >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
( 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
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.
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.
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.
RA-MA
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
; 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
ordi
ord1
ordi
ordi
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.
Qc RA-MA
87
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
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.7.
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.
RA-MA
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.
$ 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
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 )
$
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
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
92
? 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
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.
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).
4.10.
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.
?, [
RA-MA
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 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.
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
95
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
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
stdout
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
97
atdout
Salida
Escritura
Programa
Entrada
stdin
en ejecucin
Lectura
Escritura
Salida de error
sfdelr
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
4. 12.2.
RA-t(fA
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)
$ 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
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.
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<).
$
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
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
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(
$
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
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 ) ]
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
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:
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
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
10 5
sldool
Proceso l
Proceso 2
sidin
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
RA-MA
Proceso ejecutndose
Dormir
Procesos dormidos
Exputsadog
3
Procesos listos
ser ejecutados
4.15.
P r o g r a m a s y p r o c e sos
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.
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
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
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
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
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
109
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
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
SW '?
SW ?
SW ?
SW '?
S
?
528 tl 3 1el S
?
508 13a6fl S
560 13asfi S
?
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
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
ki l l
[ - se a l ] PI D [ P ID . . . ]
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.
RA-MA
lll
$ 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
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
(H <llsiniiiii r l a
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 .
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
< 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 (
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
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
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]
-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
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
RA-MA
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
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
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.
118
CA P I T U LO 4. EL I N T RPRETE DE (RDENES
RA-MA
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
Captulo 5
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
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.
:-'( 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
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]
'ga
to') >
't<gato)>
La pal>ihr>1 gato
D o o i i) is oe s < ii (iii i n i isla i i i ' )
~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
. )m).)o)o
ex
vi
s ed
E) corijuito
<( (
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
$ 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
$ 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.
. . .$ ' ' d at os
$
Seguidamente vis u ~
maysculas.
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
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,
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
$ 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
5 .2.
Ot r o s fi l t r o s
$
$ cut - e 1 - 3 p e r s o n as
SSP
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
126
Qc RA-MA
Ejemplos:
$ tr
[ A -Z ] [ a - z ] < f i c h
$
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
$
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
Qc RA-MA
127
$
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
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.
128
archivo
entrada
stdout
$ 1s -1R /usr I
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
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
S intaxis : p r
l 29
[ o p c i n] [ ar c h i v o ( s ) ]
Page
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.
muestra acontinuacin:
130
$ 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
$
-t
pr el i m i na la cabecera y la cola.
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
5.2.1.
La o r d e n f i n d
Q(' RA-MA
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
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:
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 (':
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 ) ]
l8 4
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]
Pc RA-MA
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
$
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).
$
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.
$
Para sustituir las vocales minsculas por sus equivalentes en mayscula emplearnos la
orden y utilizada para traducir caracteres.
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
< (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.
$ 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.
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 (
( ()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
l8 8
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
-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
Seguidamente vamos a visualizar las lneas del archivo / e t c / p a sswd que comienzan con
el carcter d."
$
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.
P a t r o n e s de awk
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 }
NF > 3 { print
$4 }
$4 > 10 { x++ }
! Finalizacibn (se ejecuta al finalizar)
E ND {print x
$
140
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).
r oot ,
r oot
5.4.2.
Op e r a d o resempleados en awk
/ = '/ =
(varia bl e
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
e x pr2 : e x p r 3
/ . [-r ] /
Tamano = Tamano + $5
p rin t " P r o c e sado pr o c esado " $ 9 "
Acumulado= " T amano;
142
RA-MA
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
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
{ a[NR] = $9
END ( fo r
(i = 1 ; i < NR; i ++ ) p r i n t a [ i ] )
RA-MA
5 .4.3.1.
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"]
5.4.4.
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
5 .4.5.
S e n t e n c ias de cont ro l d e fl u j o
144
RA-MA
[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
RA-MA
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.
146
Qc RA-MA
Aho 2001.
En hexadecimal: 7di
$
5.4.7.
F u n c i ones numricas
atan2(y,
T r u n ca el nmero x a un entero.
log(x )
$ 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.
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 )
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
Pc RA-MA
: ; 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 }
$
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
$
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
$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:
150
Qc RA-MA
$ cat s i n t
cadenam=$0 ;
cadena>=$0 ;
a = i n de x ( c a d ena~ , " { " ) ;
! ~ 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);
;
;
$
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
G 5. EJERCICIOS
Qc RA-MA
151
9)
Captulo 6
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
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
!
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 .
RA-MA
155
s u ma
$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
6.3.
O cRA-MA
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.
l(A-X!A
6.4.
'<'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
$
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
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
$
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
RA-MA
l 59
$
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
!
$
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
$
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
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.
0 .4.1 .
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.
echo
echo Multiplicacin de dos variables
echo
echo
echo -n Introduce la primera variable:
r ead ar g i
161
$
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
Ejemplo:
$ cat s h e x p r 2
!
echo
echo Son iguales las variables?
echo
162
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
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,
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
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
Dpciones:
164
RA-M A
$ echo $?
0 (El archivo /etc/passswd si existe)
$ [ $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 t 100 ]
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 ]
M e n o r que.
-l e
-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
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 .
Ejemplo:
$ cat s h i f
!
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:
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
!
!
!
!
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 "
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
RA-k(A
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
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
!
lTO
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
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
RA-MA
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
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.
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
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
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
!
!!!!!!!!!!!!!!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
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
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
$ 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
RA-M A
p-
[ 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 -
"
Qc RA-MA
175
$
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
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
Q cRA-MA
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
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
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
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 ) .
lf8
RA-M A
).
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:
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
!
! 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
g)
for
do
pr o c i n $ *
180
gg H A - ),IA
esac
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
!
!
!
!
!
!
!
!
!
!
!
TRUE=O
VALSE=i
vale=TRUE
cont=0
!
!
!
!
!
!
! Condic i n de terminacin
! Nmero d e intentos
!
!
!
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''
Qr RA-MA
18 1
! 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
!
182
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
1f [ $ i = ]
then
echo
echo ' ' + -
~ll
l''
ylI
echo
echo Sintaxis: $0 [-v] [-b] archivo [archivo ...] )k2
echo
exit
-i
fi
!
!
!
!
!
!
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
~<' RA-MA
18 $
rm $HONE/,papelera/+;;
-+) echo $0: $1 argumento no vlido >k2
e xit ; ;
esac
!
!
!
!
!
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
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
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.
!
!
!
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
!
!
!
!
!
!
if f: $1 = ]
then
echo
e cho ' ' +
echo ''I mami, convierte nombres de archivos de
echo ''i maysculas a minsculas y el ; en .
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
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
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:
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.
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.
190
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
192
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,
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
$
!
!
!
cat /etc/hosts
Ejemplo de archivo de hosts
La sintaxis de cada entrada es:
<direccin internet> <nombre oficial
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
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
ch Suiza
pr Puerto Rico
f r Francia
nl H o landa
do Rvpl>li< 11 Do11al'
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 :
13 0 . 2 0 6 , 8 2 , 1 2
S erver :
A ddress :
dul ci n e a , u a h , e s
130 . 2 0 6 . 8 2 . 7
Qc RA-MA
Name :
A ddress :
ll '
t sx - 11 . m i t . edu ot espnesto)
18 . 8 6 . 0 . 4 4
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
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
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
('<>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.
$ telnet grc.fis.uah.es
T ryi n g . . .
Connected to grc.fis.uah.es.
Escape characte r i s ' ] ' .
200
RA-Xta
logout
Connection closed by foreing host.
ssh
< 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 iii i V< z vjvcut l' i lfl ( >r(iv ( i d
<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
$ 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 .
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
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.
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.
$ 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
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
. 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< >
$ l yn x v v w . v 3 . o r g
+ 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
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.
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
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
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
211
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
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.
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(
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>)).
H :>(-X I A
8.6,
2 13
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
Hc ve
Rl t +F
Sl ze
R lt+F8
tiinimize
R l t+F 9
taxi)ize
R l t<'l'
) RA-NIA
Opci
T(.( las
Signifi< ado
Restore
Alt+F5
Mo) e
Alt + FT
Alt+F8
.izc
cla Elx(THAR.
Estel op('ill s<.' enlpl<'.a p'll a lilillllllizar o l('<)nlz;u' olla
Alt+F9
Alaximize
Alt+F10
Loiuer
Alt+F3
C'los e
Alt+F4
/lfinirnize
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 .6.1.
2 15
L a v e n t ana raiz
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 /
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.
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<):
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
$ 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.
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
+(
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
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:
xedit
xedit es un editor de archivos de texto ASCII que puede ser utilizado en lugar de vi .
Ejemplo:
$ xedit /etc/services 4
RA-MA
2l 9
~
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~
perpaea
Laoel ~
t l l al
hpple \e)k
Loe lcoel pockat 1Ctf
aco
kc pel
Ctebl(t)
ip(t)
eetlltb(7 I
th{t)
de())
pertrttu)
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
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
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
' BA-XtA
/etc/services
Netuork services, Internet stUle
RENO O NLY
L7
g
g
g
g
g
g
g
g
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
slnk null
usara
13/tcp
13/udp
15/tcp
17/tcp
18/tcp
quota
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.
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
xfd muestra en una ventana los caracteres que forman una determinada fuente ti
I wgr fica.
Ejemplo:
xmag se emplea para ampliar una determinada arca del entorno de trabajo {aplicacio
rs. botones, iconos, fondo, etc.).
Ejemplo:
$ xmag k
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
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.
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
li
sa
224
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
xlsclients
xlsc l i e n t s genera un listado con los clientes que se estn ejecutando en un determi
nado dispositivo grfico.
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.
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.
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
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
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
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
$ xcl oc k - i c o n i c ! ! l
)s.9.5.
-;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
, 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
$ 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
NombreDeclient<)+VariableRecurso: ValorDeVariableRecurso
R:<<- l<!A
229
/ , X d e f a u l t s a s o ciada al cliente
! 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
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
Qc RA-> IA
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
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
$ 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
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
Anhno
h. l f ll
Il vv
h UU
Al f l I 'I
Hv fl
ALI4
'
'
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
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
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
c. R.st-%t A
> .10.2 .
23 3
E l en t o r n o x f ce
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 <>
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
> .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
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
4 .
I
Qaw
alga,y'Q <>
~a
4 O
E
r
a, gaalaa aa gt <taattttaaaA3~
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.
2 35
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
Ca
r c N N hl
r : y y o que
en ~
'0 N N 0
noo009 t
I9 ' 1.
! '
N i
a r e
Ir
aa
e~
N I
lo
i I NN i
.o
lr 1
Il
ccenlo I
'0 '
op r
'u la ya 1 ! !
1 q tt
i l Nm , '1
,~
r oe ~
mr e
tlat rmhcueraa e n ~~
>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
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
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
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.
-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:
S. l l. E JERCICIOS
RA-MA
2 37
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:
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.
rlebe haber un patrn de signos numeral (!) y guiones (-) que describan el patrn
240
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
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
3.
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
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
..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 !.
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.
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.
9 .3. S>E(:PURIDAD
B A-iI A
247
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.
248
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.
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
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 .
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
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.
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.
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
2 53
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
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:
Aiia(lir l a
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 '
254
RA-MA
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:
!
!
!
!
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
! passwd j p g
Changing password f o r
Enter new password;
Re-type new password:
Password ch anged.
j pg
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 (
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,
256
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
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 : : :
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.
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
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
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
)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
25S
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
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
259
newgr
Sintax i s :
ne v g rp g r u p o
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
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
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
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
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
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.
r' I(A-M A
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.
$
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
$ l s - l si m
-rwxr-xr-x
1 c han ig x
RA-MA
$
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
332 26 D e c 1 0 3 : 2 7 e x a x
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
10.6.
RA-!>IA
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
!
10.6.1.
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'?
Captulo 11
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 .
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
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
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
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
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 >
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.
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
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
'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.
/dev/ c d rom
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.
2 74
! 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 .
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
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
El superbloque.
La lista de nodos ndice.
ll . 3 .2.
E l su p e r b loque
276
<.,'APTL<LO
l l. AD f (fl VISTftA('l1v DEL AMISTE)(IA DE AHCHI VOS
k A- l< ! A
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
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
Figura 11.;3: Punt< ros a hloqu<'s dr discos pr< setes <u> un l)o<lo-).
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
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>
11.5.
detallamos a cnntintlacin:
I.
R A-htA
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 .
280
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
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
2 82
RA- K I A
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.
R :>(-).lA
$ 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
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.
-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
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
!
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.
286
RA- Xl x
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
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)
i t et;Ir;)
3 RA-MA
! 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
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
/
/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
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
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,
It ><-!<IA
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.
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
Q I( A- x t . .
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
~c. RA-5,1A
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
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]
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
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
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:
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
RA-5 1 A
] v >ii<r& ~, + ' Q~
pubLco t<opresoras
Tierra
Seleccione un elemento para ver su
conterro.
ll . 6 .4 .
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
~ : 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
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
RA-l l A
' 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
Type
Comment
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.
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 :
workgroup s < I grupo d tral>ajo < l que se icltive el s< r> i<lor.
2 98
It A- X I A
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.
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",
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
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<).
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' ..
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;
! ~~
[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:
!~~
~~ ~
[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
Q
c RA - a t a
l1.7. Ejercicios
ll . l
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
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.
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
Qi RA-!c l A
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:
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
/ 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 .
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:
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
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:
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
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.
308
RA-)<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
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
RA-1<IA
! 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
! 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
$
Tal y como se puede apreciar, existen siete niveles rle ejecucin que citamos a continuacin:
0 se utiliza nicamente para detener el sisten>a.
312
Pc Ir A-i%t;))
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
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.
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.
Rc HA-.'(IA
3 13
1 2.9.
I d e n t i fi c a d o res PI D y G I D
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."
()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.
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 .
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.
S>lponganlos p'ua cal< ejelplo que exist(' (>a tUb( l'a llanlada Ups des<le. la obtcllnls
1 osca r
Usuar i o s
0 nov 18 1 2 : 4 5 u p s
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
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
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
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).
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 ('
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
!
/usr / adm/sulo g
318
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
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.
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
I d . d e red (hita )
C
D
RA-t)1A
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<~
321
Direccin de ordenador
l l000001.100100l 0.0000100 l
HHHHHHHH
Direcci6n de ordenador
I l OOO
OOl. l 0010010.0000 lOO I
SS
H H H H HH
Subred
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
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
I l 000001. 10(110010.00001001
Direccin de ordenador
SS
H H I -IHHH
Subred
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.
'= RA-fcfA
)<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
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.
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
[-]
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
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
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.
! 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
L'' H E - t t . ' L
325
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
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
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;
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<>.
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:
Ejen>los:
! net st a t
RA-MA
327
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
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
!
1 3.6.
E je r c i c i o s
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
330
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
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.
!
: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
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
'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:
Qc RA-MA
333
$1prm 2
dfA002Aa01958 dequeued
cfA002Aa01958 dequeued
$ lpq
n o ent r i e s
S intaxi s :
1pc
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
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:
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
!
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.
RA-MA
33 5
14.3.
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
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.
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.
-w Escrih< )m nrens rje en el ternrinal del usrrario cuando los ar< lrivns ya lrarr si<lo irnpres<>s.
$
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 ]
[tA-!<IA
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
e aable y
d i sa b l e
F.
mis
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:
33S
I( a -I ) I A
- p I p0 1 , aparecer:
<. 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.
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 ]
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 ]
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
! 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
!
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)
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.
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
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
RA-MA
14.4 Ponga en marcha su impresora para que sea la imprmora por defecto de su sistema.
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).
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
Cc, I<A-ILIA
<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
cronta 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
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
15.1.2.
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 ;
RA-MA
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
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:
RA-t>IA
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
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 :
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
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,
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
' 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(.
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 ) ]
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+
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
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.
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.
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
$
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
354
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
-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.
-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.
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
RA-MA
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
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
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
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
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.
Qc RA-MA
361
cri t
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,
362
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
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
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
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>.
loggefrW ~ ~
- ~
>te < g
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.
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 :
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
@ ItA-MA
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
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
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>.
[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.
[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,
<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
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
BIBLIOGII AVA
RA-t>1A
A . (1 9<J9).
The Li no
ker n e L
3 73
D si p onil> lc e n
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).
RA-MA
874 BIBLIOGRAFA
[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.
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
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
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
Introduccin a UNIX
El sistema de archivos
El editor de texto vi
El intrprete de rdenes
ra-ma.es