[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ siguiente ]


Comprendiendo el Sistema: Comandos Básicos
Capítulo 2 - Las shells


La palabra shell en Unix es sinónimo de interprete de comandos, una herramienta de gran potencia, aunque aquellos usuarios que sólo emplean el modo gráfico del sistema pueden no llegar nunca a usarlo.

Trabajar en un entorno de shell es análoga al ya lejano interprete de comandos COMMAND.COM de MSDOS, aunque está infinitamente más desarrollada que este último. El nombre proviene del hecho de que es un intermediario entre el usuario y el kernel o núcleo del sistema.

El objetivo de una shell es leer los comandos que le pasa el usuario a través de una terminal alfanumérica, que puede ser una consola o una ventana de terminal. En el primer caso toda la pantalla forma la terminal y en general si estamos en modo gráfico podemos pasar al modo consola pulsando simultáneamente CTRL-ALT-Fx, donde Fx es una tecla de función, desde F1 a F6. Una vez situados en una consola podemos pasar a la consola número y pulsando ALT-Fy. Para volver al entorno gráfico se pulsta ALT-F7. Este modo consola es habitual que lo use el superusuario (usuario root) para realizar tareas de mantenimiento del sistema. Una ventana de terminal es una ventana dentro de un entorno gráfico en la que podemos trabajar como si fuera una consola. Hay diferentes tipos de ventanas de terminal, cada una con sus ventajas e inconvenientes. Para abrir una ventana de terminal, por ejemplo en el entorno gráfico de GNOME, hay que hacer clic con el ratón en Menu y seleccionar Herramientas -> System Tools -> Terminal. En KDE el terminal se llama konsole y tiene su propio icono en la barra de tareas: la concha de una almeja superpuesta a una pantalla.

Por razones de compatibilidad es aconsejable utilizar un tipo de ventana de terminal que no esté ligada a un gestor de ventanas o un entorno gráfico determinado. De este modo podremos trabajar en diferentes ordenadores, independientemente del entorno gráfico que estos tengan instalado. Un tipo de ventana muy común y cómoda, aunque algo anticuada, es la llamada xterm. Para abrir una de ellas podemos definir un atajo en nuestro entorno gráfico o simplemente escribir {\tt xterm} en la ventana de terminal que nos haya proporcionado el entorno gráfico.

El prompt de una shell es el carácter o caracteres al comienzo de la línea de comandos que indica que la shell está preparada para recibir los comandos que escribos. Usualmente en este prompt encontraremos la siguiente información:

     username@hostname:$PWD$

donde username es el nombre del usuario, hostname el nombre de la máquina donde está ejecutándose la shell y $PWD el directorio donde se encuentra el usuario. Normalmente los prompts terminan en una carácter de dólar, de tanto por ciento o en almohadilla. A continuación del prompt suele haber un cursor, un cuadrado blanco (o negro, depende del fondo de pantalla que haya fijado el usuario) que indica donde comienza a escribir el usuario. Un ejemplo sería

     thorin@gondor:~/textos$

Esto indica que el usuario thorin tiene una sesión abierta en el nodo gondor y se encuentra actualmente en el directorio ~/textos. Más adelante explicaremos la estructura de directorios del sistema Linux.

Cuando el usuario hace login en el sistema, esto es, cuando entra en una terminal alfanumérica o cuando realizamos una conexión remota con telnet o ssh a un sistema) se entra directamente en una shell. En Unix existen distintos tipos de shells, entre las más populares destacan:

  1. csh: C shell, con sintaxis parecida a la del lenguaje de programación C.

  1. bash: Bourne again shell, shell por defecto de GNU/Linux.

  1. zsh: Z shell.

  1. ksh: Korn shell.

Cada una de ellas presenta sus propias particularidades y diferentes ficheros de configuración para definir las preferencias del usuario. Nosotros nos centraremos en bash por ser la más extendida en GNU/Linux.

Hay que destacar que la shell, además de ser en interprete de comandos, es en sí mismo un lenguaje de programación para la construcción de scripts, programas que facilitan especialmente tareas de administración del sistema, sobre los que se hablará brevemente en capítulos posteriores.

Una vez que hemos entrado en nuestra xterm podemos comenzar a dar órdenes al sistema. En concreto para casi todos los comandos de GNU/Linux puede obtenerse información si corremos el programa seguido de alguna de las siguientes opciones: -h, -help o --help. Por ejemplo, si queremos conocer las posibles opciones del comando xterm podemos hacer:

      
     thorin@gondor:~$ xterm -help
     XTerm(197) usage: xterm [-options ...] [-e command args]
     
     where options include:
         -/+132                 turn on/off 80/132 column switching
         -C                     intercept console messages
         -Sccn                  slave mode on "ttycc", file descriptor "n"
         -T string              title name for window
         -/+ah                  turn on/off always highlight
         -/+ai                  turn off/on active icon
         -/+aw                  turn on/off auto wraparound
         -b number              internal border in pixels
         -/+bc                  turn on/off text cursor blinking
         -bcf milliseconds      time text cursor is off when blinking
         -bcn milliseconds      time text cursor is on when blinking
         -bd color              border color
         -/+bdc                 turn off/on display of bold as color
         -bg color              background color
         -bw number             border width in pixels
         -/+cb                  turn on/off cut-to-beginning-of-line inhibit
         -cc classrange         specify additional character classes
         -/+cjk_width           turn on/off legacy CJK width convention
         -class string          class string (XTerm)
         -/+cm                  turn off/on ANSI color mode
         -/+cn                  turn on/off cut newline inhibit
         -cr color              text cursor color
         -/+cu                  turn on/off curses emulation
         -/+dc                  turn off/on dynamic color selection
         ...

Si desea consultar todas las opciones posibles puede subir y bajar una página en su xterm usando las teclas SHIFT-RePag y SHIFT-AvPag. Esta forma de consultar las opciones es rápida, pero no sirve para todos los comandos y su salida a veces es demasiado breve. Para obtener más información acerca de algún comando se puede consultar la página de manual man para dicho comando. Por ejemplo, para el comando xterm haremos:

      
     thorin@gondor:~$ man xterm

Dentro de la página de man pulsando la barra espaciadora se avanza una pantalla y pulsando la tecla B se retrocede una pantalla. En muchos casos es también muy util recurrir al comando info que proporciona una información más exhaustiva de la proporcionada por el comando man. Si no se recuerda exactamente el nombre de un comando se puede usar apropos. Por ejemplo, si escribimos

      
     thorin@gondor:~$ apropos list

obtenemos una salida en la que nos da todos los comandos que realizan listas. En todos los casos podemos apreciar la variedad de opciones y libertad de configuración que nos proporciona trabajar en este sistema operativo.

Toda shell tiene definidos una serie de comandos internos como alias o export pero también pueden ejecutarse utilidades Linux como ls o mkdir entre otras. En el capítulo Comandos más usados, Capítulo 5 se da una lista de los comandos más usados cuando se trabaja dentro de una shell. También es conveniente conocer una serie de combinaciones de teclas que resultan de suma utilidad, entre las que destacan:

Podemos practicar con estas combinaciones, y acostumbrarse a su uso permite alcanzar una gran rapidez al trabajar con el ordenador.

Al iniciarse una sesión el usuario posee una serie de variables definidas. Algunas de las más importantes son

El valor de estas preferencias puede consultarse mediante el comando env sin añadirle opción alguna. Estas preferencias del usuario en una bash shell se definen a través de varios ficheros que se leen durante el arranque de la sesión:

Los ficheros /etc/profile y .bashrc se leen siempre al entrar en el sistema o al abrir una terminal, pero el .bash_profile sólo se lee cuando se abre una login shell. Hay que destacar que el fichero profile se lee independientemente de la shell que usemos.

En estos ficheros se definen, las variables de entorno antes citadas como: PATH, HOME, PS1, TERM y también se definen los alias que deseemos usar o el mensaje de bienvenida que deseemos ver al abrir una sesión, si deseamos ver escritos sobre la pantalla mensajes de otros usuarios, etc.


[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ siguiente ]


Comprendiendo el Sistema: Comandos Básicos

Version 0.01

Curro Pérez Bernal francisco.perez@dfaie.uhu.es