如何让怎样让win10开机变快时的9个点变多?

第4章:Vim编辑器与Shell命令脚本

本章学习内容有 Vim文本编辑器、编写Shell脚本、流程控制语句、第一个自动化Shell程序。

1)为什么要学习Vim文本编辑器?

在 Linux 系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数。而且在日常工作中大家也肯定免不了要编写文档,这些工作都是通过文本编辑器来完成的。

2)Vim编辑器为什么会得到广大厂商的认可?

Vim 编辑器中设置了三种模式—命令模式、末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。Vim三种命令模式的区别及其切换方法,如下图示:

图解:在每次运行 Vim 编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编写工作,而每次在编写完文档后需要先返回命令模式,然后再进入末行模式,执行文档的保存或退出操作。在 Vim 中,无法直接从输入模式切换到末行模式

a / i / o 这三个键的区别:a 键与 i 键分别是在光标后面一位和光标当前位置切换到输入模式,而 o 键则是在光标的下面再创建一个空行。

3)Vim命令模式,有哪些常用的命令?

4)在Vim末行模式下,能做哪些事情?

末行模式主要用于保存或退出文件,以及设置 Vim 编辑器的工作环境,还可以让用户执行外部的 Linux 命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。末行模式下的常用命令如下图:

2、使用Vim编写或修改文档的一般步骤

1)第1步创建或打开文件:使用命令“ vim demo.txt ”给文档取个名字叫 demo.txt,如果这个文档存在则直接打开,如果不存在则创建一个临时的输入文件。
2)第2步:输入 a / i / o 键进入Vim输入模式;在文档中输入你的内容。
3)第3步:按下 ESC 键,退出Vim输入模式,返回至Vim命令模式。
4)第4步:输入 : 符号,从Vim命令模式进入到Vim末行模式。
5)第5步:在Vim末行模式下,输入 wq! 强制保存当前文件并退出Vim编辑器。如果是输入 q! 则强制退出Vim编辑器而不保存当前文件。

3、配置Linux主机名称

为了便于在局域网中查找某台特定的主机,或者对主机进行区分,除了要有 IP 地址外,
还要为主机配置一个主机名,主机之间可以通过这个类似于域名的名称来相互访问。在 Linux

hostname 命令用于查看当前的主机名称,但有时主机名称的改变不会立即同步到系统中,
所以如果发现修改完成后还显示原来的主机名称,可重启虚拟机后再行查看。

网卡 IP 地址配置的是否正确是两台服务器是否可以相互通信的前提。在 Linux 系统中,一切都是文件,因此配置网络服务的工作其实就是在编辑网卡配置文件。在 RHEL 5、RHEL 6 中,网卡配置文件的前缀为 eth,第 1 块网卡为eth0,第 2 块网卡为 eth1;以此类推。而在 RHEL 7 中,网卡配置文件的前缀则以 ifcfg 开始,
加上网卡名称共同组成了网卡配置文件的名字,例如 ifcfg-eno;好在除了文件名变化外也没有其他大的区别。

2)实践任务:我们将要把名称为 ifcfg-enp0s3 的网卡配置如下:

# 保存配置并退出 Vim

5、配置 Yum 软件仓库

1)关于Yum软件仓库

Yum 软件仓库的作用是为了进一步简化 RPM 管理软件的难度以及自动分析所需软件包及其依赖关系的技术。可以把 Yum 想象成是一个硕大的软件仓库,里面保存有几乎所有常用的工具,而且只需要说出所需的软件包名称,系统就会自动为您搞定一切。既然要使用 Yum 软件仓库,就要先把它搭建起来,然后将其配置规则确定好才行。

2)搭建并配置Yum软件仓库的大致步骤如下:

配置Yum仓库的一般步骤

编辑好yum仓库配置文件后,还需要进一步创建挂载点,并设置成开机自动挂载。这才顺利完成了Yum仓库的配置工作。

一个高级 Shell 脚本的编写原则,其实使用 Vim 编辑器把 Linux 命令按照顺序依次写入到一个文件中。

2)解读第一个Shell脚本

说明:1、Shell 脚本文件的名称可以任意,但为了避免被误以为是普通文件,建议将.sh 后缀加上,以表示是一个脚本文件。2、第一行的脚本声明(#!)用来告诉系统使用哪种 Shell 解释器来执行该脚本。3、第二行的注释信息(#)是对脚本功能和某些命令的介绍信息。4、第三、四行的可执行语句也就是我们平时执行的 Linux 命令了。

3)如何运行一个Shell脚本?

第一种方式:使用 bash 命令来运行一个Shell 脚本。

第二种方式:通过输入完整路径的方式来执行Shell脚本。但这种方式默认会因为权限不足而提示报错信息,此时只需要为脚本文件增加执行权限(chmod u+x demo1.sh)即可。

两种运行Shell脚本的方式

7、让 Shell脚本 接收用户的参数

为了让 Shell 脚本程序更好地满足用户的一些实时需求,以便灵活完成工作,必须要让脚本程序能够像之前执行命令时那样,接收用户输入的参数。在Linux中,设计思想如下图示:

图解:$0 对应的是当前 Shell 脚本程序的名称,$#对应的是总共有几个参数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值,而$1$2$3……则分别对应着第 N

如下示例,我们编写一个可以接收用户参数的Shell脚本,脚本代码如下:

执行这个 demo.sh 脚本,即可在屏幕上输出相应的参数结果:

执行上述编写的 demo.sh 脚本:

Shell 脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字 0,否则便返回其他随机数值。根据测试对象来划分,条件测试表达式可以分为4种,分别是文件测试语句、逻辑测试语句、整数值比较语句、字符串比较语句。其语法格式如下:

1)文件测试语句:用于判断文件是否存在或权限是否满足等情况的运算符,其常用参数如下图示:

解释:上述的文件测试语句来判断/etc/fstab 是否为一个目录类型的文件,然后通过 Shell 解释器的内设$?变量显示上一条命令执行后的返回值。如果返回值为 0,则是目录;如果返回值为非零的值,则意味着目录不存在。

2)逻辑测试语句:用于对测试结果进行逻辑分析。逻辑“与”的运算符号是&&,它表示当前面的命令执行成功后才会执行它后面的命令;逻辑“或”的运算符号为 ||,表示当前面的命令执行失败后才会执行它后面的命令;逻辑“非”的运算符号是一个叹号(!),它表示把条件测试中的判断结果取相反值。

3)整数值比较语句:仅用于对数字进行比较操作,不能将数字与字符串、文件等内容一起操作,而且不能想当然地使用日常生活中的等号、大于号、小于号等来判断。因为等号与赋值命令符冲突,大于号和小于号分别与输出重定向命令符和输入重定向命令符冲突。因此一定要使用规范的整数比较运算符来进行操作,常用操作符如下图示:

示例:先使用 free -m 命令查看内存使用量情况(单位为 MB),然后通过 grep Mem:命令过滤出剩余内存量的行,再用 awk '{print $4}'命令只保留第四列。如下示例,我们来判断一下当前系统的内存是否不足?(即判断剩余内存容量是否小于1024M)

判断当前系统内存是否不足

4)字符串比较语句:用于判断测试字符串是否为空值,或两个字符串是否相同。它经常用来判断某个变量是否未被定义(即内容为空值)。常用参数如下表:

接下来我们通过 if、for、while、case 这 4 种流程控制语句来学习编写难度更大、功能更强的 Shell 脚本。

1)if 条件语句:分为单分支结构、双分支结构、多分支结构。if 条件语句的单分支结构由 if、then、fi 关键词组成,而且只在条件成立后才执行预设的命令,相当于口语的“如果…那么…”。

# 如果 /media/cdrom 目录不存在,就递归地创建该目录。 # 查看 /cdrom 目录是否已经存在了

if 条件语句的双分支结构由 if、then、else、fi 关键词组成,它进行一次条件匹配判断,如果与条件匹配,则去执行相应的预设命令;反之则去执行不匹配时的预设命令,相当于口语的“如果…那么…或者…那么…”。

# 测试用户指定IP的主机是否在线,$1用于接收用户参数
# 执行Shell脚本,并传入用户参数

if 条件语句的多分支结构由 if、then、else、elif、fi 关键词组成,它进行多次条件匹配判断,这多次判断中的任何一项在匹配成功后都会执行相应的预设命令,相当于口语的“如果……那么……如果……那么……”。if 条件语句的多分支结构是工作中最常使用的一种条件判断结构,尽管相对复杂但是更加灵活。

# read 是用来读取用户输入信息的命令,能够把接收到的用户输入信息赋值给后面的指定变量,-p 参数用于向用户显示一定的提示信息
# 执行Shell脚本,并传入用户参数

2)for 循环语句:for 循环语句允许脚本一次性读取多个信息,然后逐一对信息进行操作处理,当要处理的数据有范围时,使用 for 循环语句再适合不过了。

如下示例,从 users.txt 文件循环读取所有的用户名,并把它们创建成系统用户。/dev/null 是一个被称作 Linux 黑洞的文件,把输出信息重定向到这个文件等同于删除数据(类似于没有回收功能的垃圾箱),可以让用户的屏幕窗口保持简洁。

在 Linux 系统中,/etc/passwd 是用来保存用户账户信息的文件。如果想确认这个脚本是否成功创建了用户账户,可以打开这个文件,看其中是否有这些新创建的用户信息。

再示例,从 ipadds.txt 文件中循环读取 IP地址,并判断这些主机是否在线。

3)while 循环语句:hile 条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往往在执行前并不确定最终执行的次数,完全不同于 for 循环语句中有目标、有范围的使用场景。while 循环语句通过判断条件测试的真假来决定是否继续执行命令,若条件为真就继续执行,为假就结束循环。

如下示例猜数字:使用$RANDOM 变量来调取出一个随机的数值(范围为 0~32767),将这个随机数对 1000 进行取余操作,并使用 expr 命令取得其结果,再用这个数值与用户通过 read 命令输入的数值进行比较判断。

echo "商品实际价格为0-999元之间,猜猜看是多少?"

解读:事实上这个程序有一个致命的弱点——它只能接受数字!您可以尝试输入一个字母,会发现脚本立即就崩溃了。原因是字母无法与数字进行大小比较,例如,“a 是否大于等于 3”这样的命题是完全错误的。我们必须有一定的措施来判断用户的输入内容,当用户输入的内容不是数字时,脚本能予以提示,从而免于崩溃。

4)case 条件语句:case 语句是在多个范围内匹配数据,若匹配成功则执行相关命令并结束整个条件测试;而如果数据不在所列出的范围内,则会去执行星号(*)中所定义的默认命令。

echo "您输入的是其它特殊字符"

1)关于运维自动化:经验丰富的系统运维工程师可以使得 Linux 在无需人为介入的情况下,在指定的时间段自动启用或停止某些服务或命令,从而实现运维的自动化。

2)关于计划任务服务程序:设置服务器的计划任务服务,把周期性、规律性的工作交给系统自动完成。计划任务分为一次性计划任务与长期性计划任务。

3)一次性计划任务:一次性计划任务只执行一次,一般用于满足临时的工作需求。我们可以用 at 命令实现这种功能,只需要写成“at 时间”的形式就可以。如果想要查看已设置好但还未执行的一次性计划任务,可以使用“at -l”命令;要想将其删除,可以用“atrm 任务序号”。在使用 at 命令来设置一次性计划任务时,默认采用的是交互式方法。如下示例,我们实现一次性任务——今晚11:30分重启

交互式方式地设置一次性计划任务

非交互方式地设置一次性计划任务

4)周期性计划任务:如果我们希望 Linux 系统能够周期性地、有规律地执行某些具体的任务,那么 Linux 系统中默认启用的 crond 服务简直再适合不过了。创建、编辑计划任务的命令为“crontab -e”,查看当前计划任务的命令为“crontab -l”,删除某条计划任务的命令为“crontab -r”。另外,如果您是以管理员的身份登录的系统,还可以在 crontab 命令中加上-u 参数来编辑他人的计划任务。

第5章:用户身份与文件权限

本章学习内容有用户身份与能力、文件权限与归属、文件的特殊权限、文件的隐藏权限、文件访问控制列表、su命令与sudo服务。

Linux 是一个多用户、多任务的操作系统,具有很好的稳定性与安全性,在幕后保障 Linux系统安全的则是一系列复杂的配置工作。

设计 Linux 系统的初衷之一就是为了满足多个用户同时工作的需求,因此 Linux 系统必须具备很好的安全性。root 管理员就是存在于所有类 UNIX 系统中的超级用户。它拥有最高的系统所有权,能够管理系统的各项功能。

2)关于用户的 UID

Linux 系统的管理员之所以是 root,并不是因为它的名字叫 root,而是因为该用户的身份号码即 UID(User IDentification)的数值为 0。在 Linux 系统中,UID 就相当于我们的身份证号码一样具有唯一性,因此可通过用户的 UID 值来判断用户身份。下图是三种类型的用户的UID类型:

需要注意的是,UID 是不能冲突的,而且管理员创建的普通用户的 UID 默认是从 1000开始的(即使前面有闲置的号码)。

3)关于用户组 和 GID

为了方便管理属于同一组的用户,Linux 系统中还引入了用户组的概念。通过使用用户组号码(GID,Group IDentification),我们可以把多个用户加入到同一个组中,从而方便为组中的用户统一规划权限或指定任务。

另外,在 Linux 系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户组称之为扩展用户组一个用户只有一个基本用户组,但是可以有多个扩展用户组,从而满足日常的工作需要。

2、用户操作(增删改查)

使用 useradd 命令创建用户账户。使用该命令创建用户账户时,默认的用户家目录会被存放在/home 目录中,默认的 Shell 解释器为/bin/bash,而且默认会创建一个与该用户同名的基本用户组。这些默认配置可以通过 useradd 命令的参数进行修改,常用参数如下图示:

2)如何创建新的用户组?

为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把几个用户加入到同一个组里面,这样便可以针对一类用户统一安排权限。如下示例创建一个名为 itwork 的新用户组:

3)如何修改用户的相关属性?

Linux 系统中的一切都是文件,因此在系统中创建用户也就是修改配置文件的过程。用户的信息保存在/etc/passwd 文件中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用 usermod 命令修改用户信息,诸如用户的 UID、基本/扩展用户组、默认终端等。usermod 命令的常用参数如下:

4)如何修改用户的密码?

passwd 命令用于修改用户密码、过期时间、认证信息等。普通用户只能使用 passwd 命令修改自身的系统密码,而 root 管理员则有权限修改其他所有人的密码。更酷的是,root 管理员在 Linux 系统中修改自己或他人的密码时不需要验证旧密码,这一点特别方便。既然 root 管理员可以修改其他用户的密码,就表示完全拥有该用户的管理权限。其常用参数如下表:

5)如何 锁定 / 解锁 某个用户?

6)如何删除一个用户?

如果我们确认某位用户后续不再会登录到系统中,则可以通过 userdel 命令删除该用户的所有信息。在执行删除操作时,该用户的家目录默认会保留下来,此时可以使用-r 参数将其删除。

3、文件权限 与 文件归属

1)Linux中的文件类型哪几种?

在 Linux 系统中一切都是文件,但是每个文件的类型不尽相同。Linux 系统使用了不同的字符来区分这些不同类型的文件:

2)什么是文件的 rwx 权限?什么是文件权限的数字表示法?

在 Linux 系统中,每个文件都有所属的所有者所有组,并且规定了文件的所有者所有组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。Linux 系统的文件权限相当复杂,但是用途很广泛,非常重要。

对一般文件来讲:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。

对目录文件来讲:“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;而“可执行”则表示能够进入该目录。

读(r)、写(w)、执行(x)权限又可以分别用数字 4、2、1 来表示。即如下图所示:

文件权限的数字法表示基于字符表示(rwx)的权限计算而来,其目的是简化权限的表示。举几个例子如下:

1、若某个文件的权限为 7 ,则代表可读、可写、可执行(4+2+1);
2、若权限为 6 ,则代表可读、可写(4+2)。
3、若某个文件,其所有者拥有可读、可写、可执行的权限,其所属组拥有可读、可写的权限;但其他人只有可读的权限。那么,这个文件的权限就是 rwxrw-r--,数字法表示即为 764。

3)如何解读下图中这个文件的文件属性?

解读:该文件的类型为普通文件,所有者权限为可读、可写(rw-),所属组权限为可读(r--),除此以外的其他人也只有可读权限(r--),文件的磁盘占用大小是 34298 字节,最近一次的修改时间为 4 月 2 日的凌晨 23 分,文件的名称为 install.log。

1)什么是文件的特殊权限?特殊权限有什么用?

在复杂多变的生产环境中,单纯设置文件的 rwx 权限无法满足我们对安全和灵活性的需求,因此便有了SUID、SGID 与 SBIT 这样的特殊权限。这是一种对文件权限进行设置的特殊功能,可以与一般权限 rwx 同时使用,以弥补一般权限不能实现的功能。

SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。

Linux 系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏起来的权限,默认情况下不能直接被用户发觉。

chattr 命令用于设置文件的隐藏权限。lsattr 命令用于查看文件的隐藏权限。

5、文件的访问控制列表(ACL)

上述讲到的文件的一般权限、特殊权限、隐藏权限,都是针对一组一类用户的。如果希望对某个指定的用户进行单独的权限控制,这需要用到文件的访问控制列表(ACL)了。

解读ACL:通俗来讲,基于普通文件或目录设置 ACL 其实就是针对指定的用户或用户组设置文件或目录的操作权限。另外,如果针对某个目录设置了 ACL,则目录中的文件会继承其 ACL;若针对文件设置了 ACL,则文件不再继承其所在目录的ACL。如下示例,使用普通用户访问 /root ,默认情况下会被拒绝:

1)如何给文件添加 ACL 访问控制列表权限?

使用 setfacl 命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。其中,针对目录文件需要使用-R 递归参数;针对普通文件则使用-m 参数;如果想要删除某个文件的 ACL,则可以使用-b 参数。如下示例,我们让 geekxia 用户拥有访问 /root 目录的权限:

2)如何判断一个文件是否添加了 ACL 权限?

查看文件的 ACL 权限

除了通过上述方式来辨别文件是否已经添加过 ACL 权限以外,还可以使用 getfacl 命令来查看文件的 ACL 详细信息:

查看文件的 ACL 权限

在生产环境中还是要对安全多一份敬畏之心,不要用 root管理员去做所有事情。因为一旦执行了错误的命令,可能会直接导致系统崩溃,这样一来,不但客户指责、领导批评,没准奖金也会鸡飞蛋打。

尽管 Linux 系统为了安全性考虑,使得许多系统命令和服务只能被root管理员来使用,但是这也让普通用户受到了更多的权限束缚,从而导致无法顺利完成特定的工作任务。su 命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户。

1)如何在不退出登录的前提下切换用户?

注意:su 命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-)

2)什么是 sudo 服务?为什么要使用 sudo 服务?

把 root 密码公开给普通用户,这并不是最安全的文案。我们可以使用 sudo 命令,把特定的执行权限赋予给指定用户。这样既可保证普通用户能够完成特定的工作,也可以避免泄露 root 管理员密码。我们要做的就是合理配置 sudo 服务,以便兼顾系统的安全性和用户的便捷性。sudo 服务的配置原则也很简单——在保证普通用户完成相应工作的前提下,尽可能少地赋予额外的权限

如果担心直接修改配置文件会出现问题,则可以使用 sudo 命令提供的 visudo 命令来配置用户权限。这条命令在配置用户权限时将禁止多个用户同时修改 /etc/sudoers 配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。

第6章:存储结构与磁盘划分

本章学习内容有:一切从“ / ”开始,物理设备的命名规则,文件系统与数据资料,挂载硬件设备,添加硬件设备,添加SWAP交换分区,磁盘容量配额,软链接与硬链接。

1、一切从“ / ”开始,一切都是文件

在 Linux 系统中,目录、字符设备、块设备、套接字、打印机等都被抽象成了文件,即一切都是文件。既然平时我们打交道的都是文件,那么又应该如何找到它们呢?Linux 遵从文件系统层次化标准(FHS)采用了树形结构来存放文件,并定义了常见目录的核心用途。另外,Linux系统中的文件和目录名称是严格区分大小写的。例如,root、rOOt、Root、rooT 均代表不同的目录,并且文件名称中不得包含斜杠(/)。Linux 系统中的文件存储结构如下图所示:

注:FHS 是根据以往无数 Linux 系统用户和开发者的经验而总结出来的,是用户在 Linux 系统中存储文件时需要遵守的规则,用于指导我们应该把文件保存到什么位置,以及告诉用户应该在何处找到所需的文件。FHS 对于用户来讲只能算是一种道德上的约束。

2、物理设备的命名规则

在 Linux 系统中一切都是文件,硬件设备也不例外。既然是文件,就必须有文件名称。系统内核中的 udev 设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大致的属性以及分区信息等。

1)什么是 udev 服务?硬件设备的命名规则是怎样的?

udev设备管理器的服务会一直以守护进程的形式运行,并侦听内核发出的信号来管理/dev目录下的设备文件。Linux中常用硬件设备的名称如下:

2)硬件中的硬盘,又遵从怎样的命名规则?

硬盘以 “/dev/sd”开头,而一台主机上可以有多块硬盘,因此系统采用 a~p 来代表 16 块不同的硬盘(默认从 a 开始分配)。单块硬盘的主分区扩展分区的编号从 1 开始,到 4 结束;逻辑分区从编号 5 开始。因此硬盘的命名规则如下图所示:

解读:/dev/sdb8”表示的就是“这是系统中第二块被识别到的硬件设备中分区编号为 8 的逻辑分区的设备文件”。

3、文件系统与数据资料

用户在硬件存储设备中执行的文件建立、写入、读取、修改、转存与控制等操作都是依靠文件系统来完成的。文件系统的作用是合理规划硬盘,以保证用户正常的使用需求。

1)Linux支持哪些常见的文件系统?什么是 XFS ?

2)什么是 VFS 虚拟文件系统?

计算机系统在发展过程中产生了众多的文件系统,为了使用户在读取或写入文件时不用关心底层的硬盘结构,Linux 内核中的软件层为用户程序提供了一个VFS(Virtual File System,虚拟文件系统)接口,这样用户实际上在操作文件时就是统一对这个虚拟文件系统进行操作了。

在 Linux 系统中挂载和卸载存储设备的方法,以便大家更好地了解 Linux 系统添加硬件设备的工作原理和流程。在拿到一块全新的硬盘存储设备后要先分区,然后格式化,最后才能挂载并正常使用。“分区”和“格式化”大家以前经常听到,但“挂载”又是什么呢?

当用户需要使用硬盘设备或分区中的数据时,需要先将其与一个已存在的目录文件进行关联,而这个关联动作就是“挂载”。

挂载是在使用硬件设备前所执行的最后一步操作。只需使用 mount 命令把硬盘设备或分区与一个目录文件进行关联,然后就能在这个目录中看到硬件设备中的数据了。

注:这种挂载方式,在系统重启后就失效了。

3)如何让“挂载”永久生效?即使重启了系统仍然有效?

要想让“挂载”永久生效,就要在 /etc/fstab 文件中进行编辑配置。

umount 命令用于撤销已经挂载的设备文件。挂载文件系统的目的是为了使用硬件资源,而卸载文件系统就意味不再使用硬件的设备资源。

5、添加硬盘设备(手动硬盘分区、格式化、挂载)

添加硬盘设备的操作思路:首先需要在虚拟机中模拟添加入一块新的硬盘存储设备,然后再进行分区、格式化、挂载等操作,最后通过检查系统的挂载状态并真实地使用硬盘来验证硬盘设备是否成功添加。

1)如何管理硬盘设备?

在 Linux 系统中,管理硬盘设备最常用的方法就当属 fdisk 命令了。fdisk 命令用于管理磁盘分区,格式为“fdisk [磁盘名称]”,它提供了集添加、删除、转换分区等功能于一身的“一站式分区服务”。注:fdisk命令是交互式的命令。

如下示例,使用 fdisk 命令管理 /dev/sda 硬盘,并删除第2个主分区:

使用 fdisk 命令管理硬盘

2)如何手动地完成硬盘分区?

手动地完成硬盘分区后,可以使用 file 命令查看分区文件的属性。有些时候系统并没有自动把分区信息同步给 Linux 内核,这时需要输入 partprobe 命令手动将分区信息同步到内核,而且一般推荐连续两次执行该命令,效果会更好。

手动将分区信息同步到内核

3)完成手动分区操作后,如何对硬盘进行格式化?

如果硬件存储设备没有进行格式化,则 Linux 系统无法得知怎么在其上写入数据。因此,在对存储设备进行分区后还需要进行格式化操作。在 Linux 系统中用于格式化操作的命令是mkfs。

4)完成硬盘分区的格式化后,执行最后一步——挂载操作。

完成了存储设备的分区和格式化操作,接下来就是要来挂载并使用存储设备了。首先创建一个用于挂载设备的挂载点目录;然后使用 mount 命令将存储设备与挂载点进行关联;最后使用 df -h 命令来查看挂载状态和硬盘使用量信息。

5)使用 du 命令查看挂载点目录占用多大的硬盘空间?

du命令用来查看一个或多个文件占用了多大的硬盘空间。我们还可以使用 du -sh /*命令来查看在 Linux 系统根目录下所有一级目录分别占用的空间大小。

1)什么是交换分区?它有什么用?

SWAP(交换分区)是一种通过在硬盘中预先划分一定的空间,然后将把内存中暂时不常用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设计目的是为了解决真实物理内存不足的问题。但由于交换分区毕竟是通过硬盘设备读写数据的,速度肯定要比物理内存慢,所以只有当真实的物理内存耗尽后才会调用交换分区中的资源。

交换分区的划分建议:在生产环境中,交换分区的大小一般为真实物理内存的 1.5~2 倍。

2)创建一个硬盘分区(稍后用于SWAP交换分区)

3)使用SWAP分区专用的格式化命令 mkswap ,对上一步中新建的硬盘分区进行格式化。

4)使用 swapon 命令把上述格式化后的 SWAP 分区挂载到Linux系统中去,并使用 free -m 命令查看挂载前后 SWAP 空间大小的变化情况。

5)上述步骤的挂载在系统重启后将会失效。若想永久生效,请在 /etc/fstab 文件中进行配置。

1)什么是磁盘容量配额?为什么需要磁盘容量配额?

Linux 系统的设计初衷就是让许多人一起使用并执行各自的任务,从而成为多用户、多任务的操作系统。但是,硬件资源是固定且有限的,如果某些用户不断地在 Linux 系统上创建文件或者存放电影,硬盘空间总有一天会被占满。

鉴于这种情况,root 管理员就需要使用磁盘容量配额服务来限制某位用户或某个用户组针对特定文件夹可以使用的最大硬盘空间或最大文件个数,一旦达到这个最大值就不再允许继续使用。

2)如何实现磁盘容量配额?

使用 quota 命令进行磁盘容量配额管理,从而限制用户的硬盘可用容量或所能创建的最大文件个数。quota命令还有软限制和硬限制的功能。

如下示例,我们对 /boot 目标进行磁盘容量配额,配置如下:

3)重启系统,然后使用 mount 命令查看“磁盘容量配额”是否成功?

xfs_quota命令是一个专门针对XFS文件系统来管理 quota 磁盘容量配额服务而设计的命令。如下示例,针对geekxia用户,让 /boot 目录使用量的软限制和硬限制分别为 3MB 和 6MB;创建文件数量的软限制和硬限制分别为 3 个和 6 个。

edquota 命令用于编辑用户的 quota 磁盘容量配额限制。在为用户设置了 quota 磁盘容量配额限制后,可以使用 edquota 命令按需修改限额的数值。其中,-u 参数表示要针对哪个用户进行设置;-g 参数表示要针对哪个用户组进行设置。如下示例,修改 geekxia 用户的磁盘配额限制:

8、软链接 与 硬链接

1)Linux 中有两种“快捷方式”,分别是硬链接和软连接两种文件。

2)使用 ln 命令创建链接文件

ln 命令用于创建链接文件,-s 参数决定着链接文件的类型。

3)如何创建软链接文件?

4)如何创建硬链接文件?


我要回帖

更多关于 怎样让win10开机变快 的文章

 

随机推荐