linux系统基本结构

末鹿安然 提交于 2020-03-11 19:24:07

一、 Linux控制台的使用与硬件资源管理

1、 Linux控制台的使用

Linux系统由桌面控制台和字符控制台组成,桌面系统其实就是我们安装软件包时的X-window视窗,而X-window的实质是在命令行下运行的一个应用程序。字符控制台是Linux系统的核心,大部分操作都是在字符界面下完成的。
默认Linux下有6个字符控制台,每个控制台可以独立作业,互不影响,真正体现了Linux系统的“多用户、多任务”的特性。
在图形界面下要转入字符界面时,只需按下“Ctrl+Alt+F1”到“F6”组合键中的任何一个,即可进入字符界面。相反,如果要从字符界面切换到X-window下,可以在字符界面命令行输入“startx”或者按下“Ctrl+Alt+F7”组合键即可。
控制台终端(/dev/ttyn)虚拟终端(/dev/pts/n)
Linux系统的默认管理员用户是root,与Windows的管理员用户Administrator类似,root用户可以操作系统的任何文件和设备,拥有最高权限。输入登录的用户名root,然后输入对应的密码,即可登录Linux系统了

2、 Linux硬件资源管理

(1)查看CPU信息
[root@localhost ~]# more /proc/cpuinfo

要查看系统物理CPU的个数,可通过如下命令查看:
[root@centos7 ~]# cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc –l
要查看每个物理CPU中Core的个数,可通过如下命令查看:
[root@centos7 ~]# cat /proc/cpuinfo | grep “cpu cores”
要查看系统所有逻辑CPU个数(所有物理CPU中Core的个数加上超线程个数),可通过如下命令查看:
[root@centos7 ~]# cat /proc/cpuinfo | grep “processor” | wc –l
通过这个简单介绍,根据上面的输出可知,此系统有2颗物理CPU,每个物理CPU中有8个Core,并且启用了超线程,总共有32个逻辑CPU。

(2)查看系统内存信息:
[root@localhost ~]# more /proc/meminfo

(3)查看磁盘分区信息
[root@localhost ~]#fdisk –l
3、硬件与设备文件

在Linux系统下,硬件设备都是以文件的形式存在,因而不同硬件设备有不同的文件类型,我们把硬件与系统下相对应的文件称作设备文件。设备文件在外部设备与操作系统之间提供了一个接口,这样,用户使用外部设备就相当于使用普通文件一样。

设备文件在Linux系统下存放在/dev下面,设备文件的命名方式是主设备号加次设备号,主设备号说明设备类型,次设备号说明具体指哪一个设备。

U盘在Linux下被识别为SCSI设备,因此对应的设备文件为/dev/sdax,主设备号sd表示SCSI disk,a表示第一块SCSI设备。如果有第二块SCSI设备,那么对应的设备文件是/dev/sdb。x表示SCSI设备的相应分区编号。例如,/dev/sda1表示第一块SCSI设备的第一个分区,/dev/sdc5表示第三块SCSI设备的第一个逻辑分区。

光驱是我们最经常使用的外设之一。IDE光驱在Linux下对应的设备文件为/dev/hda,表示在第一个IDE口(Master)的IDE光驱;SCSI光驱在Linux下对应的设备文件为/dev/srx,x表示SCSI ID。
4、Linux下常见文件系统类型

文件系统类型就是分区的格式,对于不同的外设,Linux也提供了不同的文件类型。
msdos:DOS文件系统类型
vfat:支持长文件名的DOS分区文件系统类型,也可理解为Windows文件系统类型
iso9660:光盘格式文件系统类型
ext2/ext3/ext4:Linux下的主流文件系统类型
xfs:Linux下一种高性能的日志文件系统,在Centos7.x版本中成为默认文件系统
5、Linux下设备的挂载与使用
Linux下挂载的命令是mount,格式如下:
mount -t 文件系统类型 设备名 挂载点
文件系统类型就是上面讲到的几种分区格式,设备名就是对应的设备文件,挂载点就是在Linux下指定的挂载目录,将设备指定到这个挂载目录后,以后访问这个挂载目录,就相当于访问这个设备了。
Linux系统中有一个/mnt目录,专门用作临时挂载点(Mount Point)目录,主要用于系统管理员临时手动挂载一些媒体设备。此外,Linux系统中还有一个/media目录,此目录是一个自动挂载的目录,主要用于自动挂载光盘、U盘等移动设备。
5、Linux下设备的挂载与使用
(1)挂载U盘、可移动硬盘
挂载U盘前首先确认U盘设备名,在命令行输入“dmesg|more”查看,一般设备文件为/dev/sda1,然后建立挂载点mkdir /mnt/usb,接着进行挂载:
mount -t vfat /dev/sda1 /mnt/usb
这样就可以通过访问/mnt/usb目录来访问U盘的内容了。
(2)挂载光盘
mount -t iso9660 /dev/hda /mnt/cdrom
或者
mount /dev/cdrom /mnt/cdrom
当需要换另外一张光盘的时候,是必须先卸载,然后重新装载光盘。
6、设备的卸载

卸载设备的命令格式为:
umonut 挂载目录

例如,要卸载U盘可输入以下命令:
umonut /mnt/usb
卸载光盘可输入以下命令:
umount /mnt/cdrom
Linux对文件系统的保护做得很到位,在光盘没有卸载之前,光驱上面的弹出键不起任何作用。

二、文件系统结构与目录功能

1、经典树形目录
Linux系统设计中最优秀的特性之一就是将所有内容都以文件的形式展现出来,通过一个树形结构统一管理和组织这些文件。
在这里插入图片描述
2、目录功能介绍

(1)/etc目录
这个目录主要用于存放系统管理相关的配置文件以及子目录,其中比较重要的有系统初始化文件/etc/rc、用户信息文件/etc/passwd等,相关网络配置文件和服务启动文件也均在这个目录下
(2)/usr目录
此目录主要用于存放应用程序和文件。如果在系统安装的时候,选择了很多软件包,那么这些软件包默认会安装到此目录下,我们平时安装的一些软件,默认情况下也会安装到此目录内,因此这个目录一般比较大。
(3)/var目录
此目录主要用于存放系统运行以及软件运行的日志信息
(4)/dev目录
/dev目录包含了系统所有的设备文件
(5)/proc目录
此目录是一个虚拟目录,目录所有信息都是内存的映射,通过这个虚拟的内存映射目录,可以和内核内部数据结构进行交互,获取有关进程的有用信息,同时也可以在系统运行中修改内核参数。与其他目录不同,/proc存在于内存中,而不是硬盘上。
(6)其他目录
 /boot目录:该目录存放的是启动Linux时的一些核心文件,具体包含一些镜像文件和链接文件,因此这个目录非常重要,如果遭到破坏,系统将无法启动。
 /bin和/sbin目录:这两个目录存放的都是可执行的二进制文件,bin其实就是binary的缩写,/bin目录下存放的就是我们经常使用的Linux命令,例如文件操作命令ls、cd、cp,文本编辑命令vi、ed,磁盘操作命令dd、df、mount,等等。
/sbin目录:/sbin中的s是Spuer User的意思,也就是说只有超级用户才能执行这些命令,常见的如磁盘检查修复命令fcsk、磁盘分区命令fdisk、创建文件系统命令mkfs、关机命令shutdown和初始化系统命令init等。
 /home目录:该目录是系统中每个用户的工作目录,在Linux系统中,每个用户都有自己的一个目录,而该目录一般是由用户的账号命名的,例如有一个用户ixdba,那么它的默认目录就是/home/ixdba。
 /lib、/lib64目录:该目录中存放的是共享程序库和映像文件,可供很多程序使用。通过这些共享映射文件,每个程序就不必分别保存自己的库文件(这会增加占用的磁盘空间),Linux提供了一组可供所有程序使用的文件。在该目录中,还包含引导进程所需的静态库文件。
 /root目录:该目录是Linux超级用户root的默认主目录,如果通过root登录系统,就会自动进入到此目录,一般用户没有进入这个目录的权限。
 /tmp目录:该目录为临时文件目录,主要用于存放临时文件,这些临时文件可能会随时被删除,也可以随时删除。

三、 Linux初始化init系统

Linux操作系统的启动首先从BIOS开始,接下来Linux引导程序将内核映像加载到内存,进行内核初始化,内核初始化的最后一步就是启动PID为1的init进程。这个进程是系统的第一个进程,它负责产生其它所有用户进程。
大多数Linux发行版的init系统是和System V相兼容的,因此被称为sysvinit,这是最早也是最流行的init系统,在RHEL7.x/Centos7.x发行版本之前的系统中都采用sysvinit。
sysvinit概念简单清晰,主要依赖于Shell脚本,但它一次一个串行地启动进程,决定了它的最大弱点:启动太慢。虽然在服务器上这个缺点不算什么,但是当Linux被应用到移动终端设备上时,这个缺点就变成了大问题。

upstart和systemd这两个是新一代init系统,以Ubuntu为代表的Linux发行版就采用的是upstart方式,而在RHEL7.x/Centos7.x版本中,已经默认开始采用systemd来管理系统。Upstart出现很早,而systemd出现较晚,但发展更快,大有取代upstart的趋势。
systemd主要特点:
并发处理所有服务,加速开机流程。

1、init管理机制与特点
所有的服务启动脚本都放置于/etc/init.d/目录,基本上都是使用bash shell所写成的脚本程序,需要启动、关闭、重新启动、查看状态时,可以通过如下的方式来处理:
启动:/etc/init.d/daemon start
关闭:/etc/init.d/daemon stop
重启:/etc/init.d/daemon restart
查看状态:/etc/init.d/daemon status
2、init机制的系统运行级
init可以根据使用者自订的执行等级(runlevel)来唤醒不同的服务,以进入不同的操作模式。基本上 Linux 提供7个执行等级,分别是0, 1, 2…6 ,
比较重要的是:
init 0:关机模式
init 1:单人维护模式、
init 3:纯字符模式、
init 5:图形界面模式。
init 6:重启模式
3、init管理机制服务设置方式
各个执行等级的启动脚本是通过 /etc/rc.d/rc[0-6]/SXXdaemon 链接到 /etc/init.d/daemon 。
链接文件名 (SXXdaemon) 的功能为: S 为启动该服务,XX是数字,表示启动的顺序。由于有SXX的设定,因此在开机时可以依序执行所有需要的服务。
设置服务自启动: chkconfig daemon on
关闭服务自启动: chkconfig daemon off
查看服务是否自启动: chkconfig --list daemon

四、 runlevel到target的改变

在RHEL7.x/Centos7.x版本中,由于采用了systemd管理体系,以前的运行级别(runlevel)的概念被新的运行目标(target)所取代,tartget的命名类似于“multi-user.target”这种形式,比如原来的运行级别3(runlevel3)对应于新的多用户目标“multi-user.target”,运行级别5(runlevel5)就对应于“graphical.target”。由于systemd机制中不再使用runlevle的概念,所以/etc/inittab也不再被系统使用。
在新的systemd管理体系里,默认的target(相当于以前的默认运行级别)是通过软链来实现。

五、系统服务管理工具systemd

systemd提供了一个非常强大的命令行工具systemctl,可能很多系统运维人员都已经非常熟悉基于sysvinit的服务管理方式,比如service、chkconfig命令,而systemd也能完成同样的管理任务,可以把systemctl看作是service和chkconfig的组合体。要查看、启动、停止、重启、启用或者禁用系统服务,都可以通过systemctl命令来实现 。

1、启动、停止、重启服务
要通过systemctl命令启动一个服务,可以使用如下命令:
[root@centos7 systemd]# systemctl start httpd.service
这就启动了httpd服务,也就是Apache HTTP服务器。要停掉它,需要以root身份使用如下命令:
[root@centos7 systemd]# systemctl stop httpd.service

2、查看、禁止、启用服务

通过systemctl命令可以实现启用、禁用服务,以此来控制开机服务启动,可以使用enable/disable选项来控制一个服务是否开机启动,命令如下:
[root@centos7 systemd]# systemctl enable httpd.service
这就打开了httpd服务开机自启动功能。要关闭httpd服务,可执行如下命令:
[root@centos7 systemd]# systemctl disable httpd.service

要查看一个服务的运行状态,可以使用systemctl命令的“status”选项

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!