Alejandría - La Biblioteca¿Quieres un blog como este?. Date de alta aquí.
Volver a la portada
Portada
Lista completa del contenido
Búsqueda
Enviar un e-mail al buzón de sugerencias.
Consúltenos
 Portada 
 Filosofía / Ensayos 
 Aventuras 
 Ciencia Ficción 
 Técnicos 
 Infantil 
 Esotérico 
 Poesía 
 » Técnicos 

Primer contacto con los comandos de UNIX

Una pequeña exposición de los comandos más habituales en UNIX, y de prácticas de usuario saludables.

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
MandatoOpcionesArgumentos
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
catMuestra un fichero en pantalla.
moreMuestra el fichero por páginas.
pgMuestra el fichero por páginas.
cdCambia de directorio.
pwdIndica el directorio de trabajo actual.
mkdirCrea un directorio.
rmdirBorra un directorio vacío.
cpCopia ficheros.
rmBorra uno o más ficheros.
mvMueve o renombra ficheros o directorios.
chmodCambia permisos de ficheros o directorios.
chgrpCambia de grupo un fichero.
dfInforma del espacio del disco.(AIX)
duResumen del uso del disco.
lsLista el contenido de un directorio.
commCompara dos ficheros.
findBusqueda de ficheros.
grepBusca un patrón en un fichero.
whoLocaliza quien está en el sistema.
whoamiTe identifica dentro del sistema.
passwdCambia la clave de acceso.
hostnameMuestra el nombre del sistema.
psInformación completa de los procesos en ejecución.
killElimina un proceso.
logoutFin de sesión.
clearBorra la pantalla.
sortOrdena un fichero.
lnEnlace 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:
lpEnvía un trabajo a cola de impresión.
lprEnvía un trabajo a cola de impresión.
lpstatMuestra el estado actual de la cola.
lpqMuestra el estado de la cola (en Solaris).
lprmBorra 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ón en el editor. Nota: los corchetes indican que es opcional.
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.
aAñade texto detrás del cursor.
iInserta texto delante del cursor.
oInserta una línea debajo del cursor.
xBorra un carácter.
dwBorra una palabra.
ddBorra la línea.
uDeshace el cambio anterior.
/patrónBusca el patrón (expresión regular) en el fichero editardo.
:wqGuarda el fichero y acaba la sesión.
:xGuarda el fichero y acaba la sesión.
:wGraba 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).

Ayuda
La siguiente tabla muestra los mandatos más usuales para obtener ayuda en UNIX.
manMuestra en pantalla las páginas del manual del comando solicitado.
infoAyuda a base de menús.
whatisMuestra una línea con la ayuda básica sobre el comando solicita.
whereisIndica 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. Se 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. 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):
openAbre la conexión al nodo.
closeFinaliza la sesión FTP sin salir del programa.
byeFinaliza la sesión FTP y sale del programa.
helpAyuda interactiva del ftp.
get/mgetCopia fichero/s del nodo remoto en la unidad local.
put/mputCopia fichero/s locales en el nodo remoto.
cdCambio de directorio en el nodo remoto.
lcdCambio de directorio en la unidad local.
dirMuestra el contenido del directorio remoto.

Normas de uso para los servidores Unix
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 ejecutes 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.
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 momentáneamente 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_procesoTermina la ejecución del proceso especificado.
ps -fu $LOGNAMEMuestra los procesos que está ejecutando el usuario.
du -ks $HOMEIndica el espacio almacenado en la cuenta (en KB).
quota -vMuestra la cuota de disco usada por la cuenta del usuario.
man comandoPáginas de manuales del comando o función.

Recomendaciones

La variable $HOME indica el camino completo del directorio Personal de la cuenta del usuario.
El fichero .profile (o .bash_profile, si se usa el intérprete BASH) situado en el directorio personal del usuario ($HOME) permite configurar el entorno inicial de cada cuenta.
Los únicos permisos de protección para el directorio personal y para el perfil de la cuenta deben ser de lectura, escritura y ejecución sólo para el propietario.
chmod 700 $HOME
chmod 700 $HOME/.profile


Redacción

Descargas (downloads):

Primer contacto con los comandos de UNIX
ComandosUNIX.zip

© 2008Powered by NIDAVAL