Tema 09
Tema 09
Tema 09
1. Introducción .
2. Las Barras Verticales en la Línea de Comandos
.
3. Redirección de E/S .
4. Buscar Archivos Utilizando el Comando Find
5. Visualización de los Archivos Utilizando el
Comando less
6. Revisando los Comandos head y tail.
7. Ordenar Archivos o Entradas
Contenidos 8. Visualización de las Estadísticas de Archivo con
el Comando wc.
9. Utilizar el Comando cut para Filtrar el Contenido
del Archivo
10. Utilizar el Comando grep para Filtrar el
Contenido del Archivo.
11. Las Expresiones Regulares Básicas.
12. Expresiones Regulares Extendidas.
13. El comando xargs
1. Introducción
MÓDULO DE COMPUTACIÓN 3 2
solamente algunas de las primeras o las últimas líneas de un archivo (o,
cuando se utiliza con una barra vertical, la salida de un comando anterior).
Por defecto, los comandos head y tail mostrarán diez líneas. Por ejemplo,
el siguiente comando muestra las diez primeras líneas del archivo
/etc/sysctl.conf:
MÓDULO DE COMPUTACIÓN 3 3
Si te fijas en la salida del comando anterior, notarás que ese primer
nombre del archivo es ca-certificates. Pero hay otros archivos listados
"arriba" que sólo pueden verse si el usuario utiliza la barra de
desplazamiento. ¿Qué pasa si sólo quieres listas algunos de los primeros
archivos del directorio /etc?
MÓDULO DE COMPUTACIÓN 3 4
La salida del comando ls se pasa al comando head por el shell en vez de
ser impreso a la pantalla. El comando head toma esta salida (del ls) como
"datos de entrada" y luego se imprime la salida del head a la pantalla.
MÓDULO DE COMPUTACIÓN 3 5
Compara la salida anterior con el siguiente ejemplo:
3. Redirección de E/S
3.1. STDIN
MÓDULO DE COMPUTACIÓN 3 6
introducir los comandos, que a su vez, se envían al comando como
STDIN.
3.2. STDOUT
3.3. STDERR
La redirección de E/S permite al usuario redirigir STDIN para que los datos
provengan de un archivo y la salida de STDOUT/STDERR vaya a un
archivo. La redirección se logra mediante el uso de los caracteres de la
flecha: < y >.
MÓDULO DE COMPUTACIÓN 3 7
Este comando no muestra ninguna salida, porque la STDOUT fue enviada
al archivo example.txt en lugar de la pantalla. Puedes ver el nuevo archivo
con la salida del comando ls. El archivo recién creado contiene la salida
del comando echo cuando se ve el contenido del archivo con el comando
cat.
MÓDULO DE COMPUTACIÓN 3 8
3.5. Redirigir la STDERR
Ten en cuenta que no hay nada en el ejemplo anterior lo que implica que
la salida es STDERR. La salida es claramente un mensaje de error, pero
¿cómo podrías saber que se envía al STDERR? Una manera fácil de
determinar esto es redirigir al STDOUT:
En el comando de arriba, 2> indica que todos los mensajes de error deben
enviarse al archivo error.txt.
MÓDULO DE COMPUTACIÓN 3 9
3.6. Redireccionando Múltiples Secuencias
MÓDULO DE COMPUTACIÓN 3 10
Ten en cuenta que cuando se utiliza &>, la salida aparece en el archivo
con todos los mensajes STDERR en la parte superior y todos los mensaje
STDOUT debajo de todos los mensajes de STDERR:
MÓDULO DE COMPUTACIÓN 3 11
No importa el orden en el vienen las secuencias especificadas.
MÓDULO DE COMPUTACIÓN 3 12
En el ejemplo anterior, el comando cat no recibió el nombre de archivo
como argumento. Por lo tanto, pidió los datos a mostrarlos en la pantalla
desde la entrada STDIN. El usuario introduce hello y luego el comando
cat muestra hello en la pantalla. Tal vez esto es útil para las personas
solitarias, pero no es realmente un buen uso del comando cat.
Sin embargo, tal vez si la salida del comando cat se redirige a un archivo,
entonces este método podría utilizarse para agregar datos a un archivo
existente o colocar texto en un archivo nuevo:
MÓDULO DE COMPUTACIÓN 3 13
El comando tr tomó la entrada STDIN desde el teclado (watch how this
works) (a ver cómo funciona esto) y convierte todas las letras en
minúsculas antes de enviar la salida STDOUT a la pantalla (WATCH HOW
THIS WORKS).
MÓDULO DE COMPUTACIÓN 3 14
Esto es bastante raro porque la mayoría de los comandos aceptan a los
nombres de archivo como argumentos. Sin embargo, para los que no, este
método podría utilizarse para que el shell lea desde el archivo en lugar de
confiar en el comando que tienen esta capacidad.
MÓDULO DE COMPUTACIÓN 3 15
Ten en cuenta que la mayoría de los archivos con los que trabajas, son
los que tú creas. Como resultado, a menudo buscarás en tu propio
directorio local para encontrar los archivos. Sin embargo, a veces puede
que necesites buscar en otros lugares en el sistema de archivos para
encontrar archivos creados por otros usuarios.
O en Inglés:
Componente Descripción
[opción de Aquí el usuario especifica una opción para determinar qué tipo
búsqueda] de metadatos hay que buscar; hay opciones para el nombre
de archivo, tamaño de archivo y muchos otros atributos de
archivo.
MÓDULO DE COMPUTACIÓN 3 16
Componente Descripción
MÓDULO DE COMPUTACIÓN 3 17
archivo de «basura» (o «junk» en inglés) para enviar los datos
innecesarios; se descarta cualquier archivo que envíes al archivo
/dev/null:
Por ejemplo, puede haber siete archivos llamados hosts; si supieras que
el archivo host que necesitas se había modificado recientemente,
entonces sería útil ver la hora de modificación del archivo.
Para ver estos detalles del archivo, utiliza la opción -ls para el comando
find:
NOTA:
MÓDULO DE COMPUTACIÓN 3 18
4.3. Buscar Archivos por Tamaño
Si quieres buscar los archivos que son más grandes que un tamaño
especificado, puedes usar el carácter + antes que el tamaño. Por ejemplo,
el siguiente ejemplo buscará todos los archivos en la estructura de
directorio /usr que su tamaño sea mayor a 100 megabytes:
Si quieres buscar los archivos que son más pequeños que un tamaño
especificado, puedes usar el carácter - antes que el tamaño.
MÓDULO DE COMPUTACIÓN 3 19
4.4. Opciones de Búsqueda Útiles Adicionales
Opción Significado
-type Devuelve los archivos que coinciden con el tipo de archivo. Por
ejemplo, -type f devuelve los archivos que son archivos
regulares.
MÓDULO DE COMPUTACIÓN 3 20
todos los archivos en la estructura de directorio /etc con el tamaño de 10
bytes y que son archivos simples:
Para archivos más grandes, querrás usar el comando pager que permite
ver el contenido. Los comandos pager mostrarán una página de datos a
la vez, permitiéndote moverte hacia adelante y hacia atrás en el archivo
utilizando las teclas de movimiento.
MÓDULO DE COMPUTACIÓN 3 21
more, todos los comandos de tecla disponibles en el comando more
también trabajan en el comando less.
Movimiento Tecla
Salir q
Ayuda h
Hay dos formas de buscar con el comando less: puedes buscar hacia
adelante o hacia atrás desde tu posición actual usando patrones llamados
las expresiones regulares. Más detalles en relación con las expresiones
regulares se proporcionarán más adelante en este capítulo.
Para iniciar una búsqueda hacia adelante desde tu posición actual, utiliza
la tecla /. A continuación, escribe el texto o el patrón y presiona la tecla
Entrar.
MÓDULO DE COMPUTACIÓN 3 23
Si se encuentra una coincidencia, el cursor se moverá en el documento
hasta encontrar una coincidencia. Por ejemplo, en el siguiente gráfico la
expresión «frog» (o «rana» en español) se buscó en el archivo
/usr/share/dict/words:
Observa que «frog» no tiene que ser una palabra por sí misma. Observa
también, que mientras el comando less te llevó a la primera coincidencia
desde tu posición actual, todas las coincidencias se resaltaron.
Para iniciar una búsqueda hacia atrás desde tu posición actual, pulsa la
tecla ?, después introduce el texto o el patrón y presiona la tecla Entrar.
El cursor se moverá hacia atrás hasta encontrar la primera coincidencia o
te informará que no se puede encontrar el patrón.
Recordemos que los comandos head y tail se utilizan para filtrar los
archivos y mostrar un número limitado de líneas. Si quieres ver un número
de líneas seleccionadas desde la parte superior del archivo, utiliza el
MÓDULO DE COMPUTACIÓN 3 24
comando head y si quieres ver un número de líneas seleccionadas en la
parte inferior de un archivo, utiliza el comando tail.
Comando de
Ejemplo Explicación del texto visualizado
MÓDULO DE COMPUTACIÓN 3 25
6.1. El Valor Negativo de la Opción -n
Puedes ver los cambios en vivo en los archivos mediante la opción -f del
comando tail. Esto es útil cuando quieres seguir cambios en un archivo
mientras están sucediendo.
Un buen ejemplo de esto sería cuando quieres ver los archivos de registro
como el administrador de sistemas. Los archivos de registro pueden
utilizarse para solucionar los problemas y a menudo los administradores
los verán en una ventana independiente de manera «interactiva»
MÓDULO DE COMPUTACIÓN 3 26
utilizando el comando tail mientras van ejecutando los comandos con los
cuáles están intentando solucionar los problemas.
Por ejemplo, si vas a iniciar una sesión como el usuario root, puedes
solucionar los problemas con el servidor de correo electrónico mediante
la visualización de los cambios en tiempo real de su archivo de registro
utilizando el comando siguiente: tail -f /var/log/mail.log
MÓDULO DE COMPUTACIÓN 3 27
7.1. Opciones de Campo y Ordenamiento
Las otras opciones comúnmente usadas para el comando sort son -n para
realizar un sort numérico y -r para realizar a un sort inverso.
Por último, puede que quieras ordenarlo de una forma más compleja,
como un sort por un campo primario y luego por un campo secundario.
Por ejemplo, considera los siguientes datos:
MÓDULO DE COMPUTACIÓN 3 28
Puede que quieras ordenar primero por el apellido (campo #2), luego el
nombre (campo #1) y luego por edad (campo #3). Esto se puede hacer
con el siguiente comando:
MÓDULO DE COMPUTACIÓN 3 29
9. Utilizar el Comando cut para Filtrar el Contenido del Archivo
MÓDULO DE COMPUTACIÓN 3 30
10. Utilizar el Comando grep para Filtrar el Contenido del Archivo
Por ejemplo, puedes querer encontrar todos los usuarios que pueden
ingresar al sistema con el shell BASH, por lo que se podría utilizar el
comando grep para filtrar las líneas del archivo /etc/passwd para las líneas
que contengan los caracteres bash:
Para que sea más fácil ver exactamente lo que coincide, utiliza la opción
de --color. Esta opción resaltará los elementos coincidentes en rojo:
MÓDULO DE COMPUTACIÓN 3 31
En algunos casos no te interesan las líneas específicas que coinciden con
el patrón, sino más bien cuántas líneas coinciden con el patrón. Con la
opción –c puedes obtener un conteo del número de líneas que coinciden:
Cuando estás viendo la salida del comando grep, puede ser difícil
determinar el número original de las líneas. Esta información puede ser
útil cuando regreses al archivo (tal vez para editar el archivo), ya que
puedes utilizar esta información para encontrar rápidamente una de las
líneas coincidentes.
Ejemplos Salida
MÓDULO DE COMPUTACIÓN 3 32
11. Las Expresiones Regulares Básicas
MÓDULO DE COMPUTACIÓN 3 33
comillas simples con tus expresiones regulares para evitar que el shell
trate a interpretar su significado especial.
En el ejemplo anterior, se puede ver que el patrón a.. coincidió con abc.
El primer carácter . coincidió con b y el segundo coincidió con c.
MÓDULO DE COMPUTACIÓN 3 34
Ten en cuenta que puedes enumerar cada carácter posible [abcd] o
proporcionar un rango [a-d] siempre que esté en el orden correcto. Por
ejemplo, [d-a] no funcionaría ya que no es un intervalo válido:
Puesto que la a tiene un valor numérico más pequeño (141) que la d (144),
el rango a -d incluye todos los caracteres de la a a la d.
¿Qué pasa si quieres un carácter que puede ser cualquier cosa menos
una x, y o z? No querrías proporcionar un conjunto de [ ] con todos los
caracteres excepto x, y o z.
MÓDULO DE COMPUTACIÓN 3 35
11.3. Expresiones Regulares Básicas - el Carácter *
Ten en cuenta que en la primera salida del grep, ambas líneas coinciden
debido a que ambas contienen la letra a. En la segunda salida grep, solo
coincide con la línea que comienza con la letra a.
MÓDULO DE COMPUTACIÓN 3 36
11.5. Expresiones Regulares Básicas - el Carácter \
En la salida del comando grep anterior, ves que cada línea corresponde
porque estás buscando el carácter c seguido de cero o más caracteres d.
Si quieres buscar un carácter *, coloca el carácter \ antes del carácter *:
MÓDULO DE COMPUTACIÓN 3 37
RE Significado
? Coincide con el carácter anterior cero o una vez más, así que
es un carácter opcional
El comando xargs tiene una opción -0, que desactiva la cadena de fin de
archivo, permitiendo el uso de los argumentos que contengan espacios,
comillas o barras diagonales inversas.
MÓDULO DE COMPUTACIÓN 3 38
El comando xargs es útil para permitir que los comandos se ejecuten de
manera más eficiente. Su objetivo es construir la línea de comandos para
que un comando se ejecute las menos veces posibles con tantos
argumentos como sea posible, en lugar de ejecutar el comando muchas
veces con un argumento cada vez.
MÓDULO DE COMPUTACIÓN 3 39
Referencias Bibliográficas:
https://www.netacad.com/es
MÓDULO DE COMPUTACIÓN 3 40