當前位置:
首頁 > 最新 > 通過 ssh 會話執行 bash 別名

通過 ssh 會話執行 bash 別名

我在遠程主機上上設置過一個叫做 file_repl 的 bash 別名 。當我使用 ssh 命令登錄遠程主機後,可以很正常的使用這個別名。然而這個 bash 別名卻無法通過 ssh 來運行

-- Vivek Gite

本文導航

? 如何用 ssh 客戶端執行命令

14%

? 理解 bash shell 以及命令的類型

27%

? 在 Unix 系統上無法直接通過 ssh 客戶端執行 bash 別名

46%

? 相關資料

86%

編譯自 | https://www.cyberciti.biz/faq/use-bash-aliases-ssh-based-session/

作者 | Vivek Gite

譯者 | lujun9972

我在遠程主機上上設置過一個叫做 file_repl 的 bash 別名

[1]

。當我使用 ssh 命令登錄遠程主機後,可以很正常的使用這個別名。然而這個 bash 別名卻無法通過 ssh 來運行,像這樣:

我要怎樣做才能通過 ssh 命令運行 bash 別名呢?

SSH 客戶端 (ssh) 是一個登錄遠程伺服器並在遠程系統上執行 shell 命令的 Linux/Unix 命令。它被設計用來在兩個非信任的機器上通過不安全的網路(比如互聯網)提供安全的加密通訊。

如何用 ssh 客戶端執行命令

通過 ssh 運行 命令或date 命令

[2]

可以這樣做:

結果為:

或者:

結果為:

理解 bash shell 以及命令的類型

bash shell

[3]

共有下面幾類命令:

☉ 別名,比如

☉ 關鍵字,比如

☉ 函數 (用戶自定義函數,比如 )

☉ 內置命令,比如

☉ 外部文件,比如

type 命令

[4]

和command 命令

[5]

可以用來查看命令類型:

和 都是外部命令,而 是 的別名。你不能直接執行像 這樣的別名:

在 Unix 系統上無法直接通過 ssh 客戶端執行 bash 別名

要解決這個問題可以用下面方法運行 ssh 命令:

命令選項:

? :強制分配偽終端。可以用來在遠程機器上執行任意的

[6]

基於屏幕的程序,有時這非常有用。當使用 時你可能會收到一個類似 「bash: cannot set terminal process group (-1): Inappropriate ioctl for device. bash: no job control in this shell .」 的錯誤。

bash shell 的選項:

? :運行交互 shell,這樣 shell 才能運行 bash 別名。

? :要執行的命令取之於第一個非選項參數的命令字元串。若在命令字元串後面還有其他參數,這些參數會作為位置參數傳遞給命令,參數從 開始。

總之,要運行一個名叫 的 bash 別名,可以運行下面命令:

結果為:

Running bash aliases over ssh based session when using Unix or Linux ssh cli

下面是我的一個 shell 腳本的例子:

相關資料

更多信息請輸入下面命令查看OpenSSH 客戶端

[7]

和bash 的 man 幫助

[8]

via:https://www.cyberciti.biz/faq/use-bash-aliases-ssh-based-session/

作者:Vivek Gite

[10]

譯者:lujun9972校對:wxy

本文由LCTT原創編譯,Linux中國榮譽推出

LCTT 譯者

lujun9972

共計翻譯:75篇

貢獻時間:55 天

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux中國 的精彩文章:

如何使用 pdfgrep 從終端搜索 PDF 文件

TAG:Linux中國 |