GNU/Linux >> Znalost Linux >  >> Linux

Proč Ctrl-L nevyčistí obrazovku v Bash? Jak svázat klíče v Linuxu?

Používal jsem Ctrl-L vymazat obrazovku v BASH, ale z nějakého důvodu přestal fungovat. Teď, když stisknu Ctrl-L , místo vymazání obrazovky se vytvoří nový řádek. Problém může být způsoben mojí nedávnou aktualizací BASH (z verze 3.1 na verzi 4.3, abych opravil zranitelnost Shellshock ). Ale víte co, je pro mě opravdu těžké pracovat v neohrabaném prostředí, takže se musím vrátit Ctrl-L pro vyčištění obrazovky. Právě jsem googlil a našel níže uvedené řešení.

Ctrl-L by měl být vázán k vymazání obrazovky a lze toho dosáhnout pomocí ‘bind ‘ příkaz v Linuxu. Zkontrolujte, zda Ctrl-L je povinen vymazat obrazovku pomocí níže uvedeného příkazu.

$ bind -P

Výše uvedený příkaz zobrazí všechny klávesy, které jsou svázány s různými funkcemi. Ukázkový výstup je níže:

abort can be found on "\C-g", "\C-x\C-g", "\e\C-g".
accept-line can be found on "\C-j", "\C-m".
alias-expand-line is not bound to any keys
arrow-key-prefix is not bound to any keys
backward-byte is not bound to any keys
backward-char can be found on "\C-b", "\eOD", "\e[D".
backward-delete-char can be found on "\C-h", "\C-?".
backward-kill-line can be found on "\C-x\C-?".
backward-kill-word can be found on "\e\C-h", "\e\C-?".
backward-word can be found on "\e[1;5D", "\e[5D", "\eb".
beginning-of-history can be found on "\e<", "\e[5~".
beginning-of-line can be found on "\C-a", "\eOH", "\e[1~", "\e[H".
call-last-kbd-macro can be found on "\C-xe".
capitalize-word can be found on "\ec".
character-search can be found on "\C-]".
character-search-backward can be found on "\e\C-]".
clear-screen can be found on "\C-l".
complete can be found on "\C-i", "\e\e".
complete-command can be found on "\e!".
complete-filename can be found on "\e/".
complete-hostname can be found on "\e@".
complete-into-braces can be found on "\e{".
complete-username can be found on "\e~".
complete-variable can be found on "\e$".
copy-backward-word is not bound to any keys
copy-forward-word is not bound to any keys
copy-region-as-kill is not bound to any keys
dabbrev-expand is not bound to any keys
delete-char can be found on "\C-d", "\e[3~".
delete-char-or-list is not bound to any keys
delete-horizontal-space can be found on "\e\\".
digit-argument can be found on "\e-", "\e0", "\e1", "\e2", "\e3", ...
display-shell-version can be found on "\C-x\C-v".
do-lowercase-version can be found on "\C-xA", "\C-xB", "\C-xC", "\C-xD", "\C-xE", ..
downcase-word can be found on "\el".
dump-functions is not bound to any keys
dump-macros is not bound to any keys
dump-variables is not bound to any keys
dynamic-complete-history can be found on "\e\C-i".
edit-and-execute-command can be found on "\C-x\C-e".
emacs-editing-mode is not bound to any keys
end-kbd-macro can be found on "\C-x)".
end-of-history can be found on "\e>", "\e[6~".
end-of-line can be found on "\C-e", "\eOF", "\e[4~", "\e[8~", "\e[F".
exchange-point-and-mark can be found on "\C-x\C-x".
forward-backward-delete-char is not bound to any keys
forward-byte is not bound to any keys
forward-char can be found on "\C-f", "\eOC", "\e[C".
forward-search-history can be found on "\C-s".
forward-word can be found on "\e[1;5C", "\e[5C", "\ef".
glob-complete-word can be found on "\eg".
glob-expand-word can be found on "\C-x*".
glob-list-expansions can be found on "\C-xg".
history-and-alias-expand-line is not bound to any keys
history-expand-line can be found on "\e^".
history-search-backward is not bound to any keys
history-search-forward is not bound to any keys
history-substring-search-backward is not bound to any keys
history-substring-search-forward is not bound to any keys
insert-comment can be found on "\e#".
insert-completions can be found on "\e*".
insert-last-argument can be found on "\e.", "\e_".
kill-line can be found on "\C-k".
kill-region is not bound to any keys
kill-whole-line is not bound to any keys
kill-word can be found on "\ed".
magic-space is not bound to any keys
menu-complete is not bound to any keys
menu-complete-backward is not bound to any keys
next-history can be found on "\C-n", "\eOB", "\e[B".
non-incremental-forward-search-history can be found on "\en".
non-incremental-forward-search-history-again is not bound to any keys
non-incremental-reverse-search-history can be found on "\ep".
non-incremental-reverse-search-history-again is not bound to any keys
old-menu-complete is not bound to any keys
operate-and-get-next can be found on "\C-o".
overwrite-mode is not bound to any keys
possible-command-completions can be found on "\C-x!".
possible-completions can be found on "\e=", "\e?".
possible-filename-completions can be found on "\C-x/".
possible-hostname-completions can be found on "\C-x@".
possible-username-completions can be found on "\C-x~".
possible-variable-completions can be found on "\C-x$".
previous-history can be found on "\C-p", "\eOA", "\e[A".
print-last-kbd-macro is not bound to any keys
quoted-insert can be found on "\C-q", "\C-v", "\e[2~".
redraw-current-line is not bound to any keys
re-read-init-file can be found on "\C-x\C-r".
reverse-search-history can be found on "\C-r".
revert-line can be found on "\e\C-r", "\er".
self-insert can be found on " ", "!", "\"", "#", "$", ...
set-mark can be found on "\C-@", "\e ".
shell-backward-kill-word is not bound to any keys
shell-backward-word is not bound to any keys
shell-expand-line can be found on "\e\C-e".
shell-forward-word is not bound to any keys
shell-kill-word is not bound to any keys
skip-csi-sequence is not bound to any keys
start-kbd-macro can be found on "\C-x(".
tab-insert is not bound to any keys
tilde-expand can be found on "\e&".
transpose-chars can be found on "\C-t".
transpose-words can be found on "\et".
tty-status is not bound to any keys
undo can be found on "\C-x\C-u", "\C-_".
universal-argument is not bound to any keys
unix-filename-rubout is not bound to any keys
unix-line-discard can be found on "\C-u".
unix-word-rubout can be found on "\C-w".
upcase-word can be found on "\eu".
vi-append-eol is not bound to any keys
vi-append-mode is not bound to any keys
vi-arg-digit is not bound to any keys
vi-back-to-indent is not bound to any keys
vi-backward-bigword is not bound to any keys
vi-backward-word is not bound to any keys
vi-bword is not bound to any keys
vi-bWord is not bound to any keys
vi-change-case is not bound to any keys
vi-change-char is not bound to any keys
vi-change-to is not bound to any keys
vi-char-search is not bound to any keys
vi-column is not bound to any keys
vi-complete is not bound to any keys
vi-delete is not bound to any keys
vi-delete-to is not bound to any keys
vi-editing-mode is not bound to any keys
vi-end-bigword is not bound to any keys
vi-end-word is not bound to any keys
vi-eof-maybe is not bound to any keys
vi-eword is not bound to any keys
vi-eWord is not bound to any keys
vi-fetch-history is not bound to any keys
vi-first-print is not bound to any keys
vi-forward-bigword is not bound to any keys
vi-forward-word is not bound to any keys
vi-fword is not bound to any keys
vi-fWord is not bound to any keys
vi-goto-mark is not bound to any keys
vi-insert-beg is not bound to any keys
vi-insertion-mode is not bound to any keys
vi-match is not bound to any keys
vi-movement-mode is not bound to any keys
vi-next-word is not bound to any keys
vi-overstrike is not bound to any keys
vi-overstrike-delete is not bound to any keys
vi-prev-word is not bound to any keys
vi-put is not bound to any keys
vi-redo is not bound to any keys
vi-replace is not bound to any keys
vi-rubout is not bound to any keys
vi-search is not bound to any keys
vi-search-again is not bound to any keys
vi-set-mark is not bound to any keys
vi-subst is not bound to any keys
vi-tilde-expand is not bound to any keys
vi-yank-arg is not bound to any keys
vi-yank-to is not bound to any keys
yank can be found on "\C-y".
yank-last-arg can be found on "\e.", "\e_".
yank-nth-arg can be found on "\e\C-y".
yank-pop can be found on "\ey".

No, naším cílem je zkontrolovat vázaný klíč pro čistou obrazovku, ne? Stačí tedy grep výstup „bind -p

$ bind -P | grep clear
 clear-screen is not bound to any keys

Výše uvedený výstup jasně říká, že neexistují žádné klávesy, které by vymazaly obrazovku. Vytvořme jej tedy pomocí níže uvedeného příkazu.

$ bind -x '"\C-l": clear;'

Poznámka: Hledejte syntaxi. Uvedli jsme dvojitou citaci „\C-l “ a jednoduché uvozovky ‘„\C-l“:jasné;

Po provedení výše uvedeného příkazu stiskněte Ctrl-L abyste viděli prázdnou obrazovku.

Klíče jsou svázány globálně

Počkejte, právě jste provedli příkaz bind v shellu a zůstane naživu, dokud neodejdete. Chcete-li jej zpřístupnit pro každou novou relaci, musíte přidat řádek v /etc/inputrc

$ vi /etc/inputrc

Přidejte pod řádek na konec souboru.

"\C-l": clear-screen

A je to. Nyní stiskněte Ctrl-L vymaže obrazovku a bude fungovat pro každou novou relaci.

Co když chcete Ctrl-L dělat víc než jen čistit? Řekněte seznam souborů.

bind -x '"\C-l": clear; ls'

Po provedení výše uvedeného příkazu stiskněte Ctrl-L vymaže obrazovku a zobrazí seznam souborů v aktuálním adresáři.

Pokladna „man bind ‘ pro více informací.


Linux
  1. Jak BASH Shell načítá své konfigurační soubory v Linuxu

  2. Jak opravit příkaz Ifconfig nebyl nalezen v Linuxu Ubuntu

  3. Chyba Linuxu:bash:rsync:příkaz nenalezen

  1. Proč pr_debug linuxového jádra nedává žádný výstup?

  2. Proč je Bash všude (ve většině, ne-li ve všech distribucích Linuxu)?

  3. Jak poznám, že běžím na linuxové obrazovce nebo ne?

  1. Jak se Linux dostal k sálovému počítači

  2. Jak opravit chybu Rust „linker ‚cc‘ nenalezen“ v systému Linux

  3. Jak opravit chybu Příkaz nenalezen v Linuxu