如何通过 SSH 执行远程别名?
例如,有一个相当复杂的别名rkhunter
,我想在一个命令中执行它,ssh
如下所示:
ssh user@server_ip -p port_number -t alias_name_defined_on_server
确切地说,别名是由该特定的.bash_aliases
来源定义的。.bashrc
user
答案1
一个可行的答案发表于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