关于ssh远程执行命令出现xxx: command not found

单独测试jps命令和先ssh登录再测试jps命令都是可行的。
这说明配置的 /etc/profile文件中的环境变量是有效的,
对ssh远程执行命令这种方式是无效的,profile文件没有调用到。
于是通过技术文章了解ssh远程执行命令的原理。

https://feihu.me/blog/2014/env-problem-when-ssh-executing-command-on-remote/

ssh 远程执行命令采用bash的non-interactive + non-login shell模式。这种模式下,bash没有登录启动,然后创建一个shell,执行完脚本或命令就退出,不与用户交互。它不会调用/etc/profile文件,而是会去调用用户的home目录下的.bashrc文件,即~/.bashrc。从两个文件开头也可以看出

于是解决思路就是在~/.bashrc文件中加入对应的环境变量:

在~/.bashrc文件中# Source global definitions这段话前面加入环境变量。(注意是在# Source global definitions前面)
在这里插入图片描述

再执行命令source ~/.bashrc激活文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值