1 Programación de Sistemas Operativos Prof.: Héctor Abarca
2 Intérprete de Comandos (Shell) Prof.: Héctor Abarca
3 ¿QUÉ ES UNA SHELL? Un shell o intérprete de comandos es el proceso encargado de traducir los comandos que los usuarios introducen, a instrucciones que el sistema operativo entiende. Es el programa que se encuentra entre el sistema operativo y el usuario, el cual nos hace la vida más fácil.
4 ¿QUÉ ES UNA SHELL? Todo usuario que quiera profundizar en un sistema Unix/linux tendrá más tarde ó más temprano que familiarizarse con el shell de su sistema, el cual se convertirá en una herramienta imprescindible en la administración diaria del sistema, tanto por su potencia como versatilidad.
5 ¿QUÉ ES UNA SHELL? Las órdenes emitidas al intérprete de comandos sirven para: Administrar procesos Manejar la E/S Administrar el almacenamiento secundario Gestionar la memoria principal Acceder al sistema de ficheros Proteger el sistema Trabajar con redes
6 TIPOS DE SHELL Existen varios intérpretes, cada uno con sintaxis diferente, pero con igual filosofía. sh presente en todas las distribuciones UNIX. csh sintaxis un poca más sencilla que sh. bourne shell también usada en sh. bash multitud de operadores nuevos (sh++) tcsh recuerda últimos comandos echo $SHELL nos muestra cual es la shell que estamos usando.
7 HISTORIA SOBRE BASH El "Bourne Again shell" (Bash) fue creado para usarlo en el proyecto GNU. La intención fue que fuese el intérprete de comandos estandar en el sistema GNU. "Nació" oficialmente el domingo, 10 de enero de 1988. Brian Fox fué quien programó las primeras versiones de Bash y continuó actualizándolo hasta 1993. A principios de 1989, Chet Ramey empezó a ayudar a Brian y fué el responsable de muchos arreglos en el código y nuevas características.
8 CONFIGURAR EL ENTORNO Existen tres ficheros en el directorio de un usuario que tienen un significado especial para el bash shell. Estos ficheros permiten al usuario configurar el entorno de su cuenta automáticamente cuando entra en el sistema, cuando arranca un subshell o ejecutar comandos cuando sale del sistema.
9 CONFIGURAR EL ENTORNO .bash_profile es el mas importante de los tres. Es leido y los comandos incluidos en el, ejecutados, cada vez que el usuario entra en el sistema. Cualquier cambio hecho en este fichero no tendrá efecto hasta que salgamos y entremos en el sistema de nuevo. Una alternativa para no tener que salir del sistema es ejecutar el comando source.bash_profile
10 CONFIGURAR EL ENTORNO .bashrc es leído cuando el usuario arranca un subshell, escribiendo por ejemplo bash en la línea de comandos. Esto nos permite ejecutar diferentes comandos para la entrada al sistema o para la ejecución de un subshell.
11 CONFIGURAR EL ENTORNO .bash_logout es el fichero leido por bash, cuando salimos del sistema. Podemos definir, por ejemplo que se borren los ficheros temporales creados en nuestra ultima sesion o registrar el tiempo que hemos estado utilizando el sistema. Si.bash_logout no existe, ningún comando sera ejecutado a nuestra salida.
12 COMBINACIONES DE TECLAS [Ctrl]+[Alt]+[Del]: Shutdown. Apaga el sistema de forma organizada desde una terminal texto. [Ctrl]+[Alt]+[F1]: Cambia a la primera terminal de texto. [Ctrl]+[Alt]+[Fn]: Cambia a la terminal de texto numero n (n=1,...,6)
13 COMBINACIONES DE TECLAS [Ctrl]+[Alt]+[F7]: Cambia a la primera terminal X (si se esta usando alguna) Si estamos en XWindow y por alguna razón nuestro entorno gráfico dejase de funcionar, siempre podriamos entrar en una terminal texto con [Ctrl]+[Alt]+[Fn], terminar los procesos que esten dando problemas y volver a las X con [Ctrl]+[Alt]+[F7]. [Ctrl]+[Alt]+[Fn]: Cambia a la terminal X numero n (n=7,...,11)
14 COMBINACIONES DE TECLAS [Tab]: Autocompleta el nombre de un comando, fichero, directorio, programa, cuando trabajamos en una terminal texto. P.ej: Si vamos a usar el programa "programa_de_prueba", podemos escribir progr y pulsar [Tab], el sistema se encargará de rellenar el resto. [ArrowUp]: (Flecha arriba) Va editando la historia de comandos que hemos escrito anteriormente en terminal texto.[Enter] para ejecutar. [Shift][PgUp]: Scroll la salida de la terminal hacia arriba, en terminal texto.
15 COMBINACIONES DE TECLAS [Shift][PgDown: Scroll la salida de la terminal hacia abajo, en terminal texto. [Ctrl]+c: Termina el proceso actual. Cuando lo comenzamos sin & ([localhost]$ proceso) [Ctrl]+d: Termina la terminal actual. [Ctrl]+s: Para la transferencia a la terminal. [Ctrl]+z: Manda el proceso actual (comenzado sin &) a "Background". Lo mismo que si comenzamos el proceso con & ([localhost]$ proceso &).
16 LISTA DE COMANDOS MAS UTILIZADOS Para trabajar con la información del sistema Imprime el "ring buffer" del kernel. dmesg|more Información sobre el sistema operativo de la maquina. uname -a Devuelve la cantidad de tiempo trascurrido desde la ultima vez que se arranco el sistema, la cantidad de usuarios trabajando en el sistema y el load average (carga del sistema).7 uptime Devuelve el nombre de la máquina.7 hostname AcciónComando
17 LISTA DE COMANDOS MAS UTILIZADOS Información sobre los procesos del actual usuario, que se estan ejecutando. ps Información sobre el espacio ocupado por cada subdirectorio, comenzando en el directorio raiz /. du -bh /|more Información sobre todo los dispositivos montados en la máquina. df -h Información sobre la cantidad de memoria disponible y usada. free -tm Acción Comando Para trabajar con la información del sistema
18 LISTA DE COMANDOS MAS UTILIZADOS Información sobre las interrupciones en uso. cat /proc/interrupts Información sobre el microprocesador. cat /proc/cpuinfo Información sobre el uso de cpu y memoria de los procesos del sistema. top Información sobre todos los procesos que se estan ejecutando en la máquina. ps axu AcciónComando Para trabajar con la información del sistema
19 LISTA DE COMANDOS MAS UTILIZADOS Información sobre el usuario usuario. finger usuario Información sobre los modulos en uso. /sbin/lsmod Información sobre los sistemas de archivos que se pueden utilizar (compilados en el kernel). cat /proc/filesystems Información sobre dma en uso. cat /proc/dma AcciónComando Para trabajar con la información del sistema
20 LISTA DE COMANDOS MAS UTILIZADOS Información sobre el entorno de usuario actual. set|more Información sobre los ultimos usuarios que han usado el sistema. last Información sobre UID, GID y GROUPS del usuario usuario id usuario Información sobre los usuarios usando el sistema. who AcciónComando Para trabajar con la información del sistema
21 LISTA DE COMANDOS MAS UTILIZADOS Información valiosa sobre la conexión de red (Este comando tiene muchas posibilidades, ejecutar man netstat netstat Información sobre los distintos dispositivos de red /sbin/ifconfig Tabla de enrutamiento de nuestro sistema. /sbin/route Para comprobar si tenemos contacto con la máquina maquina (maquina nombre o IP) ping maquina AcciónComando Para trabajar con la información del sistema
22 LISTA DE COMANDOS MAS UTILIZADOS Para la administración Borra la cuenta de usuario usuario. /usr/sbin/userdel usuario Registra y crea una cuenta de usuario. /usr/sbin/adduser usuario Te conviertes en administrador(root) despues de introducir la clave de acceso. Ideal para realizar alguna tarea de administración sin necesidad de salir del sistema y entrar de nuevo como root. su AcciónComando
23 LISTA DE COMANDOS MAS UTILIZADOS Para la administración Muestra los grupos registrados en el sistema. more /etc/group Muestra el fichero de claves del sistema. (Si no se usa shadow password) more /etc/passwd Borra un grupo. /usr/sbin/groupdel grupo Crea un nuevo grupo. /usr/sbin/groupadd grupo Cambia la clave de acceso para el usuario actual. Root puede cambiar la clave de cualquier usuario passwd usuario passwd AcciónComando
24 LISTA DE COMANDOS MAS UTILIZADOS Para la administración Cambia el nombre de fichero1 a fichero2 mv fichero1 fichero2 Borra el contenido completo (ficheros/subdirectorios) de directorio rm -R directorio Borra fichero rm fichero Copia fichero1 como fichero2 cp fichero1 fichero2 Cambia los permisos de ficheros/directorios chmod permisos fichero/directorio AcciónComando
25 LISTA DE COMANDOS MAS UTILIZADOS Para la administración Apaga el sistema (hay que hacerlo como root). shutdown -t3 -h now Reinicializa el sistema (hay que hacerlo como root). shutdown -t3 -r now Borra un subdirectorio rmdir directorio Crea un subdirectorio mkdir directorio AcciónComando