删除terminal中新选项卡的“上次login”消息
经过一些search后,我创build了一个~/.hushlogin
文件,它工作,但只适用于新窗口。 有没有办法让它也适用于新标签?
解
这是运行OS X 10.8.3。 我没有在其他版本上testing过,但只要terminal有上述选项,那么它应该工作。
-
在Terminal.app,转到首选项 – >设置,然后select您正在使用的configuration文件。 进入'Shell'选项卡并在'Startup'标题下,选中'Run command:'并进入框:
login -fpql your-username /bin/bash
用你实际的Unix用户名replace
your-username
名。 如果使用默认bash shell以外的shell,请将/bin/bash
replace为该shell的完整path(是的,即使您已经在Preferences-> Startup中设置了它)。 -
确保'运行内壳' 没有选中 。
-
如果您有“closures前提示:只有当select了除loginshell和:”选项之外的其他进程,则将“login”和“bash”添加到不会提示的进程列表中。
-
确保你有一个
~/.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。 鱼不添加此消息。