Kako omogočiti samodokončanje v terminalu

ta Nasvet je koristen za vse tiste, ki pogosto (vsak dan) uporabljajo terminal ali konzolo na sistemih GNU / Linux.

Pred začetkom

Če nimamo nameščenega paketa bash-dokončanja, ga namestimo:

aptitude namestite bash-dokončanje

Omogoči samodokončanje na TTY za vse uporabnike

Odpremo / etc / profile

nano / etc / profile

V / etc / profile iščemo naslednje vrstice ...

# omogoči dokončanje basha v interaktivnih lupinah
#if [-f / etc / bash_completion] &&! shopt -oq posix; potem
#. / etc / bash_completion
#fi

In nadomestimo z:

če ["$ BASH"]; potem
       če je [-f / etc / bash_completion] &&! shopt -oq posix; potem
            . / etc / bash_completion
       fi
fi

Slednji bo aktiviral bash_completion za vse uporabnike, vključno s korenskim. Toda omogočil ga bo samo na TTY-jih in ne na terminalskih emulatorjih.

Ponastavili smo TTY in to je to.

Kot lahko vidite, smo izvirni datoteki dodali if, ki potrjuje, da se bash_completion izvaja šele, ko smo v Bashu. Brez tega pogoja nam bo GDM dal prej omenjeno napako, saj bi GDM klical bash_completion in je iz nekega razloga v sporu z xsession.

Omogoči samodokončanje v terminalskih emulatorjih za vse uporabnike

Odpremo /etc/bash.bashrc

# nano /etc/bash.bashrc

V /etc/bash.bashrc iščemo naslednje vrstice ...

# omogoči dokončanje basha v interaktivnih lupinah
#if [-f / etc / bash_completion] &&! shopt -oq posix; potem
#. / etc / bash_completion
#fi

... In odstranimo "#" (jih komentiramo), videti tako:

# omogoči dokončanje basha v interaktivnih lupinah
če je [-f / etc / bash_completion] &&! shopt -oq posix; potem
    . / etc / bash_completion
fi

Slednji bo aktiviral bash_completion za vse uporabnike, vključno s korenskim. Toda omogočil ga bo samo na terminalskih emulatorjih in ne na TTY-jih.

Ponovno zaženemo kateri koli terminal in spremembe začnejo veljati.

Omogoči samodokončanje v terminalskih emulatorjih samo za enega uporabnika

Datoteko moramo ustvariti (ali urediti, če obstaja) ~ / .bashrc.

nano ~ / .bashrc

Dodamo (ali iščemo, če ne obstajajo, so pa komentirani, kot je to storjeno v /etc/bash.bashrc), tako da je videti tako:

# omogoči dokončanje basha v interaktivnih lupinah
če je [-f / etc / bash_completion] &&! shopt -oq posix; potem
    . / etc / bash_completion
fi

- Če datoteko ustvarimo, preprosto dodamo te vrstice.
- Če te vrstice obstajajo, vendar jih ni, jih dodamo na konec datoteke.
- Če obstaja in te vrstice obstajajo, jih preprosto komentiramo.

Konzolo znova zaženemo in spremembe bodo začele veljati.

Po želji omogočite samodokončanje

Preprosto moramo zagnati bash_completion v trenutku, ko ga želimo uporabiti. Dezaktiviran bo, ko končamo sejo v terminalu (z ukazom exit) ali zapremo terminal, ki ga uporabljamo, če smo v grafičnem okolju. Če ga želite zagnati, kadar koli želimo, naredimo:

. / etc / bash_completion
Hvala Carlos Fioriti!

Vir: zvezek iz leta 98


Dodaj kot prednostni vir v Googlu