viernes, 27 de abril de 2012

EXAMEN DE RECUPERACION Y EJERCICIOS

Todos los que no hayan entregado el mínimo de ejercicios en la 2ª Evaluación, tendrán que entregar todos los ejercicios que no entregaron en su día obligatoriamente el día 27 de abril para su corrección y explicación.

El examen de recuperación de la segunda evaluación será el día 27 de abril a las 15:30 horas.

miércoles, 25 de abril de 2012

ACTIVIDADES 25 DE ABRIL

1. Utilice el comando man para obtener información sobre ls, cd, logout, mkdir y pwd. Lea la descripción.
2. Utilice un listado de la carpeta /tmp ordenados por fecha.
3. Visualice el contenido de /, /home y /var con el comando ls-l. Indique el propietario y el grupo de los directorios contenidos en dichas carpetas.
4. Crea un archivo utilizando vi llamado "texto1.txt" en tu directorio home con el siguiente contenido: "En un lugar de la Mancha". Crea una copia de dicho archivo en el mismo directorio con el nombre "texto2.txt". Edita el archivo "texto2.txt" con vi, modifica su contenido por el siguiente: "En un sitio de la Mancha". Guarda el archivo modificado y Utiliza el comando diff para comprobar las diferencias entre "texto1.txt" y "texto2.txt".
5. Crea la carpeta "backup" en tu directorio home. Copia con una sola instrucción todos los archivos que comiencen por contengan "ext" en su nombre.
6. Borra todos los archivos que terminen en 1.txt y 2.txt de tu directorio home con una sola instrucción.
7. Explica brevemente como funcionan los permisos en Linux, los tipos que hay y para qué sirven.
8. Indica y explica los dos tipos de enlaces que hay en Linux y como están implementados.
9. Indica las diferencias entre el directorio /home y tu directorio home.
10.  ¿Qué significa que Linux diferencia entre mayúsculas y minúsculas?. Pon un ejemplo con una instrucción shell que funcione de forma diferente por el uso de mayúsculas y minúsculas.
11. Explica por qué no hay letras de unidad (C:, D:, etc) en Linux.
12. Haz un ls -l de la carpeta /bin. Observa los permisos de ejecución que tienen los archivos. ¿Por qué hay tantos en esta carpeta?.
13. Indica la utilidad de los comandos:
ls
pwd
mkdir
rm
diff

Pon ejemplos de uso de cada uno de ellos.
14. Utiliza una instrucción para mostar el archivo /etc/passwd. ¿Qué contiene este archivo?.

lunes, 23 de abril de 2012

ACTIVIDAD GUIONES SHELL (23 DE ABRIL)

Realiza las siguientes operaciones con un único comando. Debajo de cada apartado escribe el comando utilizado.

- Sitúate en tu directorio home (cd). Comprueba que estás situado en dicho directorio (pwd). Crea utilizando el comando vi dos archivos de texto diferentes: "abril.txt" y "gato".

 - Crea dos directorios dentro de tu directorio home (mkdir): "uno" y "dos".

- Crea una copia de "abril.txt" dentro de "uno" llamada "abril2.txt" (cp).

- Crea una copia de "abril.txt" dentro de "uno" llamada "abril3.txt".

- Crea una copia de "abril.txt" dentro de "uno" llamada "abrila.txt". 

- Crea una copia de "gato" dentro de dos llamada "gatazo.txt".

- Crea una copia de "gato" dentro de dos llamada "gataco.txt".

- Crea una copia de "gato" dentro de dos llamada "gatozo.txt".

- Crea una copia de "abril.txt" dento de "dos" llamada "abril2.doc"

- Muestra el contenido del achivo abril2.doc situado en la carpeta "dos" utilizando una ruta relativa (cat).

- Muestra el contenido del achivo abril3.txt situado en la carpeta "uno" utilizando una ruta relativa (cat).

- Mueve el archivo "gato" del directorio home al directorio dos (mv).

- Muestra el contenido de todos los subdirectorios de tu carpeta home (ls -R|more)

- Elimina del directorio dos todos los archivos que comiencen por gata (rm)

- Elimina del directorio uno todos los archivos que terminen en 2 ó 3 y tengan cualquier extensión.



miércoles, 11 de abril de 2012

Comandos Shell

Comandos Linux/Unix más frecuentes

cat, type, Ver contenido de un archivo.
cd, chdir cd, chdir Cambio el directorio en curso.
chmod, attrib, Cambia los atributos.
clear, cls,Borra la pantalla.
ls, dir,Ver contenido de directorio.
mkdir, md Creación de subdirectorio.
more, more Muestra un archivo pantalla por pantalla.
mv move Mover un archivo o directorio.
rmdir rd, rmdir Eliminación de subdirectorio.
rm -r, deltree Eliminación de subdirectorio y todo su contenido.



Comandos básicos

man comando
Ayuda del comandoespecificado
man gcc
man -k printer
 
vi fich
Edita o crea un archivo.
vi .profile

logout
Salir de la sesión actual

exit
cierra el terminal

cat fich1 [...fichN]
Concatena y muestra archivos
 cat /etc/passwd
 cat dict1 dict2 dict

cd [dir]

Cambia de directorio
cd /tmp

chmod permisos fich

Cambia los permisos de un archivo 
chmod +x miscript

chown usuario:grupo fich
Cambia el dueño un archivo
chown nobody miscript

cp fich1...fichN dir
Copia archivos
cp foo foo.backup

diff [-e]arch1 arch2
Encuentra diferencias entre archivos
diff foo.c newfoo.c

du [-sabr] fich
Indica el tamaño del directorio
du -s /home/

file arch
Muestra el tipo de un archivo
file arc_desconocido

find dir test acción
Encuentra archivos.
find . -name ‘‘.bak’’ -print

grep [-cilnv] expr archivos
Busca patrones en archivos
grep mike /etc/passwd

head -count fich
Muestra el inicio de un archivo
head prog1.c

mkdir dir
Crea un directorio.
mkdir temp

mv fich1 ...fichN dir
Mueve un archivo(s) a un directorio
mv a.out prog1
mv fich1 fich2
Renombra un archivo. 
mv .c prog_dir

less / more fich(s)
Visualiza página a página un
archivo.
more muy_largo.c

ln [-s] fich acceso
Crea un acceso directo a un
archivo
ln -s /users/mike/.profile

ls 
Lista el contenido del directorio 
ls -l /usr/bin
ls -l (listado con detalle)
ls -a (muestra archivos ocultos)
ls -R (muestra el contenido de los subdirectorios)
ls -C (muestra los directorios y archivos en columnas)

Significado de los datos mostrados con ls -l


- r w x r w x r w x 2 user user 133005 2008-10-22 09:11 archivo.txt
- quiere decir que es un archivo, d un directorio y l un enlace.
rwx son los permisos del propietario (r lectura w escritura y x ejecución).
rwx son los permisos del grupo (r lectura w escritura y x ejecución).
rwx son los permisos del resto de usuarios (r lectura w escritura y x ejecución).
2 es el número de enlaces del archivo o el nº de subdirectorios si es un directorio.
user es el propietario
user es el grupo
133005 es el tamaño en bytes
2008-10-22 09:11es la fecha y hora de creación/modificación
archivo.txt es el nombre del archivo.


pwd
Muestra la ruta del directorio actual
pwd

rm fich
Borra un fichero.
rm foo.c

rm -r dir
Borra todo un directorio
rm -rf prog_dir

rmdir dir
Borra un directorio vacío
rmdir prog_dir

tail -count fich
Muestra el final de un archivo
tail prog1.c



at [-lr] hora [fecha]
Ejecuta un comando mas tarde
at 6pm Friday miscript

cal [[mes] año]
Muestra un calendario del
mes/año
cal 1 2025

date [mmddhhmm] [+form]
Muestra la hora y la fecha
date

echo string
Escribe mensaje en la salida
estándar
echo ``Hola mundo''

finger usuario
Muestra información general sobre un usuario en la red
finger nn@maquina.aca.com.co

id Número
Muestra el identificador de un usuario
id usuario

ps [axiu]
Muestra información sobre los procesos que se están ejecutando en el sistema
ps -ux
ps -ef
 
kill [-señal] PID 
Matar un proceso 
kill 1234


passwd 
Cambia la contraseña. 
passwd


who / rwho
Muestra información de los usuarios conectados al sistema.
who



Comandos en background
Linux, como cualquier sistema Unix, puede ejecutar varias tareas al mismo tiempo. En
sistemas monoprocesador, se asigna un determinado tiempo a cada tarea de manera que,
al usuario, le parece que se ejecutan al mismo tiempo.

Para ejecutar un programa en background, basta con poner el signo ampersand (&) al
término de la línea de comandos. Por ejemplo, si se quisiera copiar el directorio

/usr/src/linux al directorio /tmp:
#cp -r /usr/src/linux /tmp &
#
Cuando ha terminado la ejecución del programa, el sistema lo reporta mediante un
mensaje:
#
[Done] cp -r /usr/src/linux /tmp
#
Si se hubiese ejecutado el programa y no se hubiese puesto el ampersand, se podría
pasarlo a background de la siguiente manera:
1. Se suspende la ejecución del programa, pulsando Ctrl+Z.
2. Se ejecutamos la siguiente orden: bg


Alias
Un alias'es un nombre alternativo para un comando. Así, en lugar de escribir el
comando propiamente dicho, escribiríamos el alias de dicho comando.
Un alias se puede definir por varios motivos, por ejemplo:

· Dar nombres familiares a comandos comunes:
alias md=’mkdir’
Crearía un alias para el comando mkdir, similar al de DOS.

· Dar nombres a comandos largos:
alias tbz2=’tar -cv --use-compress-program=bzip2 -f’
Crearía un alias para el comando tar para que use el compresor bzip2 en lugar de
gzip.

Para no tener que escribir todos los alias siempre que entremos al sistema, escribiríamos
dicho alias en el archivo /.bash_profile

Redireccionamiento de E/S
La filosofía de Linux/Unix es en extremo modular. Se prefieren las herramientas
pequeñas con tareas puntuales a las megaherramientas que realizan todo. Para hacer el
modelo completo es necesario proveer el medio para ensamblar estas herramientas en
estructuras mas complejas. Esto se realiza por medio del redireccionamiento de las
entradas y las salidas.

Salida:
Se quiere saber los archivos que empiezan por i o I y almacenarlo en un archivo:
ls [iI]* > listado.txt


Tuberías o pipes
La filosofía de Linux/Unix es en extremo modular. Se prefieren las herramientas
pequeñas con tareas puntuales a las meta-herramientas que realizan todo.

Esto se realiza por medio del redireccionamiento de las entradas y salidas de la ejecucion de tareas mediante tuberías | . De esta forma la salida de una instrucción será la entrada de la siguiente: ls -l|more (la salida del comando "ls-l" será la entrada de el comando "more".

Rutas relativas y absolutas

Si una ruta es relativa no incluye información acerca de la carpeta en la que se realizan las instrucciones sino que dicha ruta parte del directorio en que nos encontramos al ejecutarlas. En cambio, en una ruta absoluta indicamos todo el camino necesario para poder ejecutar una instrucción.

EJEMPLO:
Dentro de nuestro directorio Home tenemos un archivo llamado "prueba.txt" y un directorio llamado "uno".

Para mover el archivo "prueba.txt" dentro de la carpeta "uno" con ruta relativa:
mv prueba.txt uno

Para hacerlo con ruta absoluta:
mv /home/nombredeusuario/prueba.txt /home/nombredeusuario/uno


Comodines

En Linux se pueden usar: *,? y [].

Por ejemplo "ls *.doc"  muestra todos los archivos con extensión .doc.

Otro ejemplo sería "ls *ext*, que mostraria todos los archivos que comiencen como sea, contengas "ext" y terminen como sea. Es decir cualquier archivo que contenga "ext".

Finalmente "ls *[12].txt" mostraría todos los archivos que comiencen de cualquier forma terminando en 1.txt o 2.txt. Los corchetes contienen posibles alternativas, la instrucción "ls *[12].txt" equivaldría a dos instrucciones: "ls *2.txt" y "ls *1.txt".