最近有一位朋友遇到一件怪事,所有用户登陆系统后会都会提示“-bash: export: `PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/python3/bin': 不是有效的标识符” 一直查不到原因, 远程查看到找到了原因,特此记录一下,以备后用。
操作系统为 Centos7.4 x64位,故障现象为所有用户登陆系统后都会提示“不是有效的标识符”如下所示
Connecting to 192.168.72.139:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. Last login: Thu Apr 9 11:10:58 2020 from 192.168.72.1 -bash: export: `PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/python3/bin': 不是有效的标识符
既然是所有用户都有此提示,说明应该是全局配置出问题了,需要到/etc配置中查找原因。 查看/etc/profile中未发现问题,但其中一行信息提示了我
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
看这类似于nginx的思想,默认的配置文件会指向一个目录 ,只要在这个目录中放置了配置文件就会自动重载并生效。
cd 到该目录中会找到相应的python3.sh的配置文件# pwd
/etc/profile.d # ls 256term.csh bash_completion.sh colorls.csh flatpak.sh less.csh python3.sh vim.sh which2.sh 256term.sh colorgrep.csh colorls.sh lang.csh less.sh sh.local vte.sh abrt-console-notification.sh colorgrep.sh csh.local lang.sh PackageKit.sh vim.csh which2.csh
查看 python3.sh文件内容如下
# more python3.sh
export PATH=$PATH:/usr/local/python3/bin
不知道大家看出来了没有, 3,2,1 。。。。。。
问题就出在那个=号上面, 这里的=使用的是全角符号,而我们应该使用的是半年符号。 这两者是有区别的,但不仔细也看不出个所以然来 。。。
export PATH=$PATH:/usr/local/python3/bin
修改后保存退出,重新登陆即可 。