最近有一位朋友遇到一件怪事,所有用戶登陸系統后會都會提示“-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
修改后保存退出,重新登陸即可 。
