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