Introduccion y comandos de UNIX

Introducción a UNIX

 

 

El sistema operativo UNIX empezó a desarrollarse por universitarios estadounidenses en la década de los 70, escrito en lenguaje C. Desde sus orígenes ha sido dotado de una gran versatilidad y facilidad de utilización para el usuario, permitiéndole investigar y ampliar cómodamente el propio sistema, en detrimento de cierta seguridad.

 

 

Existe una gran variedad de versiones de UNIX para diferentes plataformas -tanto para ordenadores personales y estaciones de trabajo, como para servidores y miniordenadores-, tanto de libre distribución (Linux, Minix) como comerciales (Solaris, AIX, HP-UX). Aunque todas ellas mantienen una filosofía común, no son exactamente equivalentes. En la actualidad se está haciendo un gran esfuerzo de normalización en esta materia (normas UNIX'95 y UNIX'98 o los entornos Xwindow y CDE).

 

 

Los servidores del Centro de Cálculo de la Facultad de Informática y Estadística utilizan los siguientes dialectos de UNIX: Solaris, AIX y Linux.

 

 

Las características fundamentales de UNIX son:

 

 

Sistema operativo multiusuario y multitarea.
Sistema operativo basado en capas.
El almacenamiento en disco se organiza en sistemas de archivos.
Los espacios de paginación permiten incrementar la memoria disponible (memoria virtual).
Trabaja con el protocolo de red TCP/IP.
Cada usuario tiene una cuenta cuyas características y permisos vienen definidos por el administrador (root).
El usuario se comunica con el sistema mediante el intérprete de mandatos.
Cada programa en ejecución consta de uno o más procesos, con identificador único y con una relación de parentesco.

 

 

Los comandos UNIX

 

 

Los mandatos UNIX suelen tener el mismo formato genérico:

 

 

mandato opciones argumentos

 

 

Las opciones de un mandato permiten modificar o calificar el comportamiento de dicho comando. Suelen ir precedidas por uno o dos signos menos (- o --).

 

 

Los argumentos son aquellos ficheros, directorios o elementos a los que se le aplicará dicho mandato.

 

 

Por ejemplo:

 

 

ls -al /usr

 

 

Mandato

 

 

 

Opciones

 

 

 

Argumentos

 

 

 

ls: listar directorios

 

 

 

-a: listar ocultos
-l: lista ampliada

 

 

 

/usr: directorio /usr

 

 

 

Para obtener una breve descripción de los mandatos más utilizados en los servidores del CdC, ejecutar el programa ayuda.

 

 

Para ver las páginas de manuales completas (en inglés) de cualquier comando UNIX, ejecutar man comando.

 

 

Los comandos más usuales

 

 

cat

 

 

 

Muestra un fichero en pantalla.

 

 

 

more

 

 

 

Muestra el fichero por páginas.

 

 

 

pg

 

 

 

Muestra el fichero por páginas.

 

 

 

cd

 

 

 

Cambia de directorio.

 

 

 

pwd

 

 

 

Indica el directorio de trabajo actual.

 

 

 

mkdir

 

 

 

Crea un directorio.

 

 

 

rmdir

 

 

 

Borra un directorio vacío.

 

 

 

cp

 

 

 

Copia ficheros.

 

 

 

rm

 

 

 

Borra uno o más ficheros.

 

 

 

mv

 

 

 

Mueve o renombra ficheros o directorios.

 

 

 

chmod

 

 

 

Cambia permisos de ficheros o directorios.

 

 

 

chgrp

 

 

 

Cambia de grupo un fichero.

 

 

 

df

 

 

 

Informa del espacio del disco.(AIX)

 

 

 

du

 

 

 

Resumen del uso del disco.

 

 

 

ls

 

 

 

Lista el contenido de un directorio.

 

 

 

comm

 

 

 

Compara dos ficheros.

 

 

 

find

 

 

 

Busqueda de ficheros.

 

 

 

grep

 

 

 

Busca un patrón en un fichero.

 

 

 

who

 

 

 

Localiza quien está en el sistema.

 

 

 

whoami

 

 

 

Te identifica dentro del sistema.

 

 

 

passwd

 

 

 

Cambia la clave de acceso.

 

 

 

hostname

 

 

 

Muestra el nombre del sistema.

 

 

 

ps

 

 

 

Información completa de los procesos en ejecución.

 

 

 

kill

 

 

 

Elimina un proceso.

 

 

 

logout

 

 

 

Fin de sesión.

 

 

 

clear

 

 

 

Borra la pantalla.

 

 

 

sort

 

 

 

Ordena un fichero.

 

 

 

ln

 

 

 

Enlace simbólico.

 

 

 

Colas de impresión

 

 

En los servidores UNIX existe la cola lp0 a la que se pueden enviar ficheros fuentes, mediante los comandos lp o lpr.

 

 

Los comandos que permiten gestionar los trabajos de impresión son:

 

 

lp

 

 

 

Envía un trabajo a cola de impresión.

 

 

 

lpr

 

 

 

Envía un trabajo a cola de impresión.

 

 

 

lpstat

 

 

 

Muestra el estado actual de la cola.

 

 

 

lpq

 

 

 

Muestra el estado de la cola (en Solaris).

 

 

 

lprm

 

 

 

Borra el trabajo de la cola.

 

 

 

Editores

 

 

El editor vi: Editor visual de pantalla completa usado en todas las distribuciones de UNIX. Tiene dos modos de ejecución: mandato y edición. La tecla [ESC] se usa para cambiar de un modo a otro.

 

 

El formato típico de ejecución es:

 

 

vi [-r] nombre_de_ fichero
La opción -r se utiliza para recuperar la edición de un fichero tras un error de ejecució en el editor. Nota: los corchetes indican que es opcional y no deben teclearse.
nombre_de_fichero es el camino al fichero que se va a editar.

 

 

La siguiente tabla muestra algunos de los comandos más usuales del editor vi.

 

 

a

 

 

 

Añade texto detrás del cursor.

 

 

 

i

 

 

 

Inserta texto delante del cursor.

 

 

 

o

 

 

 

Inserta una línea debajo del cursor.

 

 

 

x

 

 

 

Borra un carácter.

 

 

 

dw

 

 

 

Borra una palabra.

 

 

 

dd

 

 

 

Borra la línea.

 

 

 

u

 

 

 

Deshace el cambio anterior.

 

 

 

/patrón

 

 

 

Busca el patrón (expresión regular) en el fichero editardo.

 

 

 

:wq

 

 

 

Guarda el fichero y acaba la sesión.

 

 

 

:x

 

 

 

Guarda el fichero y acaba la sesión.

 

 

 

:w

 

 

 

Graba cambios sin acabar la sesión.

 

 

 

:q!

 

 

 

:q! Acaba la sesión sin guardar cambios.

 

 

 

El editor vi se puede personalizar guardando los valores en el fichero $HOME/.exrc ($HOME es una variable que apunta al directorio personal de la cuenta del usuario).

 

 

En los servidores del CdC se han instalado otros editores, requeridos para una óptima realización de las prácticas; tales como:

 

 

EMACS (emacs).
Joe's Own Editor (joe).
X Window Programming Environment (xwpe &).

 

 

Ayuda

 

 

La siguiente tabla muestra los mandatos más usuales para obtener ayuda en UNIX.

 

 

man

 

 

 

Muestra en pantalla las páginas del manual del comando solicitado.

 

 

 

info

 

 

 

Ayuda a base de menús.

 

 

 

whatis

 

 

 

Muestra una línea con la ayuda básica sobre el comando solicita.

 

 

 

whereis

 

 

 

Indica el camino completo en donde se encuentra el mandato especificado.

 

 

 

Comunicaciones

 

 

SSH:

 

 

SSH es el protocolo utilizado para realizar conexiones seguras -codificando la información- a nodos remotos. El CdC recomienda usar conexiones SSH en vez de Telnet o de FTP no anónimo.

 

 

El formato típico de comunicación es:

 

 

En Unix:

 

 

ssh servidor (para conexión tipo Telnet)
sftp servidor (para conexión tipo FTP)

 

 

En Windows:

 

 

Ejecutar el programa SSH Secure Shell Client (para ambos tipos de conexiones)

 

 

Telnet:

 

 

Utilidad para la conexión a servidores remotos. El formato general del mandatos es:

 

 

telnet servidor [puerto]

 

 

Si no se especifica valor para el parámetro puerto, la conexión se realizará mediante el protocolo TELNET. Dicho protocolo permite al usuario comunicarse con el servidor como si estuviera sentado en su consola.

 

 

Una vez establecida la conexión, aparecerá en pantalla la carátula correspondiente al servidor y se solicitará el nombre de usuario y la clave correspondiente a la cuenta.

 

 

X Window:

 

 

X Window es el entrono gráfico para ordenadores basados en UNIX (normalizado por el Open Group). Dicho entorno de trabajo se halla instalado en los servidores de prácticas y en los PCs con Linux.

 

 

Los usuarios accederán a los servidores mediante el protocolo X Window de dos maneras distintas, dependiendo del sistema operativo de su PC cliente:

 

 

Desde Windows: ejecutando el programa X-Win.
Desde Linux: seguir la siguiente secuencia de operaciones.
1) xhost servidor
2) ssh servidor (o telnet servidor)
3) export DISPLAY=nombre_pc:0

 

 

FTP:

 

 

FTP es el protocolo utilizado para la transferencia de ficheros entre nodos. El formato del comando es:

 

 

ftp servidor

 

 

La siguiente tabla muestra los comandos más utilizados en este cliente básico para FTP (común a todas las versiones de UNIX):

 

 

open

 

 

 

Abre la conexión al nodo.

 

 

 

close

 

 

 

Finaliza la sesión FTP sin salir del programa.

 

 

 

bye

 

 

 

Finaliza la sesión FTP y sale del programa.

 

 

 

help

 

 

 

Ayuda interactiva del ftp.

 

 

 

get/mget

 

 

 

Copia fichero/s del nodo remoto en la unidad local.

 

 

 

put/mput

 

 

 

Copia fichero/s locales en el nodo remoto.

 

 

 

cd

 

 

 

Cambio de directorio en el nodo remoto.

 

 

 

lcd

 

 

 

Cambio de directorio en la unidad local.

 

 

 

dir

 

 

 

Muestra el contenido del directorio remoto.

 

 

 

En los PCs con Windows están instalados los programas SSH Secure File Transfer Client (para FTP seguro) y WS_FTP (para FTP normal), que permiten realizar todas estas operaciones más cómodamente a través de un entorno gráfico.

 

 

Los programas navegadores (Netscape, Explorer) permiten la descarga de ficheros desde servidores anónimos de FTP.

 

 

Normas de uso para los servidores Unix

 

 

Para usar un servidor, es necesario solicitar en la Sala de Control una "cuenta" (que será concedida en el servidor que le corresponda) donde el usuario tendrá su propio entorno de trabajo. Ver normas para la apertura de cuentas.

 

 

El usuario se hace responsable de su cuenta y deberá tener algunas nociones básicas del Sistema Operativo UNIX. Como información complementaria, se encuentra instalado el programa ayuda, una utilidad interactiva de fácil manejo.

 

 

La siguiente tabla presenta una breve descripción de los árboles de directorios de Galileo, Merlin y Murillo:

 

 

Murillo (prácticas de alumnos)

 

 

 

PCs con Linux

 

 

 

/ - directorio raiz.
/bin - programas ejecutables del S.O.
/etc - ficheros de configuración.
/tmp - ficheros temporales.
/var - ficheros de administración.
/opt - ficheros públicos.
/export/home - directorios de usuarios.
/export/home/cursos - datos de asignaturas.

 

 

$HOME - cuenta del usuario, zona privada.

 

 

 

 

/ - directorio raiz.
/bin - programas ejecutables del S.O.
/etc - ficheros de configuración.
/tmp - ficheros temporales.
/var - ficheros de administración.
/usr/local - ficheros públicos.
/home/practica - usuario de prácticas

 

 

 

Es imprescindible tener cuidado con la clave de acceso a la cuenta, para evitar la pérdida de autorización. Para ello damos unas sencillas reglas a tener en cuenta:

 

 

NO

 

 

 

SI

 

 

 

nombres o apellidos en general,
nombre del S.O., cuenta o máquina,
nº teléfono, fechas, D.N.I., matrículas,...
lugares geográficos,
y, en general, cualquier palabra de un diccionario de español o extranjero.

 

 

 

combinaciones de palabras con carácteres no alfanuméricos.
palabras que no sean de diccionarios.

 

 

 

Se recomienda que el usuario no tenga en su cuenta información que supere la cuota de almacenamiento (actualmente 20 MB Murillo), para evitar la saturación del disco, así como programas públicos que se encuentren instalados en la máquina.

 

 

Hay que tener especial cuidado con la ejecución de programas recursivos; recordando que:
Siempre debe existir un "caso base" al que se llegue en algún momento de la ejecución.
Nunca ejecutar programas con recursión infinita o con bucles infinitos.
Si se prevé que un programa no interactivo tiene una ejecución larga o necesita consumir mucha C.P.U., debe lanzarse en segundo plano, y a ser posible de noche (nohup orden &).

 

 

No ejecutar en 2º plano programas interactivos. Ésta posibilidad sólo debe usarse en aquellos procesos que no necesitan intercambiar información con el usuario.

 

 

No mandar correo a un número amplio de usuarios, porque provoca la saturación de los directorios temporales. Para una comunicación masiva pueden usarse otros sistemas como las noticias (news).

 

 

Los programas ejecutables UNIX tienen 2 características que pueden resultar peligrosas, llamadas SUID y SGID. Esto permite al usuario que ejecuta el programa "convertirse" temporalmente en el usuario que creó el programa (SUID) o pertenecer momentaneamente al grupo de dicho programa (SGID).

 

 

No ejecutar programas con SUID que no pertenezcan al sistema operativo, porque permite que el usuario propietario del fichero "capture" al usuario que lo ejecuta.

 

 

Ejemplos

 

 

comando &

 

 

 

Deja el proceso en 2º plano.

 

 

 

nohup comando &

 

 

 

Deja el proceso ejecutándose al cerrar la sesión.

 

 

 

kill -KILL ident_proceso

 

 

 

Termina la ejecución del proceso especificado.

 

 

 

ps -fu $LOGNAME

 

 

 

Muestra los procesos que está ejecutando el usuario.

 

 

 

du -ks $HOME

 

 

 

Indica el espacio almacenado en la cuenta (en KB).

 

 

 

quota -v

 

 

 

Muestra la cuota de disco usada por la cuenta del usuario.

 

 

 

man comando

 

 

 

Páginas de manuales del comando o función.