No sobrecarreguem l’historial de comandes!!!

Quan executem una comanda en qualsevol consola de linux, es guarda un historial més o menys llarg que correspont a totes les comandes que has executat fins al moment, ok? Bé, us ha passat mai, que teniu un munt de comandes que són iguals? i que heu d’estar apretant la fletxeta d’amunt o d’avall un munt de cops? Es degut a que hem executat molts cops seguits una comanda (“make” per exemple). Llavors volem recordar les comandes anteriors i em d’estar buscant en una llista relativament llarda de comandes executades, havent de passar per tots els “makes” i finalment torbar la comanda que haviem executat abans d’executar la ràfaga de “makes”.

Per evitar que al executar dos comandes seguides iguals siguin guardades totes dues a l’historial, hem de fer servir variable d’entorn HISTIGNORE de la següent forma:

set HISTIGNORE="&"

Amb el caracter & aconseguim evitar aquest problema. Però hi ha més coses. Si no volem que a l’historial es guardin certes comandes que utilitzem molt poc i a les que no cal que busquem per l’historial (date, mutt, …), perque s’executen de forma esporàdica, hem de posar el nom d’aquestes comandes de la següent forma–>

set HISTIGNORE="&:mutt:date"

,és a dir, separat pel caràcter “:”.

per tal que això es compleixi en totes les sesions de consola, actualitzarem el nostre fitxer .*_profile (es troba al directori HOME de cada usuari), introduint les linies anteriors de la mateixa forma.

Són coses útils que UNIX amaga i que segur que n’hi han un fart.
Autor: jeusdi

This entry was posted in Linux. Bookmark the permalink.

3 Responses to No sobrecarreguem l’historial de comandes!!!

  1. simmaniac says:

    Somos nosotros que nos tapamos los ojos (ver man bash, sección “shell variables”), o tenemos pereza para aprender cómo funciona lo que utilizamos…

    Por otro lado, un artículo de estas características siempre es de agradecer, que parece que os hayáis olvidado de ese gran amigo que es el shell, y que nos “esconde” tantos truquitos como el del post. Muy bueno!!

    Aunque yo para resolver ese tipo de problemas lo hago de otro modo, utilizando la orden ‘history’ que te saca todas las órdenes introducidas, y la ‘orden’ ‘!’. Por ejemplo:

    479 mutt
    480 tar jtf liblist-0.2.tar.bz2
    481 vim test.c
    482 ls
    483 vim list.h
    484 jobs

    Y si quieres ejecutar el tar de nuevo, sin tener que dejarte el dedo en la flechaparriba, haces:
    $ !480

    i vualá 😀 Por supuesto también puedes utilizar grep o cualquier cosa que se te ocurra con esta lista para filtrar el historial.

    Y me da la risa cuando me dicen que el ratón es mejor que el teclado y que la ‘pantalla negra’ es algo obsoleto… 😉

  2. salvador.rueda says:

    Jo el que faig servir per cercar aquestes “comandes llargues ja executades” és

    (reverse-i-search)`: que apareix a la shell quan prems [Crtl]+r

    Fàcil no? 😉

    També són de molta utilitat les següents
    [Crtl]+l netega la pantalla
    [Crtl]+d logout o exit
    [Crtl]+t transposar dues lletres. ex: vm_ “[Crtl]+t” mv_
    [Crtl]+a anar al principi de la comanda escrita
    [Crtl]+e anar al final de la comanda escrita

    n’hi ha chorromil però aquestes són les que faig servir normalment.

    Salva.

  3. Spounge says:

    Anava a postejar aixó mateix … però veient que t’has avançat, doncs n’afegeixo unes quantes :

    • Ctrl-f : avança el cursor un caracter
    • Ctrl-b : retrocedeix el cursor un caracter
    • Ctrl-k : Elimina el text del cursor fins al final de linia
    • Ctrl-u : Elimina el text del principi de linia fins el cursor
    • Ctrl-y : Fa un “paste” del text que haguem eliminat
    • Alt-f : fa avançar el cursor una paraula
    • Alt-b : fa retrocedir el cursor una paraula
    • Ctrl-p : retrocedir una comanda en l’historial
    • Ctrl-n : avançar una comanda en l’historial

    Jo estic viciat amb les d’avançar/retrocedir paraula, però de vegades segons el tipus de terminal/programa que s’estigui utilitzant no funcionen :-/

    Per qui tingui curiositat, aquestes combinacions de tecles provenen en gran part del EMACS …. agenolleu-vos infidels!!! 🙂

Leave a Reply