PDF de programación - Bloque II: Programación orientada al sistema

Imágen de pdf Bloque II: Programación orientada al sistema

Bloque II: Programación orientada al sistemagráfica de visualizaciones

Publicado el 14 de Enero del 2017
779 visualizaciones desde el 14 de Enero del 2017
103,4 KB
14 paginas
Creado hace 12a (19/05/2011)
Bloque II: Programación orientada al
sistema
Tema 9. Programación en Lenguaje C
Tema 10. Programación del intérpretes de órdenes

UNIVERSIDAD
DE CANTABRIA

Introducción

-
- Repaso de las principales órdenes del intérprete
- Redirección de entrada y salida
- Creación y ejecución de scripts
- Paso de parámetros a un script
-
- Listas de instrucciones
-
-

Instrucciones de lazo
Instrucción de lectura

Instrucciones condicionales

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
10

© Michael González, J. Javier Gutiérrez

19/ma/11

1

UNIVERSIDAD
DE CANTABRIA

1. Introducción
Una shell es un programa que lee instrucciones proporcionadas
por un usuario, las interpreta, y encarga al sistema operativo su
ejecución
Las instrucciones se pueden dar:
• por teclado (intérprete de órdenes tradicional)
• mediante ratón (gestor gráfico de ficheros)
• desde un fichero, llamado un script, con un texto escrito en un

lenguaje que la shell entiende: el lenguaje de la shell

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

2

UNIVERSIDAD
DE CANTABRIA

El lenguaje de la shell
El lenguaje de la shell incluye:
• todas las órdenes que se pueden dar por teclado

- p.e., cp (copia), mv (mueve), rm (borra)

• instrucciones de programación:

- variables
- parámetros
-
-
-
-
- etc.

instrucciones condicionales
lazos
instrucciones de lectura
instrucciones remotas, para ejecutar en otras máquinas

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

3

2. Repaso de las principales órdenes
del intérprete
Las órdenes simples tienen habitualmente este formato

UNIVERSIDAD
DE CANTABRIA

orden opciones argumentos

Las opciones suelen ir precedidas de un signo ’-’
Una orden se puede ejecutar en segundo plano (concurrentemente
a la shell) añadiendo un ’&’ al final:

gcc programa.c &

Los metacaracteres o caracteres especiales <>*?|&,;()[]#
tienen un significado especial para la shell
• ponerlos precedidos de ’\’ para perder su significado especial;
p.e., \* o \\
• o ponerlos entre apóstrofes: ’<*****>’

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

4

UNIVERSIDAD
DE CANTABRIA

Nombres de ficheros
Cuando un argumento es un nombre de fichero se pueden usar
caracteres comodín:
• ’*’: se reemplaza por cualquier secuencia de cero o más
caracteres que no empiece por ’.’
• ’?’: se reemplaza por un carácter simple cualquiera
• [...]: se reemplaza por cualquiera de los caracteres entre los
corchetes; por ejemplo:
- [abc]*: todos los ficheros que comienzan por ’a’, ’b’, o ’c’
- [a-zA-Z]*.txt: todos los ficheros que comienzan por una letra

minúscula o mayúscula, y acaban en ".txt"

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

5

Órdenes del sistema operativo

UNIVERSIDAD
DE CANTABRIA

UNIX

Función

ls
ls -l
cd

rm

cp

Muestra una lista del con-
tenido del directorio
Cambiar el directorio de
trabajo
Borrar un fichero

Sintaxis
ls -l nombreDirectorio

cd nombreDirectorio

rm nombreFichero

Borrar varios ficheros
Copiar un fichero en otro;

rm nombreComodín
cp ficheroOrigen ficheroDestino

Copiar uno o varios fiche-
ros en otro directorio

cp nombreComodín dirDestino

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

6

Órdenes del sistema operativo (cont.)

UNIVERSIDAD
DE CANTABRIA

UNIX

mv

more
less
mkdir
rmdir
rm -r

lpr
man

Función

Sintaxis

Mover un fichero a otro (es decir
cambiarle el nombre);
Mover uno o varios ficheros a
otro directorio
Mostrar un fichero en pantalla

Crear un nuevo directorio
Borrar un directorio vacío
Borrar un directorio y todos sus
contenidos
Imprimir un fichero
Pedir info sobre una orden

mv ficheroOrigen ficheroDestino

mv nombreComodín dirDestino

more nombreFichero
less nombreFichero
mkdir nombreDirectorio
rmdir nombreDirectorio
rm -r nombreDirectorio

lpr nombreFichero
man orden

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

7

Órdenes del sistema operativo (cont.)

UNIVERSIDAD
DE CANTABRIA

UNIX

Función

Sintaxis

pwd
who
grep
echo
wc

cat

find

Muestra el directorio de trabajo
Muestra los usuarios conectados
busca un texto en un fichero
muestra los argumentos especificados echo arg1 arg2
cuenta el número de caracteres, pala-
bras y líneas de su entrada estándar
muestra los ficheros especificados,
uno a continuación del otro
Busca en un directorio ficheros con
determinadas características:
-name: por nombre

ls | wc
cat nombre | wc
cat nombre1 nombre2

pwd
who
grep "texto" nombreFichero

find nomDir -name nombre

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

8

Órdenes del sistema operativo (cont.)

UNIVERSIDAD
DE CANTABRIA

UNIX

Función

Sintaxis

chmod Añade(+) o quita(-) para el usuario(u),
grupo (g) u otros (o) los permisos de
lectura(r), escritura (w) o ejecución (x)
Muestra diferencias entre dos ficheros diff fichero1 fichero2

chmod u+rw fichero
chmod ugo-x fichero
chmod ug+rwx fichero

diff

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

9

UNIVERSIDAD
DE CANTABRIA

3. Redirección de entrada y salida
En Unix los procesos tienen tres ficheros abiertos al arrancar:
• entrada estándar, salida estándar, y salida de error
• suelen ser el teclado, pantalla, y pantalla, respectivamente
Se puede modificar el fichero al que están ligados:
• entrada estándar: < nombre
• salida estándar: > nombre

- número de líneas del fichero nt.txt: wc -l < nt.txt
listado del directorio al fichero lista: ls -l > lista
-
- para añadir a un fichero, usar >>: ls -l >> lista

• salida de error: 2> nombre

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

10

Tuberías y filtros
Podemos conectar la salida estándar de una orden con la entrada
estándar de otra, mediante una tubería:

UNIVERSIDAD
DE CANTABRIA

ls -l | wc

Un filtro es una orden que lee la entrada estándar, la transforma, y
escribe en la salida estándar

- grep palabra: busca líneas que contengan la palabra
- sort: ordena alfabéticamente

Podemos conectar varias órdenes y/o filtros con tuberías:

ls -l | grep txt | wc -l
- muestra el número de líneas que contienen la palabra "txt" del

listado de ficheros del directorio actual

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

11

4. Creación y ejecución de scripts
Un script es un programa escrito en el lenguaje de la shell en un
fichero de texto
Para poder ejecutar un script el fichero debe tener permiso de
ejecución
Ejemplo:
• crear el fichero lista con el editor de texto (emacs) y el siguiente

UNIVERSIDAD
DE CANTABRIA

contenido
# Este script pone en pantalla el directorio de trabajo
# y los ficheros contenidos en él
echo "Directorio de trabajo:" $PWD
echo "Ficheros que contiene:"
ls

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

12

Ejemplo (cont)
• A continuación, darle permiso de ejecución:

UNIVERSIDAD
DE CANTABRIA

chmod +x lista

• Finalmente, ejecutarlo:

./lista

Observaciones:
• El carácter ’#’ inicia un comentario
• El signo ’$’ identifica una variable; $PWD es una variable
predefinida, que indica el directorio de trabajo
• El script contiene una lista de instrucciones simples (echo, ls)

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

13

5. Paso de parámetros a un script
Al invocar un script se le pueden pasar parámetros
• cada palabra o string entre comillas es un parámetro
Dentro del script cada parámetro se identifica con $n, donde n=1,
2, 3,... representa el primer, segundo, tercer,... parámetro

UNIVERSIDAD
DE CANTABRIA

#añade al fichero $1 la terminación ".txt"
#además, copia las líneas con "texto" al fichero $2
mv $1 $1.txt
grep "texto" $1.txt > $2

El parámetro especial $* representa a todos los parámetros, desde
el $1

ls -al $*

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

14

UNIVERSIDAD
DE CANTABRIA

Variables
Se pueden crear variables

XREF="texto simple"

Tener cuidado de no poner espacios a los lados del ’=’
Para usar la variable:

$XREF
Ejemplo:

#cambia los permisos del fichero $1 recursivamente
ORDEN="chmod"
ARG="-R +rwx"
$ORDEN $ARG $1

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

15

Variables (cont.)
Variables predefinidas

UNIVERSIDAD
DE CANTABRIA

$?
$#
$$
$HOME
$PATH
$PWD

Valor de salida del último proceso ejecutado
Número de argumentos
Pid de la shell
Directorio inicial del usuario
Ruta de búsqueda
Directorio de trabajo

Para que una variable sea visible desde otras órdenes debe
exportarse:

export PATH

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

16

Sustitución de órdenes
Podemos sustituir una orden por su resultado, encerrándola entre
apóstrofes inversos:

UNIVERSIDAD
DE CANTABRIA

FICH=‘ls‘
- FICH toma como valor la lista de ficheros del directorio actual
DIR=‘pwd‘
- DIR toma como valor el directorio de trabajo

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

17

6. Instrucciones condicionales
Instrucción condicional simple

UNIVERSIDAD
DE CANTABRIA

if condicion
then
ordenes
fi

Instrucción condicional simple con alternativa (else)

if condicion
then
ordenes
else
ordenes
fi

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

19/ma/11

18

Instrucciones condicionales
Instrucción condicional múltiple
  • Links de descarga
http://lwp-l.com/pdf948

Comentarios de: Bloque II: Programación orientada al sistema (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad