Manual – 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.
😡 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

German Reyna

CEO DE REGGNETWORK.COM

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *