sábado, 5 de julio de 2008

Laboratorio # 3.3

Laboratorio 3.3

1.- Ordenar archivos
Deberá crear un archivo de texto llamado dir1/agenda1, con la siguiente información:
Nombre telefono
Juan 303-3030
Maria 101-3032
Pablo 402-5060
Cesar 506-0394
Judith 796-4044
Patricia 695-4004

derv@algaju:~>cat >dir1/agenda1

juan 303-3030
maria 101-3032
pablo 402-5060c
esar 506-0394
judith 796-4044
patricia695-4004

1.1 Liste por pantalla el número de personas que almacena el archivo "agenda1" sin repeticiones.

derv@algaju:~> sort -u dir1/agenda1
cesar 506-0394
juan 303-3030
judith 796-4044
maria 101-3032
pablo 402-5060
patricia695-4004

1.2 Liste en orden alfabético de nombres el archivo "agenda1".
derv@algaju:~> sort +1 -d dir1/agenda1

patricia695-4004
maria 101-3032
juan 303-3030
pablo 402-5060
cesar 506-0394
judith 796-4044

1.3.- Añade a datos1.num el contenido de datos1 con sus líneas numeradas.

#cat -n agenda1 >> agenda1.num
derv@algaju:~/dir1> cat -n agenda1.num

1 juan 303-30302
maria 101-30323
pablo 402-50604
cesar 506-03945
judith 796-40446
patricia695-4004

Muestra de nuevo agenda1.num con sus líneas numeradas. Crea un archivo agenda1.ord con las líneas de agenda1 ordenados. Visualízalo.

cat -n agenda1.num
derv@algaju:~/dir1> cat -n sort -u agenda1>>agenda1.ord

derv@algaju:~/dir1> cat -n agenda1.ord
1 cesar 506-03942
juan 303-30303
judith 796-40444
maria 101-30325
pablo 402-50606
patricia695-4004

1.4 Cree otro archivo con la estructura de "agenda1" y llámelo "agenda2". Clasifique en orden inverso los archivos "agenda1" y "agenda2", colocando la salida en el archivo"ageninv" y utilizando el segundo campo como clave de clasificación.

derv@algaju:~/dir1> sort +1 -r agenda1 agenda2>ageninv
derv@algaju:~/dir1> cat agenda2
judith 796-4044
cesar 506-0394
pablo 402-5060
juan 303-3030
maria 101-3032
patricia695-4004

derv@algaju:~/dir1> cat agenda1
juan 303-3030
maria 101-3032
pablo 402-5060
cesar 506-0394
judith 796-4044
patricia695-4004

1.5 Visualice las líneas del archivo "agenda2" ordenadas, suprimiendo todas menos la primera ocurrencia de las líneas que tengan el mismo apellido.

derv@algaju:~/dir1> sort -d agenda2 uniq -d
derv@algaju:~/dir1> cat agenda2
judith 796-4044
cesar 506-0394
pablo 402-5060
juan 303-3030
maria 101-3032
patricia695-4004

1.6 Visualice el archivo de cuentas de usuarios, ordenado por identificativo de usuario(Recuerde que se trata del tercer campo y que están separados por ":”).

derv@algaju:~/dir1> sort -d -t: -k3 /etc/passwd

root:x:0:0:root:/root:/bin/bashderv:x:1000:100:derv:/home/derv:/bin/bashmessagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/falsehaldaemon:x:101:102:User for haldaemon:/var/run/hal:/bin/falseuucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bashsuse-ncc:x:102:104:Novell Customer Center User:/var/lib/YaST2/suse-ncc-fakehome:/bin/bashbeagleindex:x:103:105:User for Beagle indexing:/var/cache/beagle:/bin/bashdhcpd:x:104:65534:DHCP server daemon:/var/lib/dhcp:/bin/falseradiusd:x:105:106:Radius daemon:/var/lib/radiusd:/bin/falseprivoxy:x:106:107:Daemon user for privoxy:/var/lib/privoxy:/bin/falsequagga:x:107:108:Quagga routing daemon:/var/run/quagga:/bin/falsebin:x:1:1:bin:/bin:/bin/bashgames:x:12:100:Games account:/var/games:/bin/bashman:x:13:62:Manual pages viewer:/var/cache/man:/bin/bashdaemon:x:2:2:Daemon:/sbin:/bin/bashat:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bashwwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/falsesquid:x:31:65534:WWW-proxy squid:/var/cache/squid:/bin/falseirc:x:39:65534:IRC daemon:/usr/lib/ircd:/bin/bashftp:x:40:49:FTP account:/srv/ftp:/bin/bashnamed:x:44:44:Name server daemon:/var/lib/named:/bin/falselp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bashpostfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/falsemysql:x:60:109:MySQL database admin:/var/lib/mysql:/bin/bashnobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bashpop:x:67:100:POP admin:/var/lib/pop:/bin/falsesshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/falsemailman:x:72:67:GNU mailing list manager:/var/lib/mailman:/bin/bashntp:x:74:103:NTP daemon:/var/lib/ntp:/bin/falseldap:x:76:70:User for OpenLDAP:/var/lib/ldap:/bin/bashmdnsd:x:78:65534:mDNSResponder runtime user:/var/lib/mdnsd:/bin/falsemail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/falsenews:x:9:13:News system:/etc/news:/bin/bash

1.7 Partiendo de "agenda1" y "agenda2", obtenga un archivo llamado "telefonos" cuyo contenido sea la fusión de los dos anteriores sin repetir elementos y clasificado en primer orden por prefijo y en segundo por nombre.

derv@algaju:~/dir1> sort +2 +0 -u agenda1 agenda2>telefonos
derv@algaju:~/dir1> cat telefonos
cesar 506-0394
juan 303-3030
judith 796-4044
maria 101-3032
pablo 402-5060
patricia695-400

1.8 Los siguientes ejemplos deben funcionar con el archivo /etc/passwd. Este nombre en negrita, es el archivo que almacena la información sobre todos los usuarios de una máquina LINUX. Es un archivo de texto con cada línea dividida en 7 campos. Cada campo está separado por el carácter ' : ' . Realiza una copia del mismo y llámale claves(" cp /etc/passwd ~/claves "). Realice ahora los siguientes ejercicios y explique qué hace cada uno de ellos:

derv@algaju:~/dir1> cp /etc/passwd claves
derv@algaju:~/dir1> sort claves (ORDENA EL ARCHIVO ALFABETICAMENTE POR EL PRIMER CAMPO)

at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bashbeagleindex:x:103:105:User for Beagle indexing:/var/cache/beagle:/bin/bashbin:x:1:1:bin:/bin:/bin/bashdaemon:x:2:2:Daemon:/sbin:/bin/bashderv:x:1000:100:derv:/home/derv:/bin/bashdhcpd:x:104:65534:DHCP server daemon:/var/lib/dhcp:/bin/falseftp:x:40:49:FTP account:/srv/ftp:/bin/bashgames:x:12:100:Games account:/var/games:/bin/bashhaldaemon:x:101:102:User for haldaemon:/var/run/hal:/bin/falseirc:x:39:65534:IRC daemon:/usr/lib/ircd:/bin/bashldap:x:76:70:User for OpenLDAP:/var/lib/ldap:/bin/bashlp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bashmailman:x:72:67:GNU mailing list manager:/var/lib/mailman:/bin/bashmail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/falseman:x:13:62:Manual pages viewer:/var/cache/man:/bin/bashmdnsd:x:78:65534:mDNSResponder runtime user:/var/lib/mdnsd:/bin/falsemessagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/falsemysql:x:60:109:MySQL database admin:/var/lib/mysql:/bin/bashnamed:x:44:44:Name server daemon:/var/lib/named:/bin/falsenews:x:9:13:News system:/etc/news:/bin/bashnobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bashntp:x:74:103:NTP daemon:/var/lib/ntp:/bin/falsepop:x:67:100:POP admin:/var/lib/pop:/bin/falsepostfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/falseprivoxy:x:106:107:Daemon user for privoxy:/var/lib/privoxy:/bin/falsequagga:x:107:108:Quagga routing daemon:/var/run/quagga:/bin/falseradiusd:x:105:106:Radius daemon:/var/lib/radiusd:/bin/falseroot:x:0:0:root:/root:/bin/bashsquid:x:31:65534:WWW-proxy squid:/var/cache/squid:/bin/falsesshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/falsesuse-ncc:x:102:104:Novell Customer Center User:/var/lib/YaST2/suse-ncc-fakehome:/bin/bashuucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bashwwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false


derv@algaju:~/dir1> sort -r claves (ORDENA ALFABETICAMNETE DE FORMA INVERTIDA)

wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/falseuucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bashsuse-ncc:x:102:104:Novell Customer Center User:/var/lib/YaST2/suse-ncc-fakehome:/bin/bashsshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/falsesquid:x:31:65534:WWW-proxy squid:/var/cache/squid:/bin/falseroot:x:0:0:root:/root:/bin/bashradiusd:x:105:106:Radius daemon:/var/lib/radiusd:/bin/falsequagga:x:107:108:Quagga routing daemon:/var/run/quagga:/bin/falseprivoxy:x:106:107:Daemon user for privoxy:/var/lib/privoxy:/bin/falsepostfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/falsepop:x:67:100:POP admin:/var/lib/pop:/bin/falsentp:x:74:103:NTP daemon:/var/lib/ntp:/bin/falsenobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bashnews:x:9:13:News system:/etc/news:/bin/bashnamed:x:44:44:Name server daemon:/var/lib/named:/bin/falsemysql:x:60:109:MySQL database admin:/var/lib/mysql:/bin/bashmessagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/falsemdnsd:x:78:65534:mDNSResponder runtime user:/var/lib/mdnsd:/bin/falseman:x:13:62:Manual pages viewer:/var/cache/man:/bin/bashmail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/falsemailman:x:72:67:GNU mailing list manager:/var/lib/mailman:/bin/bashlp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bashldap:x:76:70:User for OpenLDAP:/var/lib/ldap:/bin/bashirc:x:39:65534:IRC daemon:/usr/lib/ircd:/bin/bashhaldaemon:x:101:102:User for haldaemon:/var/run/hal:/bin/falsegames:x:12:100:Games account:/var/games:/bin/bashftp:x:40:49:FTP account:/srv/ftp:/bin/bashdhcpd:x:104:65534:DHCP server daemon:/var/lib/dhcp:/bin/falsederv:x:1000:100:derv:/home/derv:/bin/bashdaemon:x:2:2:Daemon:/sbin:/bin/bashbin:x:1:1:bin:/bin:/bin/bashbeagleindex:x:103:105:User for Beagle indexing:/var/cache/beagle:/bin/bashat:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash

derv@algaju:~/dir1> sort +2n -t: claves (ORDENA A PARTIR DEL 2DO CAMPO CON LIMTE DE CAMPO )

root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/bin/bashdaemon:x:2:2:Daemon:/sbin:/bin/bashlp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bashmail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/falsenews:x:9:13:News system:/etc/news:/bin/bashuucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bashgames:x:12:100:Games account:/var/games:/bin/bashman:x:13:62:Manual pages viewer:/var/cache/man:/bin/bashat:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bashwwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/falsesquid:x:31:65534:WWW-proxy squid:/var/cache/squid:/bin/falseirc:x:39:65534:IRC daemon:/usr/lib/ircd:/bin/bashftp:x:40:49:FTP account:/srv/ftp:/bin/bashnamed:x:44:44:Name server daemon:/var/lib/named:/bin/falsepostfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/falsemysql:x:60:109:MySQL database admin:/var/lib/mysql:/bin/bashpop:x:67:100:POP admin:/var/lib/pop:/bin/falsesshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/falsemailman:x:72:67:GNU mailing list manager:/var/lib/mailman:/bin/bashntp:x:74:103:NTP daemon:/var/lib/ntp:/bin/falseldap:x:76:70:User for OpenLDAP:/var/lib/ldap:/bin/bashmdnsd:x:78:65534:mDNSResponder runtime user:/var/lib/mdnsd:/bin/falsemessagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/falsehaldaemon:x:101:102:User for haldaemon:/var/run/hal:/bin/falsesuse-ncc:x:102:104:Novell Customer Center User:/var/lib/YaST2/suse-ncc-fakehome:/bin/bashbeagleindex:x:103:105:User for Beagle indexing:/var/cache/beagle:/bin/bashdhcpd:x:104:65534:DHCP server daemon:/var/lib/dhcp:/bin/falseradiusd:x:105:106:Radius daemon:/var/lib/radiusd:/bin/falseprivoxy:x:106:107:Daemon user for privoxy:/var/lib/privoxy:/bin/falsequagga:x:107:108:Quagga routing daemon:/var/run/quagga:/bin/falsederv:x:1000:100:derv:/home/derv:/bin/bashnobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash
derv@algaju:~/dir1> sort +2n -t: -n claves


root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/bin/bashdaemon:x:2:2:Daemon:/sbin:/bin/bashlp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bashmail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/falsenews:x:9:13:News system:/etc/news:/bin/bashuucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bashgames:x:12:100:Games account:/var/games:/bin/bashman:x:13:62:Manual pages viewer:/var/cache/man:/bin/bashat:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bashwwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/falsesquid:x:31:65534:WWW-proxy squid:/var/cache/squid:/bin/falseirc:x:39:65534:IRC daemon:/usr/lib/ircd:/bin/bashftp:x:40:49:FTP account:/srv/ftp:/bin/bashnamed:x:44:44:Name server daemon:/var/lib/named:/bin/falsepostfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/falsemysql:x:60:109:MySQL database admin:/var/lib/mysql:/bin/bashpop:x:67:100:POP admin:/var/lib/pop:/bin/falsesshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/falsemailman:x:72:67:GNU mailing list manager:/var/lib/mailman:/bin/bashntp:x:74:103:NTP daemon:/var/lib/ntp:/bin/falseldap:x:76:70:User for OpenLDAP:/var/lib/ldap:/bin/bashmdnsd:x:78:65534:mDNSResponder runtime user:/var/lib/mdnsd:/bin/falsemessagebus:x:100:101:User for D-BUS:/var/run/dbus:/bin/falsehaldaemon:x:101:102:User for haldaemon:/var/run/hal:/bin/falsesuse-ncc:x:102:104:Novell Customer Center User:/var/lib/YaST2/suse-ncc-fakehome:/bin/bashbeagleindex:x:103:105:User for Beagle indexing:/var/cache/beagle:/bin/bashdhcpd:x:104:65534:DHCP server daemon:/var/lib/dhcp:/bin/falseradiusd:x:105:106:Radius daemon:/var/lib/radiusd:/bin/falseprivoxy:x:106:107:Daemon user for privoxy:/var/lib/privoxy:/bin/falsequagga:x:107:108:Quagga routing daemon:/var/run/quagga:/bin/falsederv:x:1000:100:derv:/home/derv:/bin/bashnobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash

2.- Caracteres de sustitución y selección de información.

2.1.- Cree un archivo que esté formado por el identificativo (UID), el nº de usuario y el nº de grupo de los usuarios

derv@algaju:~/dir1> cut -d: -f1,3,4 /etc/passwd>users

derv@algaju:~/dir1> ls

agenda1 agenda1.ord ageninv claves datos5 telefonosagenda1.num agenda2 clases datos1 -o users
derv@algaju:~/dir1> cat users

at:25:25
beagleindex:103:105
bin:1:1
daemon:2:2
dhcpd:104: 65534
ftp:40:49
games:12:100
haldaemon:101:102
irc:39:65534
ldap:76:7
0lp:4:7
mail:8:12
mailman:72:67
man:13:62
mdnsd:78:65534
messagebus:100:101
mysql:60:109
named:44:44
nobody:65534:65533
ntp:74:103
pop:67:100
postfix:51:51
privoxy:106:107
quagga:107:108
radiusd:105:106
root:0:0
squid:31:65534
sshd:71:65
suse-ncc:102:104
uucp:10:14
wwwrun:30:8
derv:1000:100

2.2. Obtenga un listado en el que aparezcan los nombres de los grupos de usuarios en el sistema, así como los usuarios que formen parte de cada grupo.

derv@algaju:~/dir1> cut -d: -f-1,4 /etc/group

at:
audio:
beagleindex:
bin:
daemoncdrom:
console:
daemon:
dialout:
dervdisk:
floppy:
ftp:
lp:
mail:
maildrop:
mailman:
man:
messagebus:
modem:
mysql:
named:
news:
nobody:
nogroup:
nobodyntadmin:
ntp:
postfix:
privoxy:
ncc:
sys:
trusted:
users:

2.3. El comando tr se usa para cambiar ciertos caracteres de un archivo por otros. tr suele ser usado en conjunción con la redirección de entrada/salida. Realice ahora los siguientes ejercicios y explique qué hace cada uno de ellos:

derv@algaju:~/dir1> tr a zzt:x:25:25:Bztch jobs

dzemon:/vzr/spool/ztjobs:/bin/bzshbezgleindex:x:103:105:User for Bezgle indexing:/vzr/czche/bezgle:/bin/bzshbin:x:1:1:bin:/bin:/bin/bzshdzemon:x:2:2:Dzemon:/sbin:/bin/bzshdhcpd:x:104:65534:DHCP server dzemon:/vzr/lib/dhcp:/bin/fzlseftp:x:40:49:FTP zccount:/srv/ftp:/bin/bzshgzmes:x:12:100:Gzmes zccount:/vzr/gzmes:/bin/bzshhzldzemon:x:101:102:User for hzldzemon:/vzr/run/hzl:/bin/fzlseirc:x:39:65534:IRC dzemon:/usr/lib/ircd:/bin/bzshldzp:x:76:70:User for OpenLDAP:/vzr/lib/ldzp:/bin/bzshlp:x:4:7:Printing dzemon:/vzr/spool/lpd:/bin/bzshmzil:x:8:12:Mziler dzemon:/vzr/spool/clientmqueue:/bin/fzlsemzilmzn:x:72:67:GNU mziling list mznzger:/vzr/lib/mzilmzn:/bin/bzshmzn:x:13:62:Mznuzl pzges viewer:/vzr/czche/mzn:/bin/bzshmdnsd:x:78:65534:mDNSResponder runtime user:/vzr/lib/mdnsd:/bin/fzlsemesszgebus:x:100:101:User for D-BUS:/vzr/run/dbus:/bin/fzlsemysql:x:60:109:MySQL dztzbzse zdmin:/vzr/lib/mysql:/bin/bzshnzmed:x:44:44:Nzme server dzemon:/vzr/lib/nzmed:/bin/fzlsenews:x:9:13:News system:/etc/news:/bin/bzshnobody:x:65534:65533:nobody:/vzr/lib/nobody:/bin/bzshntp:x:74:103:NTP dzemon:/vzr/lib/ntp:/bin/fzlsepop:x:67:100:POP zdmin:/vzr/lib/pop:/bin/fzlsepostfix:x:51:51:Postfix Dzemon:/vzr/spool/postfix:/bin/fzlseprivoxy:x:106:107:Dzemon user for privoxy:/vzr/lib/privoxy:/bin/fzlsequzggz:x:107:108:Quzggz routing dzemon:/vzr/run/quzggz:/bin/fzlserzdiusd:x:105:106:Rzdius dzemon:/vzr/lib/rzdiusd:/bin/fzlseroot:x:0:0:root:/root:/bin/bzshsquid:x:31:65534:WWW-proxy squid:/vzr/czche/squid:/bin/fzlsesshd:x:71:65:SSH dzemon:/vzr/lib/sshd:/bin/fzlsesuse-ncc:x:102:104:Novell Customer Center User:/vzr/lib/YzST2/suse-ncc-fzkehome:/bin/bzshuucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bzshwwwrun:x:30:8:WWW dzemon zpzche:/vzr/lib/wwwrun:/bin/fzlsederv:x:1000:100:derv:/home/derv:/bin/bzshderv@algaju:~/dir1> tr [A-Z] [a-z]at:x:25:25:batch jobs daemon:/var/spool/atjobs:/bin/bashbeagleindex:x:103:105:user for beagle indexing:/var/cache/beagle:/bin/bashbin:x:1:1:bin:/bin:/bin/bashdaemon:x:2:2:daemon:/sbin:/bin/bashdhcpd:x:104:65534:dhcp server daemon:/var/lib/dhcp:/bin/falseftp:x:40:49:ftp account:/srv/ftp:/bin/bashgames:x:12:100:games account:/var/games:/bin/bashhaldaemon:x:101:102:user for haldaemon:/var/run/hal:/bin/falseirc:x:39:65534:irc daemon:/usr/lib/ircd:/bin/bashldap:x:76:70:user for openldap:/var/lib/ldap:/bin/bashlp:x:4:7:printing daemon:/var/spool/lpd:/bin/bashmail:x:8:12:mailer daemon:/var/spool/clientmqueue:/bin/falsemailman:x:72:67:gnu mailing list manager:/var/lib/mailman:/bin/bashman:x:13:62:manual pages viewer:/var/cache/man:/bin/bashmdnsd:x:78:65534:mdnsresponder runtime user:/var/lib/mdnsd:/bin/falsemessagebus:x:100:101:user for d-bus:/var/run/dbus:/bin/falsemysql:x:60:109:mysql database admin:/var/lib/mysql:/bin/bashnamed:x:44:44:name server daemon:/var/lib/named:/bin/falsenews:x:9:13:news system:/etc/news:/bin/bashnobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bashntp:x:74:103:ntp daemon:/var/lib/ntp:/bin/falsepop:x:67:100:pop admin:/var/lib/pop:/bin/falsepostfix:x:51:51:postfix daemon:/var/spool/postfix:/bin/falseprivoxy:x:106:107:daemon user for privoxy:/var/lib/privoxy:/bin/falsequagga:x:107:108:quagga routing daemon:/var/run/quagga:/bin/falseradiusd:x:105:106:radius daemon:/var/lib/radiusd:/bin/falseroot:x:0:0:root:/root:/bin/bashsquid:x:31:65534:www-proxy squid:/var/cache/squid:/bin/falsesshd:x:71:65:ssh daemon:/var/lib/sshd:/bin/falsesuse-ncc:x:102:104:novell customer center user:/var/lib/yast2/suse-ncc-fakehome:/bin/bashuucp:x:10:14:unix-to-unix copy system:/etc/uucp:/bin/bashwwwrun:x:30:8:www daemon apache:/var/lib/wwwrun:/bin/falsederv:x:1000:100:derv:/home/derv:/bin/bash
derv@algaju:~/dir1> tr -d ''

2.4. El comando cut nos sirve para extraer campos de un archivo (generalmente columnas). Observa el resultado de los siguientes ejemplos y explique cuál es su comportamiento:

derv@algaju:~/dir1> cut -c1 /etc/passwd (LISTA EL PRIMER CARACTER)a,b,d,f,g,h,i,i,l,m,m,m,n,n,n,n,p,q,q,r,r,s,s,s,u,w,d

derv@algaju:~/dir1> cut -c1,5,10-20 /etc/passwd (LISTA LOS CARACTERES 1,5 Y 10 Y EL 20 DE DER. A IZQ)

a:5:Batch job
blex:x:103:10
bx:bin:/bin:/
do2:2:Daemon:
dd04:65534:DH
fx49:FTP acco
gs2:100:Games
ha:x:101:102
:ix65534:IRC d
l::70:User fo
l:Printing da
m:12:Mailer d
mm:72:67:GNU
mx62:Manual p
md8:65534:mDN
mas:x:100:101
ml0:109:MySQ
s-x:102:104:N
u::14:Unix-to
wu30:8:WWW da
d:00:100:derv

derv@algaju:~/dir1> cut -d: -f3 /etc/passwd (LISTA EL 3ER CAMPO, CON LIMITADOR ‘:’)

23,100,1,2,104,40,12,101,39,76,4,8,72,13,78,100,60,44,9,65534,74,67,51,106,107,105,0,31,1000

3. División y unión de archivos3.1. Divida el archivo /etc/termcap en partes, pero antes debe tener una copia en su directorio de trabajo para poder realizar la acción.

derv@algaju:~/dir1> cp /etc/termcap termcap
derv@algaju:~/dir1> lsagenda1 agenda1.ord ageninv claves datos5 telefonos usersagenda1.num agenda2 clases datos1 -o termcap
derv@algaju:~/dir1> split termcap
derv@algaju:~/dir1> lsagenda1 agenda2 claves -o users xac xaf xai xal xao xaragenda1.num ageninv datos1 telefonos xaa xad xag xaj xam xap xasagenda1.ord clases datos5 termcap xab xae xah xak xan xaq xat
derv@algaju:~/dir1> split -100 termcap
derv@algaju:~/dir1> lsagenda1

xad xat xbj xbz xcp xdf xdv xel xfb xfr xgh xgx xhnagenda1.num xae xau xbk xca xcq xdg xdw xem xfc xfs xgi xgy xhoagenda1.ord xaf xav xbl xcb xcr xdh xdx xen xfd xft xgj xgz xhpagenda2 xag xaw xbm xcc xcs xdi xdy xeo xfe xfu xgk xha xhqageninv xah xax xbn xcd xct xdj xdz xep xff xfv xgl xhb xhrclases xai xay xbo xce xcu xdk xea xeq xfg xfw xgm xhcclaves xaj xaz xbp xcf xcv xdl xeb xer xfh xfx xgn xhddatos1 xak xba xbq xcg xcw xdm xec xes xfi xfy xgo xhedatos5 xal xbb xbr xch xcx xdn xed xet xfj xfz xgp xhf-o xam xbc xbs xci xcy xdo xee xeu xfk xga xgq xhgtelefonos xan xbd xbt xcj xcz xdp xef xev xfl xgb xgr xhhtermcap xao xbe xbu xck xda xdq xeg xew xfm xgc xgs xhiusers xap xbf xbv xcl xdb xdr xeh xex xfn xgd xgt xhjxaa xaq xbg xbw xcm xdc xds xei xey xfo xge xgu xhkxab xar xbh xbx xcn xdd xdt xej xez xfp xgf xgv xhlxac xas xbi xby xco xde xdu xek xfa xfq xgg xgw xhm


3.2. El comando paste realiza exactamente lo contrario que el comando cut. paste enlaza un archivo con otro, de tal manera, que inserta uno al lado del otro y no debajo. Ejemplos a comentar:Sean los siguientes archivos:archivo nombres archivo direccionesgeorge 55 Aim Avenue fred 1005 Marks road david 5 Thompson Street janet 43 Pedwell road

derv@algaju:~/dir1> cat >nombres
george
fred
david
janet

derv@algaju:~/dir1> cat >direcciones
55 aim avenue
1005 marks road
5thompson street
43 pedwell road

derv@algaju:~/dir1> paste nombres direcciones
george 55 aim avenue
fred 1005 marks road
david 5 thompson street
janet 43 pedwell road

3.3. Como ejercicio final de repaso de algunos comandos ya vistos, conteste las siguientes preguntas:Se necesita para todas las preguntas el siguiente archivo, libro.telefonosgeorge!2334234!55 Aim Avenue fred!343423!1005 Marks road david!5838434!5 Thompson Street janet!33343!43 Pedwell road

derv@algaju:~/dir1> cat >libro.telefonos
george!2334234!55 aim avenuefred!43423!1005 marks roaddavid!5838434!43 pedwell road

Observe que el elemento delimitador de los campos para este archivo es el símbolo“!”, y que los campos son el nombre, el número de teléfono y la dirección

¿Qué harían los siguientes comandos LINUX? No ejecute los comandos hasta que no esté seguro de lo que hace. En particular no intente ejecutar el primero de ellos:rmdir (BORRA DIRECTORIOS)cat /etc/passwd (DESPLIEGA EL ARCHIVO)ls ../dir1/agenda1 (LISTA LOS ARCHIVOS CON EL NOMBRE ESPECIFICO)


4. Permisos

4.1 Observe los permisos que el archivo agenda1. Realice una copia del mismo, llamelo temp1. Vamos a quitar a la copia permisos de lectura y escritura para el propietario del archivo, ejecutando los siguientes comandos:#ls temp1 –lQué permisos tiene temp1?

derv@algaju:~/dir1> cp agenda1 temp1
derv@algaju:~/dir1> ls -ltotal 2497-rw-r--r-- 1
derv users 102 2006-07-03 21:08 temp1(TIENE PERMISOS DE LECTURA Y ESCRITURA)Ejecutechmod u-r,u-w temp1 (quita permisos de lectura y escritura al archivo temp1)

derv@algaju:~/dir1> chmod u-r,u-w temp1Permita que el propietario pueda leer, escribir y ejecutar el archivo.chmod o-rwx temp1
derv@algaju:~/dir1> chmod o-rwx temp1Dar a todos los usuarios acceso al archivo.chmod +r temp1
derv@algaju:~/dir1> chmod +r temp1
derv@algaju:~/dir1> ls temp1 -l-r--r--r-- 1
derv users 102 2006-07-03 21:08 temp1Quitar permisos de ejecución a todos los usuarios excepto al propietario.#chmod u+rwx temp1
derv@algaju:~/dir1> chmod u+rwx temp1

Qué sucede con los siguientes comandos?#chmod a+r temp1#chmod og-x temp1

derv@algaju:~/dir1> chmod a+r temp1 (DA PERMISO DE LECTURA A TODOS LOS USUARIOS)

derv@algaju:~/dir1> chmod og-x temp1 (DA PERMISO DE EJECUCION AL GRUPO DEL PROPIETARIOS Y A OTROS USUARIOS)Añadamos los permisos de lectura al grupo y al restochmod g+r agenda1chmod o+r temp1¿Y ahora qué permisos tienen? derv@algaju:~/dir1> chmod g+r agenda1chmod: cambiando los permisos de «agenda1»: Operación no permitida
derv@algaju:~/dir1> chmod o+r temp1
derv@algaju:~/dir1> ls temp1 -l-rwxr--r-- 1
derv users 102 2006-07-03 21:08 temp1 (TODOS LOS PERMISOS PARA EL PROPIETARIO Y DE LECTURA PARA OTROS USUAIOS)

Crearemos un archivo de la siguiente forma:# ls -l > hola derv@algaju:~/dir1> ls -l>hola derv@algaju:~/dir1> ls hola -l-rw-r--r-- 1
derv users 11425 2006-07-03 21:12

Ahora podemos observar que el propietario de este archivo es derv, que pertenece al grupo users, y que sus bits de acceso están de la siguiente forma : -rw-r--r--.

¿Que indica todo esto? SIGNIFICA QUE EL PROPIETARIO TIENE PERMISO DE LECTURA/ESCRITURA Y SU GRUPO DE LECTURAEl cálculo de la máscara de umask se efectúa de la siguiente forma:#umask
derv@algaju:~/dir1> umask0022


Ejercicios de Repaso

Qué comandos utilizaría para:ordenar un archivo por nombres

derv@algaju:~/dir1> sort libro.telefonos
david!5838434!5 thompson street
fred!343423!1005 marks road
george!2334234!55 aim avenue
janet!33343!43 pedwell road

ordenar un archivo en orden descendente por el número de teléfono

derv@algaju:~/dir1> sort -r -t! -k2 libro.telefonos
david!5838434!5 thompson street
fred!343423!1005 marks road
janet!33343!43 pedwell road
george!2334234!55 aim avenue

mostrar sólo la columna de las direcciones

derv@algaju:~/dir1> cut -d! -f3 libro.telefonos
55 aim avenue
1005 marks road
5 thompson street
43 pedwell road

cambiar todos los caracteres delimitadores “!” por “:”
derv@algaju:~/dir1> tr ! :george:2334234:55 aim avenue
fred:343423:1005 marks road
david:5838434:5 thompson street
janet:33343:43 pedwell road

mostrar la primera línea del archivo
derv@algaju:~/dir1> uniq -u1 libro.telefonos
george!2334234!55 aim avenue

mostrar la línea que contiene la información sobre david

derv@algaju:~/dir1> grep david libro.telefonos
david!5838434!5 thompson street

¿Qué efecto tendría el siguiente comando: paste –d: -s libro.telefonos
derv@algaju:~/dir1> paste -d: -s libro.telefonos
george!2334234!55 aim avenue:fred!343423!1005 marks road:david!5838434!5 thompson street:janet!33343!43 pedwell roadderv@algaju:~/dir1>

No hay comentarios: