Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Tutoriales / Guía de Linux Para el Usuario - El shell de Unix (I)

Guía de Linux Para el Usuario - El shell de Unix (I)

 ***** (1 opiniones)
GNU Free Documentation License Tutorial de Larry Greenfield - 16 de Febrero de 2006
Temas Relacionados: Linux
5. El shell de Unix (I)
Es muy fácil crear archivos en el sistema operativo UNIX. Por lo tanto, los usuarios tienden a crear muchos archivos que utilizan una gran cantidad de espacio. Se ha dicho que la única cosa estándar y común a todos los sistemas UNIX es el mensaje-del-día que les pide a los usuarios que borren los archivos que no necesitan.

Guía del administrador de System V.2



Comandos Unix

Cuando ingresa al sistema Unix, se enfrenta con algo más o menos como lo que se muestra a continuación:

/home/larry$

Ese "algo" se denomina prompt1. Como su nombre sugiere, le solicita a Ud. que ingrese un comando. Todos los comandos Unix consisten de una secuencia de letras, números y caracteres. No son válidos los espacios dentro del nombre del comando. Algunos comandos válidos son mail, cat, y CMU_is_Number-5. Algunos caracteres no están permitidos, volveremos a este tema más adelante.

Unix además hace diferencia entre mayúsculas y minúsculas2, lo que significa que Cat y cat son comandos distintos.

El prompt se muestra como resultado del accionar de un programa especial denominado intérprete de comandos3. El intérprete de comandos o shell acepta los comandos que escribe el usuario y los ejecuta. Los comandos pueden formar programas en el lenguaje del intérprete de comandos, y a dichos programas se los denomina "guiones de shell".

Los shell en Unix se clasifican en dos grandes grupos: los tipo Bourne y los tipo C. Los shell tipo Bourne toman su nombre a partir de su inventor, Steven Bourne. Steven Bourne escribió el shell original de Unix, denominado sh; a partir de entonces, la mayoría de los shells tienen un nombre con el sufijo sh para indicar que son extensiones de la idea original. Existen varias implementaciones de este shell, que colectivamente llevan el nombre de shells Bourne. También son comunes los shells tipo C cuyo original fue implementado por Bill Joy. Tradicionalmente, los shell Bourne se han utilizado para los scripts de shell y por razones de compatibilidad con el sh original, mientras que los shells C han sido más comunes en su aplicación interactiva. (Los C tienen ventajas en cuanto a sus mejores características interactivas, aunque son más difíciles de programar.)

Linux viene con un shell Bourne denominado bash, escrito por la organización "Free Software Foundation"4. El nombre bash proviene de Bourne Again SHell, uno de los tantos juegos de palabras en Unix. Se trata de un shell Bourne "avanzado": tiene las capacidades estándar de programación que se encuentran en todos los shells Bourne y además varias de las características interactivas que se encuentran en los shells C. bash es el shell predeterminado cuando uno usa Linux.

Apenas ingresa por primera vez, el prompt que Ud. ve es producto de la acción de bash, en otras palabras: está Ud. corriendo su primer programa Unix, el shell bash. Mientras esté conectado, el shell bash estará permanentemente funcionando.

Un comando Unix típico

El primer comando que debe conocer es cat. Para utilizarlo, escriba "cat" y luego oprima |_Intro_|:

/home/larry$ cat

Si tiene ahora el cursor posicionado en una línea nueva, entonces lo que ha hecho está bien. Existen unas cuantas variantes que podría haber tecleado, algunas funcionarán, otras no.



o Si tuvo algún error de tecleo al escribir "cat" , debería haber visto algo más o menos así:

/home/larry$ ct

ct: command not found

/home/larry$

Por lo tanto, el shell le informa que no pudo encontrar un programa denominado "ct" , y le ofrece otro prompt para seguir trabajando. Recuerde que Unix hace diferencia entre mayúsculas y minúsculas: CAT está mal escrito.



o Puede que Ud. haya escrito algunos espacios en blanco antes del comando, como:5

/home/larry$ cat

Sin embargo, el resultado es correcto, y el programa cat corre sin problemas.



o También puede que haya oprimido un |_Intro_| en una línea en blanco; no se preocupe y continúe, pues no tiene ningún efecto.

Doy por sentado que Ud. ha corrido con éxito cat y está esperando que haga algo que lo maraville. Pues bien, no, no es un juego. cat es una muy útil utilidad que no parece muy útil a primera vista. Escriba cualquier cosa y luego oprima |_Intro_|. Lo que verá es:

/home/larry$ cat

Help! I'm stuck in a Linux program!

Help! I'm stuck in a Linux program!

Lo que parece haber hecho cat es devolver un eco de lo escrito. Esto es útil a veces, tal vez no ahora. Así que salgamos de este programa y veamos otros con beneficios más obvios.

Para finalizar ciertos comandos Unix, teclee |_Ctrl-d_|6. |_Ctrl-d_| es el carácter end-of-file7, o EOF, para abreviar. Puede que en ciertos libros de texto aparezca como end-of-text8. Nos referiremos a este carácter como EOF. Es un carácter de control que informa a los programas Unix que ha cesado el ingreso de datos. Cuando cat ve que no teclea más nada, termina.

Para ver otro ejemplo parecido, pruebe el programa sort. Como su nombre lo indica, sort es un programa de clasificación. Si Ud. teclea unas cuantas líneas y luego oprime |_Ctrl-d_|, sort las mostrará a la salida de manera ordenada. Esta clase de programas se denominan filtros, porque toman texto desde su entrada, lo filtran, y lo vierten a su salida modificado de alguna manera. Tanto cat como sort son filtros inusuales. cat es inusual pues lee el texto de entrada y no lo cambia.

sort es inusual porque lee todas las líneas de entrada hasta el EOF, antes de emitir su salida. La mayoría de los filtros trabajan sobre la base de línea por línea: leen una línea de la entrada, realizan cierto cómputo, y escriben una línea diferente de salida.



Autoayuda

El comando man muestra las páginas de la guía de referencia para un comando dado9. Por ejemplo:

/home/larry$ man cat

cat(1) cat(1)

NAME

cat - Concatenates or displays files

SYNOPSIS

cat [-benstuvAET] [--number] [--number-nonblank] [--squeeze-blank]

[--show-nonprinting] [--show-ends] [--show-tabs] [--show-all]

[--help] [--version] [file...]

DESCRIPTION

This manual page documents the GNU version of cat ...

Hay aproximadamente una página completa de información sobre cat10. Pruebe correr "man" en este momento. No espere entender la página de manual que se le muestra. Las páginas de manual suponen un cierto conocimiento de Unix, conocimiento que tal vez Ud. no tenga en este momento.

Cuando termine de leer la página, es probable que vea un bloque en video inverso al final de la página, parecido a "--more--" o a "Line 1". Se trata del pedido de más (información), que pronto le será muy familiar.

En lugar de dejar escapar el texto fuera de los límites de la pantalla, man se detiene al final de cada página, y espera para ver que ha decidido hacer Ud.. Si desea seguir leyendo, oprima |_Barra espaciadora_| y avanzará una página. Si desea terminar con la lectura de la página del manual, oprima |_q_|. Regresará entonces al prompt del shell, que esperará hasta que Ud. escriba otro comando.

man provee además una función de búsqueda de palabras clave. Por ejemplo, digamos que Ud. está interesado en el tema PostScript, el lenguaje de control de impresoras desarrollado por Adobe. Si escribe "man -k ps" o "man -k Postscript" , recibirá como resultado una lista de todos los comandos, llamadas al sistema, y otras partes documentadas de Unix que contengan la palabra "ps" (o "Postscript") en su nombre o descripción breve. Esto puede llegar a ser muy útil cuando quiere buscar una herramienta para hacer algo, pero no conoce su nombre, o si existe.



1 N. del T.: prompt significa solicitud.

2 La diferenciación entre mayúsculas y minúsculas es una cosa muy personal. Algunos sistemas operativos como OS/2 y Windows NT preservan las diferencias, pero no las cuentan como distintas. En la práctica habitual con Unix, se utiliza raramente la diferenciación. La situación de tener un par de comandos Cat y cat diferentes, no es común.

3 N. del T.: intérprete de comandos del inglés shell.

4 N. del T.: La Fundación para el Software Libre _tal es la traducción de su nombre_ se ocupa de la producción y distribución de software que no tiene limitaciones en su uso y/o copia, enfrentando de esta manera las prácticas de las compañías tradicionales de desarrollo. Que el software sea libre no significa que sea barato: la libertad incluye la gratuidad, pero es mucho más que ello.

5 El ' ' indica que el usuario escribió un espacio.

6 Mantenga oprimida la tecla etiquetada |_Ctrl|_y aprete |_d_|, luego suelte ambas.

7 N. del T.: fin de archivo.

8 N. del T.: fin de texto.

9 man también puede mostrar información acerca de las llamadas al sistema, subrutinas, formatos de archivos, etc.. En la versión original de Unix el comando mostraba la información exactamente igual a la que aparecía en la documentación impresa. Por ahora, es probable que Ud. sólo esté interesado en obtener ayuda acerca de los comandos.
Autor y licencia de 'Guía de Linux Para el Usuario - El shell de Unix (I)'
Larry Greenfield Extraído de: http://es.tldp.org/Manuales-LuCAS/GLUP/glup_0.6-1.1-html-1.1/ GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.es.gnu.org/licencias/fdles.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Guía de Linux Para el Usuario - El shell de Unix (I)'

Todo lo que Ud. necesita saber para comenzar a utilizar Linux, el clon gratuito de... Más »
A lo largo de este trabajo se va a intentar hacer un repaso de los... Más »
El poder de Unix1 se esconde en pequeños comandos que no parecen ser muy útiles... Más »
En este documento se presenta la información acerca de la instalación, configuración, ejecución y mantenimiento... Más »
Este documento describe el soporte de sonido para Linux. Enumera el hardware de sonido soportado,... Más »
¿Estás seguro de que deseas eliminar este capítulo?