[LUG.ro] MAs tips de Bash

Sebastián D. Criado lugro@lugro.org.ar
Tue, 3 Dec 2002 22:44:09 -0300


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Siguiendo con los tips, les paso algo que encontré en mi disco de hace 4 años 
atrás.
Recordé que siendo mi primer año con el mundo GNU/Linux, al leer este 
conjunto de tips, me llevo a querer aprender más al respecto.

Es algo aunque con algunos conceptos erroneos, como el llamar LINUX a 
GNU/Linux, el texto es bastante explicativo para entender el poder que tiene 
el bash.

Espero que despierte interés para aquellos que solo ven las X ;-)))

Saludos.-

- -[ 0x05 ]--------------------------------------------------------------------
- -[ LINUX SHELL: CONTROL TOTAL ]----------------------------------------------
- -[ by Paseante ]------------------------------------------------------SET-16-



Durante estos ultimos meses en nuestro pais se ha producido el "boom" Linux,
que se ha "atrevido" a hacerle sombra al omnipresente Windows.
Se nos ha pedido por parte de muchos lectores que escribiesemos sobre el tema
y aunque existen multitud de sitios en la red con buenisima informacion en
castellano (Slug, Proyecto LuCas..) y revistas que dedican mucha atencion al
tema (PC Actual, Linux Actual..) asi como ezines que lo tratan (Linux Focus,
Byterz...) no vamos a dejar de escuchar la voz de los lectores y aqui teneis
un humilde articulo sobre Linux.

A quien se dirige?

Se dirige a los que creo pedian el articulo, es decir a quienes acaban de
instalar Linux y todavia no se desenvuelven con confianza en el, pretendemos
transmitir una idea de la potencia que se esconde tras esa interfaz austera.
No se dirige a quienes todavia estan pensando si instalar Linux o como
hacerlo, ni a aquellos que llevan ya un tiempo con Linux y se manejan en el
sistema.
Ambos grupos pueden buscar informacion adecuada a sus inquietudes en las
fuentes rese$adas al comienzo.

Cuando uno escribe un articulo introductorio puede optar por dar una vision
general o centrarse en un explicar un tema, yo he optado por la segunda
opcion, no queria explicar que es ls o para que se utiliza man, doy por
descontado que ya lo sabeis y sino hay multitud de articulos de
"Introduccion al Unix" y similares, asi como otros sitios donde aprenderlo.
En su lugar voy a explicar unas cuantas opciones y caracteristicas del shell
que pueden ser desconocidas para aquellos que provienen del DOS, veremos
como aprovecharnos de las capacidades de edicion de linea y de historia del
shell Bash. Comencemos:

M    = Tecla Meta
Esc  = Escape
Ctrl = Control
Bs   = Retroceso
Supr = Suprimir
_    = Posicion del cursor

[mulder@x-files mulder]$ _

Eso de arriba es el indicador de ordenes :-D, solo tenemos que escribir lo
que queramos y el shell tratara de darle un sentido, podemos movernos a
traves de la linea que estemos escribiendo con los cursores, las teclas de
Inicio y Fin, podemos borrar con Bs y Supr.
Hasta aqui parece que todo lo que necesitamos esta listo, sin embargo quien
no se acuerda de la inmensa ayuda que ofrecia doskey en el dos, podiamos
definir macros, tener acceso a la historia de comandos introducidos...
En Linux tambien existe una historia de comandos y quiza incluso podamos
movernos por ella con las flechas de Arriba/Abajo de los cursores como lo
haciamos en el DOS con Doskey. Pero a veces hace falta algo mas y existen
unas cuantas combinaciones de teclas que nos ahorraran tiempo.
Empecemos a practicar, escribiendo esta frase.

[mulder@x-files mulder]$ Ezine SET_

La edicion de linea en Bash usa Readline, que se basa en dos teclas
especiales, la tecla "Meta" y la tecla "Control", si no tienes tecla Meta usa
Esc como sustituto, lo que tienes que saber es que M-t significa por tanto
"Pulsa Escape y t" pero OJO, al contrario de lo que sucede habitualmente y de
lo que haremos con Control esta secuencia es exactamente asi:

M-t: Pulsa Escape, Suelta Escape, Pulsa T, suelta T.
Ctrl-T es el tipico "Pulsa Control y mientras lo pulsas presiona t"

Entendido?

[mulder@x-files mulder]$ Ezine SET_

Pues pulsa ahora M-t y si no has cambiado las teclas por defecto de Readline
y son iguales a las mias tu indicador mostrara esto:

[mulder@x-files mulder]$ SET Ezine_

En efecto, M-t (Meta-t o Escape-T si no tienes tecla Meta) "transpone" las
palabras de manera que si te has equivocado en el orden no tienes que borrar
nada ni cortar ni pegar, solo pulsar dos teclas. Empieza a gustarte?

[mulder@x-files mulder]$ SET _Ezine

Ahora pulsa M-u y veras algo como

[mulder@x-files mulder]$ SET EZINE_

La combinacion de teclas convierte en mayusculas la palabra que hay tras el
cursor y lo avanza hasta el final de la misma. Y si U es de Upcase que hara
M-l? :-)

 (observa que hemos retrocedido el cursor manualmente, lo haremos en los
  siguiente ejemplos hasta que veamos como usar Readline para hacerlo)

[mulder@x-files mulder]$ SET _EZINE

M-l

[mulder@x-files mulder]$ SET _ezine

Efectivamente, M-l convierte en minusculas la palabra y si a$adimos que M-c
"capitaliza" la palabra (convierte la primera letra en mayuscula) podemos
hacer M-c a la linea anterior y tenemos

[mulder@x-files mulder]$ SET Ezine

Como veis hemos estado jugando con mayusculas y minusculas, cambiando el
orden de las palabras y todo sin mas que pulsar un par de teclas cada vez
pero aun podemos dar un toque alternativo a nuestro escritos :-> o corregir
errores comunes usando Ctrl-T (aqui si que significa pulsar Control y t a la
vez)

[mulder@x-files mulder]$ Me gusta mucho Saqeuadores

Vaya, parece que hay un peque$o error, podemos ir atras borrar una letra y
escribir la otra en su lugar o ir atras, situar el cursor sobre la u y
pulsar Ctrl-t


[mulder@x-files mulder]$ Me gusta mucho Saqueadores

Automagicamente los dos caracteres intercambian su posicion y el error queda
resuelto.
Pero hasta ahora seguimos moviendonos por la linea con los cursores que
aunque son comodos no ofrecen toda la potencia deseada sobre todo en lineas
largas.

[mulder@x-files mulder]$ _Me gusta mucho Saqueadores y leo todo lo que
                          que escriben en su ezine.

Si, para ir al final de la linea tenemos la tecla Fin pero Ctrl-e hace lo
mismo y para volver al inicio tenemos Inicio y tambien Control-a, nunca se
sabe.
Pero y si queremos ir la palabra Saqueadores?. Pues o cursor o tres
pulsaciones de M-f que sirve para adelantar (forward) una palabra, mientras
que M-b sirve para llevar el cursor una palabra hacia atras.
Practicad un poco.

Ahora que tendremos la pantalla llena de lineas en las que nos entrenamos con
nuestra recien adquirida habilidad que nos empieza a hacernos sentir como
autenticos "killers" en la linea de comandos (ya sabes que bien quedaras en
las reuniones sociales cuando cambies textos a velocidad de vertigo sin usar
mas de dos teclas? :-D) es hora de borrarla pero claro nosotros como maestros
de Readline no usamos el comando clear sino que tenemos nuestras teclas (como
no!) que son Ctrl-l. Pulsadlo. 
- -- 
- --
Sebastián D. Criado - scriado@ciudad.com.ar
L.U.G.R.o - http://www.lugro.org.ar
GNU/Linux Registered User # 146768
- -------------------------------------------------------------------
"Si el Universo fuera un programa estaría hecho en C, y correría sobre
un sistema UNIX"
                                                   Anónimo.

			
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE97V3p8hmHQ8ZCg0IRAt1nAKCT2jI5qbUtf1tfj6JxGYHqLlOJ+QCeMv83
EkjyZrCtC6mFsBWj+okrcxw=
=YOqN
-----END PGP SIGNATURE-----