注销后如何清除终端?

phu*_*ehe 5 security tty console

目前在我的笔记本电脑上,当我注销时,我仍然可以看到我上次活动的痕迹(在 tty 中)。我怎么能告诉它(Gentoo)在注销之前清除屏幕?

Gil*_*il' 9

如果您的 shell 是 bash,请将clear_console或添加reset~/.bash_logout. 如果您的 shell 是 zsh,请将该命令添加到~/.zlogout. 您可能只想在 shell 是 Linux 控制台上的登录 shell 时运行它,例如

if [[ "`tty`" = /dev/tty[1-9] && $(ps -o comm= -p $PPID) = login ]]; then
  clear_console
fi
Run Code Online (Sandbox Code Playgroud)

作为系统管理员,您可以将控制台配置为始终在显示登录提示之前清除。最简单的方法是使用mingetty而不是getty; 您失去了对串行控制台的支持,但获得了一些功能,例如屏幕清除。首先安装mingetty. 然后,假设您使用 SysVinit, in /etc/inittab,将行更改1:2345:respawn:/sbin/getty 38400 tty1

1:2345:respawn:/sbin/mingetty tty1
Run Code Online (Sandbox Code Playgroud)

新贵相当于将要改变exec /sbin/getty -8 38400 tty1exec /sbin/mingetty tty1/etc/init/tty1.conf(这是Ubuntu的路径,您可能需要为Gentoo一些调整)。

  • 我使用的另一种方法(如果你有 root 用户)是将 `\e[2J\e[f` 添加到 `/etc/issue` 的开头,这样屏幕就会作为绘制登录提示的一部分被清除。我更喜欢 `.bash_logout` 中的 `clear_console` (3认同)