注销后如何清除终端?

注销后如何清除终端?

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

答案1

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

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

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

1:2345:respawn:/sbin/mingetty tty1

Upstart 等效项将更改为exec /sbin/getty -8 38400 tty1in exec /sbin/mingetty tty1/etc/init/tty1.conf这些是 Ubuntu 路径,您可能需要对 Gentoo 进行一些调整)。

答案2

如果您没有bashor zsh(例如您只有ksh),或者您想要一种在所有现代 shell 中都有效的方法,我就是这样做的:

。轮廓

test -f "$HOME"/.exitrc && trap ". $HOME/.exitrc" EXIT

.exitrc

type clear >/dev/null 2>&1 && clear

就我而言,其中.bash_profile没有.zlogin任何命令,这样我可以只更改.profile.exitrc,而不必为每个 shell 编辑单独的文件。

.bash_配置文件

test -f ~/.bashrc && . ~/.bashrc
test -f ~/.profile && . ~/.profile

.zlogin

test -f ~/.profile && . ~/.profile

答案3

如果您不想编辑任何内容并且不需要每次都清除屏幕,则按 ctrl+c 可以将屏幕清除回登录提示。

相关内容