Sie sind auf Seite 1von 40

14/02/99

1
Apunte original de las materias Sistemas Operativos y Computacin II dictadas durante la cursada
1996. Ayudantes: Carlos Barcenilla, Fernando Garca, David Mauro Pendenza y Carolina Piboul.
Universidad Tecnolgica Nacional
Facultad Regional La Plata
Carrera:
Ingeniera en Sistemas de Informacin
Ctedra:
Internetworking
Cursada: 1999
IDEAS BSICAS SOBRE
UNIX
1
Contenidos
1. IDEAS BSICAS SOBRE UNIX.....................................................................................................4
1.1........................................................................................................................... EL SISTEMA UNIX 4
1.2............................................................................................................. ESTRUCTURA DE ARCHIVOS 5
1.3................................................................................................................... ARCHIVOS DEL SISTEMA 7
1.4.............................................................................................. SINTAXIS DE LA LNEA DE COMANDOS 8
1.5................................................................................ ABORTANDO LA EJECUCIN DE UN PROGRAMA 9
1.6.................................................................................... CONTROLANDO LA SALIDA EN LA PANTALLA 9
1.7...............................................................................................................................LOGIN EN UNIX 9
1.8............................................................................................................................ LOGOFF EN UNIX 10
1.9.............................................................................................................. CAMBIANDO LA PASSWORD 10
1.10 MANUAL EN LNEA....................................................................................................................11
1.11 LOS COMANDOS WHO, FINGER ID Y TTY....................................................................................11
1.12 CUESTIONARIO .........................................................................................................................13
2. ARCHIVOS .....................................................................................................................................15
2.1.................................................................................................. PERMISOS DE ACCESO A ARCHIVOS 15
2.2............................................................................LISTANDO LOS CONTENIDOS DE LOS DIRECTORIOS 18
2.3.................................................................................................... CLASIFICACIN DE LOS ARCHIVOS 20
2.4...............................................................................MOSTRANDO LOS CONTENIDOS DE UN ARCHIVO 20
2.5................................................................................................................... ELIMINANDO ARCHIVOS 23
2.6.................................................................................................................. IMPRIMIENDO ARCHIVOS 23
2.7................................................................................................................ ESTADO DE LA IMPRESIN 23
2.8........................................................................................... CANCELANDO TRABAJOS DE IMPRESIN 24
2.9....................................................................................................................... COPIANDO ARCHIVOS 24
2.10 MOVIENDO ARCHIVOS ..............................................................................................................25
3. DIRECTORIOS...............................................................................................................................26
3.1..................................................................................................... RUTAS ABSOLUTAS Y RELATIVAS 26
3.2............................................................................................................. CREACIN DE DIRECTORIOS 27
3.3................................................................................................................... ELIMINAR DIRECTORIOS 27
3.4.................................................................................................................... CAMBIAR DIRECTORIOS 28
3.5...........................................................................................................RENOMBRAR UN DIRECTORIO 28
3.6............................................................................. LOS DIRECTORIOS . (PUNTO) Y .. (PUNTO PUNTO) 29
3.7..............................................................................................PERMISOS DE ACCESO A DIRECTORIOS 30
4. COMUNICACIONES.....................................................................................................................30
4.1.................................................................................................. ENVIANDO CORREO ELECTRNICO 31
4.2.....................................................................................................LEYENDO CORREO ELECTRNICO 32
4.3...........................................................................................GUARDANDO EL CORREO ELECTRNICO 33
4.4..................................................................................................................... BORRANDO MENSAJES 34
4.5................................................................................... MENSAJES QUE NO HAN LLEGADO A DESTINO 35
4.6......................................................................................................................... EL UTILITARIO TALK 37
4.7.................................................................................................... RECHAZANDO LA COMUNICACIN 38
3
4.8..........................................................................................................................LA UTILIDAD WRITE 39
4.9................................................................................................................................. CUESTIONARIO 40
1. Ideas bsicas sobre UNIX
El sistema operativo UNIX es un conjunto de programas que acta como enlace entre
la computadora y el usuario. El programa que asigna los recursos del sistema y coordina
los detalles internos de la computadora se llama kernel.
Los usuarios se comunican con el kernel mediante un programa conocido como shell.
El shell es un intrprete de lnea de comandos; traduce los comandos que ingresa el
usuario a un lenguaje que el kernel puede comprender.
En la Figura 1 se muestra un diagrama de los bloques bsicos de un sistema UNIX.
Los diseadores de UNIX se basaron en las siguientes mximas cuando crearon este
sistema operativo:
1. Cada programa debe hacer solo una cosa, y hacerlo bien. Estos programas simples se
llaman herramientas (tools).
2. Se espera que la salida de un programa sea la entrada de otro programa.
3. No se debe perder tiempo en desarrollar nuevas herramientas para realizar un
trabajo. La biblioteca de herramientas debe tenerlas.
1.1 El sistema UNIX
Los conceptos principales que unen todas las versiones de UNIX son:
Kernel
El kernel es el corazn del sistema operativo. Se encarga de planificar tareas y
administrar el almacenamiento de datos. El usuario raramente interacta directamente
con el kernel. El kernel es la porcin del sistema operativo residente en memoria.
Shell
El shell es la utilidad que procesa sus requerimientos. Cuando escribe un comando en
su terminal, el shell interpreta el comando y llama al programa que desea. El shell
soportar mltiples usuarios, mltiples tareas y mltiples interfaces. El shell usa una
sintaxis estndar para todos los comandos. Hay dos shells muy populares, el
Hardware
Kernel
Shell Sistemas de control
de inventarios
Formateadores
Agendas
Editores
E-mail
Intrpretes
DBMS
Procesadores de texto
FTP
Hojas de clculo Compiladores
Figura 1- Bloques bsicos de un sistema UNIX
5
BourneShell (que incluye el System V) y el CShell (BSD UNIX). Dado que distintos
usuarios pueden usar distintos shells al mismo tiempo, el sistema puede parecer
diferente para cada usuario. Hay un shell conocido como KornShell que es muy popular
entre los programadores. En los sistemas GNU/LINUX es habitual el uso del shell bash,
un clon del BourneShell. Esta capacidad de proveer una interface personalizada es una
de las caractersticas ms potentes de UNIX.
Comandos y utilidades
Pueden combinarse fcilmente distintas utilidades a fin de personalizar funciones y
salidas. Estos comandos son flexibles, adaptables, portables y modulares. Utilizan pipes
y filtros. Hay ms de doscientos comandos estndares y muchsimos ms provistos por
terceras partes.
Archivos y directorios
El sistema de directorios soporta una jerarqua multinivel. Los archivos y directorios
tienen proteccin de acceso y son accedidos mediante nombres de rutas de archivos
(pathnames). Tambin un archivo soporta mltiples enlaces (links). Se pueden utilizar
sistemas de archivos removibles.
1.2 Estructura de archivos
En UNIX todos los datos estn organizados en archivos. Todos los archivos estn
organizados en directorios. Estos directorios estn organizados en una estructura tipo
rbol llamada el sistema de archivos (filesystem). La Figura 2 describe la organizacin
de nivel superior del sistema de archivos de UNIX.
Estos directorios a su vez estn organizados jerrquicamente, como se observa en la
Figura 3.
bin dev etc lib tmp usr users
/
(root)
Figura 2- Organizacin de nivel superior del sistema
de archivos
6
En este ejemplo, dev, etc, usr y adm son directorios. Los directorios contienen otros
archivos o directorios. Los archivos planos contienen textos o datos binarios y no
contiene informacin sobre otros archivos o directorios.
Los usuarios pueden utilizar esta misma estructura para organizar sus archivos, un
ejemplo se muestra en la Figura 4.
Cada archivo tiene un nombre. Un nombre de archivo est compuesto de uno a
catorce caracteres
2
. Aunque se puede utilizar cualquier carcter en un nombre de
archivo, para evitar confusiones se recomienda utilizar caracteres incluidos en la
siguiente lista:
1. letras maysculas [A-Z]
2. letras minsculas [a-z]

2
En las implementaciones actuales de UNIX suelen permitirse ms de catorce caracteres para un
nombre de archivo.
/
dev
dsk dsk
dev
init.d rc0.d
usr
mail spool adm
acct sa
Figura 3- Organizacin jerrquica de directorios.
/
bin users
jperez fgarcia
dev
memos progs
memos progs c f77
fisica quimica historia
mods calc tabla forms arg mundo
Figura 4- Directorios de usuarios.
7
3. nmeros [0-9]
4. guin de subrayado (underscore) [_]
5. punto [.]
6. coma [,]
La nica excepcin es el directorio raz, que siempre usa el smbolo /. Ningn otro
directorio o archivo puede usar este smbolo.
Dos archivos ubicados en el mismo directorio no pueden tener el mismo nombre.
Archivos ubicados en directorios diferentes pueden tener el mismo nombre.
Los nombres de archivos que elija deben tener algn significado. Muy a menudo se
utilizan nombres que no tienen un significado preciso y no ayudan a la hora de buscar un
determinado archivo. Utilice nombres de archivo que describan los contenidos del
mismo.
1.3 Archivos del sistema
Para que tenga un conocimiento bsico de los contenidos de algunos de los
directorios del sistema, a continuacin presentamos una lista de esos directorios y que
archivos suelen estar alojados en ellos:
/bin Aqu se hallan los archivos ejecutables. Estn disponibles para todos
los usuarios.
/dev Aqu se alojan los manejadores de dispositivos (device drivers)
/etc Archivos del supervisor, archivos de configuracin, de arranque,
passwords, usuarios, grupos de usuarios, entre otros.
/lib Bibliotecas de compilacin.
/tmp Archivos temporarios generados por distintos programas.
/bsd Comandos Berkeley (solo en esa distribucin).
/mnt Utilizado para montar discos removibles.
/stand Informacin de inicializacin del sistema (boot).
/lost+found Archivos hurfanos (perdidos luego de un corte de energa, por
ejemplo).
/unix* Kernel booteable.
Esta no es una lista ntegra de los directorios que contienen informacin del sistema,
solo intenta despejar el misterio que existe sobre los directorios y tipos de archivos que
ellos contienen.
8
1.4 Sintaxis de la lnea de comandos
Los usuarios ingresan los comandos a travs del indicador (prompt) del shell. En el
BourneShell el prompt por defecto es el signo dlar ($). En general, el shell espera
recibir comandos con la siguiente sintaxis:
Formato del comando: comando opciones argumentos
Comando Es el comando UNIX. A veces el comando es representativo de la
funcin. Por ejemplo, el comando para listar los contenidos de un
directorio es ls. Se utilizan la primera y la tercera letra de la palabra
inglesa list. Desafortunadamente, no siempre los nombres de los
comandos siguen este tipo de reglas.
Opciones Tambin se las conoce como banderas (flags). Su forma habitual
es:
-A
donde A es la abreviatura de la funcin opcional del comando. Por
ejemplo, el comando ls lista los contenidos de un directorio, mientras
que el comando ls -l emite una lista ms detallada (l:long) y ls -C
emite el listado en columnas (c: columns). Se pueden combinar varias
opciones luego de un -; por ejemplo -CF, o bien en forma separada
-C -F.
Argumentos Pueden ser nombres de archivos, nombres de usuarios, una opcin del
comando, etc...
Ejemplo:
$ls -CF jperez
El comando ls lista los contenidos del directorio, el guin (-) indica las opciones.
C Salida en mltiples columnas con entradas ordenadas.
F Adiciona una barra (/) luego de cada nombre de archivo si se trata de un
directorio o pone un asterisco luego del nombre si el archivo es ejecutable.
Jperez Nombre del directorio a listar (puede ser una ruta absoluta o relativa).
Ejemplo:
$diff memo1 memo2
Diff Comando para comparar diferencias entre archivos.
Memo1 Nombre de archivo a comparar.
Jmemo2 Nombre del segundo archivo a comparar.
Este comando indicar qu lneas difieren en ambos archivos.
9
Ejemplo:
$find . -atime +7 -print
Find Localiza archivos.
. El directorio de trabajo corriente.
-atime Condiciona la seleccin a que el archivo haya sido accedido en n das (n es el
+7).
-print Imprime el nombre del directorio actual.
Por lo tanto, este comando emitir un listado de todos los archivos presentes en el
directorio actual que han sido accedidos en los ltimos siete das.
Algunos comandos tienen varias opciones y/o argumentos; mientras que otros, como
passwd y mail, son interactivos y solicitarn al usuario informacin adicional.
1.5 Abortando la ejecucin de un programa
A veces es necesario abortar la ejecucin de un programa. UNIX puede estar
mostrando una lista que es muy larga para ser mostrada en su pantalla o por alguna otra
razn necesita terminar la ejecucin. Para terminar la ejecucin de un programa presione
la tecla DELETE CTRL-C. El sistema operativo enva una seal de interrupcin al shell.
Cuando el shell recibe esta seal, muestra el prompt y espera que se ingrese otro
comando.
1.6 Controlando la salida en la pantalla
Hay varias formas de controlar el flujo de caracteres que se muestran en la pantalla
como resultado de la ejecucin de un comando. A saber:
CTRL-S Esta funcin del teclado suspender el flujo de caracteres hacia la
pantalla.
CTRL-Q Esta funcin reanudar la salida hacia la pantalla.
HOLD SCREEN Si su terminal tiene esta tecla (ej. VT200), puede presionarla una
vez para detener la salida. Para reanudar la salida presione
nuevamente esta tecla.
1.7 Login en UNIX
Para comenzar a utilizar un sistema UNIX el primer paso es logonearse, lo primero
que usted ver es un mensaje de este tipo:
10
login:
Para conectarse con un host, ingrese su nombre de usuario. Su nombre de usuario le
es asignado por el administrador del sistema, tpicamente ser su primera inicial y su
apellido. Solo suelen permitirse 8 caracteres.
Ejemplo:
login:jperez
Una vez que el nombre de usuario ha sido aceptado, el sistema le pedir su clave de
acceso. En la pantalla aparecer el siguiente mensaje:
Password:
Ingrese su password. Por razones de seguridad el sistema no mostrar su password
mientras la escribe.
Password: *******
Una vez que ha ingresado la palabra clave correcta. El procedimiento de login
continuar y aparecer en el monitor una pantalla similar a la siguiente.
UNIX System V Release ax.2.2o ns32332
Copyright (c) 1984 AT&T
All Rights Reserved
$
En este punto ya est dentro del sistema. El signo $ es el prompt por defecto del
BourneShell.
1.8 Logoff en UNIX
Para salir del sistema puede utilizar uno de los siguientes mtodos:
1. Presionar CTRL-D.
2. Tipear el comando exit (o logout en algunos sistemas).
1.9 Cambiando la password
El siguiente comando cambiar la password:
passwd
11
Se le pedir que ingrese su clave actual. Luego se le solicitar su nueva clave dos
veces para verificar que se haya ingresado correctamente.
1.10 Manual en lnea
La mayor fuente de ayuda en lnea en UNIX son las manual pages. Las pginas
estn divididas en distintas secciones.
Para acceder al manual en lnea se debe utilizar el siguiente comando:
man <comando>
Comando El comando UNIX acerca del cual usted necesita informacin.
Ejemplo:
$man ls
Este comando mostrar las pginas del comando ls.
Las pginas de cada comando comienzan con el nombre del comando y una sinopsis
de la sintaxis del mismo. Las caractersticas opcionales se encuentran entre corchetes.
Luego se incluye una descripcin detallada de sus opciones y argumentos. La
descripcin puede incluir ejemplos tiles. Al final se incluyen los comandos y archivos
relacionados.
1.11 Los comandos who, finger id y tty
una vez que haya ingresado al sistema puede ver quienes estn logoneados con los
siguientes comandos:
who [opciones]
Opciones Se detallan en las man pages de este comando.
La salida por defecto (sin opciones) de el comando who lista los nombres de
usuarios, terminales y el tiempo de en que los usuarios han estado en el sistema.
Ejemplo:
$who
jperez ttyp0 Aug 15 10:11
mvlsdba rt02190 Aug 15 09:25
teacher rt020b0 Aug 15 11:07
eholderf rt021c0 Aug 15 11:03
dbowman rt01150 Aug 15 08:58
$
12
Un comando UNIX que da un poco ms de informacin acerca de los usuarios que se
encuentran utilizando el sistema es finger.
finger [opciones] [usuario1]
Opciones Se detallan en las man pages de este comando.
usuario1 Nombre del usuario.
El comando finger sin opciones listar el nombre del usuario, su nombre real
completo, su terminal, nmero telefnico, tiempo que ha permanecido en el sistema y
otros datos tiles.
Ejemplo:
$finger
Login Name TTY Idle When Office
Jperez Juan Perez ttyp0 16 Wed 10:26 MP
mvlsdba Motor Veh Lic rt02190 16 Wed 09:25 d7160
teacher Teacher Acct *rt020b0 Wed 11:07
eholderf Eileen Holder rt021c0 1 Wed 11:03
dbowman Dale Bowman rt01150 Wed 08:58
$
Para mostrar las identificaciones del usuario especificado puede usarse el comando
id.
id usuario
Este comando escribe como salida estndar un mensaje que contiene la identificacin
del usuario especificado, el sistema de identificacin esta formado por nmeros que
representan usuarios y grupos de usuarios.
Contiene la siguiente informacin:
nombre del usuario y id del usuario real.
nombre del grupo de usuarios y id del grupo real.
nombre del grupo de usuarios suplementario y id del grupo suplementario.
La informacin del grupo suplementario es escrita solo por el sistema que soportan
grupos multiusuarios y si el usuario especificado pertenece a el grupo especificado.
Tambin muestra el usuario efectivo y el id del grupo, pero solo para el usuario que
ha invocado ale comando. Si la identificacin efectiva y real de la invocacin son
distintas, muestra:
El usuario efectivo y la identificacin efectiva.
Nombre del grupo de usuario efectivo y la identificacin del grupo efectivo.
Puede fracasar si el usuario especificado no existe o si el comando no puede leer la
informacin del usuario o del grupo.
13
Flags:
-G solo muestra id del grupo real, efectivo y suplementario
-g solo el id del grupo efectivo
-u solo el id del usuario efectivo
-r aparece el id real en lugar de id efectivo
-n aparece el nombre en el lugar del nmero de id, combino con -
G,-g y -u
Ejemplo de salidas del comando id:
uid=1333(fer)
gid= 350(build)
euid= 0(root)
egid= 9(const)
group= 5(sist1), 12(sist2)
Para identificar la terminal sobre la cual est trabajando el usuario se usa el comando
tty.
tty [-s]
Si la entrada no es una terminal y no se especifica la flag -s, se obtiene un mensaje
estndar que no es tty.
Archivos:
/usr/bin/tty contiene el comando tty
/dev/tty contiene el seudodispositivo.
Muestra las estructuras de datos tipo tty, si no son especificados parmetros lista a
todas las terminales o a todas las tty abiertas que estn trabajando.
1.12 Cuestionario
1. Qu organizaciones desarrolaron inicialmente UNIX?.
2. En qu lenguaje de alto nivel est escrito UNIX?.
3. Nombre algunas caractersticas de UNIX.
4. Qu parte de UNIX controla los detalles de la operacin interna de la
computadora?.
5. Qu parte de UNIX permite al usuario comunicarse con la computadora?.
6. Cual es el nombre de la estructura arbrea en la cual se almacenan todos los
datos?.
7. Cual es el nombre del directorio de ms alto nivel?.
8. Qu smbolo representa el directorio de ms alto nivel?.
14
9. Cual es la forma general de la sintaxis de un comando de UNIX?.
10. Mediante qu comando se cambia la password en UNIX?.
2. Archivos
En UNIX, todos los datos se organizan en archivos. Un archivo ordinario (de texto)
es un memo, el cdigo fuente de un programa o un script de shell. Un script de shell o el
cdigo fuente de un programa pueden verse o editarse en cualquier terminal. Otros
archivos contienen datos binarios, como programas ejecutables; estos archivos no
pueden ser vistos ni editados en la terminal.
Tambin se asignan nombres de archivos a dispositivos perifricos tales como discos,
unidades de cinta, impresoras y terminales. Estos archivos tiene caractersticas
especiales. Aunque la entrada y salida pueden ser redireccionadas a y desde un
archivo especial. No se puede ver el contenido de un archivo especial.
2.1 Permisos de acceso a archivos
Se trata de protecciones que pueden asignarse a archivos. Esta proteccin puede
prevenir un intento no autorizado de lectura o escritura sobre un archivo. Tambin
pueden protegerse archivos, por ejemplo, para no ser borrados accidentalmente por uno
mismo.
Hay tres permisos de acceso a archivos:
r (read) examinar, leer o copiar datos de un archivo.
w (write) modificar o borrar un archivo.
x (execute) usar el archivo como un comando (ejecutarlo).
El universo de usuarios que potencialmente pueden acceder a un archivo se
particiona en tres subconjuntos:
u (user) el dueo del archivo.
g (group) usuarios del mismo grupo que el propietario.
o (other) todos los dems usuarios.
Al ejecutar el comando ls -l el primer campo que se visualiza consta de diez
caracteres en los cuales se describen los permisos de acceso para cada archivo. por
ejemplo:
rwxr-xr-x
De los nueve caracteres, los primeros tres describen los permisos para el dueo del
archivo, los prximos tres los referentes a su grupo, y los ltimos tres a cualquier otro
usuario. En cada uno de estos grupos de tres caracteres el primer carcter especifica si se
encuentra activo el permiso de lectura (r), el segundo y el tercero hacen lo propio con
16
los permisos de escritura (w) y ejecucin (x) respectivamente. La aparicin de una letra
especifica que el acceso est permitido, un guin (-) indica que el acceso es denegado.
En el ejemplo anterior el usuario tienen permisos de lectura, escritura y ejecucin.
Los miembros del grupo al que pertenece el dueo del archivo pueden leerlo o
ejecutarlo. Cualquier otro usuario tambin puede leerlo o ejecutarlo. El efecto de estos
permisos es que solo el dueo puede modificar el archivo, mientras que cualquiera
puede examinarlo, copiarlo o ejecutarlo.
Para cambiar los modos de acceso a un archivo o directorio se utiliza el comando
chmod.
chmod <permisos> <archivo1[archivon]>
Permisos Permisos de acceso.
<archivo1[archivon]> Uno o ms archivos a los cuales se les cambiarn los permisos..
Los permisos pueden expresarse en dos formas:
Con letras: [ugo] [+-=] [rwx]
Con nmeros: [0-7] [0-7] [0-7]
Veamos cmo cambiar permisos utilizando letras. Las letras u, g y o representan
user, group y others respectivamente. El signo + (ms) indica que se habilita el permiso
y el signo - (menos) que se deshabilita. El signo = (igual) significa que se coloquen los
permisos como se especifica. Las letras r, w y x significan read, write y execute
respectivamente.
Supongamos que crea un archivo llamado archivo1 que tiene los siguientes permisos:
rw-rwxrwx
y desea darse a si mismo (user) el permiso de ejecucin y quitarle a cualquier otro
usuario (en este caso los miembros de group y others) el permiso de escritura. Para ello
debe ingresar:
$chmod u+x,g-w,o-w archivo1
$
Ahora si se ejecuta el comando ls -la los permisos para archivo1 se vern como:
rwxr-xr-x
Si desea fijar varios permisos de una sola vez utilice el signo igual. El siguiente
ejemplo fijar los permisos de lectura y escritura del usuario:
$chmod u=rx archivo1
$
17
El segundo mtodo para cambiar los permisos es usar dgitos octales. los dgitos
octales 0 a 7 se representan en binario de la siguiente forma:
Octal Binario Permisos
0 000 ---
1 001 --r
2 010 -w-
3 011 -wx
4 100 r--
5 101 r-x
6 110 rw-
7 111 rwx
Note que cada vez que aparece un uno (1) en el nmero binario el permiso
correspondiente es activado, mientras que cada vez que aparece un cero (0) el permiso
es denegado. Por lo tanto, para cambiar los permisos del archivo del ejemplo anterior
debe ingresarse el siguiente comando:
$chmod 755 archivo1
$
El primer dgito octal (7) asigna al propietario (user) los permisos de lectura,
escritura y ejecucin. El segundo dgito (5) asigna al grupo del propietario permiso de
lectura y ejecucin. El ltimo dgito (5) asigna a los dems usuarios permiso para leer y
ejecutar el archivo.
El comando chown permite cambiar el dueo de un archivo, solo podr ser ejecutado
por el dueo del archivo o por el root.
chown nuevodueo archivo
Cambia el dueo especificado por el parmetro para un usuario especificado. El
parmetro del dueo puede especificarse como id del usuario o como el nombre de
acceso al sistema. Solo el root puede cambiar el dueo de un archivo. Se puede cambiar
el grupo de un archivo si es root o si es dueo del mismo. Aunque si se es dueo y no
root se debe pertenecer al nuevo grupo, esto se realiza con el comando chgrp.
chgrp nuevogrupo archivo
18
El permiso set-uid
El archivo que contiene las passwords de los usuarios de un sistema UNIX es el
siguiente:
$ ls -l /etc/passwd
-rw-r--r-- 1 root 5115 Aug 30 1983 /etc/passwd
$
Listemos ahora los detalles del archivo que contiene el cdigo ejecutable del
comando passwd (que permite a un usuario cambiar su password).
$ ls -l /bin/passwd
-rwsr-xr-x 1 root 8454 Jan 4 1983 /bin/passwd
$
Para este ejemplo los permisos indican que cualquiera puede ejecutar el comando,
pero solo root puede cambiar el comando passwd. Sin embargo, la s en vez de una x en
el campo de ejecucin para el dueo del archivo indica que, cuando el comando se
ejecuta, se le darn los permisos correspondientes al dueo del archivo, en este caso
root. Debido a que /bin/passwd tiene el atributo "set-uid", y root como dueo, cualquier
usuario puede ejecutar el comando passwd para editar el archivo de contraseas
/etc/passwd ("set-uid" significa que el usuario "toma prestada" la identificacin del
dueo mientras ejecuta el comando).
El bit de set-uid
3
es una idea simple pero elegante que resuelve varios problemas de
seguridad. Por ejemplo, el autor de un programa de juegos puede hacer que el programa
tenga el atributo set-uid con el dueo, de manera que este pueda actualizar un archivo de
puntaje que estara de otra manera protegido contra el acceso de otros usuarios. Sin
embargo el concepto de set-uid es potencialmente peligroso. /bin/passwd tiene que
funcionar correctamente; si no fuera as, podra destruir informacin del sistema bajo los
auspicios de root. Si ste tuviera los permisos rwsrwxrwx, entonces podra ser
modificado por cualquier usuario, quien podra reemplazar as el archivo con un
programa que hiciera cualquier cosa. Esto es particularmente serio para un programa
con atributo set-uid, ya que root tiene permisos de acceso a cualquier archivo en el
sistema. (Algunos sistemas UNIX apagan el bit set-uid cuando un archivo se modifica,
para reducir el peligro de una falla de seguridad.)
El bit set-uid es poderoso, pero se usa principalmente en pocos programas del
sistema, tales como passwd.
2.2 Listando los contenidos de los directorios
El comando ls se usa para mostrar nombres de archivos y sus caractersticas. Dado
que los nombres de archivos estn alojados en directorios (que son archivos especiales),

3
El set-uid ha sido patentado por Dennis Ritchie.
19
el comando ls lee los archivos de directorios. Ejecutando ls sin opciones se listan los
nombres de los archivos que se encuentran en el directorio corriente, los archivos de
inicializacin no sern listados.
ls [opciones] [dir1[dirn]]
opciones Ver las man pages.
[dir1[dirn]] Uno o ms nombres de directorios.
La opcin -a permite ver todos los archivos, incluidos los ocultos.
La opcin -C muestra el listado en varias columnas.
La opcin -F agrega un carcter al final del nombre de archivo, indicando con:
/ Indica que se trata de un directorio.
* Indica que el archivo es ejecutable..
espacio en blanco Indica que se trata de un archivo ordinario.
La opcin -l muestra informacin detallada sobre los archivos, incluyendo:
Tipo de archivo (directorio, especial de bloques, especial de caracteres, especial
fifo, enlace simblico o archivo ordinario).
Permisos de acceso.
Nmero de enlaces (links).
Propietario y grupo al que pertenece.
Tamao en bytes.
Fecha y hora de la ltima modificacin.
Nombre de archivo.
Si no se especifica un nombre de archivo, ls muestra la informacin del directorio
corriente. Por defecto la salida est ordenada alfabticamente.
Ejemplo:
$ls
El siguiente ejemplo muestra un listado con ms datos:
$ls -l
20
Ejemplo:
$ls -la
total 975
drwxrwxr-x 4 teacher class 2048 Jul 16 17.56 .
drwxr-xr-x 60 root 1536 Jul 13 14:18 ..
-rwx------ 1 teacher class 4210 May 1 08:27 .profile
-rwxr-xr-x 1 teacher class 1948 May 12 13:42 memo
$
2.3 Clasificacin de los archivos
Por convencin los archivos cuyo nombre se inicia con un punto (.) son archivos de
inicializacin o archivos ocultos. Tambin suelen llamarse dot files (del ingls dot:
punto).
A continuacin se muestran extensiones
4
utilizadas habitualmente para distintos tipos
de archivos:
.c Cdigo fuente de programas C.
.f Cdigo fuente de proframas Fortran.
.o Programas objeto (compilados sin linkeditar).
2.4 Mostrando los contenidos de un archivo
El comando cat muestra los contenidos de un archivo. El comando cat es una
abreviacin de la palabra inglesa catenate.
cat [opciones] [archivo1[archivon]]
opciones Ver las man pages.
[archivo1[archivon]] Uno o ms nombres de archivos.
Si no se especifica ningn nombre de archivo, cat lee la entrada estndar.
Ejemplo:
$cat
Este es el ejemplo ms simple. El comando cat obtendr su entrada desde el teclado.
Todo lo que se tipea en el teclado se muestra en el monitor.
Si se especifica un archivo como argumento del comando se mostrar en el monitor.

4
Parte final del nombre de archivo.
21
Ejemplo:
$cat main.c
main ()
{
printf ("hello from main!\n\n");
printf ("calling function1!\n\n");
funct1();
printf ("back from function1!\n\n");
printf ("calling function2!\n\n");
funct2();
printf ("that's it!\n\n");
}
$
Se pueden mostrar varios archivos uno a continuacin del otro separando los
nombres de archivos con un espacio.
Ejemplo:
$cat main.c main.f
main ()
{
printf ("hello from main!\n\n");
printf ("calling function1!\n\n");
funct1();
printf ("back from function1!\n\n");
printf ("calling function2!\n\n");
funct2();
printf ("that's it!\n\n");
}
program calling
write(6,100)
100 format('Hello from main!',/)
write(6,110)
110 format(' Calling subroutine1!',/)
call sub1
write(6,120)
120 format(t15' Back from subroutine1!',/)
write(6,130)
130 format(' Calling subroutine2!',/)
call sub2
write(6,140)
140 format(t15' Back from subroutine2!',/)
write(6,150)
150 format(' Thats all, folks!')
end
$
22
Si el archivo contiene ms lneas de las que pueden presentarse en pantalla el archivo
ir pasando hasta que se haya mostrado la ltima lnea y reaparezca el prompt. Esto
puede ser problemtico a la hora de intentar leer el texto.
El comando pg muestra los contenidos de un archivo de a una pantalla por vez.
Permite que el usuario busque cadenas de caracteres y que vuelva hacia atrs.
pg [opciones] [archivo1[archivon]]
Opciones Ver las man pages.
[archivo1[archivon]] Uno o ms nombres de archivos a ver por pginas.
El comando tail sirve para ver el final de un archivo sin tener que ver antes todo el
contenido del archivo.
tail [opciones] [archivo1]
Opciones Ver las man pages.
[archivo1] El archivo que se desea ver, si no se especifica se usa la entrada
estndar.
El comando tail muestra por defecto las 10 ltimas lneas del archivo, sin embargo,
usando la opcin -N mostrar las ltimas N lneas.
Otro comando para examinar el contenido de uno o ms archivos con la ventaja de
paginar cada uno para que el texto no corra sin control por la pantalla puede usarse el
comando more.
more archivo
Algunos comandos para ejercer un mayor control sobre el texto que se esta
observando son:
RETURN Avanza una lnea de texto
ESPACIO Avanza una pagina de texto.
H Ayuda.
. Repite la ejecucin del comando anterior.
= Muestra el numero de lnea que se esta desplegando.
Q Sale del more.
Utiliza descripciones obtenidas en el directorio /usr/share/lib/terinfo para determinar
las caractersticas de las terminales y el tamao de la ventana. En una terminal capaz de
mostrar 24 lneas, el tamao de la ventana por defecto es de 22 lneas.
23
2.5 Eliminando archivos
El comando rm eliminar de un directorio las entradas de uno o ms archivos. Si una
entrada fuese el ltimo enlace a un archivo tambin se destruir el archivo. Para eliminar
un archivo se necesita contar con permiso de escritura en el directorios, pero no es
necesario contar con permiso de lectura/escritura sobre el archivo.
El formato del comando rm es:
rm [opciones] [archivo1[archivon]]
Opciones Ver las man pages.
[archivo1[archivon]] Uno o ms nombres de archivos a remover.
Ejemplo:
$ls
memo
tdata
subdir
$rm memo
$ls
tdata
subdir
$
2.6 Imprimiendo archivos
El comando lp enva una archivo a una impresora.
lp [-d<dest>] [-n<nmero>] [archivo1[archivon]]
Dest Impresora destino (la fija por defecto el administrador)..
Nmero Nmero de copias (por defecto es 1).
archivo1[archivon] El o los archivos que desea imprimir.
Si no se especifica ningn archivo se imprime la entrada estndar. El orden en que se
imprimen los archivos se corresponde con el orden de aparicin en el comando.
2.7 Estado de la impresin
El comando lpstat mostrar el estado actual del sistema de impresin.
lpstats [opciones] [-n<nmero>] [archivo1[archivon]]
Opciones Se detallan en las man pages.
24
Ejemplo:
$lpstat
mtlzr-1274 teacher 22560 Jul 16 09:05 on mtlzr
$
El primer campo es el identificador del trabajo de impresin; el segundo es el nombre
de usuario; el tercero el tamao del archivo; el cuarto la fecha y hora; y finamente el
nombre de la impresora.
Una de las opciones disponibles es -t. esta opcin imprimir toda la informacin
acerca del estado de impresin.
Ejemplo:
$lpstat -t
scheduler is running
system default destination: mt_600
device for mt_600: /dev/rlp000
device for mtlzr: /dev/rt0002
mt_600 accepting requests since Sep 19 16:09
mtlzr accepting requests since Sep 19 16:43
printer mt_600 is idle. enabled since Jul 3 16:52
printer mtlzr is idle. enabled since Jul 3 16:51
$
2.8 Cancelando trabajos de impresin
El comando cancel cancelar las solicitudes de impresin hechas a travs del
comando lp. Los argumentos de la lnea de comandos pueden ser o bien el identificador
de la solicitud (devuelto por el comando lp) o el nombre de la impresora. Si se
especifica el identificador cancel abortar el trabajo de impresin an cuando est
siendo impreso. Si se especifica el nombre de la impresora se aborta el trabajo que est
siendo impreso en ese momento. En cualquier caso, la cancelacin de un trabajo que
est siendo impreso liberar la impresora para que pueda imprimir la siguiente solicitud.
cancel <[ids] [impresora]>
Ids Identificadores de las solicitudes de impresin a cancelar.
Printer Nombre de la impresora.
2.9 Copiando archivos
Un usuario puede copiar un archivo si tiene premiso de lectura para ese archivo. El
comando cp puede usarse para copiar los contenidos de un archivo a otro.
25
cp <archivo1[archivon]> <destino>
archivo1[archivon] Nombres de uno o ms archivos fuente.
Destino Nombre de archivo o directorio destino.
archivo1 y destino no pueden el mismo. Si el destino es un archivo sus contenidos
son destruidos.
Si destino es un directorio, los contenidos de los archivos fuente son copiados a ese
directorio.
Ejemplo:
$cp contest memo
$
Esto copiar el archivo llamado contest a un archivo llamado memo. Si memo no
existe, ser creado; Si ya existe ser sobreescrito. El comando cp no es destructivo, o
sea que el archivo fuente no ser modificado.
El comando cp tambin puede usarse para copiar varios archivos en otro directorio.
Ejemplo:
$cp archivo1 archivo2 /user0/teacher
$
Este ejemplo muestra cmo copiar dos archivos llamados archivo1 y archivo2 en el
directorio /user0/teacher. El usuario que ejecut cp ser el dueo de los nuevos
archivos.
2.10 Moviendo archivos
Un usuario puede mover un archivo solo si tiene permiso de escritura sobre el
mismo. el comando mv tambin puede usarse para renombrar un archivo.
mv <archivo1[archivon]> <destino>
archivo1[archivon] Nombres de uno o ms archivos fuente.
Destino Nombre de archivo o directorio destino.
archivo1 y target no pueden ser iguales y si el destino es un
archivo se destruyen sus contenidos.
Si destino es un directorio, los contenidos de los archivos fuente
se mueven a ese directorio.
Ejemplo:
$mv contest memo
$
Este comando cambia el nombre del archivo contest a memo. Los permisos del
archivo quedarn igual. El comando mv es destructivo, esto significa que el archivo
fuente no existe ms.
26
El comando mv tambin puede usarse para mover archivos de un directorio a otro,
por ejemplo:
$mv file1 file2 /user0/teacher
$
Los archivos file1 y file2 se enviaron al directorio /user0/teacher. Fueron "movidos"
y por lo tanto no residen ms en el directorio corriente. El dueo sigue siendo el mismo.
3. Directorios
Un directorio es un archivo cuyo nico fin es almacenar nombres de archivos y la
informacin relacionada con estos. Todos los archivos (sean estos ordinarios, especiales
o directorios) estn contenidos en directorios.
El directorio en el cual uno se encuentra cuando se "logonea" es el home directory
del usuario. En este directorio uno puede hacer lo que quiera, incluyendo crear
subdirectorios.
3.1 Rutas absolutas y relativas
Los directorios estn organizados jerrquicamente en forma de rbol con el directorio
(/) como raiz. La posicin de un archivo en la jerarqua se describe mediante el nombre
de la ruta en la cual se encuentra. Los elementos de una ruta estn separados por una
barra (/). Una ruta es absoluta si se describe en relacin a la raiz, por lo tanto los
nombres de rutas absolutas siempre se inician con una /. Estos son ejemplos de rutas
absolutas:
/etc/passwd
/users/sjones/chem/notes
/dev/rdsk/Os3
Una ruta tambin puede ser relativa al directorio corriente. Los nombres de rutas
relativas nunca se inician con /. Si el usuario fgarcia (vase Figura 4) se encuentra en su
directorio personal /users/fgarcia, algunos ejemplos de rutas relativas son:
fisica/calc
historia/mundo
quimica
quimica/tabla
27
Para determinar cual es el directorio corriente puede usarse el comando:
pwd
Ejemplo:
$pwd
/user0/teacher
$
Este es un nombre de ruta absoluta, el del directorio corriente.
3.2 Creacin de directorios
Los directorios se crean con el siguiente comando:
mkdir [opciones] <nombredirectorio>
Opciones Vea las man pages para ms detalles.
Nombredirectorio Nombre del directorio a crear (ruta absoluta o relativa).
Si no se utiliza la opcin que permite cambiar los permisos, el directorio tendr por
defecto los permisos rwx para el dueo y r-x para el grupo y los dems usuarios. Los
archivos . (punto) y .. (punto punto) se crean automticamente. Para poder crear un
directorio se debe tener permiso de escritura sobre el directorio padre. El identificador
de dueo y grupo para el directorio creado corresponde a los respectivos identificadores
del usuario que cre el directorio.
3.3 Eliminar directorios
Los directorios se eliminan usando el comando rmdir.
rmdir [opciones] <nombredirectorio>
Opciones Vea las man pages para ms detalles.
Nombredirectorio El directorio a eliminar, debe estar vaco.
Ejemplo:
$pwd
/user0/teacher
$ls -la
total 5
drwxr-xr-x 2 teacher class 512 Jul 18 08:12 .
drwxrwxr-x 5 root root 2048 Jul 1 13:14 ..
$rmdir teacher
rmdir:teacher:Directory does not exist
$
Normalmente los directorios de eliminan usando rmdir. Antes de que el directorio
pueda ser eliminado, debe ser vaciado; o sea que no debe contener ningn archivo (ni
subdirectorio). Fjese que en el ejemplo anterior hay dos archivos . (punto) y .. (punto
punto). Recuerde que estos archivos se refieren al directorio corriente y a su padre; estos
no pueden ser eliminados.
28
Ejemplo:
$rmdir .
rmdir: .: Can't remove current directory or ..
$
Para los propsitos de eliminar un directorio, el directorio est vaco si contiene solo
dos archivos, llamados . (punto) y .. (punto punto).
3.4 Cambiar directorios
Para navegar por el sistema de archivos se utiliza el comando cd (change directory).
cd [nombredirectorio]
Nombredirectorio Si no se especifica, se utiliza por defecto el valor de la variable
de shell $HOME.
Si se especifica una ruta absoluta ese directorio es el nuevo
directorio corriente de trabajo. Tambin puede usarse un
nombre de ruta relativo.
Ejemplo:
$cd /user0/teacher
$pwd
/user0/teacher
$
Ahora el directorio corriente es /user0/teacher.
Ejemplo:
$cd memos
$pwd
/user0/teacher/memos
$
Este comando buscar un subdirectorio llamado memos en el directorio corriente
(/user0/teacher). Si lo encuentra, ser el nuevo directorio corriente.
Los mensajes de error que comienzan con "cannot access file..." a menudo indican
que el nombre de archivo es incorrecto o est mal escrito.
3.5 Renombrar un directorio
El comando mv (move) tambin puede usarse para renombrar un directorio.
mv <nombredirectorio> <destino>
Nombredirectorio Nombre del directorio fuente
Destino Nombre del directorio destino.
29
Ejemplo:
$mv users newusers
$
Este comando cambia el nombre del directorio users a newusers. Los permisos del
directorio permanecen sin cambios.
3.6 Los directorios . (punto) y .. (punto punto)
El nombre de archivo . (punto) representa el directorio corriente; y el nombre ..
(punto punto) representa el directorio padre del directorio corriente. Si usamos el
comando ls para listar el directorio corriente usando las opciones -a (para listar todos los
archivos) y -l (para un listado completo) este es el resultado:
$ls -la
total 975
drwxrwxr-x 4 teacher class 2048 Jul 16 17.56 .
drwxr-xr-x 60 root 1536 Jul 13 14:18 ..
---------- 1 teacher class 4210 May 1 08:27 .profile
-rwxr-xr-x 1 teacher class 1948 May 12 13:42 memo
$
El comando ls -la muestra los permisos, el nmero de enlaces
5
, el dueo, el grupo,
tamao, etc. de los archivos de un directorio; pero tambin muestra las caractersticas
del directorio corriente y su padre.
En lugar de solicitar la informacin de todos los archivos de un directorio, se puede
pedir solo la informacin del directorio corriente.
Ejemplo:
$ls -ld
drwxrwxr-x 4 teacher class 2048 Jul 16 17:56 .
$
Puede obtenerse la misma informacin sobre el directorio padre del directorio
corriente usando su nombre como argumento de ls.
Ejemplo:
$ls -ld ..
drwxr-xr-x 60 root root 1536 Jul 13 14:18 ..
$

5
links.
30
Los nombres de directorio . y .. pueden usarse como argumentos de los comandos.
Para hacer que el directorio corriente sea el padre del actual directorio corriente, el
comando es:
$pwd
/user0/teacher
$cd ..
$pwd
/user0
$
3.7 Permisos de acceso a directorios
Los permisos de acceso para un directorio se listan y organizan en la misma forma
que para cualquier otro archivo. Hay unas pocas diferencias que deben ser mencionadas.
Lectura (read)
Este permiso significa que el usuario puede leer los contenidos del directorio. O sea
que el usuario puede ver los nombres de los archivos del directorio.
Escritura (write)
Este permiso significa que el usuario puede agregar o eliminar archivos del
directorio.
Ejecucin (execute)
Este permiso en los directorios no significa ejecucin; significa "bsqueda". El
permiso de ejecucin de un directorio determina si puede buscarse o no un archivo en l.
Por lo tanto, es posible crear un directorio con permisos --x para otros usuarios, lo cual
significa que puedan acceder a cualquier archivo que conozcan en ese directorio, pero
no puedan ejecutar ls sobre l ni leerlo para ver que archivos tiene. En forma similar,
con permisos de directorio r-- los usuarios pueden ver (ls) pero no usar el contenido de
un directorio.
4. Comunicaciones
Este captulo cubre el uso y funcionamiento de las diferentes utilidades que permiten
la comunicacin entre dos o ms usuarios. Algunas de dichas utilidades requieren que
otro usuario se encuentre "logoneado" al sistema.
El comando mail puede usarse para enviar mensajes a uno o ms usuarios. No es
necesario que l o los usuarios destinatarios se encuentren "logoneados", dado que el
mismo sistema gestiona el envo de los mensajes entre otras maquinas UNIX, y asegura
que el mensaje llegue a destino.
Una vez ejecutado el comando mail, el mensaje se almacena en un archivo hasta ser
recibido por el destinatario, el cual ser notificado de que tiene un mensaje pendiente al
31
momento de "logonearse". Los mensajes, luego de ledos, pueden ser almacenados o
borrados, y si as se requiere, puede enviarse un mensaje de respuesta al mismo.
El comando talk abre una sesin interactiva entre dos usuarios, que permite que
ambos se enven mensajes simultneamente. Ambos deben estar "logoneados" para
llevar a cabo dicha sesin. En la jerga telemtica, esto se conoce como chat, y es muy
comn en BBSs y en servidores de InterNet programados para tal fin.
El comando write es muy similar al mail, pero el destinatario debe estar "logoneado"
y recibir el mensaje en forma instantnea.
4.1 Enviando Correo Electrnico
El formato bsico de una lnea de comando para mail es:
mailx [opciones] [nombre_usuario1] [nombre_usuario2]
Opciones Consultar las man pages correspondientes para una lista
completa de opciones.
[nombre_usuario1]
[nombre_usuario2]
Nombre de los usuarios destinatarios.
Donde nombre_usuario es el nombre asignado por el administrador del sistema
UNIX al usuario destinatrio (por ejemplo, jperez). El nombre de usuario puede incluir
adems un nombre de sistema si el destinatario pertenece a otro sistema UNIX que
posea comunicacin con el sistema original (Ej: sis2!jperez). Asumimos que el usuario
destinatrio se encuentra en el mismo sistema que el emisario.
Ejemplo:
$mailx jperez(Enter)
Subject:
A continuacin debe ingresarse el tema (subject) del mensaje seguido por (ENTER).
El cursor aparecer en la lnea siguiente, por lo cual ya podemos comenzar a escribir el
mensaje. Un problema que presentan estas herramientas (comunes a casi todos los
sistemas UNIX) es que no poseen la caracterstica de wordwrap, o sea, cuando el cursor
alcance el final de una lnea, el sistema no enva a la lnea siguiente, ni acomoda las
palabras como sucede en editores de mensajes ms avanzados (como el Elm, Pime, etc),
por lo tanto, al alcanzar el final de una lnea, debe pulsarse ENTER para pasar a la lnea
siguiente. Para finalizar el mensaje se presiona CTRL-D en una lnea en blanco.
32
Ejemplo:
$mailx jperez(ENTER)
Subject: Planificacin de trabajo(ENTER)
Por favor, revise los boletines de trabajo(ENTER)
para obtener la nueva planificacin(ENTER)
(CTRL-D)
$
El prompt en la ltima lnea indica que el mensaje ha sido almacenado y colocado en
una cola de espera listo para ser enviado.
4.2 Leyendo correo electrnico
Para leer los nuevos mensaje tipee:
$mailx
Al ejecutar este comando, y en el caso de que realmente haya nuevos mensajes para
usted, se ingresa a mailx en modo lnea de comandos. En el caso de no poseer mensajes,
se presentar el en siguiente texto:
$mailx
No mail for jperez
$
Obviamente, su nombre de usuario aparecer en lugar de "jperez".
En el caso de que ingresen nuevos mensajes a la casilla de correo del usuario se
presenta el siguiente mensaje:
you have mail
Ejemplo:
$mailx
mailx version 3.1 Type ? for help.
"/usr/mail/jperez": 3 messages 3 new
>N 1 bhood Fri Jul 13 13:01 21/324 Review session
N 2 class2 Fri Jul 13 14:53 15/211 Meeting notice
N 3 phajny Fri Jul 13 16:53 11/272 Reorganization
?
La primera lnea indica la versin de mailx que se este usando en ese momento, en
este caso, versin 3.1. La segunda lnea muestra la ruta de acceso del archivo usado
como input (por lo general, la misma que el nombre de usuario). y el total de mensajes
activos, junto con el estado de cada uno de ellos. Los mensajes son numerados
secuencialmente, presentando el ltimo al final de la lista. A la derecha de los nmeros
puede haber una "N" de new (nuevo) o una "U" de unread (no ledo). El smbolo >
apunta al mensaje actual. Los otros campos indican, el nombre del emisario, as como el
da de la semana, fecha y hora en que fue enviado. El ltimo campo es el tema (subject)
del mensaje.
Para leer los mensaje, puede realizar cualquiera de los siguientes pasos:
33
ENTER El mensaje actual es mostrado en pantalla (Indicado por el signo
">")
p ENTER Produce el mismo efecto que pulsar ENTER sin argumentos: el
mensaje actual es mostrado en pantalla.
p 2 ENTER Muestra el mensaje nmero 2. Puede usarse "p" (de print) o "t" (de
type) seguido por el nmero de mensaje.
p jperez ENTER Muestra todos los mensaje de jperez.
4.3 Guardando el correo electrnico
Todos los mensajes que no son marcados como borrados, son almacenados al
momento de salir de mailx. Los mensajes son guardados en un archivo llamado mbox en
el directorio privado del usuario (/home/usuario). Por defecto se utiliza el nombre de
archivo mbox, sin embargo el usuario puede elegir otro archivo a su conveniencia. Los
mensajes que no han sido ledos se almacenan temporalmente en la casilla de correo
electrnico (mailbox). El comando de mailx para guardar los mensajes tiene dos formas
diferentes.
S [lista_de_mensajes]
[lista_de_mensajes] = .
N Nmero del mensaje a guardar
^ El primer mensaje luego del ltimo eliminado.
$ El ltimo mensaje.
* Todos los menajes
n-m Un rango nmerico de mensajes (de n a m)
Usuario Todos los mensajes que tienen a usuario como emisario.
/string Todos los mensajes con la palabra "string" en el subject (se
ignora si son mayusculas o minusculas).
:c Todos los mensajes de tipo c, a saber:
d - mensajes borrados
n - nuevos mensajes
o - viejos mensajes
r - mensajes leidos
u - mensajes no leidos
Los mensajes especificados en lista_de_mensajes son guardados en un archivo en el
directorio actual, con el nombre del autor del primer mensaje de la lista. Si el usuario
"jperez" envi el primer mensaje de la lista, y se ingresa el siguiente comando:
34
? S *
"jperez" [New file] 11/268
?
Los mensajes (en este caso, todos) sern almacenados en un archivo del directorio
actual llamado jperez. Si desea almacenar los mensajes en un archivo con otro nombre,
debe usar el segundo mtodo para guardar mensajes.
s [lista_de_mensajes] [archivo1]
[lista_de_mensajes] . Idem al caso anterior.
archivo1 Nombre del archivo en donde se almacenarn los mensajes.
4.4 Borrando mensajes
Para borrar un mensaje, ingrese una "d" en la lnea de comandos seguido de una lista
de mensajes, que puede presentar las siguientes formas.
N Nmero del mensaje a ser eliminado.
^ El primer mensaje luego del ltimo eliminado.
$ El ltimo mensaje.
* Todos los mensajes.
n-m Un rango de mensajes a ser eliminados (de n a m).
Usuario Todos los mensaje que tiene a usuario como emisario.
/string Todos los mensajes con la palabra "string" en el subject (se
ignora si son mayusculas o minusculas).
:c Todos los mensajes de tipo c, a saber:
d - mensajes borrados
n - nuevos mensajes
o - viejos mensajes
r - mensajes leidos
u - mensajes no leidos
Por ejemplo, supongamos que desea borrar todos los mensajes de la lista. Lalnea de
comandos en este caso se vera de la siguiente forma:
35
$mailx
mailx version 3.1 Type ? for help.
"/usr/mail/teacher": 3 messages 3 new
>N 1 bhood Fri Jul 13 13:01 21/324 Review session
N 2 class2 Fri Jul 13 14:53 15/211 Meeting notice
N 3 phajny Fri Jul 13 16:53 11/272 Reorganization
? d *
? q
$
Todos los mensajes fueron eliminados. En realidad, los mismos no son fsicamente
eliminados hasta que finalice la sesin de mailx. Para recuperar un mensaje previamente
borrado (en la misma sesin) se utiliza el comando "u" (por undelete) con los mismos
argumentos que el comando "d".
4.5 Mensajes que no han llegado a destino
Si se comete algn error al tipear el nombre del usuario destinatario, el comando
mail (o mailx) no puede enviar el mensaje. En ese caso, el mensaje original es
reenviado al emisario, con su texto completo, as como la razn por la cual el mensaje
no ha podido llegar a destino.
Ejemplo:
$mailx
mailx version 3.1 Type ? for help.
"/usr/mail/teacher": 1 message 1 new
>N 1 teacher Fri Jul 13 13:45 25/655
Returned mail:User unkno
?
Message 1:
From teacher Fri Jul 13 13:45:57 1990
Received: by domax1.UUCP (5.51/)
id AA01997; Fri, 13 Jul 90 13:45:54 mdt
Date: Fri, 13 Jul 90 13:45:54 mdt
From: Mail Delivery Subsystem <MAILER-DAEMON>
Subject: Returned mail: User unknown
Message-Id: <9007131945.AA01997@domax1.UUCP>
To: teacher
Status: R
----- Transcript of session follows -----
550 snoopy... User unknown: No such file or directory
----- Unsent message follows -----
Received: by domax1.UUCP (5.51/)
id AA01995; Fri, 13 Jul 90 13:45:54 mdt
36
Date: Fri, 13 Jul 90 13:45:54 mdt
From: Teacher Account D-7130 <teacher>
Message-Id: <9007131945.AA01995@domax1.UUCP>
To: snoopy
Subject: Meeting notice
Meeting will be held at Charlie Brown's house.
July 13, 1990
7:30 p.m.
?
El signo "?" indica que mailx espera una accin por parte del usuario. Una lista
completa de comandos se puede obtener ingresando el comando "?".
Esta es una lista parcial de los comandos habilitados en una sesin de
mailx. Una descripcin completa de cada uno de estos comandos puede ser
encontrada en las man pages del comando mailx.
? ?
mailx commands
type [msglist] print messages
next goto and type next message
edit [msglist] edit messages
from [msglist] give header lines of messages
delete [msglist] delete messages
undelete [msglist] restore deleted messages
save [msglist] file append messages to file
reply [message] reply to message, including all recipients
Reply [msglist] reply to the authors of the messages
preserve [msglist] preserve messages in mailbox
mail user mail to specific user
quit quit, preserving unread messages
xit quit, preserving all messages
header print page of active message headers
! shell escape
cd [directory] chdir to directory or home if none given
list list all commands (no explanations)
top [msglist] print top 5 lines of messages
z [-] display next [last] page of 10 headers
[msglist] is optional and specifies messages by number, author,
or type.
The default is the current message.
?
37
4.6 El utilitario talk
Talk es un programa de comunicacin visual, que copia lneas desde la terminal de
un usuario hacia la terminal de otro. Es similar al comando phone de las mquinas que
operan con OS/VMS, y las opciones de "chat" existentes en casi todos los sistemas on-
line (BBSs, Internet, etc).
Una vez establecida la comunicacin, ambos usuarios pueden tipear simultneamente
dado que sus salidas (outputs) aparecen en ventanas separadas.
talk <usuario1> [nombre_de_tty]
usuario1 Si desea "chatear" con un usuario del mismo sistema, este
argumento es tan solo el nombre de usuario. Si desea "hablar"
con un usuario de otro sistema entonces usuario1 puede
escribirse de las siguientes formas:
sistema!usuario
sistema.usuario
sistema:usuario
sistema@usuario
[nombre_de_tty] Si la persona con la cual desea "hablar" se halla "logoneada" en
ms de una terminal, especifique el nombre de la terminal con
este argumento.
Como ejemplo, supongamos que desea hablar con el usuario student en la misma
mquina, el proceso sera:
En el originador de la llamada:
$talk student
En el receptor de la llamada:
Message from Talk_Daemon@domax1 at 17:36 ...
talk: connection requested by jperez@domax1.
talk: respond with: talk jperez@domax1
Cuando el usuario receptor tipee "talk teacher@domax1", el siguiente mensajese
presentar en la pantalla del usuario originador:
Connection established.
La pantalla ser dividida al medio por una lnea de guiones ('-'). En cada una de las
pantallas (originador/receptor), la parte superior corresponde al usuario local, o sea, lo
que el usuario local escriba en dicha zona aparecer en la parte inferior del otro usuario.
Durante la comunicacin, pulsando CTRL-L se borrarn los caracteres anteriores,
limpiando la zona del usuario.
38
Ejemplo (originador):
Hola Cacho!
Que te parece si nos juntamos a tomar un caf hoy por la tarde
--------------------------------------------------------------------
OK, pero acordate que a eso de las 18:00 tenemos que pasar
a buscar a Guille para el partido de ftbol.
Ejemplo(receptor):
OK, pero acordate que a eso de las 18:00 tenemos que pasar
a buscar a Guille para el partido de ftbol.
--------------------------------------------------------------------
Hola Cacho!
Que te parece si nos juntamos a tomar un caf hoy por la tarde
Una vez terminada la comunicacin, con CTRL-D se procede a finalizar la sesin de
talk.
Ejemplo:
[Connection closing. Exiting]
4.7 Rechazando la comunicacin
Si no desea interrumpir su trabajo por un requerimiento de talk, puede
rechazar la comunicacin.
39
mesg [-[n][y]]
n "no", produce que el usuario originador, pierda el permiso para
acceder a la terminal del receptor.
y "yes", reestablece el permiso.
Utilizando el comando mesg sin argumentos, se puede obtener el estado actual de
dicho permiso sin cambiarlo.
Ejemplo:
$mesg
is y
$mesg -n
$mesg
is n
$mesg -y
$mesg
is y
$
Por defecto el permiso se encuentra activado. Algunos comandos UNIX, prohiben
estos mensajes, para no producir caracteres indeseados en la terminal del receptor.
4.8 La utilidad write
Este comando escribe mensajes en la pantalla de otro usuario:
write <usuario1> [nombre_de_tty]
usuario1 Nombre del usuario destinatario.
[nombre_de_tty] Terminal a ser enviado (ej.: ttyS0)
Ejemplo (originador);
$write manolo
Hola Manolo,
pasaste por el depto. de compras a buscar la planilla?.
(CTRL-D)
$
Ejemplo (receptor);
$
Message from jperez on domax1 (rt021d0) [ Thu Jul 19 13:43:12 ]
Hola Manolo,
pasaste por el depto. de compras a buscar la planilla?.
<EOT>
$
Se podra establecer una analoga entre una comunicacin con write y una
comunicacin por radio. En este caso, se podra convenir en usar el comando "c" por
40
cambio, "cf" por cambio y fuera, de esta forma, se evita que los mensajes se
superpongan.
4.9 Cuestionario
1. Cual es el comando para enviar un mensaje a otro usuario en el mismo
sistema?.
2. Una vez en la lnea de comandos del comando mail, cmo se puede obtener
ayuda?.
3. Que hace el comando d 5-9?.
4. Cual es el comando para salir de la utilidad mail y regresar al sistema operativo?.
5. Cual es el prompt del comando mailx?.
6. Cmo establece una comunicacin con talk con el usuario fgarcia en el sistema
fisica?.
7. Qu comando en UNIX evita que un usuario sea interrumpido por alguien que
desea establecer una comunicacin con talk?.
8. Usando el comando write, el usuario destinatario debe estar "logoneado"?.

Das könnte Ihnen auch gefallen