似乎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
控制台没有此功能。
是的,
Ctrl-L
在 bash 中(在set -o emacs
模式下)做同样的事情。或者您可以硬连线
alias clear='printf "\033[H\033[2J"'
应该在大多数终端仿真器中使用的转义,并且不假设您已经安装ncurses
或bash
安装。注意:
clear
busybox 中的小程序不会清除回滚缓冲区,因此如果您使用一些基于busybox 的系统,您不必做任何特别的事情,就像大多数嵌入式Linux 系统一样。clear
是一个终端命令,摘录man clear
:Ctrl+l是
readline
' 的clear-screen
命令 (man 3 readline
) 的键绑定。我找不到给
clear
readlineclear-screen
命令起别名的方法,而且可能根本不可能。