Está en la página 1de 23

Introduccin a la

programacin Shell
Permisos en los archivos
En Linux, los permisos de archivos implican
algo mas que simplemente conocer los
permisos que tienen un archivo o directorio:

Deciden quien puede leer, escribir o ejecutar un
archivo
Deciden el tipo de archivo y la forma de ejecutarlo

Se puede ver permisos con:
ls -l

Permisos en los archivos
drw------ 2 yanina yanina 512 Jan 1 13:34 Desktop
rwx------ 1 yanina yanina 1024 Jan 17 08:22 ejemp

1. permisos del archivo
2. numero de enlaces al archivo
3. propietario del archivo
propietario, grupo del propietario y todos los dems
4. grupo al que pertenece archivo
5. numero de Bytes
6. fecha y hora de creacin
7. nombre archivo
Permisos en los archivos
Subcampos de columna de permisos

-rwxrwxrwx

es para archivos y d para directorios

r read, w write, x execute

Cada grupo de rwx determina permisos de propietarios:
propietario, grupo de propietario y todos los dems



Permisos en los archivos
Se puede cambiar permisos con orden
chmod (change mode)
Tiene dos sintaxis distintas: relativa y absoluta

Relativa
chmod [ugo] [+-rwx] archivo
u,g,o indican tipo de usuario cuyos permisos se desean alterar
u user
g group
o other
Tambien puede emplearse a all (es la opcion por defecto)
+ o - se emplean para aadir o quitar permisos
chmod u+rx-w programa



Permisos en los archivos
Se puede cambiar permisos con orden
chmod (change mode)
Tiene dos sintaxis distintas: relativa y absoluta

Absoluta
chmod nnn archivo
nnn es numero octal de tres cifras, cada una fija permisos para
un tipo de usuario
chmod 640 archivo



Script
Shell es un intrprete de ordenes, adems un
autentico lenguaje de programacin, incorpora:
sentencias de control de flujo
sentencias de asignacin

Adems de interpretar comandos, nos permiten
programar

Programas de shell no necesitan ser compilados
el propio shell los ejecuta lnea por lnea
Scripts, para que?
Para cuando tengamos un montn de tareas
que se van a repetir y tengamos flojera de
escribir todos los comandos!

Son fciles de hacer normalmente
No vamos a desarrollar grandes programas en
script
Concepcin rpida
Que podemos usar en un script?
Bsicamente podemos usar cualquier
comando que podemos usar en el shell

Lectura de argumentos

Otros scripts nuestros o de otras personas

Estructuras de control como bucles
Pasos a seguir
Crear un archivo de texto con editor vi u otro
editor de texto
El archivo contendr las ordenes que shell va
a ir interpretando y ejecutando
Asignar permisos de ejecucin al archivo
creado con chmod
Ejecutar script con
./archivo
Lnea de comentarios debe comenzar con # - estos no
se vern en la pantalla cuando se ejecuta script
Para mostrar comentarios en pantalla, utilizar echo

Primer script
$ vi primero
#
# Mi primer shell script
#
clear
echo Conocimiento es poder
esc
:wq
$ chmod 755 primero
$ ./primero
Segundo script
# script para imprimir informacin sobre fecha actual y
hora, usuario actualmente conectado, y calendario
clear
echo Hola usuario
echo Hoy es; date
echo Numero de usuario conectado:; who
echo Calendario
cal
exit 0
Exit Status
Cuando Shell Script se ejecuta, puede
devolver dos tipos de valores:
0 si el comando se ejecuto satisfactoriamente
Otro numero si hay algun error
Ejemplos:
ls
echo $?
rm archivo_desconocido
echo $?
Pregunta
Escribir script que muestre fecha y hora, lista
usuarios conectados y almacena esta
informacion en logfile
Reglas para definir variables
Variables del sistema
USERNAME
HOME
COLUMNS
LINES
OSETYPE
echo $USERNAME
echo $OSTYPE
Reglas para definir variables
Variables del usuario
no=10
No=20
NO=30
var=clase
echo $no #imprime 10
echo $NO #imprime 30
echo $var #imprime clase
Parametros
Cuando se ejecuta script, se puede especificar
una serie de parametros
Para hacer un script mas versatil, puede
recibir parametros desde la linea de
comandos
Estos parametros son PARAMEETROS DE
POSICION y se pueden utilizar como
cualquier otra variable
Parametros
Los parametros dentro del script son
accesibles utilizando las variables:
$0
$1
$2
......
$9
Parametros
echo NOMBRE DEL PROGRAMA ES $0
echo Primer parametro recibido es $1
echo Segundo parametro recibido es $2

Si ejecutamos
./uno
Si ejecutamos
./uno hola mundo
Parametros
$0 es el nombre del programa o parametro
cero
$1 es el primer parametro pasado
$2 es el segundo parametro pasado, etc.
$# - numero de parametros pasados
$* - un argumento que contiene todos los
parametros que se han pasado ($1, $2...)
menos el $0
Escriba un script que muestre el empleo de todos los
parametros mencionados
Parametros
Escribir script que permite copiar un archivo
de una ubicacion a otra
Primero muestra el contenido del directorio actual
Despues pide al usuario que se introduzca el
nombre del archivo a copiar
Despues pide al usuario que introduzca una nueva
ubicacion y el nombre con el cual se va a copiar el
archivo
Despliega el mensaje de que el archivo ha sido
copiado y muestra el contenido del archivo copiado
Parametros
Escribir script que permite anadir el contenido
de un archivo a otro
Primero verifica que se han introducido los
nombres de dos archivos (fuente y destino)
Verifica que los archivos existen, caso contrario
muestra mensajes correspondientes
Muestra el contenido original del archivo destino,
anade el contenido del archivo fuente y muestra el
contenido final
Parametros
if [ $1 -nt $2 ]
then
echo el mas nuevo es $1
else
echo el mas nuevo es $2
fi