Está en la página 1de 30

Introduccin II

Sistema Operativo UNIX

Versin 1.0 19 de Enero del 2009


claudio.altamirano@telmex.com
Gerencia Corporativa Procesos y Sistemas
Tabla de Contenidos

Espacio libre y ocupado.


Comando TAR
Compresin
Editor vi
AWK
Shell
FTP
Espacio libre

Para obtener el espacio libre en los Fsystems ejecute:


df -h # Cantidades en GB
df -k # Cantidades en KB
Espacio Usado

Para obtener el espacio usado en los Fsystems ejecute:


du . -h # Cantidades en GB
du . -k # Cantidades en KB
TAR

El comando tar sirve para almacenar, empaquetar o agrupar


archivos y directorios en un solo archivo destino con extensin
.tar
La sintaxis general del comando tar es:
tar <opciones> <archivoSalida>.tar <archivo1> <archivo2> ... <archivoN>

Un ejemplo para crear un archivo Respaldo.tar que incluya solo


archivos con extensin .txt es:
tar -cvf Respaldo.tar *.txt

Un ejemplo para ver un listado del contenido del archivo


Respaldo.tar :
tar -tvf Respaldo.tar

Un ejemplo para extraer el contenido del archivo Respaldo.tar :


tar -xvf Respaldo.tar
TAR II

Lista de archivos y directorios.

Se crea el TAR Respaldo.tar con


los archivos .txt que hay en el
directorio de trabajo.

Se extraen los archivos en el


subdirectorio respaldo.

Se lista el contenido del archivo


Respaldo.tar con la opcin t
Esto no lo extrae, solo lo lista.
TAR II

Lista de archivos y directorios.

Se crea el TAR Respaldo.tar con


los archivos .txt y con el
subdirectorio altamirano que
hay en el directorio de trabajo.

Se extraen los archivos en el


subdirectorio respaldo.
Compresin de Archivos

Para comprimir archivos utilice el siguiente comando:


gzip NOMBRE_DEL_ARCHIVO

El comando anterior reemplazar el archivo NOMBRE_DEL_ARCHIVO por


NOMBRE_DEL_ARCHIVO.gz que corresponde a la versin comprimida.
Tar + Compresin de Archivos

Para empaquetar(agrupar) y comprimir los archivos en un solo


comando ejecute:
tar -czf NOMBRE_DEL_ARCHIVO.tar.gz *.txt

El comando anterior crear el tar y al mismo tiempo lo


comprimir.
Para extraer los archivos descomprimidos en un solo comando
ejecute:
tar -xzf NOMBRE_DEL_ARCHIVO.tar.gz
Editor vi

Vi es el editor de texto ms usado en Unix. Haciendo una


analoga con Windows, Vi es a Unix lo que el Notepad es a
Windows. Hay que aclarar que Vi posee ms funcionalidad que el
Notepad. La forma de ejecutar Vi es la siguiente:
vi [opciones] NOMBRE_DEL_ARCHIVO

Vi es un editor que funciona en dos modalidades:


Edicin: es el modo en que el usuario agrega, modifica y borra caracteres
en un archivo.
Comandos: en esta modalidad las combinaciones de teclas que el usuario
digita corresponden a algn comando del Vi. Este es el modo por defecto.
Editor vi Comandos I
COMANDO S I G N IF I C A D O
i Inserta un carcter antes de la posicin actual del cursor

o Inserta una lnea en blanco bajo la lnea actual.

a Inserta texto despus del carcter sobre el que est el cursor.

A Inserta texto al final de la lnea actual.

I Inserta caracteres al inicio de la lnea actual.

dd Borra la lnea actual.

yy Copia la lnea actual.

p Pega las lneas copiadas con el comando anterior.

:set number Muestra los nmeros de lnea del archivo en edicin.

:set nonumber Oculta los nmeros de lnea

:n Posiciona el cursor en la lnea n, por ejemplo :1 se posicional en la primera lnea del archivo. :8
se posiciona en la lnea nmero 8 del archivo.
:$ Posiciona el cursor en la ltima lnea del archivo.

nyy Copia n lneas al Buffer para luego copiarlas con p. por ejemplo 10yy, copia 10 lneas al buffer.
Editor vi Comandos II
COMANDO S I G N IF I C A D O
G Posiciona el cursor en la ltima lnea del archivo.

Ctrl+f Avance de pgina.

Ctrl+b Retrocede 1 pgina.

/Palabra Busca el texto Palabra en el archivo desde la posicin actual hasta el final del archivo.

?Palabra Busca el texto Palabra en el archivo desde la posicin actual hasta el inicio del archivo.

:!date Ejecuta el comando date en el prompt de UNIX sin dejar de editar el archivo. La verdad que
despus de :! <ComandoUnix> usted puede ejecutar cualquier comando Unix. Despus
presiona ENTER para volver al archivo.
:1,$s/ola/Hola/g Reemplaza desde la lnea 1 del archivo hasta el final del archivo($) la palabra ola por la
palabra Hola. La forma general del comando es:
:<NroLineaInicio>, <NroLineaFin>s/<PalabraOrigen>/<PalabraNueva>/g
D Borra los caracteres a la derecha de la posicin actual del cursor. O dicho de otra manera,
borra los caracteres hasta el final de la lnea.
cw Permite cambiar la palabra actual desde la posicin actual del cursor.

:x Graba y sale del Archivo.

ZZ Graba y sale del archivo.

:q! Sale del archivo sin grabar.


Awk

Awk es un utilitario de Unix que est orientado a la bsqueda y


procesamiento de patrones. En general se utiliza para el
procesamiento de archivos o para procesar la salidas de otros
comandos directamente en el prompt del sistema operativo Unix.

La forma general de ejecucin es la siguiente:


awk [opciones] -f NombreArchivo.awk NombreArchivo.txt

Donde:
NombreArchivo.awk, es el nombre del programa con las sentencias awk.
NombreArchivo.txt, es el nombre del archivo con los datos que se desea procesar. Este podra
ser un archivo .log, .dat o cualquier otro.

Awk considera por defecto que los campos del archivo estn
separados por blancos o tabulaciones.
Awk - II

Considere un archivo datos.txt que tiene la informacin que se


desea procesar. Tiene una lista de campos separados por blancos.
Nombre Sexo Edad Pas
Los campos en awk se identifican con $1, $2 , $3 hasta $n, en
nuestro ejemplo $4 corresponde al pas. $0 representa la lnea
completa.
Awk - II

Otros ejemplos procesando el mismo archivo con awk.


Imprimiendo el campo Nombre($1) y el Sexo($2)
Imprimiendo la lnea completa ($0) del archivo.
Awk - III

Considere el archivo datos2.txt donde los campos ahora estn


separados por el carcter :
En este caso al awk se le agrega la opcin F: para indicarle que
los campos ahora estn separados por el carcter :
Awk - IV

A continuacin veremos ejemplos de programas AWK con un poco


ms de funcionalidad. En estos casos utilizaremos un programa
.awk.
La forma general de un programa awk es la siguiente:
BEGIN {
}
/PATRON1/ { }
/PATRON2/ { }
/PATRON-N/ { }
END {
}

Considere el siguiente archivo datos3.txt con Sexo, Nombre, Valor:


M Pablo 100
F Marta 201
F Ana 101
M Jose 300
M Juan 200
Awk - V

A continuacin se muestra el listado del programa.awk que suma


los valores con el patrn F y suma en forma separada los valores
del patrn M:
Seccin BEGIN se ejecuta al inicio del
programa.

En el campo $1 busca el patrn F y suma.

En el campo $1 busca el patrn M y suma.

Siempre suma, independiente del patrn

En la seccin END, imprime los totales con


printf.
Awk - V

A continuacin se muestra la ejecucin del programa


programa.awk:
Programacin Shell

Cuando uno posee varios comandos que en su conjunto realizan


una tarea especfica, normalmente se traducen en un script que lo
interpreta algn shell. Esto tiene como ventaja que un tercero
puede ejecutar dicho script y no hay dependencia de personas, a
continuacin se muestra un ejemplo de script:
La primera lnea siempre debe ser de la forma
#!/bin/sh
Indica que este script debe ser interpretado por
Bourne Shell.
Programacin Shell - II

Cuando Ud. crea un script, por ejemplo script1.sh, por defecto no


tiene permisos de ejecucin. Para darle permisos ejecute:
chmod +x script1.sh

Lo anterior significa que cambia uno de los atributos del archivo:


-rw-rw-r-- 1 jboss jboss 88 ene 19 13:12 script1.sh

A su nuevo estado:
-rwxrwxr-x 1 jboss jboss 88 ene 19 13:12 script1.sh

Esto es una de las diferencias con Windows, que por defecto un


.exe o un .bat se ejecuta directamente. En UNIX se requiere el
atributo antes indicado.
Programacin Shell - III

A continuacin se muestra un ejemplo de un script que cuenta las


lneas de los archivos con extensin .txt :
Programacin Shell - IV

A continuacin se muestra un ejemplo de un script que comprime


los archivos con extensin .txt y luego los mueve a un directorio
LOG:
Programacin Shell - V

En los scripts tambin se pueden utilizar funciones. Esto permite


dar mayor claridad a ciertas partes de su script.
A continuacin se muestra la salida del script3.sh cuyo cdigo se
adjunta en la siguiente pgina:
Programacin Shell - VI

A continuacin se muestra el cdigo del script script3.sh:


FTP

FTP es un protocolo de transferencia(copia) de archivos entre 2


mquinas. Es un servicio que escucha en el puerto 21.
Las mquinas pueden ser PCs o servidores Windows, Linux o UNIX.
Lo importante es:
El origen debe ser un cliente FTP o algn servidor FTP.
El destino necesariamente debe tener un servicio de FTP Server.
FTP - II

La forma general de ejecutar el FTP es.


ftp [opciones] <IP_SERVIDOR_DESTINO>

Donde alguna de las opciones son:


-v, opcin detallada(verbose) que muestra todas las respuestas del servidor
-i, desactiva modo interactivo en transferencias mltiples (put, mget).
FTP copiar archivos hacia Servidor Remoto con mput
Ejemplo de una conexin al servidor 10.245.8.164. FTP al servidor de destino con usuario y
C:\HOME>ftp 10.245.8.164 password en modo interactivo habilitado.
Usuario (10.245.8.164:(none)): usuarioftp
Contrasea: El comando dir muestra los archivos y directorios en
ftp> dir *.txt el servidor remoto.
01-19-09 03:29PM 25 dos.txt
01-19-09 03:29PM 27 uno.txt
ftp>
El comando put copia un archivo al servidor remoto.
ftp> put oracleMIO.reg
ftp> mput *.txt El comando mput copia mltiples archivos al servidor
mput Apache_LB.txt? y remoto. Por cada archivo hace una pregunta cuando est
mput Codigo.txt? y en modo interactivo.
mput direcciones.txt? y
mput Telmex.txt? y Ahora el comando dir muestra los archivos copiados en el
ftp> paso anterior.
ftp> dir *.txt
01-19-09 06:02PM 2069 Apache_LB.txt
01-19-09 06:02PM 9592 Codigo.txt
01-19-09 06:02PM 105166 direcciones.txt
01-19-09 03:29PM 25 dos.txt
01-19-09 06:02PM 43310 Telmex.txt
01-19-09 03:29PM 27 uno.txt
ftp> bye Cierra la conexin ftp.
FTP copiar archivos desde Servidor Remoto con mget
Ejemplo de una conexin al servidor 10.245.8.164.
FTP al servidor de destino con usuario y
C:\HOME>ftp -i 10.245.8.164
password en modo interactivo OFF , opcin -i.
Conectado a 10.245.8.164.
220 Microsoft FTP Service
Usuario (10.245.8.164:(none)): usuarioftp
331 Password required for usuarioftp.
Contrasea:
230 User usuarioftp logged in.
ftp>
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
01-19-09 06:02PM 2069 Apache_LB.txt
01-19-09 06:02PM 9592 Codigo.txt
01-19-09 06:02PM 105166 direcciones.txt
01-19-09 03:29PM 25 dos.txt
Con la opcin i al inicio, las operacin mget no pide
226 Transfer complete.
ftp> mget d*.txt
confirmacin para copiar hacia el servidor de origen.
200 Type set to A.
200 PORT command successful.

ftp> bye
221
Bsqueda de archivos

Si Ud. desea buscar un archivo en un servidor la forma general es:


find <PATH_DESDE_DONDE_BUSCAR> -name <NOMBRE_ARCHIVO> -print

Ejemplo, buscar el archivo server.log a partir del directorio


/home/jboss/:
[jboss@jbossQA01 ~]$ find /home/jboss/ -name server.log -print
/home/jboss/jboss-4.2.2.GA/server/all/log/server.log
/home/jboss/jboss-4.2.2.GA/server/default/log/server.log
[jboss@jbossQA01 ~]$

Ejemplo, buscar el archivo server.log y para cada archivo


encontrado contar la cantidad de lneas a partir del directorio
/home/jboss/:
[jboss@jbossQA01 ~]$ find /home/jboss/ -name server.log -print | xargs wc -l
42378 /home/jboss/jboss-4.2.2.GA/server/all/log/server.log
19746 /home/jboss/jboss-4.2.2.GA/server/default/log/server.log
62124 total
[jboss@jbossQA01 ~]$

También podría gustarte