Está en la página 1de 16

REDIRECCIONAMIENTO Y PIPELINES

RAMIRO DEAVILA TAPIA

ELECTIVA LIBRE II

GNU/LINUX

FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍAS


V SEM. DE ING. DE SISTEMAS
SAHAGUN CORDOBA.
2010
INTRODUCCION

El redireccionamiento se convierte en una excelente opción a la hora de

documentar acciones realizadas en consola, y de simplificar el trabajo con

comandos, esto de simplificar se irá haciendo más evidente a medida que el

aprendiz del sistema Linux vaya acumulando experiencia y conocimiento en el uso

de comandos, en este documento se muestran bases teóricas utilizadas en la

realización del taller virtual de redireccionamiento y el desarrollo de los ejercicios

propuestos como cuota para familiarizarnos con el tema.


REDIRECCIONAMIENTO DE COMANDOS

Cuando un comando se ejecuta, normalmente espera una entrada y usualmente


producirá una salida:

 Entrada estándar: archivo desde el cual el comando espera leer sus datos.
Por defecto, el teclado.

 Salida estándar: archivo en el cual el comando deja el resultado. Por


defecto, la pantalla.

 Salida de errores: archivo en el cual el comando deja cualquier mensaje de


error. Por defecto, la pantalla.

REDIRECCIONAMIENTO DE ENTRADA:(<)
El símbolo (<) indica que tome la entrada para un comando desde el siguiente
archivo, el lugar de tomar la entrada estándar. Ejemplo:

Comando [opciones] [argumentos] < archivo.

REDIRECCIONAMIENTO DE SALIDA:(>)
El símbolo (>) indica que redireccionamos al siguiente archivo la salida
producida por el comando. Ejemplo:

comando [opciones] [argumentos] > archivo.

Nota: lo primero que hace el shell es abrir el archivo para la salida. Si este existe
borrará su contenido. Ejemplo, para dejar un fichero vacio: > fichero
REDIRECCIONAMIENTO DE SALIDA ADICIONAL: (>>)

El símbolo (>>) opera del mismo modo que el anterior, con la única diferencia que
el resultado del comando es “añadido” a continuación del texto que tuviese el
archivo.

REDIRECCIONAMIENTO DE ERRORES: (2<, 2>>)


El símbolo (2>) indica que cualquier mensaje de error producido se almacena en
el fichero especificado. Ejemplo:
comando [opciones] [argumentos] 2> archivo.

El símbolo (2>>) indica que cualquier mensaje de error producido se almacena en


el fichero especificado, si no existe será creado y si ya existe se insertará al final
del contenido que ya tuviese el fichero. Ejemplo:
comando [opciones] [argumentos] 2>> archivo.

REDIRECCIONES COMBINADAS
Se pueden redireccionar las entradas, salidas y errores en un mismo comando.
Ejemplo:
cat < datos > resultado

Cuando combinamos entrada y salida hay que tener cuidado ya que primero abre
y borra, y luego posteriormente leería.
cat < datos > datos #Borra datos y luego ya borrado lo toma como entrada

El orden de las combinaciones es igual. La siguiente combinación daría el mismo


resultado que la primera:
cat > resultado < datos
ENCADENAMIENTO DE COMANDOS
Se pueden redireccionar dos comandos entre sí, la salida de un comando que sea
la entrada del siguiente, esta estructura se denomina pipelines o tuberías,
Ejemplo:
comando1 | comando2 | comando3 # la salida del comando1 es tomada
como entrada por el comando2, la utiliza, y la salida de este es tomada por el
comando3 como entrada.

comando1 | comando2 > archivo1 # la salida del comando1 es tomada


como entrada por el comando2 y la salida se guarda en el fichero archivo1.

comando1 < archivo1 | comando2 # comando1 toma como entrada los


datos contenidos en el fichero archivo1 y la salida la toma como entrada el
comando2

nota: pipeline se utiliza entre comandos y los redireccionamientos entre


comandos y archivos.

FILTROS
Trabajan normalmente con la entrada estándar y pueden utilizarse en estructuras
de redireccionamiento y/o tuberías.

✔ more
Permite visualizar uno o más arachivos pantalla a pantalla. Por defecto 23 lineas.
-n # fija el número de lineas por pantalla
+num_linea # comienza a mostrar a partir de la línea especificada
+cadena # comienza a mostrar 2 líneas antes de encontrar la cadena
Mientras se visualiza el fichero pulsando la tecla “h” aparece un menú de
Subcomandos.
✔ tail
Visualiza las últimas 10 líneas del fichero especificado o de la entrada
estándar. Formato:
tail [+numero][-numero][fichero]
+numero # se visualiza desde la línea numero
-numero # cuantas líneas se visualizan empezando a contar desde el final
del fichero.
✔ head
Visualiza las primeras 10 líneas del fichero especificado o de la entrada
estándar. Formato:
head [-numero][fichero...]
-numero # cuantas líneas se visualizan desde el principio del fichero
✔ wc
Cuenta las líneas, palabras y caracteres que contengan los archivos
referenciados.
wc [-opcion][fichero...]
-l # cuenta el número de líneas de un archivo
-w # cuenta el número de palabras de un archivo
-c # cuenta el número de caracteres de un archivo
✔ grep
Busca en los archivos especificados las líneas que contienen el
patrón especificado. Formato:
grep [-opcion]expresion[fichero...]
-v # se imprimen todas menos las que coinciden
-c # impreme la cuenta de coincidencias
-i # ignora la diferencia entre mayússculas y minúsculas
-l # lista nombre de los archivos donde haya coincidencias
-n # inserta el número de línea que tiene esta en el fichero
Expresiones regulares
. # cualquier carácter en esa posición
* # repetición del carácter previo
[] # un carácter de los incluidos en el corchete
[^] # exclusión de los caracteres incluidos en los corchetes
^ # comienzo de línea. Acento. Grep ^a fichero
$ # final de línea. Grep w$ fichero
✔ tr
Comprime, reduce a una o sustituye las repeticiones de una cadena. Formato:
tr -s cadena1 [cadena2] # si no se especifica cadena2 toma cada línea de
la entrada estándar y sustituye todas las repeticiones contiguas de cadena1. Si
aparece cadena2 sustituye las repeticiones de cadeana1 por una sola de cadena2.
[juanb@localhost juanb]$ who | tr -s " " "*"
juanb*:0*Apr*4*13:00
juanb*pts/0*Apr*4*13:00
juanb*pts/1*Apr*4*13:05
tr -d cadena # borra en la salida la cadena especificada
[juanb@localhost juanb]$ who | tr -d " "
juanb:0Apr413:00
juanbpts/0Apr413:00
juanbpts/1Apr413:05
✔ sort
Clasifica y/o fusiona archivos. Su resultado lo muestra po la salida estándar o en
un archivo especificado. Cuando no se suministra archivo de entrada se asume la
estándar. Formato:
sort [-cmu][-dfinr][-btc][+pos][-pos][-o fichero][fichero...]
-f # ignora mayúsculas y minúsculas
-n # clasifica considerando la clave como numérico
-r # invierte el orden de clasificación
-tc # indica que el carácter separador de campos es el “c”
-o # especifica el nombre del archivo de salida
✔ tee
Se usa para conservar un archivo de salida intermedio y poder así procesarlo más
tarde. Formato:
tee [-opcion][fichero]
-a # hase que la salida se añada al final del fichero nombrado
Taller

EJERCICIOS PROPUESTOS

1. Utilizando redireccionamiento, escriba el o los comandos LINUX que permitan


grabar los siguientes datos del usuario activo: tipo de Shell, el usuario activo, el
home del usuario, la fecha del sistema y el número de líneas del archivo en el
archivo con nombre datosdelusuario.

2. Utilizando redireccionamiento, escriba el o los comandos LINUX que permitan


guardar la fecha y la lista de usuarios conectados en este momento en un archivo
llamado conectados

3. Utilizando redireccionamiento, escriba el o los comandos LINUX que permitan


guardar una lista de los archivos con menos de 1000k en el sistema en un
archivo llamado losarchivosmaspequenos.

4. Utilizando redireccionamiento, escriba el o los comandos LINUX que permitan


documentar la creación de la siguiente estructura de directorios:
Practicas
Redireccionamiento
Pruebaenclase
Practicaenclase
Virtual
Tubería
Pruebaenclase
Practicaenclase
Desarrollo ejercicio 1.
1. Como es sabido con el comando echo puedo mostrar un texto o cadena de
caracteres, las cuales puedo redireccionar hacia un archivo plano por
ejemplo:

$ echo 'DATOS DEL USUARIO ACTIVO' > datosdelusuario.

Esto crea el archivo datosdelusuario y escribe la linea de texto 'DATOS DEL


USUARIO'; si queremos volver a escribir en el mismo archivo, debemos utilizar
para redireccionar:

$ echo ' ' >> datosdelusuario.


Esto crea una línea en blanco en el archivo.

Ahora si pasamos a resolver el primer ejercicio:

• Para mostrar el usuario activo utilizamos el comando who -m y


redireccionamos al archivo datosdelusuario:
$ who -m >> datosdelusuario.

• Para saber el tipo de shell utilizamos ps | grep $$, aquí utilizamos un


pipelin o pipe | el cual redirecciona la salida del comando ps, el cual
informa cuales son los procesos que se están ejecutando en el sistema,
hacia el comando grep al cual le indicamos que busque la shell,
especificándole $$:

$ ps | grep $$

• para saber el home del usuario utilizamos el comando pwd: el cual indica el
directorio o ruta en el cual se encuentra trabajando el usuario:
$ pwd
• Para mostrar la fecha del sistema utilizamos el comando date:
$ date

• Para mostrar el numero de líneas del archivo hacia el cual estamos


redireccionando como evidencia del procedimiento realizado en el
desarrollo del ejercicio, utilizamos el comando wc

$ wc -l >> datosdelusuario

Pasos para la creación del archivo plano evidencia (a donde se


redireccionan las salidas)

$ echo 'DATOS DEL USUARIO ACTIVO' > datosdelusuario


$ echo ' ' >> datosdelusuario
$ echo 'Mostremos el usuario activo con el comando who -m' >> datosdelusuario
$ echo ' ' >> datosdelusuario
$ echo 'Usamos: ps | grep $$, para mostrar el tipo de shell que estamos usando'
>> datosdelusuario
$ echo ' ' >> datosdelusuario
$ echo 'usamos el comando pwd para mostrar el home del usuario' >>
datosdelusuario
$ echo ' ' >> datosdelusuario
$ echo 'Usamos el comando date para capturar la fecha del sistema' >>
datosdelusuario
$ echo 'Fecha del sistema ' >> datosdelusuario
$ echo ' ' >> datosdelusuario
$ echo 'con el comando wc -l obtenemos el nuemero de lineas del archivo:' >>
datosdelusuario
$ wc -l datosdelusuario >> datosdelusuario
Desarrollo ejercicio 2.
Para mostrar la lista de usuarios conectados al equipo y la fecha de la conexión,
utilizamos el comando w y date, pero utilizamos un pipelin para redireccionar la
salida de date hacia el comando w; la forma es la siguiente:
$ date| w >> conectados

Cabe anotar que el archivo conectados ya se había creado y se había


redireccionando una líneas explicativas, hacia él.

Pasos de creación del archivo plano evidencia


$ echo 'Lista de usuarios conectados en este momento' > conectados
$ echo ' ' >> conectados
$ echo 'usamos los comandos date y w para mostrar la lista de usuario: $ date | w'
>> conectados
$ echo ' ' >> conectados
$ echo 'Fecha del sistema' >> conectados
$ date >> conectados
$ echo ' ' >> conectados
$ echo 'usamos wc -l para obtener el numero de líneas del archivo' >> conectados
$ echo 'Numero de líneas' >> conectados
$ wc -l conectados >> conectados

Desarrollo ejercicio 3.
Para mostrar los archivos en el sistema con menos de 1000K, utilizamos el
comando find, en este caso hay que especificar los parámetros de ruta y tamaño
de los archivos a buscar y

$ find / -size +0 -size -1000 >> losarchivosmaspequeños.

Lo anterior indica que se buscaran los archivos entre 0 y 1000k y se


redireccionará el resultado hacia un archivo llamado losarchivosmaspequeños.

Pasos de creación del archivo plano evidencia

$ echo 'Los Archivos Mas Pequeños' > losarchivosmaspequeños


$ echo ' ' >> losarchivosmaspequeños
$ echo 'Utilizando el comando find, buscamos los archivos de menos de 1000k: $
find / -size +0 -size -1000' >> losarchivosmaspequeños
$ echo '' >> losarchivosmaspequeños
$ echo 'FECHA DEL SISTEMA’ >> losarchivosmaspequeños
$ date >> losarchivosmaspequeños
$ echo ' ' >> losarchivosmaspequeños
$ echo 'NUMERO DE LINEAS' >> losarchivosmaspequeños
$ wc -l losarchivosmaspequeños >> losarchivosmaspequeños

Desarrollo ejercicio 4.
En este ejercicio utilizamos mas el comando echo para indicar la creación de los
directorios con mkdir,
Para evidenciar la creación de los directorios redireccionamos hacia el archivo
plano creacion_ficheros, la salida del comando ls, el cual nos lista los archivos
de la ruta donde estaba trabajando (carpeta personal)

Al igual que se documentó con el comando echo, el paso de un directorio a otro


con el comando cd.

Los pasos para generar el archivo de documentación de creación de los


directorios fueron:

$ echo 'CREACION DE ESTRUCTURA DE DIRECTORIOS' >


creacion_directorios
$ echo 'Para crear el directorio Practicas' >> creacion_directorios
$ echo 'Utilizamos el comando mkdir: mkdir Practicas' >> creacion_directorios
$ echo ' ' >> creacion_directorios
$ echo 'Comprobamos la creacion del directorio practicas con el comando ls cabe
anotar que estamos trabajando en la carpeta personal del usuario' >>
creacion_directorios
$ echo ' ' >> creacion_directorios
$ echo 'Situemonos en el directorio Practicas con el comando: $ cd Practicas' >>
creacion_directorios
$ echo ' ' >> creacion_directorios
$ echo 'Creamos los subdirectorios Redireccionamiento y Tuberia utilizando el
comando mkdir: $ mkdir Redireccionamiento Tuberia' >> creacion_directorios
$ echo ' ' >> creacion_directorios
$ echo 'Verifiquemos la creacion de los directorios Redireccionamiento y Tuberia:
ls' >> creacion_directorios
$ echo ' ' >> creacion_directorios
$ echo 'Nos ubicamos en el directorio Redireccionamiento y creanos
Pruebaenclase y Practicaenclase: mkdir Pruebaenclase Practicaenclase’ >>
creacion_directorios
$ echo ' ' >> creacion_directorios
$ echo 'Verificamos la creacion de Pruebaenclase y Practicaenclas' >>
creacion_directorios
$ echo ' ' >> creacion_directorios
$ echo 'Nos ubicamos en Pruebaenclase y creamos el subdirectorio Virtual: $
mkdir Viertus' >> creacion_directorios
$ echo ' ' >> creacion_directorios
$ echo 'Verifiquemos la creacion del subdirectorio Virtual’ >> creacion_directorio
$ echo ' ' >> creacion_directorios
$ echo 'Con el comando cd nos ubicamos en el directorio
/home/unicor/Practicas/Tuberi' >> creacion_directorioa
$ echo ' ' >> creacion_directorios
$ echo 'Creamos ahora los subdirectorios Pruebaenclase y Practicaenclase en el
directorio Tuberia: $ mkdir Pruebaenclase Practicaenclase' >> creacion_directorios
$ echo ' ' >> creacion_directorios
$ echo 'Ahora verifiquemos que hayan sido creados los subdirectorios con ls' >>
creacion_directorios
$ echo ' ' >> creacion_directorios
$ echo 'Como podemos observar se crearon los subdirectorios Pruebaenclase y
Practicaenclase en el directorio Tuberia' >> creacion_directorios
$ echo ' ' >> creacion_directorios
$ echo 'Fecha de creacio' >> creacion_directorios
$ date >> creacion_directorios
$ echo ' ' >> creacion_directorios
$ echo 'Numero de lineas
' >> creacion_directorios
$ wc -l creacion_directorios >> creacion_directorios
CONCLUSIONES

Cuando un comando se ejecuta, normalmente espera una entrada y usualmente producirá


una salida, el manejo de las entradas depende del nivel de conocimiento y experiencia
del usuario con los comandos, al igual que el reaprovechamiento de las salidas.

El uso de redireccionamiento en Linux es de gran importancia a la hora de documentar


procesos o cambios en el equipo.
BIBLIOGRAFIA

http://christianromero.blogspot.com/2008/04/lista-de-comandos-comandos-
para.html

http://jbelverm.en.eresmas.com/portada.htm

http://es.wikipedia.org/wiki/Grep

http://supercomputo.izt.uam.mx/linux/curso.pdf

También podría gustarte