Ho usato Ctrl-L per cancellare lo schermo in BASH, ma per qualche motivo ha smesso di funzionare. Ora quando premo Ctrl-L , viene creata una nuova riga invece di cancellare lo schermo. Potrebbe essere che il problema sia dovuto al mio recente aggiornamento di BASH (dalla versione 3.1 alla versione 4.3, per correggere la vulnerabilità Shellshock ). Ma sai una cosa, trovo davvero difficile lavorare in una shell goffa, quindi devo tornare indietro Ctrl-L per cancellare lo schermo. Ho appena cercato su Google e ho trovato la soluzione seguente.
Ctrl-L dovrebbe essere destinato a cancellare lo schermo e può essere ottenuto utilizzando "bind ' comando in Linux. Controlla se Ctrl-L è destinato a cancellare lo schermo utilizzando il comando seguente.
$ bind -P
Il comando precedente visualizzerà tutte le chiavi associate a varie funzionalità. L'output di esempio è il seguente:
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".
Bene, il nostro obiettivo è controllare la chiave associata per lo schermo trasparente non è vero? Quindi grep l'output di "bind -p ”
$ bind -P | grep clear clear-screen is not bound to any keys
L'output sopra dice chiaramente che non ci sono tasti destinati a cancellare lo schermo. Quindi creiamone uno usando il comando seguente.
$ bind -x '"\C-l": clear;'
Nota: Cerca la sintassi. Abbiamo doppiato "\C-l " e virgolette singole '"\C-l":chiaro; '
Dopo aver eseguito il comando precedente, premi Ctrl-L per vedere lo schermo vuoto.
Chiavi vincolate a livello globale
Aspetta, hai appena eseguito il comando bind nella shell e rimane attivo fino a quando non esci. Per renderlo disponibile per ogni nuova sessione, devi aggiungere una riga in /etc/inputrc
$ vi /etc/inputrc
Aggiungi la riga sottostante alla fine del file.
"\C-l": clear-screen
Questo è tutto. Ora premi Ctrl-L cancellerà lo schermo e funzionerà per ogni nuova sessione.
E se volessi Ctrl-L fare di più che cancellare? Dì file elenco.
bind -x '"\C-l": clear; ls'
Dopo aver eseguito il comando precedente, premendo Ctrl-L cancellerà lo schermo ed elencherà i file nella directory corrente.
Checkout 'uomo vincolante ' per ulteriori informazioni.