版本: Redhat企业版:redhetenterpriselinux(简称 RHEL)是Redhat 公司面向企业级应用推出的官方版本
centos社区版:centos的全称为 community enterprise operating system (社区企业操作系统),它并不属于红帽公司,而是基于红帽rhel 的源代码组件进行重构的社区版Linux操作系统,相当于rhel 系统的翻版。
将已经准备好的centos安装光盘放入主机的光盘驱动器中,开机后按delete键(在VMware虚拟机中按F2)进入blos(badic lnput output system,基本输入输出系统)设置界面,设置光盘驱动器作为第一优先启动设备。按F10键保存设置并推出。
重新启动主机后将自动从光盘中引入centos的安装程序,可以看到centos的安装模式选择界面,如图所示。
图1.1
该界面中给出三个选项,第一个选项表示直接安装centos7,第二个选项表示先测试安装介质并安装centos7,第三个选项表示修复故障,主要用来测试内存和启动救援模式修复已存在的centos.修复故障选项中包含如下几个子选项。
lnstall centos linux 7 in basic graphics mode : 该选项可以使用户在安装程序无法为显示卡载入正确的驱动程序的情况下使用图形模式安装。
rescue a centos linux system :选择该选项可以修复已安装的无法正常引导的 centos 。恢复环境包含的应用程序可让用户解决各种各样的此类问题。
run a memory test :该选项是在系统中运行内存测试。
boot from local drive:该选项是从本地硬盘引导系统安装。
为保障系统的正确安装,避免在安装过程中出现因为所需文件不能从安装介质中读取导致的安装失败,centos 的安装程序提供了安装光盘检测功能,也就是图1.1中第二项测试安装介质并安装 centos7。因此,在图1.1中选择第二项并按enter键,系统会自动检测安装文件,然后自动启动安装程序。
安装光盘经检测没问题后,将进入安装程序的配置过程。在这个过程中,将对系统使用的键盘,时区,语言及分区方案等一系列参数进行配置。
首先显示的是安装程序欢迎界面,在该界面会提示用户选择在安装过程中使用的语言。
centos7的安装程序提供了相当丰富的语言支持,包括英文 简体中文 和繁体中文。安装程序默认的提示语言为English,对于国内的用户建议使用 简体中文。然后单击continue 按钮继续。
安装程序将需要用户设置的信息分为三部分:本地化,软件和系统。在该界面中很多配置选项都自动识别默认配置,如时间 键盘 安装源 软件等。但标有 感叹号 的选项必须手动配置,然后才能进行下一步的安装。若不想使用默认配置,也可以手动对相关选项进行配置。
图1.2
为了使主机使用正确的系统时间,安装程序会提示用户选择所在的时区。国内用户可以统一先择时区位置如 ‘亚洲/上海’。若要使用ntp,需要先设置网络。
由于中国的计算机用户并不使用所谓的中文键盘,而是使用标准的美国英语式键盘进行中英文的输入,因此在这里需要单击 键盘 按钮,进入键盘的配置界面。单击 加号 按钮添加 英语(美国)键盘 选中该键盘布局并单击 上箭头 按钮将其置顶,设置为默认布局
根据安装介质的来源不同,系统安装源可分为本地安装源与网络安装源两种。默认情况下,可以自动检测放到物理机理的安装光盘,这是本地安装源。网络安装源则需指定url指向安装镜像,并且需要先配置网络,让主机可以访问外网的url网址。
要指定需要安装的软件包,可以选择安装信息摘要界面中的 软件选择 选项 打开软件选择 界面。左边列表中包含了不同用户所需的系统基本环境,选择不同的基本环境,安装程序就会自动选择对应的软件组,并在右边列表中提供已选环境的附加选项。例如,若点选 基础设施服务 单选按钮,就可以自动安装所有用于操作网络基础设施服务的软件包,并在右边列表中提供已选环境的附加选项,如调试工具等。这里我们点选 gnome桌面 单选按钮,同时在右边列表中勾选 开发工具 复选框。
在安装目标位置界面中,首先需要用户确认安装的磁盘,此处已经选择了一个本地磁盘sda,容量为100gb,空闲空间为100gb,本地标准磁盘下面是存储添加区域,如果需要使用额外的储存,可以在设置网络之后单击 添加磁盘 按钮添加额外的储存。在 其他储存选项 区域,可以选择手动分区和系统是否加密(通常不选择加密选项)。在此点选 我要配置分区 单选按钮,然后单击 完成 按钮即可进入分区界面。
安装centos系统一般需要提供一个根分区和一个交换分区,根分区默认使用xfs文件系统,交换分区使用swap文件系统,当然也可以根据需求生成额外的分区。由于本例用于安装系统的是一块新硬盘,所以在分区管理界面中选择 点这里自动创建他们(c)选项,也可以通过单击+按钮创建新的挂载点。
创建完成后可以查看并编辑当前的分区规划。
lvm是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上,文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。
单击完成按钮,在弹出的硬盘格式更改的警告提示框中单击 接受更改 按钮。
kdump内存是系统预留的,其他用户不能使用,这部分内存的作用是在系统崩溃的时候,捕获系统信息,这对于诊断崩溃的原因是非常有用的。本次可以选择不启用,即取消勾选 启用kdump 复选框 并单击 完成 按钮
单击 网络和主机名 按钮就会弹出网络和主机名设置界面。从界面左侧可以看到,安装程序发现了一张网卡命名为 ens33 ,并且网卡默认处于关闭状态。在界面左下侧安装程序已经设置了一个主机名,用户可以在此处输入新的主机名。
拖动界面右侧的滑块将网卡启动。如果使用的网络还需要IP地址等信息,可以单击 配置 按钮,在弹出的窗口中选择 IPv4 设置选项卡 。如需设置IP地址可以在 方法 下拉列表中选择 手动选项,然后在地址中添加相应的IP地址,子网掩码和网关。当然安装好以后也可以设置网络和主机名。完成操作后单击保存按钮返回网络和主机名设置界面,再单击左上角的 完成 按钮返回安装信息摘要界面。确认各项配置没问题后,单击开始安装按钮,安装程序会按照之前的设置开始系统的安装工作。
在Linux操作系统中,默认的管理员账户为root(而不是administrator),为了保证系统的安全性,在系统安装过程中安装程序会提示用户为root账户设置一个不少于六位的密码。
Linux操作系统中的root用户主要用于完成管理任务。为了安全起见,日常使用Linux操作系统时建议以普通用户账号登录。添加一个普通用户账号需要设置 全名 用户名 和 密码 等基本信息。
完成并确认对安装程序的配置过程以后,安装程序将根据之前的分区方案创建并格式化文件系统。安装程序会根据软件包定制情况进行检查,并自动解决软件包之间的依赖关系,进入安装过程。根据所选择软件包的多少,整个过程大约需要10-30分钟
在耐心等待的过程中,可以查看当前所复制软件的名称和描述等信息,这样能够更多地了解系统中各软件包的组成和功能。
文件复制完成后,安装程序会进行一系列的后期处理工作。最终完成centos系统的安装过程,并提示用户单击 重启 按钮,系统会将最后的修改写入硬盘并重启,至此centos7系统安装完成。
完成上述安装过程并重启计算机后,将进入安装完成的centos操作系统。首次启动centos7系统时会自动运行配置向导程序,需要管理员进一步对系统进行初始化配置。单击 前进 按钮,根据提示内容依次完成相关配置即可。
仔细阅读centos系统提供的用户协议,勾选 我同意许可证协议 复选框并单击 完成 按钮。
网络与主机名在之前设置过了,这里就无需再进行设置,单击初始设置界面右下角的 完成配置 按钮,centos7系统的初始设置就完成了。
至此,centos操作系统的整个安装过程就算真正完成了,接下来即可进入用户登录界面。
系统引导是操作系统运行的开始,在用户能够正常登陆到系统之前,Linux操作系统的引导过程将完成一系列的初始化任务,并加载必要的程序和命令终端,为用户登录做好准备。本次将对Linux操作系统的引导过程做简单介绍。
Linux操作系统的引导过程一般包括 开机自检 mbr引导 grub菜单 加载Linux内核 init进程初始化。
服务器主机开机以后,将根据主板BIOS中的设置对CPU(Central Processing Unit,中央处理器)内存、显卡、键盘等设备进行初步检测检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(Master Boot Record,主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR 记录中的引导信息调用启动菜单(如GRUB)。
对于Linux 操作系统来说,GRUB(GRand Unified Bootloader,统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载 Linux内核文件,然后将系统控制权转交给内核。需要注意的是,CentOS 7采用的是GRUB2启动引导器。
Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程。在CentOS系统中,默认的内核文件位于/boot/vmlinuz-3.10.0-514.el7.x86_64°。
为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init 进程负责完成一系列的系统初始化过程,最后等待用户进行登录。
本小节主要介绍init进程及与系统初始化过程相关的一些配置文件。
Linux操作系统中的进程使用数字进行标记,每个进程的身份标记号称为PID。在引导Linux操作系统的过程中,“/sbin/init”是内核第一个加载的程序,因此init进程对应的PID号总是为1.
init进程运行以后将陆续执行系统中的其他程序,不断生成新的进程,这些进程称为init进程的子进程。反过来说,init进程是这些进程的父进程。当然,这些子进程也可以进一步生成各自的子进程,依次不断繁衍下去,最终构成一棵枝繁叶茂的进程树,共同为用户提供服务。
从以上描述可以看出,init进程正是维持整个Linux操作系统运行的所有进程的“始祖”,因此init进程是不允许被轻易终止的。需要切换不同的系统运行状态时,可以向init进程发送正确的执行参数.由init自身来完成相关操作。
Systemd是Linux操作系统的一种 init软件,CenOS 7系统中采用了全新的Systemd启动方式取代了传统的SysVinit,Systemd启动方式使系统初始化时诸多服务并行启动,大大提高了开机效率。CentOS 7 系统中/sbin/init”是“/lib/systemd/systemd”的链接文件。换言之,CentOS 7 系统中运行的第一个 init 进程是“/lib/systemd/systemd”systemd 守护进程负责 Linux的系统和服务.systemctl用于控制Systemd管理的系统和服务状态。
Systernd将其管理的资源组织成各种类型的单元(Unit)表1-1中列出了 Systemd使用的各种单元类型。
Linux 系统服务是指运行在后台并提供特定功能的应用程序,如网站服务、FTP 服务等。Linux通过将不同的系统服务进行搭配组合来协同满足不同的功能需求。不同的服务组合其实现的功能也各不相同,就好比不同的药方能医治不同的病症一样
早期 Linux 操作系统中的 SysVinit 机制,默认包括七种不同的服务搭配方式,其中每一种搭配方式称为运行级别,类似于 Windows 系统中的正常启动、安全模式、不带网络连接的安全模式等。这些运行级别分别使用数字0,1,...,6 来表示。为了向下兼容 SysVinit 系统,Sstemd 使用了相应的target (目标)模拟了 SysVinit 的运行级别,表1-2中列出了运行级别所对应的 target,并说明了各种target 的含义及用途
在Linux 操作系统完成引导以后,如何控制系统服务的运行状态?如何在不同的运行级别之间进行切换?如何优化启动过程,减少系统占用的资源?本节将进一步来解决这些问题
在 CentOS 系统中,各种系统服务的控制脚本默认放在/usr/lib/systemd 目录下。通过 systemctl命令工具可以实现对指定系统服务的控制,语法格式如下:
systemctl 控制类型 服务名称
对于大多数系统服务来说,常见的几种控制类型如下所述
start (启动):运行指定的系统服务程序,实现服务功能
stop(停止): 终止指定的系统服务程序,关闭相应的功能 restart (重启): 先退出,再重新运行指定的系统服务程序 reload (重载):不退出服务程序,只是刷新配置。在某些服务中与restart 的操作相同 status (查看状态):查看指定的系统服务的运行状态及相关信息。
例如,执行如下的“systemtl start postfix.service”操作可以启动尚未运行的 postfix 服务
[root@localhost ~]#systemctl start postfix.service
若要查看指定 postfix 服务的运行状态,只需将上述命令中的“start”改为status”即可。 若要停止 postfix 服务,只需将“start”改为“stop”即可,具体命令如下:
[root@localhost ~]# systemctl status postfix,service
Active: active (running) since 三2017-04-05 19:46:09 CST;ls ago
//终止 postfix 服务[root@localhost ~]# systemctl stop postfix.service[root@localhost ~]# systemctl status postfix.service
Active: inactive (dead) since 三2017-04-05 19:48:55 CST;31s ago
控制类型“restart”用在需要释放旧的资源全部从头开始的情况,它会先关闭相应的服务程序然后重新运行。 例如,当在网卡的配置文件中设置了新的 P 地址以后,为了激活新的 P 地址,可以重新启动名称为 network 的系统服务,命令如下
[root@localhost ~]# systemctl restart network,service
对于在实际生产环境中运行的服务器,不要轻易执行 stop 或 restat 操作,以免造成客户端访问中断,带来不必要的损失,若只是要为系统服务启用新的配置,可以采用相对温和一些的“reload参数重新加载配置,而不是生硬地执行“restart”。 例如,对正在为用户提供 Web 访问的 httpd 服务当需要应用新的配置时,建议执行“systemctl reload httpdservice”命令来重新载入配置,而不是执行“systemctl restart httpd.service'
[root@localhost ~]# systemctl reload httpd.service
明确当前系统所在的 target 将有助于管理员排除一些应用故障。
若未能确知当前所处的目标可以直接执行“runlevel”命令进行查询,显示结果中的两个字符分别表示切换前的目标、当前的目标。
若之前尚未切换过运行级别,则第1列将显示“N”,命令如下
[root@localhost ~]# runlevel
N5
若用户想查看系统启动时默认运行的 target,可以执行“systemctl get-default”命令以显示系统默认的 target,命令如下:
[root@localhost ~]# systemctl get-default
graphical.target//图形模式
当用户需要将系统转换为其他的 target 时,可以通过传统的 init 程序进行,只要使用与运行级别相对应的数字(0~6)作为命令参数即可,或者使用 systemctl 命令进行目标切换。
例如,为了节省系统资源,将系统运行的 target 由图形模式 (5)切换为字符模式(3),可以执行“init 3”或“systemctlisolate multi-usertarget”命令,命令如下
[root@localhost ~]# init 3
[root@localhost ~]# runlevel
5 3
或者
[root@localhost ~]# systemctl isolate multi-user.target
将系统切换到字符模式以后,图形桌面环境不再可用。这时按 Alt+F7 组合键也无法恢复图形桌面环境。需要再次使用图形桌面时,可以执行“init 5”或者“systemctl isolate graphical.target”命令切换回去。
通过切换 target 的操作,还可以实现两个特殊的功能,那就是关机和重启。运行级别0、6 分别对应关机、重启这两个特殊模式,因此只要执行“init 0”与“init 6”命令就可以实现相应的关机重启操作了,命令如下:
[root@localhost ~]# init 0 //关闭当前系统
[rootlocalhost ~]# init 6 //重启当前系统
而运行级别 06又分别对应着 systemd 的“poweroff.target”和“reboot.target”目标,因此执行“systemctl poweroff”与“systemctl reboot”命令也可以实现相应的关机,重启操作,命令如下
[root@localhost ~]# systemctl poweroff //关闭当前系统
[root@localhost ~]#systemctl reboot //重启当前系统
上述内容中的运行级别切换均为临时切换,若要永久切换运行级别,可通过 n (链接)命令指定当前系统的默认运行级别。例如,执行如下命令可将当前系统的开机默认运行级别从graphical.target 更改为 multi-user.target。其中,-s 选项表示创建软链接-f 表示强行删除任何已存在的目标文件。
[root@localhost ~]# systemctl get-defaultgraphical.target
[root@localhost ]# In -sf /lib/systemd/system/multi-usertarget /etc/systemdsystem/default.target
[root@localhost ~]# systemctl get-default
multi-user.target
Linux 操作系统中包含了大量的服务程序,这些服务程序在切换运行级别时根据预设的状态进行启动或终止。其中有不少系统服务可能并不是用户需要的,但是默认也运行了.那么,在 Linux 操作系统中默认包括哪些系统服务?各自的作用是什么? 如何控制开机后自动运行的系统服务,以减少资源占用、提高系统运行效率呢?下面就这些问题分别进行讲解
在CentOS 系统中,默认安装的系统服务多达 100 余种,这些系统服务为用户提供了丰富的应用服务。只有了解各个系统服务的用途,才能有选择地进行优化操作,实现按需启用 Linux 服务
表1-3 中列出了 CentOS 中常见的一些系统服务,包括服务的作用、建议启动的状态,以供优化。
必须强调的是,这些服务到底是选择开启还是关闭,应根据主机的实际功能需求来定,不要生搬硬套。例如,如果当前的Linux 主机用来向局域网提供文件共享服务,那么 sm 服务应开启,而不能关闭
Linux 操作系统在每次开机后会进入默认的 systemd 运行目标(如字符模式或图形模式),并运行该目标中默认设为启动的各种系统服务。若要禁止某些系统服务自动运行,可以使用 ntsysv 或者systemctl 工具进行优化
ntsysv 工具可以在字符模式中运行,为用户提供一个仿图形的交互式操作界面,专门用于集中配置各种系统服务的启动状态。当需要同时设置多个服务的启动状态时,使用 ntsysv 工具会非常方便
单独执行“ntsysv”命令时仅用于管理当前运行目标中的服务:通过“--level”选项可以对指定运行目标(级别)中的服务进行管理,例如,执行“ntsvsv --level 35”命今可以打开 ntsysv 管理程序,如图1.11 所示,同时对运行目标3,5中的各种系统服务的默认启动状态进行调整
操作时按上下方向键来选择不同的系统服务,按 Space(空格)键设置服务的默认启动状态(“[]表示启动,“[]”表示关闭)。如果要查看所选定服务的说明信息,按F1 键可以获取帮助。
systemctl 工具与ntsysv 的功能类似,但是 systemctl 不提供交互式的操作界面,它用于查询或设置系统服务的默认启动状态,当需要设置某一个服务在当前运行目标中的默认启动状态时,使用systemctl 工具会更有效率。使用systemctl 工具控制服务开机启停的命令格式如下
systemctl 控制选项 服务名称
常用的选项有三种:
enable: 开机自动启动
disable:开机自动关闭
is-enable:查看开机启动状态
例如,执行以下操作即可配置 apache 服务开机自动启动或关闭,并查看开机启动状态。当 apache服务设置为开机自动启动时,在/etc/systemd/system/multi-user.target.wants/目录下面会出现一个文件名为 httpd.service 的软连接文件。当 apache 服务设置为开机自动关闭时在/etc/systemd/system/multi-user,target,wants/目录下面的httpd,service 软连接文件就会被删除
Removed symlink /etc/systemd/system/multi-user,target,wants/httpd.service
[root@localhost ~]# systemctl is-enabled httpd.service
disabled
在当前系统下执行“systemctl list-units --type=service”命令可以查看当前系统中所有已激活的系统服务,命令如下!