Documente Academic
Documente Profesional
Documente Cultură
NTO Y TUBERIAS
TEMA #5
CONTENIDO
Entrada estndar y salida estndar
Error estndar
Redireccionamiento
Tuberas
TIPOS DE PROGRAMAS
Programas grfi cos
Los programas grfi cos estn diseados para ejecutarse en
el entorno grfi co X.
Esperan que el usuario utilize el mouse y los componentes
grfi cos comunes tales como mens emergentes y botones
para la entrada de datos
Ejemplo Mozilla Web Browser
Programas de pantalla
Los programas de pantalla esperan utilizar una consola de
texto.
Apropiados para terminales y consolas virtuales
Ejemplo vi y nano
Programas de terminal
Reunen entradas y salidas de pantalla en un fl ujo
suelen llamarse simplemente comandos.
Ejemplo ls y cat
START TIME
Jun02 0:04
COMMAND
root
0.0
0.0
init [
root
0.0
0.0
SW
Jun02
0:00
[keventd]
root
0.0
0.0
SW
Jun02
0:00
[kapmd]
START TIME
Jun02 0:04
COMMAND
root
0.0
0.0
init [
root
0.0
0.0
SW
Jun02
0:00
[keventd]
root
0.0
0.0
SW
Jun02
0:00
[kapmd]
REDIRECCIN DE STDIN
bash usa < para hacer que lean entradas desde
alguna parte diferente al teclado.
[elvis]$ mail -s "Computer is sluggish" root@localhost@localdomain
Hey root...
I'm sending a list of processes that were running in a separate email.
Thanks! --elvis
.
Cc:
[elvis]$ mail -s "ps output" root@localhost@localdomain < nota.txt
ARCHIVOS ABIERTOS Y
DESCRIPTORES DE ARCHIVOS
Con el fi n de leer o escribir informacin en un archivo
un proceso debe abrir el archivo.
Los procesos de Linux (y Unix) mantienen el registro
de los archivos que estn abiertos mediante la
asignacin de un nmero entero a cada uno.
El nmero entero se conoce como un descriptor de
archivos.
ARCHIVOS ABIERTOS Y
DESCRIPTORES DE ARCHIVOS
Cada proceso tiene un subdirectorio asociado bajo /proc
llamado como su PID (ID del proceso).
El subdirectorio del proceso a su vez tiene un subdirectorio
llamado fd (del ingls file descriptor).
Dentro del subdirectorio /proc/pid/fd, existe un enlace
simblico para cada archivo abierto por el proceso.
El nombre del enlace simblico es el nmero entero del
descriptor de archivo abierto y el enlace simblico apunta al
archivo mismo.
0
1
2
3
-> /dev/tty1
-> /dev/tty1
-> /dev/tty1
->
DESCRIPTORES DE ARCHIVOS
Cuando un programa se ejecuta, automticamente se
le proporcionan 3 descriptores de archivo:
- Entrada estndar (stdin)
- Salida estndar (stdout)
- Error estndar (stderr)
Flujo
Descriptor
Abreviacin
Standard In
stdin
Standard Out
stdout
Standard Error
stderr
DESCRIPTORES DE ARCHIVOS
<>
REDIRECCIONAMIENTO
[ e lv is@st at io n el vi s]$ cat / e t c/ t e r mcap > / t mp/ foo
[ 1 ] + Stopped c at /e tc /termc a p > / tmp/foo
[ e lv is@st at io n el vi s]$
[ e lv is@st at io n el vi s]$ ps
P ID T TY
TI ME
CMD
1 36 8 pts/ 1
0 0 :0 0 : 0 0 bash
1 91 0 pts/ 1
0 0 :0 0 : 0 0 c at
1 91 1 pts/ 1
0 0 :0 0 : 0 0 ps
[ e lv is@st at io n el vi s]$ l s -l / proc/ 1 910 / fd
tota l 0
lrwx-----lrwx-----lrwx-----l r- x - - - - - -
1
1
1
1
elvis
elvis
elvis
elvis
elvis
elvis
elvis
elvis
64
64
64
64
Sep
Sep
Sep
Sep
13
13
13
13
06:42
06:42
06:42
06:42
0
1
2
3
->
->
->
->
/dev/tty1
/tmp/foo
/dev/tty1
/ e t c / t e rm c a p
ERROR ESTNDAR
Conceptos Claves
Los programas Unix reportan condiciones de
error a un destino llamado error estndar (stderr).
Usualmente, stderr est conectado a una
pantalla de terminal y los mensajes de error se
encuentran entremezclados con las salidas
estndar.
Cuando se utiliza la shell bash, el flujo de stderr
puede redirigirse a un archivo mediante 2>.
Al utilizar bash, el flujo de stderr puede
combinarse con el flujo de stdout mediante 2>&1
o >&
==> /etc/rc.d/rc.sysinit.rpmsave
<==
#!/bin/bash
COMBINACIN DE STDOUT Y
STDERR
Usando 2>&1 para combinar stdout y stderr se
introdujo en la shell Unix original, la shell Bourne
(sh). Dado que bash est diseado para ser
compatible con sintaxis anteriores sh tambin
soporta esta sintaxis. Sin embargo, la sintaxis no
es conveniente.
Para simplifi car las cosas, bash usa >& para
combinar stdin y stdout como en el siguiente
ejemplo.
[elvis@station
TUBERAS
Conceptos Claves
El flujo de stdout desde un proceso puede estar
conectado al flujo de stdin de otro proceso
mediante lo que Unix llama una "tubera".
Varios de los comandos en Unix estn diseados
para operar como un filtro, leer la entrada desde
stdin y enviar la salida a stdout.
bash usa "|" para crear una tubera entre dos
comandos.
TUBERA (PIPES)
Pipe o tubera es una de las formas ms comunes y
efi caces para redirigir una combinacin de la salida
(salida estndar) de un comando la cual es
"entubada" directamente dentro de la entrada
(entrada estndar) de otro comando.
Con el fi n de crear una tubera por medio de bash,
los dos comandos se unen con una barra vertical |
/etc/openldap/ldaptemplates.conf
/usr/share/doc/libxslt-1.0.27/html/libxslttemplates.html
/usr/share/doc/libxslt-1.0.27/templates.gif
/usr/share/doc/docbook-style-xsl1.58.1/docsrc/templates.xml
/usr/share/man/man5/ldaptemplates.conf.5.gz
/usr/share/man/man3/ldap_free_templates.3.gz
/
usr/share/man/man3/ldap_init_templates_buf.3
.gz
/usr/share/man/man3/ldap_init_templates.3.gz
home/prince/.kde/share/apps/quanta/t
emplates
/home/prince/proj/templates
[prince]$
TAREA
Investigar la aplicacin y uso de los siguientes
comandos:
ps
Email
Grep
locate