Académique Documents
Professionnel Documents
Culture Documents
Trucos Bash
SHELL ELEGANTE
Unos cuantos trucos pueden alegrar la lnea de comandos y aadir una
nota de color a tu consola.
POR HEIKE JURZIK
78
Nmero 23
Atencin!
Los comandos se introducen tpicamente
en el promt de la shell. Uno tpico se asemeja a lo siguiente:
huhn@huhnix:~>
WWW.LINUX- MAGAZINE.ES
Buena Memoria
Bash posee una buena memoria, ya que
almacena la entrada del usuario en la historia (un fichero llamado ~/.bash_history), permitiendo a los usuarios reciclar
comandos en la pantalla. Pulsando la
tecla [Flecha arriba] presenta el ltimo
comando escrito en la pantalla. Si la pulsamos mltiples veces nos retrocede
hacia atrs en el tiempo, mientras que si
pulsamos la tecla [Flecha abajo] nos lleva
hasta el da ms prximo al de hoy. Pueden modificarse comandos que fueron
reciclados de esta manera y ejecutarlos de
nuevo pulsando Enter.
Evidentemente, la memoria de Bash es
slo tan buena en la medida en la que se
le especific en la variable de entorno
HISTSIZE (ver la seccin Todo es Variable). Puede preguntarse a la shell que
nos diga cuantos slots tiene reservados
para los comandos:
$ echo $HISTSIZE
500
comienza a desaparecer
para
dejar sitio a otros
nuevos. Para evitar el desgaste de
la tecla [Flecha
arriba]
Bash
incluye una funcin de bsqueda. Si se pulsan los atajos de
teclado [Ctrl-R] o
[Crtl-S] (ver el
cuadro Atajos de
Teclado
de
Bash) se pueden
realizar bsquedas adelante o
hacia atrs a travs de la historia
Figura 1: Todo es una variable. env presenta una lista completa de
para un comando
variables de entorno Bash.
determinado. El
prompt cambia para que esto quede
el valor predeterminado. Por ejemreflejado, por ejemplo, pulsando [Ctrl-R]
plo, fc -l -5 dar los ltimos cinco
sita el siguiente prompt en la pantalla:
comandos.
La herramienta script proporciona
(reverse - i - search) `:
un mtodo alternativo para loguear
una sesin de la shell. Puede escriSe escribe el comando (o parte del
birse script MyLogfile antes de arrancomando) que se est buscando a partir
car una sesin de shell extendida,
de los dos puntos. Bash completar los
para grabar los comandos que se
comandos mientras que se est escriintrodujeron y las salidas que creabiendo, de modo que unas cuantas letras
ron. Puede abandonarse el este prcdeberan bastar para encontrar el
tico logueado pulsando [Ctrl] + [D].
comando que se est buscando. Para ejeFicheros de Configuracin
cutar un comando puede usarse este
Bash
mtodo, y luego pulsar [Enter]. Alternativamente, tambin puede llevarse a
Bash viene con toda una coleccin de
cabo manteniendo pulsadas [Crtl] + [R]
ficheros de inicio que modifican el
hasta encontrar lo que se est buscando.
comportamiento de la shell (y otros
Si se pulsa [Esc] es posible modificar el
programas incluidos en el sistema).
comando antes de ejecutarlo.
Para aadir versatilidad a este caos, la
mayora de las distribuciones utilizan
Contexto
diferentes mtodos, asignando difeLas funciones que hemos visto
rentes prioridades a los ficheros de
hasta ahora ayudan a encontrar
configuracin o incluyendo an ms
comandos, pero estn completaficheros.
mente sacadas fuera de contexto.
Usando SSH para iniciar una sesin
Para presentar procesos ms comen una consola virtual que arranca
plejos en la pantalla, bien puede
una shell, sta va precedida de un
verse el fichero historia (~/
signo menos en la lista de procesos:
.bash_history) o bien ejecutar la
shell builtin fc (de Fix Com$ ps auxwww | grep bash
mand). En combinacin con la etihuhnix 3778 0.0 0.3 3056U
queta -l , esta herramienta presenta
1652 tty1 Ss+ May28 0:00U
los ltimos 17 comandos, siendo 17
- bash
el nmero de comandos a mostrar
huhnix 4193 0.0 0.3 3068U
1672 pts/1 Ss May28 0:00U
de manera predeterminada. Puede
/bin/bash
aadirse un nmero para cambiar
WWW.LINUX- MAGAZINE.ES
Nmero 23
79
~/.bashrc para
analizar los cambios.
Tambin
puede acortarse
el
comando
introduciendo
~/.bashrc.
El alias builtin
es otra prctica
caracterstica
que permite a los
usuarios definir
comandos que
usan
regularmente junto con
su tpica eleccin de opciones, y asignar un
nombre
ms
Figura 2: Las variables de entorno permiten a los usuarios modificar el
corto e intuitivo
comportamiento de Bash y de muchos otros programas.
a todo el mogolln. La mayora
La shell comprueba primero el direcde las distribuciones definen unos
torio de inicio de los usuarios para
cuantos alias por defecto. Para conocer
~/.bash_profile. Si este fichero se
los alias de la versin que se dispone se
encuentra perdido, bash busca priescribe el comando alias en el prompt:
mero ~/:bash_login, y luego /etc/
profile o ~/.profile.
$ alias
Shells Interactivas
Adems de todo lo anterior, existen
shells interactivas, tales como las que
se arrancan desde dentro de otras
shells. stas incluyen Xterms u otros
programas de consola en interfaces de
usuario grficas. Las preferencias para
estas shells se almacenan en la privada
~/.bashrc, o en el fichero del sistema
global /etc/bash.bashrc, donde tambin
se aaden las definiciones alias y las
variables de entorno discutidas en este
artculo.
Aunque se modifique el propio ~/
.bashrc, bien se necesita arrancar una
nueva shell, o bien introducir source
alias ls=ls U
color=auto
El comando unalias permite liberar cualquier atajo que no sea necesario. Por
ejemplo, unalias ll se deshara del alias
que acabamos de definir. Para obtener un
alias persistente es preciso aadir la definicin al fichero ~/.bashrc y parsearlo.
80
Nmero 23
WWW.LINUX- MAGAZINE.ES
Todo es Variable
Las variables de entorno permiten
extender el nmero de caractersticas
de la shell y modificar el comportamiento de otros determinados programas. El sistema viene con un juego de
variables por defecto, tales como el
ejemplo HISTSIZE (ver la seccin
Buena Memoria). Puede usarse el
comando echo para presentar el valor
de la variable, recordando que hay que
anteponer el signo dlar a la variable:
echo $HISTSIZE
tiles variables.
GLOSARIO
Builtin: Un builtin no es un ejecutable independiente, sino
comandos de la shell integrados.
Los builtins rara vez tienen su
propia pgina man, sino que se
describen en la pgina de bash
(man bash).
RECURSOS
[1] HOWTO del prompt de Bash: http://
www.tidp.org/HOWTO/
Bash-Prompt-Howto/