Standard IO and Pipes guia de ejercicios

Transcripción

Standard IO and Pipes guia de ejercicios
1
Standard I/O and Pipes
Capítulo 1 Entrada estándar y salida estándar
HTU
UTH
Conceptos clave
•
•
Los programas basados en la terminal tienden a leer información desde una
fuente y a escribir la información en un destino.
La fuente desde donde se leen los programas se conoce como una entrada
estándar ( stdin , del inglés standard in) y suele estar conectada al teclado de la
terminal.
El destino al que los programas escriben se conoce como una salida estándar
( stdout , del inglés standard out) y suele estar conectada a la pantalla de la
terminal.
Cuando se utiliza la shell bash , la stdout puede redirigirse mediante > o >> y la
stdin puede redirigirse mediante < .
T
•
T
•
T
T
T
HTU
T
T
T
Preguntas
T
T
T
T
T
UTH
Use the following transcript to answer the next 3 questions.
[prince@station prince]$ who
prince
tty1
Sep 22 20:02
[prince@station prince]$ cat < /etc/services >> ~/services
T
T
T
HTU
Question 1
UTH
¿Qué archivo está utlizando el comando cat para la entrada estándar?
T
A. /dev/tty1
T
T
B. /etc/services
T
C. /dev/null
T
T
T
T
D. ~/services
T
T
E. None of the above
HTU
Question 2
UTH
¿Qué archivo está utilizando el comando cat para la salida estándar?
T
A. ~/services
T
B. /dev/tty1
T
T
T
C. /etc/services
T
T
T
T
T
T
T
2
Standard I/O and Pipes
D. /dev/null
T
T
E. None of the above
HTU
Question 3
UTH
¿Qué archivo está utilizando la shell cat para la salida estándar?
T
A. /dev/tty1
T
T
B. ~/services
T
C. /dev/null
T
T
T
T
D. /etc/services
T
T
E. None of the above
HTU
Question 4
UTH
¿Cuáles de las siguientes líneas de comando agregaría líneas al archivo (ya existente)
df.out ?
T
T
A. df > df.out
T
T
B. df >+ df.out
T
C. df.out << df
T
D. df.out +< df
T
T
T
T
E. None of the above
Use the following transcript to answer the next 3 questions.
[prince@station prince]$ ps
PID TTY
TIME CMD
1409 pts/0
00:00:00 bash
1542 pts/0
00:00:00 vmstat
1543 pts/0
00:00:00 ps
[prince@station prince]$ ls -l /proc/1542/fd
total 6
lrwx-----1 prince
prince
64 Sep
/dev/pts/0
l-wx-----1 prince
prince
64 Sep
/tmp/vmstat.out
lrwx-----1 prince
prince
64 Sep
/dev/pts/0
lr-x-----1 prince
prince
64 Sep
/proc/uptime
lr-x-----1 prince
prince
64 Sep
/proc/stat
T
T
T
T
22 20:42 0 ->
22 20:42 1 ->
22 20:42 2 ->
22 20:42 3 ->
22 20:42 4 ->
3
Standard I/O and Pipes
lr-x-----1 prince
/proc/meminfo
HTU
Question 5
prince
64 Sep 22 20:42 5 ->
UTH
¿Cuáles de las siguientes archivos está utilizando el comando vmstat para salida
estándar?
T
A. /proc/stat
T
B. /dev/tty1
T
T
T
T
C. /dev/pts/0
T
T
D. /tmp/vmstat.out
T
T
E. There is not enough information provided.
HTU
Question 6
UTH
¿Qué sucedió al iniciarse el comando vmstat ?
T
T
A. La shell bash creó un nuevo archivo.
T
T
B. La shell bash sobrescribió un archivo ya existente.
T
T
C. La shell bash agregó a un archivo ya existente.
T
T
D. El comando vmstat creó un nuevo archivo.
T
T
E. There is not enough information provided.
HTU
Question 7
UTH
¿Cuál de los siguientes archivos está utilizando el comando para la entrada estándar?
A. /proc/stat
T
T
B. /tmp/vmstat.out
T
C. /dev/pts/0
T
D. /dev/tty1
T
T
T
T
E. There is not enough information provided.
Use the following transcript to answer the next 3 questions.
T
T
[prince@station prince]$ cal > cal.out
[prince@station prince]$ ls -l /dev/stdin
T
4
Standard I/O and Pipes
lrwxrwxrwx
1 root
root
17 Apr 1 11:13 /dev/stdin ->
../proc/self/fd/0
[prince@station prince]$ cat /dev/stdin < cal.out
September 2003
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
T
HTU
T
Question 8
UTH
¿Qué es lo que mejor describe el archivo /proc/self ?
T
T
A. El archivo es un enlace simbólico que apunta a la shell de inicio actual.
B. El archivo es un enlace simbólico que apunta al directorio raíz.
C. El archivo es un enlace simbólico que apunta a /dev/stdout .
T
T
D. El archivo es un enlace simbólico que apunta a /tmp .
T
E.
HTU
T
The file is a symbolic link which resolves to the /proc/pid directory
corresponding to the current process.
T
Question 9
T
UTH
Para el proceso cat a qué archivo apuntaría el enlace simbólico /proc/self/fd/0 ?
T
T
A. /dev/stdin
T
B. cal.out
T
T
T
T
T
T
E. /proc/self
T
HTU
T
T
C. /dev/tty1
D. /tmp
T
Question 10
T
UTH
Para el proceso cat , ¿a qué archivo muy probablemente apuntaría el enlace simbólico
/proc/self/fd/1 ?
T
T
T
T
A. /proc/self
T
B. /tmp
T
T
C. cal.out
T
T
D. /dev/stdin
T
T
T
5
Standard I/O and Pipes
E. /dev/tty1
T
T
Capítulo 2 Error estándar
HTU
UTH
Conceptos clave
•
Los programas Unix reportan condiciones de error a un destino llamado error
estándar ( stderr ).
Usualmente, stderr está conectado a una pantalla de terminal y los mensajes de
error se encuentran entremezclados con las salidas estándar.
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 >&
T
•
•
T
T
T
•
HTU
T
T
T
Preguntas
T
T
T
T
UTH
Use the following transcript to answer the next question.
[madonna@station madonna]$ cat
chmod: changing permissions of
permitted
chmod: changing permissions of
not permitted
chmod: changing permissions of
permitted
chmod: changing permissions of
permitted
chmod: changing permissions of
permitted
T
HTU
Question 1
chmod.err
`/tmp/orbit-elvis': Operation not
T
`/tmp/orbit-elvis-a8e8d915': Operation
`/tmp/orbit-hogan': Operation not
`/tmp/orbit-root': Operation not
`/tmp/orbit-student': Operation not
UTH
¿Cuál de las siguientes líneas de comando muy probablemente crearon el archivo
chmod.err ?
T
T
A. chmod a+r /tmp/* > chmod.err
T
T
B. chmod a+r /tmp/* 2> chmod.err
T
C. chmod a+r /tmp/* >> chmod.err
T
D. chmod a+r /tmp/* e> chmod.err
T
E. None of the above
T
T
T
6
Standard I/O and Pipes
HTU
Question 2
UTH
¿Cuáles de las siguientes líneas de comando combinarían stdout y stderr y redirigirían el
flujo combinado al archivo /tmp/find.out ?
T
T
A. find /etc > /tmp/find.out 2>&1
T
B. find /etc >> /tmp/find.out
T
C. find /etc >& /tmp/find.out
T
T
T
T
D. find /etc >>& /tmp/find.out
T
T
E. A y C
HTU
Question 3
UTH
¿Cuáles de las siguientes líneas de comando combinarían stdout y stderr y redirigirían el
flujo combinado al archivo /tmp/find.out si éste ya existia?
T
T
A. find /etc > /tmp/find.out 2>&1
T
B. find /etc >> /tmp/find.out
T
T
C. find /etc >> /tmp/find.out 2>&1
T
D. find /etc >>& /tmp/find.out
T
T
T
T
E. A y C
Use the following transcript to answer the next two questions.
T
[madonna@station madonna]$ cat /etc/t* > /tmp/cat.out 2> /tmp/cat.err
[1]+ Stopped
cat /etc/t* >/tmp/cat.out
[madonna@station madonna]$ ps
PID TTY
TIME CMD
2419 pts/1
00:00:00 bash
3126 pts/1
00:00:00 cat
3127 pts/1
00:00:00 ps
[madonna@station madonna]$ ls -l /proc/3126/fd
total 4
lrwx-----1 madonna madonna
64 Sep 23 04:15
/dev/pts/1
l-wx-----1 madonna madonna
64 Sep 23 04:15
/tmp/cat.out
l-wx-----1 madonna madonna
64 Sep 23 04:15
/tmp/cat.err
lr-x-----1 madonna madonna
64 Sep 23 04:15
/etc/termcap
[madonna@station madonna]$ fg
[madonna@station madonna]$ ???????
cat: /etc/tomcat4: Is a directory
T
T
T
T
2>/tmp/cat.err
T
T
T
T
0 ->
1 ->
2 ->
3 ->
7
Standard I/O and Pipes
HTU
Question 4
UTH
¿Qué archivo descriptor utiliza Linux como error estándar?
A. 0
B. 1
C. 2
D. 3
E. None of the above
HTU
Question 5
UTH
¿Cuáles de las siguientes líneas de comando podrían remplazar los signos de
interrogación como la última línea de comando en la transcripción?
A. cat /dev/pts/1
T
T
B. cat /tmp/cat.out
T
C. cat /tmp/cat.err
T
D. cat /etc/termcap
T
E. cat /dev/null
T
HTU
Question 6
T
T
T
T
UTH
¿A cuál de los siguientes archivos esperaría usted que apuntara el enlace simbólico
/dev/stderr ?
T
T
A. ../proc/self/fd/2
T
B. ../proc/self/fd/1
T
C. ../proc/self/fd/0
T
D. /dev/null
T
T
T
T
T
E. None of the above
Use the following transcript to answer the next two questions.
[madonna@station madonna]$ cat groups.sh
#!/bin/bash
T
if id $1
then
T
8
Standard I/O and Pipes
echo "The user $1 belongs to the following groups: $(id -Gn
$1) "
else
echo "The user $1 does not exist"
fi
[madonna@station madonna]$ ./groups.sh elvis
uid=501(elvis) gid=501(elvis)
groups=501(elvis),201(wrestle),202(physics),203(emperors),205(music)
The user elvis belongs to the following groups: elvis wrestle physics
emperors music
[madonna@station madonna]$ ./groups.sh barney
id: barney: No such user
The user barney does not exist
T
T
T
HTU
T
Question 7
UTH
¿Cuál de los siguientes remplazos para la línea número 3 del archivo groups.sh haría
que el script mostrara una línea sencilla comenzando por "El usuario" en todos los
casos?
T
A. if id -q $1
T
T
T
B. if id $1 >/dev/null 2>&1
T
C. if id $1 2> /dev/null
T
D. if id $1 > /dev/null
T
T
T
T
E. None of the above
HTU
Question 8
UTH
¿Cuál de los siguientes remplazos de línea número 7 del archivo groups.sh haría que
el script se quejara en el error estándar si el usuario no existe? ¿(En lugar de salida
estándar)?
T
A. echo "The user $1 does not exist" > /dev/stderr
T
B. echo -e "The user $1 does not exist"
T
T
T
T
C. echo "The user $1 does not exist" > /proc/self/fd/2
T
D. echo -E "The user $1 does not exist"
T
T
T
E. A y C
HTU
Question 9
UTH
Asumiendo que cmd es un comando sencillo y sus argumentos (pero no los
metacaracteres de shell), ¿qué redirigiría error estándar (únicamente) al archivo
T
T
9
Standard I/O and Pipes
T
/tmp/errors ,
T
agregando al archivo si ya existió?
A. cmd 2> /tmp/errors
T
B. cmd >> /tmp/errors
T
C. cmd >+ /tmp/errors
T
T
T
T
D. cmd 2>+ /tmp/errors
T
E. cmd 2>> /tmp/errors
T
HTU
Question 10
T
T
UTH
Asumiendo que cmd es un comando sencillo y sus argumentos (pero no metacaracteres
de shell), ¿qué garantizaría la ejecución de cmd sin generar una salida visible?
T
T
T
A. cmd 2> /dev/null
T
B. cmd > /dev/null
T
C. (cmd)
T
T
T
T
T
D. cmd > /dev/null 2>&1
T
E. silent (cmd)
T
Capítulo 3 Tuberías
HTU
T
T
UTH
Conceptos clave
•
•
•
HTU
HTU
El flujo de stdout desde un proceso puede estar conectado al flujo de stdin de
otro proceso mediante lo que Unix llama una "tubería".
Varios de los comandos en Unix están diseñados para operar como un filtro, leer
la entrada desde stdin y enviar la salida a stdout.
bash usa "|" para crear una tubería entre dos comandos.
T
T
Preguntas
UTH
Question 1
UTH
¿Cuáles de las siguientes líneas de comando reducirían la salida del comando locate
conf a solo los archivos cuyos nombres o ruta contengan el texto python ?
T
T
T
A. locate conf >> grep python
T
T
T
10
Standard I/O and Pipes
B. locate conf | grep python
T
C. locate conf < grep python
T
T
T
D. locate conf | grep < python
T
T
E. None of the above
HTU
Question 2
UTH
¿Cuáles de las siguientes líneas de comando producirían un listado de todos los
procesos que contengan el texto sshd ?
T
T
A. ps aux | sort | grep sshd
T
B. ps aux | grep sshd | sort
T
C. grep sshd | ps aux | sort
T
D. sort | ps aux | grep sshd
T
T
T
T
T
E. A or B
Utilice la siguiente transcripción para contestar las 6 preguntas a continuación.
T
[elvis@station elvis]$ ls -R / 2> /dev/null | grep etc | less
[1]+ Stopped
ls --color=tty -R /
etc | less
[elvis@station elvis]$ ps
PID TTY
TIME CMD
1603 pts/2
00:00:01 bash
2391 pts/2
00:00:00 ls
2392 pts/2
00:00:00 grep
2393 pts/2
00:00:00 less
2394 pts/2
00:00:00 ps
[elvis@station elvis]$ ls -l /proc/2391/fd
total 0
lrwx-----1 elvis
elvis
64 Sep 23
/dev/pts/2
l-wx-----1 elvis
elvis
64 Sep 23
pipe:[20966]
l-wx-----1 elvis
elvis
64 Sep 23
T
2>/dev/null | grep
T
T
HTU
T
T
Question 3
UTH
¿Qué archivo (o tubería) está ligada al stderr del proceso ls ?
T
A. Una tubería del proceso grep
T
B. /dev/null
T
T
T
T
09:49 0 ->
09:49 1 ->
09:49 2 -> /dev/null
11
Standard I/O and Pipes
C. /dev/pts/2
T
T
D. Una tubería para el proceso less
T
T
E. None of the above
HTU
Question 4
UTH
¿Qué archivo (o tubería) está conectado al stderr del proceso grep ?
T
A. /dev/null
T
T
T
B. /dev/pts/2
T
T
C. Una tubería del proceso ls
T
T
D. Una tubería para el proceso less
T
T
E. None of the above
HTU
Question 5
UTH
¿Qué archivo (o tubería) está ligado al stdin del proceso grep ?
T
A. Una tubería para el proceso less
T
B. Una tubería del proceso ls
T
C. /dev/pts/2
T
D. /dev/null
T
T
T
T
T
T
E. None of the above
HTU
Question 6
UTH
¿Qué archivo (o tubería) está ligado al stdin del proceso less ?
T
A. Una tubería del proceso ls
T
B. /dev/pts/2
T
C. /dev/null
T
T
T
T
D. Una tubería del proceso grep
T
E. None of the above
HTU
Question 7
UTH
T
T
12
Standard I/O and Pipes
¿A qué expresión apuntaría el enlace simbólico /proc/2392/fd/0 ?
T
A. /dev/pts/2
T
T
B. pipe:[20966]
T
C. /dev/null
T
D. /tmp
T
T
Question 8
T
T
T
E. /dev/tty2
HTU
T
T
UTH
Cuando bash reporta el grupo de proceso detenido, el alias ls se ha expandido a ls -color=tty . La opción --color=tty le ordena al comando ls generar secuencias de control
de color sólo si su stdout está ligada a la terminal. ¿Cuál es verdadero?
T
T
T
T
A.
T
T
T
T
T
T
El comando ls genera secuencias de control de color que pueden observarse a
través del visualizador de página less .
T
T
T
T
B. The ls command does not generate color control sequences.
T
T
El comando ls genera secuencias de control de color pero son filtradas por el
comando grep .
El comando ls nunca genera secuencias de control de color (el comando -D. color=tty está incluído sólo para propósitos de compatibilidad con versiones
anteriores).
C.
T
T
T
T
T
T
T
T
E. Ninguna de las anteriores.
HTU
Question 9
UTH
¿Cuál de las siguientes líneas de comando permitirían al paginador less navegar
mensajes de error de grep como también la salida?
T
T
T
T
A. grep root /etc/* 2>&1 | less
T
B. grep root /etc/* | less 2>&1
T
C. grep root /etc/* >>| less
T
D. grep root /etc/* 2| less
T
T
T
T
T
E. None of the above
La opción -j hace que el comando ps genere salida de "un trabajo de control orientado".
Utilice la siguiente transcripción para contestar la próxima pregunta.
T
T
T
T
T
[elvis@station elvis]$ ls -R / | grep etc | less
T
13
Standard I/O and Pipes
[1]+ Stopped
ls --color=tty -R / | grep etc | less
[elvis@station elvis]$ ps -j
PID PGID
SID TTY
TIME CMD
1215 1215 1215 pts/0
00:00:00 bash
3242 3242 1215 pts/0
00:00:00 ls
3243 3242 1215 pts/0
00:00:00 grep
3244 3242 1215 pts/0
00:00:00 less
3246 3246 1215 pts/0
00:00:00 ps
T
HTU
T
Question 10
UTH
¿Cuál sería la expansión más razonable del segundo encabezado de columna, PGID ?
T
A. Process Group ID
B. ID de generación padre
C. ID de género del proceso
D. ID de góndola Powder
E. None of the above
T

Documentos relacionados