Linux文件隐藏字符
故障现象:登录Linux系统显示-bash: LANG=zh_CN: command not found,切换用户也显示该信息。
解决过程:
1、怀疑是自动加载的文件中有问题,当手动加载profile文件时,显示该-bash信息
如图所示加载文件的顺序,结合报错信息是有关LANG变量,于是找到/etc/sysconfig/i18n文件。执行该文件显示报错信息,重新创建该文件,并输入相同内容,故障现象消失。
2、说明之前的i18n文件存在问题,使用cat命令查看,内容一致,未发现问题。通过cksum命令校验这两个文件,发现信息不同,通过diff命令对比两个文件,发现不同。通过cat -A查看文件隐藏字符,发现却有隐藏字符。
使用vi命令删除隐藏字符,显示隐藏字符的方式如下:
方式1:通过 :set invlist,但是这种方式只会显示^I $ 这样的字符
方式2:通过 :%!cat -A 可以查看具体的信息
删除隐藏字符保存之后,隐藏字符仍存在,通过file命令发现这两个文件类型不一样。