Bash
如何通過 SSH 執行遠端別名?
如何通過 SSH 執行遠端別名?
例如, 有一個相當複雜的別名
rkhunter
,我想在一個命令中執行它,ssh
如下所示:ssh user@server_ip -p port_number -t alias_name_defined_on_server
準確地說,別名是
.bash_aliases
由.bashrc
這個特定的user
.
一個有效的答案發表在 SO 中,引用如下:
從手冊頁中引用
bash
:當 shell 不是互動式時,別名不會擴展,除非使用 shopt 設置了 expand_aliases shell 選項…因此,IMO 最簡單的方法是將以下幾行放在
/home/<user>/.bashrc
文件的頂部:# comment out the original line # [ -z "$PS1" ] && return if [ -z "$PS1" ]; then shopt -s expand_aliases # alias ls='ls --color=always' # return fi
保存並退出。現在你可以
ssh user@host "your_alias"
成功執行了。注意:如果您持有類似下面的內容,請在 shell 不互動時
~/.bashrc
註釋該行:return
# If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac