ssh找不到命令,环境变量不起作用

问题描述

最近使用xshell用ssh登录远程服务器,使用指令时,发现命令无法找到,但是在服务器本身登录时是可以找到的,使用vscode远程登录也可以找到命令。

问题分析

参考博客ssh连接远程主机执行脚本的环境变量问题
发现问题定位为ssh登录时为non-interactive + non-login shell,这种方式会去加载加载$BASH_ENV的值所对应的文件

echo $BASH_ENV

发现此值为空
文中给出了两种方案:

  • 第一种,在/etc/profile或者~/.bashrc文件开头,加入下面代码,来强制login shell

    #!/bin/bash --login
    

    经过测试,发现在/etc/profile无效,在~/.bashrc有效,加入后需要source一下文件

  • 第二种,设置$BASH_ENV值,通过在/etc/profile进行设置,经过测试,可以设置成功,但是对我的电能命令依旧无效

解决方法

按照下面方法,可以解决ssh找不到命令
1,在~/.bashrc头部加入

#!/bin/bash --login

加入后,终端执行

source ~/.bashrc

使文件生效,查看所用的命令是否可以找到,如果可以找到,执行下一步
2.在/etc/profile末尾加入

source  ~/.bashrc

使得下次ssh登录有效

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值