20200109 Linux基础 重新整理 第六章
2020年1月9日
17:18
Linux中所有硬件系统都被抽象成了什么?
Linux里的所有硬件设备都被抽象成了文件。如打印机,套接字,块设备,字符设备等。
linux里文件系统是按照什么体系来存储的?
linux里文件系统是按照FHS 文件层次化目录来存储的。
FHS是什么?
FHS,Filesystem Hierarchy Standard,
-
Linux文件系统是从哪里开始的?
-
\ 从根目录开始。
Linux文件名命名规则是什么?
-
文件名严格区分大小写,不得包含/
Linux系统中常见的目录名称以及相应内容?
目录名称 |
应放置文件的内容 |
/boot |
开机所需文件—内核、开机菜单以及所需配置文件等 |
/dev |
以文件形式存放任何设备与接口 |
/etc |
配置文件 |
/home |
用户家目录 |
/bin |
存放单用户模式下还可以操作的命令 |
/lib |
开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数 |
/sbin |
开机过程中需要的命令 |
/media |
用于挂载设备文件的目录 |
/opt |
放置第三方的软件 |
/root |
系统管理员的家目录 |
/srv |
一些网络服务的数据文件目录 |
/tmp |
任何人均可使用的“共享”临时目录 |
/proc |
虚拟文件系统,例如系统内核、进程、外部设备及网络状态等 |
/usr/local |
用户自行安装的软件 |
/usr/sbin |
Linux系统开机时不会使用到的软件/命令/脚本 |
/usr/share |
帮助与说明文件,也可放置共享文件 |
/var |
主要存放经常变化的文件,如日志 |
/lost+found |
当文件系统发生错误时,将一些丢失的文件片段存放在这里 |
路径是什么意思?
路径指的是如何定位到某个文件,分为绝对路径与相对路径
什么是绝对路径?
绝对路径指的是从根目录(/)开始写起的文件或目录名称。
什么是相对路径?
相对路径则指的是相对于当前路径的写法。
常见目录名称以及相应内容是那些?作用分别是什么?
-
系统启动必须:
-
/boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。
-
/etc:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。
-
/lib:Library的缩写存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
-
/sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中
-
-
指令集合:
-
/bin:Binary的缩写,存放着最常用的程序和指令
-
/sbin:只有系统管理员能使用的程序和指令。
-
-
外部文件管理:
-
/dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。
-
/media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。
-
/mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
-
-
临时文件:
-
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
-
/lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
-
/tmp:这个目录是用来存放一些临时文件的。
-
-
账户:
-
/root:系统管理员的用户主目录。
-
/home:用户的主目录,以用户的账号命名的。
-
/usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
-
/usr/bin:系统用户使用的应用程序与指令。
-
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
-
/usr/src:内核源代码默认的放置目录。
-
-
运行过程中要用:
-
/var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。
-
/proc:管理内存空间!虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。
-
-
扩展用的:
-
/opt:默认是空的,我们安装额外软件可以放在这个里面。
-
/srv:存放服务启动后需要提取的数据(不用服务器就是空)
-
常见的硬件设备及其文件名称是什么?
硬件设备 |
文件名称 |
IDE设备 |
/dev/hd[a-d] |
SCSI/SATA/U盘 |
/dev/sd[a-p] |
软驱 |
/dev/fd[0-1] |
打印机 |
/dev/lp[0-15] |
光驱 |
/dev/cdrom |
鼠标 |
/dev/mouse |
磁带机 |
/dev/st0或/dev/ht0 |
什么设备在管理linux设备的命名?作用是什么?
系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大致的属性以及分区信息等;
udev设备管理器是如何工作的是什么?
udev设备管理器的服务会一直以守护进程的形式运行并侦听内核发出的信号来管理/dev目录下的设备文件。
-
Linux系统中,硬盘是如何对硬盘的分区进行编号的?
主分区或扩展分区的编号从1开始,到4结束;
逻辑分区从编号5开始。
硬盘标示中的字母代表的含义是什么?
系统采用a~p来代表16块不同的硬盘(默认从a开始分配),
/dev目录中sda设备之所以是a,是由什么决定的?
-
/dev 目录中sda 设备之所以是a,并不是由插槽决定的,而是由系统内核的识别顺序来决定的,而恰巧很多主板的插槽顺序就是系统内核的识别顺序,因此才会被命名为/dev/sda。
-
在使用iSCSI网络存储设备时就会发现,明明主板上第二个插槽是空着的,但系统却能识别到/dev/sdb这个设备就是这个道理。
分区的编号代表分区的个数。比如sda3表示这是设备上的第三个分区,这个说法对吗?
-
分区的数字编码不一定是强制顺延下来的,也有可能是手工指定的。因此sda3 只能表示是编号为3 的分区,而不能判断sda 设备上已经存在了3 个分区。
/dev/sda5代表什么意思?
/dev/目录中保存的应当是硬件设备文件;其次,sd表示是存储设备;然后,a表示系统中同类接口中第一个被识别到的设备,最后,5表示这个设备是一个逻辑分区。一言以蔽之,“/dev/sda5”表示的就是“这是系统中第一块被识别到的硬件设备中分区编号为5的逻辑分区的设备文件”。
硬盘设备是由什么组成的
-
硬盘设备是由大量的扇区组成的,每个扇区的容量为512 字节
第一个扇区保存着什么?容量分别为多大?
第一个扇区最重要,它里面保存着主引导记录与分区表信息。
主引导记录需要占用446 字节,分区表为64 字节,结束符占用2 字节;
其中分区表中每记录一个分区信息就需要16 字节,这样一来最多只有4 个分区信息可以写到第一个扇区中,这4 个分区就是4 个主分区。
如何解决分区个数不够的问题?
可以将第一个扇区的分区表中16字节(原本要写入主分区信息)的空间(称之为扩展分区)拿出来指向另外一个分区。也就是说,扩展分区其实并不是一个真正的分区,而更像是一个占用16字节分区表空间的指针—一个指向另外一个分区的指针。这样一来,用户一般会选择使用3个主分区加1个扩展分区的方法,然后在扩展分区中创建出数个逻辑分区,从而来满足多分区(大于4个)的需求。
什么是扩展分区?
扩展分区其实并不是一个真正的分区,而更像是一个占用16字节分区表空间的指针—一个指向另外一个分区的指针。
文件系统的作用是什么?
文件系统的作用是合理规划硬盘,用户在硬件存储设备中执行的文件建立、写入、读取、修改、转存与控制等操作都是依靠文件系统来完成的。
Ext3是什么?作用是什么?
Ext3:是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百地保证资料不会丢失。它会把整个磁盘的每个写入动作的细节都预先记录下来,以便在发生异常宕机后能回溯追踪到被中断的部分,然后尝试进行修复。
Ext4是什么?作用是什么?
Ext4:Ext3的改进版本,作为RHEL 6系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4文件系统能够批量分配block块,从而极大地提高了读写效率。
XFS是什么?作用是什么?
XFS:是一种高性能的日志文件系统,而且是RHEL 7中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB,这几乎满足了所有需求。
新的硬盘使用前需要经过什么步骤?
在拿到了一块新的硬盘存储设备后,也需要先分区,然后再格式化文件系统,最后才能挂载并正常使用。
inode是什么?作用是什么?
-
inode是什么?索引节点,用来存储文件的信息。
-
inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。
inode里存储了那些信息?
该文件的访问权限(read、write、execute);
该文件的所有者与所属组(owner、group);
该文件的大小(size);
该文件的创建或内容修改时间(ctime);
该文件的最后一次访问时间(atime);
该文件的修改时间(mtime);
文件的特殊权限(SUID、SGID、SBIT);
该文件的真实数据地址(point)。
文件实际保存在哪里?
文件实际保存在Block块中。大小为(1KB,2KB,4KB)。
inode的大小为多少?存储机制是什么?
一个inode的默认大小仅为128B(Ext3),记录一个block则消耗4B。当文件的inode被写满后,Linux系统会自动分配出一个block块,专门用于像inode那样记录其他block块的信息,这样把各个block块的内容串到一起,就能够让用户读到完整的文件内容了。
VFS是什么?
Linux内核中的软件层为用户程序提供了一个VFS(Virtual File System,虚拟文件系统)接口,这样用户实际上在操作文件时就是统一对这个虚拟文件系统进行操作了.优点是使用户在读取或写入文件时不用关心底层的硬盘结构
VFS的架构是什么?
挂载设备是什么意思?
当用户需要使用硬盘设备或分区中的数据时,需要先将其与一个已存在的目录文件进行关联,而这个关联动作就是“挂载”。
mount命令的作用是什么?格式是什么?
mount命令用于挂载文件系统,格式为“mount 文件系统 挂载目录”。
用于挂载文件系统的命令是什么?格式是什么?
mount命令用于挂载文件系统,格式为“mount 文件系统 挂载目录”。
mount命令中的参数以及作用
参数 |
作用 |
-a |
挂载所有在/etc/fstab中定义的文件系统 |
-t |
指定文件系统的类型 |
如何让硬件设备和目录永久地进行自动关联?
如果想让硬件设备和目录永久地进行自动关联,就必须把挂载信息按照指定的填写格式“设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检”(各字段的意义见表6-4)写入到/etc/fstab文件中。
用于挂载信息的指定填写格式中,各字段所表示的意义是什么?
字段 |
意义 |
设备文件 |
一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier) |
挂载目录 |
指定要挂载到的目录,需在挂载前创建好 |
格式类型 |
指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等 |
权限选项 |
若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async |
是否备份 |
若为1则开机后使用dump进行磁盘备份,为0则不备份 |
是否自检 |
若为1则开机后自动进行磁盘自检,为0则不自检 |
-
想将文件系统为ext4的硬件设备/dev/sdb2在开机后自动挂载到/backup目录上,并保持默认权限且无需开机自检,应该如何操作?
[root@linuxprobe ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed May 4 19:26:23 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 1 2
/dev/mapper /rhel-swap swap swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
/dev/sdb2 /backup ext4 defaults 0 0
-
umount命令的作用是什么?格式是什么?
-
umount命令用于撤销已经挂载的设备文件,格式为“umount [挂载点/设备文件]”。
-
用于撤销已经挂载的设备文件的命令是什么?格式是什么?
-
umount命令用于撤销已经挂载的设备文件,格式为“umount [挂载点/设备文件]”。
添加硬盘设备的操作思路是什么?
首先需要在虚拟机中模拟添加入一块新的硬盘存储设备,然后再进行分区、格式化、挂载等操作,最后通过检查系统的挂载状态并真实地使用硬盘来验证硬盘设备是否成功添加。
fdisk命令的作用是什么?格式是什么?
fdisk命令用于管理磁盘分区,格式为“fdisk [磁盘名称]”,它提供了集添加、删除、转换分区等功能于一身的“一站式分区服务”。
用于管理磁盘分区的命令是什么?格式是什么?
fdisk命令用于管理磁盘分区,格式为“fdisk [磁盘名称]”,它提供了集添加、删除、转换分区等功能于一身的“一站式分区服务”。
fdisk命令中的参数以及作用是什么?
参数 |
作用 |
m |
查看全部可用的参数 |
n |
添加新的分区 |
d |
删除某个分区信息 |
l |
列出所有可用的分区类型 |
t |
改变某个分区的类型 |
p |
查看分区信息 |
w |
保存并退出 |
q |
不保存直接退出 |
创建一个新分区的流程是什么?
-
输入参数p来查看硬盘设备内已有的分区信息,其中包括了硬盘的容量大小、扇区个数等信息:
-
输入参数n尝试添加新的分区。系统会要求您是选择继续输入参数p来创建主分区,还是输入参数e来创建扩展分区。选择分区编号,增加分区大小后写入 w,退出
-
再次使用参数p来查看硬盘设备中的分区信息。
-
再进行格式化:mkfs make linux file system
-
mkfs.xfs 硬盘路径
-
-
系统并没有自动把分区信息同步给Linux 内核,使用partprobe命令。
-
格式化完成后挂载分区 mount
-
用df -h 命令来查看挂载状态和硬盘使用量信息。report file system disk space usage
file命令的作用是什么?
file命令查看文件的属性
partprobe命令的作用是什么?
partprobe命令手动将分区信息同步到内核,而且一般推荐连续两次执行该命令,效果会更好。
mkfs命令的作用是什么?格式是什么?
make linux file system 格式化分区的操作的命令
-
mkfs.文件类型名称 硬盘路径
-
格式化硬盘后需要做什么?
-
格式化完成后挂载分区 mount
df -h命令的作用是什么?
-
用df -h 命令来查看挂载状态和硬盘使用量信息。report file system disk space usage
du命令的作用是什么?格式是什么?
用于查看文件数据占用量,其格式为“du [选项] [文件]”。
查看文件数据占用量的命令是什么?格式是什么?
du用于查看文件数据占用量,其格式为“du [选项] [文件]”。
du -sh /* 的作用是什么?
du -sh /* 列出根目录下一级文件的占用量
SWAP分区是什么?优缺点是什么?
SWAP(交换)分区是一种通过在硬盘中预先划分一定的空间,然后将把内存中暂时不常用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设计目的是为了解决真实物理内存不足的问题。但由于交换分区毕竟是通过硬盘设备读写数据的,速度肯定要比物理内存慢,所以只有当真实的物理内存耗尽后才会调用交换分区的资源