capítulo 1: entrada estándar y salida estándar. 1. el comando hostname informa su nombre de...

28
Unidad 5: Standard IO and Pipe Capítulo 1: Entrada estándar y salida estándar

Upload: porfirio-posada

Post on 23-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Unidad 5: Standard IO and Pipe

Capítulo 1: Entrada estándar y salida estándar

Page 2: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

1.El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando (sin argumentos) y redirige la salida al archivo ~/stdoutlab.txt.

2.El comando uptime reporta cuánto tiempo ha pasado desde que arrancó su máquina y otra información de uso del sistema. Ejecute el comando uptime (sin argumentos) usando la redirección para agregar la salida al archivo ~/stdoutlab.txt.

3.El comando uname -a lista información sobre su versión actual de kernel. Ejecute el comando usando la redirección para agregar la salida al archivo ~/stdoutlab.txt.

Ejercicio

Page 3: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Capítulo 2Error estándar

Page 4: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

ls -F /etc/rc.d/ head -1 /etc/rc.d/* head -1 /etc/rc.d/* > rcsummary.out head -1 /etc/rc.d/* 2> rcsummary.err head -1 /etc/rc.d/* > rcsummary.out 2>

rcsummary.err

Ejemplo

Page 5: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

[elvis@station elvis]$ find /var -user elvis

find /var -user elvis 2> /tmp/foo find /var -user elvis 2> /dev/null ls -l /dev/null

Uso de null para redireccionar

Page 6: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

1. Utilice la siguiente línea de comandos para mostrar el contenido de todos los archivos dentro del directorio /etc/X11.

2. Repita la línea de comandos pero redirija stdout a un archivo llamado ~/stderrlab.out y stderr a un archivo llamado ~/stderrlab.err.

3. Repita el comando pero esta vez combine stdout y stderr en un sólo flujo y redirija el flujo al archivo ~/stderrlab.both.

Ejercicio

Page 7: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Capítulo 3Tuberías

Page 8: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

ps aux | grep httpd history | grep ls

Ejemplo

Page 9: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

1. Usted desearía crear una lista ordenada de todos los servicios de TCP services que se encuentran en el archivo /etc/services. Entube la salida del comando grep tcp /etc/services dentro del comando sort. Redirija la salida de esta tubería dentro del archivo ~/pipelab.txt.

2. Mediante el visualizador de página less desearía navegar la salida del comando ls -R /, viendo sólo archivos que contengan la letra s. Escriba un línea de comando con dos tuberías para encadenar los comandos ls -R /, grep s, y less. Abandone el visualizador de página less en el primer plano mientras califica su ejercicio.

Ejercicio

Page 10: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Unidad 6: String Processing Tools

Capítulo 1: Conteo de palabras y codificación de texto

Page 11: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

cat /etc/hosts cat -A /etc/hosts

Ejemplo Cat

Page 12: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Head◦ ps aux | head 1

Tail◦ ps aux | tail +2

Ejemplo Head y Tail

Page 13: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

alias nusers='users | wc -w‘ ps aux | tail +2 | wc -l

Ejemplo WC

Page 14: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

1. Cree el archivo ~/gplwords.txt que contenga el número de palabras (como fue reportado por el comando wc) en el archivo /usr/share/doc/redhatrelease- 4ES/GPL como su única palabra.

2. Cree el archivo ~/localusers.txt, el cual contiene el número de usuarios localmente definidos como su única palabra.

3. Las bibliotecas compiladas estáticamente de modo convencional se encuentran en el directorio/usr/lib y tienen nombres que comienzan por lib y terminan en la extensión .a. Cree el archivo ~/usrlibs.txt que contenga el número de los archivos cuyo nombre siga esta convención en el directorio /usr/lib como su única palabra (no incluya subdirectorios).

4. Crear un script ejecutable llamado~/bin/nrecent. El script debería esperar un solo argumento, el cual es un nombre de un directorio. Tras la ejecuación, el script debería retornar un solo número, el cual es el número de archivos en el directorio modificados en las últimas 24 horas. El script no debería generar mensajes de error de los directorios en el flujo de error estándar.

Ejercicios

Page 15: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Para el archivo ~/localusers.txt recuerde que los usuario locales están definidos en el archivo /etc/passwd, un usuario por línea.

Para el script ~/bin/nrecent recuerde que $1 desreferencia un argumento del script bash. Considere el utilizar el comando find para generar una lista de archivos coincidentes con los criterios y luego cuente el número de líneas (o palabras) en la salida. Usted podría desear utilizar los directorios /etc o /var/log para probar su script.

Ayudas

Page 16: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Unidad 6: String Processing Tools

Capítulo 2: Búsqueda de Texto: grep

Page 17: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Búsqueda en archivos◦ echo Todos los gatos tienen una cola > general◦ echo Los gatos tienen nueve vidas > vidas◦ grep gatos general vidas◦ grep –l nueve general vidas

Búsqueda Recursiva◦ grep -r eth0 /etc/sysconfig 2>/dev/null◦ grep -r eth0 /etc/sysconfig 2>/dev/null | grep DEVICE◦ grep -rl eth0 /etc/sysconfig 2>/dev/null

Grep

Page 18: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Inversión◦ head -n 4 /etc/passwd◦ grep -v root /etc/passwd | head -n 3

Sin Importar Mayuscula y minuscula◦ grep LP /etc/passwd◦ grep -i LP /etc/passwd

Concidente sólo con la palabra◦ grep bin /etc/passwd◦ Grep -w bin /etc/passwd

Grep

Page 19: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Ls –R /etc/ | grep networking | gedit Ls –R /etc/ | grep networking | xargs gedit

Grep y xargs

Page 20: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

1. Crear el archivo ~/bashusers.txt que contenga las líneas del archivo /etc/passwd que contengan el texto /bin/bash.

2. Crear el archivo~/nostdhome.txt que contenga sólo líneas desde el archivo /etc/passwd que no contengan el texto home (implicando que el usuario asociado tiene un directorio de inicio no estándar).

3. Crear el archivo ~/ansiterms.txt que contenga cada línea del archivo /etc/termcap que contenga el texto ansi, utilizando una búsqueda insensible a las mayúsculas y minúsculas, (en otras palabras, ansi, ANSI, Ansi y AnSi todas coincidirían).

4. Crear el archivo ~/mayhemnum.txt que contenga el número de la línea de la palabra mayhem del archivo /usr/share/dict/words como su única palabra.

5. Crear el archivo ~/firstredhat.txt que contenga un listado clasificado en orden alfabético de todos los archivos bajo el directorio /usr/share/firstboot (y sus subdirectorios) que contengan el texto redhat, utilizando una búsqueda que no tenga en cuenta las mayúsculas y minúsculas. Los archivos deben listarse uno por línea mediante referencias absolutas.

Ejercicio

Page 21: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Unidad 6: String Processing Tools

Capítulo 4: Ordenando todo: sort

Page 22: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

◦ ls -s /var/log/m* | sort -n◦ ls -s /var/log/m* | sort -nr

Clasificando por columna◦ ls -l /var/log/m* | sort -n◦ ls -l /var/log/m* | sort -n -k5

Clasificacion multiples columnas◦grep "^[[:alnum:]]" /etc/fdprm◦grep "^[[:alnum:]]" /etc/fdprm | sort -n -k5◦grep "^[[:alnum:]]" /etc/fdprm | sort -n -k5 -

k3

Ejemplos Sort

Page 23: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Especificación del separador de campo◦ head /etc/passwd◦ head /etc/passwd | sort -t: -k6

Ejemplos Sort

Page 24: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

1. El archivo /etc/fstab se utiliza para predefinir puntos de montaje en su sistema. La tercera columna del archivo especifica el tipo de sistema de archivo del dispositivo que va a ser montado. Clasifique el contenido del archivo en orden alfabético ascendente, mediante la tercera columna como su tecla primaria. Almacene la salida en el archivo recién creado ~/fstab.byfs.

2. El archivo /proc/modules lista los módulos cargados en el kernel junto con el tamaño del módulo (la segunda columna) y un uso de conteo actual (tercera columna). Clasifique el contenido de este archivo en orden numérico descendente, con el uso de conteo (tercera columna) como una tecla primaria y el tamaño de módulo (segunda columna) como su tecla secundaria. Almacene los resultados en el archivo~/modules.byuc.

3. Clasifique el archivo /etc/passwd en orden alfabético ascendente mediante la shell de inicio del usuario como la tecla primaria. Almacene los resultados en el archivo recién creado passwd.bylogin.

Ejercicio

Page 25: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

4. El comando df lista las particiones de disco montadas actualmente junto con uso actual del disco. La cuarta columna de esta salida del comando lista la cantidad de espacio disponible en bloques. Crea un script ejecutable llamado ~/bin/avail. Cuando sea ejecutado el script debería listar las particiones disponibles (la salida del comando df), clasificada en orden numérico descendente. La línea del encabezado generada a partir del comando df debería eliminarse de la salida.

Ejercicio

Page 26: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Unidad 6: String Processing Tools

Capítulo 5: Extraer y reunir texto: cut y paste

Page 27: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

cat /proc/interrupts grep '[[:digit:]]:' /proc/interrupts |cut -c1-15 grep '[[:digit:]]:' /proc/interrupts |cut -c1-5,34- cut -s -f3,4 pcitable | head cut -s -f3 pcitable | sort | uniq -c | sort -rn | head cut -d: -f1,7 /etc/passwd

Ejemplo cut

Page 28: Capítulo 1: Entrada estándar y salida estándar. 1. El comando hostname informa su nombre de máquina asignado de la estación actual. Ejecute el comando

Paste f1 f2 Paste –s –d: f1 f2

Ejemplos de paste