Linux

第一章: 初始Linux发展历程

  • Linux 是在GPL版权协议下发布的

  • 遵循POSIX标准的操作系统内核

  • 其版权属于Linus Torvalds

  • Linux是指GNUL/Linux操作系统,它包含kernel(内核)、Utilities(系统工具程序)以及Application(应用软件) 而不是仅指Linux系统内核

  • 什么是发行版?

    • 发行版是指某些公司、组织或个人把Linux内核、源代码以及相关的应用程序组织在一起发行。

在这里插入图片描述

LinuxUNIX的“克隆”

	由于Linux倡导开放和自由,所以它的发行版本十分多。

在这里插入图片描述

  • Linux是由谁编写的?

    最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的

  • Linux vs Windows

    在这里插入图片描述

第二章: 图形界面与命令行

1. Linux图形化管理系统组成部分

(1)X Window系统

(2)KDE、GNOME或其他桌面环境(如XFCE等)

2. 什么是 X Window 系统

X Window是一套基于“服务器/客户端”架构的视窗系统

于1984年在麻省理工学院(MIT)计算机科学研究室开发

目前,它是UNIX及类UNIX系统中最流行的视窗系统,并可用于几乎所有的现代操作系统。

X WindoxGUI环境提供了基本的框架:在屏幕上绘图和移动窗口,以及与鼠标和键盘的互动

X Window系统不是一个软件,而是一个协议

3. X Window组成

由服务器(Server)、客户端(Client)和通信协议(X protocol)三部分组成

4. 什么是KDE桌面

KDE(K Desktop Environment),即K桌面环境,由德国人Mathias Ettrich于1996年10月创建

KDE主要包含以下应用程序。
(1)Konqueror(档案管理与网页浏览器)
(2)amaroK(音乐播放器)
(3)Gwenview(图像浏览器)
(4)Kaffeine(媒体播放器)
(5)Kate(文本编辑器)
(6)Kopete(即时通讯软件)
(7)KOffice(办公软件套件)
(8)Kontact(个人信息管理软件)
(9)KMail(电子邮件客户端)
(10)Konsole(终端模拟器)
(11)K3B(光盘烧录软件(确认表述是否正确))
(12)KDevelop(集成开发环境)

5. 什么是GNOME桌面

GNOME(GNU Network Object Model Environment, GNU网络对象模型环境)计划于1997年8月由Miguel de lcazaFederico Mena发起,目的是取代KDE

GNOME的兴起很大程度上是因为KDE中使用的----Qt链接库最初并未采用开源协议,限制了其应用

GNOMEGNU计划的正式桌面,也是开发代码运动的一个重要组成部分

GNOME下的主要应用程序如下。
(1)Abiword(文字处理器)
(2)Epiphany(网页浏览器)
(3)Evolution(联系/安排和E-mail管理)
(4)Gaim(即时通讯软件)
(5)gedit(文本编辑器)
(6)The Gimp(高级图像编辑器)
(7)Gnumeric(电子表格软件)
(8)GnomeMeeting(IP电话或者电话软件)
(9)Inkscape(矢量绘图软件)
(10)Nautilus(文件管理器)
(11)Rhythmbox(类型Apple iTunes的音乐管理软件)
(12)Totem(媒体播放器)

6. Red Hat Linux 下的桌面环境

Red Hat的修改使图标、菜单、面板和许多系统工具在这两个不同的桌面环境中看起来是一致的GNOMEKDE等常见Linux桌面环境,在操作上和Windows基本类似

7. 认识Linux Shell

Shell就是系统的用户界面,提供了用户与内核进行交互操作的一种接口

​ Windows XP中的 Shell为命令行提示符CMD和窗口管理器Explorer

目前,Linux下可用的Shell也有很多种:
如Bourne Shell、C Shell、Korn Shell、POSIX Shell以及Bourne Again Shell等

8. 登录终端控制台

方式两种

一种是在桌面系统中使用终端仿真器:另一种是直接在字符界面登录终端

  1. 使用GNOME终端仿真器

    启动终端控制台

    快捷菜单在终端中打开

  2. 直接登录字符界面

    如果图形界面属于未开启状态(例如直接登录字符界面,或退出了图形界面),则需要首先输入命令“startx”启动“X Windox”

    如果需要改变Red Hat Linux 默认的启动方式,则需要修改/etc/inittab

9. 使用Linux控制台

​ Linux 的bash 相当智能化,可以使用键的自动补齐功能,将部分命令补充完整

​ bash还具备完善的历史记录功能

提示符样式

10. 在控制台里使用帮助——man命令

man 命令用于查看Linux系统的手册,是Linux中使用最为广泛的帮助形式。

其中不仅包含了常用命令的帮助说明,还包括配置文件、设备文件、协议和库函数等多种信息

man命令的基本格式如下:

man[-acdfhkKtwW][-msystem][-pstring][-Cconfig_file][-Mpath][-Ppager][-Ssection_lis-t][section]name...

11. 在控制台里使用帮助——info命令及其他

info文档是Linux系统提供的另一种格式的文档。

info命令支持文件的链接跳转,使用方向键在显示的帮助文档中选择需要进一步查看的文件名,回车后被选中的文件会自动打开。与man手册相比,info文档具有更强的交互性。

info命令的基本格式如下:

info cmd_name

12. 使用Linux的注意事项

通常不建议直接登录root账号。因为root账号拥有最高的系统控制权,稍有不慎则可能完全破坏整个Linux系统

如果确实需要root权限执行某些操作,可以使用su和sudo命令执行

第三章: 文件管理与常用命令

一. Linux 文件基础知识

1. Linux常见文件类型

  1. 在Linux系统上,任何软件和I/O设备都被视为文件。

  2. Linux中的文件名最大支持256个字符,分别可以用A-Z、a-z、0-9等字符来命名。

  3. 和Windows不同,Linux中文件名是区分大小写的,所有的UNIX系列操作系统都遵循这个规律。

  4. Linux下也没有盘符的概念(如Windows下的C盘、D盘),而只有目录,不同的硬盘分区是被挂载在不同目录下的。

    Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其更目录,如下图:

    在这里插入图片描述

  5. Linux的文件没有扩展名,所以Linux下的文件名称和它的种类没有任何关系。例如,abc.exe可以是文本文件,而abc.txt也可以是可执行文件。

  6. Linux下的文件可以分为5种不同的类型:

    普通文件、目录文件、链接文件、设备文件和管理文件

2. Linux目录结构概述

Linux系统以文件目录的方式来组织和管理系统中的所有文件

——所谓文件目录就是将所有文件的说明信息采用树型结构组织起来

——【目录也是一种类型的文件】各个目录结点之下都会有一些文件和子目录

3. Linux目录常见概念

  1. 路径

    路径是指从树型目录中的某个目录层次到某个文件的一条路径。

  2. 根目录

​ Linux的根目录(/)是Linux系统中最特殊目录。

  1. 用户主目录

    是系统管理员增加用户时建立起来的(以后也可以根据实际情况改变),每个用户都有自己的主目录,不同用户的主目录一般互不相同。

  2. 工作目录

    用户登录Linux系统之后,每时每刻都处在某个目录之中,此目录被称作工作目录或当前目录

4. Linux 系统目录及说明

目录
/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。
/etc存放系统管理和配置文件
/home存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/usr用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。
/usr/x11r6 存放x window的目录
/usr/bin 众多的应用程序
/usr/sbin 超级用户的一些管理程序
/usr/doc linux文档
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/man 帮助文档
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库
/opt额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。
/proc虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/root超级用户(系统管理员)的主目录(特权阶级o
/sbin存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。
/dev用于存放设备文件。
/mnt系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。
/boot存放用于系统引导时使用的各种文件
/lib存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件
/tmp用于存放各种临时文件,是公用的临时文件存储点。
/var用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。
/lost+found这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里

参考: Linux各目录及每个目录的详细介绍

二. 文件与目录基本操作

1. 显示文件内容命令 cat , more , less , head , tail

1.1 cat 命令

作用:
cat查看文件内容    (是以只读的方式打开)
 
基本语法:
cat [选项] 要查看的文件
 
常用选项:
-n    显示行号

在这里插入图片描述

1.2 more命令

作用:
more指令是一个基于VI编辑器的文本过滤器
它以全屏的方式按页显示文本文件内容
more指令中内置了若干快捷键,详见操作说明
 
 
 
基本语法:
more要查看的文件

快捷键一览表
在这里插入图片描述

1.3 less命令

作用:
less指令用来分屏查看文件内容
它的功能与more指令相似,但是比more指令更加强大——支持各种显示终端
less指令在显示文件内容时,并不是一次性将整个文件加载之后才显示
而是,根据显示需要加载内容
——对于显示大型文件具有较高的效率
 
 
 
基本语法:
less 要查看的文件

快捷键一览表

在这里插入图片描述

1.4 head命令

作用:
head用于显示文件的开头部分内容
默认情况下head指令显示文件的前10行内容
 
 
基本语法:
head文件    (功能描述:查看文件头10行内容)
head -n 5 文件    (功能描述:查看文件头5行内容,5可以是任意数)

在这里插入图片描述
1.5 tail命令

作用:
tail用于输出文件中尾部内容
默认情况下tail指令显示文件的后10行内容
 
 
基本语法:
tail 文件        (功能描述:查看文件后10行内容)
tail -n 5 文件    (功能描述:查看文件后5行内容,5可以是任意行数)
tail -f 文件        (功能描述:实时追踪该文件的所有更新——工作中经常使用)

在这里插入图片描述

2. 文件内容查找命令 grep , egrep , fgrep

指定的查找模式搜索文件,通知用户在什么文件中搜索到与指定的模式匹配的字符串,
并且打印出所有包含该字符串的文本行,该文本行的最前面是该行所在的文件名

这组命令在搜索与定位文件中特定的主题和关键词方面非常有效
可以用其来搜索文件中包含的这些关键词
 
grep命令
一次只能搜索一个指定的模式;
 
egrep命令
检索扩展的正则表达式(包括表达式组和可选项);
 
fgrep命令
检索固定字符串,并不识别正则表达式,是一种更为快速的搜索命令
 
——总的来说,grep命令的搜索功能比fgrep强大
因为grep命令的搜索模式可以是正则表达式,而fgrep却不能

该组命令的常用格式如下:
 
grep [option] [search pattern] [file1, file2,……]
 
erep [option] [search pattern] [file1, file2,……]
 
frep [option] [search pattern] [file1, file2,……]

3. 文件查找命令 find , locate , grep , |

  1. find从指定目录向下递归遍历其各子子目录指令

    作用:
    find指令将从指定目录向下递归遍历其各个子目录
    将满足条件的文件或者目录显示在终端
     
     
    基本语法:
    find [搜素范围] [选项]
    

    选项说明
    在这里插入图片描述

​ 案例:

在这里插入图片描述

  1. locate快速定位文件路径指令

    作用:
    locate指令快速定位文件路径
    locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件
    locate指令无需遍历整个文件系统,查询速度较快
    为了保证查询结果的准确度,管理员必须定期更新locate时刻
     
    基本语法:
    locate 收索文件
     
    特别说明:
    由于locate指令基于数据库进行查询
    所以第一次运行前,必须使用updatedb指令创建locate数据库
    

案例

在这里插入图片描述

  1. grep过滤查找指令和管道符号|
作用:
grep        过滤查找
|            管道符
            表示将前一个命令的处理结果输出传递给后面的命令处理
 
 
基本语法:
grep [选项] 查找内容 源文件
 
 
 
常用选项:
-n        显示匹配行及行号
-i        忽略字母大小写

案例:

在这里插入图片描述

4. 文本处理命令 sort , uniq

4.1 sort命令

对文件中的各行进行排序
该命令将逐行地对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符
sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的
 
可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件
 
默认情况下,以整行为关键字按ASCII字符顺序进行排序。
 
sort命令的常用格式如下:
sort [option] filename

4.2 uniq命令

用uniq命令将这些重复行从输出文件中删除,只留下每条记录的唯一样本
 
 
常用格式如下:
uniq [option] filename

5. 文件内容统计命令 wc

统计给定文件中的字节数、字数、行数
 
如果没有给出文件名,则从标准输入读取
 
wc同时也给出所有指定文件的总统计数
 
字是由空格字符区分开的最大字符串
 
 
常用格式如下:
wc [option] filename

6. 文件比较命令 comm , diff

6.1 comm命令

该命令是对两个已经排好序的文件进行比较
 
 
comm读取这两个文件,然后生成三列输出:
仅在file1中出现的行;
仅在file2中出现的行;
在两个文件中都存在的行。
 
如果文件名用“-”,则表示从标准输入读取
 
 
 
常用格式如下:
comm [option] filename

6.2 diff命令

功能为逐行比较两个文本文件,列出其不同之处
 
 
它对给出的文件进行系统地检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序
 
 
 
常用格式如下:
diff [option] file1 file2
diff [option] dir1 dir2

7. 文件的复制、移动和删除、创建命令 cp , mv , rm,touch

7.1 cp命令

作用:
cp指令拷贝文件到指定目录
基本语法:
cp [选项] source dest
常用选项:
-r    递归复制整个文件夹

在这里插入图片描述

注意:一定要注意你当前的目录位置,然后要准确的定位源目录和目标目录

在这里插入图片描述

强制覆盖相同文件

在这里插入图片描述

7.2 rm命令 移除文件或目录指令

作用:
rm指令移除文件或目录
    
基本语法:
rm [选项] 要删除的文件或目录
    
常用选项:
-r    递归删除整个文件夹
-f    强制删除不提示

案例

在这里插入图片描述

7.3 mv命令 移动文件与目录或重命名

作用:
mv移动文件与目录或重命名
 
 
 
基本语法:
mv oldNameFile newNameFile (功能描述:重命名)
mv/temp/movefile/targetFolder    (功能描述:移动文件)

案例

在这里插入图片描述

7.4 touch创建空文件指令

作用:
touch指令创建空文件
 
 
基本语法:
touch 文件名称

在这里插入图片描述

8. 文件链接命令 ln

符号链接

创建一个文件,并输入内容

[root@localhost disk4]# echo 123 > /file00
[root@localhost disk4]# cat /file00
123								硬		软
[root@localhost disk4]# ln -s /file00 /tmp/file11   #创建软连接
[root@localhost disk4]# cat /tmp/file11
123
[root@localhost disk4]# rm -rf /file00 删除硬连接,软连接不复存在  
[root@localhost disk4]# cat /tmp/file11
cat: /tmp/file11: 没有那个文件或目录
#可以对源文件进行追加,软链接文件也有追加内容

硬链接(可以理解为文件备份)

[root@localhost disk4]# echo 222 >/file2
[root@localhost disk4]# cat /file2
222
[root@localhost disk4]# ln /file2 /tmp/file-h1
[root@localhost disk4]# cat /tmp/file-h1
222
[root@localhost disk4]# rm -rf /file2
[root@localhost disk4]# cat /tmp/file-h1
222
#把源文件删除,硬链接文件还存在原有数据

9. 目录的创建与删除命令 mkdir , rmdir

9.1 mkdir命令

作用:
mkdir指令用于创建目录
 
 
基本语法:
mkdir [选项] 要创建的目录
 
 
常用选项:
-p    创建多级目录

案例:

在这里插入图片描述

9.2 rmdir命令

基本语法:
 
rmdir [选项] 要删除的空目录
 
 
 
使用细节:
rmdir删除的是空目录
如果目录下有内容时,时无法删除的
 
 
 
提示:
如果需要删除非空目录,需要使用以下命令
rm -rf 要删除的目录

案例:

在这里插入图片描述

10. 改变工作目录、显示路径以及目录内容命令 cd , pwd , ls

10.1 cd命令

基本语法:
 
cd [参数] (功能描述:切换到指定目录)
 
 
 
常用参数:
    绝对路径和相对路径
 cd~或者cd:    回到自己的家目录
 cd..          回到当前目录的上一级目录

10.2 pwd命令

基本语法:
 
pwd (功能描述:显示当前工作目录的绝对路径)

在这里插入图片描述

10.3 ls命令

基本语法:
 
ls [选项] [目录或是文件]
 
 
 
常用选项:
-a:显示当前目录所有的文件和目录,包括隐藏的
 
-l:以列表的方式显示信息

在这里插入图片描述

三. 文件/目录访问权限管理

Linux系统中的每个文件和目录都有访问许可权限
 
通过其确定何种用户/用户组可以通过何种方式对文件和目录进行访问和操作

1. 文件/目录访问权限简介

分为三种:只读、只写、可执行
 
有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户
 
每一个文件或目录的访问权限都有三组,每组用三位表示,分别为:
文件属主的读、写和执行权限;
与属主同组的用户的读、写和执行权限;
系统中其他用户的读、写和执行权限。

2. 改变文件/目录的访问权限 chmod 命令

改变文件或目录的访问权限,它是一条非常重要的系统命令
用户可用其控制文件或目录的访问权限
 
该命令有两种用法:
一种是包含字母和操作符表达式的文字设定法;
另一种是包含数字的数字设定法

2.1 文字设定法

一般使用形式如下:
chmod [who] [+|-|=] [mode] filename

2.2 数字设定法

比文字设定法更加简洁
 
 
数字设定法用3个二进制位来表示文件权限:【设定好后将其换算为十进制数即可】
第一位表示r权限(可读),
第二位表示w权限(可写),
第三位表示x权限(对于文件而言为可执行,对于文件夹而言为可枚举)
 
 
 
也可以直接用十进制数计算:
0表示没有权限,
1表示x权限,
2表示w权限,
4表示r权限,
然后将其相加
 
数字属性的格式应为3个从07的八进制数——其顺序是(u)、(g)、(o)
 
 
如果想让某个文件的属主有“读/写”二种权限,须要把4(可读)+2(可写)=6(读/写)
一般使用形式如下:
chmod [mode] filename

3. 更改文件/目录的默认权限 umask命令

登录系统之后,创建文件或文件夹有一个默认权限的
 
umask命令则用于显示和设置用户创建文件的默认权限
 
 
当使用不带参数的umask命令时,系统会输出当前umask的值
代码如下所示:
[root@localhost root]# umask
0022

4. 更改文件/目录的所有权 chown命令

chown命令用来更改某个文件或目录的属主和属组
 
 
常用格式如下:
chown [option] [user|group] filename

四. 文件/目录的打包和压缩

打包

tar命令本是用于备份文件的命令,该命令可以打包多个文件或目录,亦可将被打包的文件与目录中包中还原。

命令格式 tar 选项 包名 [参数]

选项:
-c	创建新的备份文件
-x	从备份文件中还原文件
-v	显示命令执行过程
-f	指定备份文件
-z	通打包完成后使用gzip命令将包压缩
-j	打包完成后使用bzip2命令将包压缩
-p	保留包中文件原来的属性

用法:
# 将目录test下的文件打包
$ tar -cvf test.tar./test

# 将目录test下的文件打包,并以gzip命令将包压缩
$ tar -zcvf test.tar.gz./test

# 将目录test下的文件打包,并以bzip2命令将包压缩
$ tar -jcvf test.tar.bz2  ./test

#从包test.tar.bz2中还原文件
$ tar  -xvf  test.tar.bz2
    

打包:zcvf
解压:zxvf

压缩和解压

  1. zip/unzip命令

    使用zip命令压缩文件时压缩包一般命名为“文件名.zip”zip [选项] 压缩包名 参数

    选项:
    -j	只保留文件名称及其内容,不存放任何目录名称
    -m	文件压缩完成后,删除原始文件
    -o	以压缩文件内拥有最新更改时间的文件为准,更新压缩文件的更改时间
    -r	当参数为目录时,递归处理目录下的所有文件和子目录
    
    $ zip -r dir1.zip dir1
    注意:不能在当前目录压缩该目录
    

    使用unzip命令解压unzip [选项] 压缩包名

    选项:
    -l	显示指定压缩包中所包含的文件
    -M 	将输出结果送到more程序处理
    -n	解压时不要覆盖原文件
    -o	命令执行后直接覆盖原有文件
    -d	指定解压后文件要存放的目录,不存在时可自动创建目录,默认解压在当前目录
    
  2. 使用tar命令压缩tar [选项] [压缩包名] [源文件]

    [root@localhost ~]# tar  -cf   etc.tar         /etc
    # c:creat      f:file	     压缩后的文件名     所压缩的文件
    [root@localhost ~]# tar -czf etc-gz.tar.gz /etc   #使用z压缩工具压缩
    [root@localhost ~]# ls -lh |grep etc		#压缩对比
    -rw-r--r--. 1 root root  12M 627 23:54 etc-gz.tar.gz
    -rw-r--r--. 1 root root  38M 627 23:45 etc.tar
    [root@localhost ~]# tar -xf etc.tar     解压
    
    压缩类型分析(了解)
    [root@localhost ~]# tar -cf etc.tar /etc
    [root@localhost ~]# tar -czf etc.gz /etc
    [root@localhost ~]# tar -cjf etc.bz /etc
    [root@localhost ~]# tar -cJf etc.xz /etc
    压缩时间由上到下越来越长,压缩程度越来越狠
    [root@localhost ~]# ls -lh |grep etc
    -rw-r--r--. 1 root root  11M 628 00:18 etc.bz
    -rw-r--r--. 1 root root  12M 628 00:17 etc.gz
    -rw-r--r--. 1 root root  38M 628 00:17 etc.tar
    -rw-r--r--. 1 root root 8.3M 628 00:19 etc.xz
    
    

10. >输出重定向和 >> 追加指令

第四章 Vi和Vim编译器及常用命令

一, 介绍

在这里插入图片描述

二. Vi和Vim常用的三种模式

插入模式和替换模式【合称为编译模式】:键盘输入的才是字符

在这里插入图片描述

  1. 命令行模式/一般模式/正常模式

    用户刚刚启动Vi/Vim,便进入了命令模式,任何键盘输入都是命令

    在这里插入图片描述

  2. 插入模式/编译模式/输入模式
    在这里插入图片描述

  3. 命令行模式/底线命令模式

    在这里插入图片描述

三. Vi 和 Vim模式的相互转换

在这里插入图片描述

四. Vi和Vim的快捷键

引言:

特别注意,在 vi/vim 中,数字是很有意义的!

数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思在这里插入图片描述

第一部分: 一般模式可用的光标移动、复制粘贴、搜索替换等
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

第二部分:编辑模式的可用的按钮说明

在这里插入图片描述

第三部分:一般模式切换到指令行模式的可用的按钮说明

在这里插入图片描述

在这里插入图片描述

五. Vi和Vim快捷键一览表

在这里插入图片描述

第五章:linux的开机/关机/用户登录注销

一: 关机/重启命令(shutdown)

在这里插入图片描述

二:用户的登录和注销

  1. 基本介绍

    在这里插入图片描述

  2. 使用细节

    logout注销命令在图形运行级别无效,在运行级别3下有效

第六章:用户管理

一:基本介绍

在这里插入图片描述

二:添加用户

基本语法: useradd [选项] 用户名

在这里插入图片描述

1.当创建用户成功后,会自动创建和用户同名的家目录
2.也可以通过:
useradd -d 指定目录 新的用户名
给新创建的用户指定家目录

在这里插入图片描述

三:指定/修改密码

基本语法: passwd 用户名

1.当你输入密码时看不到:这是正常的,系统设置密文
2.在工作中,密码必须写复杂

在这里插入图片描述

四:删除用户

基本语法: userdel 用户名

1. 删除用户,但要保留家目录

userdel 用户名

2. 删除用户,以及删除目录主目录

userdel -r 用户名

在这里插入图片描述

3. 在删除用户时,我们一般不会将家目录删除

五:查询用户信息

基本语法: id 用户名

在这里插入图片描述

六:切换用户

基本语法:
 
su - 用户名
 
 
1.权限高的用户切换到权限低的用户,不需要输入密码,反之需要
2.当需要返回到原来的用户时,使用exit命令

注意中间是空格

exit命令
重新回到原来的用户

在这里插入图片描述

七:查看当前用户/登录用户

基本语法: whoami

在这里插入图片描述

八:用户组

1. 介绍

类似于角色,系统可能对有共性的多个用户进行统一的管理类似

2. 增加组

指令:
 
groupadd 组名

3. 增加用户时直接加上组

指令(基本语法):
 
useradd -g 用户组 用户名

在这里插入图片描述

4. 删除组

指令(基本语法):
 
groupdel 组名   

5. 修改用户组

指令(基本语法):
 
usermod -g 用户组 用户名

在这里插入图片描述

九:用户和组的相关文件

在这里插入图片描述

1. /etc/passwd文件

在这里插入图片描述

2. /etc/shadow文件

在这里插入图片描述

3. /etc/group文件

在这里插入图片描述

十:组的管理

1. Linux组的基本介绍

在这里插入图片描述

图示

在这里插入图片描述

2. 文件/目录的所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

2.1查看文件的所有者

2.1.1 指令

ls -ahl

2.1.2 案例

在这里插入图片描述

2.2 修改文件所有者

2.2.1 指令

chown 用户名 文件名

2.2.2 案例

在这里插入图片描述
在这里插入图片描述

3. 组的创建

3.1 基本指令

groupadd 组名

3.2 案例

在这里插入图片描述

4. 文件/目录所在组

当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。

4.1 查看文件/目录的所在组

基本指令 ls -ahl

4.2 修改文件所在的组

​ 4.2.1 基本指令 chgrp 组名 文件名

​ 4.2.2 案例

在这里插入图片描述

5. 其它组

除文件的所有者和所在组的用户外,系统的其他用户都是文件的其它组。

6. 改变用户所在组

在添加用户时,可以指定将该用户添加到那个组中,同样的用root的管理权限可以改变某个用户所在的组。

6.1 改变用户所在组

usermod -g 组名 用户名
usermod -d 目录名 用户名     改变用户登录的初始目录

6.2 案例

在这里插入图片描述

第七章:权限管理

一:权限的基本介绍

1. ls -l 中显示的内容如下

在这里插入图片描述

2. 0-9 位说明

在这里插入图片描述
在这里插入图片描述

二:rwx 权限详解

1. rwx 作用到文件

在这里插入图片描述

2. rwx 作用到目录

在这里插入图片描述

3. 文件及目录权限实际案例

在这里插入图片描述

三:修改权限-chmod

1. 基本说明

通过chmod指令,可以修改文件或者目录的权限

2. 第一种方式:+、-、= 变更权限

在这里插入图片描述

3. 案例

  1. 给abc文件的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。

在这里插入图片描述
2. 给abc文件的所有者除去执行的权限,增加组写的权限
在这里插入图片描述

  1. 给abc文件的所有用户添加读的权限

在这里插入图片描述

4. 第二种方式:通过数字变更权限

在这里插入图片描述

案例:要求将/home/abc.txt 文件的权限修改成 rwxr-xr-x,使用给数字的方式实现
在这里插入图片描述

四:修改文件所有者-chown

1. 基本介绍

在这里插入图片描述

2. 案例

  1. 请将/home/abc.txt文件的所有者修改成tom

在这里插入图片描述
2. 请将/home/kkk目录下所有的文件和目录的所有者都修改成tom
在这里插入图片描述

五:修改文件所在组-chgrp

1. 基本案例

chgrp newgroup file 改变文件的所有组

2. 案例

在这里插入图片描述

第七章:进程管理(重点)

一、进程的基本介绍

  1. 在linux中,每个执行的程序(代码)都称为一个进程。每个进程都分配一个ID号。
  2. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。
  3. 每个进程都可能以两种方式存在的。前端与后端,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但是屏幕上无法看到的进程,通常使用后台方式执行。
  4. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才能结束。

二、显示系统执行的进程-ps

1. 基本介绍

ps命令是用来查看目前系统中,有哪些正在进行的进程,以及他们的执行情况,可以不加任何参数

参数命令:一般使用的参数是 ps -aux

  • ps-a 显示当前终端的所有进程信息
  • ps-u 以用户的格式显示进程的信息
  • ps-x 显示后台进程运行的参数

2. 综合说明
在这里插入图片描述
3. ps指令详解
在这里插入图片描述
4. 查看父进程ps指令详解
在这里插入图片描述
5. 应用实例

  1. 查看父进程 ps -ef | more
    在这里插入图片描述2. 查看某一个进程的父进程是什么 ps -ef | grep sshd 在这里插入图片描述

三、终止进程kill和killall

1. 介绍

若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止进程。使用kill命令来完成此项任务。

2. 基本语法

kill [选项] 进程号            (功能描述:通过进程号杀死进程)
 
killall 进程名称              
(功能描述:通过进程名杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
 
 
 
常用选项:
-9            表示强迫进程立即停止

3. 案例

  1. 踢掉某个非法登录用户
    在这里插入图片描述
  2. 终止远程登录服务sshd,在适当时候再次重启sshd服务
    在这里插入图片描述

四、查看进程树pstree

1.介绍

​ 基本语法: pstree [选项] 可以更加直观的来看进程信息

​ 常用选项: -p 显示进程的PID

​ -u 显示进程的所属用户

2. 案例

  1. 请你以树状的形式显示进程的pid
    在这里插入图片描述

  2. 请你以树状的形式显示进程的用户id

    pstree -u
    

五、服务(Service)管理

1. 服务

服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它进程的请求,比如【mysql、sshd、防火墙等等】,因此我们又称为守护进程,是Linux中非常重要的知识点。

【原理图】
在这里插入图片描述
2. service管理命令

service 服务名 [start | stop | restart | reload | status]
 
 
在CentOS7.0后不再使用service,而是使用systemctl

3. 常见服务管理操作


systemctl start/status/stop/restart  服务名		//开启、查看、关闭、重启服务
systemctl reload 服务名     //重新加载服务的配置文件
systemctl enable  服务名	//开机自启服务
systemctl disable 服务名	//开机自关服务

systemctl list-units    //列出全部的unit服务
systemctl list-unit-files  //列出全部的进程服务

六、端口

lsof -i:端口 显示使用端口的进程

第八章:Linux的 ——rpm包管理器与yum包管理器

Linux提供了软件包的集中管理机制,该机制将软件以包的形式存储在仓库中,方便用户搜索、安装和管理软件包。

RPM软件包管理

在这里插入图片描述

RPM软件包分为两种:二进制包和源码包。

1、二进制包中封装的是编译后生成的可执行文件,类似于Windows系统的.exe文件,可使用rpm命令直接安装。

2、源码包中封装的是源代码,在安装之前需先下载源码包以生成源码,再对源码进行编译生成后缀名为.rpm的RPM包,之后才能安装软件本身。

3、后缀.rpm表示二进制包,后缀.src.rpm表示源码包

在这里插入图片描述

RPM工具

无法解决依赖

[root@localhost cdrom]# cd Packages/
#检查是否存在安装包
[root@localhost Packages]# ls wget-1.14-18.el7_6.1.x86_64.rpm
wget-1.14-18.el7_6.1.x86_64.rpm
[root@localhost Packages]#rpm -ivh  wget-1.14-18.el7_6.1.x86_64.rpm
#使用-i:install  -v:显示安装信息  -h:百分比

使用rpm安装软件包:

安装软件包:rpm -ivh 软件包
查询是否安装完成:rpm -q 软件包
查询软件安装路径:rpm -ql 软件名称
查询软件名称:rpm -qa |grep  服务名称        //这个查询出来后就可以卸载包了。  
查询软件信息:rpm -qi 软件名称

查询某个文件是那个软件产生的 : rpm  -qf  文件路径

删除软件包:rpm -e   软件名称(卸载的是软件,不用加.rpm后缀)
强制删除软件包(不安装依赖):rpm -ivh 软件包 --force
删除软件包(不检查依赖):rpm -ivh 软件包 --nodeps



--force  在安装的时候用(强制安装)

--nodeps  在卸载的时候用(卸载的时候不检查依赖关系)

YUM工具

介绍:基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动依赖处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐的一次次下载,安装。

1、安装	install
2、查询
	list和info。yum list用于列出一个或一组软件包;yum info用于显示关于软件包或组的详细信息
[root@localhost ~]# yum list lrzsz
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
已安装的软件包
lrzsz.x86_64                           0.12.20-36.el7                                @base

[root@localhost ~]# yum info lrzsz
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
已安装的软件包
名称    :lrzsz
架构    :x86_64
版本    :0.12.20
发布    :36.el7
大小    :181 k
源    :installed
来自源:base
简介    : The lrz and lsz modem communications programs
网址    :http://www.ohse.de/uwe/software/lrzsz.html
协议    : GPLv2+
描述    : Lrzsz (consisting of lrz and lsz) is a cosmetically modified
         : zmodem/ymodem/xmodem package built from the public-domain version of
         : the rzsz package. Lrzsz was created to provide a working GNU
         : copylefted Zmodem solution for Linux systems.

使用yum 安装软件包

语法:
安装: yum  -y  install   软件包
重新安装:yum  -y  reinstall  软件包
更新:yum  -y  update  软件包
查询软件包:yum  list   软件包
卸载软件包:yum  -y  remove   软件包
查看文件属于哪个软件:yum	provides vim
使用install把对应的软件包下载下来,即可以使用vim

注意

  1. yum命令可以相当于windos中的应用商店,可以网上下载安装包后在安装的。而rpm只是安装软件的。
  2. yum出现下载错误信息:可能出现的原因,/etc/yum.repos.d 文件配置错误,这个是yum的找包地址。

案例

  1. 配置本地YUM源,我们这里用系统光盘中的软件安装包作为yum源。

  2. **本地源:系统安装光盘 ** (yum配置核心目录:/etc/yum.repos.d)

    下载源:

    [admin@localhost yum.repos.d]$ ls
    CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo
    CentOS-CR.repo         CentOS-Media.repo      CentOS-x86_64-kernel.repo
    CentOS-Debuginfo.repo  CentOS-Sources.repo    docker-ce.repo
    #移除官方源
    [root@localhost yum.repos.d]# mv  /etc/yum.repos.d/*  /tmp/
    
    
    [root@localhost yum.repos.d]# ls /dev/cdrom   #设备光盘文件
    /dev/cdrom
    [root@localhost yum.repos.d]# mkdir /mnt/cdrom  #创建挂载目录
    [root@localhost yum.repos.d]# mount /dev/cdrom /mnt/cdrom
    mount: /dev/sr0 写保护,将以只读方式挂载
    
    #编译本地yum
    [root@localhost yum.repos.d]# vim /etc/yum.repos.d/dvd.repo 
    [dvd]						#库的名称
    name=dvd本地源				  #库的说明
    baseurl=file:///mnt/cdrom	  #记录源的地址
    gpgcheck=0					#忽略检验光盘的完整性
    

​ 编译好本地源后,将系统光盘通电,挂载到/mnt/cdrom
在这里插入图片描述

[root@localhost yum.repos.d]# ls /mnt/cdrom/
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
#查看rpm包的数量
[root@localhost yum.repos.d]# ls /mnt/cdrom/Packages/ | wc -l
4072

设置光盘开机自动挂载(开机时会自动执行/root/.bashrc中的指令)

[root@localhost yum.repos.d]# cat /root/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
mount /dev/cdrom /mnt/cdrom   #添加开机自动挂载光盘驱动

配置阿里云YUM源

#下载《阿里巴巴开源镜像站》 到官网上根据系统的版本下载镜像源。
[root@localhost yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost yum.repos.d]# ls
CentOS-Base.repo
[root@localhost yum.repos.d]# yum clean all		#清理YUM缓存
[root@localost yum.repos.d]# yum makecache		#更新YUM仓库
    

注意

更换源之后要清空yum缓存 yum clean all
缓存软件信息:
提高搜索/安装软件的速度 yum makecache

源码包管理

rz

rz 命令是win和liunx和以互传的命令

  1. yum provides rz 显示rz软件包
    在这里插入图片描述
  2. yum -y install lrzsz-0.12.20-36.el7.x86_54 安装

ngine源码包安装

apache的httpd和nginx都是web服务,都占用80端口

tengine下载的是源码包,源码包不能直接安装,需要机器的环境。

  1. yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel 安装环境

  2. useradd www 创建一个tengine的用户

  3. tar xvf tengine-tengine-2.2.0.tar.gz //解压缩

  4. cd tengine-2.2.0

  5. ./configure \       
    --user=www \                  //使用用户
    --prefix=/usr/local/nginx \   //安装位置
    --with-http_stub_status_module \   //可要可不要
    --with-http_sub_module \
    --with-http_ssl_module \
    --with-pcre
    
     //设置配置文件 
    
  6. make 将源码编译成二进制文件并保存到当前目录下

  7. make install

  8. usr/local/nginx/sbin/nginx 启动nginx服务器

  9. usr/local/nginx/sbin/nginx -s stop 关闭nginx服务

认识源码包(了解)

在这里插入图片描述

第九章:日志管理

1. 日志重要性

在这里插入图片描述

2. 常见系统日志

在这里插入图片描述
常用是1、4点,遇到错误提示时,可以查看系统日志,上图的第一点使用
在/root目录下,tailf /var/log/messages #实时查看系统日志

日志的优先级

日志的优先级分为7种,级别代号0~7:
0 debug 有调试信息的,日志信息最多
1 info 一般信息的日志,最常用
2 notice 最具有重要性的普通条件的信息
3 warning 警告级别
4 err 错误级别,阻止某个功能或者模块不能正常工作的信息
5 crit 严重级别,阻止整个系统或者整个软件不能工作的信息
6 alert 需要立即修改的信息
7 emerg 内核崩溃等严重信息
none 什么都不记录

自定义日志(了解)

在这里插入图片描述
#之后重启日志服务

[root@localhost admin]# systemctl	restart	rsyslog 

3. 日志进程rsyslog

系统专职日志程序,处理大部分日志记录,操作系统有关的信息,如登录信息,程序启动关闭信息,错误信息。

任务一:rsyslog系统日志管理 关心的问题:哪类程序,产生什么的日志,放在什么地方

查看日志进程

[root@localhost admin]# ps aux | grep rsyslogd
root       1205  0.0  0.4 214456  4420 ?        Ssl  11:35   0:00 /usr/sbin/rsyslogd -n

动态查看日志文件的尾部:tail -f /var/log/messages 开启两个终端窗口

查看各种日志 /var/log

4. rsyslog配置文件

[root@localhost log]# rpm -qc rsyslog      #查看配置文件
/etc/logrotate.d/syslog			#rsyslogd相关文件,定义级别(了解)
/etc/rsyslog.conf				#rsyslogd的主配置文件(告诉rsyslog进程什么日志,应该存放在哪)
/etc/sysconfig/rsyslog			#和日志办轮转(切割)相关

在这里插入图片描述

5. 日志轮转logrotate(重点)

任务二:将大量的日志,分割管理,删除旧日志

简介

记录程序运行时的各种信息,通过日志可以分析用户的行为,记录运行轨迹,查找程序问题,但磁盘空间有限,记录的信息再重要也只能记录最后一段时间发生的事。为了节省空间和整理方便,日志文件需要经常按时间大小等维度分成多份,删除时间久远

工作原理

按照配置进行轮转,配置文件有主配置文件和子配置文件夹(自定义,便于管理)
主文件:/etc/ logrotate.conf (决定每个日志文件如何轮转)
子文件夹:/etc/logrotate.d/*

[root@localhost log]# vim /etc/logrotate.conf
=================全局设置======================
weekly		//轮转的周期,一周轮转
rotate 4		//保留4份,当产生第五份的时候,自动删除最旧的一份
create		//轮转后创建新文件
dateext		//使用日期作为后缀
# compress		//是否压缩
include /etc/logrotate.d		//包含该目录下的子配置文件,程序运行,在读主										配置文件时,到子配置文件查看,读取
/var/log/wtmp {		//对某日志文件设置轮转的方法,优先级最高
	monthly		//一个月轮转一次
	minsize 1M		//最小达到1M才轮转,monthly and minsize
	create 0664 root utmp		//轮转后创建文件并设置权限
	rotate 1		//保留一份
}
/var/log/btmp {
	missingok		//丢失不提示
	monthly			//每月轮转一次
	create 0600 root utmp		//轮转后创建新文件,并设置权限
    rotate 1		//保留一份
}

[root@localhost log]# vim /etc/logrotate.d/yum	#子配置文件下的yum
/var/log/yum.log {
    missingok
    #notifempty
    #maxsize 30k
    #yearly
    daily			#自定义每天轮转一次
    rotate 3		#自定义保留三份
    create 0600 root root
}

#测试
[root@ftp-server log]# date			#查看当下时间
20210709日 星期五 23:20:49 CST
[root@ftp-server log]# date 07092322		#修改系统时间(月日时分)
20210709日 星期五 23:22:00 CST
[root@ftp-server log]# logrotate /etc/logrotate.conf	#手动轮转日志
[root@ftp-server log]# ls /var/log/yum.*				#查看日志生成
/var/log/yum.log  /var/log/yum.log-20210709


6. 日志安全

[root@ftp-server log]# vim /etc/logrotate.d/syslog 
#设置messages轮转
/var/log/messages {
 prerotate			#设置轮转前的动作
     chattr -a /var/log/messages     
 endscript			#动作结束

 daily
 create 0777 root root
 missingok
 rotate 3

 postrotate			#轮转之后的动作
    chattr +a /var/log/messages
 endscript
 }

[root@ftp-server log]# logrotate /etc/logrotate.conf	#手动轮转测试配置文件无误。

若要设置其他文件轮转,格式如同messages。
在这里插入图片描述
在这里插入图片描述

第十章:计划任务/远程连接

一、计划任务

1. 原理示意图

在这里插入图片描述
在这里插入图片描述

2. 概述

概述:
任务调度就是指系统在某个时间执行的特点的命令或程序
 
 
分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份
 
 
基本语法:
crontab [选项]
 
 
常用选项:
-e        编辑crontab定时任务
-l        查询crontab任务
-r        删除当前用户所有的crontab任务   

3. 参数细节说明

  1. 五个占位符的说明
    在这里插入图片描述

  2. 特殊符号的说明
    在这里插入图片描述

  3. 特定时间执行任务案例
    在这里插入图片描述
    4. 快速入门操作题

  4. 要求

    设置任务调度文件:/etc/crontab
     
    设置个人任务调度,执行crontab -e命令
     
    接着输出任务调度文件
     
    如:*/1****ls -l /etc/>/tmp/to.txt     
     
    意思说:每小时的每分钟执行ls  -1/etc/>tmp/to.txt命令
    
  5. 实现步骤

    第一步:crontab -e
    在这里插入图片描述
    ​ 第二步:*/1**** ls -l /etc/ > /tmp/to.txt
    在这里插入图片描述
    ​ 第三步:当保存退出后就生效了
    在这里插入图片描述
    ​ 第四步:在每一分钟都会自动的调用 ls -l /etc/ > /tmp/to.txt

4. crond 相关的指令

conrtab-r                终止任务调度
 
 
conrtab-l                列出当前有哪些任务调度
 
 
service crond restart    [重启任务调度]

二、远程管理

1. ssh服务

安装软件:
	openssh-server		提供服务
	openssh-clients		客户端
	openssh	
 yum install openssh*  -y		(一般服务器自动就安装好了)
 
ssh  端口22
服务器端:
	启动服务:systemctl start sshd
	查看:   lsof -i:22
	(关闭防火墙: systemctl stop firewalld 和selinux: getenforce 0)

客户端:
	远程登录管理:ssh -x 用户名@ip  -p 端口
				ssh ip
    (如果远程登录账号没密码不能远程登录)
	
修改端口号:在/etc/ssh/sshd_config 的配置文件中找到 #Port=22 的注解,去掉注解,把Port改成你想要的端口。

远程拷贝

需要先安装客户端

scp 本机文件路径  目标文件路径   //把本机文件拷贝到目标文件
例如: scp  /a.txt  目标ip地址:/tmp/



scp 目标文件路径	本机文件路径    //把目标文件拷贝的本机文件中
例如:scp  目标ip地址:/tmp/a.txt  /tmp/

2. rz sz 命令

安装
root 账号登录后执行以下命令:
yum provides rz		//给命令在那个软件包中
yum install -y 软件包  //安装rz

使用:
sz命令发送文件到本地: sz filename
rz命令本地上传文件到服务器: rz	(执行该文件后,在弹出框中选择要上传的文件即可。) 

第十章:网络管理

一、 网络接口名称规则

  1. 认识网卡;2. 找到网卡文件; 3. 学习修改文件; 4. 多台服务器互通

    [root@localhost admin]# ls /etc/sysconfig/network-scripts/	#查看网卡文件
    [root@localhost admin]# systemctl status NetworkManager		#查看网络管理程序状态
    [root@localhost admin]# systemctl status network			#重启网络
    [root@localhost admin]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
    [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="static"
    IPADDR=192.168.0.131
    GATEWAY=192.168.0.2
    NETMASK=255.255.255.0  
    DNS1=8.8.8.8     
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    NAME="ens33"
    UUID="536bfb15-8801-4f86-846d-10f3787747de"
    DEVICE="ens33"
    ONBOOT="yes"
    [root@localhost ~]# ip neigh   #查路由,网关
    [root@localhost ~]# ss -tnl		#查端口服务
    
    

二、网络测试工具

使用ping命令

  • (linux) -c 数字:表示发送多少个包
  • (windows) -n数字:表示发送多少个表
  • -t : 一直发送数据包

ping www.baidu.com -i 0.01 #ping 百度,间隔时间为0.01s

使用traceroute命令

  • traceroute www.baidu.com # 测试ping百度经过多少个网关
  • traceroute -m 10 www.baidu.com #设置ping百度10个网关
  • traceroute -n www.baidu.com #只显示ip地址

例如:

  • traceroute -p 6888 www.baidu.com #探测包使用基本UDP端口设置6888
  • traceroute -w 3 www.baidu.com #对外探测包响应时间为3秒。

三、网络管理实战

OSI模型

指的是开放系统互联模型,由国际标准化组织(ISO) 指定

七层模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

在这里插入图片描述

OSI开放系统互联

应用层:提供应用程序间通信

表示层:处理数据格式,数据加密。

会话层:建立、维护和管理会话。

传输层:建立主机端到端的连接

网络层:寻地和路由选择。

数据链路层:提供介质访问、链路管理。

物理层:比特流传输。

五层模型

应用层:提供应有程序间通信

表示层:处理数据格式,数据加密。

会话层:建立、维护和管理会话。

传输层:建立主机端到端的连接。

网络层:寻址和路由选择

数据链路层:提供介质访问、链路管理

物理层:比特流传输。

五层模型:应用层(APDU【应用层协议数据单元】)、传输层(分段数据)、网络层(数据包)、数据链路层(数据帧)、物理层(比特流)

封装:数据要通过网络进行传输,在发送端要从一层一层的向下传送,如果一个主机要传送数据到别的主机,先把数据装到一个特殊协议报头中,这个过程叫封装。

在这里插入图片描述
tcp协议的3次握手
在这里插入图片描述
tcp协议的4次捂手
在这里插入图片描述

ensp配置ipv6静态路由

#删除默认网关
ip r d default
#删除静态路由
ip r del 网段/24
#添加默认网关
ip r add default via 网关 dev 网卡名

    #列出所有启动的untis(服务)
[root@ftp-server ~]#  systemctl list-units
#列出所有启动文件
[root@ftp-server ~]#  systemctl list-unit-files


第十一章:文件服务

一、FTP Server

1. FTP 介绍

文件传输协议:是TCP/IP协议组的协议之一,基于C/S模型,FTP客户端与服务器端有两种传输模式,分别是FTP主动模式、FTP被动模式,主被动模式均是以FRP服务器端为参考。主动模式是服务器连接到客户端的端口,被动模式是客户端连接到服务器的端口。

控制端口 command 21/ftp

数据端口 data 20/ftp

FTP服务器端软件包括:VsftpdProFTPDPureFTPdServer-U FRPFileZilla Server 等软件,其中Unix/Linux使用较为广泛的FTP服务器软件为Vsftpd.

Vsftp服务器的登录类型

Vsftp提供了系统用户、匿名用户、和虚拟用户三种不同的登录方式。所有的虚拟用户会映射成一个系统用户,访问时的文件目录是为系统用户的家目录;匿名用户也是虚拟用户,映射的系统用户为ftp,详细信息可以通过man vsftpd.conf查看

2. Vsftp安装配置

1. 环境需求

  • 服务端系统:CentOS7.6 软件:vsftpd
  • 客户端系统:Windows10 软件: xftp客户端

2. 安装epel源 (因为yum中的源可能不全)

yum -y install epel-release.noarch

3. 安装vsftpd及相关依赖

yum -y install vsftpd*  pam*  db4*
  • vsftpd : ftp软件
  • pam :认证模块
  • DB4 :支持文件数据库

4. vsftpd 配置文件说明

配置文件作用
/etc/vsftpd/vsftpd.confvsftpd的核心配置文件
/etc/vsftpd/ftpusers用于指定哪些用户不能访问FTP服务器
/etc/vsftpd/user_list指定允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd_conf_migrate.shvsftpd操作的一些变量和设置脚本
/var/ftp/默认情况下匿名用户的根目录

5. vsftpd 配置详解
在这里插入图片描述
在这里插入图片描述
6. vsftpd 修改配置前备份配置文件

7. vsftpd 配置匿名用户

  1. 编辑配置文件 (/etc/vsftpd/vsftpd.conf
write_enable=YES

anon_umask=022
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
  1. 常用的匿名FTP配置项

anon_umask=022		    #匿名用户所上传文件的权限掩码
anonymous_enable=YES	#是否允许匿名用户访问
anon_upload_enable=YES	#是否允许匿名用户上传文件
anon_mkdir_write_enable=YES	#是否允许匿名用户创建目录
anon_other_write_enable=YES #是否允许匿名用户有其他写入权

anon_max_rate=0  			#限制最大传输速率(字节/秒)0为无限制

8. 开启vsftp服务

systemctl start vsftpd
ps aux | grep vsftpd   #查看

二、Ftp客户端 lftp

1. lftp介绍

  • lftp命令是一款优秀的文件客户端程序,它支持ftpSETP FTPs 等多文件传输协议。lftp支持tab自动补全,记不得命令双击tab键,就可以看到可能的选项了。

2. lftp语法

lftp(选项)(参数)

3. lftp选项

-f: 指定lftp指令要执行的脚本文件

-c:执行指定的命令后退出

–help:显示帮助信息

–version:显示指令的版本号

4. lftp参数

  • 站点:要访问的站点的ip地址或者域名。

5. 实例

FTP Server默认配置

[root@ftp-server admin]# yum -y install vsftpd
[root@ftp-server admin]# touch /var/ftp/abc.txt
[root@ftp-server admin]# vim /var/ftp/abc.txt
[root@ftp-server admin]# systemctl start vsftpd
[root@ftp-server admin]# systemctl enable vsftpd
[root@ftp-server admin]#  systemctl stop firewalld

有图形化的客户机访问ftp服务器
在这里插入图片描述
下载文件

无图形化的客户机访问ftp

[root@localhost admin]# yum -y install lftp
[root@localhost admin]# lftp 192.168.0.131
lftp 192.168.0.131:~> ls
-rw-r--r--    1 0        0              12 Jul 07 00:41 abc.txt
drwxr-xr-x    2 0        0               6 Apr 01  2020 pub
lftp 192.168.0.131:/> 
[root@localhost admin]# wget ftp://192.168.0.131/abc.txt	#使用wget下载
[root@localhost admin]# ls
abc.txt  公共  模板  视频  图片  文档  下载  音乐  桌面

abc 前面的代表/var/ftp/ ,为了安全,通常在ftp/下创建文件夹,如要下载到指定文件夹则

[root@localhost admin]# wget ftp://192.168.0.131/abc.txt -O /home/abc.txt
#使用-m可以把文件夹下载下来
[root@localhost admin]# wget -m ftp://192.168.0.131/pub

FTP Server启动上传功能

服务器

[root@ftp-server admin]# cp  /etc/vsftpd/vsftpd.conf /tmp/vsftpd.conf
[root@ftp-server admin]# vim /etc/vsftpd/vsftpd.conf
配置文件详解
anonymous_enable=YES		#允许匿名登录
anon_upload_enable=YES		#允许匿名上传文件
anon_mkdir_write_enable=YES		#允许匿名创建文件夹
---------------------------------------------------------------------

[root@ftp-server admin]# mkdir /var/ftp/upload		#创建一个用户上传文件到ftp服务器的文件夹
[root@ftp-server admin]# chmod 777 /var/ftp/upload		#给文件夹授权
[root@ftp-server admin]#  systemctl restart vsftpd

客户机

[root@localhost home]# lftp 192.168.0.131
lftp 192.168.0.131:/> cd upload
lftp 192.168.0.131:/upload> put 5.txt		#5.txt为home下的文件
lftp 192.168.0.131:/upload> ls
-rw-------    1 14       50              0 Jul 07 05:06 5.txt

二、NAS存储

1. NAS存储和SAN存储的区别

  1. NAS介绍
  • NAS网络连接存储(NAS)是连接到TCP/IP网络(通常是以太网)的文件级数据存储设备。它通常使用网络文件系统(NFS)或CIFS协议,但也可以使用其他选项,如HTTP。它一般是将本地的存储空间共享给其他主机使用,一般通过C/S架构实现通信。它实现的是文件级别的共享,计算机通常将共享的设别为一个文件系统,其文件服务器会管理锁以实现并发访问。常见的NAS有NFS和CIFS。

2. NFS 服务器和samba服务器介绍

3. 安装配置NFS服务器

  1. 添加hosts的ip解析

    vim /etc/hosts   [可选]
    192.168.122.56   nfs.qfedu.com
    192.168.122.85   client.qfedu.com
    
  2. 安装NFS服务器

    yum install -y nfs-utils
    
  3. 创建NFS存储目录

    mkdir  /data
    
  4. 配置NFS服务

    • 编辑exports文件,添加从机
    vim  /etc/exports
    192.168.122.0/24(rw,sync,no_root_squash)
    
    • 192.168.122.0/24 一个网段的主机可以挂载NFS服务器上的/data目录到自己的文件系统中
  5. NFS定制参数说明

    • ro:目录只读
    • rw:这个选项允许NFS客户机进行读/写访问。缺省选项是只读的。
    • secure:这个选项是缺省选项,它使用了1024以下的TCP/IP端口实现NFS的连接。指定insecure可以禁用这个选项。
    • async:这个选项可以改进性能,但是如果没有完全关闭NFS守护进程就重启了NFS服务器,这也可能会造成数据丢失。
  6. 设置NFS服务开机启动

    1. 先启动rpcbind服务

      systemctl start rpcbind.service
      systemctl enable rpcbind.service  开机自启
      
    2. 启动NFS服务

      systemctl start nfs-server.service
      systemctl enable nfs-server.service   开机自启
      
  7. 确定NFS服务器启动

    exportfs -v
    
    • rpcinfo -p:检查NFS服务器是否挂载我们想共享的目录 /data

4. 挂载端安装NFS客户端

  1. 安装NFS软件包

    yum -y install nfs-utills
    
  2. 设置rpcbind开机启动

    systemctl enable rpcbind.service
    
  3. 启动`rpcbind``服务

    systemctl start rpcbind.service
    
    • 注意:客户端不需要启动nfs服务
  4. 查看NFS服务端共享

    • 检查NFS服务器端是否有目录共享:showmount -e nfs 服务器IP/nfs服务器主机名
  5. 挂载使用

    • 手动挂载

      mkdir /data
      mount -t nfs `ip地址`:/data  /data
      
    • 开机自动挂载

      # vim /etc/fstab
      IP地址:/data    /data    nfs  dafaults   0 0
      # mount -a
      
    • 查看挂载

      # df
      

三、NFS

网络文件系统,Linux/UNix系统之间共享文件的一种协议,支持多节点同时挂载以及并发写入。作用:提供文件共享服务,为web server配置集群中的后端存储。用于一台nfs服务器管理若干台web服务器的文件并发
在这里插入图片描述

 服务器
#服务器安装nfs服务
[root@ftp-server home]# yum install -y nfs-utils
#创建一个发布资源的目录
[root@ftp-server home]# mkdir /webdata
[root@ftp-server home]# echo "nfs-test hello world" > /webdata/index.html
#配置文件
[root@ftp-server home]# vim /etc/exports
/webdata 192.168.0.0/24(rw)		#允许访问nfs服务器的主机
[root@ftp-server home]# systemctl start nfs-server
[root@ftp-server home]# systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@ftp-server home]# exportfs -v		#检查是否配置成功的命令
/webdata      	192.168.0.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
#安装nfs客户端
[root@localhost home]# yum install -y nfs-utils httpd
#查询nfs服务
[root@localhost home]# showmount -e 192.168.0.131
Export list for 192.168.0.131:
/webdata 192.168.0.0/24
#将nfs服务器的目录挂载到客户端,192.168.0.131为服务器地址
[root@localhost home]# mount -t nfs 192.168.0.131:/webdata/ /var/www/html
[root@localhost home]# cat /var/www/html/index.html
nfs-test hello world
------------------------------------------------------------------------
#在服务器上更新文件
[root@ftp-server home]# touch /webdata/index1.html
[root@ftp-server home]# ls /webdata
index1.html  index.html
#在客户机上自动跟新
[root@localhost home]# ls /var/www/html
index1.html  index.html

在这里插入图片描述

第十二章: Web服务器

一、Web 服务器介绍

1. Web服务简介

  • 目前最主流的三个Web服务器是Apache Nginx IIS

  • Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。

  • Web服务器也称WWW服务器,主要功能是提供网上信息浏览服务。Web服务器是可以向发出请求的浏览器提供文档的程序。

  • 服务器是一种被动程序只能当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应
    在这里插入图片描述

二、Apache和Nginx的介绍

1. Apache 介绍

  • Apache是web服务器软件之一
  • Apache的特性:
    • 几乎可以运行在所有的计算机平台上。
    • 支持最新的http/1.1协议。
    • 简单而且强有力的基于文件的配置(http.conf)
    • 支持通用网关接口(cgi)
    • 支持虚拟主机
    • 支持http认证
    • 集成prel
    • 集成的代理服务器
    • 可以通过web浏览器监视服务器的状态,可以自定义日志。
    • 支持服务器端包含命令(ssi)
    • 支持安全socket层(ssl)
    • 具有用户会话过程的跟踪能力
    • 支持fastcgi
    • 支持java servlets

2. nginx 介绍

  • nginx 是十分轻量级的HTTP服务器,是一个高性能的HTTP和反向代理服务器。

3. ApacheNginx 对比

  • Nginx相对于Apache
    • 高并发响应性能非常好。
    • 反向代理性能非常好(可用于负载均衡)
    • 内存和cpu占用率低
    • 功能较Apache少
    • 队php可使用cgi方式和fastcgi方式,没有模块编译加载方式。

4. Apache和Nginx总结

  • Apache拥有丰富的木块组件支持,稳定性强,BUG少,动态内容处理强。
  • Nginx轻量级,占用资源少,负载均衡,高并发处理强,静态内容处理高效。

三、Web 中间件

1. web中间件简介

2. 常见的web中间件

  1. JAVA中间件
    • Tomcat
    • weblogic
    • Jboss
    • Webshere
  2. Python中间件
    • wsgi
    • uwsgi
    • uWSGI
  3. Php中间件
    • php-fpm
    • CGI
    • FastCGI

四、Apache服务的搭建与配置

1. Apache服务的搭建

  1. 关闭selinux和防火墙

    • 临时关闭
    setenforce 0
    systemctl stop firewalld
    
    • 修改selinux的配置文件永久关闭 vim /etc/selinux/config
    SElinux  status:		disabled
    
  2. 安装epel

    yum -y install epel-release.noarch
    
  3. yum安装Apache软件

    yum -y install httpd*
    rpm  -qa | grep httpd    --查看安装的http包
    

    安装成功后,会产生下面两个文件

    /etc/httpd/conf/httpd.conf    #主配置文件
    /var/www/html     # 默认网站家目录
    
  4. 认识在配置文件里的主要参数

    # vim  /etc/httpd/conf/httpd.conf
    serverRoot  "/etc/httpd"		#存放配置文件的目录
    Listen  80						#Apache服务监听端口
    User  apache					#子进程的用户
    Group  apache					#子进程的组
    ServerAdmin root@localhost		#设置管理员邮件地址
    DocumentRoot  "/var/www/html"	#网址家目录
    
    #设置DocumentRoot指定目录的属性
    <Directory  "/var/www/html">	#网站容器开始标识
    Options Indexes FollowSymLinks	#找不到主页时,以目录的方式呈现,并允许链接到网站
    根目录以外
    AllowOverride  None				#none不使用.htaccess控制,all允许
    Require all granted				#granted表示运行所有访问,denied表示拒绝所有访问
    </Directory>					#容器结束
    DirectoryIndex index.html		#定义主页文件,访问到网站目录时,如果有定义的主页文件,网站会自动访问
    AddDefaultCharset  UTF-8		#字符编码,如果中文的话,有可能需要改为gb2312或者gbk,因你的网站文件的默认编码而异。
    
  5. 启动Apache网站

    systemctl start httpd.service
    
  6. 查看httpd服务是否启动

    lsof -i:80
    
  7. 访问验证httpd服务

  • 启动成功后使用浏览器或者curl输入自己的IP地址会看到一个欢迎页面

    curl  192.168.1.20
    
  • 每次打开浏览器不是很方便,因此我们可以使用文本浏览器,方便测试

    yum -y install elinks   #安装elinks文本浏览器
    elinks  192.168.5.20	#按ctrl+c 退出
    
  1. Apache配置实例

    建立网站主页,在网络根目录下建立一个主页文件

    例一:

    [root@..]# echo 'main page' > /var/www/html/index.html  #往index.html添加内容
    [root@..]# systemctl restart httpd.service		#重启服务
    [root@..]# firefox http://ip地址				   #在浏览器进行测试,显示的信息为刚刚输入的内容f
    

    例二:将网站家目录修改成:/www目录

    [root@..]# mkdir /www			#创建/www目录
    [root@..]# vim /ect/httpd/conf/httpd.conf
    119	DocumentRoot	"/www"	#修改网站根目录为/www
    131 <Directory "/www">		#把这个也对应的修改为/www
    [root@..]# systemctl restart httpd.service	#重新启动apache服务
    [root@..]# echo "这是新修改的网站家目录/www" > /www/index.html  #往index.html添加内容
    [root@..]# firefox http://ip地址		#访问网站,看到新网站根目录下的刚添加的信息
    

    例三:修改主页类型或者主页名

    [root@..]# vim /etc/httpd/conf/httpd.conf
    164 DirectoryIndex  index.php		#将index.html改成index.php
    [root@..]# systemctl reload httpd.service	#重新加载服务或重启
    [root@..]# echo 'php main page' > /www/index.php	#这时我们创建一个index.php页面,再使用浏览器访问就能看到了 
    
  2. Apache常用命令(不能yum安装httpd,要用源码包安装才可以使用常用命令)

    用Apache的常用命令之前要安装httpd的源码包。
    下载源码包并解压,进入包执行
    ./configure  --prefix=/usr/local/apache2 && make && make install		#命令是源码包的编译和安装
    
    常用命令
    /usr/local/apache2/bin/apachectl -M		#查看常见的模块(包含动态和静态)
    /usr/local/apache2/bin/apachectl -l		#查看加载的静态模块
    /usr/local/apache2/bin/apachectl -t		#检查配置文件有无语法错误
    /usr/local/apache2/bin/apachectl graceful	#加载配置文件,但不重启
    /usr/local/apache2/bin/apachectl start/restart/stop  #启动/重启/停止apache服务
    
  3. Apache 配置用户认证

    [root@..]# vi /usr/local/apache2/conf/httpd.conf   #进入主配置文件把Virtual hosts 下面的一条注解#删了,才会主配置解析上面的配置文件
    
    ...
    # Virtual hosts
    # Include conf/extra/httpd-vhosts.conf  #把这行的#去掉
    
    [root@..]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
    <Directory /data/www/abc>		#/data/www/dac为将要访问的页面的目录
    	AllowOverride AuthConfig
    	AuthName "cct"
    	AuthType Basic
    	AuthUserFile /data/.htpasswd	#指定存放用户名和密码的文件
    	require valid-user
    </Directory>
    
    
    
    • htpasswd 生成密码文件
    [root@..]# htpasswd -c /data/.htpasswd cct  #指定用户名为cct,输入自己设定的密码
    [root@..]# /usr/local/apache2/bin/apachectl graceful #加载配置
    
  4. Apache 配置默认虚拟主机

    [root@..]# vi /usr/local/apache2/conf/httpd.conf   #进入主配置文件配置可以读到配置默认虚拟主机的配置文件
    ...
    <Directory/>
    	AllowOverride none
    	Require all denied	        ## 这是207行把denied改成granted
    </Directory>
    ...
    # Virtual hosts
    # Include conf/extra/httpd-vhosts.conf  #把这行的#去掉
    
    [root@..]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
    <VirtualHost *:80>
      DocumentRoot "/tmp/111"	#该目录可以不存在
      ServerName  www.111.com    #需要加本地解析,
    </VirtualHost>
    <VirtualHost *:80>
      DocumentRoot "/data/www"
      ServerName  www.test.com   #需要加本地解析
      ServerAlias  www.aaa.com   #需要加本地解析
    </VirtualHost>
    
    • 将这段设定放在虚拟主机配置的最上面。除了已做过设置的域名(aaa、test)外,其余访问的域名均转到/tmp/111下。
    • 注意再本地加域名解析后,再本地上验证
      在这里插入图片描述14. Apache配置rewrite规则
  • Apache中rewrite规则代码均写在
[root@..]# vi /usr/local/apache2/conf/httpd.conf   #进入主配置文件把Virtual hosts 下面的一条注解#删了,才会主配置解析上面的配置文件

...
# Virtual hosts
# Include conf/extra/httpd-vhosts.conf  #把这行的#去掉
  1. 域名301跳转

    web服务可能会用到多个域名,域名有主次,输入次域名会自动跳转到主域名进行访问。设定为301永久跳转,302是暂时跳转。

    [root@..]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
    <VirtualHost *:80>
    DocumentRoot "/data/www"
    <IfModule mod_rewrite.c>
    	RewriteEngine on		#打开rewrite功能
    	RewriteCond %{HTTP_HOST} ^www.aaa.com$ [OR]
    	RewriteCond %{HTTP_HOST} ^www.bbb.com$
    	RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]
    </IfModule>
    </VirtualHost>
    

    调用了rewrite模块,RewriteCond是跳转条件,RewriteRule是跳转规则。

  2. 禁止指定user_agent

    RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC,OR]  #禁止curl和chrome浏览器访问
    RewriteCond %{HTTP_USER_AGENT} ^.*chrome.*[NC]    #NC 是不区分大小写的意思
    RewrieRule .* - [F]		#为禁止的意思
    
  3. 通过rewrite限制某个目录

    RewriteCond %{REQUEST_URT} ^.*/tmp/.* [NC]	#禁止访问tmp目录
    RewriteRule .* - [F]
    
  4. rewrite规则

    • R=301 强制外部重定向
    • [F] 禁用URL,返回403HTTP状态码
    • NC不区分大小写
    • [OR] 或者
  5. rewrite变量

    %{HTTP_USER_AGENT}		#表示:访问的user_agent
    %{HTTP_HOSH}			#表示:当前访问的网址,只是指前缀部分,格式是www.xxx.com不包括“http://" 和 ”/“
    %{REQUEST_URI}			#表示:访问的相对地址,就是相对根目录的地址,就是域名/后面的成分,格式上包括最前面的”/“。
    www.123.com/xiang/1.html #www.123.com表示HOST,xing/1.html表示URI
    

第十四章:Linux磁盘分区、挂载卸载、磁盘情况查询

一. 分区的基本知识

1. 分区的方式

​ 1.1 mbr分区[传统的]

在这里插入图片描述
​ 1.2 gtp分区[目前的]
在这里插入图片描述
使用MBR方式创建分区,可通过fdisk命令进行管理fdisk [选项][磁盘]

选项:
-l	详细显示磁盘及其信息
-s	显示磁盘分区容量(单位为block)
-b	设置扇区大小(扇区大小取值为512102420484096,单位为MB)	

管理磁盘

详细解析 CentOS 7 磁盘挂载

三部曲:分区(隔离)、格式化(放家具/打造柜子格)、挂载(加个门/目录,才能访问)

  1. 创建和查看磁盘

    # fdisk /dev/sdb	创建(分区)
    # partprobe /dev/sdb		刷新
    # fdisk -l /dev/sdb		查看
    # lsblk
    
  2. 创建挂载信息

    [root@localhost admin]# mkfs.ext4 /dev/sdb1			#使用ext4格式,格式化sdb1的磁盘
    [root@localhost admin]# mkdir /mnt/disk1				#创建一个挂载目录
    [root@localhost admin]# mount -t ext4 /dev/sdb1 /mnt/disk1	#将磁盘挂载在目录上
    [root@localhost admin]# df -hT						#查看文件系统信息
    

补充:系统目录结构是统一的(根下面有/mnt目录,在mnt/disk1里写入数据,并不是使用sda的内存空间,而是使用sdb1的空间),实际的内存存储在硬盘上。磁盘一旦被挂载,数据写入到新挂载的磁盘,而不是sda的内存。

  1. MBR主引导记录是一个文件,共64个字节,每16个字节记录一个主分区,所以一块硬盘只有4个分区,如果想要超过4个分区,则需要一个主分区分出来成为扩展分区,扩展分区可以继续分为N个逻辑分区

交换分区管理Swap

作用:“提高”内存的容量,防止OOM

实际生产:大于4GB而小于16GB,最小需要4GB交换空间

大于16GB而小于64GB,最小需要8GB交换空间

大于64GB而小于256GB,最小需要16GB交换空间

2. windows和linux磁盘分区的区别

​ 2.1 windows下的磁盘分区

在这里插入图片描述

​ 2.2 linux下的磁盘分区

在这里插入图片描述

原理示意图

在这里插入图片描述

硬盘说明

在这里插入图片描述

硬盘说明示意图

在这里插入图片描述
在这里插入图片描述

二. 挂载的经典案例【给linux添加一块新硬盘】

1. 需求

给我们的linux系统增加一个新的硬盘,并且挂载到 /home/newdisk目录下
在这里插入图片描述

2. 步骤

第一步:给虚拟机添加硬盘

(1) 点击虚拟机;再点击下面的设置
在这里插入图片描述
(2) 点击硬盘;再点击添加
在这里插入图片描述
(3) 点击硬盘;再点击下一步
在这里插入图片描述
(4) 选择SCSI;点击下一步
在这里插入图片描述
(5) 选择创建新的虚拟机磁盘;再点击下一步
在这里插入图片描述

(6) 指定磁盘容量;选择将虚拟机磁盘拆分成多个文件;点击下一步;点击完成
在这里插入图片描述
在这里插入图片描述

(7) 点击确定保存
在这里插入图片描述

(8) 输入命令发现没有看到新建硬盘;这里重启一次
在这里插入图片描述
(9) 重启成功,再次登录进入系统
在这里插入图片描述
(10) 再次输入命令查看到硬盘(但是这里还没有分区)
在这里插入图片描述
第二步:分区

(1) 输入命令fdisk /dev/sdb

(2) 再输入m

(3)再输入n

(4)在输入p

(5)再输入1;回车;回车

(6)输入w点回车

(7) 再次输入命令lsblk -f 可以查看分区(但是没有其对应的id号和文件类型)-因为只是分了区没有格式化【只有格式化之后才能存储数据】

第三步:格式化

(1)输入命令回车,去格式化

mkfs -t ext4 /dev/sdb1

(2)再次输入命令回车,发现磁盘格式化成功了

lsblk -f

第四步:挂载

(1) 先创建一个目录 /home/newdisk (但是进去之后发现里面是空的,因为没有挂载)
在这里插入图片描述
(2) 挂载mount /dev/sdb1 /home/newdisk (这里有一个毛病,因为这是临时挂载,当你重启机器的时候设备和文件之间的挂载关系会断开)

mount /dev/sdb1  /home/newdisk

在这里插入图片描述
第五步:设置可以自动挂载【永久挂载】

(1) 编辑文件,输入命令vim /etc/fstab; 进入界面

vim /etc/fstab

在这里插入图片描述
(2) 按yyd拷贝一份
在这里插入图片描述
(3) 重新编辑,输入wq保存退出
在这里插入图片描述
(4) 使编辑后可以永久挂载,为了使之生效输入mount -a 命令回车;再次重启

mount  -a

在这里插入图片描述

三. 如何卸载断开

1 进入终端;查看;执行umount /dev/sdb1 命令(发现不能卸载–在同一个目录相互冲突)

umount /dev/sdb1

四. 磁盘情况查询

1. 查看系统整体磁盘使用情况(查看百分比)

基本语法 df -h
在这里插入图片描述
​ 卸载一个在次查看
在这里插入图片描述
2 查看指定目录的磁盘的占用情况

基本语法:
du -h /目录
 
 
默认情况:默认为当前目录
 
 
 
参数:
-s                            指定目录占用大小汇总
 
-h                            带计量单位
 
-a                            含文件
 
--max-depth=1                 子目录深度
 
-c                            列出明细的同时,增加汇总值

查询/opt目录的磁盘占用情况,深度为1

输入du -ach --max-depth=1 /opt
在这里插入图片描述
3. 磁盘情况——工作实用指令

第一个:统计/home文件下文件的个数

ls -l /home | grep "^-" | wc -l

在这里插入图片描述
第二个:统计/home文件下目录的个数

ls -l /home | grep "^d" | wc -l

在这里插入图片描述

第三个:统计/home文件下文件的个数,包括子文件里

ls -lR /home | grep "^r" |wc -l

在这里插入图片描述
第四个:统计文件夹下目录的个数,包括子文件夹里的

ls -lR /home | grep "^d" |wc -l

在这里插入图片描述
第五个:以树状显示目录结构

(1)先按照tree;中间一直确定(提示输入:y)

​ yum install tree
在这里插入图片描述
(2) 输入tree命令

tree
在这里插入图片描述

setenforce 0
systemctl stop firewalld
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值