Sunteți pe pagina 1din 46

Sistemas operativos libres II: script.

Caso prctico
Ivn y Marta en su empresa de prcticas han tenido que
instalar un servidor Linux, para optimizar el trabajo del
sistema operativo y facilitar el trabajo a los usurarios y
usuarias. Una vez instalado van a necesitar realizar
ciertas tareas administrativas adicionales, las de
administracin del sistema y otras tiles para cualquier
usuario o usuaria como la instalacin de nuevo software,
la actualizacin del sistema operativo, la instalacin o
uso de los servicios del sistema, mejorar el rendimiento,
etc.

Ya conoces la terminal de Windows, ahora te voy a ensear el manejo de la shell de Linux.


Shell que en castellano significa concha, es el intrprete de comandos del sistema.
Es una interfaz de texto de altas prestaciones, que te sirve fundamentalmente para tres cosas:

1. Administra el sistema operativo.


2. Lanza aplicaciones.
3. Interacta con ellas y como entorno de programacin.

El shell es tanto un intrprete de comandos u rdenes, como un lenguaje de programacin. Sobre l vas a
poder ejecutar rdenes con las que puedes crear programas, que se llaman script y ejecutar comandos
para administrar el sistema operativo.
1.- La shell y sus comandos.

Caso prctico
En el aula Ivn y Marta tuvieron su primer encuentro con
la shell, en un principio pensaron que no les iba a hacer
falta en el mundo laboral.

En las empresas de prcticas han visto que pueden


llegar a trabajar con Red Hat, Ubuntu y Knoppix. Por
ello, para hacer una labor administrativa bsica se ven
en la dificultad de que en cada distribucin tienen que
estudiar el entorno grfico, con los cambios que cada
distribucin tiene.

Esto, lo han solucionado fcilmente, pues se han acostumbrado a trabajar con comandos de
texto, y as no necesitan trabajar con el entorno grfico, van a tiro hecho usando comandos.

Vamos a entrar en el mundo de la lnea de comandos de Linux, vers que es muy flexible y potente, y no
tan complicado como pudiera parecer en un principio.
1.1.- Antecedentes histricos.
La shell te permite interactuar con el kernel a travs de la interpretacin de los comandos que escribes
en la lnea de comandos, o a travs de los scripts.

Hay varias shell, la primera shell fue programada por


Steven Bourne, a sta se le llama sh o bsh, es una
shell limitada y usa una sintaxis de comandos usada
en los primeros sistemas UNIX.
Cronolgicamente, la siguiente shell fue la c-shell o
csh, como su nombre indica usa comandos muy
parecidos al lenguaje de programacin C.
En 1986, David Korn junt lo mejor de la bourne shell y
la c-shell y program la korn-shell o ksh.
En la mayora de los sistemas Linux, viene incorporada
por defecto la shell bash de Bourne Again Shell, En referencia al inventor de la primera shell. Esta
shell posee toda la funcionalidad de sh con caractersticas avanzadas de C.

Por eso, si creamos cualquier script .sh correr perfectamente en la shell bash.
La shell bash fue programada por desarrolladores del proyecto GNU.

Para acceder al modo texto o a la terminal puedes ir a travs de botn de UBUNTU, HUD y tecleamos
terminal. HUD permite que cuando escribes las primeras letras de un nombre en el men Ubuntu,
ste muestra todos los documentos y aplicaciones relacionadas

Si quieres saber las shells que tienes en tu distribucin GNU/Linux slo tienes que abrir el fichero
shells del directorio /etc para ello escribe en la terminal:
$cat /etc/shells

Autoevaluacin
La shell bash:
Debe su nombre a Steven Bourne.
Se debe a David Korn.
No existe.

Para saber ms
En este enlace puedes ver una pgina muy completa con un manual del shell bash muy
completo.

Manual de shell bash. (1.38 MB)


1.2.- Generalidades sobre introduccin de comandos.
Como ya sabrs la sintaxis de las rdenes es la siguiente:
$orden [-modificadores] [argumentos]

La orden indica al intrprete de comandos la accin a realizar.


Los modificadores u opciones se introducen precedidos del carcter guin.
Los argumentos son caracteres que se utilizan como entrada del comando. El argumento puede
ser un archivo o un directorio.
Antes de ver los comandos bsicos, te voy a ensear distintos modos de poder ejecutar varios
comandos.

En secuencia. Separados por punto y coma. Se ejecuta un comando detrs de otro en primer
plano o foreground.
$ comando1 ; comando2 ; comando3

En segundo plano. Finalizando el comando por el carcter ampersand &. Cada comando
terminado por este carcter se ejecuta en segundo plano o background, es decir, no se espera a
su terminacin para continuar con el siguiente.
$ comando 1& comando2 & comando3 &

Mezcla de comandos en primer y segundo plano. Los que acaban en punto y coma obligan a
los que les siguen, a esperar a que terminen. Los que acaban en & se lanzan en segundo plano y
se siguen ejecutando los siguientes.

$ comando1 ; comando2 & comando3 ; comando4 &


comando5...

Para ver el listado de comandos, puedes escribir en la


terminal el comando help. La ayuda de un comando la
puedes obtener de distintas maneras con info, help o man
(acrnimo de manual).

Otra ayuda con la que cuentas es la opcin de


autocompletar, para ello, empiezas a escribir en la terminal
y a continuacin pulsas la tecla de tabulacin, con la que se completar el nombre.

Autoevaluacin
Para introducir comandos, Slo se puede introducir uno por lnea?
Verdadero.
Falso.
1.3.- Redireccionamiento y tuberas.
Redireccin de la salida por defecto.
Los resultados de un comando en pantalla pueden redireccionarse a
un fichero de dos formas distintas:

Borrando el fichero si ya exista, en caso contrario, lo crea


nuevo:
$ comando > fichero

Aadiendo la informacin al fichero si ya exista, en caso contrario, lo crea nuevo:


$ comando >> fichero

Tuberas o pipelines
Los resultados de un comando en pantalla pueden redireccionarse a la entrada de otro comando
separndolos con el carcter de tubera o pipe: |. Slo el ltimo comando de una tubera muestra sus
resultados en pantalla (que tambin podran redireccionarse a un fichero).
$ comando1 | comando2 | ... | comandoN

Situaciones en las que la salida de un comando se utiliza como la entrada de otro son muy frecuentes en
la prctica. Por ejemplo, supn que deseas obtener un listado ordenado alfabticamente con informacin
acerca de todos los usuarios conectados actualmente en la mquina. El comando who permite obtener la
informacin acerca de los usuarios conectados y que sort puede ordenarla alfabticamente. Una posible
solucin es:
$ who > tmp
$ sort < tmp
usuario1 :0 Sep 09 19:53
usuario2 :1 Sep 09 15:45
$ rm tmp
En este caso el fichero tmp guarda de forma temporal la informacin proporcionada por who antes de usar
el comando sort. Una forma simplificada de hacer esto mismo es usando tuberas. Tal y como lo ves a
continuacin:
$ who | sort
usuario1 :0 Sep 09 19:53
usuario2 :1 Sep 09 15:45

El efecto es similar a la creacin de un archivo temporal, con la nica diferencia de que el uso de las
tuberas es mucho ms eficiente.

Autoevaluacin
Cuando usas el comando > fichero:
Crea un fichero nuevo o sobreescribe lo que tena.
Estas aadiendo el resultado del comando a un fichero ya creado.
La salida de un comando es la entrada de otro.
1.4.- Usuarios del sistema.
En el proceso de instalacin del sistema operativo Linux, creaste un usuario, ste es el superusuario o
administrador o usuario root (utilizamos el trmino usuario en el sentido informtico de persona que
maneja un ordenador o aplicacin informtica). Este usuario cuenta con todos los privilegios sobre el
sistema. Tiene acceso total a todo el sistema, se encarga de la administracin del mismo, actualizacin y
mantenimiento.

Tambin puedes crear usuarios normales, que se conectarn al sistema introduciendo su nombre de
usuario y contrasea. Son los usuarios habituales del sistema, los que utilizarn los recursos de ste.

Tambin estn los usurarios del sistema, que no son usuarios en sentido fsico, sino que se generan al
instalar algn servicio.

Los usuarios se diferencian por su nmero Identificador de Usuario o UID (Acrnimo de User Identificator).
Algunas caractersticas son:

El usuario root se identifica porque su UID es 0.


Los usuarios del sistema tienen UID entre 1 y 1000.
Los usuarios normales tienen asignados UID a partir de 1000.

La informacin sobre los usuarios del sistema se almacena en /etc/passwd. Para ver su contenido
puedes escribir en la terminal:
$cat /etc/passwd.

Cuando editas el fichero /etc/group da un listado con los grupos del sistema.

Debes conocer
En esta presentacin puedes ver la informacin de los usuarios y grupos del sistema.

Informacin de usuarios y grupos.

Para saber si el sistema operativo est preparado para que escribas un comando lo puedes ver mediante
un indicador de sistema o prompt.
Generalmente este prompt termina en $, adems de mostrarte
alguna informacin:

Como dnde ests.


El nombre de tu mquina.
El nombre de usuario.
Etc.

Esta informacin la puedes cambiar. Si el usuario es el


superusuario, el indicador o prompt termina con el smbolo #
almohadilla.

Siempre que realices una tarea administrativa el sistema te pedir la contrasea del superusuario.

En Linux tienes el comando su (acrnimo de Switch User) para cambiar de usuario o el comando sudo
(Acrnimo de Super User DO) para ejecutar comandos como superusuario.

Si escribes sudo su en la terminal, vers que cambia el prompt y ahora termina en almohadilla. Y puedes
realizar tareas de administrador.

Linux hace diferenciacin entre maysculas y minsculas.

Autoevaluacin
Cuando trabajas como superusuario el prompt acaba en almohadilla #?
Verdadero.
Falso.
1.5.- Directorios.
Con los directorios puedes almacenar informacin de forma
ordenada. Es una forma de estructurar la informacin
almacenada en nuestro soporte de almacenamiento.

Vas a ver una lista de comandos que te sern tiles cuando


quieras ver el contenido de un fichero, copiar ficheros,
eliminaros, moverles y movernos por la estructura jerrquica o
rbol de directorios .

$pwd (Acrnimo de Print Working Directory). Muestra


la trayectoria absoluta del directorio de trabajo.
$ls ( Acrnimo de list): Enumera al contenido de un directorio, mostrando el nombre y extensin de
cada archivo, el tamao en bytes, la fecha y hora en que se cre o modific por ltima vez, y los
subdirectorios que cuelgan de l.
$chdir o cd (Acrnimode Change Directory). Con este comando podemos movernos por la
estructura de directorios creada. Sirve para subir o bajar por la estructura jerrquica. Si ejecutamos
el comando cd sin parmetros, muestra el directorio y la unidad activa en la que estamos situados.
$mkdir (Acrnimo de Make directory). Crea directorios por debajo del actual.
-p crea todos los directorios intermedios necesarios.
$rmdir o rd (Acrnimo de Remove Directory). Con este comando podemos eliminar directorios en
cualquier parte de la estructura jerrquica.
Para borrar directorios hemos de tener en cuenta que slo se puede borrar un directorio si est
vaco.
Con el modificador -r borra las subcarpetas.

Recuerda que en los anteriores ejemplos el carcter "$" representa al prompt, no es parte del comando.

Para saber ms
En este vdeo puedes ver algunos comandos en Ubuntu.

Algunos comandos en Ubuntu.

1. Por ejemplo, vas a crear dos carpetas: Carpeta1 y Carpeta2 en tu directorio de trabajo. Supn que
el directorio de trabajo es /home/usuario. Para ello, escribe en la terminal:
$mkdir Carpeta1 Carpeta2
2. Comprueba que las has creado haciendo un listado de tu directorio de trabajo. Para ello escribes:
$ls
3. Si quieres ir a la carpeta Carpeta2, escribe en la terminal:
$cd Carpeta2
Vers que te ha cambiado el prompt.
4. Para volver al directorio anterior, escribe en la terminal:
$cd ..

Autoevaluacin
Relaciona los comandos con lo que muestran, escribiendo el nmero asociado a lo
que hace el comando en el hueco correspondiente.

Ejercicio de relacionar

Comando Relacin Resultado

ls 1.- Crea directorios.

cd 2.- Lista ficheros de un directorio.

mkdir 3.- Borra carpetas y subcarpetas.

rm -r 4.- Cambia de directorio.

Enviar
1.6.- Ficheros.
Vas a ver una lista de comandos que te sern tiles cuando
quieras trabajar con ficheros y obtener listados de los
mismos, realizar copias, reubicarles, etc.

$ ls (acrnimo de list). Lista de ficheros del directorio


(por defecto el actual).
-l Con detalles, lista los atributos.
-a Incluye ficheros ocultos (Los que comienzan
con el carcter punto ".").
-R Lista recursivamente los contenidos de los
directorios.
-al Tambin puedes combinar los parmetros.
$ cat (Acrnimo de concatenate). Muestra el contenido de los ficheros.
$ more fich1 [fich2] ... Muestra el contenido pgina a pgina. Un uso muy tpico del comando more
es como terminacin de una tubera, para mostrar los resultados de otro comando pgina a pgina.
Por ejemplo: ps -a -x -l | more
$ cp fichOrigen fichDestino. CP es acrnimo de copy. Copia el fichero origen con el nuevo nombre
destino sobreescribiendolo si exista.
$ mv fichOrigen fichDestino. Mueve el fichero. Cambia el nombre y/o la localizacin.
$ file fich. Indica de que tipo es el fichero (Ejecutable, texto, ...).
$ sort [fich] Ordena el fichero, o la entrada por defecto. Consulta sus opciones en la pgina de
manual. El nombre de fichero es opcional. Si no hay fichero, busca en la entrada por defecto. Por
eso, se puede utilizar como parte de una tubera (filtro).

Por ejemplo, crea un fichero con la salida del comando ls. Para ello, escribe en la terminal:
$ls > fichero1

Para ver el contenido del fichero fichero1 que acabas de crear, escribe en la terminal:
$cat fichero1

Ahora si quieres copiar el fichero fichero1 en Carpeta1, escribe en la terminal:


$cp fichero1 /home/usuario/Carpeta1

Debes conocer
En este vdeo puedes ver cmo crear carpetas.

Crear carpetas.
2.- Comandos de administracin bsica.

Caso prctico
Desde el servidor de Linux que han instalado en la
empresa Ivn va a tener que hacer labores
administrativas, por ejemplo, va a tener que dar de alta a
un grupo de usuarios, y adems, tiene que hacer que
pertenezcan al mismo grupo, para luego facilitar el poner
o quitar permisos a todo el grupo. Como el servidor slo
tiene entorno de texto, esta tarea la tiene que realizar
mediante comandos.

Debes conocer
En este enlace puedes ver un resumen de comandos con sus parmetros ms usuales.

Resumen de comandos.

En este enlace puedes ver una tabla comparativa de los comandos ms usuales de DOS y de
Linux.

Comparacin de comandos. (0.10 MB)


2.1.- Comandos sobre permisos.
Ya sabrs que los permisos ms frecuentes que puede
tener un fichero son de lectura (r), escritura (w) y ejecucin
(x).

Permiso de lectura: Solamente se permite la lectura,


no la modificacin. En el caso de carpetas, no se
permite la creacin de archivos nuevos ni de
subcarpetas.
Permiso de escritura: Se permite la lectura y la modificacin. En caso de carpetas, se pueden
crear archivos y subcarpetas.
Permiso de ejecucin: Este permiso solamente tiene sentido en caso de archivos ejecutables
(programas) y carpetas. Si este permiso est activo para el usuario concreto, ste podr ejecutar el
programa.

Cuando haces un ls l en la terminal, la informacin de una de sus lneas cualquiera es:


-rwxr-xr-x1 primero primero4096 2011-05-12 fichero
Como puedes observar, los permisos estn separados en tres partes:

Propietario, son lospermisos del propietario de la carpeta.


Grupo, son permisos sobre la carpeta del grupo que se indica a continuacin.
Otros, son permisos del resto de usuarios sobre la carpeta.

Para cambiar los permisos puedes usar los siguientes comandos:

$ chown usuario fich chown (acrnimo de Change Owner): Cambia el propietario de un fichero.
$ chgrp grupo fich chgrp (acrnimo de change group): Cambia el grupo al que pertenece un fichero.
$ chmod permisos fich chmod (acrnimo de change mode): Cambia los permisos de acceso del
fichero aadiendo o quitando, o segn se especifica en la cadena de permisos.
-u[+/-r][+/-w][+/-]x Aade o quita el permiso especificado para el usuario.
-g[+/-r][+/-w][+/-]x Aade o quita el permiso especificado para el grupo.

Modificadores y argumentos para la orden chmod.

u: es el usuario creador. Accin r=4 es el permiso de lectura.


Quin g: es el grupo al que pertenece el usuario. + w=2 es el permiso de escritura.
o: es el resto de usuarios del equipo. - x=1 es el permiso de ejecucin.
Otra forma de modificar los permisos es mediante un nmero
octal de tres cifras por cada grupo de permisos, este nmero
surge de realizar la suma de los permisos que se les quieren
asignar de acuerdo a los valores. r=4, w=2 y x=1.
Por ejemplo, si quieres dar al fichero fichero1 todos los
permisos a todos los usuarios, es decir, al usuario creador, al
grupo al que pertenece este usuario y al resto de usuarios del
sistema, escribe en la terminal una de las siguientes
opciones:

$chmod 777 fichero1.


$chmod ugo + rwx fichero1.

Puedes ver sus nuevos permisos escribiendo en la terminal:


$ file fichero1
O bien con ls l.
Para saber ms
En este enlace puedes ver un vdeo con el manejo del comando chmod.

Comando chmod.

Autoevaluacin
El archivo permisos.txt tiene 751 permisos:
El usuario, el grupo y el resto de usuarios tienen permiso de lectura solamente.
El usuario tiene todos los permisos, el grupo de lectura y ejecucin y el resto de
usuarios slo ejecucin.
Tienen todos solamente permisos de ejecucin.

Debes conocer
En este enlace puedes ver una presentacin con las distintas maneras de cambiar los
permisos de un fichero.

Cambiar los permisos de un fichero.


2.2.- Comandos de utilidades.
Hay muchos ms comandos, ahora vas a ver una serie de comandos que se usan a menudo en el testeo
del equipo:

$ echo mensaje: muestra el mensaje en la pantalla.


$ df (acrnimo de display free): Muestra la ocupacin
del disco.
$du (acrnimo de disk usage): muestra la ocupacin
de disco de cada uno de los ficheros.
$date: muestra la fecha del sistema.
$cal (acrnimo de calendary): muestra el calendario.
$grep: busca las lneas de un fichero donde aparezca
la cadena especificada.
$lpr: manda a imprimir.
$shutdown: apaga o reinicia el sistema.
$uname: muestra informacin del sistema.
$logname: muestra el usuario que se ha conectado.
$apt-get: manipula paquetes .
$at: programa tareas.

Por ejemplo, si escribes en la terminal:


$shutdown r +15
Apagars el sistema en quince minutos a partir de este momento y se reiniciar despus de que el cierre
se haya completado.
$shutdown h now
Apaga el ordenador.

Para saber ms
En este enlace puedes ver una pgina muy completa con los comandos de la shell. Nos
pueden servir cuando tengamos que acceder al equipo en modo seguro.

Comandos del shell bash.

Autoevaluacin
Relaciona los comandos con lo que muestran, escribiendo el nmero asociado a lo
que hace el comando en el hueco correspondiente.

Ejercicio de relacionar

Comando Relacin Resultado

echo 1.- Imprime un fichero.

du 2.- Muestra un mensaje por pantalla.

df 3.- Muestra la ocupacin de los ficheros en disco.


lpr 4.- Muestra el espacio disponible.

Enviar
2.3.- Comandos de red.
Vas a ver unos comandos muy usados en redes que
seguramente te resultan familiares:

$ping: sirve para verificar la respuesta de nuestro host


en la red.
$whois: Permite obtener informacin sobre un
determinado dominio.
$traceroute: Muestra el camino en tiempo real de un
paquete hasta llegar a su destino.
$netstat: Proporciona informacin sobre nuestra red.
-a: Muestra los puertos abiertos.

$ifconfig: Muestra la direccin IP del equipo.

Por ejemplo, para activar o desactivar dispositivos de red puedes usar los siguientes comandos:
$ifconfig eth0 down
$ifconfig eth0 up

Con esto si solo tienes una tarjeta de red (eth0) la desactivar y luego la activar.

Puedes probar tambin a escribir en tu terminal:


$whois google.com
Y obtendrs informacin del dominio google.

Autoevaluacin
Relaciona los comandos con lo que muestran, escribiendo el nmero asociado a lo
que hace el comando en el hueco correspondiente.

Ejercicio de relacionar

Comando Relacin Resultado

ping 1.- Muestra la IP.

ifconfig 2.- Muestra informacin sobre la red.

traceroute 3.- Muestra el camino de un paquete.

netstat 4.- Comprueba la conexin.

Enviar

Para saber ms
En este enlace puedes ver una pgina muy completa con los comandos de red en Linux.
Comandos de red en Linux.
2.4.- Comandos de gestin de usuarios.
Vas a ver una serie de comandos muy usuales en la
administracin bsica de un equipo.

$useradd usuario (acrnimo de user add): aade


usuarios.
-g grupo usuario: crea el usuario usuario perteneciente al grupo.

$userdel usuario (acrnimo de usr delete): elimina usuarios.


-r: borra tambin toda la informacin de su directorio personal.

$passwd usuario: cambia la contrasea de un usuario.


$groupadd nuevogrupo: para aadir un nuevo grupo.
$groupdel nombre_del_grupo: para eliminar un grupo.
$usermod: cambia varios atributos de usuarios.
-g grupo usuario: cambia el grupo por defecto de un usuario.
-G lista_de_grupos: para aadir el usuario a otros grupos.

$id: muestra el nombre y nmero de usuario y grupo/s al que pertenece.


$whoami: muestra el nombre de usuario.
$who: muestra los nombres de los usuarios conectados al sistema, sus terminales y la fecha/hora
de acceso.

Para saber ms
En este enlace puedes ver un vdeo sobre administrar usuarios y grupos desde la terminal en
Ubuntu.

Administracin de usuarios y grupos desde la terminal en Ubuntu.

Por ejemplo, para crear un nuevo usuario, como es una tarea de administrador, escribe en la terminal:
$ sudo useradd usuarioNuevo

Puedes comprobar que se ha creado un nuevo usuario desde el entorno grfico.


En Sistema > Administracin > Usuarios y Grupos, o bien, viendo el contenido del fichero passwd,
escribiendo en la terminal:
$cat /etc/paswwd

Comprueba que en la ltima lnea hay un nuevo usuario, adems, que como UID asignado tiene uno mayor
que 1000, ya que es un usuario normal. Para ver el nmero UID tambin puedes escribir en la terminal:
$id usuarioNuevo
Debes conocer
En el siguiente vdeo vas a ver cmo crear un usuario desde la terminal como superusuario.

Crear usuarios desde la terminal.

Autoevaluacin
Relaciona los comandos con lo que muestran, escribiendo el nmero asociado a lo
que hace el comando en el hueco correspondiente.

Ejercicio de relacionar

Comando Relacin Resultado

USERADD 1.- Lista los procesos.

PS 2.- Muestra los usuarios.

WHO 3.- Mata procesos.

KILL 4.- Aade usuarios.

Enviar

Toda la informacin sobre usuarios, grupos y contraseas se guarda en los archivos:

/etc/passwd: Informacin sobre usuarios.


/etc/group: Informacin sobre grupos.
/etc/shadow: contraseas cifradas.

En estos ficheros se almacena la informacin lnea a lnea (cada una es un usuario o un grupo).
2.5.- Comandos de gestin de procesos.
Tendrs la oportunidad de administrar y gestionar procesos en
ejecucin, mediante comandos especficos para su
tratamiento.
Como aplicacin ms interesante de las seales se estudiar
la sincronizacin de procesos. Se estudiar tambin la
temporizacin de procesos. Con los siguientes comandos
podr ver, cancelar y priorizar procesos en ejecucin.

$ ps (acrnimo de process status): muestra la lista de


procesos con sus PID (Identificacin del proceso) y
nombre. Algunos de los parmetros que admite son:
-a Muestra tambin procesos de otros usuarios.
-x Muestra tambin procesos sin terminal de control (daemons).
-u usuario Muestra los procesos de un usuario especfico.
-f Muestra los procesos en forma de rbol indicando de forma grfica quin es hijo de quin.
-l Con todos los detalles (S: estado (S - Sleep, R - Running, T - Stopped), UID: Identificacin
del usuario que ha lanzado el proceso, PID: Identificacin del proceso PPID: identificacin
del padre del proceso, valor de nice, SZ: uso de memoria y CPU, etc.).
$ kill: Termina procesos.
$top. Muestra en tiempo real la situacin de los procesos.

Por ejemplo, si escribes en la terminal:


$ps
Obtendrs informacin sobre el PID, TTY, TIME y CMD, y qu es eso?, pues vers:

PID: Cada proceso obtiene un nmero de identificacin nico, este es el PID.


TTY: Es la terminal asociada al proceso, tambin puede ser otro dispositivo de entrada.
TIME: El tiempo que el proceso ha estado en ejecucin.
CMD: El nombre del comando que est siendo ejecutado.

Si ahora escribes:
$ps A

Vers todos los procesos que se estn ejecutando.


2.6.- Editores de texto.
Para ver el contenido de los ficheros puedes usar el comando cat, pero si, adems, vas a querer
modificarlos y cambiar algn valor en algn fichero de configuracin, debes usar un editor de textos.
Algunos de los editores de texto ms usados en Linux son:

gedit: es el editor por defecto en modo grfico en distribuciones GNOME.


nano: es el editor por defecto en modo texto.
pico: editor bsico.
vi (Acrnimo de visual): editor de texto caracterstico de Linux, tiene dos modos de trabajo:
Modo comando o dos puntos.
Modo introduccin de texto.

Cuando abres el editor vi desde la terminal, escribiendo vi, ests en modo comando, para poder introducir
texto tienes que pasar a modo de insertar texto, para ello pulsa :i (dos puntos i) o ESC i. Ahora
escribe el texto que quieras que contenga el fichero y para salir pulsas control + c o ESC y tecleas :wq
(si quieres salir grabando) y el nombre del archivo, o :q! (si no quieres grabar)

Cuando ests en modo comando o dos puntos tienes una


serie de parmetros que puedes usar, como son:

Para insertar :i
Para borrar :x
Para buscar :fg
Para salir sin grabar :q!
Para salir y guardar los cambios :q

Para crear un fichero de texto, tambin puedes usar el


comando cat, para ello, escribes en la consola cat > nombre_del_fichero y despus escribes el texto
que quieras que contenga el fichero y para salir pulsas control+d.

Debes conocer
En el siguiente vdeo vas a ver un uso bsico del editor vi.

Manejo del editor vi.

Autoevaluacin
El editor vi:
Es un editor grfico.
Es equivalente a gedit.
Trabaja en modo dos puntos y modo insertar texto.

Para saber ms
En este enlace puedes ver una pgina sobre los comandos y manejo del editor vi.

Editor vi.
3.- Script de Linux.

Caso prctico
Nora e Ivn han estado probando Ubuntu en una
mquina virtual y han decidido instalarlo en su equipo
real, ya que cuando instal Windows 7 se dej una
particin libre.

Ha aprovechado esta particin para ello. Ahora Nora


tiene en el equipo de su casa dos sistemas operativos
en la mquina real: windows 7 y Ubuntu.

Cuando enciende el equipo le aparecen muchas


opciones para arrancar el equipo, y si no selecciona
ninguna, carga por defecto Ubuntu y el resto de la familia quiere que por defecto arranque
Windows 7.

Con los conocimientos que ya tiene va a editar el gestor de arranque, que es un shell script
que se ejecuta al iniciar el sistema y le va a modificar, entendiendo lo que hace el script en
cada lnea.

En Linux hay unos archivos, llamados script o guiones de la shell, que contienen rdenes o comandos que
se van ejecutando. Algunos de estos shell script se ejecutan al iniciarse el sistema, como el gestor de
arranque. Otros, los puede crear el propio usuario para mecanizar tareas que ejecute con frecuencia.

En este apartado vas a aprender a realizar pequeos shell scripts.


3.1.- Qu es un script?
Un script de comandos es un fichero de texto cuyas lneas
son comandos ejecutables, tal y como las escribiras en la
lnea de comandos del shell. Los scripts pueden ejecutarse
como si fueran un nuevo comando. Las lneas que empiezan
con el carcter # son comentarios y son ignoradas por el
shell al ejecutar el script.
El intrprete de comandos o "shell" es tambin un lenguaje de
programacin completo. La programacin de shell se usa
mucho para realizar tareas repetidas con frecuencia.
En Linux cuando hagas un script se suelen comenzar con una
lnea que indica la shell con la que se va a ejecutar el script. P puede ser:

#!/bin/bash
#!/bin/sh
#!/bin/ksh

Cualquier otra lnea del script que comience por # es tomada como un comentario, stos se deben aadir
con el fin de facilitar la lectura del programa.

Para comenzar a crear un script tienes que:


Escribir los comandos en un fichero de texto (con un editor de texto simple o redireccionando con cat >
nombre_script).

Escribir los comandos.


Grabar o guardar.
Cambiar los permisos del fichero para que tenga permiso de ejecucin (con el comando chmod).
Ejecutarle.

Ahora para ejecutarle tienes varias opciones:


Escribir en la lnea de comandos el nombre del fichero de script, como si fuera un nuevo comando. El shell
busca el fichero en los directorios que estn incluidos en la variable PATH. Si el directorio actual '.' no est
en el PATH, para ejecutar el script hay que indicar donde se encuentra, por ejemplo: . /miScript

La invocacin (ejecucin) del archivo puede realizarse:

1. Dando el nombre de archivo como argumento a bash.


$bash miScript
2. Invocndolo directamente como un comando.
$miScript
3. Puede requerirse indicar una va absoluta o relativa, o referirse al directorio actual como
$./miScript
4. Si el directorio actual no est contenido en la variable PATH.

$source miScript

Debes conocer
En la siguiente presentacin vas a ver cmo crear un script.

Crear un script.
Autoevaluacin
Para ejecutar un script:
Con $.
Un script no se puede ejecutar.
Con ./ nombre_script.
Con #.
3.2.- Variables.
Vas a poder usar variables como en cualquier lenguaje de
programacin. Las variables se pueden definir como un
espacio en la memoria del sistema que puede contener un
valor o no. Una variable de bash puede contener un nmero,
un carcter o una cadena de caracteres. No necesitas
declararla.

Para asignar variables usamos el smbolo de igual =, o con el


comando set.

Para obtener el valor de la variable debemos precederla por $, es decir, el carcter $ nos permite
expandir el valor de una variable dentro de una cadena.

Si asignamos a una variable algo entre parntesis, lo que hacemos es crear una matriz del nmero de
elementos que hay entre parntesis o entre comillas.

$colores = (rojo amarillo azul verde blanco)


Si quieres que se introduzcan las variables desde la lnea de comandos, solicitando informacin al usuario
o usuaria usa el comando read (del ingls leer). Este comando tiene como propsito solicitar informacin
al usuario o usuaria. Su ejecucin captura las digitaciones realizadas, hasta obtener un carcter nueva
lnea (tecla Enter).

Existen una serie de variables predefinidas por el shell que


contienen valores tiles. Por ejemplo:

$PWD, el nombre del directorio actual.


$HOME, el nombre del directorio raz del usuario.
$PATH, una lista de directorios separados por :
donde el shell busca los comandos.

El valor de cualquiera de ellas se puede ver en todo momento con el comando echo. Por ejemplo:
$ echo $HOME

Autoevaluacin
Para introducir variables desde la terminal. Usas el comando read?:
Verdadero.
Falso.
3.3.- Parmetros.
Tienes que saber que los parmetros son el conjunto de
datos adicionales colocados detrs del nombre de una orden,
es decir, recibida por un archivo por lotes.
Quiz en ocasiones el usuario o usuaria desee crear un
programa y ejecutarlo con diferentes conjuntos de datos.
Estos parmetros se introducen desde el smbolo del
sistema, despus del nombre del script.
Al ejecutar un script se le pueden pasar argumentos. Cada cadena (separada por espacios) que se le
indique detrs del nombre del fichero en la lnea de comandos es un argumento (si se desea pasar una
cadena que contiene espacios como un slo argumento hay que encerrarla entre comillas).

Dentro del script, las variables $1, $2, $3, ... se substituyen por la cadena correspondiente a cada
parmetro.

$0: es la llamada al script.


$1: es el primer parmetro que se pasa.
$2: es el segundo, etc.
$#: es el nmero de parmetros que se pasan.
$@ y $*: son todos los parmetros, que se listan de una vez, en el orden que se han pasado.
$$: pid que tiene nuestro script. Nmero de procesos del shell.
$?: es el valor de salida del ltimo comando ejecutado. En un "exit 1", se devolvera el valor 1.
Si todo sale bien, se devuelve el valor 0.
$_: nos da el ltimo argumento que hemos utilizado.

Autoevaluacin
El parmetro $2:
Es el segundo parmetro.
Es el primer parmetro.
Es la llamada al script.
3.4.- Comandos de programacin.
El comando de programacin: expr recibe nmeros y
operadores aritmticos como argumentos, efecta los
clculos indicados y devuelve el resultado. Cada argumento
debe estar separado por blancos. Opera slo con nmeros
enteros y realiza las operaciones suma (+), resta (-),
multiplicacin (*), divisin entera (/), resto de divisin entera
(%). Los smbolos * y / deben ser escapados escribiendo \* y
\/, al igual que los parntesis, que deben escribirse \( y \).
El comando expr usa la convencin del lenguaje C para
cierto y falso: 0 es falso, y distinto de 0 es cierto. No confundir
con la convencin que toma el shell en sus valores true y false, que es la contraria.
Expr tambin realiza operaciones lgicas de comparacin, aceptando los operadores =, !=, >, <, >= y <=.
El operador != es "no igual"; el ! se usa para negar.

True: Este comando no hace nada, slo devuelve siempre 0, el valor verdadero. La ejecucin correcta de
un comando cualquiera devuelve 0.
False: Este comando tampoco hace nada slo devuelve siempre 1. Cualquier valor diferente de 0 se toma
como falso. Las diversas condiciones de error de ejecucin de los comandos devuelven valores diferentes
de 0. Su significado es propio de cada comando.
Test: Este comando prueba condiciones y devuelve valor cierto (0) o falso (distinto de 0) segn el criterio
de cierto y falso del shell. Esto lo hace apto para usar en la condicin de if. Tiene dos formas
equivalentes.

test expresin
[ expresin ]

Los espacios en blanco que hay entre la expresin y los corchetes son necesarios y debes ponerles
siempre.

Autoevaluacin
Es equivalente test expresin o [ expresin ]?
Verdadero.
Falso.
3.5.- Operadores de comparacin.
El comando test nos permite llevar a cabo operaciones lgicas
sencillas con ficheros, cadenas y nmeros enteros. El formato de
este comando es
test expresion
O de forma equivalente
[ expresion ]
La expresin puede tener cualquiera de los formatos que se
muestran en las siguientes tablas:
Los operadores relacionales aritmticos son:

-lt: menor estricto que -le: menor o igual que -eq: igual que

-gt: mayor estricto que -ge: mayor o igual que -ne: no igual que

Comprobacin de atributos de fichero.

Operador Verdad (TRUE) si:

-d fichero El fichero existe y es un directorio.

-e fichero El fichero existe.

El fichero existe y es un fichero regular (no un directorio, u otro tipo de fichero


-f fichero
especial).

-r fichero Tienes permiso de lectura en fichero.

-s fichero El fichero existe y no esta vacio.

-w fichero Tienes permiso de escritura en fichero.

-x fichero Tienes permiso de ejecucin en fichero (o de bsqueda si es un directorio).

-O fichero Eres el dueo del fichero.

-G fichero El grupo del fichero es igual al tuyo.

fichero1 -nt
El fichero1 es ms reciente que fichero2.
fichero2

fichero1 -ot
El fichero1 es ms antiguo que fichero2.
fichero2

Comparaciones de cadenas alfanumricas

Operador Verdad (TRUE) si:

cadena1 = cadena2 cadena1 es igual a cadena2.

cadena1 != cadena2 cadena1 no es igual a cadena2.

cadena1 < cadena2 cadena1 es menor que cadena2.

cadena1 > cadena 2 cadena1 es mayor que cadena 2.


-n cadena1 cadena1 no es igual al valor nulo (longitud mayor que 0).

-z cadena1 cadena1 tiene un valor nulo (longitud 0).


3.6.- Operaciones aritmticas.
Para realizar operaciones aritmticas se utiliza el comando expr, su
sintaxis es:
expr ARG1 OPERACION ARG2.

Donde OPERACION puede ser:

+ Suma.
- Resta.
/ Divisin (barra invertida).
Multiplicacin.
%resto.

Prueba a hacer los siguientes ejemplos en la terminal:

$ expr 10 + 10
20
$ x=10
$ y=2
$ expr $x / $y
5
$ resta=`expr $x - $y`
$ mult=`expr $x (barra invertida)* $y`
$ echo "$x menos $y vale $resta"
10 menos 2 vale 8
$ echo "La multiplicacin de $x y $y es $mult"
La multiplicacin de 10 y 2 es 20

Tienesvarias formas de calcular valores dentro de un shell script. Para esto se utiliza una sintaxis
especial, y es muy importante que los valores de las variables que utilicen para hacer estos clculos sean
nmeros nicamente. La sintaxis para hacer operaciones aritmticas es la siguiente:
$[expresin] o bien $((expresin))

Las operaciones que puedes realizar son:

suma $((1+1))
resta $((2-1))
multiplicacin $((2*2))
divisin $((2/2])
otras como suma de bits, obtener el mdulo, evaluacin de igualdad, etc.

Prueba esto en la lnea de comandos (o en una shell):


$echo 1 + 1
Si esperabas ver '2', quedars desilusionado o desilusionada. La solucin es sta:
$echo $((1+1))
Esto producir una salida ms 'lgica'. Esto se hace para evaluar una expresin aritmtica. Tambin
puedes hacerlo de esta manera:
echo $[1+1]
Si necesitas usar fracciones, u otras matemticas, puede utilizar bc para evaluar expresiones aritmticas.
Si ejecuta "echo $[3/4]" en la lnea de comandos, devolver 0, porque bash slo utiliza enteros en sus
respuestas. Si ejecuta "echo 3/4|bc -l", devolver 0.75.
3.7.- Depuracin.
Al intentar ejecutar un script, te puede ocurrir que no se ejecute por
algn error sintctico. Para facilitarte la tarea de buscar el error est
la depuracin.
Se llama depuracin ("debug") de un programa al proceso de
verificar su funcionamiento en todos los casos posibles y corregir
sus errores ("bugs", "pulgas"; del ingls, literalmente, "chinche"; por
extensin, insecto pequeo).

Cuando se est escribiendo un script, puede convenir invocarlo de


forma especial para generar informacin de comandos ejecutados y errores, para ayudar en la depuracin.
Las salidas se imprimen en el error estndar, por lo que pueden direccionarse a un archivo sin mezclarse
con la salida del comando.

bash -x nombre_de_script
Imprime cada comando en la salida.

bash -v nombre_del_script
Invoca el script obteniendo informacin sobre cada comando ejecutado.
4.- Estructuras y funciones.

Caso prctico
En la empresa de prcticas de Ivn, le han pedido que
ya que se defiende con el entorno de texto de Ubuntu,
que ayude en las tareas de administracin del servidor
de la empresa que es una distribucin de Linux y slo
trabaja en entorno de texto.

Va a generar un script de manera que los usuarios se


puedan dar de alta mediante un script y as, slo tengan
que introducir su usuario y contrasea, sin que tengan
necesidad de saberse los comandos necesarios.

Ivn va a tener que recordar las estructuras y funciones que se pueden definir desde la
terminal.

En este apartado vas a ver un conjunto de sentencias de control que soporta la bash Shell, que te van a
permitir tomar decisiones o repetir ciertos grupos de comandos con facilidad. Las sentencias con las que
vas a trabajar son:

if .then.fi
fordodone
whiledo.done
casein).) esac
funciones.
4.1.- Estructuras condicionales.
Las sentencias condicionales tienen muchas formas. La ms
bsica es:

if expresin then sentencia,

Dnde sentencia slo se ejecuta si la expresin se evala


como verdadera.

Los condicionales tienen otras formas compuestas, como:


if expresin then sentencia1 else sentencia2.
Aqu sentencia1 se ejecuta si la expresin es verdadera. De
otra forma se ejecuta sentencia2.

Otra forma ms de condicional es:


if expresin1 then sentencia1 else if expresin2 then sentencia2 else sentencia3.
En esta forma slo se aade else if expresion2 then sentencia2, que hace que sentencia2 se ejecute si
expresin2 se evala verdadera.

El comando if implementa una estructura alternativa. Su sintaxis es

if expresin ; then comandos1 ; [else comandos2 ;] fi


if expresin
then

comandos1

[else

comandos2]

fi
Construcciones ms complejas pueden hacerse usando elif para anidar alternativas.

Autoevaluacin
Con la sentencia IF cuando comparas dos cadenas, es necesario el ELSE?
Verdadero.
Falso.

Para practicar puedes intentar ejecutar el siguiente script:


#!/bin/bash
if [ -w /etc/passwd ]
then

echo "Tengo permisos de escritura en el archivo /etc/passwd"

else

echo "NO tengo permisos de escritura en el archivo /etc/passwd"

fi
Es importante la colocacin de las palabras reservadas de la estructura, es decir, si no quieres poner ";"
como se indica arriba, debes poner cada instruccin como se indica en el ejemplo anterior para que
funcione correctamente.
4.2.- Ficheros con la orden FOR
Este comando le usars para implementar una estructura
repetitiva, en la cual, una secuencia de comandos se ejecuta
una y otra vez.
Su sintaxis es
for variable in lista ; do comandos ; done
Se puede probar en la lnea de comandos:
for NUMERO in 1 2 3 4 ; do echo $NUMERO ; done
for NOMBRE in alfa beta gamma ; do echo $NOMBRE ; done
for ARCH in * ; do echo Nombre archivo $ARCH ; done
El carcter * es expandido por el shell colocando en su lugar todos los nombres de archivo del directorio
actual.

Puedes probar a ejecutar el siguiente ejemplo:


for LETRA in a b c d e f
do
echo $LETRA
done
Ver que te miestra las letras comprendidas desde la a hasta la f.
La variable del for contendr cada uno de los valores especificados despus del in en cada bucle.
Otro ejemplo clsico es que la variable tome en cada bucle el valor de un parmetro proporcionado en la
lnea de comandos.
for PAMETRO in $*
do
echo $PARAMETRO
done
Mostrar cada uno de los parmetros tecleados en la lnea de comando.
Otro ejemplo, variando la lista es:

for i in `seq 0 9`;


do

echo $i

done
La lista cuando es un conjunto largo, la puedes expresar as: (valor inicial; valor final; como se
incrementa). Un ejemplo tpico es la tabla de multiplicar:
#!/bin/bash
echo Introduce un numero para hacer su tabla de multiplicar:
read n
for i in ((i=0;i<=10;i++))
do

echo $n * $i es igual a $[n*i]

done

Autoevaluacin
Con la orden FOR, es necesario el IN?
Verdadero.
Falso.
4.3.- La estructura CASE.
Este comando implementa alternativas o "casos". Elige entre
mltiples secuencias de comandos la secuencia a ejecutar.
La eleccin la realiza encontrando el primer patrn con el que
coincida una cadena de caracteres. Su sintaxis es

case expresin in
patrn1) comandos1;;
patrn2) comandos2;;
...
*) comandosN;;
esac
El patrn *) se coloca al final, representa el patrn por defecto. Sus comandos se ejecutan en el
caso de que expresin no coincida con ninguno de los patrones precedentes, es decir, cuando ninguna de
las opciones anteriores fue satisfecha.
La estructura case la usars normalmente para generar mens y poder elegir distintas opciones. Puedes
intentar hacer el siguiente ejemplo:
#!/bin/bash
echo Elige alguna de las siguientes opciones:
echo 1 Tu directorio de trabajo es:
echo 2 El usuario es:
echo 3 Salir
read opcin
case $opcion in pwd ;;
whoami;;
exit;;
*) echo No has elegido ninguna opcin propuesta.;;
esac

Autoevaluacin
Con la estructura CASE, se generan mens?
Verdadero.
Falso.
4.4.- La estructura WHILE.
Este comando implementa una estructura repetitiva, en la cual, el conjunto de comandos se ejecuta
mientras se mantenga vlida una condicin. La condicin se examina al principio y luego cada vez que se
completa la secuencia de comandos. Si la condicin es falsa desde la primera vez, los comandos no se
ejecutan nunca.
Su sintaxis es
while condicin ; do comandos ; done

La construccin while (en ingls, significa mientras) es adecuada en


los casos en los que hay que evaluar cundo hacer algo.
En cambio, el uso del for sigue el patrn de repetirse mientras se
cumpla una condicin. Prueba a intentar el siguiente ejemplo:
EN="s"
while [ $EN != "S" ];
do

read -p "Escribe S para salir: " EN

done
En el anterior ejemplo podemos ver la sencilla sintaxis que tiene el
while; el ciclo no terminara hasta que el usuario escriba la letra S
(debe ser mayscula).

Debes conocer
Aqu tienes enlaces a pginas con pequeos scripts explicados lnea a lnea:

Ejemplos de scripts.

Autoevaluacin
Relaciona el comando con una breve descripcin, escribiendo el nmero asociado a
lo que hace el comando en el hueco correspondiente.

Ejercicio de relacionar

Smbolo Relacin Significado

If Se complementa con el do y done.

for Estructura condicional.

while Necesitas el IN.

Case Proporciona un men.

Enviar
4.5.- Las funciones.
Las funciones en los scripts te sern necesarias cuando una tarea
que se realiza repetidamente dentro del mismo programa puede
escribirse aparte e invocarse como una "funcin".

Para definir una funcin es preciso elegir un nombre y escribir un


trozo de cdigo asociado a ese nombre. La funcin suele recibir
algn valor como "parmetro" en base al cual realiza su tarea,
funcionan exactamente igual que los script s, de forma que en la
llamada, se la pasan los parmetros y luego, dentro de la funcin,
se accede a ellos mediante $_. Definida as la funcin, para
introducirla en el script, basta escribir su nombre y colcar el valor del
parmetro entre parntesis.

Una funcin o subrutina es una agrupacin de comandos bajo un


mismo nombre. Esto nos permitir dividir el programa en bloques y programar cada bloque por separado, o
tambin agrupar una serie de comandos que se ejecutan a menudo, bajo un mismo nombre.

function nombre_funcin () {

....

Ejemplo 1: Supongamos el siguiente script llamado "miScript" que se compone de la funcin ejemplo y la
llamada a la misma. Si en lnea de comandos escribo "$bash miScript Hola", la salida del script ser
"Hola"

#!/bin/bash

function ejemplo {

echo $1."

# Llamada a la funcin:

Ejemplo $1

Ejemplo 2: En el siguiente ejemplo vamos a ver cmo puedo crear un script sin parmetros, pero sin
embargo s pasarle parmetros a la funcin. Supongamos que al igual que antes el script se llama
"miScript". Si en lnea de comandos escribo "$bash miScript", la salida del script ser "Hola"

#!/bin/bash

function ejemplo {

echo $1."

# Llamada a la funcin:
Ejemplo "Hola"

Autoevaluacin
Para invocar a una funcin en un script, es necesario simplemente escribir su
nombre?
Verdadero.
Falso.

Para saber ms
En este enlace puedes ver un pdf con un resumen de programacin con bash.

Programacin con bash. (1.00 MB)


Anexo.- Licencias de recursos.

Licencias de recursos utilizados en la Unidad de Trabajo.

Datos del
Recurso (1) Datos del recurso (1) Recurso (2)
recurso (2)

Autora: Nuria
Barroso Ruiz.
Autora: Nuria Barroso Ruiz. Licencia:
Licencia: Copyright (cita). Uso Copyright (cita).
educativo. Uso educativo.
Procedencia: Captura de Procedencia:
pantalla de Ubuntu desde Captura de
windows7. pantalla de
Ubuntu desde
windows7.

Autora: Nuria
Barroso Ruiz.
Autora: Nuria Barroso Ruiz. Licencia:
Licencia: Copyright (cita). Uso Copyright (cita).
educativo. Uso educativo.
Procedencia: Captura de Procedencia:
pantalla Linux GPL. Captura de
pantalla de
windows.

Autora: Nuria
Barroso Ruiz.
Autora: Nuria Barroso Ruiz. Licencia:
Licencia: Copyright (cita). Uso Copyright (cita).
educativo. Uso educativo.
Procedencia: Captura de Procedencia:
pantalla de Windows7. Grabador de
escritorio de
Ubuntu.

Autora: Nuria
Barroso Ruiz.
Autora: Nuria Barroso Ruiz. Licencia:
Licencia: Copyright (cita). Uso Copyright (cita).
educativo. Uso educativo.
Procedencia: Captura de Procedencia:
pantalla de windows. Captura de
pantalla de
windows.

Autora: Nuria
Barroso Ruiz.
Autora: Nuria Barroso Ruiz. Licencia:
Licencia: Copyright (cita). Uso Copyright (cita).
educativo. Uso educativo.
Procedencia: Captura de Procedencia:
pantalla de windows7. Captura de
pantalla de
windows.
Autora: Nuria
Autora: Nuria Barroso Ruiz. Barroso Ruiz.
Licencia: Copyright (cita). Uso Licencia:
educativo. Copyright (cita).
Procedencia: Captura de Uso educativo.
pantalla de windows. Procedencia:
Grabador de
escritorio de
Ubuntu.

Autora: Nuria
Barroso Ruiz.
Autora: Nuria Barroso Ruiz. Licencia:
Licencia: Copyright (cita). Uso Copyright (cita).
educativo. Uso educativo.
Procedencia: Captura de Procedencia:
pantalla con windows7. Captura de
pantalla con
windows.

Autora: Nuria
Barroso Ruiz.
Autora: Nuria Barroso Ruiz. Licencia:
Licencia: Copyright (cita). Uso Copyright (cita).
educativo. Uso educativo.
Procedencia: Grabador de Procedencia:
escritorio de ubuntu. Captura de
pantalla de
windows.

Autora: Nuria
Barroso Ruiz.
Autora: Nuria Barroso Ruiz. Licencia:
Licencia: Copyright (cita). Uso Copyright (cita).
educativo. Uso educativo.
Procedencia: Captura de Procedencia:
pantalla de windows. Captura de
pantalla de
windows.

Autora: Nuria
Barroso Ruiz.
Autora: Nuria Barroso Ruiz. Licencia:
Licencia: Copyright (cita). Uso Copyright (cita).
educativo. Uso educativo.
Procedencia: Captura de Procedencia:
pantalla de windows. Captura de
pantalla de
windows.

Autora: Nuria
Barroso Ruiz.
Autora: Nuria Barroso Ruiz. Licencia:
Licencia: Copyright (cita). Uso Copyright (cita).
educativo. Uso educativo.
Procedencia: Captura de Procedencia:
pantalla de windows. Captura de
pantalla de
windows.
Autora: Nuria
Autora: Nuria Barroso Ruiz. Barroso Ruiz.
Licencia: Copyright (cita). Uso Licencia:
educativo. Copyright (cita).
Procedencia: Captura de Uso educativo.
pantalla de windows. Procedencia:
Captura de
pantalla de
windows.

Autora: Nuria Barroso Ruiz.


Licencia: Copyright (cita). Uso
educativo.
Procedencia: Captura de
pantalla de windows.

S-ar putea să vă placă și