Curso Básico de UNIX

Tutorial

Emulador de Terminal
Ingreso al sistema (login)
Directorios
Listado de archivos
Manual de UNIX
Contenido de un archivo
Crear y borrar un archivo
Correo electrónico de UNIX
Usuarios en el sistema
Talk
Cambio de contraseña
Fin de Sesión
Otros
Bibliografía y Referencias

Emulador de Terminal.

Para ingresar a un sistema UNIX remoto desde un PC se usa habitualmente un "emulador de terminal". Este programa permite al PC comportarse como una terminal (teclado y pantalla, sin procesador) conectada directamente a la máquina UNIX. En el emulador de terminal se deben fijar los siguientes parámetros:

Ingreso al sistema (login).

  login: id-usuario
  password:
id-usuario es el nombre identificador del usuario para ingreso al sistema, proceso que se denomina "login". Este nombre de usuario suele tener hasta 8 caracteres (letras, números y algunos símbolos), debe comenzar con minúscula. UNIX distingue entre mayúsculas y minúsculas. En el ingreso al sistema, no se permiten correcciones.
 
  <mensaje del día>
se despliega siempre después del login, es puesto por el administrador del sistema para información o bienvenida.
 
    <noticias>
aviso de noticias nuevas. Las noticias se usan para informaciones generales de mayor tiempo de validez. Las noticias no aparecen más después de haber sido leídas. Para leer las noticias debe digitarse el comando news.
 
  You have mail
indica que hay mensajes de otros usuarios, o del sistema. El correo electrónico permite a cualquier usuario enviar y recibir mensajes.
 
  $
es el indicador de comandos del sistema; indica que el sistema está listo y aguarda una orden del operador, que debe ser escrita a continuación de $ y finalizada con la tecla <Enter>.
 
En los siguientes ejemplos debe escribirse el comando tal cual se muestra, digitando la tecla <Enter> al final.
  date
comando que muestra la fecha y hora.
  who
muestra los nombres de usuarios conectados al sistema en este momento.
  hostname
muestra el nombre de la máquina UNIX.

Directorios.

Cada usuario tiene un directorio propio, llamado a veces "directorio home". Cuando el usuario ingresa al sistema ya está ubicado en su directorio propio. El comando
  pwd
muestra el directorio actual.
  cd /home
cambia hacia el directorio /home, lo que puede verificarse con el comando pwd.
  cd
sin parámetros devuelve al usuario a su directorio propio, desde cualquier lugar donde esté. Este comando es útil cuando se han hecho varios cambios de directorio y se quiere retornar a una situación conocida, ubicándose en el directorio propio.

Listado de archivos.

Ensayemos el comando ls:
  ls
lista archivos del directorio actual.
  ls -l /bin
lista archivos en el directorio /bin; aquí se encuentran los archivos de comandos ejecutables del sistema. No cambia de directorio; el directorio actual sigue siendo el mismo.
  ls -l
lista archivos en formato largo, dando detalles. El -l se llama opción o bandera; se lee "menos ele".
La salida obtenida consta de renglones parecidos a
  -rw-rw-rw- 1 esteban users 138 Apr 5 19:34 leame
y se interpretan así:
 
  -
indica el tipo de archivo de que se trata, con esta convención:
  - archivo común,
  d directorio,
  l enlace o referencia a otro archivo.
 
  rw-rw-rw
son los permisos del archivo;
  r (read) permiso para leer el archivo
  w (write) permiso para modificar o eliminar el archivo
  x (execute) si se trata de un archivo, permiso para ejecutarlo como
    programa; si se trata de un directorio, permiso para ingresar
    en él y recorrerlo.
Los tres grupos de 3 caracteres indican permisos para el dueño del archivo (esteban), su grupo (users) y el resto del mundo.
 
  1
cantidad de enlaces, referencias a este archivo desde otros archivos ubicados en diferentes lugares.
  esteban
nombre del usuario dueño del archivo.
  users
nombre del grupo al que pertenece el archivo
  138
tamaño en bytes del archivo. Si se trata de un directorio, este número es de control del sistema, sin interpretación inmediata para el usuario.
 
  Apr 5 19:34
fecha y hora de última modificación. Si no aparece el año, se asume el año corriente.
 
  leame
nombre del archivo. Notar que el nombre del archivo está siempre al final.
 
  ls -a
muestra también archivos ocultos, normalmente no visibles en el listado. Los archivos cuyo nombre empieza con un punto son ocultos, en este sentido. Las entradas . y .. representan el directorio actual y el directorio padre, respectivamente.
  ls -la
formato largo y archivos ocultos.
  ls -la /var
listado de archivos visibles y ocultos en formato largo del directorio /var.

Manual de UNIX.

UNIX dispone de un manual en línea o "páginas man" con información sobre comandos, archivos y otros elementos del sistema operativo. Aunque muy técnicas y a veces difíciles de comprender, son una referencia obligada para operar con solvencia.
  man ls
muestra la página man del comando ls, paginada para poder leer una pantalla por vez. Para salir antes de terminar, digitar 'q'.
  man man
muestra la página man del propio comando man.
  man man > man.txt
redirecciona la salida y graba el contenido de la página man en el archivo man.txt, lo que se puede verificar con ls.

Contenido de un archivo.

  cat man.txt
muestra el contenido del archivo. El archivo man.txt, por provenir de una página man, contiene muchos caracteres de control para regular su despliegue en pantalla. El comando cat no intrepreta estos caracteres de control. El comando cat permite también concatenar archivos, según se verá.
  head man.txt
muestra las primeras 10 líneas de un archivo.
  tail man.txt
muestra las 10 líneas finales de un archivo.
  cat man.txt | more
lee una nota larga paginando; la salida de cat es tomada por more, que presenta la información página por página. Para interrumpir el paginado de more, digitar 'q'. La tecla espaciadora avanza una pantalla, la combinación de teclas Ctrl-B retrocede una pantalla.
  more man.txt
presenta la información de man.txt ya paginada.
  ls -l /etc | more
muestra el extenso contenido del directorio /etc paginando la salida.

Crear y borrar un archivo.

  touch nota.vacia
crea el archivo nota.vacia, sin contenido alguno.
  ls -l nota.vacia
muestra datos del archivo creado.
  cat nota.vacia
no muestra nada, el archivo está vacío.
 
  touch .archivo_oculto
crea un archivo vacío y oculto.
  ls
no muestra el archivo oculto creado, pero
  ls -a
sí lo muestra.
  ls -la
muestra datos en formato largo del archivo oculto.
 
  rm nota.vacia
borra el archivo nota.vacia. Como muchos comandos de UNIX, su nombre deriva de palabras inglesas: rm proviene de "remove", eliminar o borrar.
 
  rm -i man.txt
borrado interactivo, pide confirmación antes de actuar.
 
  rm .archivo_oculto
  ls -la
borra el archivo oculto y verifica listando los archivos del directorio.
 
  echo Mensaje en pantalla
muestra en la pantalla la leyenda indicada.
  echo Este es el archivo mensaje1 > mensaje1
direcciona la salida del comando echo y graba la leyenda en el archivo mensaje1.
  ls -l mensaje1
  cat mensaje1
muestra datos del archivo y verifica su contenido.
  echo Esta línea es agregada >> mensaje1
  echo Esta es otra línea agregada >> mensaje1
  cat mensaje1
redirecciona la salida de echo para agregar dos líneas más al archivo ya existente mensaje1. Verifica el contenido con cat.

Correo electrónico de UNIX.

Para leer el correo, digitar
  mail
Este comando ingresa al usuario en el sistema de correo electrónico de UNIX. Revisa la casilla de entrada de mensajes mostrando la lista de recibidos. De ahora en adelante, sólo se aceptan los comandos propios de mail. El indicador de comandos de mail es
  &
Comandos disponibles dentro del sistema de correo:
  d borra mensaje corriente, marcado con '>'
  ? muestra lista de comandos para manejo de mensajes
  5 muestra el mensaje 5
  h muestra la lista de mensajes
  h 3 muestra la lista de mensajes comenzando en el 3
  q sale del programa de correo
Para enviar un correo al usuario juan, desde la línea de comando de UNIX digitar
  mail juan
Escribir entonces el texto del mensaje. Antes de llegar al fin de la pantalla, digitar <Enter> para que cambie al otro renglón. El comando mail no es un editor: no arregla las líneas ni permite corregir líneas anteriores. Al finalizar de escribir el mensaje, digitar
  .
(un punto solo en una línea) y dar <Enter>. Un punto solo en la línea termina el mensaje y devuelve al usuario a la línea de comandos de UNIX.
El usuario puede probar el correo enviándose un mensaje a sí mismo y luego leyéndolo.
 
  mail juan esteban
envía mensaje al usuario juan y al usuario esteban.
  mail -s "Mensaje de prueba" juan
envía un mensaje de prueba al usuario juan con el título "Mensaje de prueba". Es de cortesía indicar siempre el tema del mensaje, para que el destinatario sepa inmediatamente de qué se trata.
 
Existen en UNIX muchos programas para manejo de correo, más potentes y sofisticados; aquí nos limitamos a mail como ejemplo de un comando de UNIX más bien artesanal, pero siempre presente y útil para mensajería sencilla.

Usuarios en el sistema.

  who
muestra los usuarios que están actualmente en el sistema. Indica identificador de usuario, terminal en que está conectado, fecha y hora de ingreso al sistema.
  who am i
da información sobre el usuario que está trabajando, indicando su máquina y nombre de usuario, terminal, fecha y hora.
  whoami
presenta sólo el nombre del usuario que está operando.
  id
proporciona la identificación del usuario invocante, dando el nombre de usuario y su número (UID), nombre de grupo primario y su número (GID), nombres de otros grupos a los cuales pertenece (si los hay) y sus números.
  id jperez
proporciona datos de identificación del usuario indicado (jperez).
  finger
proporciona nombre del usuario en el sistema, nombre en la vida real y otros datos del usuario invocante, indicando si está en este momento en el sistema, y si tiene correo por leer.
  finger jperez
proporciona información sobre  el usuario indicado.

Talk.

Talk es un programa que permite a dos usuarios en el sistema comunicarse escribiendo en el teclado. Al invocar talk la pantalla se divide en dos partes, cada una correspondiente a uno de los usuarios. Ambos pueden escribir simultáneamente, y ambos ven la salida en su parte correspondiente de la pantalla.
  talk usuario1
solicita apertura de una sesión de talk al usuario1, que debe responder con otro comando similar cuando recibe el pedido.
Para terminar la sesión de talk, cualquiera de los usuarios puede digitar Ctrl-C.
El comando mesg permite regular si se desea recibir mensajes o no. Para evitar recibir mensajes de talk es posible bloquear a otros usuarios el acceso a la terminal donde uno está trabajando; quienes intenten iniciar una sesión recibirán un mensaje indicando que la terminal destino no está habilitada para recibir mensajes.
  mesg n
deshabilita recepción de mensajes,
  mesg y
habilita recepción de mensajes.
  mesg
muestra el estado: si responde "y" está habilitada la recepción, si responde "n" se rechazan los pedidos de conexión.

Cambio de contraseña.

  passwd
pide la vieja contraseña y luego la nueva; la nueva contraseña deberá ingresarse dos veces, para evitar posibles errores de digitación. En sistemas con servicio de información de red (NIS), el comando es
  yppasswd
El administrador del sistema indicará cuál de estos comandos debe usar.

Fin de sesión.

  exit
termina la sesión con UNIX, vuelve a presentar el mensaje inicial
  login:
habilitando a un nuevo usuario a ingresar al sistema. Las teclas <Ctrl-D> también terminan la sesión.

Otros.

Las teclas Ctrl-C interrumpen la ejecución de un comando. Las teclas Ctrl-D indican un fin de ingreso; si se dan en el indicador de comandos, termina la sesión UNIX. En UNIX no hay un caracter reservado para fin de archivo; Ctrl-D simplemente indica la terminación de un flujo de datos.

En UNIX, la tecla <Enter> coloca un caracter nueva línea, que en ASCII es <Ctrl-J>; con la tecla <Enter> DOS o MS-Windows colocan dos caracteres al final de una línea: un nueva línea <Ctrl-J> y un retorno <Ctrl-M>. Al mirar un archivo creado en DOS o MS-Windows con algunos programas UNIX se pueden llegar a ver caracteres '^M' al final por esta razón.

Algunas terminales adminten un control instantáneo de la salida, con las teclas
  <Ctrl-S>   detiene despliegue.
  <Ctrl-Q>   continúa despliegue.

  En las máquinas UNIX, el terminal de la propia máquina UNIX se denomina "consola"; se usa preferentemente para administración del sistema. Todas las teclas de control funcionan bien en la consola; el funcionamiento en los emuladores de terminal depende de la construcción del programa de emulación.

Preguntas y Ejercicios.

Ejercicios Complementarios

Bibliografía y Referencias.

Comandos:

apropos cat cd date exit echo finger head hostname id info less ls mail man mesg more passwd pwd rm talk tail touch whatis who who am i whoami

Referencias: Kernighan-Pike[1987], Coffin[1989]
 
 


Víctor A. González Barbone vagonbar en fing edu uy
Instituto de Ingeniería Eléctrica - Facultad de Ingeniería - Montevideo, Uruguay.