阶段一:服务器硬件知识和系统概念
1.服务器硬件组成 ***
电源 CPU 风扇 磁盘 内存 ....
2.服务器核心知识 *****
1.服务器介绍 **
机架式 刀片式 塔式
阿里云 亚马逊云 腾讯云
2.服务器硬件详述
电源:用于服务器供电 冗余特性(多路 ups 发电机)
CPU:服务器的大脑 处理运算,控制硬件
核数:并发处理任务能力
路数:几个cpu
内存:临时存储数据
写缓冲(buffer):有数据存储操作时,将数据进行分片(较大数据),分片后的数据一次存入缓冲,直接存入磁盘速度很慢,待缓冲空间快满时,在将数据写入到磁盘,依次直到数据完全写入到磁盘.缓冲空间释放
读缓存(cache):系统会自动将一些热点数据,和常用数据放入到缓存中,当有用户访问此数据时,系统直接从缓存中拿数据,比从磁盘中直接取快的多
程序 -- 编写的代码
进程 -- 运行的程序
守护进程 -- 一直运行的进程
磁盘:永久存储数据
运行速率: SAS > SCSI > SATA --- 机械硬盘
RAID卡:将多个物理磁盘整合成一个逻辑磁盘
作用: 增加磁盘容量 ; 提高安全性 ; 增加效率
配置方法:RAID0 RAID1 RAID5 RAID50
远程管理卡:远程管理服务器--开机,安装操作系统
3.服务器系统知识 ***
1.操作系统的组成
内核 解释器 应用程序
内核:控制硬件层面
解释器:将数据翻译成二进制语言
应用程序:人机交互的界面
2.系统的发展过程
3.系统的发行版本
redhat centos
阶段二:系统安装部署和远程连接
1.虚拟化环境部署
01.确认网络相关配置
01.编辑------虚拟网络编辑器------vmnet8的配置
nat模式:虚拟主机通过宿主机访问外网,不容易出现IP地址冲突,但其他宿主机无法直接访问
如上图设置后其他宿主机可以访问
桥接模式:虚拟主机可以直接访问外网,其他宿主机能直接访问,但IP地址容易出现地址冲突
仅主机模式:安全性极高,但无法访问外网
02.确认VMnet8虚拟网卡配置正确(windows中查看)
03,确认虚拟软件服务是否开启
win键+r------services.msc------vmnet开头的服务全部开启
02.新建虚拟机
03.系统安装说明
1.磁盘如何分区(三种方式)
1.通用分区方案
/boot 200M
swap m<8 1.5m
m>8 8G
/ 剩余全部
2.数据信息比较重要的分区方案
/boot 200M
wap m<8 1.5m
m>8 8G
/ 20G-200G
/date 剩余空间
3,灵活的分区方案
/boot 200M
wap m<8 1.5m
m>8 8G
/ 20G-200G
剩余空间不分,后期需要灵活分配
2.预装软件
centos6 最小化安装 235(软件包组)
centos7 最小化安装 1236(软件包组)
1.查看系统中已安装和可以安装的软件
yum list
ps:关于下载时出现以下情况说明
base | 3.7 kB 00:00
epel | 4.7 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
以上信息时yum库软件清单信息,系统首次进入yum库是都需要获取此清单,以便从此查找软件,下次再下载软件就直接从清单中查找软件信息,由于此信息存与内存,所以每次重启和开机都需要重新下载清单
2.查看系统中已安装和可以安装的软件包组
软件包组:在系统安装时会提示用户勾选系统软件包安装
yum grouplist
yum groupinstall -y 软件包组 ------ 安装软件包组
yum groupinstall -y Fedora Packager
2.远程连接主机 *****
01.借助软件进行连接 xshell可以实现分屏查看
02.如何配置xshell
03.进行远程连接
3.远程连接异常 *****
01.检查链路是否异常
ping 服务器地址
不通的原因:
01.物理链路有问题
02.网卡配置有问题
03.安全策略开启禁ping
04,虚拟机网络配置
初始化虚拟机网络配置可解决虚拟机网卡配置问题
02.远程连接请求被阻止了(客户端进行测试)
Telnet 地址 端口
不通的原因:
安全策略阻止了,防火墙禁止Telnet
03.远程服务没有开启(服务端进行测试) *****
方法一:systemctl status sshd
方法二:ss -lntup == netstat(需安装软件net-tools) -lntup
ss:查看套接字统计信息,显示更多的tcp状态信息,也用于查看ssh服务开启与否
参数含义:
-l(list) ----- 列表显示
-n(number) ----- 将服务以端口数字形式显示
-t(tcp)
-u(udp)
-p(显示服务进程信息) ----- 显示服务进程信息 ps -ef 查询系统进程
阶段三:系统管理基础操作命令
1.必须掌握的知识
1.系统命令提示符
登录用户@主机名 当前所在目录 用户提示符
2.系统命令语法格式
命令 参数 选项(操作对象)
3.系统目录结构
一切从根开始
绝对路径:从根开始进入到相应目录
相对路径:从当前所在目录进入到相应目录
2.系统管理命令
1.所有基础命令参数熟记
1.文件目录创建命令总结
1.文件创建
touch 文件名
重复创建同一个文件时会修改当前文件得时间戳
2.目录创建
mkdir -p 目录
重复创建会报错
2.文件编辑查看命令总结
文件编辑
vi(记事本编辑)
1.光标快速移动快捷方式
上下纵向移动光标
gg ------ 移动光标到文件行首
G ------ 移动光标到文件行尾
ngg ------ 光标移动到文件第n行
左右横向移动光标
0 / ^ ------ 光标移动到当前行行首
$ ------ 光标移动到当前行行尾
2.移动光标转为编辑状态
直接进入插入模式
i ------ 当前光标所在位置进入插入模式
I ------ 当前光标所在行行首进入插入模式
A ------ 当前光标所在行行尾进入插入模式
a ------ 当前光标所在位置下个字符处进入插入模式
o ------ 当前光标所在行下一行进入插入模式
O ------ 当前关标所在行上一行进入插入模式
剪切内容进入插入模式
C ------ 剪切当前光标所在位置至本行尾的内容并进入插入模式
cc ------ 剪切当前光表弟所在行全部内容并进入插入模式
3.快速编辑文本内容信息
dd ------ 删除当前行
ndd ------ 删除包括当前行及以下行共计n行内容
yy ------ 复制当前行
nyy ------ 复制包括当前行及以下行共计n行内容
p ------ 粘贴内容
np ------ n次粘贴
dG ------ 删除当前行至文件尾行全部内容
4.特殊操作编辑文本(环境的变量)
:set nu ------ 设置显示行号
:set nonu ------ 取消显示行号
5.撤销文本编辑操作
u(undo) ------ 撤销
ctrl+r(redo) ------ 取消撤销
6.快速搜索文本指定内容
/内容 ------ 向下搜索指定内容 n搜索下一个
?内容 ------ 向上搜索指定内容 n搜索上一个
搜索常常会出现大小写同时存在的情况,忽略大小写有以下三种操作
1. :set ic ------ 忽略大小写
:set noic ------ 取消忽略大小写
2. :set ignorecare(忽略大小写)
:set noignorecare(取消忽略大小写)
3./内容\c ------ 忽略大小写 常用
vim(notpad++编辑)
1.取消高亮显示
如上图在vim中进行内容搜索时文件会对搜索到的内容进行高亮显示,
/ 任何内容 ------ 搜索其他内容即取消高亮反应,没有的内容亦可
2.多行快速移动和复制数据信息
多行快速移动:
:2,4move8 ------ 第二行到第四行的内容移动到第八行(第四行内容占据第八行)
多行快速复制:
:2,4copy8 ------ 第二行到第四行的内容复制到第八行(从第八行下一行开始粘贴)
3.文件内容信息进行修改替换
s(substitute)-替换 g(global)-整体的
全文替换:
: %s/内容/替换/g` ------ 全文将内容换成替换
指定行替换:
:2,6s/内容/替换/g ------ 2到6行内容换成替换
:6,$s/内容/替换/gc ------ 6到文件末行内容换成替换
4.批量修改文件内容--视图模式
1.批量进行注释
步骤一:ctrl+v 进入视图模式 ----VISUAL BLOCK-----
步骤二:↓ 选择需要注释的行,选择时行首字符会变颜色
步骤三:shift+i 对单行进行编辑
步骤四:esc 批量编辑实现
2.批量删除内容
步骤一:ctrl+v 进入视图模式
步骤二:↓→ 选择要删除的内容
步骤三:d/x 删除选中内容
5.vim常见错误总结
1.vim命令后面一定要接文件 否则出来就是vim的版本信息
2.vim只能编辑存在于目录中的文件(vim能在目录下创建问价,但不能创建目录)
vim能编辑目录中有或者没有的文件,有的直接编辑,没有的在编辑的目录下创建文件,vim无法创建目录
若在不存在的目录下创建文件.文件可以被编辑但是无法保存
3.编辑文件时突然非正常退出(误操作,系统宕机)
要想了解编辑文件非正常退出出现的上述情况的原因,需要对vim的编辑原理进行了解
vim编辑原理:
1.vim编辑当前目录下./oldboy.txt文件
2.判断在当前目录下手否存在./.oldboy.txt.swp隐藏文件
存在:报错进入 ATTENTION 用户选择对隐藏文件如何操作
没有:进入到命令模式(当用户进入到命令模式时系统会自动创建隐藏档文件)
3.系统在命令模式就会产生隐藏档文件
4.进入编辑模式对文件进行编辑,此时用户实际操作的文件是./.oldboy.txt.swp隐藏文件
5.编辑过程中是否正常退出
正常退出: :wq 则系统执行命令 mv ./.oldboy.txt.swap ./oldboy.txt
非正常退出: 系统将编辑过程中的内容自动保存到./.oldboy.txt.swp隐藏文件中
6.再次编辑文件时进行判断重复1-5
解决问题方法:
1.已只读方式打开当前文件查看内容:O
2.需要恢复数据:R
:q 退出只读状态,重新打开文件R进入恢复
恢复数据后隐藏档还是存在,此时需要手动删除
1.进入文件 D
2.rm -rf ./.oldboy.txt.swap
3.不需要恢复数据:E 直接进入编辑前状态,不考虑隐藏档
此时隐藏档也需要手动删除 同上
3.文件信息查看命令总结
1.查看文件或目录的属性信息
ll ------ 查看文件或目录详细属性
ll -t ------ 按时间排序,从上往下,时间从近到远
ll -tr(reverse) ------ 按时间排序,从上往下,逆向排序
2.查看文件内容信息
一次性查看所有内容:
cat ------ 可同时查看多个文件内容
cat -n ------ 显示内容行号
head
tail -f ------ 查阅正在改变的日志文件,当文件改名或删除,停止查阅
tail -F ------ 查阅正在改变的日志文件,当文件改名或删除,停止查阅,当文件再次创建时,继续查阅
翻页查看文件内容:
less
↑↓ ------ 一行一行的显示
空格 ------ 向下一页一页显示
b ------ 向上一页一页显示
/ ------ 搜索字符串
q ------ 退出
less -n ------ 显示行号
more
回车 ------ 一行一行显示
空格 ------ 向下一页一页显示
b ------ 向上一页一页显示
4.直接编辑文件命令总结
1.文件中添加单行内容
echo ------ 输出
echo '内容' > 文件 ------ 输出重定向(替换文件中全部内容)
echo '内容' >> 文件 ------ 输出追加重定向(在文件原内容最后追加内容)
echo {} ------ 输出序列(多个有序或无序的字符组成)
1.输出连续的序列
echo {1..100} ------ 输出1-100全部连续数字
echo {01..100} ------ 输出1-100全部连续数字
2.输出不连续的序列
1.输出不连续有规律的序列(有规律用..)
echo {01..20..2} ------ 输出1-20所有奇数,其中2为步长
echo {02..20..2} ------ 输出1-20所有偶数,其中2为步长
2.输出不连续无规律的序列(无规律用,)
echo {1,3,2,5,6} ------ 输出多个无规律的字符
{}通配符其他用法:
其他命令也可调用通配符
mkdir -p ./oldboy/oldboy{01..05}
touch ./oldboy/oldboy01/oldboy{01..05}.txt
2.文件中添加多行内容
cat >> 文件 << EOF 输入内容 EOF
< ------ 输入重定向
<< ------ 输入追加重定向
输入重定向用法不多,此为一后续会在补充一个
5.过滤筛选文件命令总结
三剑客命令:
老大:awk ------ 过滤筛选信息 擅长统计分析文件内容 擅长对文件中的列进行操作
老二:sed ------ 过滤筛选信息 修改替换文件内容 擅长对文件中的行进行操作
老三:grep ------ 过滤筛选信息
创建个用来测试的环境
grep过滤筛选:
1.筛选特定内容
grep "测试文件" /oldboy/text.txt
2.筛选特定内容及上n行信息
grep "测试环境" -B(Before) n /oldboy/text.txt
3.筛选特定内容及下n行信息
grep "测试环境" -A(After) n /oldboy/text.txt
4.筛选特定内容及上下n行信息
grep "测试环境" -C(Center) n /oldboy/text.txt
5.统计特定信息在文件中出现的次数
grep "测试" -c(count) /oldboy/text.txt
sed过滤筛选:
sed "/测试内容/p" /oldboy/test.txt
sed -n "/测试内容/p" /oldboy/test.txt
awk过滤筛选:
awk "/测试内容/" /oldboy/test.txt
6.修改文件部分内容命令
01.sed命令(师傅:真正修改文件内容)
1.假装修改(没有真正修改系统文件)
sed 's/测试/假装修改/g' /oldboy/test.txt
2,真正修改(修改了系统文件)
sed -i 's/测试/真正修改/g' /oldboy/test.txt
02.tr命令(徒弟:假装修改文件内容)
tr "tr修改" "测试" < /oldboy/test.txt ---- tr命令使用时记得加输入重定向符号.不加任何特殊符号会清空文件内容
tr命令替换原理
1.替换的内容字符数 > 修改后的内容字符数 abcd > 123
echo abcd | tr "abcd" "123"
1233
2.替换的内容字符数 > 修改后的内容字符数 abc < 1234
echo abcd | tr "abc" "1234"
123d
3.替换的内容字符数 > 修改后的内容字符数 abcd = 1234
echo abcd | tr "abcd" "1234"
1234
4.极特殊情况
abcba 12345
a - 1
b - 2
c - 3-----c - 3-----54345
b - 4 b - 4
a - 5 a - 5
阶段四:目录知识结构
1.目录结构概念
01.目录结构特定说明
001.linux目录结构从根开始
002.linux目录结构拥有层次
linux目录层次结构像一颗倒挂的树.从根开始一路向下开叉分支衍生
003.linux目录需要挂载使用 --- 系统安装时已经为/ 分配了磁盘空间.相当于挂载,如不给/分配磁盘空间,那么/下一切目录将不可用
系统目录可以挂载在任何磁盘设备上
新建磁盘空间没有挂载是3不能使用的,相当于房间没有门,进不去磁盘空间里面
02.目录挂载操作练习
001. 定义挂载设备信息
光驱设备---/cd/cdrom
002. 完成设备挂载操作
进行挂载---mount /dev/cdrom /mnt/
004. 检查测试挂载结果
挂载检查---df -h
005. 挂载完成进行卸载
完成卸载---umount /mnt
03.目录结构汇总概述
2.目录结构详述
01.配置文件目录说明(/etc)
001.网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 *****
作用说明:
1.查看配置网卡信息 1.ifconfig 2.ip add
2.对话框形式配置网卡信息(临时修改)
centos7 nmtui
centos6 setup
3.重启网络服务
centos7 systemctl restart network ---- 重启全部网卡
if down && if up eth0 ---- 重启指定网卡 && 前一个命令执行成功执行后一个命令
centos6 service network restart
4.网络服务进程加载文件
/etc/init.d/network {start|stop|status|restart|reload|force-reload}
002.域名解析配置文件 /etc/resolv.conf ***
namesserver 114.114.114.114
此文件中配置将会立即生效
网卡中配置优于此文件配置
003.本地域名解析文件 /etc/hosts
用于设置DNS域名与IP地址对应关系
004.主机名称配置文件 /etc/hostname
centos6 /etc/sysconfig/network
1.查看系统主机名: hostname
2.永久修改主机名:
centos6: vi /etc/sysconfig/network
centos7: vi /etc/hostname
hostnamectl set-hostname 主机名 ---- 即临时修改了.又修改了主机名配置文件
3.临时修改: hostname 主机名
005.磁盘目录挂载文件 /etc/fastb
实现指定设备文件信息,进行开机自动挂载
01.需要挂载的设备信息 可以是设备文件名也可以是UUID号,一般建议使用UUID唯一识别号
02.设备挂载点目录
03.定义挂载文件的系统类型
04.定义挂载参数信息
05.是否进行磁盘备份
06.是否进行磁盘检查
006.系统启动加载文件 /etc/rc.local
文件中配置的命令操作,可以在系统启动时被加载,实现操作系统启动自动运行某些命令
文件中编写的内容一定是命令信息
centos7 中需要将文件赋予执行权限,才能正常使用文件
chmod +x /etc/re.d/re.local
007.系统运行级别文件 /etc/inittab
centos 7 中系统运行级别:
target(目标)
0 系统的关机级别 init 0 进入关机状态 poweroff.target
1 系统的单用户级别 init 1 进入修复系统或重置密码模式 rescue.target
2 系统的多用户级别 init 2 正常系统运行级别 没有网络 multi-user.target
3 系统的多用户级别 init 3 正常系统运行级别 有网络 multi-user.target
4 系统的预留级别 init 4 multi-user.target
5 系统的图形化界面 init 5 进入图形化界面 graphical.target
6 系统的重启级别 init 6 系统重启 reboot.target
1.查看系统运行级别: runlevel
2.临时切换运行级别: init 0-6
3.永久设置运行级别:
centos 6 : vi /etc/inittab
centos 7 :
步骤一.查看运行级别对应名称: ll /usr/lib/systemd/system/runlevel*target
步骤二.查看当前系统运行级别: systemctl get-default
步骤三.设置当前系统运行级别: systemctl set-default *.target
008.系统登录提示文件 /etc/motd /etc/issue.net
1.文件中内容,会在用户登录系统之后进行显示: /etc/motd
2.文件中内容,会在用户登录系统之前进行显示: /etc/issue ==/etc/issue.net
009.环境变量 配置文件 /etc/profile
配置环境变量和别名文件:
国法:全局
/etc/profile
/etc/bashrc
/etc/profile > /etc/bashrc ---- 优先级
家规:用户 ---- 对于用户来说家规的优先级大于国法
~/.bashrc
~/.bashrc_profile
~/.bashrc > ~/.bashrc_profile ---- 优先级
0010.别名功能配置 alias
02.用户存放程序目录(/usr)
.1.软件编译安装目录 /uer/local
作用说明:编译安装软件的默认目录
1.rpm安装软件方法
rpm -ivh 软件包.rpm
优点:单独安装软件(半成品) 缺点:不能解决依赖关系
有些软件需要安装时最好确认软件名和软件包名是否一致
locate的软件包名是mlocate 直接运用下面方法查询locate是查不到的
rpm -qf `绝对路径下的命令` ---- 查看一个命令文件属于哪个软件大礼包
运行此命令时已知的软件是以安装在当前系统中的
rpm -qa 软件名/软件包名 ---- 查看软件大礼包是否安装
rpm -ql 软件名/软件包名 ---- 查看软件大礼包中有那些数据信息
2.yum安装软件方法
yum install -y 软件名/软件包名
优点:解决软件的依赖关系
缺点:不能灵活定制化
软件包组:一组具有关联性的软件或软件包组成,安装系统时会有软件包组选择,此时要勾选的就是一组软家包组
yum provides 命令 ---- 从yum库列表中查询安装/未安装命令属于哪个软件包
yum list ---- 查询系统中所有已安装和可用未安装的软件包
yum grouplist ---- 查询系统中所有已安装和可用未安装的软件包组
yum groupinstall -y 软件包组 ---- 直接安装软件包组
yum --help ---- 查询yum命令参数详细信息
3.编译安装软件方法
./configure && make && make install
优点:单独定制安装软件 缺点:不能解决依赖关系
03.系统日志存放目录(/var)
001.系统日志存放目录 /var/log
记录各类日志文件的目录
002.系统默认日志文件 /var/log/messages
记录系统或服务程序运行的状态信息和错误信息
003.用户登录日志文件 /var/log/secure
监控文件系统用户登录信息,检查是否有过多的失败记录
查看日志文件几个重要命令:
tail -n 文件名 ---- 查看文件倒数n行信息(不加参数n默认显示倒数十行)
head -n 文件名 ---- 查看文件前面n行信息(不加参数n默认显示前面十行)
tail -f 文件名 ---- 追踪查看文件内容的变化 若文件移动/更名/删除.则追踪停止,当文件恢复追踪不会恢复
tail -F 文件名 ---- 追踪查看文件内容的变化,若文件移动/更名/删除,则追踪停止,当文件恢复追踪恢复,且会追踪到文件不正常
04.数据虚拟存储目录(/proc)
001.查看硬件CPU信息 /proc/cpuinfo
命令查看: lscpu
socket(s):插槽 2 -- 显示服务器CPU颗数
core(s) per socket : 2 -- 每颗cpu有几核
CPU(s) : 4 -- 整个服务器有几核
002.查看硬件内存信息 /proc/meminfo
命令查看: free -h(human)
对于available来说,可用空间就是free+buffer/cache+shared 由于有些进程一直占用buffer/cache的空间无法释放出来 所以普遍情况下 available < ree+buffer/cache+shared
003.查看硬件负载信息 /proc/loadavg
命令查看: w
4核的服务器 负载值3左右,就要关注
128核的服务器 负载值120左右,就要关注
004.查看系统挂载信息 /proc/mounts
命令查看: df -h
3.扩展掌握技能
命令查看帮助:
man ---- 查看命令详细手册
命令 --help ---- 查看命令可用参数信息
-help
--h
-h
` 每个命令所能使用的help参数不同
阶段五:系统基础优化部分
1.必知必会内容
01.系统信息查看方法
001.查看系统名称信息
cat /etc/redhat-release ---- 查看系统发行版本和具体系统版本信息
uname -a ---- 查看电脑及操作系统全部相关信息
002.操作系统优化----命令提示符优化
1.查看默认配置: echo $PS1
2.修改命令提示符内容:
vi /etc/profile
export PS1=' '
3.修改命令提示符颜色
003.操作系统优化----yum下载源优化
1.优化基础的yum源库:curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.优化扩展的yum源库:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
使用wget的前提是系统中以下载wget软件.7默认没有wget命令
2.主要优化技能
01.系统创建切换用户
001.添加用户命令 useradd 用户名
002.设置用户密码 passwd 用户名
echo 123456 | passwd --stdin 用户名 ---- 免交互式设置密码
| 管道符的意思是将前面命令的结果交给后面执行
003.查看用户信息 whoami ---- 查看当前用户
id ---- 查看用户是否存在
004.切换用户信息 su - 普通用户 ---- root切换到普通用户不需要密码
su - root ---- 普通用户切换到root用户需要密码
创建多个用户:
方法一:借助notepad++ alt+c 生成数字序列
方法二:利用脚本循环语句
for num in {01..20};do useradd oldboy$num;done ---- 批量创建用户
for num in {01..20};do id oldboy$num;done ---- 批量查看用户
创建用户同时创建密码
useradd oldgirl01;echo 123456 | passwd --stdin oldgirl01
; 不管前面的命令执行与否后面的命令都执行
02.安全服务优化操作
001.关闭防火墙安全服务功能
1.查看
centos6: /etc/init.d/iptables status
centos7: systemctl status firewalld
2.临时关闭
centos6: /etc/init.diptables stop
centos7: systemctl stop firewalld
3.开机永久关闭
centos6: /etc/init.d/iptables off
centos7: systemctl disable firewalld
002.关闭selinux安全服务功能
1.查看服务 getenforce
1.临时关闭 setenforce
Enforcing(强制执行) 1 ---- 临时开启
Permissive(许可的) 0 ---- 临时关闭
2.永久关闭 /etc/selinux/config
SELINUX=disabled
ps:重启系统生效
03.字符集的优化操作
001.查看系统编码信息
echo $LANG
002.临时修改编码信息
export LANG='en_US.UTF-8'
003.永久修改编码信息
centos6: vi /etc/sysconfig/i18n LANG="zh_CN.UTF-8"
source /etc/sysconfig/i18n
centos7: 1.vi /etc/locale.conf LANG="zh_CN.UTF-8"
source /etc/locale.conf
2.localectl set-locale LANG="zh_CN.UTF-8"