linux:ssh带命令方式远程 jps 报错
出现commend not found原因
在虚拟机登录时的执行 login Shell 和 Non-Login shell(only for bash shell)
这两个区别就是脚本不一样(可以执行set命令,查看已经定义好的变量)
Login shell 是指登录时,需要提供用户名密码的shell,如:su – user1 , 图形登录, ctrl+alt+F2-6进入的登录界面。
这种Login shell 执行脚本的顺序:
1. /etc/profile 【全局profile文件;它定义了LoginUser的 PATH, USER, LOGNAME(登录使用者帐号)】
2. /etc/profile.d/目录下的脚本
3. ~/.bash_profile 【搜索命令的路径 ——————- 登录级别 环境变量配置文件 】
4. ~/.bashrc 【存储用户设定的别名和函数 ———- shell级别 环境变量配置文件】
5. /etc/bashrc 【全局bashrc文件; 它主要定义一些 Function 和 Alias;更改/etc/bashrc会影响到所有用户,由root用户管理。】
Non-Login shell 是指登录终端后,使用ssh 登录 其他机器!
非登录shell指的是,不需要输入用户名密码的shell,如图形下 右键terminal,或ctrl+shift+T打开的shell
这种Non-Login shell 执行登录脚本的顺序:
1. ~/.bashrc
2. /etc/bashrc
3. /etc/profile.d/目录下的脚本
如何来解决这个问题
很简单
jps在 jdk的/bin里面,只需要把他配置到path里面就行了
source /etc/profile
在XXX主机上的家目录里面找到 .bashrc 这个文件(ls -al,隐藏文件)
修改文件,在文件的最后一行加上source /etc/profile 就行了
再使用ssh xx@XXX jps 就能显示了
如果不加!!!!!!!!!!!!!!!!!!!!!!!!!
在后面的群起时,在执行 start-all.sh | stop-all.sh 1000%会报错!!!!!!
#Linux#
在虚拟机登录时的执行 login Shell 和 Non-Login shell(only for bash shell)
这两个区别就是脚本不一样(可以执行set命令,查看已经定义好的变量)
Login shell 是指登录时,需要提供用户名密码的shell,如:su – user1 , 图形登录, ctrl+alt+F2-6进入的登录界面。
这种Login shell 执行脚本的顺序:
1. /etc/profile 【全局profile文件;它定义了LoginUser的 PATH, USER, LOGNAME(登录使用者帐号)】
2. /etc/profile.d/目录下的脚本
3. ~/.bash_profile 【搜索命令的路径 ——————- 登录级别 环境变量配置文件 】
4. ~/.bashrc 【存储用户设定的别名和函数 ———- shell级别 环境变量配置文件】
5. /etc/bashrc 【全局bashrc文件; 它主要定义一些 Function 和 Alias;更改/etc/bashrc会影响到所有用户,由root用户管理。】
Non-Login shell 是指登录终端后,使用ssh 登录 其他机器!
非登录shell指的是,不需要输入用户名密码的shell,如图形下 右键terminal,或ctrl+shift+T打开的shell
这种Non-Login shell 执行登录脚本的顺序:
1. ~/.bashrc
2. /etc/bashrc
3. /etc/profile.d/目录下的脚本
一般连接xshell和ssh xx@XXX登录时,是执行login shell;
使用ssh 用户1@主机1 命令 这种方式登录时,使用的是Non-Login shell,这种不读取/etc/profile文件。
因此在profile文件里面的环境变量都是读取不到的,因此使用 ssh xx@XXX jps 这种方式是返回的commend not found
很简单
jps在 jdk的/bin里面,只需要把他配置到path里面就行了
source /etc/profile
在XXX主机上的家目录里面找到 .bashrc 这个文件(ls -al,隐藏文件)
修改文件,在文件的最后一行加上source /etc/profile 就行了
再使用ssh xx@XXX jps 就能显示了
如果不加!!!!!!!!!!!!!!!!!!!!!!!!!
在后面的群起时,在执行 start-all.sh | stop-all.sh 1000%会报错!!!!!!
#Linux#