Lin*_*eak 5 command-line bash ssh alias
如何通过 SSH 执行远程别名?
例如,有一个相当复杂的别名rkhunter
,我想在一个命令中执行它,ssh
如下所示:
ssh user@server_ip -p port_number -t alias_name_defined_on_server
Run Code Online (Sandbox Code Playgroud)
确切地说,别名是.bash_aliases
由.bashrc
该特定的来源定义的user
。
SO 中发布了一个有效的答案,引用如下:
引自手册页
bash
:当 shell 不是交互式时,别名不会扩展,除非使用 shopt 设置 Expand_aliases shell 选项...因此,IMO 最简单的方法是将以下几行放在文件的顶部
/home/<user>/.bashrc
:Run Code Online (Sandbox Code Playgroud)# 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"
成功运行了。
注意:如果您~/.bashrc
持有类似以下内容,请注释return
当 shell 不交互式时的行:
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
Run Code Online (Sandbox Code Playgroud)