Você está na página 1de 4

Linea de comandos

Cuando se ejecuta nuestro programa en shell hay una serie de variables que siempre estarn
disponibles, entre ellas las que nos permiten acceder a los distintos argumentos con los que fue
ejecutado nuestro script.
$0 contiene el nombre nombre de nuestro script
$# el nmero de parmetros con los que se ha invocado al shell
$n los parmetros, con n de 1 a 9 (a $#)
$$ el PID de nuestro proceso
$* todos los parmetros menos $0
La salida de los programas
Cuando se ejecuta un programa, un comando UNIX es un programa, podemos, a parte de redirigir su
entrada y su salida, recoger el resultado de su ejecucin y su salida.
!l resultado es un valor num"rico, por lo general cero si todo ha ido bien, y distinto de cero si ha
habido alguna clase de error.
#a salida del programa es lo que obtendr$amos en stdin y stdout.
%& resultado del 'ltimo programa ejecutado

%(comando) la salida de comando (esto es equivalente al uso de comillas invertidas, pero por
simplicidad vamos a utili*ar esta versin)
e+it !N,!-. termina nuestro programa con el valor de salida !N,!-.
Opciones de Comando test
!+iste un comando para evaluar condiciones, y que nos permitir que nuestros programas /tomen
decisiones/0
test e+presin
o
1 e+presin 2
!ste comando eval'a e+presin, y si eval'a a cierto, devuelve cero (true), o en otro caso 3 (false). 4i no
hay e+presin, test siempre devuelve falso. !ste comportamiento puede ser algo confuso, ya en lgica
los valores cierto y falso suelen ser al contrario.
test soporta gran cantidad de operadores, algunos son0
Manejo de rchivos
!d "ichero cierto si "ichero e#iste $ es un directorio
!e "ichero cierto si "ichero e#iste, independientemente del tipo que sea
!" "ichero cierto si "ichero e#iste $ es un "ichero normal
!r "ichero cierto si "ichero e#iste $ se puede leer
!s "ichero cierto si "ichero e#iste $ tiene tama%o ma$or que cero
!& "ichero cierto si "ichero e#iste $ se puede escribir sobre 'l
!# "ichero cierto si "ichero e#iste $ es ejecutable
(omparaci)n de *meros
n1 !eq n+ cierto si los enteros n1 $ n+ son i,uales
n1 !ne n+ cierto si los enteros n1 $ n+ no son i,uales
n1 !,t n+ cierto si el enteros n1 es ma$or que n+
n1 !,e n+ cierto si los enteros n1 $ n+ son i,uales o n1 es ma$or que n+
n1 !lt n+ cierto si el enteros n1 es menor que n+
n1 !le n+ cierto si los enteros n1 $ n+ son i,uales o n1 es menor que n+
(omparaci)n de (adenas
s1 - s+ cierto si las cadenas de te#to s1 $ s+ son id'nticas
s1 .- s+ cierto si las cadenas de te#to s1 $ s+ no son id'nticas
s1 / s+ cierto si la cadena de te#to s1 es menor que s+
s1 0 s+ cierto si la cadena de te#to s1 es ma$or que s+
!n cadena cierto si la lon,itud de la cadena de te#to es distinta de cero
1#presiones l),icas
. e#presion cierto si e#presi)n es "alsa (ne,aci)n)
e#presion1 !a e#presion+ cierto si e#presion1 $ e#presion+ son ciertas
e#presion1 !o e#presion+ cierto si e#presion1 o e#presion+ son ciertas
5dems e+isten los operadores lgicos 66 (5N7, multiplicacin lgica) y 88 (.-, suma lgica), que se
puede aplicar al valor de salida de los programas0
Comprimir y descomprimir en Linux
Ficheros .tar
tar empaqueta varios archivos en uno solo, pero no comprime.
Instalar la herramienta0 9 apt:get install tar
!mpaquetar0 9 tar cf archivo.tar ficheros
7esempaquetar0 9 tar :+vf archivo.tar
;er contenido0 9 tar :tf archivo.tar
Ficheros .gz
g*ip slo comprime fichero a fichero, no empaqueta varios ficheros en uno ni comprime directorios.
Instalar la herramienta0 9 apt:get install g*ip
Comprimir0 9 g*ip fichero
7escomprimir0 9 g*ip :d fichero.g*
Ficheros .bz2
b*ip< slo comprime fichero a fichero, no empaqueta varios ficheros en uno ni comprime directorios.
Instalar la herramienta0 9 apt:get install b*ip<
Comprimir0 9 b*ip< fichero
7escomprimir0 9 b*ip< :d fichero.b*<
=ara comprimir varios ficheros y archivarlos en uno solo, al estilo de los compresores *ip o rar hay que
combinar tar con g*ip o con b*ip< como se muestra a continuacin.
Ficheros .tar.gz
Comprimir0 9 tar :c*f archivo.tar.g* ficheros
7escomprimir0 9 tar :+v*f archivo.tar.g*
;er contenido0 9 tar :t*f archivo.tar.g*
Ficheros .tar.bz2
Comprimir0 9 tar :c ficheros 8 b*ip< > archivo.tar.b*<
7escomprimir0 9 b*ip< :dc archivo.tar.b*< 8 tar :+v
;er contenido0 9 b*ip< :dc archivo.tar.b*< 8 tar :t
Ficheros .zip
Instalar las herramientas0 9 apt:get install *ip un*ip
Comprimir0 9 *ip archivo.*ip ficheros
7escomprimir0 9 un*ip archivo.*ip
;er contenido0 9 un*ip :v archivo.*ip
Ejercicios
3. -eali*ar un programa en 4hell para cada uno de las siguientes situaciones0
-eali*ar una suma y multiplicacin de n elementos
!jemplo0 %.?oper.sh 3 < @ A B C D E F 3< 3@
#istar el contenido de un directorio y especificar las propiedades de cada archivo
7el e+amen de la unidad @, utili*ar la estructura de directorios y comprimir los archivos
con la e+tensin tar.g*

Você também pode gostar