Bash

如何通過 SSH 執行遠端別名?

  • February 20, 2018

如何通過 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

引用自:https://unix.stackexchange.com/questions/425319