Procházení historie v bashi klávesami PgUp a PgDn
V dobách, kdy jsem používal Gentoo, jsem se naučil procházet historii příkazů shellu bash
klávesami PageUp
a PageDown
. Velice rychle jsem si na to zvykl. Protože však tato funkce není vždy ve výchozím nastavení povolena, bývá i málo využívána.
Pro povolení prohledávání je třeba zeditovat soubor /etc/inputrc:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# /etc/inputrc - global inputrc for libreadline # See readline(3readline) and `info rluserman' for more information. # Be 8 bit clean. set input-meta on set output-meta on # To allow the use of 8bit-characters like the german umlauts, uncomment # the line below. However this makes the meta key not work as a meta key, # which is annoying to those which don't need to type in 8-bit characters. # set convert-meta off # try to enable the application keypad when it is called. Some systems # need this to enable the arrow keys. # set enable-keypad on # see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys # do not bell on tab-completion # set bell-style none # set bell-style visible # some defaults / modifications for the emacs mode $if mode=emacs # allow the use of the Home/End keys "\e[1~": beginning-of-line "\e[4~": end-of-line # allow the use of the Delete/Insert keys "\e[3~": delete-char "\e[2~": quoted-insert # mappings for "page up" and "page down" to step to the beginning/end # of the history # "\e[5~": beginning-of-history # "\e[6~": end-of-history # alternate mappings for "page up" and "page down" to search the history "\e[5~": history-search-backward "\e[6~": history-search-forward # mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving "\e[1;5C": forward-word "\e[1;5D": backward-word "\e[5C": forward-word "\e[5D": backward-word "\e\e[C": forward-word "\e\e[D": backward-word $if term=rxvt "\e[7~": beginning-of-line "\e[8~": end-of-line "\eOc": forward-word "\eOd": backward-word $endif # for non RH/Debian xterm, can't hurt for RH/Debian xterm # "\eOH": beginning-of-line # "\eOF": end-of-line # for freebsd console # "\e[H": beginning-of-line # "\e[F": end-of-line $endif |
Zde je třeba „odkomentovat” řádky s funkcí history-search-backward
a history-search-forward
. Změny se projeví až po novém startu bashe.
Použiťí je jednoduché. Napíšete začátek příkazu, který už jste použili, třeba cd. Potom stiskejte klávesu PgUp
. V příkazovém řádku se budou objevovat varianty, které jste použili dříve. Ty můžete rovnou použít stiskem Enter
nebo nejprve upravit.
Bash má spoustu dalších funkcí, které usnadňují psaní v terminálu. V angličtině se o nich hezky píše v článku Advancing in the Bash Shell. Pozor ale na to, že ne všechny klávesové zkratky budou fungovat ve virtuální konzoli.
Petr