Documente Academic
Documente Profesional
Documente Cultură
1.Fundamentos
Las redirecciones son una de las ms importantes posibilidades proporcionadas por el shell. Por redireccin se
entiende la posibilidad de redireccionar la visualizacin de la pantalla hacia un archivo, una impresora o cualquier
otroperifrico,losmensajesdeerroreshaciaotroarchivo,desustituirlaintroduccinvatecladoporelcontenidode
unarchivo.
Cualquierflujodedatosenentradaosalidadecomandopasaporuncanal.Comosucedeconelagua,esposible
desviarelcursodelosdatoshaciaotrodestinoodesdeotrafuente.
Linux utiliza canales de entradas/salidas para leer y escribir sus datos. Por defecto, el canal de entrada es el
teclado,yelcanaldesalida,lapantalla.Loserrores,direccionadospordefectoalapantalla,sontratadoscomoun
canalespecial.
Esposibleredireccionarestoscanaleshaciaarchivosoflujodetextodemaneratransparenteparaloscomandos
Linux.
2.Desalida
Sepuedeutilizarelcarcter>pararedireccionarlasalidaestndar(laquevanormalmenteenlapantalla).Luego
seindicaelnombredelarchivodondesecolocarnlosresultadosdesalida.
$ ls -l > resultado.txt
$ cat resultado.txt
total 1
-rw-r--r--
1 Administ ssh_user
0 Jul
-rw-r--r--
1 Administ ssh_user
4 12:04 PEPITO
-rw-r--r--
1 Administ ssh_user
Esunaspectoimportantedelasredirecciones:seinterpretanlasredireccionesdederechaaizquierda,yseinstalan
lasredireccionesANTESdelaejecucindeloscomandos.Hayquecrearelarchivoantesdepoderescribirenl.De
ahque,inclusosielcomandoesfalso,secreaose"chafa"elarchivo...
Paraaadirdatosacontinuacindelarchivo,osea,sinsobreescribirlos,seutilizaladobleredireccin>>.Seaade
elresultadodelcomandoalfinaldelarchivo.
$ ls -l > resultado.txt
$ date >> resultado.txt
$ cat resultado.txt
total 1
-rw-r--r--
1 Administ ssh_user
0 Jul
-rw-r--r--
1 Administ ssh_user
4 12:04 PEPITO
-rw-r--r--
1 Administ ssh_user
Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May
- 1-
2002
3.Enentrada
Los comandos que esperan datos o parmetros desde el teclado pueden tambin recibirlos desde un archivo
usando el carcter <. Un ejemplo con el comando wc (word count), que permite contar el nmero de lneas, de
palabrasydecaracteresdeunarchivo:
$ wc < resultado.txt
4
29
203
4.Documentoenlnea
Laredireccin<<esalgoparticular.Permitelautilizacindelosdocumentosenlnea.Encontraraveceseltrmino
HerescriptoHereDocument.Estopermitelainsercindeuntextohastaunpuntodadoyelenvodesuresultadoa
uncomandoounfiltro.Seautorizanlasredireccionesclsicas.Despusdel<<,hadeindicarunacadenaquedefine
elfinaldelainsercinporejemplo,aquend.
5.Loscanalesestndares
Sepuedeconsideraruncanalcomounarchivoqueposeesupropiodescriptorpordefecto,yenelcualsepuede
leeroescribir.
Elcanaldeentradaestndarsellamastdinyllevaeldescriptor0.
Elcanaldesalidaestndarsellamastdoutyllevaeldescriptor1.
Elcanaldeerrorestndarsellama stderryllevaeldescriptor2.Sepuederedireccionarelcanaldeerrorhaciaotro
archivo.
$ rmdir directorio2
rmdir: `directorio2: No such file or directory
$ rmdir directorio2 2>error.log
$ cat error.log
rmdir: `directorio2: No such file or directory
- 2-
Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May
Puederedireccionarlosdoscanalesdesalidaaunnicoarchivoponindolosenrelacin.Paraello,seutilizael>&.
Tambin es importante saber en qu sentido el shell interpreta las redirecciones. El shell busca primero los
caracteres<, >,>>alfinaldelalnea,yaquelasredireccionessuelenestaralfinaldecomando.Porlotanto,si
quiereagruparlosdoscanalesdesalidaydeerrorenunmismoarchivo,hayqueprocedercomoacontinuacin.
Se redirecciona la salida 2 hacia la salida 1 por lo tanto, los mensajes de error pasarn por la salida estndar.
Luegoseredireccionaelresultadodelasalidaestndardelcomandolshaciaelarchivoresultado.txt. Estearchivo
contendr,porlotanto,alavezlasalidaestndarylasalidadeerror.
Puedeutilizarlosdostiposderedireccinalavez:
29
203
6.Aperturadecanales
Existentrescanalesestndaresysenumerande0a2.As,0<equivalea<y1>a>.Elcomando execpermite
abrirotrossietecanalesnumeradosde3a9.Porlotanto,haydiezcanalesentotal.
Puedeeinclusodebeconsiderar,enelmarcodelosprocesos,sacaralgunosresultadosporelcanal3,otrosporel
4,yassucesivamente.Loscanalesestnabiertosparalaentradaylasalida.
$ exec 3>dump.log
$ ls -l >&3
$ cat dump.log
total 3952
-rw-r--r--
1 seb users
167212 oct
drwxr-xr-x
2 seb users
4096 mar
4 08:51 bin
drwxr-xr-x
8 seb users
4096 mar
4 08:45 cxoffice
drwx------
2 seb users
4096 mar
9 09:27 battlestar_1280.jpg
6 11:49 Documents
-rw-r--r--
1 seb users
-rw-r--r--
drwxr-xr-x
3 seb users
drwxr-xr-x
5 seb users
-rw-r--r--
1 seb users
-rw-r--r--
1 seb users
-rw-r--r--
1 seb users
Todo lo que se escribir en el canal 3 se escribir en el archivo dump.log. Luego se puede cerrar el canal
relacionndoloconunseudocanal(canaldecierre).
Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May
- 3-
$ exec 3>&-
7.Filtro:definicin
Unfiltro(ouncomandofiltro)esunprogramaquesabeescribiryleerdatosporloscanalesestndaresdeentrada
y salida. Modifica o trata si es preciso el contenido.wc es un filtro. Le presentamos algunos: more (muestra los
datospginaporpgina),sort(ordenalosdatos),grep(criteriosdebsqueda).
8.Pipelines/tuberas
Las redirecciones de entrada/salida como las que acaba de ver permiten redireccionar los resultados hacia un
archivo.Luegosepuedereinyectarenunfiltroparaextraerleotrosresultados.Estoobligaatecleardoslneas:una
para la redireccin hacia un archivo, otra para redireccionar este archivo hacia el filtro. Las tuberas o pipes
permitenredirigirelcanaldesalidadeuncomandohaciaelcanaldeentradadeotro.Elcarcterquelopermite|
estaccesibleconlacombinacin[AltGr]1delostecladosespaoles.
$ ls -l > resultado.txt
$ wc < resultado.txt
seconvierteen
$ ls -l | wc
Esposiblecolocarvarios|enunamismalnea.
$ ls -l | wc | wc
1
24
Elprimercomandonotieneporquserunfiltro.Noeselcasomshabitual.Loimportanteesquesedebefacilitar
un resultado. dem para el ltimo comando, que puede ser por ejemplo un comando de edicin o impresin.
Finalmente,elltimocomandopuedeserobjetodeunaredireccindesalida.
$ ls -l | wc > resultado.txt
- 4-
Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May