你是否遇到過需要 SSH 登入到遠端伺服器並立即 cd
到一個目錄來繼續互動式作業?你找對地方了!這個簡短的教學描述了如何直接 SSH 登入到遠端 Linux 系統的特定目錄。而且不僅是 SSH 登入到特定目錄,你還可以在連線到 SSH 伺服器後立即執行任何命令。這些沒有你想的那麼難。請繼續閱讀。
在我知道這個方法之前,我通常首先使用以下命令 SSH 登入到遠端系統:
$ ssh user@remote-system
然後如下 cd
進入某個目錄:
$ cd <some-directory>
然而,你不需要使用兩個單獨的命令。你可以用一條命令組合並簡化這個任務。
看看下面的例子。
$ ssh -t [email protected] 'cd /home/sk/ostechnix ; bash'
上面的命令將通過 SSH 連線到遠端系統 (192.168.225.22) 並立即進入名為 /home/sk/ostechnix/
的目錄,並停留在提示符中。
這裡,-t
標誌用於強制分配偽終端,這是一個必要的互動式 shell。
以下是上面命令的輸出:
你也可以使用此命令:
$ ssh -t [email protected] 'cd /home/sk/ostechnix ; exec bash'
或者,
$ ssh -t [email protected] 'cd /home/sk/ostechnix && exec bash -l'
這裡,-l
標誌將 bash 設定為登入 shell。
在上面的例子中,我在最後一個引數中使用了 bash
。它是我的遠端系統中的預設 shell。如果你不知道遠端系統上的 shell 型別,請使用以下命令:
$ ssh -t [email protected] 'cd /home/sk/ostechnix && exec $SHELL'
就像我已經說過的,它不僅僅是連線到遠端系統後 cd
進入目錄。你也可以使用此技巧執行其他命令。例如,以下命令將進入 /home/sk/ostechnix/
,然後執行命令 uname -a
。
$ ssh -t [email protected] 'cd /home/sk/ostechnix && uname -a && exec $SHELL'
或者,你可以在遠端系統上的 .bash_profile
檔案中新增你想在 SSH 登入後執行的命令。
編輯 .bash_profile
檔案:
$ nano ~/.bash_profile
每個命令一行。在我的例子中,我新增了下面這行:
cd /home/sk/ostechnix >& /dev/null
儲存並關閉檔案。最後,執行以下命令更新修改。
$ source ~/.bash_profile
請注意,你應該在遠端系統的 .bash_profile
或 .bashrc
檔案中新增此行,而不是在本地系統中。從現在開始,無論何時登入(無論是通過 SSH 還是直接登入),cd
命令都將執行,你將自動進入 /home/sk/ostechnix/
目錄。
就是這些了。希望這篇文章有用。還有更多好東西。敬請關注!
乾杯!