El intérprete de comandos

Anuncio
FIB Primavera 03
Introducción a los Sistemas Operativos
El intérprete de comandos
1. Proceso de boot del sistema: inicialización
2. Intérprete de comandos
Bibliografía
Sebastián Sánchez
UNIX y LINUX guía práctica
Tanembaum
Operating Systems. Design and implementation.
Chap. 1: Introduction
Chap. 2.1: Introduction to processes
Vahalia
UNIX Internals: the New Frontiers
Chap. 4.9: Process Groups and Terminal Management
Introducció als Sistemes Operatius
Marisa Gil
1
FIB Primavera 03
INTRODUCCIÓN
Proceso de boot del sistema
disco de sistema
MEMORIA
bootstrap
lee el 1er sector
del disco del
drive 0 y lo copia
en memoria
(bootstrap)
carga el SO
y salta a él
SO
ejecuta la rutina main():
inicializa el sistema
(hardware,vars,config...)
“construye” el 1er proceso
y lo pone a ejecutar
init
lanza un programa
getty por terminal
getty
...
getty
...
Introducció als Sistemes Operatius
Marisa Gil
2
FIB Primavera 03
INTRODUCCIÓN
Inicio de la sesión
K
INT
SO
despierta
Poner en marcha
el terminal
getty
ejecuta
login
comprueba
/etc/passwd
ejecuta
shell
al acabar la
sesión, se
vuelve a la
espera
Introducció als Sistemes Operatius
$
sale el “prompt”:
ya se puede trabajar
Marisa Gil
3
FIB Primavera 03
INTRODUCCIÓN
El intérprete de comandos
• Actúa de interlocutor entre el SO y el usuario interpretando los comandos:
(dibujo extraído de “An overview of shells”, HP-UX)
docum.doc
línea de
comando
comando
interpretado
shell
El usuario
teclea el comando
print docum.doc
Introducció als Sistemes Operatius
SO
El SO
ejecuta el
comando
El shell
interpreta
el comando
imprimir (“\docum.doc”)
Marisa Gil
4
FIB Primavera 03
INTRODUCCIÓN
El intérprete de comandos
• Actúa de interlocutor entre el SO y el usuario interpretando los comandos:
(dibujo extraído de “An overview of shells”, HP-UX)
comando
interpretado
línea de
comando
ls chap*
El usuario
teclea el comando
Introducció als Sistemes Operatius
shell
El shell
interpreta
el comando
Marisa Gil
lschap1
chap2
chap3
chap4
chap5
SO
El SO
ejecuta el
comando
5
FIB Primavera 03
INTRODUCCIÓN
Características del intérprete de comandos
• Interactivo
• Amigable (iconos lenguaje natural,...)
• Informativo
> cp
usage: cp [-fhip] [--] source_file destination_file
or: cp [-fhip] [--] source_file ... destination_directory
or: cp [-fhip] [-R | -r] [--]
[source_file | source_directory] ... destin
• Lenguaje regular (mantener la sintaxis entre comandos)
cp [ -fip ] source_file target_file
ln [ -fns ] source_file [ target ]
Introducció als Sistemes Operatius
Marisa Gil
6
FIB Primavera 03
INTRODUCCIÓN
Clasificación de comandos
• Acceso y manejo de ficheros: edit, print, backup, type, sort, dir, del, cd, ...
• Ejecución de programas: run, compiladores, ensambladores, cargadores, ...
• Informativos y modificativos de datos de sistema: date, who, show, id, ...
• Utilidades (ayudas): mail, talk, write, ...
Introducció als Sistemes Operatius
Marisa Gil
7
FIB Primavera 03
INTRODUCCIÓN
Ejecución de comandos
esperar
comando
comando
externo
/usr/bin/ls
comando
interno cd
ejecutar
comando
ejecutar
programa
esperar
ejecutar
comando
Introducció als Sistemes Operatius
Marisa Gil
exit
8
FIB Primavera 03
INTRODUCCIÓN
El intérprete de comandos en UNIX
• Se llama genéricamente shell (recubre el SO como una “cáscara”)
• Hay diferentes programas shell en UNIX, que se distinguen en algunas opciones,
características, lenguaje de programación que interpretan, etc.
• Los más clásicos y conocidos:
- sh (Bourne shell) que fue el primero
- csh (C shell, porque utiliza un lenguaje muy similar a C)
• Otros shells: ksh (Korn shell), zsh (intenta adivinar un comando cuando nos
equivocamos en el nombre), bash (Basic shell, de Linux).
• Nosotros trabajaremos con tcsh que es una versión de csh.
Introducció als Sistemes Operatius
Marisa Gil
9
FIB Primavera 03
EL SHELL
El tcsh
Siempre que se crea un nuevo tcsh se ejecuta el programa .tcshrc (o .cshrc)
Para acabar la ejecución de cualquier shell (tcsh, csh, sh, ksh...): exit o ^D
Si se trata del inicio de una sesión, además se ejecuta el fichero .login
INICIO SESIÓN
FIN SESIÓN
.login
.(t)cshrc
logout/exit/^D
fin shell
Lanzamiento de
nuevos shells
.(t)cshrc
exit/^D
...
Introducció als Sistemes Operatius
Marisa Gil
10
FIB Primavera 03
INTRODUCCIÓN
Variables del shell
• Variables de entorno
• Tienen nombres conocidos por el sistema
• mantienen el control del entorno
• se heredan en la sesión
>printenv
HOME=/home2/users/professors/marisa
SHELL=/usr/local/bin/tcsh
USER=marisa
LOGNAME=marisa
PATH=/usr/bin:/usr/local/bin:...:/home2/users/p
rofessors/marisa:.
...
• Variables locales
• Definidas por el usuario
• no se heredan
>set nombre=mio
>set
.....
nombre mio
.....
>csh
$ set nombre=tuyo
$ set
...
nombre tuyo
....
$exit
>set
.....
nombre mio
....
>
Introducció als Sistemes Operatius
Marisa Gil
11
FIB Primavera 03
EL SHELL
Algunas variables de interés
• Para personalizar tu propio entorno de trabajo has de tener en cuenta:
- Las modificaciones en el fichero .login sólo se ejecutarán en el inicio de
sesión
- Las modificaciones en el fichero .(t)cshrc se ejecutarán en cada nuevo
tcsh
- Las modificaciones hechas on-line, se pierden al salir del shell
Actualiza tu fichero .cshrc
• history
• alias: cambia el nombre de algún comando para que te sea más familiar, o
acorta la ejecución de comandos con opciones largas
• prompt
• path: incluye en el path el directorio actual (.) y otros directorios que quieras
(por ejemplo, si tienes tu propio directorio bin con los ejecutables que construyas).
• Haz otras pruebas con los comandos que quieras.
Introducció als Sistemes Operatius
Marisa Gil
12
Descargar