首页 > 代码库 > CentOS7 快速上手

CentOS7 快速上手

CentOS7的4种target模式:

centos7不再像centos6那样有0-6运行级别,而是换成了4个target模式:

(1)graphical.target,多人模式,支持图形和命令行两种登录,对应3和5级别

(2)multi-user.target,多人模式,支持命令行登录,对应3级别

(3)rescue.target,担任模式,对应1级别

(4)emergency.target,单人模式,只读系统

使用单人模式更改root密码:

centos7采用的是grub2启动方式,和之前的centos6的grub1方式有所不同。

(1)开机后按上下方向键选中“Centos Linux (3.10.0-327.el7.x86_64) 7 (Core)”

(2)按字母e进入编辑模式,定位到“linux16”开头的行,在后面加上"rd.break",按Ctrl+X启动

(3)进入单人模式后,重新挂载原始系统到/sysroot,增加写权限:mount -o remount,rw /sysroot/

(4)切换到原始系统的环境下:chroot /sysroot/

(5)使selinux生效:touch /.autorelabel

(7)设置语言为英文:LANG=en

(8)更改root密码:passwd

(9)设置完root密码后退出原始系统环境:Ctrl+d或者exit

(10)重启系统即可使用新的root密码登录系统:reboot或者init 6

PS:可以删除步骤(2)添加的rd.break

使用救援模式更改root密码:

(1)设置从光驱启动

(2)开机后,按方向键选中Troubleshooting模式,回车

(3)在Troubleshooting模式按方向键下选中"Rescue a CentOS system",回车

(4)按回车开始安装过程,稍等即可进入Rescue模式

(5)Rescue有4个选项,输入1(选择continue),回车即可进入Rescue的shell模式

(6)切换到本地系统环境下:chroot /mnt/sysimage

(7)更改root密码:passwd

(8)改好后退出本地系统:Ctrl+d或者exit

(9)重启系统即可使用新的root密码登录:reboot或者init 6

PS:下次开机前请重新设置为从本地硬盘启动系统

为CentOS7配置IP地址:

centos7网卡名字不再是eth0、eth1,而是以eno加数字表示(如:eno16777736);

最小化安装默认是没有ifconfig命令的,可以使用ip addr命令查看IP;

要想继续使用ifconfig命令需要安装net-tools工具包:yum install -y net-tools

(1)使用dhclient命令自动获取一个IP:dhclient

如:192.168.147.138,动态获取的IP在下次开机后失效,要永久使用可以编辑配置文件

(2)编辑网卡配置文件:vim /etc/sysconfig/network-scripts/ifcfg-eno16777736

(3)将ONBOOT的值改为yes,让其开机启动

(4)在最后面加入如下配置:

IPADDR=192.168.147.138

NETMASK=255.255.255.0

GATEWAY=192.168.147.2

DNS1=119.29.29.29

(5)配置好后重启网络服务:systemctl restart network.service

(6)查看配置的IP信息:ip addr

(7)测试IP是否可用:ping www.baidu.com

centos7设置主机名:

查看主机名:hostname

设置主机名:hostnamectl set-hostname rachy

查看主机名状态:hostnamectl status

查看主机名配置文件:cat /etc/hostname

PS:虽然可以像centos6那样使用hostname rachy设置主机名,但是还需要修改主机名配置文件,使用hostnamectl ser-hostname rachy可以直接把主机名写入配置文件/etc/hostname,更便捷

centos7支持命令、选项、参数补全:

安装bash-completion工具包:yum install -y bash-completion

使配置立即生效:source /etc/profile

PS:centos6只能使用Tab键补全命令和路径;centos7借助bash-completion工具包可以使用Tab补全命令、选项、参数和路径,更高效。

centos7管理服务:

centos7不再有chkconfig工具,而是使用systemd工具管理服务,对应的命令是systemctl

(1)设置服务开机启动:systemctl enable httpd.service

(2)设置服务不开机启动:systemctl disable httpd.service

(3)查看服务的状态:systemctl status httpd.service

(4)列出所有服务:systemctl list-units --type=service

(5)启动服务:systemctl start httpd.service

(6)停止服务:systemctl stop httpd.service

(7)重启服务:systemctl restart httpd.service

(8)启动脚本的路径在:/usr/lib/systemd/system/

(9)检查服务是否开机启动:systemctl is-enabled httpd

systemd之unit

systemd管理服务的机制的特点:

(1)支持服务并列启动,不用顺序启动,从而开机时间缩短

(2)支持自动检查服务依赖的服务

(3)systemd可以管理所有系统资源,不同的资源统称为unit(单位)

(4)unit一共分成12种类型:

service:系统服务

target:多个unit构成的一个组

device:硬件设备

mount:文件系统挂载点

automount:自动挂载点

path:文件或者路径

scope:不是由systemd启动的外部进程

slice:进程组

snapshot:systemd快照,可以切换回某个快照

socket:进程间通信的socket

swap:swap文件

timer:定时器

systemd unit的相关命令:

(1)列出正在运行的unit:systemctl list-units

(2)列出所有unit,包括没有找到配置文件的或者启动失败的:systemctl list-units --all

(3)列出所有没有运行的unit:systemctl list-units --all -state=inactive

(4)列出所有加载失败的unit:systemctl list-units --failed

(5)列出所有正在运行的类型为service的unit:systemctl list-units --type=service

(6)显示某个unit是否正在运行:systemctl is-active httpd.service

(7)显示某个unit是否处于启动失败状态:systemctl is-failed httpd.service

(8)显示某个unit服务是否建立了启动链接:systemctl is-enabled httpd.service

systemd之target

target类似于centos6里面的启动级别,但是target支持多个target同时启动。target其实就是多个unit的组合,系统启动说白了就是启动多个unit,为了管理方便,就使用target来管理这些unit。

查看当前系统的所有target:systemctl list-unit-files --type=target

查看一个target包含的所有unit:systemctl list-dependencies multi-user.target

查看默认启动的target:systemctl get-default

设置默认启动的target:systemctl set-default multi-user.target

切换target时默认不关闭前一个target启动的进程:systemctl multi-user.target

使用systemctl isolate命令可以改变这种行为,关闭前一个target里面所有不属于后一个target的进程:systemctl isolate multi-user.target

systemd unit target关联

主配置文件:/etc/systemd/system.conf

开机会先加载:/etc/systemd/system/default.target

所有的service和target在目录下:/usr/lib/systemd/system/

ls -l /etc/systemd/system/default.target是一个软链接,链接到了当前设置的默认target,例如:/usr/lib/systemd/system/multi-user.target

它会加载/usr/lib/systemd/system/multi-user.target.wants目录下的service

查看一个service属于哪个target,需要cat具体的service文件中的[install]模块:

cat /usr/lib/sytemd/system/sshd.service


CentOS7 快速上手