Professional Documents
Culture Documents
Sistemas Operativos
Febrero de 2009
GSyC - 2009
c 2009 GSyC Algunos derechos reservados. Este trabajo se distribuye bajo la licencia Creative Commons Attribution Share-Alike disponible en http://creativecommons.org/licenses/by-sa/2.1/es
GSyC - 2009
Contenidos
1 2 3 4 5 6 7
Introducci on Funcionamiento b asico Operaciones con cheros Sustituciones Redirecciones y ltros Shell scripts Comandos u tiles
GSyC - 2009
Introducci on
Contenidos
1 2 3 4 5 6 7
Introducci on Funcionamiento b asico Operaciones con cheros Sustituciones Redirecciones y ltros Shell scripts Comandos u tiles
GSyC - 2009
Introducci on
Interfaz gr aco
Supone un gran avance Excelente para usuarios no t ecnicos, o para tareas que hagamos de vez en cuando Uso exhaustivo del rat on Mucho menos eciente No son est andar Unix Exigen tener gr acos (mucho m as lento...) Unix dispone de interfaz gr aco desde los 80. X-Window. Sobre las X-Window va el gestor de ventanas y el escritorio (actualmente KDE o Gnome)
GSyC - 2009
Introducci on
Interfaz de texto
Casi todos los sistemas operativos tienen un interfaz de texto, para usarlo (por ejemplo) cuando el sistema gr aco no funciona M etodo de entrada: teclado Para usar un interfaz de texto:
Terminal X (xterm, gnome-terminal, konsole. . . ) Consola: terminales virtuales (Ctrl+Alt+F1 . . . Ctrl+Alt+F6) (vuelta a la sesi on X con Ctrl+Alt+F7) Para cerrar una sesi on de texto: exit.
GSyC - 2009
Introducci on
Qu e es una shell?
Shells m as habituales:
command.com, cmd.exe (MS-DOS, MS-Windows) sh o Bourne Shell csh (C SHell) tcsh (Trustedi C Shell) ksh (Korn SHell) bash (Bourne Again SHell)
GSyC - 2009
Funcionamiento b asico
Contenidos
1 2 3 4 5 6 7
Introducci on Funcionamiento b asico Operaciones con cheros Sustituciones Redirecciones y ltros Shell scripts Comandos u tiles
GSyC - 2009
Funcionamiento b asico
1 2 3 4 5 6
Muestra el prompt Lee una l nea La analiza Ejecuta los comandos de la l nea Espera a que terminen Vuelve al punto 1
GSyC - 2009
Funcionamiento b asico
Comandos, argumentos
Cada l nea que ejecute la shell consiste en una lista de comandos separados por ;. Cada comando est a compuesto de un nombre, seguido opcionalmente de argumentos $ comando1 ; comando2 arg1 arg2 ; ... Ejemplo de comando: echo $ echo Hola, mundo $ echo First line ; echo ; echo Third line
GSyC - 2009
10
Funcionamiento b asico
P aginas de manual
Para consultar una p agina de manual: man comando (dentro de man: q para salir) Para buscar p aginas relacionadas con algo: apropos palabra Las p aginas de manual se organizan por secciones (man 1 write, man 2 write)
1 2 3 4 5 6 7 8
Comandos de usuario Llamadas al sistema Llamadas a funciones de biblioteca Ficheros especiales Ficheros, formatos y protocolos Juegos Convenciones, miscel anea Comandos de administrador y privilegiadas
Funcionamiento b asico
Control de la ejecuci on
Normalmente, la shell espera a que termine la ejecuci on de un comando antes de leer la siguiente l nea y empezar con el siguiente. Pero hay 3 excepciones: Si se postpone el car acter & al comando a ejecutar, ese comando se ejecuta as ncronamente, en background. La shell no espera a que termine y sigue aceptando l neas y ejecutando otros comandos, simult aneamente a la ejecuci on de este. Podemos interrumpir un proceso antes de que termine con la combinaci on de teclas ^C (control + C) Podemos parar temporalmente la ejecuci on de un proceso con la combinaci on de teclas ^Z (control + Z)
GSyC - 2009
12
Funcionamiento b asico
Se puede consultar la lista de procesos en ejecuci on (en segundo plano, o parados) con la orden jobs, y cambiar el estado de un proceso con bg o fg
GSyC - 2009
13
Funcionamiento b asico
Control de trabajos
cespedes@blas:~$ sleep 3600 & [1] 5954 cespedes@blas:~$ cat (control+Z) [2]+ Stopped cat cespedes@blas:~$ jobs [1]- Running sleep 3600 & [2]+ Stopped cat cespedes@blas:~$ kill %2 [2]+ Terminated cat cespedes@blas:~$ jobs [1]+ Running sleep 3600 & cespedes@blas:~$ fg sleep 3600 (control+Z) [1]+ Stopped sleep 3600 cespedes@blas:~$ bg [1]+ sleep 3600 & cespedes@blas:~$
GSyC - 2009 14
Contenidos
1 2 3 4 5 6 7
Introducci on Funcionamiento b asico Operaciones con cheros Sustituciones Redirecciones y ltros Shell scripts Comandos u tiles
GSyC - 2009
15
Arbol de directorios
Todos los cheros est an estructurados en un arbol jer arquico La ra z del arbol se representa con / Cualquier nodo del arbol se puede representar como su camino desde la ra z, con todos los nombres de los nodos intermedios (directorios) separados por / /usr/share/doc/base-files/copyright Tambi en se pede representar de manera relativa, como el camino que hay que seguir desde el directorio actual base-files/copyright Directorios con signicado especial:
.: directorio actual ..: directorio padre
GSyC - 2009
16
Al iniciar la sesi on, estamos normalmente en el directorio de inicio, tambi en llamado $HOME o simplemente HOME. El directorio $HOME suele ser /home/login. pwd cd ls Indica cu al es el directorio actual Cambia el directorio actual por otro Sin argumentos: cambia al directorio $HOME Muestra el contenido de un directorio ls -a: Muestra tambi en cheros ocultos ls -l: Muestra informaci on detallada Muestra el contenido de un chero
cat
GSyC - 2009
17
mv ln rm
Crea un chero (vac o) Crea un directorio Borra un directorio Copia un chero cp origen destino cp orig1 orig2 ...directorio Renombra y/o mueve un chero Crea un enlace de un chero a otro Borra un chero rm -r: Borra un directorio y su contenido
GSyC - 2009
18
Permisos de cheros
Regulan el acceso por parte de los usuarios a cada chero. Cada chero tiene:
Permisos para el propietario Permisos para el grupo Permisos para el resto
GSyC - 2009
19
Permisos en directorios
En los directorios, el signicado de los tipos de permisos es ligeramente distinto al del resto de cheros:
r: Se puede ver el nombre de los cheros que contiene el directorio. w: En ese directorio se pueden crear, borrar o renombrar cheros. x: Se puede acceder al contenido del directorio, y a subdirectorios de este.
GSyC - 2009
20
chmod
chmod es el comando que se utiliza para cambiar los permisos de un chero Solo el due no de un chero puede cambiar sus permisos Dos modos de uso:
chmod 752 fichero Asigna ese modo en octal (rwxr-xrw-) chmod u+r fichero A nade al due no permiso de lectura u (user) + (a nade) r (lectura) g (group) - (quita) w (escritura) o (other) = (asigna) x (ejecuci on) a (all)
GSyC - 2009
21
Sustituciones
Contenidos
1 2 3 4 5 6 7
Introducci on Funcionamiento b asico Operaciones con cheros Sustituciones Redirecciones y ltros Shell scripts Comandos u tiles
GSyC - 2009
22
Sustituciones
Variables
Uso de una variable: $NOMBRE en cualquier parte de una l nea Lista de variables: set Borrar una variable: unset VARIABLE Se puede delimitar el nombre de una variable con llaves:
echo una${variable}dentrodeunapalabra
GSyC - 2009
23
Sustituciones
Sustituci on de comando
Ejecuci on de una orden antes de evaluar la l nea, se inserta el resultado en la l nea actual Se utilizan comillas invertidas cmd, o bien $(cmd) Ejemplos: cespedes@coco:~$ AHORA=date cespedes@coco:~$ echo $AHORA Mon Feb 21 12:55:40 CET 2005 cespedes@coco:~$ echo Nombre: whoami, dir: $(pwd) Nombre: cespedes, dir: /home/cespedes
GSyC - 2009
24
Sustituciones
Existen algunos caracteres comod n, que se utilizan para referirse a varios cheros simult aneamente * Cualquier cadena de longitud 0 o m as ? Cualquier car acter [ach] Cualquier car acter de la lista [a-f] Cualquier car acter del rango [!wxz] Cualquier car acter que no est e en la lista Ejemplo: echo *.txt
GSyC - 2009
25
Sustituciones
Comillas
Se utilizan para agrupar argumentos y para evitar sustituciones "Comillas dobles" Sustituye variables y ordenes, no sustituye nombres de chero
cespedes@gizmo:~$ echo "$HOSTNAME, pwd, *" blas, /home/cespedes, *
Comillas simples No se realiza ninguna sustituci on Comillas invertidas Ya las hemos visto, son una sustituci on de orden: se ejecuta la orden entre las comillas y se sustituye todo por el resultado de esa orden
GSyC - 2009
26
Sustituciones
Se puede utilizar el car acter \ para: Dividir una orden en varias l neas:
cespedes@epi:~$ ls \ > -al
Obligar a la shell a que no interprete determinados caracteres (, ", $, \), escribi endolos precedidos precedidos del car acter de escape:
cespedes@epi:~$ echo "Cantidad total: \"25\$\"" Cantidad total: "25$"
GSyC - 2009
27
Redirecciones y ltros
Contenidos
1 2 3 4 5 6 7
Introducci on Funcionamiento b asico Operaciones con cheros Sustituciones Redirecciones y ltros Shell scripts Comandos u tiles
GSyC - 2009
28
Redirecciones y ltros
GSyC - 2009
29
Redirecciones y ltros
Se puede cambiar la entrada (stdin) / salida (stdout) est andar o la salida de error (stderr) de cualquier orden. < fichero > fichero >> fichero 2> fichero 2>&1 &> fichero << cadena Toma stdin del chero Env a stdout al chero Env a stdout al nal del chero (a nade) Env a el fd 2 (stderr) al chero Env a stderr a donde vaya stdout stdout y stderr al chero stdin de aqu en adelante hasta encontrar cadena
GSyC - 2009
30
Redirecciones y ltros
Pipes (ltros)
Se especican escribiendo dos ordenes en la misma l nea, separadas por el car acter | Las dos ordenes se ejecutan simult aneamente, conectando la salida est andar de la primera a la entrada est andar de la segunda Ejecutar orden1 | orden2 es similar a ejecutar orden1 > /tmp/file seguido de orden2 < /tmp/file, pero ejecutando las dos ordenes simult aneamente Ejemplo:
cespedes@kermit:~$ ls -l | grep jpg -rw------- 1 cespedes cespedes 38016 2007-06-23 15:06 corbata1.jpg -rw------- 1 cespedes cespedes 30816 2007-06-23 15:06 corbata2.jpg -rw-rw-r-- 1 cespedes cespedes 238412 2007-11-12 12:57 viking.jpg
GSyC - 2009
31
Shell scripts
Contenidos
1 2 3 4 5 6 7
Introducci on Funcionamiento b asico Operaciones con cheros Sustituciones Redirecciones y ltros Shell scripts Comandos u tiles
GSyC - 2009
32
Shell scripts
Shell scripts
shell script = Programa en shell Separador de sentencias: cambio de l nea o ;. Comentarios: # hasta el nal de la l nea. La primera l nea indica qu e shell interpretar a el script:
#!/bin/sh
Es necesario que el script tenga permisos de ejecuci on para el usuario que lo ejecute (chmod +x nombre). Ejemplo: #!/bin/sh echo "Hola, mundo"
GSyC - 2009
33
Shell scripts
Variables en scripts
Variables especiales: $# N umero de argumentos $n (n=n umero) Argumento n- esimo del script $* Todos los argumentos. "$*" = "$1 $2 $3..." $@ Todos los argumentos. "$@" = "$1" "$2" "$3"... $$ PID de la shell $! PID del u ltimo comando en background
GSyC - 2009
34
Comandos u tiles
Contenidos
1 2 3 4 5 6 7
Introducci on Funcionamiento b asico Operaciones con cheros Sustituciones Redirecciones y ltros Shell scripts Comandos u tiles
GSyC - 2009
35
Comandos u tiles
Comandos u tiles
Todos estos comandos operan con un chero, o con la entrada est andar: cat: Muestra todo el contenido sort: Ordena l neas uniq: Elimina l neas repetidas wc: Cuenta caracteres, palabras y l neas head: Muestra las primeras l neas tail: Muestra las u ltimas l neas grep: Muestra l neas que encajen con una expresi on regular sed: . . . awk: . . .
GSyC - 2009
36
Comandos u tiles
Expresiones regulares
Una expresi on regular es una secuencia de caracteres. Se utiliza para saber si una l nea encaja con un patr on. Un car acter cualquiera que no sea especial encaja con el mismo car acter. Adem as, hay caracteres especiales: . Un car acter cualquiera * Repetido 0 o m as veces + Repetido 1 o m as veces ? Opcional (0 o 1 veces) [afz] Cualquiera de estos caracteres [^btx] Cualquier car acter salvo estos ^ Principio de l nea $ Fin de l nea
GSyC - 2009 37