Shell Scripts

Anuncio
SISTEMAS DE COMPUTACION I
Agosto 2007
Miguel Pincheira Caro
miguel.pincheira@gmail.com
http://robotica.chillan.ubiobio.cl/~miguel
¿Que es un Shell?
•
•
Cuando Dennis Ritchie y Ken Thompson diseñaban UNIX, deseaban
mejorar
la forma en que las personas interactuaran con su nuevo sistema.
•
Entonces S.R. Bourne, otro programador de AT&T, creó el Shell.
Primero que todo, es necesario dejar en claro que un Shell (sh,
bash,kshell etc.) no es un sistema operativo, sino una parte
importante de él; nuestro nexo a él.
•
El Shell es un programa que interpreta comandos para poder
ejecutarlos. Esta ejecución puede ser de forma manual, por ejemplo
cuando el usuario lo escribe directamente en una terminal, o bien
agrupando comandos en un archivo de texto que luego será
ejecutado. (Shell-script).
•
Estos shell-scripts, permiten también algunas instrucciones básicas
de programación, como selección e iteración entre otras.
DOS vs Shell
•Distinción entre mayúsculas y minúsculas
•Nombres de Archivos
•En DOS se usa la norma ”8.3”
•Parchado en Windows 95
•Caracteres Especiales
•Existen algunos caracteres especiales, reservados para uso del intérprete
de comandos (o shell),
•Normalmente no podrán ser usados como caracteres comunes, se pueden
utilizar como uno más
CARACTERES RESERVADOS DEL SHELL
EL SISTEMA DE ARCHIVOS
•El sistema de archivos de
Linux es un árbol de
directorios y archivos.
•En la base del ´arbol, esta
el directorio raíz (root)
•Linux monta todos los
directorios unidades y
dispositivos en alguna
parte dentro del directorio
raiz.
PERMISOS DE USUARIO
•Al ser Unix un sistema operativo multiusuario, se estableció un mecanismo por el
cual se otorgan permisos a un determinado usuario y/o grupo para el acceso a un
archivo.
• Esto permite, por ejemplo, que si existe un archivo creado por un usuario en
particular, este será propiedad del usuario y también tendrá el grupo del usuario.
•Los permisos están divididos en tres tipos: lectura, escritura y ejecución (rwx).
•Estos permisos pueden estar fijados para tres clases de usuario: el propietario del
archivo, el grupo al que pertenece el archivo y para todo el resto de los usuarios.
•El permiso de lectura permite a un usuario leer el contenido del archivo o en el caso
de que el archivo sea un directorio, la posibilidad de ver el contenido del mismo.
•El permiso de escritura permite al usuario modificar y escribir el archivo. En el caso
de un directorio permite la crear nuevos archivos en él o borrar archivos existentes.
•El permiso de ejecución permite al usuario ejecutar el archivo, si tiene algo para
ejecutarse. Para los directorios permite al usuario cambiarse
a él con el comando cd.
COMANDOS PARA NAVEGAR POR EL
SISTEMA DE ARCHIVOS
•pwd : Print Working directory
•Cd : Change directory
•cd directorio
•cd ..
•cd ~usuario
•ls : list
•ls -l
•ls -a
•ls h*
•mkdir nombre : make Directory
•rmdir nombre : remove directory
•Chmod : change modes
COMANDOS MÁS COMUNES
•rm algo
Elimina el archivo algo
•cp origen destino
Copia el archivo origen a destino
•mv origen destino
Mueve el archivo origen a destino .
•cat archivo
Muestra en el contenido de archivo
•head archivo
Muestra las primeras líneas de archivo
•tail archivo
Muestra las ultimas líneas de archivo
•file archivo
Muestra información acerca de archivo
•reset
Reinicia la pantalla
•clear
Limpia la pantalla
•grep palabra archivo
Muestra las líneas donde aparece palabra en
archivo
EL PATH
Los archivos ejecutables se encuentran en varias partes del
árbol de directorios de Linux. Sin un shell, el sistema
operativo nos permitiría ejecutar los comandos o programas
escribiendo la ruta completa de estos. Por ejemplo, si el
comando cd se encontrara en /usr/bin/ deberíamos escribir
lo siguiente
# /usr/bin/cd
/home
Sin embargo, en el Shell existe una variable de entorno,
llamada PATH, que contiene la ruta a las carpetas donde el
shell buscará un ejecutable, al que no escribamos su ruta.
# cd /home
CONFIGURAR EL PATH
Los archivos ejecutables se encuentran en varias partes del
árbol de directorios de Linux. Sin un shell, el sistema
operativo nos permitiría ejecutar los comandos o programas
escribiendo la ruta completa de estos. Por ejemplo,si el
comando cd se encontrara en /usr/bin/ deberíamos escribir
lo siguiente
# /usr/bin/cd
/home
Sin embargo, en el Shell existe una variable de entorno,
llamada PATH, que contiene la ruta a las carpetas donde el
shell buscará un ejecutable, al que no escribamos su ruta.
# cd /home
EL PODER DE UNIX
INTERACCIÓN DE COMANDOS
• Una de las más poderosas característias de Unix ,
heredada también por Linux, es la interacción de sus
comandos.
• Los creadores de Unix usaron esta premisa:
“Lograr programas complejos, utilizando varios pequeños
programas que hacen solo una función específica y se
comunican entre sí”
EL PODER DE UNIX
INTERACCIÓN DE COMANDOS
Entubando (”Pipes”)
• El caracter de tubería ”|”permite encadenar dos o más
comandos. Es decir,la salida del primer comando, será la
entrada del otro.
• Así, para listar un directorio que contiene muchos archivos,
podemos usar ls en colaboración con more (Que permite
mostrar información de una pantalla por vez).
# ls /usr/bin | more
EL PODER DE UNIX
INTERACCIÓN DE COMANDOS
Redireccionando
•Para redireccionar existen dos carateres especiales que permiten enviar
la salida estandar de un programa, a un archivo de texto, o incluso un
dispositivo.
•El caracter ”>”, permite redireccionar a un nuevo archivo de texto (Si el
archivo existe, lo sobreescribe)
# ls *.mp3 > listaDeFotosyMusica.txt
•El caracter ”>>”, hace casi lo mismo que el anterior, con la diferencia
que si el archivo existe, anexa la salida del primer comando al final del
archivo.
# ls *.jpg > listaDeFotosyMusica.txt
AYUDA !!
•En *nix, siempre hay ayuda
•Esta ayuda son las man pages, o páginas de manual, visibles desde consola.
•Por ejemplo, si queremos tener más información acerca del comando ls
debemos escribir :
# man ls
•Este manual, contiene información acerca de los comandos, pero también
acerca de instrucciones de programación e incluso rutinas del kernel. Para esto,
se divide en secciones, que son :
•Sección 0 : Todas las secciones
•Sección 1 : Comandos
•Sección 2 : Llamadas al Sistema
•Sección 3 : Llamadas de Librería (Programación)
•Sección 4 : Archivos especiales
•Sección 5 : Formatos de archivos y conversiones
•Sección 6 : Juegos para Linux
•Sección 7 : Paquetes de Macros y Convenciones
•Sección 8 : Comandos de Administración de Sistema
•Sección 9 : Rutinas del Kernel.
COMPRESION Y ARCHIVACION
ARCHIVO.TAR.GZ
•La razón es porque se hace con dos programas distintos : tar y *zip.
•TAR : es un archivador
•ZIP (B2Zip, GZIP o ZIP) : es el compresor.
•Para abrir un archivo fuente.tar.gz :
# gunzip fuente.tar.gz
# tar -xf fuente.tar
.
•Para crear un fichero tar, teclee:
# tar -cvf miprimertar.tar directorio
Donde miprimertar.tar es el archivo donde se ubican los ficheros de
directorio
Para comprimir un fichero con bzip, teclee:
# bzip miarchivo
Con lo que obtendremos un archivo comprimido llamado miarchivo.bz
Descargar