Practica GNU Fundamentos
Practica GNU Fundamentos
Practica GNU Fundamentos
LABORATORIO DE GNU/LINUX
GUIA PRACTICA DE CERTIFICATION
GNU CERTIFIED
FUNDAMENTOS
Practica #1 “Historia”
1. Que es GNU/Linux?
es la denominación defendida por Richard Stallman y otros para el sistema operativo
que utiliza el kernel Linux en conjunto con las aplicaciones de sistema creadas por el
proyecto GNU. Comúnmente este sistema operativo es denominado como Linux, aunque
según Stallman esta denominación no es correcta.
2. Historia de UNIX.
Unix® (o UNIX) es un sistema operativo portable, multitarea y multiusuario;
desarrollado en principio por un grupo de empleados de los laboratorios Bell de AT&T,
entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy.
Hoy día, la palabra UNIX se utiliza para denotar diferentes conceptos dependiendo del
contexto en que es usada. Esto suele dar lugar a confusiones:UNIX - familia: desde el
punto de vista técnico, UNIX se refiere a una familia de sistemas operativos que
comparten unos criterios de diseño e interoperabilidad en común. Esta familia incluye
más de 100 sistemas operativos desarrollados a lo largo de 20 años. No obstante, es
importante señalar que esta definición no implica necesariamente que dichos sistemas
operativos compartan código o cualquier propiedad intelectual.
3. Estructura de GNU/Linux.
El Sistema Operativo GNU/Linux tiene una estructura de jerarquías con permisos entre
usuarios que permite tener privacidad y diferenciar nuestros archivos de los ajenos.
Esta regla no es cumplida por el ROOT (súper-usuario) que es el encargado de tareas
administrativas, soluciones de problemas, etc.
Es decir, el súper-usuario nunca es detenido por nada, y todo lo puede hacer. Los
usuarios comunes tienen este poder, pero solo dentro de su home.
4. Genealogía de GNU/Linux.
1 Práctica Fundamentos
5. Movimiento del Software Libre y Licencia GPL
Questionario:
2 Práctica Fundamentos
Práctica #Capítulo 2”
Objetivo: El alumno accesará el BIOS para obtener información critica sobre el ordenador,
pre-instalación.
Introducción
Todos los ordenadores comparten la característica en común de tener un BIOS. Un BIOS no
es mas que el sistema básico de entrada/salida Basic Input-Output System. es un código
de interfaz que localiza y carga el sistema operativo en la RAM. Ésta proporciona la
comunicación de bajo-nivel, operación y configuración con el hardware del sistema, que
como mínimo maneja el teclado y proporciona salida básica durante el arranque. La BIOS
usualmente está escrita en lenguaje ensamblador.
Ejemplo:
● En un ordenador HP al pulsar la tecla “DEL” tenemos acceso al BIOS.
● Para identificar la memoria RAM de nuestro ordenador después de haber accesado el
setup, buscamos la paleta de opciones avanzadas (advanced), luego pulsamos
ENTER en procesos, memoria y cache (Processor, Memory and Cache).
● Se repetirá el mismo proceso para identificar el procesador.
● Para identificar los discos duros de nuestro ordenador una ves en el setup, buscamos
la paleta avanzado (advanced) la opción configuración de dispositivos IDE (IDE
device configuration).
Desarrollo de la práctica:
Práctica #1 “El BIOS”
Lo primero que debemos hacer es identificar la memoria, procesos, y discos de nuestro
ordenador. Para esto usualmente con solo presionar la tecla de “DEL” (puede variar
dependiendo el ordenador) al encender el ordenador tendremos acceso a el BIOS.
Práctica #2 “ISOS”
Crear un iso mkisofs y quemarlo.
b) $ dd if=/dev/cdrom of=archivo.iso
Esto crea una imagen de ISO-9660 con el nombre 'archivo.iso' del CD que insertemos en el drive cdrom.
3 Práctica Fundamentos
Graba el fichero 'archivo.iso' ubicado en '/home/usuario1/' en el dispositivo 'dev=0,4,0'
lo que nos indica que es un memory stick o algo Parecido. De inmediato imprimimos las tablas usando el
comando p.
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-621, default 1):<RETURN>
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-621, default 621): +384M
4 Práctica Fundamentos
Práctica #5 “Particionado y montaje con Gparted”
Objetivos: Una ves que conocemos la configuración básica de nuestro ordenador
debemos decidir como dividiremos nuestro disco, y cuantos sistemas operativos queremos
instalar en nuestro disco duro.
Objetivos: Una ves tenemos nuestro sistema funcionando, podríamos experimentar cierta
carencia de memoria a pesar de haber configurado nuestra memoria swap en la
instalación, otra posible situación es que cambiemos el monto de memoria RAM. Para esto
podemos fácilmente asignarle mas memoria virtual SWAP desde un archivo.
5 Práctica Fundamentos
El comando “dd”:
dd if=origen of=destino
donde if significa "input file", es decir, lo que deseas copiar y of significa "output file", o
sea, el archivo destino (donde se van a copiar los datos); origen y destino pueden ser
dispositivos (lectora de CD, diskette, etc.), archivos, etc.
Cambiamos los permisos a restringidospara no ser borrado por usuarios sin querer
# chmod 600 swaptemp
2. Seguimos los pasos para elegir la partición y utilizamos una partición con los pasos a
seguir y luego elegimos el tipo swap 82 desde el menú.
6 Práctica Fundamentos
Práctica #8 “Conectividad”
Herramientas a usar ifconfig, route, /etc/resolv.conf, y gráficamente network-admin.
Establecer la Dirección de ip
1. Si es Estática
Para establecer una dirección IP estática y su mascara y en encenderla,
simplemente ejecuamos la siguiente sentencia:
# ifconfig eth0 150.1.1.31 netmask 255.255.255.0 up
Nos lee la información de la interfaz de red (IP, máscara, etc.) para confirmar los
cambios que deseamos efectuar
# ifconfig eth0
2. Si es Dinámica
Para requerir una dirección desde un servidor dhcp que este en la red.
# dhclient eth0
1. Establecer la Mascara
# ifconfig eth0 150.1.1.31 netmask 255.255.255.0
2. Establecer la Pasarela
route add default gw 10.0.0.1
7 Práctica Fundamentos
Capítulo 3
1. Instalar UBUNTU
Cómo instalar paso a paso Ubuntu
1. Primero, asegúrese tener la versión correcta para su arquitectura.
2. Reinicie su equipo con el CD que acabamos de crear en el lector de CDs. En la
pantalla de bienvenida (en inglés), para elegir el castellano, solo hay que pulsar F2 y
seleccionarlo de la lista.
3. En el escritorio de Ubuntu aparecerá un icono llamado Install, ejecútelo.
4. El primer paso es elegir el idioma
5. Elegir la zona horaria
6. Elegir el tipo de teclado
7. Sus datos personales
8. Decirle al instalador dónde debe instalarse. Asegúrese de que escoge la opción
correcta, o podría formatear una partición no deseada.
Existen varias opciones al instalar:
• Formatear todo el disco duro. Elija esta si desea borrarlo todo y realizar una
instalación limpia de Ubuntu.
• Espacio libre contiguo. Ubuntu usará un trozo de espacio libre en su disco duro
para instalarse, esta es la opción más recomendable si desea conservar su
antiguo sistema operativo y/o sus datos. En mi caso no aparece porque no
tenía espacio suficiente en ninguna partición.
• Particionamiento manual. Si se siente valiente, puede hacer a mano una o
varias particiones para ubuntu. Tenga en cuenta que la partición debe tener al
menos 2 GB, y debe habilitar una partición para la memoria de intercambio
(«Swap»). Esta opción no es recomendable si nunca ha hecho una partición o
nunca ha usado Linux antes.
9. En la pantalla le mostrará los datos para que los revise. Asegúrese de que todo está
en orden, y pulse siguiente para comenzar a instalar Ubuntu en su ordenador.
10.El instalador mostrará su progreso mientras el sistema se instala…
11.Si todo sale bien, solo deberá reiniciar para arrancará ubuntu y podrá comenzar a
disfrutarlo.
2. Instalar OpenSuSE
Cómo instalar paso a paso SuSE 10.1
1. Colocar DVD en la unidad y reiniciamos el ordenador.
2. Reiniciar y entrar en la BIOS del PC y configurarlo para que en el orden de arranque
la unidad de CD
3. En el menú inicial, del que elegimos ‘Installation’.
4. Primero, comprueba el funcionamiento del ratón.
5. Elegimos nuestro idioma
6. Aceptamos la licencia.
7. Elegir si el modo de instalación: Nueva Instalación o Actualización.
8. Seleccionamos la primera opción.
9. Elegimos el reloj y la zona horaria.
10.Seleccionamos escritorio.
11.Las particiones, en la sección ‘Configuración de la instalación’. Nos podemos
8 Práctica Fundamentos
encontrar con dos posibilidades: 1) Que vayamos a instalar SuSE en todo el disco o
2) Que queramos que cohabite con otro sistema.
12.En el primer caso, clicamos en Particionamiento, personalizamos la instalación y
seleccionamos nuestro disco duro y todas sus particiones.
13.La instalación eliminará todo lo que haya en ese disco duro
14.En el segundo caso (instalar SUSE manteniendo un sistema anterior) tendremos que
clicar en Particionamiento, lo personalizamos y editamos las particiones.
15.Ahora verás que aparece un gráfico. Pues bien, en él tienes que encontrar una franja
coloreada bajo un sistema de archivos representando el SO presente
16.Debe dejar como mínimo 4 Gb libres.
17.Si tu partición del otro SO ocupa todo, tendrás que redimensionarla.
18.Coloquese sobre su franja coloreada, dale al botón secundario y elige
‘Redimensionar‘.
19.Reduce su tamaño (deja al menos 4 Gb a SUSE) y acepta
20.Volvemos al panel de ‘Configuración de la instalación’, elige el disco en el que
instalar y elige al sistema que utilice el espacio libre contiguo, ya tendrá al menos 4
Gb, se los acabas de dejar con el comando ‘Redimensionar‘. El resto de opciones de
este panel déjalas tal cual.
21.Confirmamos las licencias.
22.El sistema comienza a preparar el disco y a instalar aproximadamente 2.13 Gb
23.Al final llegarás a Host (nombre). Déjalo tal cual. Aceptar.
24.Elige tu contraseña de Root.
25.Configura Red o déjalo tal cual
26.Puede ahora elegir actualizar el sistema si te ha reconocido bien la conexión
27.Llegamos a la pantalla de usuario (nombre, clave, etc).
28.Una vez escrita la configuración, aparecen las notas de la versión y comienza a
configurar el hardware.
29.Si no te lo reconoce todo a la primera, no te preocupes: una vez iniciado el sistema
podrás cambiar cosas de hardware.
30.Terminado la instalación puedes disfrutar de un Open SUSE
3. Instalar CentOS
Cómo instalar paso a paso CentOS 5
Requerimientos de Sistema
Hardware recomendado para operar :
• Memoria RAM : 192 MB (Minimo) .
• Espacio en Disco Duro : 850 MB (Minimo) - 2 GB (Recomendado) .
• Procesador : Intel Pentium I/II/III/IV/Celeron, AMD K6/II/III, AMD Duron, AMD
Athlon/XP/MP .
9 Práctica Fundamentos
Proceso de Instalación
1. Arranque de CD-ROM : Primeramente debe asegurarse que su BIOS se encuentre
configurado para leer el CD-ROM al momento de inicializarse su PC o Servidor, esto
es necesario para que se ejecute el "shell" de instalación CentOS en lugar del
sistema operativo que tiene instalado en su disco duro.
2. Arranque de CentOS : Inicialice su sistema con el Disco 1 de CentOS colocado en
su lector de CD-ROM. Si configuró correctamente su BIOS para leer CD-ROM's al
arranque,
3. Proceso inicial y detección de Hardware: Estando en la pantalla anterior,
simplemente esperando u oprimiendo Enter, iniciará el proceso para detección de
Hardware y proceso de instalación a través de una consola gráfica , esta secuencia
puede durar entre 10 o 15 segundos, mientras observa mensajes descriptivos sobre
su sistema. Si desea realizar su proceso de instalación mediante linea de comandos,
entonces deberá introducir la secuencia linux text.
4. Verificación de medios (CD-ROM's) : Posteriormente será presentado con la
opción de realizar una prueba de integridad sobre los CD-ROM's de instalación
CentOS, esta prueba dura entre 10 y 15 minutos para los 4 CD's de instalación. Si no
desea realizar esta prueba, seleccione la opción Skip . La pantalla es la siguiente :
5. Bienvenida : Es desplegado un mensaje de bienvenida de CentOS con instrucciones
de navegación, simplemente oprima Next para continuar con el proceso.
6. Lenguaje del Sistema: La siguiente selección que debe hacer es sobre el idioma
que desea para su proceso de instalación y sistema, puede elegir castellano
(Spanish):
7. Configuración de Teclado : Seleccione el tipo de teclado en base a su sistema;
Español si posee un teclado con tecla eñe y caracteres latinos, o bien,
estadounidense de lo contrario.
8. Tipo de Instalación ( Actualización, Escritorio personal, Estación de
Trabajo, Servidor, Personalizada ) : Seguido, será realizado un proceso de auto-
detección para determinar si posee una instalación pre-existente de CentOS, de
encontrarse será presentado con una opción de actualización, de lo contrario, podrá
elegir entre 4 modalidades -- Escritorio Personal, Estación de Trabajo, Servidor o
Personalizada -- cada una de éstas presenta una breve descripción de su
funcionamiento. Para el caso de esta guia, se asumirá una configuración de Servidor,
ya que CentOS se caracteriza por su estabilidad en esta área. A continuación se
muestra esta consola :
9. Partición de Disco Duro : Posteriormente, debe realizar el particionamiento de su
disco duro, CentOS le ofrece dos alternativas para llevar acabo este proceso. (NOTA:
Es recomendable lea el proceso de Pre-Instalación en caso que no este familiarizado
con el concepto de particionar discos duros ).
1. Particionamiento Automático: Como su nombre lo implica, CentOS realiza el
particionamiento del disco duro a dimensiones pre-determinadas, sin embargo,
esto implica generalmente que debe borrar toda la información existente en su
disco duro.
2. Partición manual con Disk Druid: Para usuarios con amplio conocimiento del
proceso de partición, pueden optar por hacer su propia distribución de espacio
con esta opción.
10.Se recomienda seleccionar Particionamiento Automático puesto que implica el
método más directo y sencillo para instalar CentOS, no obstante, si utiliza la opción
de Disk Druid tome en cuenta los factores de redimensionamiento que utilice para
10 Práctica Fundamentos
sus particiones. La principal ventaja de utilizar la opción automática, se debe a que
las particiones son creadas en el orden y tamaño recomendado por CentOS para
operación óptima.
11.Administrador de Arranque ("Boot Loader") : Posteriormente debe confirmar la
instalación del administrador de arranque ("Boot Loader") GRUB; si CentOS será el
único sistema operativo instalado en su equipo, este paso no debe ser de mayor
trascendencia. Sin embargo, si posee más de un disco duro, o bien, además de
CentOS existirá otPráctica #7 “Identificación del hardware”ro sistema
operativo, esta configuración tiene implicaciones en la manera que es inicializado su
sistema. La pantalla es la siguiente :
12.Configuración de Red : Seguido debe indicar los parámetros para acceso a red, ya
sea manualmente con información de nodos IP y DNS , o bien, indicando una
configuración automática vía DHCP.
13.Configuración Coratfuegos ("Firewall") : Aquí debe especificar si desea instalar
un mecanismo de "Firewall" para proteger su sistema. De ser así, también tiene la
opción de habilitar determinados servicios para que éstos no sean afectados por el
"Firewall", tales como: SSH , Servidores Web , Servidores de Correo y FTP. La pantalla
es la siguiente :
14.Idiomas adicionales para Sistema : Esta consola le permitirá definir idiomas
alternos para su sistema, además del seleccionado en primeras instancias :
15.Zona Horaria del Sistema : Aquí debe definir la zona horaria para su instalación.
La pantalla es la siguiente :
16.Definición de usuario raíz (root) : Posteriormente debe indicar una contraseña
para el usuario raíz ("root") del sistema, como su nombre lo indica, éste será el
usuario maestro de la instalación y tendrá control absoluto de acceso sobre toda
aplicación en CentOS. La pantalla se muestra a continuación :
17.Selección de Aplicaciones/ Paquetes : En esta consola tiene la opción de elegir
la serie de aplicaciones que serán instalados, por "default" se encontraran
seleccionados una serie de paquetes que corresponden a una configuración típica de
servidor, esto debido a que con anterioridad fue seleccionado este tipo de
instalación. No obstante, puede agregar aplicaciones a su discreción, tales como un
ambiente gráfico u otra función necesaria para cumplir con sus requerimientos.A
continuación se muestra esta consola :
18.Selección de Aplicaciones/ Paquetes : Seleccionadas las aplicaciones, al oprimir
el botón Siguiente iniciará la instalación de aplicaciones, dependiendo de su
Hardware, este paso puede demorar entre 20 o 40 minutos. Asegúrese también de
tener cerca de su PC los discos de instalación y no dejarla desatendida, ya que
durante este proceso necesitará colocar los distintos CD-ROM's conforme los
requiera su instalación.A continuación se muestra esta consola :
19.Ultimo paso : Felicidades ! : Ha terminado de instalar satisfactoriamente CentOS
Linux. Ahora sólo debe reinicializar su sistema para entrar a su ambiente Linux ! . La
pantalla se muestra a continuación :
11 Práctica Fundamentos
Capítulo 4
1.El X
A. Identificación de la arquitectura del X Server
1. Servidor X
2. Protocolo X
3. Xlib
4. Toolkit y Widget
B. Administradores de ventanas
1. Gnome, kde, wmaker
a. temas, fondos , etc.
C. Administrador de pantalla
a. gdm, kdm, xdm
TimedLoginEnable=true
TimedLogin=nombre_usuario
TimedLoginDelay=30... el tiempo
12 Práctica Fundamentos
Bien, cambialo por:
# En F7 esta tu equipo local, en F8 el remoto
0=Standard
1=Terminal -query # Donde es el equipo con las X activas
Podemos generar un xorg.conf que lo mas probable funcione en caso de que se nos
dañe asi:
# Xorg -configure
Nota: Fijese que no imprima ningún error antes de continuar. Este proceso generará un
archivo de configuración en la capeta en la cual usted se encuentra de nombre:
/root/xorg.conf.new
13 Práctica Fundamentos
Ahora podemos probarlo así:
# X -config /root/xorg.conf.new
Si todo esta bien deberemos copiarlo y reemplazar el que tenemos ahora así:
# cp /root/xorg.conf.new /etc/X11/xorg.conf
Section "Screen"
Identifier "Default Screen"
Device "S3 Inc. ProSavage KN133 [Twister K]"
Monitor "Generic Monitor"
DefaultDepth 24
# Skipping some text to improve readability
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection
14 Práctica Fundamentos
Práctica #8 “Xs Remota”
A) Usar mas de un X en una PC o HOST
Primero vaya al terminal 1
# Ctrl + Alt +F1
Para encender un X server en el terminal próximo al gráfico en F8, dirijase allí para
confirmar:
# Ctrl + Alt + F8
Continue desde el terminal ejecutando las partes que conforman a GNOME, como son:
panel, nautilus y metacity.. siga probando..???
15 Práctica Fundamentos
xauth: es una autentificación basada en cookies y mucho más sofisticada. Con xauth se
puede dar acceso a los usuarios de forma individual. Es mucho más seguro que xhost.
La autentificación usa una cookie alojada en el fichero .Xauthority en el directorio
personal de los usuarios. Si la máquina remota tiene una cookie válida en este fichero
entonces se garantizará el acceso. Para copiar la cookie desde la máquina frente a la
que está sentado (host1) al host desde donde quiere lanzar el programa (host2) puede
usar uno de los siguientes métodos:
Escenarios
En un edificio hay que dar soporte a los usuarios de todos los departamentos
distribuidos en 8 planta por tal motivo hemos configurado un servidor X para
conectarnos a las maquinas remotamente y proveerles el servicio sin necesidad de
hacer presencia física en los diferentes departamento.
luego de configurar estas opciones la maquina remota tienen que darnos acceso con la
siguiente sentencia
xhost +
Tenemos que asegurarnos que tengamos corriendo el puerto 6000 o TCP X11. Para eso
hacemos un nmap la maquina donde nos vamos a conectar y nos aseguramos que
nuestro server también lo tenga corriendo.
nmap 192.168.1.126
Luego de estos pasos tenemos que saber que queremos exportar su escritorio para ver
el error presentado en la pantalla del usuario o exportarle una aplicacion sugerida.
16 Práctica Fundamentos
Para traer un escritorio desde otra maquina ejecutamos la sentencia
X -query 10.0.0.126 :1
Xnest tiene algunas opciones importantes, ac quiere decir access control, si se pone
xnest:1 por default no permitirá nuevas instrucciones. Con –ac deshabilitamos este control
y podemos ingresar instrucciones desde nuestro escritorio defecto:
# xnest :1 --ac &
Cuando tenemos esto solo nos da una ventana en azul o negro, sin nada mas, si queremos
correr algo sencillo (y que no coma recursos) podemos ejecutar una terminal. Como no
podemos correr nada desde la X en ese momento correremos los comandos desde el
display 0 osea desde nuestro escritorio actual.
Corremos una terminal y ejecutamos el comando:
# xclock -display :1
Este es un pequeño programa pero también podemos correr cosas mas elaboradas como
una desktop de gnome.
Para hacer esto simplemente debemos mandar el desktop a la terminal X.
# gnome-session -display :1
17 Práctica Fundamentos
Copia tus fuentes
Ahora, copia todas las fuentes TrueType fonts (*.ttf) que necesitas
dentro de este directorio.
Si quieres copiar los archivos de una partición Windows, estas fuentes normalmente se
encuentran en el directorio XWindow/fonts, o en WINNT/fonts en el caso de Windows NT o
2000.
Diciendo a XWindow sobre tus fuentes.
Ahora, ingresa los siguientes comandos en secuencia en una ventana de terminal:
cd /usr/local/fonts/ttf
ttmkfdir > fonts.scale
mkfontdir
Si ves el directorio debes ver dos archivos nuevos además de las fuentes TrueType -
"fonts.scale" y "fonts.dir". Estos archivos simplemente contienen una lista con el nombre
completo de las fuentes para cada fuente TrueType. Finalmente, debes agregar el nuevo
directorio a la lista de rutas en que XWindow busca las fuentes.
Edita el archivo /etc/X11/fs/config (o /etc/X11/xfs/config), busca la linea que empieza con
"catalogue", y agrega el directorio de las fuentes al final de la lista, separado por una
coma.
Eso es todo, puedes probarlo corriendo el programa de "Font selector" del menú utilidades
de Gnome, GIMP o OpenOffice. Deberías ver inmediatamente los nombres de las fuentes
TrueType en la lista
de fuentes.
18 Práctica Fundamentos
CAPITULO 5
1. Documentación y corrección de fallos
Práctica #1 “El man”
Abrir el man en manera simple con:
$ man man
Luego practicar navegar, explicar el lector en cual se abre que es less por defecto y
como podemos cambiarlo desde el archivo de configuración del man
/etc/manpath.config en la linea que define el pager.
Efectuar búsquedas de cadenas de texto.
Cambiar el man a otros idiomas ej. man -L it man
Cambiarlo permanentemente de idioma desde el archivo de configuración
Práctica #2 “PS”
# ps
Procesos activos por una terminal del usuario actual, aportando identificador del
proceso, terminal asociada, porcentaje de tiempo de procesador ocupado y nombre del
proceso.
# ps -A | grep bash
Busca en todos los procesos activos del sistema los que contengan el término 'bash'
# ps auwx
Todos los procesos activos del sistema, con información asociada (% de CPU, % de
memoria, etc.)
# ps u
Procesos activos por una terminal del usuario actual, con información asociada
# pstree
Procesos activos del sistema jerarquizados en forma de árbol
# ps -u nombre_usuario”
Para ver los procesos que está utilizando un usuario utilizas
# ps aux
Para ver todos los procesos que se ejecutan en el sistema utilizas
# kill -9 100
Elimina el proceso con PID '100' de forma inmediata, sin espera (señal número 9)
# kill -l
Muestra todas las señales disponibles en el sistema con el comando 'kill'
# kill 100
19 Práctica Fundamentos
Elimina el proceso con PID '100' (al no especificar el número de señal, se emplea por
defecto la 15: finalización segura, de forma ordenada)
# killall top
Restaura (reinicia) el utilitario top.
# killall httpd
Elimina todos los procesos con nombre 'httpd'
20 Práctica Fundamentos
discos con el mismo valor para fs_passno, serán chequeados al mismo tiempo para
utilizar el paralelismo disponible en el equipo. Si fs_passno (sexto campo) no está
presente o tiene un valor de 0, fsck asumirá que ese sistema de ficheros no necesita ser
chequeado.
21 Práctica Fundamentos
Si algún programa o librería dinámica compartida esta dañada puede que el sistema no
pueda arrancar normalmente y deba arrancar desde un sistema de rescate. En
cualquier caso en este tipo de situaciones puede que los elementos destinados a reparar
su sistema estén igualmente dañados y por ello lo mejor es arrancar desde un disco de
rescate y hacer un chequeo a todas las particiones incluidas las particiones de swap.
Use badblocks desde algún disco externo ya que quizas el del disco este siendo
afectado por el problema mismo. Los primeros CDs de las distribuciones suelen ofrecer
la opción de arrancar en modo rescue. Los Live-Cds son la mejor opcion.
El utilitario badblocks es independiente del tipo de sistema de ficheros que use la
partición. Puede ser ext3, reiserfs, linuxswap, umsdos, vfat, etc.
La opción -o de badblocks produce una salida que puede ser usada por e2fsck o por
mke2fs ambos con la opción -l. Estos programas también admiten la opción -c para
hacer que e2fsck o mke2fs usen a su vez badblocks. Realmente es muy sencillo y
conveniente sin embargo le recomendamos lo siguiente.
Pase badblocks a todos los sistemas de ficheros presentes en el disco afectado uno a
uno y anote o guarde lo resultados. (Por ejemplo redirigiendo salida a un disco sano).
Pase e2fsck con la opción -c en las particiones dañadas. De esta forma los sectores
defectuosos ya no se usarán.
Formatee primero a bajo nivel usando alguna utilidad de la BIOS u otra proporcionada
por el fabricante del disco duro.
Formatee usando para revisar los bloques defectuosos
# mkfs -c /dev/hda4
Particiones y fsck
Si has modificado una partición tienes que modificar el /etc/fstab. Desde la consola con
# fdisk -l
le dará la información sobre sus particiones. Para arreglarlo en la consola escribes
gedit /etc/fstab y saldrá el archivo para que lo modifiques.
22 Práctica Fundamentos
5. Luego reiniciamos y ya esta, grub nos pedirá una contraseña al intervenirlo.
23 Práctica Fundamentos
CAPITULO 6
Sistemas de archivos
● Crear una jerarquía de 5 niveles de directorios con un archivo en cada directorio
y practicar moverlos, cambiarle los permisos, renombrarlos, hacer enlaces
simbólicos, renombrarlo y copiarlo,etc.
● Practica de grupos y usuarios: eliminar usuarios, agregar grupos, con los
comandos chmod, chgroup, etc. Crear un nodo de un Dispositivo
● Practica de archivos de /proc
root:$1$zjxtZLtl$UHNQhadJEfRdsSL386N1HO.:11181:0:::::
^ ^ ^ ^
| | | |- Días antes de que el
| | | password pueda ser cambiado
| | |
| | |- Días desde el 1o de Enero de 1970
| | en que el password fue cambiado
24 Práctica Fundamentos
| |
| |- Password encriptado
|
|- Nombre de usuario
Calculo para buscar el día que fue cambiado ese password del cambio del password
Los grupos, por otra parte, se definen en un archivo llamado group, también ubicado en
el directorio /etc. Su composición se detalla a continuación:
daemon::2:root,bin,daemon
^ ^ ^ ^
| | | |- Lista de usuarios pertenecientes al grupo, separados por
| | | comas
| | |
| | |- ID numérico único del grupo
| |
| |- Password encriptado del grupo (generalmente no se utiliza)
|
|- Nombre del grupo
Tanto en el archivo de password como de grupos debe existir por lo menos una entrada
esencial para el funcionamiento del sistema: la del usuario root.
25 Práctica Fundamentos
-rwxr-xr-x 1 jperez fcld 345 Sep 1 04:12 archivo
Seguido del tipo de archivo, los próximos nueve caracteres definen los permisos. Estos
permisos están dados en grupos de a tres cada uno. Los primeros 3 caracteres son los
permisos para el el usuario propietario. Los próximos tres son permisos para el grupo, y
los últimos tres definen los permisos de acceso para todos los demás.
r- Permiso de lectura solamente. Indica si el archivo puede ser leído; en caso de ser un
directorio indica que sus contenidos pueden ser listados.
Tomemos como ejemplo los permisos de tmp, que son drwxr-x---. El propietario de este
directorio es el usuario jperez y el grupo al cual pertenece el directorio es fcld. Esta serie
de permisos permite acceso completo de lectura, escritura y ejecución al directorio al
usuario jperez. Los permisos del grupo son r-x: no hay permiso de escritura dado por lo
que los miembros del grupo fcld pueden entrar y listar los contenidos del directorio, no
pueden crear nuevos archivos o subdirectorios dentro. Además del propietario y del
grupo, nadie más tiene ningún tipo de acceso al directorio porque sus atributos para
otros están vacíos (---).
Para el archivo lala los permisos son -rw-r--r--. Aplicando lo anterior, podemos ver que el
propietario del archivo (jperez) puede leer y modificar el archivo. Los miembros del
grupo fcld pueden leer el archivo pero no modificarlo; al igual que todos los demás.
26 Práctica Fundamentos
Práctica #3 “Modificación de Atributos”
Para cambiar los permisos se utiliza el programa chmod (CHange MODe, cambiar modo).
Es necesario ser el usuario propietario del archivo, o root. Los permisos pueden ser
definidos para los usuarios propietarios (u), grupos (g) y 'otros' (o).
A los miembros del grupo se les ha dado acceso de escritura y ejecucion pero todo
acceso ha sido removido para los usuarios que no son miembros de ese grupo. Los
permisos del archivo son ahora entonces -rwxrwx---.
$ chmod a+x archivo
Le da acceso de ejecución a todos. Los permisos ahora son -rwxrwx--x. Especificar a aqui
no es esencial, simplemente podríamos haber dicho +x, a (All) se asume por defecto. Por
lo tanto el comando chmod +x archivo es equivalente a lo indicado arriba.
$ chmod go-rx archivo
Si los mismos bits de permiso se utilizan para asignar/quitar a usuarios, grupos u otros
entonces se pueden indicar juntos como se indica. Los permisos son ahora entonces
-rwx-w----
$ chmod ug=rwx archivo
Esto coloca los permisos del archivo en exactamente lo que se ha especificado: ahora,
los premisos son:
-rwxrwx---
$ chmod o=g archivo
Los permisos del archivo para 'otros' ahora son colocados igual a lo que los permisos
para el grupo están asignados:
-rwxrwxrwx
Existe otra manera en que se pueden especificar los permisos de archivos: los bits r, w y
x tienen asignados un numero, proveniente de la notacion binaria que se utiliza para
almacenarlos como bits propiamente tal:
r=4 w=2 x=1
Ahora es posible utilizar números, que son la suma de los distintos bits de permisos. Por
27 Práctica Fundamentos
ejemplo, rwx seria 4+3+1 = 7. rx seria 4+1 = 5. Por lo tanto el comando chmod ahora se
convierte en:
$ chmod xyz archivo
donde x, y y z son números que representan los permisos del usuario, grupo y otros,
respectivamente. Cada numero es la suma de los permisos a colocar y se calculan como
se indico anteriormente.
chmod 644 archivo
6 = 4 + 2 = rw, 4 = r, 4 = r
Como podemos ver, los permisos para archivo se han colocado como -rw-r--r--. Esta
manera es mas simple y rápida de asignar permisos; puede ser un poco mas tediosa al
comienzo pero con la practica se logra la costumbre. A continuación se explican los
distintos permisos como una referencia:
0 - --- 1 - --x 2 - -w- 3 - -wx 4 – r-- 5 – r-x 6 – rw- 7 - rwx
En estos ejemplos se cambia al usuario propietario del archivo archivo por los usuarios
nuevo-usuario y novato, respectivamente.
28 Práctica Fundamentos
CAPITULO 7
Práctica #1 “Navegar el Shell”
1. Dirijase a su directorio home -> cd o cd ~ o cd /home/$USER
2. Cree un nuevo directorio con su nombre -> mkdir sunombre-nombre ej. mkdir jesus
3. Cámbiese a este nuevo creado directorio -> cd jesus
4.Cree un archivo con cat con cinco nombre 1 debajo del otro -> cat > archivo, nombres, Ctrl+D
5. Despliegue el archivo en pantalla con cat -> cat archivo
6. Haga copia de este con cp -> cp archivo copia
7. Elimine a archivo -> rm archivo
8. Cambie el nombre de copia a archivo -> mv copia archivo
9. Complete el comando uptime con tab -> upt<tab>
10. Comando de ver historial de comandos -> history
11. Ver ultimo 12 comandos -> history 12
12. Como ejecutar ultimo comando sin conocerlo -> !!
13. Como ejecuto el comando 12 del history -> !12
14. Como ejecuto comando empieza upt -> !upt
15. Qué tipo de ruta es ls /home/nombre -> absoluta
16. Cuál es la ruta relativa a home de /home/nombre/Desktop -> nombre/Desktop
17. Despliegue la ruta absoluta de usr/share/gnome/ -> ls /usr/share/gnome/
18. Cambie del directorio actual a /usr/share/gnome -> cd /usr/share/gnome/
19. Confirme que cambie com pwd -> pwd
20. Regrese al directorio home, de tres maneras con cd -> cd , cd ~ y cd /home/nombre
21. Cree un directorio de nombre Carpeta -> mkdir Carpeta
22. Elimine el directorio Carpeta con rmdir y rm -> rmdir o rm Carpeta
23. Cree tres directorios uno dentro del otro con mkdir -> mkdir -p 1/2/3
24. Cámbiese a los directorios creados para confirma -> cd 1, cd 2 y cd 3
25. Retroceda con los directorios especiales .. y confirme -> cd ../, cd ../, cd ../
26. Cree tres directorios mas con mkdir -> mkdir A/B/C
27. Vaya directamente a C/ con cd -> cd A/B/C
28. Dirijase al directorio 3/ usando los ../ cuando sea posible -> cd ../../../1/2/3/
29. Identifique su posición actual -> pwd
30. Cree un archivo oculto y vacío con el comando touch -> touch .nombre
31. Actualice la base de datos del comando locate -> updatedb
32. Localice el archivo que creo oculto usando locate -> locate .nombre
33. Pruebe buscando el archivo con el nombre parcial -> lcoate .nomb
34. Practique crear mas de un archivo con touch -> touch 1 2 3 4 5
35. Practique crear archivo de nombre con espacio -> touch “archivo nombre”
36. Practique crear archivo de nombre con espacio -> touch archivo\ nombre
37. Usar el man con los comandos, ej. touch -> man touch
38. Buscar opciones del comando touch on help -> touch - -help
39. Qué tecla presionamos para salir del man -> man man, luego “q”
40. Cómo buscamos la palabra “opciones” en el man -> man man, luego /opciones
41. Usando el “*” y [] liste todos en /etc que empiezan a,b,c -> ls [a-c]* o ls [abc]*
42. Liste todos en /etc/ que no empiezan con numeros -> ls [^0-9]*
43. Liste los archivos en /etc/ que empiezan con dos digitos -> ls [0-9][0-9]*
44. Ejecute dos comandos cd y pwd en un comando -> cd /usr/share/gnome ; pwd
45. Ejecute dos comandos y pause cd y pwd en un comando -> cd /usr/share/gnome ; delay 3 ; pwd
46. Probar el segundo plano ejecute ls despues de pausa 3 Sec -> (sleep 5; ls )&
47. Direccione la salida de un comando a un archivo -> ls /etc > archivo
48. Direccione a la entrada comando el contenido un archivo -> mail usuario < /etc/passwd
49. Despliegue el correo del usuario para ver el archivo -> mail, luego el numero del mensaje
50. Agregue contenido passwd al archivo dos veces -> cat /etc/passwd /etc/passwd>>archivo
51. Direccione los errores de un comando a un archivo -> ls /no-existe /etc 2> archivo.err
52. Despliegue el contenido de archivo.err -> cat archivo.err
53.Cuente el numero de usuario en el sistema con who y w -> who | wc -l y luego w | wc -l
54. Cuente las palabras en archivo -> cat archivo |wc -w
55. Cámbiese al terminal 3 y muestrelo en pantalla -> Ctrl+Alt+3 , luego ingrese, tty
29 Práctica Fundamentos
5. Cree tres archivos vacios con touch de nombre arch1,2 y 3 -> touch arch{1,2,3}
6. Vamos a crear una variable con el valor de estos archivos -> variable=”arch1 arch2 arch3”
7. Listemos por valor los archivos creados -> ls -l $variable
8. Eliminemos la variable del entorno -> unset variable
9. Comprobemos que fue desetablecida -> echo $variable
10. Qué hacemos para que variables esten en los shells hijos -> export variable
11. Luego comprobemos ejecutando un nuevo shell hijo -> xterm, luego echo $variable
12. Liste todas las variables en este shell actual -> env, export o echo $<tab><tab>
13. Despliegue y explique el valor de la variable PATH -> echo $PATH
14. Analice y despliegue el valor de su variable del prompt -> echo $PS1
15. Despliegue su archivo history con cat y con el comando -> history y cat ~/.bash_history
16. Usando “echo !!” podemos ver el ultimo comando -> echo !!
17. Podemos repetir un ultimo comando asi: ls -la /etc/ /home -> !ls
18. El comodín !$ se refiere al ultimo argumento -> ls -lt !$ = ls -lt /home
19. Comodín !^ refiere al primer argumento comando anterior -> ls -lt !^ = ls -lt /etc
20. El ^ reemplaza ocurrencias echo $BASS_COMLETION -> ^SS^SH^
21. Experimente con CTRL+A, CTRL+D y CTRL+E ->inicio, borrar y final de la linea
22. Qué hace cd ~/Trabajo/; for file in *;do ls -l $file ; done -> lista archs en directorio Trabajo
23. Qué hace ls -l $(find . -name arc*) -> busca y lista con ls -l encontrado
24. Qué hace vi `find /etc -name fstab` -> busca pasa como argumento a VI
25. Busque archivos de nombre passwd en /etc con find -> find /etc -name “passwd”
26. Busque todos archivos arch1,2,3 modif hace 10 dias -> find ~ -name 'arch*' -mtime 10
27. Cámbiese al directorio Trabajo y cree Arch1,2,3 -> touch Arch1,2,3
28. Busque todos los A/arch1,2,3 -> find ~/Trabajo/ -name “[Aa]rch[1-3]”
29. Otra manera de hacerlo es: ->find ~/Trabajo \( -name 'Arch*' -o -name 'arch*' \)
30. Cree archivos de nombre nombre1,2,3.conf -> touch nombre{1,2,3}.conf
31. Busque todos los archivos que no terminan en .conf -> find . -name '*[^.conf]'
32. Busque igual que la anterior pero con negacion ! -> find . ! -name '*.conf'
33. Busque archivos creados en los ultimos 5 dias -> find ~ -ctime -5
34. Busque solo los directorios en /etc -> find /etc -type d
35. Busque archivos mas nuevos que arch1 directorio actual -> find . -newer arch1
36. Cree un directorio de nombre DIR en el directorio actual -> mkdir DIR
37. Busque mas nuevos que Arch1 y copielo a DIR -> find . -newer arch1 -exec cp \{\} DIR/ \;
38. Busque los archivos con permisos de lectura-escritura -> find . -perm 644
39. Igual que arriba pero con permisos en formato r,w y x -> find . -perm u=rw,go=r
40. Busque los archivos creados en los ultimo 5 dias -> find . -ctime 5
41. Busque en su home con permisos 020 o 002 -> find ~ \( -perm -020 -o -perm -002 \)
42. Busque los archivos en su disco mayor de dos mega -> find / -type f -size +2048
43. Busque el archivo cuyo inode es 1428846 -> find / -inum 1428846
44. Busque archivo inode es del 1233 y cuestione listar -> find . -inum 1233 -ok ls -i \{\} \;
45. Busque los archivos del usuario miguel en /home -> find /home -user miguel
46. Busque archivos en /etc con 5 enlaces apuntando a el -> find /usr/bin -links 5
47. Busque archivos y su nombre es passwd en /etc -> find /etc -name passwd -a type f
30 Práctica Fundamentos
CAPITULO 8
1. Procesos y Scripting del Shell
1. Practicar redirección y tuberías Práctica 8 de Básico
1. Ejemplo de script del shell .-
INTRODUCCION A SHELL SCRIPT (De Hamlet Rivera hamlet”codigolibre.org)
INTRO DUCCION
Shell que en castellano significa "concha", es le interprete de comandos del sistema. Es una interfaz de
texto de altas prestaciones, que sirve principalmente para tres cosas: administrar el sistema operativo,
lanzar aplicaciones ( e interactuar con ellas ) y como entorno de programación. Gnu/Linux se administra
editando archivos de configuración. Como norma general, se encuentran en: /etc dentro de direcciones
específicos para cada aplicación . Los programas, se ejecutan escribiendo el nombre del ejecutable, si
este se encuentra en el path (ruta por defecto para los mismos, normalmente: /usr/bin) o escribiendo el
nombre del ejecutable precedido por: ./, desde el directorio donde se encuentren. Los programas de
Shell no necesitan compilarse.
El Shell los interpreta linea a linea. Se les suele conocer como Shells Scripts y pueden ser desde
sencillas ordenes hasta complejas series de instrucciones para el arranque del propio sistema operativo .
En general, tienen una sintaxis bastante clara y suponen un buen punto de partida para dar los primeros
pasos en el mundo de la programación.
Yo no soy ningún experto programador. De hecho, estoy aprendiendo ahora mismo. Es un mundo
apasionante, pero un poco oscuro a veces. Entonces, si no soy un especialista en el tema, ¿Como me
atrevo a escribir sobre ello? Bueno, tengo mis motivos. Verán, me considero un buen comunicador, y creo
que mi forma de contar las cosas puede ser útil a los demás. Ello me animan a preparar tutoriales como
estos, y a publicarlos .
Que es un shellscript
Un script es como se llama a un archivo (o conjunto de archivos) que contiene instrucciones (en nuestro
caso comandos de bash), y que necesita de un programa ayudante para ejecutarse (en nuestro caso la
propia terminal bash será el programa ayudante). Un script tiene cierta similitud con un programa, pero
existen diferencias. Generalmente, los programas están en lenguaje de máquina (la máquina lo entiende
directamente), mientras que los scripts son archivos que contienen en formato texto los comandos o
instrucciones que la aplicación ayudante ejecutará.
Aunque en principio esto puede resultar un tanto abstracto, vamos a verlo despacio y con ejemplos. Si no
has programado nunca, en este capítulo encontrarás el aprendizaje del shellscripting en bash como una
sencilla introducción a la programación, que te ayudará a comprender después los fundamentos de otros
lenguajes de programación. No te preocupes, porque lo vamos a explicar todo de forma sencilla y no te
quedará ninguna duda. Esta lección le permitirá dar un salto enorme en el aprovechamiento de su SO
GNU/Linux. Algunas partes del SO que no pertenecen al kernel están escritas en shellcript.
Los shells del sistema UNIX
bash (BourneAgain Shell): Versión GNU del shell estándar con características añadidas del shell C. Este
shell es el estándar de los sistemas LINUX.
Csh: El shell C de Berkeley.
Jsh: El shell de trabajo, una extensión del shell estándar.
31 Práctica Fundamentos
Ksh: El shell Korn.
Sh: El tradicional shell de Bourne.
Tcsh: Versión mejorada de csh.
Zsh: Versión mejorada de ksh.
Programación del shell
Para realizar un script, necesitamos:
1. Escribir los comandos del shell en un archivo de texto.
2. Hacer el archivo ejecutable (chmod +x archivo)
3. Escribir el nombre del archivo en la línea de comandos.
Cabe hacer algunas observaciones, si queremos utilizar otro tipo de shell para que interprete los
comandos debemos de colocar como primera línea en el archivo de texto el nombre del shell; por
ejemplo si nuestros comandos serán interpretados por el shell ksh, entonces colocamos como primera
línea: #!/bin/ksh.
Ahora que has practicado con bash y con el editor vim, ya estás preparado para crear tu primer script
bash. Si recordamos, un script era un archivo de texto plano con comandos; así que haz vim miscript.sh
y pon en él lo siguiente (lo explicaremos detenidamente a continuación):
#!/bin/bash
# Esta línea será ignorada
# Esta también
echo "Hola"
echo "Soy un script de shell."
Observemos la primera línea: #!/bin/bash. Esta línea es característica de todos los scripts en
Gnu/Linux. Tras #! indicamos la ruta a la aplicación ayudante, la que interpretará los comandos del
archivo. En nuestro caso es bash, así que ponemos ahí /bin/bash, que es la ruta hacia la aplicación bash.
Las dos últimas líneas son dos comandos, de los que luego serán ejecutados por bash. Como sabemos, el
comando echo saca por stdout o salida estandar (por defecto por pantalla) lo que le pasemos como
argumento, en este caso dos frases. Guardemos el script y salgamos de vim. Ahora lo ejecutaremos. La
primera forma de hacerlo es como sigue:
$ bash miscript.sh
Hola
Soy un script de shell
Como ves, todos los comandos del script han sido ejecutados. Aunque la forma más frecuente de ejecutar
scripts es, darles primero permisos de ejecución, como ya sabemos del capítulo de usuarios, grupos y
permisos:
$ chmod +x miscript.sh
$ ./miscript.sh
Hola
Soy un script de shell
Al darle permisos de ejecución, podemos ejecutar ahora nuestro script como si de un programa normal
se tratase. Esto es posible gracias a la primera línea del script, que hace que se llame inmediatamente a
la aplicación ayudante para procesar los comandos.
Veamos un segundo ejemplo, llamelo operación.sh
32 Práctica Fundamentos
#!/bin/bash
echo “soy Gnu/Cal”
echo “Tu me dices lo que quieres calcular y yo te doy el resultado”
echo “Introduce el primer valor”
read valor1
echo “ Introduce el operador. Puedes escoger entre: [ + / ]”
read operador
echo “ Introduce el segundo valor”
read valor2
echo “El resultado es:”
sleep 2
expr $valor1 $operador $valor2
sleep 1
echo “gracias por su tiempo!”
Procedamos a ejecutarlo $ chmod +x operación.sh
$ ./operacion.sh
Las tres primeras lineas son, por así decirlo, de presentación. En la cuarta linea hay un read, llamado
valor1. Es una variable, que va a introducir desde el teclado el usuario. Después, es necesario saber que
operación se quiere realizar (suma, resta o división). Para ello hay un nuevo read, llamado “operador”
para que el usuario pueda escoger. Después, tenemos el segundo valor de la operación llamado “valor2”.
El comando “sleep” lo único que hace es
esperar un poco de tiempo para que de la sensación de que el programa esta pensando poco antes de dar
el resultado. La operación matemática propiamente dicha se realiza con el comando es: expr. Como
veremos más tarde, hay otras formas de programar una calculadora.
Veamos ahora otro ejemplo. Se llama: juego.sh, y es el típico juego de preguntas y respuestas.
Solo tiene dos preguntas, pero es suficiente para ver como funciona. Está construido, sobre la estructura
if fi. El programa conoce la respuesta correcta y evalúa la respuesta del usuario. Si
acierta una pregunta se lo dice y pasa con la siguiente pregunta. Si acierta todas las preguntas le
da el titulo de “magister del universo”.
#!/bin/bash
clear
echo "Bienvenidos a GnuJuego."
sleep 2
echo "Soy el típico juego de preguntas y respuestas."
sleep 2
echo "Si aciertas todas las preguntas, te concedere el titulo de magister del universo."
echo "¿Como se llama el fundador del proyecto Gnu: stallan, torvalds o MIT ? "
read respuesta1
if [ $respuesta1 = stallman ]
then
echo "Respuesta correcta."
else
echo "Lo siento, la respuesta correcta es: Richard Stallman."
fi
sleep 2
echo "Pasemos a la siguiente pregunta. ¿Qué célebre filosofo Griego tuvo por discípulo
a Alejandro Magno, platón, aristoteles o zenon?"
read respuesta2
33 Práctica Fundamentos
if test $respuesta2 = aristoteles
then
echo "respuesta correcta."
else
echo "Lo siento, la respuesta correcta es: Aristoteles."
fi
if test $respuesta1 = stallman
test $respuesta2 = aristoteles
then
echo "Eres un pequeño magister del universo."
fi
Como puede apreciarse, la estructura if fi, y la estructura case hacen cosas bastante similares.
Llevan a cabo una acción en función de un valor del usuario. En general, case se considera
una evolución de if fi, ya que permite el mismo resultado, escribiendo menos código. Sin embargo, el uso
de if fi es perfectamente correcto. La evaluación de las condiciones se realiza mediante el comando test.
Este, comprueba si la variable es igual al valor que le hayamos indicado. Por supuesto, test puede hacer
muchas más cosas, como comparar si un número es mayor o menor que otro, etc. Al finál del script, se
evalúan dos variables a la vez. Es necesario escribirlas en dos lineas diferentes.
Veamos otro ejemplo:
calc2.sh
#!/bin/bash
#Script disenado para simular una caluladora que multiplica la tabla de un numero introducido desde
el 1 hasta el 12
#Hecho por Hamlet Rivera <riverham@gmail.com>
max=12
while true
clear
do
#MENU DE OPCIONES#
echo n "
|===========================|
| MENU DE OPCIONES |
||
| 1. Ver la tabla de un numero introducido |
| 2. Salir del programa |
||
Elija su opcion... "
read op
case $op in
1)
echo " "
echo n "Introduzca el numero que desea multiplicar "
read num
echo " Imprimiendo los resultados"
echo " "
i=0
while [ $i lt $max ]
34 Práctica Fundamentos
do
i=`expr $i + 1`
result=`expr $num \* $i`
echo "$num * $i = $result"
done
sleep 5
clear
;;
2) exit;;
*) echo "***ERROR, NO HA ELEGIDO UNA OPCION VALIDA***"
sleep 3
clear
;;
esac
done
#!/bin/bash
#Script disenado para buscar un archivo introducido seguido por la ruta
#de busqueda, ademas muestra quien es el dueno, a que grupo pertenece y cuales
#son sus permisos, asi como su fecha de creacion
#Hecho por Hamlet Rivera <riverham@gmail.com>
#set x
clear
echo n " Escriba el nombre del archivo:_ "
read archivo
echo " "
echo "Escriba la ruta en la ruta en la que desea que se "
echo n " haga la busqueda empezando con la barra:_ "
read ruta
comprueba=`cd $ruta 2>error1.txt`
if test $? eq 0
then
i= `find $ruta name $archivo `
else
echo " La ruta $ruta no existe"
rm rf error1.txt
exit
fi
if [ a $archivo ]
then
dueno=`ls l $archivo`
echo " "
echo ""
echo "El archivo buscado es"
echo ""
echo " "
echo " $dueno "
echo " "
else
echo " "
echo "**ERROR** archivo <<<..$archivo..>>> no se encuentra en $ruta ... "
35 Práctica Fundamentos
echo " "
fi
CAPITULO 9
Práctica de VIM .- Básico Práctica 12
36 Práctica Fundamentos