前段时间公司项目导出
文件名乱码,经过一番摸索,发现是linux服务器系统编码的锅,看了网上很多帖子,我也有了一些总结(以下出现linux都表示CentOS7)。 一般来说,如果你的linux系统没人修改过
字符集相关
配置,那么你是算幸运的。我们中国的项目多数使用utf-8字符集,网上也有说明linux默认字符集是UTF-8,乍一看是统一的,不会乱码,但是实际上,linux默认是"en_US.UTF-8"(至少我的是这样的),而我们需要的实际上不是这个,而是zh_CN.UTF-8,所以我需要把系统字符集修改为"zh_CN.UTF-8"。 修改步骤: 1)直接输入 locale 可查看当前linux系统字符集配置; 观察是否都为"zh_CN.UTF-8"(LC_ALL可以是空的),如若不是,就需要往下走配置了 2)修改 /etc/locale.conf文件; 这个文件的内容不需要多,如果你没有特殊需求(不同功能要求不同字符集编码),仅仅放一行,LANG="zh_CN.UTF-8";然后就可以了,其他文件都不需要动,越动越乱。 3)让locale.conf生效; 使用 source /etc/locale.conf,然后使用 locale 命令查看是否字符集配置修改好。 说明: 第一点:网上有说法修改 i18n 文件,那要看你的目的是什么,我这里,这个文件根本不需要。因为我用的locale.conf,这两个文件有一个就好,我推荐使用locale.conf,centOS7默认没有i18n文件的。使用i18n就自求多福吧! 第二点:不建议对LC_ALL进行配置,确实没必要。如果你主动配置类LC_ALL可能会有很多麻烦事儿等着你。(比方说,有些linux版本,当LANG与LC_ALL配置值相同时,LC_ALL会在/etc/profile.h/lang.sh中被置为空,自己去看lang.sh的内容,就明白了)补充一下,调用文件顺序profile-->lang.sh-->locale.conf 第三点:不建议在profile文件中通过 export LANG="zh_CN.UTF-8"来实现字符集修改(虽然也可以实现),个人感觉这样 *** 作很不舒服。在locale.conf配难道不香吗?(注意差别,差个"export") 第四点:如果你使用shell来连接linux服务器,那你需要当心了。网上有些说法是使用export LANG="zh_CN.UTF-8"命令 或者是export LC_All="zh_CN.UTF-8"来实现字符集修改,我感觉是在骗自己,虽然在当前shell使用locale可以发现修改成功,但当你重新打开一个shell,字符集还是修改之前的。原因百度上有说,linux对每个shell的这种临时配置是隔离的,只对当前shell有效。 第五点:其实上面的修改配置的 步骤3)source命令也是对当前shell的 *** 作,你可以不执行步骤3,直接关闭当前shell,然后重新打开一个shell,你会发现,字符集已经修改好了,之所以要执行source命令是因为①要确定是否配置有误②不想重新打开shell,想在当前shell直接locale看修改结果。 第六点:如果你按照上面的提示修改了locale.conf却发现执行locale的结果始终异常(不是你配置的那种字符集)那说明之前有人在此linux系统作了相关变量的配置,自己慢慢去找吧,按照打开shell的文件加载顺序,或是linux系统启动的文件加载顺序,一个一个去找,应当是对profile之后的某个文件(可能是当前用户的个性化脚本,如~/.bashrc文件等)加了LANG变量或是LC_ALL变量的配置。 (以上仅代表本人粗浅的经验结论,若用不当之处,还望指教) 完(Aronc 20210327),CentOS Linux 7 进入字符界面
我使用的版本Kernel 3.10.0-514.e17.x86_64
1、查看当前的界面模式
2、切换到字符界面
需要输入登陆密码进行确认
3、切换到图形界面
系统类型
centos6的系统类型是sysvinit
centos7的系统类型是systemd
可以通过pstree -p查看系统类型,centos6的第一个进程是init(pid=1),centos7的第一个进程为systemd(pid=1)
centos6是按一定顺序启动,启动很慢;centos7是并行启动,启动速度快
其实centos6和7很多不同之处都是和系统类型sysvinit/systemd有关系。
服务管理
centos6 采用 service和chconfig管理服务
centos7 采用systemctl 管理服务,但是还可以使用service和chkconfig命令
网络管理
网卡名
centos6网卡名是eth0,centos7网卡名,接口名称被自动基于固件,拓扑结构和位置信息来确定,现在即使添加或移除网络设备,接口名称仍然保持固定,而无需重新枚举,和坏掉的硬件可以无缝替换。可以在centos7的 /etc/default/grub 的GRUB_CMDLINE_LINUX的双引号内添加“net.ifnames=0 biosdevname=0”grub2-mkconfig -o /etc/grub2.cfg,再把网卡配置文件/etc/sysconfig/network-scripts/ifcfg-xxx修改后,重启即可。一起学习linux
网络配置命令
在CentOS 6中的ifconfig,在CentOS 7中被ip命令取代了(不过现在ifconfig和ip都可以使用);
图形化网络配置工具nmtui取代了setup。
网络服务
centos6使用/etc/init.d/network服务,centos7新增加了NetworkManager服务,network仍然作为备用使用
主机名等系统文件
主机名
centos 6 的配置文件为/etc/sysconfig/network(永久设置)
centos7的配置文件为/etc/hostname(永久设置)
查看系统版本
redhat系列的(centos)都可以使用cat /etc/redhat-release
登录提示语
cat /etc/issue #很多生产环境会清空此文件
字符集
centos7的/etc/locale.conf 替换了centos6的/etc/sysconfig/i18n
时区设置
centos6 在/etc/sysconfig/clock centos7没有此配置文件 ,可以使用timedatectl来设置
timedatectl set-timezone Asia/Shanghai
grub(GRand Unified Bootloader)
centos6 使用grub, centos7使用grub2
内核
centos6的内核版本是2.6.X , centos7的内核版本是3.10.x,使用uname -r查看
文件系统
centos的文件系统默认是ext4(Fourth EXtended filesystem),centos7的文件系统默认是xfs
文件结构变化
centos6的/bin, /sbin, /lib, and /lib64在/下
centos7的/bin, /sbin, /lib, and /lib64移到/usr下
评论列表(0条)