Bash

我可以使 clear 命令的行為類似於 Bash 中的 Ctrl-L 嗎?

  • October 28, 2021

似乎clear和 bash Ctrl-L完全不同;clear完全刪除所有以前的終端資訊(因此您不能向上滾動)同時Ctrl-L只需滾動螢幕,使游標位於頁面頂部,以便您仍然可以向上滾動並查看以前的資訊。我更喜歡Ctrl-L系統。有沒有辦法覆蓋clear,以便它執行Ctrl-L而不是擦除所有以前的終端資訊?這不是一個大問題,但出於好奇,我只是想知道是否有一種方法可以將別名clear指向我的首選Ctrl功能L

作為旁注,我剛剛注意到 PowerShell 也有一個綁定Ctrl-L並且它的執行方式與Ctrl-L在 bash 上相同;似乎那裡的 PowerShell 設計人員從 bash 中獲得了很多,而cmd.exe控制台沒有此功能。

有沒有辦法覆蓋 clear 以便它執行 Ctrl-L 而不是擦除所有以前的終端資訊?

alias clear='tput -x clear'

是的,Ctrl-L在 bash 中(在set -o emacs模式下)做同樣的事情。

或者您可以硬連線alias clear='printf "\033[H\033[2J"'應該在大多數終端仿真器中使用的轉義,並且不假設您已經安裝ncursesbash安裝。

注意:clearbusybox 中的小程序不會清除回滾緩衝區,因此如果您使用一些基於busybox 的系統,就像大多數嵌入式Linux 系統一樣,您不必做任何特別的事情。

引用自:https://unix.stackexchange.com/questions/674823