2014-05-21 91 views
2

当我启动终端会话并启动shell时,我想让它登录到特定目录而不是$HOME

例如,我注意到我经常开始一个新的shell会话,并转到/tmp只是为了克隆git存储库或做一些快速和临时的工作,我想直接登录到我的目录中/sandbox或在我的shell启动而不是我的$HOME目录。

你们有没有意识到一种方法来实现这一点,而无需修改我的用户的主目录,也没有在我的.zshrc中添加一个愚蠢的cd /sandbox

非常感谢!

+0

'usermod -d“/ tmp”your_user'应该做到这一点。 – fedorqui

+0

不幸的是,usermod只是linux。另外,-d选项似乎会改变用户的主目录,这尤其是我想避免的行为。 – Oleiade

+0

这听起来像你不想修改任何现有的(.zshrc,'usermod'等)。终端会话如何知道它需要在不同的目录中启动?如何2个别名到同一台机器,'defaultLogin' VS'tmpDirLogin'在哪里(不知道如何)一些魔法确保你去tmpdir。一个'expect'脚本?祝你好运。 – shellter

回答

1

我对这样的问题的首选解决方案是使用一大堆的设置所需的环境属性包装脚本,然后exec交互的shell,通过任何命令行参数:

#!/bin/sh 

# sandbox-sh 

cd /sandbox 

exec bash "[email protected]" 

更妙的是,你可以启动GNU screentmux而不是单个外壳 - 您创建的任何新窗口将与第一个窗口共享相同的属性。或者,您也可以启动一个选项卡式终端模拟器 - 任何新的选项卡也将共享包装脚本中定义的环境。

相关问题