Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Tutoriales / Trabajando con Unix - Ganar tiempo con bash

Trabajando con Unix - Ganar tiempo con bash

 ----- 
Creative Commons Tutorial de Mononeurona - 28 de Octubre de 2005
Temas Relacionados: Unix
2. Ganar tiempo con bash


Editando la línea de comandos

A veces, escribe un comando largo a bash y, antes de pulsar |_Intro_|, se da cuenta de que ha cometido un error al escribirlo. Se puede simplemente borrar todo y volver a teclear correctamente, pero ¡es demasiado esfuerzo! En cambio, se pueden usar las flechas para moverse, borrar el/los carácter/es incorrecto/s, y escribir la información correctamente.

Hay muchas teclas especiales que ayudan a editar la línea de comandos, muchas de ellas similares a los comandos usados en GNU Emacs. Por ejemplo, |_C-t_| intercambia dos carácteres adyacentes1.

Se pueden encontrar muchos de los comandos en el capítulo sobre Emacs, Capítulo 8.

Completamiento de comandos y nombres de fichero

Otra peculiaridad de bash es la ejecución automática de las líneas de comando. Por ejemplo, veamos el siguiente ejemplo de un comando cp típico:

/home/larry$ ls -F

esto-es-un-fichero-largo

/home/larry$ cp esto-es-un-fichero-largo corto

/home/larry$ ls -F

corto esto-es-un-fichero-largo

/home/larry$

Es una gran molestia tener que teclear cada letra de esto-es-un-fichero-largo cada vez que se quiere acceder a él, sucede lo mismo si queremos crear esto-es-un-fichero-largo copiando en él /etc/passwd2. Ahora, aprenderemos a escribir el anterior comando cp más rápidamente y con menos posibilidad de error.

En vez de teclear el nombre del fichero entero, se escribe "cp es" , se pulsa y suelta la tecla |_Tab_|. Por arte de magia, el resto del nombre del fichero aparece en la línea de comandos, y se puede escribir corto. Desgraciadamente, bash no pude leer los pensamientos, por lo que se debe teclear corto.

Cuando se pulsa |_Tab_|, bash mira lo que hay escrito y busca un fichero que empiece como eso. Por ejemplo, si tecleo /usr/bin/ema y luego pulso |_Tab_|, bash encontrará /usr/bin/emacs ya que es el único fichero que empieza por /usr/bin/ema en mi sistema. En cambio, si tecleo /usr/bin/ld y pulso |_Tab_|, bash me avisará. Eso es porque tres ficheros, /usr/bin/ld, /usr/bin/ldd, y /usr/bin/ld86 empiezan por /usr/bin/ld en mi sistema.

Si se intenta un completamiento y bash avisa, se puede pulsar inmediatamente |_Tab_| otra vez para conseguir una lista de todos los ficheros que coincidan con el patrón. De este modo, si no se está seguro del nombre exacto del fichero, podemos teclear los primeros caracteres del nombre y buscarlo en una lista más pequeña de ficheros.



1 |_C-t_|significa mantener pulsada la tecla marcada como "Ctrl", y apretar la tecla "t". Luego soltar ambas.

2 "cp /etc/passwd esto-es-un-fichero-largo"
Autor y licencia de 'Trabajando con Unix - Ganar tiempo con bash'
Mononeurona Extraído de: http://www.mononeurona.org/index.php?idp=166

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Este trabajo está licenciado bajo la Creative Commons License. 1999-2005 © :: MonoNeurona.org ::
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 'Trabajando con Unix - Ganar tiempo con bash'

Es muy fácil crear archivos en el sistema operativo UNIX. Por lo tanto, los usuarios... Más »
A lo largo de este trabajo se va a intentar hacer un repaso de los... Más »
Paradójico, el tiempo, todo lo da y todo lo quita. Porque el reloj gobierna la... Más »
Ken Thompson y Dennis Ritchie decidieron esbozar un sistema operativo que supliera las necesidades de... Más »
Un sistema invariante en el tiempo TI (Time-Invariant) tiene la propiedad de que cierta entrada... Más »
¿Estás seguro de que deseas eliminar este capítulo?