2014-05-21 90 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而不是單個外殼 - 您創建的任何新窗口將與第一個窗口共享相同的屬性。或者,您也可以啓動一個選項卡式終端模擬器 - 任何新的選項卡也將共享包裝腳本中定義的環境。

相關問題