CentOS 7和CentOS 6的简单比较
表格预览
| 修改项/版本 | CentOS 6.x | CentOS 7.x |
|---|---|---|
| 桌面系统 | gnome #echo $DESKTOP_SESSION (ssh服务无法使用) | gnome-classic #echo $DESKTOP_SESSION (ssh服务无法使用) |
| 文件系统 | ext4 #df -T | xfs #df -T |
| 内核版本 | 2.6.x-x #uname -a | 3.10.x-x #uname -a |
| 启动加载器 | GRUB Legacy(+efibootmgr) | GRUB2 |
| 防火墙 | iptables | firewalld |
| 默认数据库 | MySql | MariaDB |
| 文件结构 | /bin,/sbin,/lib,lib64在根目录(/)下 | /bin,/sbin,/lib,lib64在/usr目录下,在根目录下以软连接的形式 |
| 主机名 | 在/etc/sysconfig//network配置 | 在/etc/hostname配置 |
| 时间同步 | #ntp #ntp -p | #chrony #chrony source |
| 修改时间 | ||
| 修改时区 | #timedatectl | |
| 服务管理 | #service 服务名 start/stop/restart | #systemctl start/stop/reload 服务名 |
| 自启动服务管理 | #chkconfig | #systemctl enable 服务名 |
| 强制停止 | #kill -9 pid | 仍旧可用 #systemctl kill -singal=9 进程名 |
| 网络信息 | #netstat -ln | 仍旧可用 #ip n #ip -s l #ss |
| ip地址/Mac | #ifconfig -a | 仍旧可用 #ip address show #ip addr |
| 路由 | #route -n #route -A inet6 -n | 仍旧可用 #ip route [show] #ip -6 route [show] |
| 重启 | #reboot #shutdown -r now | 可用 #systemctl reboot |
| 单用户模式 | #init 1 临时 | |
| 启动模式 | #vim /etc/inittab | #systemctl get-default |
桌面系统
CentOS 6

CentOS 7

文件系统
CentOS 6
x
df -T #ext4
CentOS 7
xxxxxxxxxx1df -T #xfs
内核版本
CentOS 6
xxxxxxxxxx1uname -a #2.6.x.x

CentOS 7
xxxxxxxxxx1uname -a #3.10.x

启动加载器
CentOS 6
GRUB
CentOS 7
GRUB2
防火墙
CentOS 6
iptables
检查防火墙服务
xxxxxxxxxx1service iptables status查看防火墙配置情况
xxxxxxxxxx1iptables -L -n通过指令添加配置规则
xxxxxxxxxx10#允许对外请求的返回包iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT#允许icmp包通过iptables -A INPUT -p icmp --icmp-type any -j ACCEPT#允许来自于lo接口的数据包,如果没有此规则,将不能通过127.0.0.1访问本地服务iptables -A INPUT -i lo -j ACCEPT#开放22端口iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT #过滤所有非以上规则的请求iptables -P INPUT DROP保存配置规则
xxxxxxxxxx1/etc/init.d/iptables save #通过指令添加防火墙配置需要保存配置规则并重启防火墙重启防火墙
xxxxxxxxxx2service iptables restart #通过指令添加防火墙配置需要保存配置规则并重启防火墙#service iptables start/stop/restart通过更改配置文件配置规则
xxxxxxxxxx7#打开配置文件vim /etc/sysconfig/iptables#加入规则 #开放88端口-A INPUT -p tcp -m state --state NEW -m tcp --dport 88 -j ACCEPT#保存并退出#重启防火墙service iptables restart通过指令删除配置规则
xxxxxxxxxx6#查看当前端口所在行数iptables -L -n --line-number #--line-number显示行号#删除某行(第六行)的配置规则iptables -D INPUT 6#再次查看当前配置(已经删除)iptables -L -n --line-number
通过配置文件删除配置规则
xxxxxxxxxx6#打开配置文件vim /etc/sysconfig/iptables#删除指定规则#保存#重启防火墙即可service iptables restart添加防火墙自启动
xxxxxxxxxx1chkconfig iptables on其他
xxxxxxxxxx8#允许所有入栈规则iptables -p INPUT ACCEPT#清空默认所有规则iptables -F#清空自定义的所有规则iptables -X#计数器置零intables -Z参考:CentOS 6配置防火墙iptables规则 | 大专栏 (dazhuanlan.com)
CentOS 7
firewalld,也可以用iptables,需要手动下载
基本使用
xxxxxxxxxx6#启动/关闭systemctl start/stop/restart firewalld #没有reload#查看状态systemctl status firewalld#开机启用/开机禁用systemctl enable/disable firewalldsystemctl的基本使用
xxxxxxxxxx10#除了上面几个命令 我们还可以这样用systemctl
#查看服务是否开机启用systemctl is-enabled firewalld#查看所有服务列表systemctl list-unit-files #配合 | grep可以查看已启用的服务列表systemctl list-unit-files | grep enabled#查看启动失败的服务列表systemctl --failed配置firewalld-cmd
xxxxxxxxxx19#查看版本/帮助/状态firewalld --version/help/state#查看所有配置firewall-cmd --list-all#查看所有打开的端口 --list-ports List ports added for a zone [P] [Z]firewall-cmd --zone=public --list-ports
#重载防火墙规则#--reload Reload firewall and keep state information#--complete-reload Reload firewall and lose state informationfirewall-cmd --reload#查看区域信息firewall-cmd --get-active-zones#查看指定接口所属区域firewall-cmd --get-zone-of-interface=ens33 #ens33 --get-active-zones可再此查看#取消拒绝所有包(相对--panic-on,慎用,拒绝所有包,所有请求会被拒绝包括ssh,你只能进到系统里面去执行off操作)firewall-cmd --panic-off#查看是否拒绝所有包firewall-cmd --query-panic # --panic-off:yes --panic-on:no添加配置规则
xxxxxxxxxx6#开放88端口firewall-cmd --zone=public --add-port=88/tcp --permanent #--permanent永久生效,没有此参数重启后失效#重载防火墙firewall-cmd --reload#查看是否成功(查看端口88是否开放)firewall-cmd --zone=public --query-port=88/tcp删除配置规则
xxxxxxxxxx2firewall-cmd --zone=public --remove-port=88/tcp --permanent#重载防火墙即可参考:CentOS 7使用firewalld打开关闭防火墙与端口 - 莫小安 - 博客园 (cnblogs.com)
默认数据库
CentOS 6
MySql
CentOS 7
MariaDB (mysql的另一分支)
文件结构
CentOS 6
/bin,/sbin,/lib,lib64在根目录(/)下

CentOS 7
/bin,/sbin,/lib,lib64在/usr目录下,在根目录下以软连接的形式出现

主机名 Hostname
CentOS 6
xxxxxxxxxx4#查看主机名hostname#临时更改 切换用户生效,重启系统失效hostname 新主机名永久更改主机名:
1.修改/etc/sysconfig/network中的HOSTNAME

2.在/etc/hosts 中的127.0.0.1开头那一行加上你的新主机名(设置FQDN)

3.有些是只设置了第一步,最好是host文件也给他改一下,设置完成后reboot重启后生效

CentOS 7
xxxxxxxxxx4#查看主机名hostname#临时更改 切换用户生效,重启系统失效hostname 新主机名永久修改主机名:
方式一:命令修改
xxxxxxxxxx1hostnamectl set-hostname 新主机名重启系统后生效
方式二:配置文件修改
将/etc/hostname的内容换成新主机名即可,重启后生效

时间同步
CentOS 6
手动同步(一次性同步):
xxxxxxxxxx2#ntpdate 时间服务器域名/ip #Ip地址查看可以访问:http://www.ntp.org.cn/pool.phpntpdate cn.ntp.org.cn自动同步(ntp同步):
xxxxxxxxxx4#启动ntpd时间同步服务 (重启后失效)service ntpd start #(不会立即生效,等1分钟)或者/etc/init.d/ntpd start#设置开机自启动 (重启也会自动启用ntpd服务)chkconfig --level 35 ntpd on
设置开机自启动

CentOS 7
ntp服务仍旧可用,但推荐chrony,chrony性能优于ntp。chrony – Comparison of NTP implementations
修改/etc/chrony.conf,加入时间服务器
原始内容:

修改后:

启动服务添加自启动服务
xxxxxxxxxx6#启动chronydw服务systemctl start chronyd#添加开机自启动systemctl enable chronyd#查看chronyd是否自启动systemctl is-enabled chronyd查看chronyc
xxxxxxxxxx9# 查看 ntp_servers 状态chronyc sources -v# 查看 ntp_sync 状态chronyc sourcestats -v# 查看 ntp_servers 是否在线chronyc activity -v# 查看 ntp 详细信息chronyc tracking -v#chronyd服务未启动会报错 506 Cannot talk to daemon参考:CentOS 7时间同步程序chrony安装和使用 (zhangnq.com)
修改时间/时区
CentOS 6
查看/修改时区
xxxxxxxxxx5date -R #+0800 表东八区及中国的东八区#修改时区cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime#写入硬件 避免重启失效hwclock -wCentOS 7
查看/修改时区
xxxxxxxxxx5date -R #+0800 表东八区及中国的东八区#查看所有时区timedatectl list-timezones#设置时区(推荐) 也可以用centos6的方式timedatectl set-timezone 时区 # Asia/Shanghai 上海时区服务管理
CentOS 6
CentOS 6上的服务管理工具为chkconfig,Linux系统所有的预设服务都可以通过查看/etc/init.d/目录得到

可以通过下面这两条指令来管理服务
xxxxxxxxxx4service 服务名 start/stop/restart /etc/init.d/服务名 start/stop/restart#列出服务chkconfig --listCentOS 7
CentOS 7之前采用的服务管理都是SysV,CentOS 7则换成了原生systemd服务。systemd支持多个服务并发启动,而SysV只能一个一个启动,systemd会优于Sysv。
常见指令
xxxxxxxxxx10#列出系统所有服务systemctl list-units -all --type=service#开机禁用/启用systemctl disable/enable 服务名#查看服务状态systemctl status 服务名#停止/打开/重启服务systemctl stop/start/restart 服务名#查看服务是否开机启动systemctl is-enabled 服务名更多systemd的内容可查看:Systemd 入门教程:命令篇 - 阮一峰的网络日志 (ruanyifeng.com)
强制停止
CentOS 6
xxxxxxxxxx1kill -9 pid #-15CentOS 7
xxxxxxxxxx1systemctl kill -singal=9 进程名 #上面仍旧可用网络信息
CentOS 6
与网络配置相关的文件
xxxxxxxxxx8#DNS配置vim /etc/resolv.conf#IP地址配置 网卡配置vim /etc/sysconfig/network-scripts/ifcfg-eth0 #ifcfg-eth0 ifcfg-网卡名称#网关配置vim /etc/sysconfig/network#主机名文件vim /etc/sysconfig/network /etc/hosts查看网络配置常用命令
xxxxxxxxxx10#网卡配置信息ifconfig#网管信息netstat -rn # 或者route -n#查看DNScat /etc/resolv.conf#查看路由表route -n#查看主机名称hostname # 或者 uname -a 或者sysctl kernel.hostname配置文件详解
网卡配置文件 #vim /etc/sysconfig/network-scripts/ifcfg-eth0
xxxxxxxxxx8DEVICE="eth0" #网卡名称BOOTPROTO="dhcp" #动态获取ip static为固定ipHWADDR="00:0C:29:C1:69:F8" #mac地址IPV6INIT="yes" #是否支持ipv6NM_CONTROLLED="yes" #network manger的参数,实时生效 不知道有什么用 慎用ONBOOT="yes" #随开机自启动TYPE="Ethernet" #网卡类型UUID="c1018975-b41b-4650-9764-6bf9bd9c3eb3"网关配置文件 #cat /etc/sysconfig/network
xxxxxxxxxx2NETWORKING=yes #系统是否使用网络,为no则不能使用网络,而且很多系统服务将无法启动HOSTNAME=hhh #设置主机名 这里设置的主机名要和/etc/hosts中的主机名相对应(设置FQDN)DNS配置文件 #cat /etc/resolv.conf
xxxxxxxxxx5domain localdomain #设置本地域名 查询在这个domain中的names可以相对于本地domain使用短名称, 如果没有设置domain,则会使用主机名来决定domainsearch localdomain #定义域名的搜索列表nameserver 192.168.171.2 #dns服务器 修改保存后生效#有的系统会出现每次重启系统后还原DNS配置文件(/etc/resolv.conf)的情况 关闭 NetworkManager 服务即可service NetworkManager stop参考:CentOS 6.X 查看、配置网络的方法_alvincat的博客-CSDN博客
CentOS 7
xxxxxxxxxx12#查看网卡信息ip addr #lo 本地回环网卡 ens33 为第一块网卡的名称(ens33网卡名)#每块网卡区域中,link后面跟的是网卡的MAC地址,inet后面跟的是该网卡的IP v4地址,inet6后面跟的是IP v6地址#MAC link/ether 00:0c:29:06:e1:08#ipv4 inet 192.168.171.130/24#ipv6 inet6 fe80::73bf:9a0e:885d:93f5/64
#查看DNScat /etc/resolv.conf #每个nameserver关键字后面接的都是DNS地址,排在上方的优先级高#查看网关ip route #default via 192.168.171.0/24 网关地址 dev ens33网关所属的网卡名称(ens33)ip地址/Mac
CentOS 6
xxxxxxxxxx1#查看ip/MAC地址ipconfig
CentOS 7
xxxxxxxxxx2#查看网卡信息 ip addr
路由
CentOS 6
xxxxxxxxxx5#查看路由netstat -rnroute -n#查看ipv6的地址route -A inet6 -n
CentOS 7
xxxxxxxxxx4#查看路由ip route#查看ipv6路由ip -6 route
重启
CentOS 6
重启命令
xxxxxxxxxx11sudo init 6#重启sudo reboot#立即重启sudo shutdown -r now#过十分钟后重启sudo shutdown -r 10#在20:00重启sudo shutdown r 20:00 # 取消重启shutdown -c关机命令(慎用)
xxxxxxxxxx10#关机sudo init 0#立即关机sudo halt#立即关机sudo poweroff#立即关机sudo shutdown -h now#10分钟后关机sudo shutdown -h 10CentOS 7
xxxxxxxxxx1sudo systemctl reboot单用户模式
单用户模式最大的特点就是可以无密码登录,这里并不是简单的介绍init 1、init S(这两个是临时生效,重启后失效) 或者修改/etc/inittab或者systemctl set-default rescue
下面以一个案例来操作:进入单用户模式修改root密码 在linux上的终端执行
CentOS 6
1.开机/重启后,按空格使其停留在此页面

2.(上下键可)选择内核,按e进入下一步,在这里选的是第一个
3.(上下键可)选择第二个 kernel开头的选项,按e进行编辑

4.输入single,按回车

5.回到此页面,输入b重新引导系统

6.成功进入系统,接着就可以修改root密码了,设置完后重启即可退出单用户模式
参考:CentOS 6进入单用户模式 - 合衬-nfsnobody.com - 博客园 (cnblogs.com)
CentOS 7
1.开机/重启后,按空格使其停留在此页面

2.(上下键可)选择内核,按e进入编辑,在这里选的是第一个
3.光标向下移动,找到该行

4.在该行末尾加上 init=/bin/sh,然后按"Ctrl + x"

5.输入指令 #mount -o remount,rw /重新挂载,此时就可以调用linux的命令了
6.输入passwd 设置密码

7.输入 #touch /.autorelabel 更新系统信息(一定要加这一步 )

7.重启系统即可
启动模式
CentOS 6
x
#查看运行级别vim /etc/inittab要修改的话,改这个数字5为指定的级别即可,用指令 #init n 是临时生效的,重启后失效

CentOS 7
xxxxxxxxxx6#查看当前的运行级别systemctl get-default#设置当前的运行级别(重启后生效)切换到图形界面下systemctl set-default graphical.target #init 5#在不重启的情况下,切换到命令行模式下systemctl isolate multi-user.target运行级别对应表
| init级别 | 说明 | systemctl target | 说明 |
|---|---|---|---|
| 0 | 表示关机级别(不要将默认的运行级别设置成这个值) | shutdown.target | 关机 |
| 1 | 单用户模式 | emergency.target | 紧急模式 |
| 2 | 多用户模式,不带NFS(Network File Syetem),没网络 | rescure.target | 救援模式 参考:(1条消息) L4 详解centos7 emergency模式,rescue模式,linux相互登录,克隆_宁信1617-CSDN博客 |
| 3 | 多用户模式,完全的多用户模式(不带桌面的,纯命令行模式) | multi-user.target | 多用户,命令行模式 |
| 4 | 没有被使用的模式(被保留模式) | 无 | |
| 5 | X11,完整的图形化界面模式 | graphical.target | 图形界面 |
| 6 | 表示重启级别(不要将默认的运行级别设置成这个值) | reboot.target | 重启 |