删除terminal中新选项卡的“上次login”消息

经过一些search后,我创build了一个~/.hushlogin文件,它工作,但只适用于新窗口。 有没有办法让它也适用于新标签?

这是运行OS X 10.8.3。 我没有在其他版本上testing过,但只要terminal有上述选项,那么它应该工作。

  1. 在Terminal.app,转到首选项 – >设置,然后select您正在使用的configuration文件。 进入'Shell'选项卡并在'Startup'标题下,选中'Run command:'并进入框:

     login -fpql your-username /bin/bash 

    用你实际的Unix用户名replaceyour-username名。 如果使用默认bash shell以外的shell,请将/bin/bashreplace为该shell的完整path(是的,即使您已经在Preferences-> Startup中设置了它)。

  2. 确保'运行内壳' 没有选中

  3. 如果您有“closures前提示:只有当select了除loginshell和:”选项之外的其他进程,则将“login”和“bash”添加到不会提示的进程列表中。

  4. 确保你有一个~/.bashrc文件,因为这将是从现在开始的bash使用的文件,而不是~/.bash_profile 。 我只是有一个文件引用另一个使用这种方法 。 你还需要确定它来源/ etc / profile。

说明

我们希望使用-q选项运行login ,即使在没有.hushlogin文件的情况下,也可以通知它禁止“上次login”消息。 (如上所述, login只能查看该文件的cwd文件,而不是您的主目录,因此您需要在打开shell的每个目录中使用.hushlogin文件,以便该方法可以正常工作。)

问题是terminal运行类似于login -pfl your-username /bin/bash -c exec -la bash /usr/local/bin/bash当你创build一个新的shell(我使用自制版本的bash,因此怪异的bashpath在末尾,)缺less-q标志。

不幸的是,没有办法直接改变terminal使用的参数,所以我们只是从terminal的默认login -pfl会话中用login -pfql一个新的login会话。 不雅,但它的作品。

我们需要有-q选项和bash的path来保持“新的窗口/选项卡打开:相同的工作目录”选项工作。 如果你不关心这个选项,你可以删除该标志和参数,并可能避免上面的.bashrc东西。

在小牛,创build空文件~/.hushlogin删除行“上次login”,新窗口和新标签。

在我的Mac上,它的作品。

你可以添加一个clear.bash_profile

这可能取决于操作系统版本。 在terminal2.3(10.8)上,触摸文件~/.hushlogin取消新标​​签的“上次login”消息以及新窗口。 也就是说,它适用于我。

以防万一它有助于确定发生了什么(以及在不知情的情况下),请注意“最后login”消息原则上来自login (1),而不是shell。 或者,更确切的说,如果一个shell以特定的方式被调用(包括用-l选项启动它),那么bash将会“像被调用为loginshell一样”(zsh可能有类似的function,尽pipe我现在找不到)。 现在,当Terminanl在OS X版本中打开一个新选项卡时,shell可能会有效地模拟打开一个loginshell,并且可能会弄错这个细节。 但是如果你有bash / zsh(即3.2.48 / 4.3.11)的10.8版本,那么我不知道什么可能是错误的。

另一种select:使用不同的shell。 鱼不添加此消息。