Post on 16-Jul-2022
Felipe Cervantes Ruiz
Sistema Operativo de Uso Libre
. Felipe Cervantes Ruiz
Felipe Cervantes Ruiz
¿Qué es Linux?
• Sistema Operativo real (multitarea/multiusuario), que emula la
funcionalidad del S.O. Unix. (no es Unix)
• Cumple con las especificaciones POSIX de la IEEE y las
especificaciones de Single Unix del Open Group.
• Implementa funcionalidades que se pueden encontrar en cualquier
Unix de última generación como: multitarea real, memoria virtual,
librerias compartidas, carga bajo demanda, administrador de memoria
propio y protocolo de redes TCP/IP.
• Originalmente diseñado para trabajar en procesadores x86 de 32 bits
(mínimo 386), ha sido portado a otras arquitecturas como: Compaq
Alpha AXP, Sun SPARC and UltraSPARC, Motorola 68000, PowerPC,
ARM,Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64 and
DEC VAX
Felipe Cervantes Ruiz
. Felipe Cervantes Ruiz
Historia de Linux
• Linux fue el desarrollo de un estudiante finlandes de 23 años llamado
Linus Torvalds, a finales de agosto de 1991.
• Se baso en el S.O. Minix, que fue escrito por el Dr. Andrew Tannebaum
el cual se distribuía gratuitamente a los estudiantes de Informática.
• Se interesó en proporcionar un S.O mejor que Minix y que pudiera
correr en las recien llegadas x386.
• El 5 de octubre de 1991Linus presento al mundo la versión 0.02 de su
sistema operativo, la primera versión funcional de Linux y comenzó su
difusión bajo la licencia GNU-GPL.
• Actualmente la última versión de Linux es la 2.6 y cuenta actualmente
con millones de usuarios en todo el mundo.
Felipe Cervantes Ruiz
¿Qué es el kernel?
El kernel es el programa que se carga en el instante del arranque y
que proporciona una interfaz entre los programas de nivel de usuario
y el hardware.
Aplicaciones
Shell
Kernel
H/W
Felipe Cervantes Ruiz
¿Qué es el kernel?
- Es abierto (a modificar)
- Vincula procesos contareas programadas,localiza recursos,
gestiona memoria y comunicación con el hardware.
-Shell : Traductor de comandos
¿Qué es una Distribución?
- Kernel más herramientas de trabajo
-Todas las distribuciones tienen en común el Kernel
Felipe Cervantes Ruiz
Principales Distribuciones
http://www.redhat.com/
http://linux.corel.com/
http://www.debian.org/
http://www.mandrake.com/
http://www.slackware.com/
http://www.suse.com/
Felipe Cervantes Ruiz
¿Porqué usar RedHat?
• Esta basado en kernel actual, modulable y adecuado para trabajar con
hardware estándar del mercado.
• Incluye la herramienta RedHat Packet Manager (RPM), que es de libre
distribución y que se ha vuelto prácticamente un estándar de la mayoría
de distribuciones Linux.
• Disponibilidad de los códigos fuentes usados para generar todos los
paquetes incluidos en esta distribución.
• Documentación abundante, tanto en el mismo CD como en Internet.
• Cumple con estándares universalmente aceptados como el FSSTND.
• Fácil instalación, actualización, operación y mantenimiento.
Felipe Cervantes Ruiz
Requisitos mínimos de hardware del sistema:
Para PC basada en Intel x86 o compatible estas son las especificaciones
mínimas con las que debe contar el sistema:
• Procesador Pentium o superior (Pentium I, II, III, IV, AMD K3).
• Memoria RAM de 64 MB, preferentemente 128 MB.
• Espacio en disco duro 3 GB.
• Cualquier tarjeta de video VGA.
• Unidad de CD-ROM o tarjeta de red.
• Unidad de disquette.
Felipe Cervantes Ruiz
Selección del modo y medio de instalación• El modo de instalación es seleccionado al inicio del sistema, por
defecto se usa el modo gráfico.
• El medio de instalación se puede seleccionar entre las siguientes
opciones:
• CD-ROM: se instala desde un CD-ROM local, es el método usado
por defecto y el más sencillo de todos.
• Hard-Disk: se instala desde un Disco Duro local, es similar al
método anterior.
• SMB: permite una instalación de red local desde un servidor NT, o
un Linux/Unix con Samba.
• NFS: permite una instalación de red local desde un servidor
Linux/Unix.
• FTP: permite una instalación de red local o Internet, desde
cualquier servidor que cumpla con el protocolo FTP.
. Felipe Cervantes Ruiz
Felipe Cervantes Ruiz
Definición de usuarios y de sus contraseñas
• Una buena contraseña debe contener números y letras.
• Debe tener cuanto menos 6 caracteres de longitud.
• Soporta hasta 128 caracteres basado en MD5 y Shadow, Kerberos NIS
LDAP
• No debe ser nuestra fecha de cumpleaños, número de teléfono,
número de DNI, número de RUC o cualquier otro dato que pueda ser
público.
• Debe de ser cambiada con cierta regularidad,
• Autenticación de la contraseña : /etc/shadow
Felipe Cervantes Ruiz
Log in en Linux
A través de 02 maneras:
• Localmente : Login <nombre_usuario>.
• Consola serial
- Via modem
- Emulador de terminal
. Via Red : Wired o Wireless, Via telnet o via ssh
Log out en Linux
. Via exit o logout
. Felipe Cervantes Ruiz
Iniciando sesion en consolas virtuales
Para poder ingresar a una consola virtual sistema necesitamos digitar:
• CTRl + ALT + F1. (hasta 06 sesione virtuales )
• Para cambio entre sesiones: ALT + F1 hasta ALT + F6
• Para cerrar sesión exit o logout
Para regresar a un ambiente gráfico ALT + F7
Felipe Cervantes Ruiz
Introducción al uso del sistema como usuario
Antes que nada para poder ingresar al sistema necesitamos:
• Un nombre de usuario o “login”.
• Una contraseña, clave o “password”.
• Un programa de comunicaciones (emulador de terminal o cliente
telnet, etc.).
Lo primero que veremos será el mensaje del sistema solicitándonos
nuestros datos.
El lugar donde iremos en primer lugar será nuestro directorio casa
“home”.
Felipe Cervantes Ruiz
Mensaje de logueo
Nivel de privilegio
de trabajo
Ultima vez que
se ingresó al sistema
Usuario(login)
Nombre del
host
Directorio actual
Ejemplo de un login a un S.O. Linux
. Felipe Cervantes Ruiz
Comandos Básicos del ShellEntre los principales comandos básicos a los que podemos acceder a través
de un shell tenemos:
ls Muestra el contenido de un directorio.
dir Muestra el contenido de un directorio sin colores
cat Muestra el contenido de un archivo.
pwd Muestra la ruta actual del directorio donde nos encontramos.
date Muestra la fecha del sistema.
whoami Muestra el nombre de la cuenta que maneja la sesión
who Muestra quienes están conectados actualmente al sistema.
clear Borra pantalla
tty Permite conocer el número de consola en la que estamos
uname Permite conocer información del Kernel
reboot Reinicia el sistema .
Shutdown reinicia el sistema
Felipe Cervantes Ruiz
Comandos Básicos del ShellEntre los principales comandos básicos a los que podemos acceder a través
de un shell tenemos:
mkdir Cre adirectorios
cd Ingresa a un directorio
rm borra un directorioarchivo
rmdir borra directorios vacios
mv Renombra o mueve un archivo o directorio.
cp Copia un archivo o directorio.
pwd Muestra la ruta actual del directorio donde nos encontramos.
date Muestra la fecha del sistema.
mail Permite el envío de correo interno dentro del sistema.
man Permite solicitar ayuda sobre los comandos del sistema.
talk Permite establecer un diálogo en línea con otro usuario.
touch crea archivos
Felipe Cervantes Ruiz
Comandos Básicos del ShellEntre los principales comandos básicos a los que podemos acceder a través
de un shell tenemos:
du permite concoer el espacio utilizado por un directorio
df permite conocer el espacio utilizado en disco
Felipe Cervantes Ruiz
Comandos lsLista los archivos y directorios encontrados en el sistema de archivos.
ls [opciones] [lista-archivos]
Las principales opciones son:
-a Lista todos los archivos y directorios incluyendo los ocultos.
-l Lista los archivos y directorios en un formato largo.
-t Ordena por fecha y hora de última modificación.
-u Ordena por fecha y hora de último acceso.
-c Ordena por fecha y hora del último cambio de i-node.
-r Invierte el orden de clasificación.
-i Muestra en la primera columna el i-node del archivo o directorio.
[lista-archivos] Puede contener comodines como * y ?
Felipe Cervantes Ruiz
Comandos catEste comando concatena archivos. También se suele usar para mostrar el
contenido de un archivo.
cat [opciones] [lista-archivos]
Las principales opciones son:
-b Numera las líneas que no estén en blanco comenzando por la 1.
-n Numera empezando por 1 todas las líneas de salida.
-E Muestra un $ después del final de cada línea.
- -help Muestra un mensaje de ayuda.
Felipe Cervantes Ruiz
Comandos pwdNos informa sobre cuál es el directorio actual o de trabajo
pwd
Comandos dateMuestra la fecha y la hora del sistema y si es el super-usuario (root),
establece la fecha y hora.
date
Felipe Cervantes Ruiz
Comandos whoInforma de quién está actualmente en el sistema y proporciona información
de otro usuario y de entrada al sistema.
who [opciones]
who am i
Las principales opciones son:
-u Informa de los usuarios que están actualmente en el sistema.
-T Indica si el terminal permite que los usuarios envíen mensajes al
mismo.
-H Imprime la línea de cabecera.
-q Muestra una lista de usuarios separada por espacios y una cuenta.
Felipe Cervantes Ruiz
Comandos mailEs un sistema de envío/recepción de correo, el cual tiene una sitaxis que se
remonta a la época de ed.
mail [opciones] [-s subject] [-c cc-addr] [-b bc-addr] to-addr
Las principales opciones son:
-i Ignore las señales de interrupción del tty.
-I Fuerza a correr en el modo interactivo cuando la entrada no es un
terminal.
-n Inhibe la lectura del /etc/mail.rc hasta el inicio del sistema.
-N Inhibe que se muestre en pantalla los encabezados de los mensajes
cuando se lee o edita correo en un folder de correo.
-v Modo verbose (muestra todas las salidas por la terminal).
Felipe Cervantes Ruiz
Comandos man
Formatea y muestra en pantalla las páginas del manual en línea.
man [-m system] [-C config_file] comando
Las principales opciones son:
-m Indica la ubicación de páginas de ayuda alternativa.
-C Especifica el archivo a usar para la configuración de la ayuda, por
defecto este archivo es /etc/man.config
Felipe Cervantes Ruiz
Comandos ed
Es un editor de texto plano muy sencillo y compatible con todas las
versiones de Unix/Linus
ed [- -s -x] [-p indicador] nombre-archivo
Las principales opciones son:
- Suprime los mensajes producidos por los comandos e, r, w, q, y !
-s Suprime diagnósticos.
-x Pregunta qué clave de cifrado se va a utilizar en las operaciones de
lectura y escritura subsiguientes.
-p Permite que especifique su propia secuencia de indicador.
Felipe Cervantes Ruiz
Comandos rm
Borra archivos o directorios.
rm [opciones] [lista-archivos]
Las principales opciones son:
-r El borrado se hace en forma “recursiva” en un directorio.
-i Especifica modo interactivo. Se pide confirmación antes de borrar.
-f Especifica que se active el modo forzado.
-v Activa modo verbose (se muestran todos los mensajes).
- - Indica el final de todas las opciones.
Felipe Cervantes Ruiz
Comandos mv
Mueve (o renombra) ficheros o directorios.
mv [opciones] [arch1/dir1] [arch/dir2]
Las principales opciones son:
-f Modo forzado.
-i Modo interactivo.
arch1 Archivo origen.
arch2 Archivo destino.
dir1 Directorio origen.
dir2 Directorio destino.
Felipe Cervantes Ruiz
Comandos cp
Copia archivos. Se puede copiar de un archivo a otro o de una lista de
archivos a un directorio.
cp [opciones] arch-origen arch-destino
Las principales opciones son:
-a Copia manteniendo los atributos de los ficheros.
-d Copia enlaces simbólicos como tales.
-f Modo forzado.
-i Modo interactivo.
-r Modo recursivo.
-v Modo verbose (muestra todas las acciones realizadas).
Felipe Cervantes Ruiz
Comandos mkdirLista los archivos y directorios encontrados en el sistema de archivos.
mkdir [-m modalidad] [-p nombresdir] directorio
Las principales opciones son:
-m Establece los permisos del directorio al momento de su creación.
-p Crea los directorios superiores que no existan.
Comandos talkPermite conversar en línea con otros usuarios conectados al sistema.
talk persona [ttyname]
persona Loguin del usuario con el que entablaremos conversación.
ttyname Nombre del terminal con el cual nos comunicaremos.
Felipe Cervantes Ruiz
Felipe Cervantes Ruiz
El árbol del sistema (RedHat)
/
dev
bin
var
usr
sbin
proc
mnt
lib
etcopt
root
tmp
lost+foud
home
boot
Felipe Cervantes Ruiz
Jerarquía de directorios
• El directorio de mayor nivel en el FS es /
• Luego de efectuado el proceso de carga del S.O., el mismo procede a
montar el directorio raíz desde donde se tendrá acceso a todos los
elementos del sistema.
• El contenido del árbol de directorios del RH, es el mostrado
anteriormente, es conveniente explorarlo para poder darnos cuenta del
orden que existe y familiarizarnos con él.
Felipe Cervantes Ruiz
El árbol del sistema (RedHat)
/bin Contiene los archivos ejecutables que todos los usuarios
pueden ejecutar, como los shell, listado de archivos, etc.
/dev Contiene la lista de todos los archivos de dispositivo de
soportados por el sistema
/home Contiene los directorios de datos de todos los usarios del
sistema.
/lost+found Contiene los archivos perdidos o con errores producto de una
caida del sistema o un proceso.
/opt Contiene extensiones al sistema, este directorio es creado por
el entorno KDE..
/root Es el directorio inicial del super-usuario.
/tmp Contiene archivos temporales.
Felipe Cervantes Ruiz
El árbol del sistema (RedHat)
/var Contiene archivos que son usados por el sistema para la
administración de los demonios.
/boot Contiene los archivos de los kernels booteables.
/etc Contiene los archivos de configuración del sistema.
/lib Contiene las librerías compartidas del sistema.
/mnt Directorio en el cual se recomienda montar las nuevas unidades
que se incorporan al sistema.
/proc Directorio donde podemos encontrar información sobre el
estado del hardware de nuestro computador.
/sbin Contiene los archivos ejecutables que sólo el super-usuario
puede ejecutar.
/usr Directorio usado para contener software que puede ser utilizado
por los usuarios del sistema
Felipe Cervantes Ruiz
Archivos y directoriosTodo en los S.O. tipo Unix son archivos.
• El sistema de archivos es una de las fortalezas de diseño de los Unix.
• Un archivo es una secuencia de bytes.
• El sistema no impone estructura alguna a los archivos, ni asigna
significado a su contenido.
• La forma en que se accede a cualquier dispositivo es como si este fuera
un archivo.
• Un directorio es un caso especial de archivo que contiene la lista que
relaciona un nombre con un i-nodos
• Los i-nodos son la verdadera denominación de los archivos en el
sistema.
• La estructura de i-nodos es flexible y permite manejar sistemas de
archivos de 16, 32, 64 bits o más, sin comprometer la arquitectura del
sistema de archivos.
Felipe Cervantes Ruiz
Propiedades de un Fichero
• Un archivo es una secuencia de bytes sin una estructura
predeterminada y es la unidad de información sobre la que actúa el
Sistema Operativo.
• Características:. Entre las más saltantes Tamaño y propietario
• El sistema operativo reconoce el uso de un archivo por colores
azul >>>>>>> directorios
rojo >>>>>>> archivos comprimidos
verde >>>>>>> scripts
blanco >>>>>>> texto
rosado >>>>>>> gráficos
amarillo >>>>>>> dispositivos
celeste >>>>>>> enlaces
Felipe Cervantes Ruiz
Conceptos básicos sobre archivos
• Un archivo es una secuencia de bytes sin una estructura
predeterminada y es la unidad de información sobre la que actúa el
Sistema Operativo.
• Cuando se estaba diseñando Unix, antes de que incluso se le diera el
nombre, la principal discusión era sobre la estructura del sistema de
archivos, su consistencia, simplicidad y facilidad de uso.
• El sistema operativo cuenta con abundantes herramientas para el
manejo de archivos, ya que la única entidad que existe para el S.O.,
son los archivos.
• Existen varios tipos de archivos: normal, directorios, enlaces, de
dispositivo (tipo carácter o tipo bloque), semaforo, memoria
compartida.
Felipe Cervantes Ruiz
Contenido de los archivos
• El formato de un archivo depende de los programas que lo usan.
• Puesto que existen muchos programas, existen muchos tipos de
archivos.
• Algunos comando adicionales nos permiten trabajar con archivos son
los siguientes:
file, nos muestra el tipo de un archivo.
hexdump, muestra el contenido binario de un archivo.
wc, cuenta los bytes, palabras y líneas de un archivo.
cmp, compara el contenido de dos archivos.
find, busca un archivo en un directorio determinado.
whereis, ayuda a ubicar programas en el sistema.
Felipe Cervantes Ruiz
Directorios y nombres de archivos
• Todos los archivos en un File System tienen un nombre sin
ambigüedad.
• Cuando un programa entrega una salida, este supone un directorio
por defecto que es el directorio actual del usuario. Este directorio se
puede mostrar usando el programa “pwd”.
• El directorio de trabajo es un atributo de un proceso. Como tal puede
ser heredado por los procesos hijos.
• La principal misión de los directorios es permitirnos organizar mejor la
información en un File System.
• Los nombres de archivos y directorios son independientes del FS que
estemos utilizando, gracias a la arquitectura de i-nodos de los Unix.
Felipe Cervantes Ruiz
i-nodos
• El nombre interno del sistema para un archivo es su i-nodo, que
incluye la información administrativa del archivo.
• Existe tan sólo un i-nodo por archivo.
• Los nombres de archivos no son más que enlaces (link) en un archivo
de tipo directorio entre el nombre que nosotros manejamos y el i-nodo.
• Para que un archivo exista dentro de un FS, debe de tener al menos
un enlace o link en algún directorio. Cuando el número de enlaces es
0, el archivo ha sido borrado totalmente del sistema.
• El sistema de archivos de Linux es de 32 bits, pero no existe ninguna
limitación en cuanto a diseño para volverlo de 64 bits, tan sólo se
tendría que recompilar un nuevo kernel.
• El comando ln nos permite manejar la creación de enlaces (o links).
Felipe Cervantes Ruiz
Dispositivos (un caso especial de archivos).
• Los dispositivos son un archivo de tipo especial que sirve para
intercambiar información entre un buffer y el dispositivo físico.
• La principal ventaja de “ver” un dispositivo como archivo radica en la
simplificación de la programación, se puede utilizar código de otros
programas para manejar cualquier nuevo dispositivo. Por ejemplo para
el comando “cp”, el hecho de escribir en una unidad de red SCSI o IDE
es transparente para el, tan sólo escribe en un archivo /dev/hda o
/dev/sda.
• El i-nodo de un dispositivo contiene un tipo (de carácter o de bloque) y
un par de números llamados número mayor y número menor. El
número mayor identifica el tipo de dispositivo, mientras el número
menor distingue casos diferentes del dispositivo.
• El comando para crear archivos de dispositivo es MAKEDEV
Felipe Cervantes Ruiz
Permisos$ ls -l
-rw-rw-r-- 1 renzo renzo 6835 jul 27 18:23 user04.res
drwxrwxr-x 2 renzo renzo 4096 jul 27 23:00 winbug95
-rwxr-xr-x 1 renzo renzo 459828 nov 19 1999 xmibquery
Permisos
Tipo de
Archivo
Número
de links
Propietario
Grupo
Longitud Fecha Nombre
Felipe Cervantes Ruiz
Tipo de Archivo
- Archivo normal, sin tipo.
d Directorio.
l Enlace.
c Dispositivo de carácter.
b Dispositivo de bloque.
s Semáforo.
m Memoria compartida.
Permisosr Lectura.
w Escritura.
x Ejecución.
Felipe Cervantes Ruiz
-rwxr-xr-x 1 renzo renzo 459828 nov 19 1999 xmibquery
-rwxr-xr-x
Propietario
Grupo
Otros
Tipo de
archivo
Felipe Cervantes Ruiz
Comandos de atributos de archivos.
Los siguientes comandos permiten cambiar la información administrativa
de los i-nodos para los archivos del FS.
chmod Permite establecer nuevos atributos a un fichero.
chown Permite cambiar el propietario de un fichero.
chgrp Permite cambiar el grupo al que pertenece el fichero.
Felipe Cervantes Ruiz
$ ls -l /dev/tty?
crw------- 1 renzo renzo 4, 0 may 5 1998 tty0
crw--w---- 1 renzo tty 4, 1 ene 12 08:21 tty1
crw------- 1 root root 4, 2 ene 5 00:29 tty2
crw------- 1 root root 4, 3 ene 5 00:29 tty3
crw------- 1 root root 4, 4 ene 5 00:29 tty4
crw------- 1 root root 4, 5 ene 5 00:29 tty5
crw------- 1 root root 4, 6 ene 5 00:29 tty6
crw------- 1 renzo renzo 4, 7 may 5 1998 tty7
crw------- 1 root tty 4, 8 may 5 1998 tty8
crw------- 1 root tty 4, 9 dic 9 1998 tty9
$ ls -l /dev/hda?
brw-rw---- 1 root disk 3, 1 may 5 1998 hda1
brw-rw---- 1 root disk 3, 2 may 5 1998 hda2
brw-rw---- 1 root disk 3, 3 may 5 1998 hda3
brw-rw---- 1 root disk 3, 4 may 5 1998 hda4
brw-rw---- 1 root disk 3, 5 may 5 1998 hda5
brw-rw---- 1 root disk 3, 6 may 5 1998 hda6
brw-rw---- 1 root disk 3, 7 may 5 1998 hda7
brw-rw---- 1 root disk 3, 8 may 5 1998 hda8
brw-rw---- 1 root disk 3, 9 may 5 1998 hda9
Felipe Cervantes Ruiz
Felipe Cervantes Ruiz
Estructura de la línea de comandos
• El shell es el programa que interpreta las peticiones del usuario y le
permite lanzar otros procesos a ejecución.
• Existen varias clases de shell (sh, ash, bash, csh, etc).
• Los comandos se entran al shell a través del prompt y estos pueden
contener parámetros.
• Puede introducirse varios comandos en la misma línea usando el
carácter “;”
• Puede redireccionarse la salida de un comando usando el carácter “>”
• Puede redireccionarse la entrada a un comando usando el carácter “<“
• Puede encaminarse la salida de un comando para que sea la entrada
de otro comando usando el carácter “|”
• Pueden lanzarse comandos en paralelo usando e carácter “&”, esto es
comandos o programas que corran simultáneamente.
Felipe Cervantes Ruiz
Metacaracteres
• También conocidos como comodines, son caracteres que tienen
una connotación especial para el shell.
• Las comillas (“...”) sirven para indicar una cadena que debe ser
tratada como un todo y permite el procesamiento de carcteres
especiales.
• El caracter asterisco (*) sirve para indicar un grupo de caracteres.
• El caracter interrogación (?) sirve para indicar un caracter
cualquiera.
• El caracter número (#) sirve para indicar un comentario, todo lo
que sigue en una línea de comando después de este es ignorado.
• Las comillas simples invertidas (`..`) sirve para indicarle al shell
que procese los comando dentro de ellas.
Felipe Cervantes Ruiz
Creación de nuevos comandos
• Los scripts(programas) de shell son archivos de texto plano que
contienen comandos del sistema o programas desarrollados por el
usuario unidos por la sintaxis propia del shell.
• Todo script de shell puede servir para extender la funcionalidad del
sistema como si de un nuevo comando se tratara.
• Para poder ejecutarlos, activamos el atributo “x” (ejecutable), conel comando: “chmod +x comando”. Además la primera línea
de nuestro script debe ser: “#!/bin/bash”.
• La ruta por defecto que tiene el script al momento de ser lanzado,
es la del proceso que lo inició.
• Los scripts al ser lanzados son un proceso y como tal también
pueden correr en segundo plano.
Felipe Cervantes Ruiz
Variables del shell
• El shell tiene variables, como las tienen los lenguajes de
programación.
• Las variables del shell pueden crearse, accesarse y modificarse
dinámicamente.
• Existen variables que tienen un significado especial para el shell, y
cuyos nombres están resarvados, por ejemplo: PATH, HOME,
PS1, PS2, TERM, estas variables especiales, reciben el nombre
de “ variables de entorno”.
• Todas las variables del shell son del tipo cadena (o string).
• Es posible asignar la salida de un comando a una variable del
shell.
Felipe Cervantes Ruiz
Tópicos adicionales sobre redireccionamiento de E/S
• El error estándar se definió para que los mensajes aparecieran en
la terminal
• Todo programa tiene tres archivos estándar, creados cuando éste
comienza a ejecutarse y numerados con enteros pequeños
llamados “descriptores de archivo”.
• La entrada estándar es 0, la salida estándar es 1 y la salida de
error estándar es 2 y esta normalmente apuntando a 1.
• La redirección de la salida estándar, nos permite refinar nuestros
scripts de shell.
• Un ejemplo podría ser el siguiente comando:
time ls -l > ls.out 2>time.out
Felipe Cervantes Ruiz
Ejemplos de aplicación
• Diseñe un script para que nos informe del número de usuarios
conectados al sistema.
• Diseñe un script para generar reportes sobre el uso de memoria
de su computadora.
• Diseñe un script que le indique cuantas unidades tiene montadas
actualmente es su sistema.
• Diseñe un script que le informe sobre el estado de un proceso que
Ud., ha lanzado.
Felipe Cervantes Ruiz
Razones de tener un shell programable
• El shell es para cualquier fin práctico un lenguaje de
programación, en realidad el interpreta cada orden que le damos
como la instrucción de un programa.
• El shell hace algunas cosas como iterar, redireccionar E/S,
expandir metacaracteres, por lo que ningún programa necesita
hacer eso.
• La aplicación de estos recursos es uniforme en todos los
programas.
• La manera en que el sistema maneja los archivos ejecutables,
hace posible escribir scripts de shell de manera que se ejecuten
como programas compilados.
Felipe Cervantes Ruiz
Felipe Cervantes Ruiz
¿Qué es un filtro?
• Es un programa que permite efectuar un proceso de manipulación
de los datos de entrada y nos entrega el resultado de dicho acción
en su salida.
• Los filtros pueden ser estáticos o programables.
• La entrada por defecto para la mayoría de los filtros es la entrada
estándar (teclado)
• La salida por defecto para la mayoría de los filtros es la salida
estándar (pantalla).
• Los filtros permiten redireccionamiento de entrada/salida y
empipamiento.
Felipe Cervantes Ruiz
La familia grep
• Está constituida por los programas egrep, fgrep y grep.
• Son filtros que muestran las líneas de la entrada estándar que
concuerden con un patrón.
• Es un filtro no programable.
grep [opciones] patron | [-f archivo] archivo
- v Invierte el sentido de la concordancia.
- i Ignora la diferencia entre mayúsculas y minúsculas.
- f Obtiene el patrón de un fichero.
- V Muestra el número de versión de grep en la salida.
Felipe Cervantes Ruiz
Otros filtros
• Existen otros filtros no programables que nos pueden ser útiles
para nuestro trabajo rutinario.
sort Ordena la entrada estándar.
more Permite visualizar línea por línea un archivo.
less Igual que more, pero puedo regresar.
tail Muestra las últimas líneas de un archivo.
head Muestra las primeras líneas de un archivo.
wc Cuentas las líneas, palabras y caracteres de un archivo.
dd Vuelca el contenido de un fichero en otro.
uniq Elimina las líneas repetidas en un archivo ordenado.
Felipe Cervantes Ruiz
sort
Ordena líneas de un archivo de texto.
sort [OPTION]... [FILE]...
-k POS1[,POS2]
Comienza la clave de ordenación en la posición POS1 y
termina en POS2.
-b Ignora los espacios en blanco al inicio de la línea
-c Verifica si el archivo dado esta ordenado o no.
-d Considera sólo los caracteres de [a-z, A-Z, 0-9]
-g Compara de acuerdo al valor numérico general, implica -b
-r Invierta el resultado de la comparación.
Felipe Cervantes Ruiz
more
Filtro de archivos para visualización en terminales. Pagina texto una
pantalla a la vez.
more [-s] [-num] [file ...]
-num Especifica el número de líneas de la pantalla.
-s Reducir multiples líneas en blanco a una.
less
Filtro de archivos para visualización en terminales. Pagina texto una
pantalla a la vez al igual que more, pero permite desplazamiento en
ambos sentidos de la pantalla.
less [opciones] [file ...]
Felipe Cervantes Ruiz
tail
Filtro que muestra las últimas líneas de un archivo.
tail [opciones] [file ...]
-c Muestra los últimos “n” caracteres.
-n Muestra las últimas “n” líneas, por defecto es 10.
head
Filtro que muestra las primeras líneas de un archivo.
head [opciones] [file ...]
-c Muestra los últimos “n” caracteres.
-n Muestra las últimas “n” líneas, por defecto es 10.
Felipe Cervantes Ruiz
wc
Filtro que cuenta el número de bytes, palabras y líneas de un
archivo.
wc [opciones] [file ...]
-c Muestra el número de bytes contados.
-l Muestra el número de líneas contadas.
-L Muestra la longitud de la línea más larga.
-w Muestra el número de palabras contadas.
Felipe Cervantes Ruiz
dd
Filtro que copia un archivo de la entrada estándar a la salida
estándar por omisión, con un tamaño de bloque seleccionable por el
usuario.
dd [if=fichero][of=fichero]
if Lee desde fichero en lugar de la entrada estándar.
of Escribe en el fichero, en lugar de la entrada estándar.
uniq
Filtro que borra las líneas duplicadas de un archivo ordenado..
uniq [opciones][input [output]]
input Archivo de entrada en lugar de la entrada estándar.
output Archivo de salida en lugar de la salida estándar.
Felipe Cervantes Ruiz
El editor de flujo sed
Es un filtro programable, que permite efectuar trabajo de edición de
texto a un archivo de entrada y lo muestra en la salida estándar.
sed [-f script-file][fichero ...]
-f Permite especificar el archivo donde se encuentra el script
a efectuar por sed.
sed, cumple con la sintaxis de ed, así que los scripts, se deben
escribir respetando las reglas de ed.
s/old/new/f
Sutituir old por new, si f=g, reemplazar todas las ocurrencias; f=p,
mostrarlas; f=w file, escribir en file.
Felipe Cervantes Ruiz
Felipe Cervantes Ruiz
¿Qué es el kernel?
El kernel es el programa que se carga en el instante del arranque y
que proporciona una interfaz entre los programas de nivel de usuario
y el hardware.
Aplicaciones
Shell
Kernel
H/W
Felipe Cervantes Ruiz
¿Qué tareas cumple el kernel?
• La administración del procesador o procesadores del sistema.
• La administración de los procesos.
• La administración de los discos y los sistemas de archivos.
• La administración de la memoria.
• La administración de las interfases de red.
• La administración de los dispositivos de E/S, llamese terminales,
impresoras, tarjetas de sonido, etc.
Felipe Cervantes Ruiz
El kernel de Linux.
• Oficialmente, Linux es tan sólo el kernel. Lo demás, editores,
shells, compiladores, etc., constituyen la distribución.
• Es decir existen muchas distribuciones como por ejemplo RedHat,
Slackware, Caldera, Corel, etc.; pero un solo kernel para todas.
• La última versión del kernel es la 2.6.
• La última versión del kernel se puede obtener en www.kernel.org
Felipe Cervantes Ruiz
Configurar el kernel de Linux
Para configurar el kernel de linux se deben de realizar las siguientes
tareas.• Descargar la nueva versión que se va a emplear (si es el caso).
• Desempaquetar la nueva versión en /usr/src
• Crear un enlace simbólico entre los nuevos fuentes y el directorio
/usr/src/linux.
• Entrar a través de la ruta /usr/src/linux y lanzar alguno de los tres
posibles métodos de configuración del kernel:
make config
make menuconfig
make xconfig
Felipe Cervantes Ruiz
Configurar el kernel de Linux (2)Las principales áreas de configuración del Linux son:
• Tipo de procesador.
• Nivel de madurez del código.
• Soporte de módulos.
• Discos Floppy, IDE u otros dispositivos de bloque.
• Opciones de red.
• Soporte para dispositivos SCSI
• Soporte a dispositivos de red
• Subsistema de RDSI
• Filesystems
• Dispositivos de carácter
• Sonido
• Opciones de investigación del kernel.
Felipe Cervantes Ruiz
Configurar el kernel de Linux (3)
Felipe Cervantes Ruiz
Construir el kernel de Linux
Luego de la configuración, sigue el trabajo de generar un nuevo
kernel con los parámetros previamente establecidos para realizar
esto se deben de proporcionar al sistema el siguiente conjunto de
órdenes:
make dep; make clean; make bzImage
Antes de proceder a instalar el kernel, si han declarado módulos,
estos deben de ser compilados a través del comando:
make modules
Felipe Cervantes Ruiz
Instalar el kernel
Luego de compilado por completo el kernel, este debe ser instalado
en nuestro sistema, para ello debemos de usar el comando:
make install
Para instalar los módulos compilados debemos de dar los siguientes
comandos:
make modules_install
Finalmente debemos de configurar nuestro lilo, para que podamos
regresar al kernel anterior, en caso de que existiera un problema con
el nuevo kernel compilado, para ello debemos editar el archivo
lilo.conf
Felipe Cervantes Ruiz
Recuperarse del fallo de un kernel
Es algo común que se produzcan errores durante las primeras
etapas de aprendizaje, para ello es conveniente siempre conservar
una copia del último kernel funcional en el directorio /boot y añadir en
el archivo lilo.conf, la opción de poder arrancar desde allí, un ejemplo
de lilo.conf de este tipo sería el siguiente:
Felipe Cervantes Ruiz
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux
image=/boot/vmlinuz-2.2.14-5.0
label=old
read-only
root=/dev/hda1
image=/boot/vmlinuz-2.2.16
label=linux
read-only
root=/dev/hda1
#cat /etc/lilo.conf :