ssh执行单行命令 alias 失效
场景
使用ssh
命令链接远程服务器后执行.bashrc
中定义的alias
命令, 提示命令不存在.
ssh root@10.0.0.1 ll
# ll: command not found
但是使用ssh
命令登录后, 在交互界面是可以正常执行的.
解决
因为shell
在非交互模式下, alias
默认是不加载的. 不过可以通过shopt
来修改扩展选项的开关. 因此, 解决方式就是我们在加载alias
之前将其开启就好啦. 修改.bashrc
如下:
# 判断当前是交互界面
# 当然了, 要是不判断直接打开也没什么问题
if [ -z "$PS1" ]; then
# 强行将 alias 扩展开启
shopt -s expand_aliases
fi
alias ll="ls -l"
OK, 这个时候再执行命令ssh root@10.0.0.1 ll
, 就能正常看到结果啦
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY