Professional Documents
Culture Documents
2. Operadores de redireccin
El operador > redirige la salida del comando que est a su izquierda hacia el fichero que est
a su derecha. A la izquierda tendremos un comando y a la derecha un fichero.
En el operador <, la entrada del operador a la izquierda la toma del fichero de la derecha.
Las tuberas (pipes) provocan que la salida del comando a la izquierda sea la entrada del
comando a la derecha.
Ej: cat fichero | sort (muestra el fichero y adems muestra sus lneas ordenadas)
3. Filtros
3.1. cut
Es un filtro que nos permite cortar un fichero y obtener alguna serie de sus campos, los cuales
han de estar diferenciados o delimitados por algn tipo de carcter. Ejemplo:
nombre_login:contrasea:PID:GID:
3.2. head
Muestra las n primeras lineas de un fichero:
head -n fichero
En este caso la entrada es el fichero "fichero" pero tambin podemos escribir head -n "a
secas", entonces la entrada sera la entrada estndar (teclado), hasta que pulsramos CTRL +
D.
3.3. tail
Muestra las n ltimas lneas:
3.4. cat
Toma una entrada y la muestra por la salida. Es como un filtro nulo. Si ponemos solo cat, lo
que escriba por teclado, saldr por pantalla.
3.5. uniq
Elimina las lneas que se repiten. Para trabajar con este filtro tenemos que tener todas las
lneas que se repiten consecutivamente almacenadas, es decir, que tendremos que utilizar el
comando sort que veremos ms adelante.
Opciones:
3.6. tr
Traduce caracteres de un archivo de una forma a otra.
3.7. tee
Permite dividir la salida de un comando para que por un lado quede almacenada en un fichero
y por otro vaya a la pantalla. Ejemplo: ls | tee fichero ? Saldra por pantalla y se grabara en el
fichero llamado "fichero".
3.8. sort
Permite ordenar ficheros de texto.
Podemos ordenar por campos lgicos o por columnas. Ahora las columnas las empezamos a
numerar desde 0 y no desde 1 como hacamos en el filtro cut. Opciones:
3.9. find
Permite buscar ficheros que cumplan determinadas caractersticas. No tenemos en cuenta el
contenido del fichero.
- name nombre ? Nos busca los ficheros que coincidan con un determinado nombre o
patrn de bsqueda
- type d f: nos dice si es un fichero normal o un directorio
- user nombre_login ? Nos busca los ficheros de un determinado propietario
- exec nos permite ejecutar un comando por cada uno de los ficheros encontrados
3.10. paste
Es lo contrario al cut. Permite producir una salida en forma de columnas desde uno o ms
ficheros.
paste fichero1 fichero2 ? hace una lnea por cada pareja de lneas de los ficheros fuente.
Si no ponemos nada hace una fabulacin como carcter separador, pero si ponemos d: pues
pone los dos puntos de carcter separador de campo.
3.11. egrep
Sirve para buscar cadenas o patrones dentro de un fichero. El sistema devuelve la lnea o
lneas que contiene el patrn de bsqueda.
egrep -v patron fichero: Saca las lneas que no contienen un patrn determinado.
3.12. sed
Comando que sirve para sustituir palabras o patrones dentro de un fichero.
sed s/cadena_original/cadena_nueva/g
sed s/cadena_a_borrar//g
3.13. wc
wc [opciones] fichero
Opciones:
-w ? Cuenta palabras
- c ? Cuenta caracteres
- l ? Cuenta lneas
Nosotros usaremos Bourne Shell (sh) puesto que hay muchas modalidades de shell en unix.
Para que el sistema siempre interprete que utilizaremos Bourne Shell tendramos que aadir al
principio de nuestro script la lnea #!/bin/sh
2. Variables
Las variables en la shell de unix no necesitan ser declaradas previamente para su posterior
utilizacin. Las variables tienen un nombre y para acceder a su contenido tenemos que
anteponer el $ al nombre de la variable. Ejemplos:
variable1=2
echo variable1: Sacar por pantalla la cadena variable1
echo $variable1: Como hace referencia a su contenido, sacar un 2
Hay un tipo de variables que se denominan variables de entorno que son definidas por el
sistema al iniciar la sesin y algunas sern diferentes para cada usuario (PATH, LOGNAME,
).
$1 = hola
$2 = que
$3 = tal
$4 = adis
$1 = que
$2 = tal
$3 = adis
Podemos observar que hola se habra perdido. El comando shift es el que me permite
pasarle ms de 9 parmetros a un script, puesto que el $10 nunca lo podremos utilizar.
+
-
\*
/
%
6. Condiciones
test permite realizar comparaciones lgicas.
- comparaciones numricas:
= -eq
< -lt
<= -le
<> -ne
> -gt
>= -ge
test $a ne $b
- cadenas
- ficheros.
7. Ejecucin condicional
Lo primero que necesitamos es definir la variable $? que contendr el cdigo de salida del
ltimo comando ejecutado en el sistema. Tomar el valor 0 si el ultimo comando se ha
ejecutado con xito y <> 0 si no ha sido as. Esto nos servir para comandos como el egrep
que si se ha encontrado el patrn con xito, pues devolver un cdigo de salida igual a 0.
* Operador grave: Se utiliza para realizar la ejecucin de un comando y poder trabajar o bien
con su cdigo de salida o con su salida.
7.1. Bucle if
if
then
#parte opcional
else
#fin de la parte opcional
fi
valor1)
;;
valor2)
;;
#opcional el otherwise
*)
;
esac
8. Funciones y procedimientos
Las funciones en unix han de ser declaradas al principio del script:
function nombre()
{
$1 ? primer parmetro que le hemos pasado
}
Una funcin devolver un valor, siempre que haga una nica salida por pantalla que ser la
almacenada en la variable a la que est asignada la llamada de la funcin.
Ejemplo:
function cuadrado()
{
cuad=`expr $1 \* $2`
echo $cuad
}
read num
a=`cuadrado $num`
echo el cuadrado de $num es $a
Desde dentro de una funcin accedemos a los argumentos pasados al igual que desde
dentro de un script, es decir con $1 $2 $3,
Podemos escribir todas las funciones en un archivo de texto y luego cargarlas para que el
sistema las tenga en memoria.
9. Operadores && y ||
9.1. &&
Sintaxis: comando1 && comando2
9.2. ||
Sintaxis: comando1 || comando2
Estados:
3. /etc/inittab
identificador:runlevel:action:process o script
Identificador: Secuencia de 2 o ms caracteres que identifica la linea. Para lneas que
contienen procesos getty contendr el numero del terminal donde se ejecutar el proceso.
Runlevel: Nivel de ejecucin. Especifica el estado INIT en el que deben ejecutarse los
procesos indicados.
Action: Especifica como tratar el proceso, es decir, cuando y como se ejecuta el proceso
correspondiente. Acciones:
/etc/inittab
Un sistema engloba los usuarios en grupos, con una serie de permisos similares para todos
ellos, en lugar de establecer los permisos individualmente.
1.1 Usuarios
/etc/passwd
login:contrasea:uid:gid:inf_user:dir_home:shell
finger: comando que proporciona informacin acerca de los usuarios conectados al sistema.
1.2. Grupos
/etc/group
nombre:contrasea:gid:user1,user2,
Cada usuario pertenece a un grupo por defecto y en la lista de usuarios del grupo al que
pertenece por defecto, no aparecer dicho usuario.
2. Comandos varios
2.1. Fichero /etc/fstab
Su nombre es File System Table o tambin tabla de sistema de ficheros. Contiene una entrada
para cada sistema de ficheros o archivos que hay que montar durante el arranque del Sistema
Operativo.
Puede haber un error en el arranque, con mount a se puede volver a montar todo el sistema
de ficheros.
dispositivo_a_montar
punto_de_montaje
tipo_del_distema_de_ficheros
opciones_sobre_montaje
Con el comando mount a montara todos los sistemas de ficheros que hay en el fstab sin
tener que arrancar la mquina.
mkdev: permite crear automticamente todos los ficheros asociados a una familia de
dispositivos. Un fichero de dispositivos apunta a una serie de rutinas que permiten manejarse
con ese dispositivo.
2.3. Enlaces
crontab: permite planificar trabajos para su ejecucin peridica. Usa un fichero que se llama
crontab que tiene una serie de campos que especifican cuando se ejecutar el trabajo.
Opciones:
-l ? listado completo de todos los procesos.
UID ? Nmero identificador del usuario.
PID ? Nmero identificador del proceso.
PPID ? Identificador del proceso padre.
C ? ndice de utilizacin reciente del procesador.
STIME ? Tiempo de inicio del proceso.
TTY ? Id del terminal.
TIME ? Tiempo de CPU consumido por el proceso.
COMMAND ? Nombre del comando que ejecuta.
3. Copias de seguridad
3.1. tar
tar funcin [opciones] archivo.tar
c: permite crear un fichero de salida que guarda un grupo de ficheros.
x: opcin inversa.
t: listar el contenido de un fichero tar.
r: permite reemplazar un fichero existente por una nueva versin.
u: permite aadir un fichero que no existe al fichero tar.
Opciones:
-v: Va mostrando informacin.
-z: permite comprimir o descomprimir.
-f: para poder usar un fichero de salida