Linux
-
Upload
carlos-mullisaca-choque -
Category
Documents
-
view
8 -
download
1
Transcript of Linux
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE CIENCIAS PURAS Y NATURALES
CARRERA DE INFORMATICA
SISTEMA OPERATIVO LINUX
Asignatura
Laboratorio de Computacion
(INF-113)
Carlos Mullisaca Choque
30 de agosto de 2007
2
Indice general
1. Caracterısticas principales 1
1.1. Distribuciones de Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Inicio de sesion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Salida del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Comandos basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5. Manejo de directorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. Manejo de archivos 7
2.1. Creacion de un archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1. Visualizacion del contenido de un archivo . . . . . . . . . . . . . . . 8
2.1.2. Copia de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.3. Remover o mover un archivo . . . . . . . . . . . . . . . . . . . . . . 9
2.1.4. Eliminar un archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2. Seguridad y proteccion de un archivo . . . . . . . . . . . . . . . . . . . . . 10
2.3. Montaje de un sistema de archivos . . . . . . . . . . . . . . . . . . . . . . 12
i
INDICE GENERAL
3. Programacion de comandos Shell 15
3.1. Filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2. Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.1. Evaluacion de variables . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4. Operaciones aritmeticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5. Estructura del Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.1. Estructuras de asignacion . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.2. Estructuras de seleccion . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.3. Estructuras de iteracion . . . . . . . . . . . . . . . . . . . . . . . . 22
4. Ejemplos Scripts del Shell 25
4.1. Script selecciona una frase . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2. Script identifica numero mayor . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3. Script genera serie de Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . 26
4.4. Script genera la sucesion de numeros de la progresion aritmetica . . . . . . 27
4.5. Script muestra un Menu de opciones . . . . . . . . . . . . . . . . . . . . . 28
ii
CAPITULO 1
Caracterısticas principales
Un sistema operativo es un programa que administra el hardware y el software de
una computadora para el usuario, el mismo que interactua con el sistema operativo a
traves de una interfaz de usuario que permite que el sistema operativo reciba e interprete
instrucciones enviadas por el.
Linux se diseno especificamente para computadoras personales basadas en Intel. Se
inicio como un proyecto personal de un estudiante de sistemas llamado Linus Torvalds en
la Universidad de Helsinki-Finlandia, el cual lo llamo Linux y en 1991 lanzo la version
0.11.
En esa epoca, los estudiantes utilizaban un programa llamado Minix, que contaba con
diferentes caracterısticas de UNIX, Minix fue creado por el profesor Andrew Tannebaum.
Linux es un sistema operativo disenado para ser flexible reflejando sus raıces en UNIX.
1
CAPITULO 1. CARACTERISTICAS PRINCIPALES
Esta flexibilidad le permite ser un sistema operativo accesible al usuario lo cual significa
que se puede configurar y programar el sistema para satisfacer las necesidades especıficas.
Linux, agrega dos caracterısticas:
multitarea y
multiusuario
Como sistema multitarea se puede pedir al sistema que realice varias tareas simultanea-
mente: Por ejemplo, se puede editar un archivo mientras esta imprimiendo otro.
Como sistema multiusuario, varios usuarios pueden conectarse al sistema al mismo
tiempo, interactuando todos con el sistema a traves de sus propias termınales.
Linux es uno uno de los sistemas operativos mas importantes, se baso en el sistema
operativo UNIX. Linux se compone de tres partes principales:
El kernel o nucleo del sistema es el programa base que dirige otros programas y se
encarga de administrar (gestionar) los recursos (hardware) de la computadora como
ser los discos duros, impresoras, lıneas de comunicacion, etc.
El File System o sistema de archivos organiza la manera como se almacena los
archivos en un dispositivo de almacenamiento, File System es la estructura para la or-
ganizacion de los datos, es el medio que permite almacenar la informacion (archivos,
directorios) de manera ordenada. Lo archivos son conjunto de informacion agrupados
e identificados por un nombre. La organizacion del sistema de archivos es jerarquica
o tambien denominado estructurado en forma de arbol.
2
Facultad de Ciencias Puras y Naturales - Carrera de Informatica
El Shell es un programa que atiende e interpreta las ordenes que el usuario describe.
El shell se encarga de convertir las ordenes en peticiones al kernel para realizar el
trabajo que se requiere.
Linux se caracteriza por su estructura jerarquica
/root
dev
tty3 lp console
boot usr
Juan Jose
bin
vi
etc
1.1. Distribuciones de Linux
Aunque solo hay una version estandar de Linux, distintas companias y grupos han
creado paquetes de linux y software de Linux en formas ligeramente diferentes. Algunas
de las versiones mas populares son:
Red Hat
OpenLinux
Suse
Debian
3
CAPITULO 1. CARACTERISTICAS PRINCIPALES
Slackware
Infomagic
LinuxPPC
TurboLinux
Mandrake
1.2. Inicio de sesion
A todo usuario de linux se le asigna un nombre de usuario ( cuenta) y una contrasena
(password). Esto por que linux esta orientado para tener varios usuarios utilizando el
sistema al mismo tiempo.
Para conseguir el acceso al sistema se tiene que realizar un inicio de sesion o conexion
(loggin in) para lo cual el usuario debe tener un nombre de usuario registrado en la
maquina.
Ej. Welcome to DLX V1.0(c).......
login: root
dlx :∼ ]
1.3. Salida del Sistema
Los comandos para para terminar una sesion o salir del sistema son:
exit solo finaliza la sesion.
shutdown -h now finaliza la sesion y apaga el equipo
4
Facultad de Ciencias Puras y Naturales - Carrera de Informatica
reboot finaliza la sesion y reinicia el sistema
1.4. Comandos basicos
clear limpia la pantalla
pwd muestra el directorio actual
ls permite desplegar el contenido de un directorio en orden alfabetico y en forma
resumida, sin hacer distincion entre archivos o directorios si existen y cuenta con las
siguientes Opciones:
-a Todo los archivos (incluso ocultos)
-l Listado largo
-C Listado alfabetico
-x Nombres por lınea o por columnas (por defecto)
-p Identifica directorios (por columnas)
1.5. Manejo de directorios
Un directorio es un archivo generico que contiene informacion sobre otros archivos y
de otros archivos; que se identifican a traves de un nombre:
/ Denota al directorio raız (root)
. Denota al directorio activo
.. Denota al directorio padre (es decir, padres del directorio activo)
5
CAPITULO 1. CARACTERISTICAS PRINCIPALES
Comandos para el manejo de directorios:
mkdir crea un nuevo directorio
rmdir elimina un directorio
cd cambia el directorio actual de trabajo
6
CAPITULO 2
Manejo de archivos
2.1. Creacion de un archivo
Uso del editor vi El editor vi es un editor de pantalla y es el mas universal de Linux,
se inicia rapidamente y tiene un consumo de memoria muy reducido.
Pasos para la edicion:
1. Escriba vi y presione < Enter >
2. Conmute a modo de entrada Oprima < a >
3. Introduzca el texto en el buffer
4. Pase a modo de comandos presionando < Esc >
7
CAPITULO 2. MANEJO DE ARCHIVOS
5. Guarde el buffer en archivo, escriba: w nomArchivo y oprima < Enter >
6. Salga de vi, escriba :q y presione < Enter >
Formas de abandonar o salir de vi:
:q Sale sin que se le hagan cambios al buffer, o sale una vez que este se ha modificado y
guardado en un archivo.
:q! Sale y abandona todos los cambios para el buffer, porque este ya se habıa guardado
en un archivo.
:wq Escribe el buffer en el archivo de trabajo y luego sale.
2.1.1. Visualizacion del contenido de un archivo
El despliegue del contenido de un archivo se puede obtener haciendo uso de una variedad
de comandos de los cuales se menciona solamente dos:
cat
more
Comando cat.-
Constituye un supercomando por que despliega el contenido de un archivo, permite crear,
combinar y concatenar el contenido de un archivo.Su formato es:
cat [opciones] nombre archivo
Comando more.-
Despliega el contenido de un archivo pantalla por pantalla, pidiendo confirmacion para
desplegar la siguiente pantalla. Su formato es:
8
Facultad de Ciencias Puras y Naturales - Carrera de Informatica
dlx: more [opciones] NombreArchivo
Opciones:
- d: despliega en la parte superior “SPACE BAR”para continuar, “ROBOUT ” (q)
para salir.
- c: causa que el despliegue sea continuo.
- i: provoca que se despliegue i lıneas sobre la pantalla.
Teclas utiles para el uso del comando more:
- q: para salir del comando
< RETURN >: despliega una lınea mas, despues que se detuvo.
< SPACE >: despliega otra pantalla.
2.1.2. Copia de archivos
El comando cp (copy)copia uno o mas archivos dentro de un mismo directorio, para copiar
un archivo de un directorio a otro es necesario tener el respectivo permiso, su formato es:
dlx: cp nomarchivo1 anomarchivo2
2.1.3. Remover o mover un archivo
Para renombrar o mover un archivo de un directorio a otro se usa el comando mv(move), se
puede tambien renombrar un archivo al interior de un mismo directorio. Estas operaciones
9
CAPITULO 2. MANEJO DE ARCHIVOS
solo pueden ser concretadas si se dipone del permiso correspondiente. Su formato es el
siguiente:
mv nombre1 nombre2
2.1.4. Eliminar un archivo
El comando rm elimina uno o mas archivos, y se concreta siempre y cuando el archivo(s)
el permiso correspondiente. Su formato general es:
dlx : rm [opciones] NombreArchivo(s)
Las opciones son:
-f: sin confirmacion
-i con confirmacion
-r borrado recursivo del directorio
2.2. Seguridad y proteccion de un archivo
Todos los archivos y directorios se caracterizan por tener proteccion con relacion al dueno,
al grupo de usuarios y a los demas usuarios del sistema respecto a la lectura, escritura y a
la ejecucion del archivo. De manera generica estas protecciones solo podran ser cambiadas
por el administrador del sistema o el dueno del archivo.
Codigos de proteccion
Para efectuar las protecciones se hace uso de codigos de proteccion, que pueden ser tanto
numericos como alfabeticos, mas concretamente para la proteccion en lectura, escritura,
10
Facultad de Ciencias Puras y Naturales - Carrera de Informatica
se asignan los siguientes codigos:
r −−−−−−− > 4
w −−−−−−− > 2
x−−−−−−− > 1
Se utiliza el codigo 0 para especificar que no se tiene permiso para nada, es decir ni para
lectura, ni para escritura y menos para ejecucion.
Ejemplos
a) r ∧ w −−−−−− > 6 (lectura y ejecucion)
Este codigo se utiliza para denotar que se tiene permiso para lectura y escritura, el
codigo 6 resulta de la suma de los permisos.
b) w ∧ x−−−−−− > 3 (escritura y ejecucion)
Este codigo denota que se tiene permiso para escritura y ejecucion, la suma de los
permisos resulta 3.
c) r ∧ w ∧ x−−−−−− > 7 (lectura, escritura y ejecucion)
Este codigo denota que se tiene permiso para lectura, escritura y ejecucion, y la
suma resulta 7.
11
CAPITULO 2. MANEJO DE ARCHIVOS
Comando chmod
El comando chmodcambia la proteccion de los archivos o directorios, para lo cual se debe
definir a priori el codigo de proteccion a asignar mediante la suma de los valores, su formato
general es:
chmod [dgo]NombreArchivo
done:
d:hace referencia al dueno de la cuenta en el cual se encuentra el archivo.
g:hace referencia al grupo de usuario en el cual esta el dueno.
o:hace referencia a los otros usuarios del sistema.
2.3. Montaje de un sistema de archivos
Comando mountpermite adicionar o enlazar una unidad de disco al sistema de
archivos en un determinado directorio.
Su formato es el siguiente:
mount [dispositivo] nombre de directorio
Dispositivo Es el nombre de dispositivo que se va a montar, generalmente los nom-
bres de los dispositivos se encuentran en el directorio /dev.
Nombre de directorio es el directorio en el cual se va colocar o anadir el nuevo
sistema de archivos.
Ejemplo:
mount -t vfat/dev/fd0 /fd
Monta el sistema de archivos de una unidad de disco o floppy disk al directorio fd.
12
Facultad de Ciencias Puras y Naturales - Carrera de Informatica
Argumentos:
-t especifica que tipo de sistema de archivo que esta siendo montado.
-v Proporciona informacion adicional acerca de lo que se esta tratando de hacer.
-w El sistema de archivo se montara con permiso de lectura y escritura.
-r El sistema de archivo se montara con permiso de solo lectura.
Comando ps muestra todos los procesos y subprocesos que se estan ejecutando en el
sistema.
13
CAPITULO 2. MANEJO DE ARCHIVOS
14
CAPITULO 3
Programacion de comandos Shell
Un programa del shell combina comandos linux de nanera que se pueda realizar una tarea
especıfica., se puede definir variables y asignarle valores, lo mismo que definir variables en
un archivo del script y tener un usuario que ingrese valores en forma interactiva cuando se
ejecute el script. El shell ofrece estructuras de repeticion y estructuras de control condi-
cional que repiten comandos de linux o toman decisiones sobre los comandos que se desee
ejecutar. Es decir, que el shell ofrece al usuario un lenguaje algorıtmico estructurado y al
mismo tiempo le permite crear nuevos comandos en base a los ya existentes. El Shell lee
los comandos ya sea desde la terminal o bien desde un archivo y comienza a ejecutar un
programa apropiado.
Un script del shell es un archivo de texto que contiene comandos Linux que se ingresa
utilizando cualquier editor estandar, como vi,ed,emacs, o cualquier otro editor de texto.
15
CAPITULO 3. PROGRAMACION DE COMANDOS SHELL
3.1. Filtros
Para poder crear los scripts del Shell ademas del uso de estructuras secuenciales, de control,
de iteracion y de otras estructuras que posee, es posible hacer uso de filtros entre los cuales
podemos citar:
a) > permite filtrar el resultado del proceso de entrada que ocupa el primer miembro
de la expresion sea colocado en el segundo miembro, anulando cualquier contenido
anterior, tiene el siguiente formato:
comando de entrada ¿archivo de salida
b) À tiene el mismo efecto que >, excepto que si el archivo ya existıa su contenido no
es eliminado, sino se produce la anexion al mismo
c) < permite efectuar el filtraje de tal modo que el segundo miembro de la expresion
se constituye ahora en la entrada mientras que que el primer miembro ejecuta un
comando especifico en base a la entrada proporcionada
d) : Se encarga de efectuar el filtraje de manera directa entre los comandos que se
encuentran en el primer y segundo miembro,
3.2. Comandos
echo este comando toma el argumento que se le pasa y lo escribe a la salida
estandar(monitor), su sintaxis es:
echo [-n] cadena
16
Facultad de Ciencias Puras y Naturales - Carrera de Informatica
Argumento:
-n , por lo general, echo pone una nueva lınea a continuacion de toda salida, y esta
opcion lo suprime.
read este comando toma la siguiente lınea de entrada y le asigna a una variable,
hace se detenga y espere la entrada desde teclado
test la funcion del comando test es la de verificar el cumplimiento o no de una condi-
cion, de modo que coloca el valor 0 si la condicion es satisfecha y 1 en caso contrario.
Opciones para comparar numeros:
-eq Igual
-ne No igual
-ge Mayor o igual que
-gt Mayor que
-le Menor o igual que
-lt Menor que
Opciones para usar el comando test con archivos:
17
CAPITULO 3. PROGRAMACION DE COMANDOS SHELL
-f Exitoso si existe el archivo y es regular
-d Exitoso si el archivo es un directorio
-r Exitoso si existe el archivo y es de lectura
-s Exitoso si existe el archivo y no esta vacio
-w Exitoso si existe el archivo y se puede escribir en el
-x Exitoso si existe el archivo y es ejecutable
3.3. Variables
Una variable es una referencia a un lugar que contiene datos que se pueden cambiar, en
los programas shell se puede definir variables y asignarle valores. Una variable se define
en un shell la primera vez que se usa el nombre de la variable, y las reglas para usar una
variable son:
El nombre de una variable puede contener cualquier conjunto de caracteres al-
fabeticos.
El nombre puede incluir un numero
El nombre de una variable no puede incluir caracteres de signo de exclamacion,
ampersand o espacio.
El nombre de una variable no puede incluir mas de una palabra.
Las variables son usados en operaciones de entrada y salida. El comando read permite que
el usuario ingrese en forma interactiva un valor para una variable.
18
Facultad de Ciencias Puras y Naturales - Carrera de Informatica
3.3.1. Evaluacion de variables
La asignacion de un valor a una variable se realiza mediante el operador de asignacion
(=), cualquier conjunto de caracteres se puede asignar a una variable, ejemplo:
$ saludo=“hola”
El signo pesos ($) es un operador que usa un nombre de variable como referncia del valor de
la misma, evaluandola. La evaluacion recupera el valor de una variable. Por consiguiente,
cada vez que aparezca el signo pesos ($) antes del nombre de la variable, este se reemplaza
con el valor de la variable, ejemplo:
$ echo $saludo hola
3.4. Operaciones aritmeticas
Las operaciones con valores aritmeticas son realizadas mediante el comando let, este co-
mando puede comparar dos valores o realizar operaciones de suma, resta, multiplicacion
y division. Su sintaxis consta de la palabra clave let seguida por dos valores numericos,
separados por un operador aritmetico o relacional, ejemplo:
$ let valor1 operador valor2
La sintaxis para incluir operaciones de asignacion en el comando let es:
$ let “resul = 3 + 5 ”
En las siguientes tablas se presenta los operadores aritmeticos y relacionales:
19
CAPITULO 3. PROGRAMACION DE COMANDOS SHELL
Operadores aritmetico Funcion
+ Suma
− Resta
∗ Multiplicacion
/ Division
% Modulo
Operadores relacionales Funcion
> Mayor que
< Menor que
>= Mayor que o igual a
<= Menor que o igual a
== Igual
! = No es igual a
3.5. Estructura del Shell
3.5.1. Estructuras de asignacion
Se efectuan haciendo uso del sımbolo “ = ”. En el caso de asignacion de contenidos se
utiliza $ precediendo a la variable.
nombre = jose
echo $jose
20
Facultad de Ciencias Puras y Naturales - Carrera de Informatica
3.5.2. Estructuras de seleccion
a) Estructura de seleccion simple:
if lista de comandos1
then lista de comandos2
else lista de comandos3
fi
Donde else es opcional, la lista de comandos1 expresa el cumplimiento de una condi-
cion, cuya respuesta es 0 (cero) si la condicion es cierta y cualquier otro valor si
la misma es falsa. por otra parte la lista de comandos1 puede hacer uso o no del
parametro test con sus respectivas opciones. Sin embargo en la lista de comandos
puede que no este presente el parametro test
b) Estructura de seleccion multiple:
case palabra in
cadena1) lista de comandos1;;
cadena2) Lista de comandos2;;
..............................
cadena k) lista de comandosk;;
esac
Mediante esta estructura el valor de la palabra busca la ocurrencia de cadena1), si
es igual a la cadena1) ejecuta la lista de comandos1 y termina el comando, si no es
igual a cadena1, verifica si el valor de palabra es igual a cadena2) y ejecuta la lista
de comandos2, y ası sucesivamente realiza el mismo procedimiento.
21
CAPITULO 3. PROGRAMACION DE COMANDOS SHELL
Toda lista de comandos termina con ;; ademas que cada cadena debe concluir con
su delimitador ), y puede hacer uso de * o de ?.
3.5.3. Estructuras de iteracion
1. for Ejecuta la instruccion mientras el nombre se encuentra como parte de la lista,
tiene el siguiente formato:
for nombre en lista
do
lista de comandos
done
2. while Ejecuta la iteracion mientras la condicion expresada en lista de comandos1
devuelve el valor 0, y su formato es:
while lista de comandos1
do
lista de comandos2
done
3. until Ejecuta la iteracion mientras el resultado de la ejecucion de lista de coman-
dos1 sea diferente de 0.
until lista de comandos1
22
Facultad de Ciencias Puras y Naturales - Carrera de Informatica
do
lista de comandos2
done
23
CAPITULO 3. PROGRAMACION DE COMANDOS SHELL
24
CAPITULO 4
Ejemplos Scripts del Shell
4.1. Script selecciona una frase
case $1 in
a*) echo "El mundo es peque~no";;
b*) echo "Ancho y ajeno";;
c*) echo "El oto~no llega";;
*) echo "No existe mensaje";;
esac
4.2. Script identifica numero mayor
#Programa que permite ver si dos numeros son mayores uno del otro
echo Introduce primer numero
25
CAPITULO 4. EJEMPLOS SCRIPTS DEL SHELL
read num1
echo Introduzca el segundo numero
read num2
if test $num1 -gt $num2
then
echo el numero $num1 es mayor que $num2
else
if test $num2 -gt $num1
then
echo El numero $num2 es mayor que $num1
else
echo Los numeros $num1 es igual a $num2
fi
fi
4.3. Script genera serie de Fibonacci
echo introduce numero
read num1
echo serie de fibonacci
let "a = 0"
let "b = 1"
let "i = 2"
26
Facultad de Ciencias Puras y Naturales - Carrera de Informatica
let "aux = 0"
echo $a
echo $b
while test $i -le $num1
do
let "aux = a + b"
echo $aux
let "a = b"
let "b = aux"
let "i = i + 1"
done
4.4. Script genera la sucesion de numeros de la progresion aritmetica
let "cont = 0"
let "res = 0"
clear
echo Genera la progresion aritmetica
echo "a1, a1+ d, a1+2d, a1+3d, a1+4d,..."
echo -n Numero de terminos:
read n
echo -n Valor de a1:
read a
27
CAPITULO 4. EJEMPLOS SCRIPTS DEL SHELL
echo -n Valor de d:
read d
echo los terminos de la susecion son:
while test $cont -lt $n
do
let "res = a + (cont * d)"
let "cont = cont+1"
echo $cont : $res
done
4.5. Script muestra un Menu de opciones
#programa que muestra un menu con opciones de listar un directorio,
#crear un directorio, copia todos los archivos de un directorio a otro
#elimina los archivos de un determinado directorio.
while [ true ]
do clear
echo MENU
echo 1.- listar un determinado directorio.
echo 2.- Realizar el listado largo de un determinado directorio.
echo 3.- crear un directorio.
echo 4.- Copiar todos los archivo de un directorio a otro directorio.
echo 5.- Eliminar los archivos de un determinado directorio
28
Facultad de Ciencias Puras y Naturales - Carrera de Informatica
echo 6.- Salir
echo ELIJA SU OPCION: read op
case $op in
1 ) echo Introduzca el nombre del directorio
read d
ls $d ;;
2 ) echo Introduzca el nombre del directorio
read d
ls $d -l ;;
3 ) echo Nombre del directorio a crear
read nom
mkdir $nom ;;
4 ) echo Nombre del directorio origen
read d1
echo Nombre del directorio destino
read d2
cp $d1/* $d2 ;;
5 ) echo Ruta de los archivos a borrar
read d
rm $d/* ;;
6 ) echo Fin del Programa
exit 0 ;;
29
CAPITULO 4. EJEMPLOS SCRIPTS DEL SHELL
* ) echo Elija solo las opciones del 1 al 6;;
esac
done
30