Professional Documents
Culture Documents
U NIVERSIDAD DE VALLADOLID
Curso 2005/2006
ndice general
1. Introduccin a Unix
1.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1. Qu es Unix? . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2. El entorno de trabajo: el shell . . . . . . . . . . . . . . . .
1.1.3. Usuarios y grupos . . . . . . . . . . . . . . . . . . . . . .
1.2. Iniciacin a Unix . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Entrada y salida del sistema . . . . . . . . . . . . . . . . .
1.3. Estructura del sistema de archivos de Unix . . . . . . . . . . . . . .
1.3.1. Tipos de archivos . . . . . . . . . . . . . . . . . . . . . . .
1.3.2. El camino o path . . . . . . . . . . . . . . . . . . . . . . .
1.3.3. Estructura del sistema de archivos de Unix . . . . . . . . .
1.3.4. El directorio $HOME . . . . . . . . . . . . . . . . . . . . .
1.3.5. Permisos . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4. Comandos bsicos de Unix . . . . . . . . . . . . . . . . . . . . . .
1.4.1. Algunos comandos sencillos de Unix . . . . . . . . . . . .
1.4.2. Listado del contenido de directorios: comando ls . . . . .
1.4.3. Creacin de subdirectorios: comando mkdir . . . . . . . .
1.4.4. Borrado de subdirectorios: comando rmdir . . . . . . . .
1.4.5. Cambio de directorio: comando cd . . . . . . . . . . . . .
1.4.6. Situacin actual: comando pwd . . . . . . . . . . . . . . .
1.4.7. Copia de ficheros: comando cp . . . . . . . . . . . . . . .
1.4.8. Mover o cambio de nombre de ficheros: comando mv . . . .
1.4.9. Borrado de ficheros: comando rm . . . . . . . . . . . . . .
1.4.10. Cambio de modo de los ficheros: comando chmod . . . . .
1.4.11. Visualizacin sin formato de un fichero: comando cat . . .
1.4.12. Visualizacin de ficheros pantalla a pantalla: comando more
1.5. Comandos fundamentales del editor vi . . . . . . . . . . . . . . .
1.6. Y despus qu? . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.1. Obtener ms informacin con el manual del sistema . . . .
2. Guin de prcticas
2.1. Entrando al sistema . . .
2.2. Conexin . . . . . . . .
2.3. Desconexin . . . . . .
2.4. Transferencia de ficheros
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
I
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
2
2
2
3
3
3
4
5
6
6
6
7
7
8
8
8
8
9
9
9
10
10
10
11
12
12
.
.
.
.
13
13
14
15
16
NDICE GENERAL
II
2.5.
2.6.
2.7.
2.8.
2.9.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
19
20
21
22
22
23
23
26
Captulo 1
Introduccin a Unix
1.1.
Introduccin
La mayor parte de los ordenadores que existen en la actualidad estn diseados de forma que puedan ejecutar diversas tareas o programas. Estos programas pueden ir desde un
procesador de textos, a un programa para la animacin de grficos tridimensionales o distintos tipos de juegos. Para su correcto funcionamiento deben ser adems capaces de acceder a
las recursos de que dispone el ordenador, como por ejemplo escribir o leer datos en un disco duro, mostrar un grfico por pantalla, etc. Es evidente, que si cada programa actuase de
una forma independiente, existiran graves problemas y conflictos, puesto que, por ejemplo,
tendran libertad para escribir sus datos sobre los de otro, etc.
Para solucionar este tipo de problemas se desarrollaron los Sistemas Operativos, los
cuales aportan unos mecanismos y reglas bsicas de funcionamiento, de forma que los
programas puedan acceder a los recursos del ordenador de una forma adecuada. Aunque
sta fue la funcionalidad inicial de los sistemas operativos, con el tiempo se han aadido
otras muchas, como la ejecucin de programas, el control de la memoria del ordenador, la
creacin y control de interfaces grficas de usuario, etc.
En la actualidad existen una gran cantidad de sistemas operativos dependiendo del tipo
de ordenador en el que se va a ejecutar. Por ejemplo para los PC uno de los sistemas operativos ms difundidos es Microsoft Windows, tanto en las versiones 95, 98, ME, NT 4.0,
2000 y la nueva XP. Otros posibles sistemas operativos para este tipo de ordenadores son
Solaris, OS/2, BeOS, Microsoft DOS, o uno de los sistemas operativos ms poderosos y en
rpida expansin para PC: Linux.
1.1.1.
Qu es Unix?
para facilitar su uso. Pese a todo la enorme flexibilidad de Unix y su gran estabilidad (y el
bajo coste, en sus versiones de libre distribucin) han hecho de este sistema operativo una
opcin muy a tener en cuenta por aquellos usuarios que se dediquen a trabajar a travs de
redes, naveguen por Internet, o se dediquen a la programacin.
Linux es un sistema operativo para PC, gratuito y de libre distribucin inspirado en el
sistema Unix, escrito por Linus Torvalds con la ayuda de miles de programadores de todo
el mundo comunicados a travs de Internet. El futuro de Linux es brillante y cada vez ms
y ms gente y ms y ms empresas entre otras IBM, Intel y Corel estn apoyando este
proyecto, con lo que el sistema ser cada vez ms sencillo de emplear y los programas sern
cada vez mejores.
1.1.2.
Al contrario que otros sistemas operativos, por defecto el trabajo con Unix no se realiza de una forma grfica, sino introduciendo comandos de forma manual. Unix dispone
de varios programas que se encargan de interpretar los comandos que introduce el usuario
y realiza las acciones oportunas en respuesta. Estos programas se denominan shell y son
el modo tpico de comunicacin en todos los sistemas Unix, incluido Linux. Para muchas
personas el hecho de tener que introducir los comandos de forma manual les puede parecer intimidante y dificultoso, aunque como se ver ms adelante los comandos de Unix son
relativamente simples y muy poderosos.
1.1.3.
Usuarios y grupos
Unix es un sistema operativo multitarea y multiusuario. Esto quiere decir que es capaz
de ejecutar varios programas (o tareas) de forma simultnea y albergar a varios usuarios
de forma simultnea. Por lo tanto, todos los usuarios de Unix deben tener una cuenta de
usuario en el sistema que establezca los privilegios del mismo. A su vez Unix organiza a los
usuarios en grupos de forma que se puedan establecer privilegios a un determinado grupo
de trabajo, para el acceso a determinados archivos o servicios del sistema.
1.2.
Iniciacin a Unix
1.2.1.
Por motivos de seguridad la contrasea debe cumplir ciertas condiciones tales como:
Contener al menos seis caracteres.
Contener al menos un carcter numrico o especial y dos alfabticos.
Ser diferente del nombre de login.
Existen diversas formas para terminar la sesin de trabajo en Unix, dependiendo de si
estamos en modo grfico o de texto. En modo texto:
Presionar las teclas <ctrl> d
Escribir el comando exit
1.3.
1.3.1.
Tipos de archivos
La base del sistema de archivos de Unix, es obviamente el archivo, que no es otra cosa
que la estructura empleada por el sistema operativo para almacenar informacin en un dispositivo fsico como un disco duro, un disquete, un CD-ROM o un DVD. Como es natural
un archivo puede contener cualquier tipo de informacin, desde una imagen en formato
PNG o JPEG a un texto o una pgina WEB en formato HTML,. . . El sistema de archivos es
la estructura que permite que Unix maneje los archivos que contiene.
Todos los archivos de Unix tienen un nombre, el cual debe cumplir unas ciertas reglas:
Un nombre de archivo puede tener entre 1 y 255 caracteres.
Se puede utilizar cualquier carcter excepto la barra inclinada / y no es recomendable
emplear los caracteres con significado especial en Unix, que son los siguientes:
= \ ^ ~ " * ; - ? [ ] ( ) ! & ~ < > |
Para emplear ficheros con estos caracteres o espacios hay que introducir el nombre
del fichero entre comillas, aunque esto no est soportado por todos los sistemas Unix.
Se pueden utilizar nmeros exclusivamente si as se desea. Las letras maysculas
y minsculas se consideran diferentes, y por lo tanto no es lo mismo carta.txt
que Carta.txt carta.Txt. Como en Windows, se puede emplear un cierto
criterio de tipo para marcar las distintas clases de ficheros empleando una serie de
caracteres al final del nombre que indiquen el tipo de fichero del que se trata. As, los
ficheros de texto, HTML, las imgenes PNG JPEG tienen extensiones .txt, .htm
(o .html), .png y .jpg (o .jpeg) respectivamente.
1.3.2.
El camino o path
En cualquier sistema operativo moderno la estructura de archivos es jerrquica y depende de los directorios. En general la estructura del sistema de archivos se asemeja a una
estructura de rbol, estando compuesto cada nudo por un directorio o carpeta, que contiene
otros directorios o archivos. En Windows, se tiene la carpeta MiPC como raz que sirve
de acceso a otras carpetas y dispositivos por ejemplo: a:, c:, d:, etc. En los sistemas
Unix, existe un nico directorio RAZ denominada / de la que cuelgan todos los ficheros y
directorios independientemente de qu dispositivos estn conectados al ordenador.
El camino de un fichero o directorio es la secuencia de directorios que se ha de recorrer para acceder a un determinado fichero separados por /. Supongamos la estructura de
archivos de la figura 1.1
dev
usr
home
pedro
etc
luis
Carta.txt
Carta2.txt
El camino relativo es la lista de directorios por los que hay que pasar desde el directorio actual hasta ese fichero, por ejemplo si nos encontramos en el directorio /home,
el camino relativo al fichero Carta.txt es luis/Carta.txt.
Todo directorio contiene dos directorios especiales, a saber:
El directorio actual,es el directorio en el que estamos en cada momento; est representado por el punto .
El directorio padre, es el directorio del que cuelga el actual; est representado por dos
puntos .. . Ejemplo: el directorio padre del directorio pedro es el directoriohome
Estando en el directorio /home/pedro (el directorio actual es pedro)se puede acceder a Carta.txt con /home/luis/Carta.txt (camino absoluto) o bien ../luis/Carta.txt
(camino relativo). Estando en el directorio /home/luis (el directorio actual es luis)
sera se accede mediante ./Carta.txt o simplemente Carta.txt.
1.3.3.
Todo el sistema de archivos de Unix tiene un origen nico: la raz o root representada por
/. Bajo este directorio se encuentran todos los ficheros a los que puede acceder el sistema
operativo. Estos ficheros se organizan en distintos directorios cuya misin y nombre son
estndar para todos los sistemas Unix. Entre otros se pueden destacar:
/ Raz del sistema de archivos.
/dev Contiene ficheros del sistema representando los dispositivos que estn fsicamente instalados en el ordenador.
/etc Este directorio esta reservado para los ficheros de configuracin del sistema.
En este directorio no debe aparecer ningn fichero binario (programas).
/lib Contiene las libreras necesarias para que se ejecuten los programas que
residen en /bin (no las libreras de los programas de los usuarios).
/proc Contiene ficheros especiales que o bien reciben o envan informacin al
kernel del sistema (se recomienda no modificar el contenido de este directorio y sus
ficheros).
/sbin Contiene programas que son nicamente accesibles al superusuario o root.
/usr Este es uno de los directorios ms importantes del sistema puesto que contiene los programas de uso comn para todos los usuarios.
/var Este directorio contiene informacin temporal de los programas (lo cual no
implica que se pueda borrar su contenido, de hecho, no se debe hacer!).
1.3.4.
El directorio $HOME
1.3.5.
Permisos
Unix, mantiene un sistema de permisos de acceso a los ficheros muy estricto, a fin de
controlar qu es lo que se puede hacer con ellos, y quin lo puede hacer. Estos permisos se
identifican con letras y son:
r permiso de lectura el fichero.
w permiso de escritura en el fichero.
x permiso de ejecucin del fichero.
Al contrario que en Windows o MS-DOS los programas ejecutables de Unix no estn
marcados por una determinada extensin (.exe) sino por un atributo, el permiso de ejecucin x. Si se elimina este atributo a un programa, Unix no ser capaz de ejecutarlo.
A su vez cada uno de estos permisos se aplica: al dueo del fichero (u), al grupo de
usuarios al que pertenece el dueo (g), al resto de usuarios (o). As un fichero determinado
puede tener permiso para ser ledo, escrito y ejecutado por su dueo, ledo y ejecutado por
el grupo al que pertenece y no tener ningn tipo de acceso para los dems usuarios. Como
se puede entender este tipo de mecanismo es especialmente til cuando se trabaja en grupo
en un determinado proyecto.
1.4.
Existen una serie de nociones bsicas que hay que tener en cuenta a la hora de introducir
los comandos. En primer lugar citaremos las siguientes:
Los comandos hay que teclearlos exactamente.
Las letras maysculas y minsculas se consideran como diferentes.
En su forma ms habitual (los shells de Bourne o de Korn), el sistema operativo utiliza
un signo de $ como prompt para indicar que est preparado para aceptar comandos,
aunque este carcter puede ser fcilmente sustituido por otro u otros elegidos por
el usuario. En el caso de que el usuario acceda como administrador este signo se
sustituye por #.
1.4.1.
A continuacin se describen algunos comandos sencillos de que pueden ser tiles para
familiarizarse con los comandos del sistema.
date Muestra por pantalla el da y la hora.
cal 1949 Muestra el calendario del ao 1949.
cal 5 1949 Muestra el calendario de mayo de 1949.
who Indica qu usuarios tiene el ordenador en ese momento, en qu terminal estn
y desde qu hora.
whoami Indica cul es la terminal y la sesin en la que se est trabajando.
man [comando] Todos los manuales de Unix estn dentro del propio sistema
operativo, y este comando permite acceder a la informacin correspondiente al comando comando. Por ejemplo con man who aparecer por pantalla y de forma formateada por pginas, la explicacin del comando who. Se puede navegar a travs de
estas pginas con los cursores del teclado, la barra espaciadora avanza una pgina, el
retorno de carro avanza una lnea y presionando la tecla q se sale.
clear Este comando limpia la consola ("borra la pantalla").
1.4.2.
Las opciones anteriores pueden combinarse. Por ejemplo: ls -la muestra el contenido del directorio en formato largo incluyendo los ficheros ocultos.
El comando ls admite los caracteres de sustitucin o metacarcteres * y ?. El carcter *
representa cualquier conjunto o secuencia de caracteres. El carcter ? representa cualquier
carcter, pero slo uno. Por ejemplo: ls *.gif muestra todos los nombres de ficheros
que acaben en .gif, por ejemplo dib1.gif, a.gif, etc. . . ls file? muestra todos
los ficheros cuyos nombres empiecen por file y tengan un nombre de cinco caracteres,
por ejemplo: file1, file2, fileA, etc. . .
1.4.3.
El comando mkdir make directory permite a cada usuario crear un nuevo subdirectorio, su forma es:
mkdir [subdir]
En donde subdir es el nombre o camino del directorio que se va a crear.
1.4.4.
Este comando borra uno o ms directorios del sistema remove directory, siempre
que estos subdirectorios estn vacos. Su forma es:
rmdir [subdir]
En donde subdir es el nombre o camino del directorio que se desea a eliminar.
1.4.5.
Este comando permite cambiar de directorio change directory a partir del directorio
actual de trabajo. Su forma es:
cd [dir]
Como resultado nos traslada al subdirectorio dir (que deber de existir como subdirectorio
en el directorio actual). O dicho con otras palabras, pasamos del directorio actual de trabajo
al directorio indicado, siendo este ahora nuestro nuevo directorio de trabajo.
Si tecleamos cd .. retrocedemos un nivel en la jerarqua de directorios. Nota: al contrario que en MS-DOS en Unix no existe la forma cd.. sin espacio entre el comando cd
y los dos puntos.
Si se teclea cd sin ms nos situaremos nuevamente en el directorio $HOME del usuario.
1.4.6.
1.4.7.
1.4.8.
1.4.9.
10
1.4.10.
Los permisos de cada fichero se pueden ver con el comando ls -l. Para cambiar los
permisos de un fichero (o directorio) se emplea el comando chmod, que tiene la forma:
chmod [quien][oper][permiso] [fichero][directorio]
en donde
quien indica a quien afecta el permiso que se desea cambiar. Es una combinacin
cualquiera de las letras u para el usuario, g para el grupo del usuario, o para los otros
usuarios, y a para todos los anteriores. Si no se da el quien, el sistema supone a.
oper indica la operacin que se desea hacer con el permiso. Para dar un permiso se
pondr un +, y para quitarlo se pondr un -.
permiso indica el permiso que se quiere dar o quitar. Ser una combinacin cualquiera
de las letras anteriores: r, w y x.
files es una lista de los nombres de los ficheros cuyos modos de acceso se quieren
cambiar.
Por ejemplo, para quitar el permiso de lectura a los usuarios de un fichero el comando
es chmod ugo -r fichero.txt
Los permisos de lectura, escritura y ejecucin tienen un significado diferente cuando se
aplican a directorios y no a ficheros normales. En el caso de los directorios el permiso r
significa la posibilidad de ver el contenido del directorio con el comando ls; el permiso w
da la posibilidad de crear y borrar ficheros en ese directorio, y el permiso x autoriza a buscar
y utilizar un fichero concreto.
1.4.11.
Este comando permite visualizar el contenido de uno o ms ficheros de forma no formateada. Algunas formas de utilizar este comando son las siguientes:
cat filename saca por pantalla el contenido del fichero filename.
cat file1 file2... saca por pantalla, secuencialmente y segn el orden especificado, el contenido de los ficheros indicados.
1.4.12.
Este comando permite visualizar un fichero pantalla a pantalla. El nmero de lneas por
pantalla es de 23 lneas de texto y una ltima lnea de mensajes, donde aparecer la palabra
"more". Cuando se pulsa la barra espaciadora (el espacio en blanco), se visualizar la siguiente pantalla. Para salir de este comando (terminar la visualizacin) se pulsa <ctrl> d
q. Por ejemplo: more file
1.5.
11
El editor de textos vi dispone de muchos otros comandos que nos permiten modificar
un fichero de texto previamente creado. En esta seccin mostraremos slo un resumen de
ellos.
Todos los comandos deben ser activados desde el modo comando. Como vimos anteriormente para pasar al modo comando debemos pulsar la tecla esc Por supuesto si ya
estamos en este modo no es necesario hacerlo, pero ello no produce ningn error, de modo
que ante la duda es preferible teclear siempre esc seguido del comando o comandos que
deseamos ejecutar.
Movimiento del cursor.
Desplazar el cursor.
nG
Ir a la lnea n.
$
Ir al final de la lnea.
i
a
A
o
O
Insercin de texto.
Inserta texto delante del cursor
Inserta texto tras el cursor
Aade texto al final de la lnea actual
Crea una nueva lnea sobre la actual y queda en modo de insercin
Crea una nueva lnea bajo la actual y queda en modo de insercin
x
dd
dw
:w
:q
:q!
:wq
<Ctrl>l
<Ctrl>g
Borrado de texto.
Borra el carcter donde est el cursor
Borra la linea donde est el cursor
Borra la palabra donde est el cursor
12
1.6.
Y despus qu?
1.6.1.
El comando man nos ofrece informacin relativa a los comandos o programas instalados
en el sistema. As
man ls
nos brinda informacin sobre el funcionamiento y opciones de ls mientras
man -k ls
nos ofrece una pequea descripcin de todos los comandos relacionados con ls.
En todo caso practicar y consultar con los profesores de prcticas cualquier duda que se
plantee al respecto.
Captulo 2
Guin de prcticas
2.1.
Entrando al sistema
En primer lugar deberemos encender el ordenador y el monitor (los interruptores aparecen claramente identificados en el frontal del equipo).
Aparecer una pantalla negra con un rectngulo azul, dentro del cual se puede leer:
Windows NT/2000/XP
Debian Gnu/Linux, kernel 2.4.27-1-386
Debian Gnu/Linux, kernel 2.4.27-1-386 (recovery mode)
Other operating systems
Seleccionad con las teclas del cursor () la opcin:
Debian Gnu/Linux, kernel 2.4.27-1-386
y pulsad la tecla INTRO.
Tras una serie de mensajes del sistema operativo LINUX, se muestra una pantalla con
una flor (o bien una ventana con la palabra DEBIAN) y un campo en blanco donde poner el
nombre del usuario ( ver figura 2.1).
13
14
Debis encontrar un icono llamado TERMINAL. Para ello, buscad en la parte inferior
del escritorio una barra de tareas, pulsad sobre el icono que parece un ratn (ver figura 2.3)
y en la parte superior de la barra que aparecer, pulsad sobre el icono de Terminal.
Esto va a abrir una ventana terminal desde la que vamos a poder conectarnos a saturno.
Podis abrir tantas ventanas terminal como queris.
2.2.
Conexin
2.3. DESCONEXIN
15
ssh ITIE548@saturno.dcs.eup.uva.es
A continuacin aparecer una pantalla similar a la recogida en la figura 2.4. Es la pantalla de conexin con el sistema, en la que nos tendremos que identificar como usuarios.
La identificacin de un usuario ante el sistema se realiza mediante dos palabras, nombre de
usuario (login) y contrasea (password), que previamente nos habr proporcionado el administrador del sistema.
Teclearemos entonces nuestro login y return , y a continuacin nuestro password y
return . Por motivos de seguridad al teclear el password no lo vemos reflejado en pantalla.
Tanto si el login es incorrecto como si el error se produce en el password, el sistema
contestar:
Login incorrect
y volver a solicitarnos ambos datos. En caso contrario acabamos de entrar en saturno.
A partir de este momento saturnoespera a que tecleemos un comando terminado por
return para ejecutarlo.
2.3.
Desconexin
Al terminar la sesin de trabajo deberemos abandonar el sistema. El comando que permite hacerlo es
exit
Volved a pulsar sobre el icono del ratn en la barra de tareas
16
2.4.
Transferencia de ficheros
La transferencia de ficheros nos permite copiar archivos de una mquina remota a una
mquina local y viceversa. Dado que las prcticas las vamos a realizar en una mquina remota (saturno), ser imprescindible realizar transferencias de ficheros con dicha mquina.
Para realizar la transferencia de ficheros emplearemos el programa psftp, que implementa el protocolo SFTP. Al arrancar el programa, deberemos indicar a qu mquina
queremos conectarnos, as como el login y el password, segn se observa en la figura 2.5.
Figura 2.5: Transferencia de ficheros
psftp: no hostname specified; use "open host.name" to connect
psftp> open saturno.dcs.eup.uva.es
login as: user124
Using username "user124".
user124@saturnos password:
Remote working directory is /users/alumnos/user124
psftp>
2.5.
Este apartado presenta una serie de ejercicios prcticos que se deben realizar de forma
secuencial. Los ejercicios se deben resolver en el ordenador. Cuando obtenga la solucin
correcta, escrbela en el espacio habilitado a tal efecto.
1.- Cree un subdirectorio que se llame ejerciciosUNIX en su directorio personal.
Comando _____________________________________________
2.- Cree otro subdirectorio que se llame documentos en su directorio personal.
Comando _____________________________________________
17
3.- Copie los ficheros que comienzan por carta y que se encuentran en el directorio
/docencia/ITT en el subdirectorio documentos
Comando _____________________________________________
4.- Copie los ficheros que terminan por .txt y que se encuentran en el directorio /docencia/ITT
en el subdirectorio ejerciciosUNIX
Comando _____________________________________________
5.- Compruebe su situacin actual.
Comando _____________________________________________
6.- Entre en el subdirectorio ejerciciosUNIX
Comando _____________________________________________
7.- Vuelva a comprobar su situacin actual.
Comando _____________________________________________
8.- Visualice el contenido del directorio, de forma que slo aparezcan los nombre de los
ficheros.
Comando _____________________________________________
9.- Vuelva a visualizar el contenido del directorio, pero esta vez deben de aparecer los
nombres de los ficheros, sus permisos, fechas,. . . (formato largo).
Comando _____________________________________________
10.- Borre el fichero ej1.txt de tal forma que se confirme el borrado del mismo.
Comando _____________________________________________
11.- Elimine todos los permisos de escritura del fichero ej2.txt
Comando _____________________________________________
12.- Visualice el contenido del directorio en formato largo y compruebe que se han denegado dichos permisos.
Comando _____________________________________________
13.- Intente eliminar el fichero ej2.txt, Unix debe permitir que lo borre.
18
Comando _____________________________________________
14.- Elimine los permisos de escritura y de ejecucin del directorio ejerciciosUnix
Comando _____________________________________________
15.- Intente eliminar el fichero ej2.txt, UNIX le permite borrarlo ?.
Comando _____________________________________________
16.- Otorgue el permiso de escritura de usuario al fichero ej2.txt
Comando _____________________________________________
17.- Borre el fichero ej2.txt confirmando el borrado del mismo.
Comando _____________________________________________
18.- Regrese a su directorio personal.
Comando _____________________________________________
19.- Intente eliminar el subdirectorio ejerciciosUNIX, Unix no le permitir borrarlo
porque no est vaco.
Comando _____________________________________________
20.- Elimine el fichero ej3.txt que se encuentra en el subdirectorio ejerciciosUNIX
sin cambiar de directorio.
Comando _____________________________________________
21.- Elimine ahora el subdirectorio ejerciciosUNIX
Comando _____________________________________________
22.- Visualice el contenido del subdirectorio documentos sin entrar a l y en formato
largo.
Comando _____________________________________________
23.- Elimine el fichero carta1 que se encuentra en el subdirectorio documentos sin
entrar a dicho subdirectorio.
Comando _____________________________________________
19
24.- Cambie el nombre del fichero carta2 que se encuentra en el subdirectorio documentos
sin entrar a dicho subdirectorio. El nuevo nombre que debe dar al fichero ser nueva_carta
Comando _____________________________________________
25.- Mueva el fichero nueva_carta a su directorio de trabajo donde se debe de encontrar ahora sin entrar a dicho subdirectorio.
Comando _____________________________________________
26.- Elimine, previa confirmacin, el fichero nueva_carta
Comando _____________________________________________
27.- Visualice sin ningn formato especial el contenido de fichero carta3 que se
encuentra en el subdirectorio documentos sin entrar a dicho subdirectorio.
Comando _____________________________________________
28.- Visualice pantalla a pantalla el contenido del fichero carta3 que se encuentra en el
subdirectorio documentos sin entrar a dicho subdirectorio.
Comando _____________________________________________
29.- Borre el archivo carta3 que se encuentra en el subdirectorio documentos sin
entrar a dicho subdirectorio.
Comando _____________________________________________
30.- Elimine el subdirectorio documentos
Comando _____________________________________________
31.- Salga del sistema.
Comando _____________________________________________
2.6.
1.- Empleando el programa Bloc de Notas (notepad) de Windows cree un fichero llamado
ejemplo1.txt con el siguiente contenido:
#include <stdio.h>
main() {
printf("Hola Mundo\n");
}
20
2.7.
21
2.8.
22
Anlisis
Diseo
Traduccin a cdigo C
Error en el tratamiento
Error en tiempo
de los datos
de compilacin
Pruebas de ejecucin
a.out
Compilacin
cc
Transcripcin
al ordenador
vi
Error en tiempo
de ejecucin
Enlace
Compilacin
Preproceso
2.9.
Desarrollo
2.9.1.
Esquema general
2.10. ERRORES
23
1.- Edita (con vi), o utiliza more o cat para ver el contenido de hola.c.
2.- Complalo. (gcc hola.c) (Con la opcin -v, se podr ver la evolucin del proceso).
3.- Cul es el tamao de hola.c? Y el de a.out?
4.- Ejectalo (./a.out)
Cuando sea necesario conservar un ejecutable, puede renombrarse a.out (mv) o, directamente, indicar al compilador que le d un nombre concreto mediante la opcin -o
nombre_del_ejecutable. As
gcc -o cospi cospi.c -lm
2.9.2.
Ejecucin
2.10.
Errores
Durante todo el proceso pueden cometerse errores. Los errores de edicin, como errores
al pulsar teclas, son responsabilidad del editor, y se advierten durante este proceso. Nos
ocuparemos ahora de los errores de fases posteriores, es decir los que se producen en la
fase de compilacin, o los que se detectan en la fase de pruebas, que pueden ser debidos a
diferentes razones.
Ejercicio 4
Lee el fichero media1.c. Sin modificarlo, complalo. Observa el mensaje de error.
En qu fase se ha producido el error? En qu lnea est? Corrgelo.
Compila nuevamente. Observa el resultado. Cuntos errores se detectan? Corrige
el primero de ellos.
24
Compila otra vez. Corrige el ltimo error (el de la B. Como sabes, para C, las minsculas y maysculas son distintas, as que B est sin definir. Se debi escribir b.
Compila. Cuntos errores?. Corrige.
Qu fase detect estos ltimos errores?
Finalmente el programa es sintcticamente correcto. Compila y ejectalo. Calcula
bien la media?. Qu tipo de error se produce ahora? Quin puede detectarlo?
Con frecuencia, el proceso de localizacin e interpretacin de errores es complicado. A
veces ello se debe a que un error que se produce en determinado lugar del cdigo, o del
proceso, no se detecta hasta un lugar o un momento posterior.
Ejercicio 5 Compila pi.c. Observa dnde se ha detectado el error. Puedes explicarlo?.
Tambin es frecuente que un error, quizs simple, produzca como consecuencia una
serie de errores en cascada.
Otra razn que puede dificultar el proceso de localizacin de errores es que el texto del
programa sea difcil de leer.
Ejercicio 6
Copia y compila media2.c
Mira el programa fuente. (vi cat)
No es fcil de ver. Ejecuta cb media2.c (cb quiere decir C beautifier y
admite algunas opciones. Muestra el resultado por pantalla, de modo que a lo mejor
resulta ms cmodo redireccionar su salida).
Corrige el primer error y vuelve a compilar. Qu ha pasado con los dems?
cb puede ser una ayuda, pero no debe sustituir a la buena escritura de programas.
Los mensajes de error que proporciona el compilador pueden ser de dos tipos: errores
propiamente dichos (errors) o avisos (warnings). En el segundo caso, se crear el fichero
ejecutable, pero avisando de que hay algo poco recomendable . Conviene prestar atencin
tambin a los avisos.
Ejercicio 7
Compila media3.c
Haciendo caso omiso del aviso, ejecuta el resultado (a.out)
Corrige el error. Ya haba aparecido antes algo parecido.
Tambin puede ocurrir que un error no llegue a detectarse, porque lo compiladores no
siempre son suficientemente listos. Por ejemplo, en el programa del siguiente ejercicio,
algunos compiladores detectaran el error, pero ste no es capaz.
2.10. ERRORES
25
26
2.10.1.
Soluciones drsticas