Академический Документы
Профессиональный Документы
Культура Документы
Manual
bsico
operativos I
Gua de estudio v1.4
Mayo 2014
1
until ........................................................................................................................................... 29
case............................................................................................................................................ 29
select ......................................................................................................................................... 30
8. Archivos de configuracin de red ............................................................................. 30
Archivos de configuracin de interfaz........................................................................................... 31
Interfaces Ethernet.................................................................................................................... 31
9. Instalando desde paquetes precompilados .............................................................................. 33
Pasos para dar salida a Internet al equipo de Linux para nuestro laboratorio ................................. 34
Paso 1, aadir el adaptador virtual para salida a internet (la virtual debe de estar apagada) .... 34
Paso 2, verificar con ifconfig la informacin de la interfaz .......................................................... 34
Paso 3, configurar el archivo de la interfaz adicionada en el Linux, mediante un editor de texto
....................................................................................................................................................... 35
Paso 4, se deshabilita y habilita la interfaz .................................................................................. 36
Paso 5, hacer ping al gateway ...................................................................................................... 37
Paso 6, verificar el dns .................................................................................................................. 38
Paso 7, hacer ping a una pagina de internet ................................................................................ 38
Paso 8, abrir un navegador y empezar a navegar ........................................................................ 39
10. Como montar un disco duro en linux .................................................................................... 40
1er. paso - Particionar ................................................................................................................... 40
2do. paso - Crear filesystem .......................................................................................................... 41
3er. paso - Punto de montaje........................................................................................................ 41
4to. paso - Modificar el archivo fstab ........................................................................................... 42
5to. paso - Montarlo ..................................................................................................................... 42
2
1. Introduccin
El siguiente trabajo representa el material de estudio a utilizar para el curso de sistemas
operativos I, aqu se encuentra reunida de forma resumida la informacin bsica para el
desarrollo de la clase, se aclara que de igual forma el catedrtico podr proporcionarles
otros documentos de referencia o direcciones urls que les permitan enriquecer su
fuente bibliogrfica.
En este material hablaremos de los elementos bsicos a manejar de Linux, se aclara que
el material est diseado para aquellas personas que no han tenido interaccin alguna
con Linux como sistema operativo.
2. Unidad I
Objetivos de Aprendizaje
Introduccin
Un sistema de computadora es un dispositivo electrnico programable que puede almacenar,
recuperar y procesar datos. Ejecuta un conjunto de instrucciones llamado programa.
La ejecucin del programa da al usuario final el resultado deseado. Un ejemplo de ejecucin de un
programa es cuando se trabaja con una calculadora en un sistema operativo Windows.
Para que una computadora sea capaz de hacer todo esto, requiere de un programa especial
llamado sistema operativo. El sistema operativo reside en el disco duro de la computadora y acta
como un puente entre los programas de usuario y los programas que controlan le hardware de la
computadora.
3
El sistema operativo es el responsable de las siguientes funciones del sistema de computadora:
Arrancar o iniciar la computadora
Actuar como interfaz entre el CPU y el mundo externo
Coordinar los dispositivos del sistema
Coordinar las aplicaciones o programas en ejecucin
El sistema operativo controla todo el trabajo de la computadora. Sin el, la computadora solo es un
montn de circuitos electrnicos.
Linux es un ncleo de sistema operativo libre tipo Unix. Es uno de los principales ejemplos de
software libre. Linux est licenciado bajo la GPL v2 y est desarrollado por colaboradores de todo
el mundo.
Tambin diremos que Linux es un sistema jerrquico de archivos los cuales se desprenden de la
nica unidad contenedora existente llamada raz, / (pleca), root (no confundir con el usuario root),
a diferencia de Windows que puede poseer ms de una unidad contenedora y esta usualmente
reciben el nombre de C:,D:,E:,F:, etc..
En la mayora de los sistemas operativos y sistemas de archivos una ruta se puede expresar en
forma relativa (o parcial) o en forma absoluta:
Las rutas absolutas sealan la ubicacin de un archivo o directorio desde el directorio raz
del sistema de archivos. Por ejemplo es una ruta absoluta /home/usuario/Notas.doc que seala la
ubicacin de Notas.doc desde la raz del sistema de archivos.
Esta sirve para ir a cualquier directorio desde cualquier parte en que estemos. Cuando algo comienza con /,
representa una ruta absoluta.
4
La imagen muestra el ejemplo de una ruta absoluta: /root/Unicah/Sistemas/Operativos.
Las rutas relativas sealan la ubicacin de un archivo o directorio a partir de la posicin
actual del sistema operativo en el sistema de archivos. Por ejemplo es una ruta relativa usuario/
Notas.doc que seala al archivo Notas.doc dentro del directorio usuario en la ubicacin actual. En
sistemas tipo UNIX, la ruta ~/ es una ruta relativa que lleva al directorio personal del usuario que
ha insertado la ruta relativa; por ejemplo, si el usuario juan tiene una imagen en su directorio
personal, esta imagen podra tener dos rutas de acceso, una relativa y una absoluta:
La absoluta: /home/usuario/Notas1parcial.xls
La relativa: usuario/Notas1parcial.xls
5
La imagen muestra el ejemplo de una ruta relativa o parcial: Unicah/Sistemas/Operativos.
Fechas de lanzamiento
Versin Fecha Nota
6
1.0.0 13 de marzo de 1994 Primera versin
estable
7
3.0 22 de julio de 2011
Distribuciones
Una distribucin Linux (coloquialmente llamada distro) es una distribucin de software basada en
el ncleo Linux que incluye determinados paquetes de software para satisfacer las necesidades de
un grupo especfico de usuarios, dando as origen a ediciones domsticas, empresariales y para
servidores. Por lo general estn compuestas, total o mayoritariamente, de software libre, aunque
a menudo incorporan aplicaciones o controladores propietarios.
Adems del ncleo Linux, las distribuciones incluyen habitualmente las bibliotecas y herramientas
del proyecto GNU y el sistema de ventanas X Window System. Dependiendo del tipo de usuarios a
los que la distribucin est dirigida se incluye tambin otro tipo de software como procesadores
de texto, hoja de clculo, reproductores multimedia, herramientas administrativas, etctera. En el
8
caso de incluir herramientas del proyecto GNU, tambin se utiliza el trmino distribucin
GNU/Linux.
Existen distribuciones que estn soportadas comercialmente, como Fedora (Red Hat), openSUSE
(Novell), Ubuntu (Canonical Ltd.), Mandriva, y distribuciones mantenidas por la comunidad como
Debian y Gentoo. Aunque hay otras distribuciones que no estn relacionadas con alguna empresa
o comunidad, como es el caso de Slackware.
3. Arquitectura
Cuando se habla de arquitectura nos referimos a la forma en como est construida una
distribucin en particular todas las
distribuciones utilizan la estructura descrita
en este grafico como base arquitectura a
emplear, lo que hace que unas personas
prefieran una distribucin a otra es la
manera en como son construidas esas
distribuciones.
9
Linux no requiere de un equipo de ltima generacin para su configuracin mnima. Slo requiere de:
Un procesador 386SX o superior
4 MB de RAM (se recomienda tener 8 MB)
un controlador de disco duro y un disco duro con 20 MB de espacio libre (se recomienda tener 100 MB) (en la prctica, Linux se puede ejecutar
desde un simple disquete)
una unidad de CD-ROM
Hardware Con respecto a dispositivos perifricos , es mucho ms probable que Linux admita los componentes de hardware comnmente disponibles en el
mercado.
En informtica, un ncleo o kernel (de la raz germnica Kern) es un software que acta de sistema operativo.Es el principal responsable de
facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma ms bsica, es el encargado de gestionar recursos, a
travs de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, tambin se encarga de decidir qu
programa podr hacer uso de un dispositivo de hardware y durante cunto tiempo, lo que se conoce como multiplexado. Acceder al hardware
directamente puede ser realmente complejo, por lo que los ncleos suelen implementar una serie de abstracciones del hardware. Esto permite
kernel esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.
Puesto que un sistema operativo no sirve de mucho sin aplicaciones que se ejecuten en el mismo, el sistema operativo de linux provee varias
aplicaciones populares existentes para GNU/Linux, por ejemplo:
Bases de datos relacionales Multiusuario
PostgreSQL.
MySQL (multiplataforma).
aplicaciones
base Bases de datos relacionales Monousuario
OpenOffice Base (multiplataforma, necesita Java).
Biblioteca de Funciones
Este punto hace referencia a
Entorno Grafico
bibliotecas de programas en Shell Texto
En Linux se puede elegir varios entornos grficos, los
Linux,Esto incluye las principales son:
bibliotecas estticas, libreras
compartidas, bibliotecas KDE: Es un entorno de escritorio con un aspecto
similar al de Windows con muchas funcionalidades El shell es simplemente un programa
dinmicamente cargado. incorporadas. Ideal para PCs que cuentan con un
que lee los comandos que se teclean y
mnimo de 128 Mb de memoria RAM
los convierte en una forma mas
GNOME: Es la principal alternativa existente a KDE
entendible para el sistema Unix/Linux.
para quienes estn acostumbrados a Windows. Tambien incluye algunas sentencias
Seguramente GNOME es una buena opcin para
quienes prefieren un entorno menos barroco que basicas de programacion que
KDE, aunque quizs posea a primera vista una permiten: tomar desiciones, realizar
interfaz menos familiar para los usuarios de ciclos y almacenar valores en variables.
Windows.
4. Comandos bsicos
A continuacin enumeraremos y explicaremos la lista de comandos bsicos a emplear para este
primer parcial. (Para efectos de aprendizaje se ir hablando de cada comando y haciendo un par
de ejercicios prcticos en el laboratorio de clases)
a. man comando
Todos los manuales de Linux estn dentro del propio sistema operativo, y este comando permite
acceder a la informacin correspondiente al comando comando.
10
man who aparecer por pantalla y de forma formateada por pginas, la explicacin del comando
who. Se puede navegar a travs de estas pginas con los cursores del teclado, y presionando q
para salir.
man dir: muestra la informacin sobre el comando que contiene los directorios.
b. Clear
El comando pwd (print working directory) visualiza o imprime la ruta del directorio en el que nos
encontramos en este momento. Este comando es uno de los pocos que no tiene opciones y se
utiliza escribiendo simplemente pwd , como lo vimos en la imagen muestra el ejemplo de una ruta
absoluta.
Este comando permite cambiar de directorio a partir del directorio actual de trabajo. Por ejemplo,
cd /home/Pedro En este ejemplo pasamos del directorio actual de trabajo al nuevo directorio
/home/Pedro, que ser desde ahora nuestro nuevo directorio. cd directory Nos traslada al
subdirectorio directory (que deber existir como subdirectorio en el directorio actual).
11
e. Comando mkdir (Creacin de subdirectorios)
Este comando (make directory) permite a cada usuario crear un nuevo subdirectorio, y se emplea
de la siguiente forma: mkdir subdir, donde subdir es el nombre del directorio que se va a crear.
Este comando borra uno o ms directorios del sistema (remove directory), siempre que estos
subdirectorios estn vacos. Por ejemplo: rmdir subdir, donde subdir es el nombre del directorio
que se va a eliminar.
ls -a Muestra todos los ficheros incluyendo algunos que ordinariamente estn ocultos para el
usuario (aquellos que comienzan por un punto). Se recuerda que el fichero punto( . ) indica el
directorio actual y el doble punto ( .. ) el directorio padre, que contiene, al actual.
ls -l Esta es la opcin de lista larga: muestra toda la informacin de cada fichero incluyendo:
protecciones, tamao y fecha de creacin o del ltimo cambio introducido.
h. rm
rm es una orden de Unix usada para eliminar archivos y directorios del sistema de archivos. Esta
orden debe utilizarse con cautela, ya que puede ser muy destructiva, debido a que, al momento de
ser llamada, por omisin borra los archivos sin pedir confirmacin.
Proviene de la palabra remove que significa "borrar" en ingls.
Parmetros rm:
-r, Procesa subdirectorios de forma recursiva.
-i, Pide confirmacin para cada borrado.
-f, Forzado, ignora archivos no existentes y elimina cualquier aviso de confirmacin.
En ocasiones se crea un alias con el nombre "rm", redirigido a "rm -i", con el fin de evitar borrados
accidentales. Si un usuario desea borrar varios archivos sin confirmacin, se puede cancelar
manualmente la confirmacin con el modificador -f: "rm -f"
12
"rm -rf" (con variantes, "rm -rf /", "rm -rf *", entre otras) son frecuentemente usados en bromas y
ancdotas sobre desastres en Unix. Esta variante de la orden si es ejecutada por el administrador,
puede causar que todos los contenidos del sistema de archivos sean borrados.
Aunque no es equivalente, su uso en bromas es similar al de format c: en Windows.
i. cp
cp es una orden de Unix usado para copiar archivos o directorios del sistema de archivos.
cp proviene de la palabra copy que significa copiar en Ingls.
La orden equivalente en DOS es copy.
j. mv
mv es un comando de Unix usado para mover o renombrar archivos o directorios del sistema de
archivos. El archivo original es borrado y el crea un nuevo archivo con el mismo contenido, el
nombre puede ser diferente o puede ser el mismo. En caso de que se use en la misma ruta con el
nombre del archivo y otro nombre solo cambiara el nombre del archivo.
mv proviene de la palabra move que significa mover en Ingls.
Ejemplos:
mv file1 file_1 renombra un archivo
mv File /file mueve 'File' a '/file'
mv file ./dir/file mueve 'file' a 'dir/file' Relativo al directorio
k. tar
Comprimir y descomprimir archivos es una de las tareas mas comunes que vamos a tener que
realizar en Linux por lnea de comandos. Podemos hacerlo mediante diversas herramientas, pero
existen dos que van a estar disponibles en casi cualquier distribucin.
Son dos herramientas que se tienen que utilizar de manera complementaria. Se trata de tar, que
simplemente empaqueta varios archivos en un nico fichero, y gzip, que hace la compresin
propiamente dicha.
13
tar [opciones] [origen] [destino]
c: crear un archivo
x: extraer de un archivo
t: listar los contenidos de un archivo
v: ver un reporte de las acciones a medida que se van realizando
f: empaquetar contenidos de archivos
z: para comprimir a la vez que se empaqueta
Como se puede ver, con la opcin z se puede comprimir en el mismo paso en el que se
empaqueta, lo que puede hacer las cosas ms rpidas y cmodas. De todos modos, tar
simplemente hace el empaquetado y es gzip el que realiza la compresin. Simplemente que
nosotros no tenemos que llamar a gzip, sino que ya lo hace directa e internamente tar.
Ejemplos
Si nos fijamos, en este caso el nombre del archivo comprimido le hemos puesto extensin .tgz, que
indica que est empaquetado y comprimido.
Eso supone que tenemos el archivo xxx.tar en el mismo directorio desde donde lanzamos el
comando. Los contenidos se desempaquetarn en el mismo directorio donde estamos situados.
14
4) Si el archivo que queremos desempaquetar est comprimido. Es decir, si queremos
descomprimir y desempaquetar en un solo paso, tenemos que hacerlo con la opcin z del
comando tar. Algo como esto:
tar xzvf xxx.tgz
l. gzip
Gzip Nos permite descomprimir, ver y chequear la integridad de los archivos Gz.
m. gunzip
n. >
Redireccin de escritura
Para escribir un archivo se utiliza >. Hay que tener mucho cuidado de no borrar un archivo
sobreescribindolo. Cuando se utilizan redirecciones, debido a su utilidad en los scripts, "no se
realizan confirmaciones".
Si el archivo a escribir ya existe desde antes, el redireccionador > lo sobreescribe con flujo de texto
nuevo.
Puede ser un comando ls, un comando cal (calendario) o cualquier comando antes visto, as como
tambin una combinacin de comandos por tuberas.
En este punto, el contenido de archivo.txt es lo mismo que saldra en pantalla. Si ejecutamos otro
comando redireccionado a archivo.txt (nuevamente), ste pierde su contenido y el resultado de la
operacin pasa a estar en el mismo.
Cuando se necesita tener una lista de acontecimientos, no se quiere que un acontecimiento nuevo
borre a todos los anteriores. Para lograr esto agregamos en vez de sobreescribir.
15
$ echo Este es el segundo acontecimiento >> bitacora.log
Nota:
Ejemplo1 1 parcial
Ing Amador 2012
En base a los comandos enseados por su maestro cree la estructura aqu propuesta:
/
Respaldo
home
16
Unicah Facultades
Facultades.zip
5. Unidad 2
Objetivos de Aprendizaje
17
4. Instalar paquetes precompilados bajados desde internet.
5. Instalar discos duros en el sistema operativo.
6. Permisos de archivos y
directorios
autor: sergio.gonzalez.duran@gmail.com
Introduccin
Has visto esa combinacin de r,w,x y - cuando listas un directorio?, tienes cierta idea que son los
permisos, pero como se usan y como funcionan?. En este manual sobre permisos de archivos y
directorios de LinuxTotal entenders totalmente su uso y la manera correcta de utilizarlos.
En Linux, todo archivo y directorio tiene tres niveles de permisos de acceso: los que se aplican al
propietario del archivo, los que se aplican al grupo que tiene el archivo y los que se aplican a todos
los usuarios del sistema. Podemos ver los permisos cuando listamos un directorio con ls -l:
$> ls -l
-rwxrwxr-- 1 sergio ventas 9090 sep 9 14:10 presentacion
-rw-rw-r-- 1 sergio sergio 2825990 sep 7 16:36 reporte1
drwxr-xr-x 2 sergio sergio 4096 ago 27 11:41 videos
Veamos por partes el listado, tomando como ejemplo la primera lnea. La primera columna (-
rwxrwxr--) es el tipo de archivo y sus permisos, la siguiente columna (1) es el nmero de enlaces al
archivo, la tercera columna (sergio) representa al propietario del archivo, la cuarta columna
(ventas) representa al grupo al que pertence al archivo y las siguientes son el tamao, la fecha y
hora de ltima modificacin y por ltimo el nombre delarchivo o directorio.
El primer caracter al extremo izquierdo, representa el tipo de archivo, los posibles valores para
esta posicin son los siguientes:
- un guin representa un archivo comun (de texto, html, mp3, jpg, etc.)
d representa un directorio
l link, es decir un enlace o acceso directo
b binario, un archivo generalmente ejecutable
Los siguientes 9 restantes, representan los permisos del archivo y deben verse en grupos de 3.
Los tres primeros representan los permisos para el propietario del archivo. Los tres siguientes son
los permisos para el grupo del archivo y los tres ltimos son los permisos para el resto del mundo
o otros.
rwx rwx rwx
18
usuario grupo otros
Las nueve posiciones de permisos son en realidad un bit que o esta encendido (mostrado con su
letra correspondiente) o esta apagado (mostrado con un guin -), asi que, por ejemplo, permisos
como rwxrw-r--, indicara que los permisos del propietario (rwx) puede leer, escribir y ejecutar el
archivo, el grupo (o sea los usuarios que esten en mismo grupo del archivo) (rw-) podr leer y
escribir pero no ejecutar el archivo, y cualquier otro usuario del sistema (r--), solo podr leer el
archivo, ya que los otros dos bits de lectura y ejecuccin no se encuentran encendidos o activados.
La cambinacin de valores de cada grupo de los usuarios forma un nmero octal, el bit x es 2 0 es
decir 1, el bit w es 21 es decir 2, el bit r es 22 es decir 4, tenemos entonces:
r=4
w=2
x=1
Cuando se combinan los permisos del usuario, grupo y otros, se obtienen un nmero de tres cifras
que conforman los permisos del archivo o del directorio. Esto es ms fcil visualizarlo con algunos
ejemplos:
Permisos Valor Descripcin
19
rw------- 600 El propietario tiene permisos de lectura y escritura.
rwx--x--x 711 El propietario lectura, escritura y ejecucin, el grupo y otros solo ejecucin.
rwxrwxrwx 777 El archivo puede ser leido, escrito y ejecutado por quien sea.
Habiendo entendido lo anterior, es ahora fcil cambiar los permisos de cualquier archivo o
directorio, usando el comando chmod (change mode), cuya sintaxis es la siguiente:
Los ejemplos anterior establecen los permisos correspondientes que el usuario propietario desea
establecer, el tercer ejemplo (chmod 700 julio*) cambiar los permisos a todos los archivos que
empiezen con julio (julio01, julio02, julio_respaldo, etc.) debido al caracter '*' que es parte de las
expresiones regulares que el shell acepta, e indica lo que sea. El ltimo ejemplo por lo tanto
cambiar los permisos a los archivos dentro del directorio actual.
Una opcin comn cuando se desea cambiar todo un rbol de directorios, es decir, varios
directorios anidados y sus archivos correspondientes, es usar la opcin -R, de recursividad:
$> chmod -R 755 respaldos/*
Esto cambiar los permisos a 755 (rwxr-xr-x) del directorio respaldos y de todos los subdirectorios
y archivos que estn contenidos dentro de este.
20
7. Estructura de control y
bucles
Variables y funciones
#!/bin/bash
#
# Esto es un ejemplo en Bash del clasico "Hola Mundo"
#
Como podeis ver, nada dificil para empezar. Empecemos a explicar un poco que significa cada
linea:
#!/bin/bash: Esta linea indica donde se encuentra el interprete de comandos en nuestro sistema.
Por defecto todos los sistemas que tengan Bash instalado, lo tendran en el directorio /bin. Al
utilizar esta linea, podremos ejecutar el script como un programa normal, ya que el sistema sabra
que es un script en Bash y que tiene que hacer con el.
# Esto es un ejemplo en Bash del clasico "Hola Mundo": Esto es un comentario. Todas las lineas
que empiecen con el simbolo '#' seran tratadas como comentarios y no se ejecutaran.
echo "Hola Mundo": Esto es el comando que imprime la cadena de texto en pantalla.
Variables
21
En todo script tendreis que trabajar con variables, mas tarde o mas temprano. Vamos a ver como
se definen y usan. Una buena costumbre cuando definamos variables en Bash es utilizar letras
mayusculas, esto no es necesario, pero nos ayudara a tener un script mas facil de entender.
MENSAJE="Hola Mundo"
echo $MENSAJE
Hemos definido una variable llamada MENSAJE con el valor "Hola Mundo", y la hemos usado con
el comando echo para escribir el valor de la misma. Las variables en Bash se definen como
NOMBRE=valor (sin espacios antes o despues del simbolo '=') y su valor se usa, poniendo el
simbolo '$' delante del nombre de la variable, $NOMBRE.
Si al utilizar el valor de una variable, el nombre de variable esta seguido de un caracter que sea
otra letra, numero o el simbolo '_', tendremos que utilizar los simbolos '{}' alrededor del nombre
de la variable.
#!/bin/bash
FICHERO="registro"
echo ${FICHERO}_2006.txt
Usando variables de entorno
#!/bin/bash
echo "El usuario '$USERNAME' ha ejecutado el script $0, en el ordenador '$HOSTNAME'. "
Tambien se pueden usar en nuestro scripts, variables que no hemos definido nosotros. Estas
variables son las llamadas 'variables de entorno' del sistema. Teneis una lista con las mas
importantes por defecto, en el segundo articulo de esta serie, Bash (II) - Comandos, variables de
entorno y combinaciones de teclas. En nuestro ejemplo hemos utilizado $USERNAME y
22
$HOSTNAME para obtener el nombre de usuario y del ordenador. La variable $0 contiene el
nombre del script, mas adelante explicaremos esto.
ATRIBUTOS_SCRIPT=`/bin/ls -l $0`
echo "El usuario '$USERNAME' ha ejecutado el script $0, en el ordenador '$HOSTNAME'. "
echo "Los atributos del script son: "
echo $ATRIBUTOS_SCRIPT
Tambien podemos asignar la salida que producen los comandos del sistema a una variable. En
nuestro ejemplo hemos asignado la salida del comando 'ls -l a una variable llamada
ATRIBUTOS_SCRIPT. Esto nos sera muy util en nuestros scripts para obtener informacion del
sistema que podremos utilizar en nuestros scripts.
Existen una serie de caracteres que tienen un significado especial en Bash, por ejemplo $ y ". Si
queremos usar literalmente estos caracteres en el valor de una variable tendremos que usar el
simbolo '\' delante de ellos.
#!/bin/bash
Si queremos definir variables numericas para su utilizacion en scripts Bash podemos utilizar el
comando let. Nada mejor que un ejemplo para ver como se trabaja con variables numericas.
#!/bin/bash
let A=100
let B=200
let C=$A+$B
23
echo "A: $A | B: $B | C: $C"
Funciones
function nombre_de_funcion(){
comandos_del_shell
}
#!/bin/bash
let A=100
let B=200
#
# Funcion suma()
# Suma los variables A y B
#
function suma(){
let C=$A+$B
echo "Suma: $C"
}
#
# Funcion resta()
# Resta los variables A y B
#
function resta(){
let C=$A-$B
echo "Resta: $C"
}
suma
resta
24
En Bash existen estas construcciones para controlar el flujo de ejecucion de un script:
if/else: Ejecuta una serie de comandos dependiendo si una cierta condicion se cumple o
no.
for: Ejecuta una serie de comandos un numero determinado de veces.
while: Ejecuta una seria de comandos mientras que una determinada condicion sea
cumpla.
until: Ejecuta una serie de comandos hasta que una determinada condicion se cumpla.
case: Ejecuta una o varias listas de comandos dependiendo del valor de una variable.
select: Permite seleccionar al usuario una opcion de una lista de opciones en un menu.
25
-e fichero fichero existe
-f fichero fichero existe y es un fichero regular (no un
directorio, u otro tipo de fichero especial)
Podemos combinar varias condiciones con los simbolos '&&' (AND) y '||' (OR), y negar una
condicion con '!'. Unos ejemplos mas adelante aclararan como utilizarlos.
if/else
if "condicion"
then
"comandos"
[elif "condicion"
then
"comandos"]
[else
"comandos"]
fi
#!/bin/bash
#
# Comprobando terminacion de un comando
#
26
DIRECTORIO="/tmp/test"
COMANDO="/bin/mkdir $DIRECTORIO"
if $COMANDO
then
echo "$DIRECTORIO ha sido creado"
else
echo "$DIRECTORIO no pudo ser creado"
fi
#!/bin/bash
#
# Comparacion de cadenas alfanumericas
#
CADENA1="uno"
CADENA2="dos"
CADENA3=""
fi
if [ -z $CADENA3 ]; then
echo "$CADENA3 esta vacia"
fi
--------------------------------------------------
#!/bin/bash
#
# Comparacion de valores numericos
#
let NUM1=1
let NUM2=2
let NUM3=3
27
La sintaxis de esta construccion es la siguiente:
Un ejemplo nos aclarara las cosas. Vamos a listar informacion en el DNS de una lista de direcciones
web:
#!/bin/bash
for HOST in
do
echo "-----------------------"
echo $HOST
echo "-----------------------"
/usr/bin/host $HOST
echo "-----------------------"
done
while
while condicion
do
comandos
done
Un ejemplo simple con while en donde escribimos el valor de una variable 10 veces, despues de
incrementar su valor:
#!/bin/bash
NUM=0
28
until
until condicion; do
comandos
done
Un ejemplo simple con until en donde escribimos el valor de una variable 10 veces, despues de
incrementar su valor:
#!/bin/bash
NUM=0
case expresion in
caso_1 )
comandos;;
caso_2 )
comandos;;
......
esac
#!/bin/bash
for NUM in 0 1 2 3
do
case $NUM in
0)
echo "\$NUM es igual a cero";;
1)
echo "\$NUM es igual a uno";;
29
2)
echo "\$NUM es igual a dos";;
3)
echo "\$NUM es igual a tres";;
esac
done
select
#!/bin/bash
8. Archivos de configuracin
de red
Antes de ahondar en los archivos de configuracin de interfaz, hagamos una lista de los archivos de
configuracin principales usados en la configuracin de la red. La comprensin del papel que desempean
estos archivos en la configuracin de la red puede ser de ayuda a la hora de personalizar un sistema Red Hat
Enterprise Linux.
/etc/hosts El principal propsito de este archivo es resolver los nombres de hosts que no se
pueden resolver de otra manera. Tambin se puede usar para resolver nombres de hosts en
pequeas redes sin servidor DNS. Sin tener en cuenta el tipo de red en que se encuentre el
ordenador, este archivo debe contener un lnea que especifica la direccin IP del dispositivo
30
loopback (127.0.0.1) como por ejemplo localhost.localdomain. Para mayor informacin consulte la
pgina man de hosts.
/etc/resolv.conf Este archivo especifica las direcciones IP de los servidores DNS y el dominio de
bsqueda. A menos que se haya configurado para algo diferente, los scripts de inicializacin de la
red llenan este archivo. Para mayor informacin consulte la pgina man de resolv.conf.
/etc/sysconfig/network Especifica la informacin del routing y del host para todas las interfaces
de red.
/etc/sysconfig/network-scripts/ifcfg-<nombre-interfaz> Para cada interfaz de red existe un
script de configuracin de interfaz correspondiente. Cada uno de estos archivos
proporcionan informacin especfica para una interfaz de red determinada.
Interfaces Ethernet
Uno de los archivos de interfaz ms comunes es ifcfg-eth0, que controla la primera tarjeta de interfaz de red
Ethernet o NIC en el sistema. En un sistema con mltiples NICs, tendr archivos ifcfg-eth<X> mltiples,
(donde <X> es un nmero nico correspondiente a una interfaz especfica). Como cada dispositivo tiene su
propio archivo de configuracin, un administrador podr controlar cmo cada interfaz funciona
individualmente.
Lo siguiente es un ejemplo de un archivo ifcfg-eth0 para un sistema que usa una direccin IP fija:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NETWORK=10.0.1.0
NETMASK=255.255.255.0
IPADDR=10.0.1.27
USERCTL=no
Los valores que se requieren en un archivo de configuracin de interfaz pueden cambiar basndose en otros
valores. Por ejemplo, el archivo ifcfg-eth0 para una interfaz que use DHCP se ver bastante diferente, debido
al hecho de que la informacin IP viene proporcionada por el servidor DHCP:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
Abajo hay un listado de los parmetros configurables en un archivo de configuracin de interfaz Ethernet.
31
BOOTPROTO=<protocolo>, donde <protocolo> es uno de los siguientes:
o none No se debera utilizar ningn protocolo de tiempo de arranque.
o bootp Se debera utilizar el protocolo BOOTP.
o dhcp Se debera utilizar el protocolo DHCP.
BROADCAST=<direccion>, donde <direccion> es la direccin de difusin. Esta directriz ha sido
descontinuada, pues el valor es calculado automticamente con ifcalc.
DEVICE=<nombre>, donde <nombre> es el nombre del dispositivo fsico (a excepcin de los
dispositivos PPP asignados de forma dinmica donde es el nombre lgico).
DHCP_HOSTNAME Solamente utilice esta opcin si el servidor DHCP requiere que el cliente
especifique un nombre de host antes de recibir una direccin IP. (El demonio del servidor DHCP en
Red Hat Enterprise Linux no es compatible con esta funcionalidad.)
DNS{1,2}=<direccion>, donde <direccion> es la direccin del servidor de nombres que se tiene que
colocar en /etc/resolv.conf si la directriz PEERDNS est en yes.
ETHTOOL_OPTS=<opciones>, donde <opciones> son cualquiera de las opciones especficas del
dispositivo soportadas por ethtool. Por ejemplo, si desea forzar a 100Mb, full duplex:
Tenga en cuenta que el cambiar la velocidad o las configuraciones de duplex casi siempre requieren
desactivar la negociacin automtica con la opcin autoneg off. Se necesita iniciar esto primero,
pues las entradas para las opciones dependen del orden.
GATEWAY=<direccion>, donde <direccion> es la direccin IP del enrutador o dipositivo de puerta de
enlace (si existe).
HWADDR=<direccion-MAC>, donde <direccion-MAC> es la direccin de hardware del dispositivo
Ethernet en la forma de AA:BB:CC:DD:EE:FF. Esta directriz es til para las mquinas con mltiples
NICs para asegurarse que las interfaces se les asignan los nombres correctos de dispositivos sin
importar el orden de carga configurado para cada mdulo NIC. Esta directriz no debera ser usada
en conjunto con MACADDR.
IPADDR=<direccion>, donde <direccion> es la direccin IP.
MACADDR=<direccion-MAC>, donde <direccion-MAC> es la direccin de hardware del dispositivo
Ethernet en la forma de AA:BB:CC:DD:EE:FF. Esta directriz es utilizada para asignar una direccin
MAC a una interfaz, ignorando la asignada a la NIC fsica. Esta directriz no debera ser usada en
conjunto con HWADDR.
MASTER=<interfaz-vinculo>,donde <interfaz-vinculo> es la interfaz de unin de canales a la cual la
interfaz Ethernet est vinculada.
32
o no Este dispositivo no es controlado por la interfaz de unin de canales especificada en
la directriz MASTER.
Nosotros nos limitaremos a ver cmo instalar o borrar un paquete rpm que hemos
descargado. Hemos de instalrlos como root ya que los rpms vienen preparados para
instalarse en los directorios del sistema, as que necesitaremos permiso para escribir
en ellos. Los comandos que nos servirn son los siguientes:
Instalar paquetes:
Eliminar paquetes:
# rpm -qa
33
# rpm -qa | grep <patron>
Con el primer comando listamos en pantalla todos los paquetes instalados. Con el
segundo restringimos la lista a los paquetes que en el nombre contengan al expresin
que le decimos (<patron>).
34
Paso 3, configurar el archivo de la interfaz adicionada en el Linux,
mediante un editor de texto
35
Paso 4, se deshabilita y habilita la interfaz
Si cuando se reinicia la maquina aparece el mensaje de que otro dispositivo posee esa ip,
deber de cambiar el valor de IPADDR por una ip que no este en uso , otra alternativa a
esto es modificar la direccin ip de forma temporal mediante lnea de comando asi:
36
Paso 5, hacer ping al gateway
37
Paso 6, verificar el dns
38
Si no hace ping recuerde revisar la direccin Ip hasta que encuentre una que le funcione.
39
10. Como montar un disco duro en
linux
Pasos necesarios para montar un disco duro en linux desde la terminal
Suponiendo que se instal en el IDE 1 maestro, entonces el dispositivo ser /dev/hdc o si no estas
seguro puedes usar:
#> fdisk -l
Y te mostrar una lista de los dispositivos conectados a los IDE's. Entonces procedes a particionar
la unidad recien instalada:
Una vez en fdisk, presiona m para una lista de los comandos de fdisk, en este caso usaremos:
Con lo anterior primero indicamos una nueva particin (n), despus se indic que es del tipo
primaria (p), el nmero de particin y por ltimo el tamao para esta particin, en este caso de
10GB o 10000MB, si se quisiera todo el disco en una sola particin, bastara con presionar enter.
En este caso suponemos que se dividir el disco en ms de una particin y repetiriamos lo anterior
pero empezando en el siguiente cilindro disponible y sera la particin 2. Hay que indicar el tipo de
sistema de archivos que tendr la particin, esto con el comando t:
t
Partition number (1-4) : 1
Hex code (L to list codes): 83
40
El tipo de particin para Linux es el 83, si presionas L donde lo indica vers una lista bastante
extensa con cdigos para distintos tipos de sistemas de archivos.
CUIDADO! Hasta antes de presionar w no pasa nada, ya que los cambios no se han realizado,
despus de presionar w(rite) no hay vuelta atrs, si te equivocaste de particin perders los datos
que hubiera ah, asi que cuando trabajes con fdisk checa y recheca varias veces que ests haciendo
lo correcto.
Despus de lo anterior yo siempre reinicio el sistema para que el kernel reconozca los cambios. (Si
alguien sabe como evitar este paso de reiniciar por favor avseme, se supone que si se puede pero
no he sabido como).
p> Para crear el filesystem o sistema de archivos se usa el comando mkfs, este comando tiene
mltiples variantes, pero supongamos que quieres poner un filesystem ext3 que es el mas comn
hoy en da para Linux. (ext3 es un ext2 con journaling, es decir con bitacoras de cambios en tiempo
real, lo que por ejemplo permite recuperarse de un apagn sin mayores problemas).
Siguiendo el ejemplo, debemos tener ahora un dispositivo hdc1 (/dev/hdc1), recuerda que
/dev/hdc es el disco duro en si y /dev/hdc1 es la particin primaria 1 de ese disco. Entonces
podemos usar cualquiera de las siguientes variantes de mkfs para crear el sistema de archivos en
la unidad:
Este paso es extremadamente simple, es solo cuestin de crear un directorio que es donde
posteriormente montaremos el nuevo dispositivo. Puedes crearlo donde sea pero yo acostumbro
hacerlo en la raz para identificarlo mas fcil.
41
#> mkdir /respaldos
El nombre del directorio es lo de menos, en este caso le pongo un nombre sugestivo de acuerdo a
lo que pretendo va a ser el destino del disco nuevo que en este caso, ser la de contener
respaldos.
#> vi /etc/fstab
...
/dev/hdc1 /respaldos ext3 defaults 2 1
...
:wq
Y listo ahora cada vez que prendas el equipo el dispositivo /dev/hdc1 quedar montado y accesible
en /respaldos.
Lo que ests haciendo es decirle al sistema: "monta el dispositivo /dev/hdc1 con el tipo de sistema
de archivos ext3 en el punto de montaje (directorio) /respaldos" Aunque ya que este dispositivo
esta indicado en /etc/fstab bastara para montarlo hacer lo siguiente:
Listo es todo. El disco duro nuevo esta instalado y disponible para usuarse.
mount -n -o remount /
42