B站【千锋】Linux云计算基础视频教程_650集完全入门 课堂笔记

第二章:用户与用户组

用户管理

命令的选项可以在Linux命令大全查找

1、创建用户 useradd [选项] 用户名

选项:
-d	指定用户登录时的目录
-e	指定用户的有效期限
-f	缓冲天数,密码过期时在指定天数后关闭该账号
-g	指定用户所属组
-G	指定用户的附加组
-m	自动创建用户的登录目录
-r	创建系统账号
-s	指定用户的登录shell
-u	指定用户的用户ID

2、查看用户的属性信息cat /etc/passwd

3、设置用户密码 passwd [选项] 用户名

修改密码也使用同样的语法格式

选项:
-l	锁定密码,锁定后密码失效,无法登录
-d	删除密码,仅系统管理员可用
-S	列出密码的相关信息,仅管理员可使用
-f	强制执行

查看用户的密码信息(已加密)cat /etc/shadow

4、删除用户 userdel [选项] 用户名

-f	强制删除,即使是当前用户
-r	删除用户的同时,删除与用户相关的所有文件

5、修改用户信息 usermod [选项] 参数

usermod命令用与修改用户属性信息,包括用户ID、主目录、用户组、账号有效信息
使用usermod命令时,必须先明确该用户没有在电脑上执行任何程序
-d	修改用户的的登录目录
-e	修改账号的有效期限
-f	修改缓冲天数
-g	修改指定用户所属组
-G	修改指定用户的附加组
-l	修改用户账号名称
-L	锁定密码,锁定后密码失效,无法登录
-U	解除密码锁定
-s	修改指定用户的登录shell
-u	修改指定用户的用户ID

用法:
# usermod -u 678 user1

用户组管理

1、新增用户 groupadd [选项] 参数

-g	指定新建用户组的组ID
-r	创建系统用户组,组ID的取值范围为1~499
-o	允许创建组ID已存在的用户

用法:
# groupadd -g 550 group1

Linux系统将用户组信息储存在/etc/group文件中,新用户组创建成功后,该文件将多一条与该用户组相关的记录。

2、删除用户组 groupdel 组名

3、修改用户组属性 groupmod [选项] 参数

选项:
-g	为用户组指定新的组ID
-n	修改用户组的组名
-o	允许用户创建组ID已存在的用户组

用法:
# groupmod -n <旧组名> <新组名>
# groupmod -o <组名> -g <已经存在的组ID>

4、用户组切换 newgrp 用户组

用户组分为基本组和附加组,将用户添加附加组后,用户可拥有对应组的权限。用户的基本组唯一,但附加组可以不唯一。用户可从附加组中移除,但不能从基本组中移除。

5、用户组管理

gpasswd命令用于管理用户组 gpasswd [选项] 参数

-a	添加用户到用户组
-d	从用户组中删除用户
-r	删除密码
-R	限制用户登入组,只有组中的成员才可以用newgrp加入用户组

用法:
# gpasswd -a user1 group1	将用户user1添加到group1

用户切换

1、使用su命令切换用户,可以任意用户切换 su [选项] 用户名

若选项和用户名缺省(默认),则表示切换到root用户,但此时保留原来用户的工作环境,若使用“su -”,则表示从当前用户切换到root用户,并切换到root用户的工作目录。

选项:
-c	执行完指定的指令后,切换到原来的用户
-l	切换用户的同时,切换到对应用户的工作目录,环境变量也会随之改变。
-m,-p	切换用户,不改变环境目录
-s	指定要执行的shell

2、sudo命令的格式sudo [选项] [参数]

sudo可使当前用户以其他身份来执行命令,若不指定用户名,则默认以root身份执行。在使用sudo命令时,用户需要输入自己的密码,密码验证在之后的5分钟内有效,若超过则需要重新验证。

使用sudo命令之前,需要先在etc目录下的sudoers文件中对可执行sudo指令的用户进行设置。sudoers文件内容须遵循语法规范,visudo命令可防止其他用户同时修改sudoers文件。

# visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
# 第二条语句是对root用户权限设置,作用:使root用户能够在任何情景下执行任何命令,
格式:
账户名	主机名称=(可切换的身份)	可用的命令

说明:
账户名:只有账户名被写入sudoers文件时,该用户才能使用sudo命令
主机名称:该参数决定此条语句中账户名对应的用户可以从哪些网络主机连接当前Linux主机,root用户默认可以			来自任何一台网络主机。
可用的命令:该参数指数此条语句中的用户可以执行哪些命令。注意,命令的路径为绝对路径。

以上的语句ALL分别代表任何主机,任何身份和任何命令。以用户user1为例,若要使用户user1能以root用户执行/bin/more命令,则应在sudoers文件中添加如下内容。
user1	ALL=(root)	/bin/more
保存退出后,切换到用户user1,使用命令`sudo -l`可查看该用户可以使用的命令。

当需要操作的用户较多时,如此操作显然相对麻烦,Linux系统支持为用户组内的整组用户统一设置权限。

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
"%"声明之后的字符串是一个用户组,该语句表示任何加入用户组wheel的用户,都能通过任意主机连接、任何身份执行全部命令。若想提升某些用户的权限为ALL,将它们添加到用户组wheel即可。

例子
%group1 ALL=(root)	/bin/more
禁用
%group1 ALL=(root)	!/bin/more

第三章:用户的权限

基本权限UGO

权限对应字符文件目录
r可查看文件内容可以列出目录中的内容
w可修改文件内容可以在目录中创建、删除文件
执行x可执行该文件可以进入目录

​ 常用的权限管理命令有chmod、chown、chgrp等,默认情况下,普通用户不能使用权限。

设置权限:

1、chmod更改权限,其功能为变更文件或目录权限(使用字符,使用数字)
语法:

chmod 	对象(u/g/o)赋值符(+/-/=)权限类型(rwx) 	文件/目录
选项:
-f	不显示错误信息
-v	显示指令执行过程
-R	递归处理,处理指定目录及其中所有的文件与子目录

# ll file1
-rw-r--r-- 1 root root 0 10月 17 17:31 file1
# chmod u+x,g+x file1	或	# chmod 754 file1
# ll file1
-rwxr-xr-- 1 root root 0 10月 17 17:31 file1
-rw-r--r--	. 	1   root 	root 	0 	6月  23 14:11 	fil
			链接	 属主	    属组	  大小

2、chown其功能为更改文件或目录的所有者。默认情况下文件的所有者为创建该文件的用户,或在文件被创建时通过命令指定用户,需要时可使用chown对文件的所有者进行修改。

命令格式 chown [选项] [用户] [文件或目录]

选项:
-f	不显示错误信息
-v	显示指令执行过程
-R	递归处理,处理指定目录及其中所有的文件与子目录

chown:设置文件属于谁,属组
	语法:	chown	用户名.组名	文件
					chown	user01.hr	/tmp/file1 

3、chgrp用于更改文件或目录的所属组,一般情况下,文件或目录与创建该文件的用户属于同一组,或在被创建时通过选项指定所属组,但在需要时,可通过chgrp命令更改文件的所属组。

# chgrp 组名 文件或目录

小结:chmod、chown、chgrp都可以对目录进行改权、改主、改组,但底下文件权限不会变,若要改变,使用-R递归操作

基本权限ACL

access contral list 限制用户对文件的访问
ACL是UGO的补充,或者说是加强版
命令:setfacl -m g:hr:rwx /home/file1

设置文件 -设置 对象:对象名:权限

[root@localhost tmp]# useradd alice
[root@localhost tmp]# useradd jack

[root@localhost tmp]# setfacl -m u:alice:rw /home/test.txt
[root@localhost tmp]# setfacl -m u:jack:- /home/test.txt
[root@localhost tmp]# getfacl /home/test.txt
getfacl: Removing leading '/' from absolute path names
# file: home/test.txt
# owner: root
# group: root
user::rw-
user:alice:rw-
user:jack:---
group::r--
mask::rw-
other::r--
#删除alice对test.txt文件的权限
[root@localhost tmp]# setfacl -x u:alice /home/test.txt
[root@localhost tmp]# getfacl /home/test.txt
getfacl: Removing leading '/' from absolute path names
# file: home/test.txt
# owner: root
# group: root
user::rw-
user:jack:---
group::r--
mask::r--
other::r--

特殊权限(了解)

1、特殊位suid:高级权限类型(suid,(sgid)针对文件/程序时,具备临时获得属主权限)
suid是针对文件所设置的一个特别的权限。
功能:使调用文件的用户临时具备属主的能力
普通用户不能查看root目录下的文件,但赋予/usr/bin/cat一个s权限后,普通用户可以cat,root文件

[alice@localhost ~]$ cat /root/file1.txt
cat: /root/file1.txt: 权限不够
[root@localhost ~]# chmod u+s /usr/bin/cat
[root@localhost ~]# ll /usr/bin/cat
-rwsr-xr-x. 1 root root 54080 820 2019 /usr/bin/cat
[alice@localhost ~]$ cat /root/file1.txt
123

2、文件属性chattr
i:在文件上启用这个属性时,我们不能更改、重命名或者删除这文件
a:允许在文件中追加操作

#chattr改变文件属性
[root@localhost ~]# chattr +i ./file1.txt
#lsattr列出文件属性
[root@localhost ~]# lsattr ./file1.txt
----i----------- ./file1.txt
#不允许修改、删除文件
[root@localhost ~]# rm -rf file1.txt
rm: 无法删除"file1.txt": 不允许的操作
#去除i属性
[root@localhost ~]# chattr -i ./file1.txt

3、进程掩码umask

第四章:进程管理

进程存在于计算机内存中,计算机内存中可同时存在多个进程,每个CPU上同时只会执行一个进程,但计算机上似乎能够同时运行多个进程。实际上这是计算机采用了“多道程序设计”技术,即计算机允许多个相互独立的程序同时进入内存,在内核的管理控制下,相互之间穿插运行。

进程状态

初始态、就绪态、运行态、睡眠态和终止态。

进程管理命令

1、ps 在命令行输入ps后按回车键就能查看当前系统中正在运行的进程。

选项:
a	显示当前终端机下的所有进程,包括其他用户启动的进程
u	以用户的形式,显示系统中的进程
x	忽略终端机,显示所有进程
e	显示每个进程使用的环境变量
r	只列出当前终端机中正在执行的进程
-a	显示所有终端机中除阶段作业领导进程(拥有子进程的进程)之外的进程
-e	显示所有进程
-f	除默认项外,显示UUID、PPID、C、STIME项
-o	指定显示哪些字段,字段名可以使用长格式,也可以使用“%字符”的短格式指定,多个字段名使用逗号分割
-l	使用详细的格式显示进程信息

进程是已启动的可执行程序的运行实例,进程有一下组成部分:
1、一个文件:
2、被分配内存空间:
3、有权限控制;
4、程序代码的一个或多个副本(也叫执行线程);
5、拥有状态

ps -ef 显示含义(查看进程的父子关系)

列的含义

字段名说明
UID该进程执行的用户id
PID进程id
PPID该进程的父进程id,如果一个程序的父级进程找不到,该程序的进程被称之为僵尸进程
Ccpu的占用率,其形式是百分数
STIME进行的启动时间
TTY终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程不是由终端设备发起的
TIME进程的执行时间
CMD该进程的名称或者对应的路径

案例(100%使用的命令)在ps的结果中过滤出想要查看的进程状态

#ps -ef |grep 进程名称
自定义显示内容
ps  axo  user,pid,ppid,%mem | head -3

ps aux命令展示的进程信息

user用户
PID进程的编号
%CPU占用CPU时间的百分比
%MEM占用内存空间的百分
VSZ RSS虚拟内存和实际内存占用大小
TTY终端类型
STAT运行,睡眠,停止,退出,僵死
START进程启动时间
TIME占用cpu的时间
COMMAND程序的路径和名称

2、top命令可以实时观察系统的整体运行情况,默认时间间隔为3s,即每3秒更新一次界面,是一个很实用的系统性能检测工具。

top [选项]

3、pstree

一个新进程由已存在的进程创建,创建新进程的进程与新创建的进程为父子进程,一个父进程可以创建多个子进程,由同一个进程创建的多个子进程又称为兄弟进程。

pstree命令可以以树状的形式显示系统中的进程,直接观察进程之间的派生关系

pstree [选项]

选项:
-a	显示每个进程的完整命令
-c	不使用精简标识法
-h	列出树状图,特别标明当前正在执行的进程
-u	显示用户名称
-n	使用程序识别码排序

4、pgrep

命令根据进程名从进程队列中查找进程,查找成功后默认显示进程的pid

5、nice

进程的优先级会影响进程执行的顺序,在linux系统中,可通过改变进程的nice值来更改进程的优先级

nice [选项] [参数]

如修改bash的优先级为5 nice -n 5 bash

6、jobs

使用jobs命令可以查看当前内存中的作业列表

7、bg和fg

使用快捷键Ctrl+Z也能将进程调入后台,但调入后台的进程会被暂时停止。若要将后台的命令调回前台继续执行,可以使用fg命令

fg 作业号

8、kill

kill命令一般用于管理进程,它的工作原理是发送某个信号给指定进程,以改变进程的状态,命令格式

kill 选项 [参数]

kill  序号(一般为9)  进程ID
killall 服务名

第五章:管道和重定向

重定向和管道符

FD,文件描述符,文件句柄进程使用文件描述符来管理打开的文件
作用:FD给文件一个描述符(软链接,数字范围0-255),进程调用文件时就不用使用长路径,直接使用文件描述符就可以调用文件进程了。
0号,标准输入(一个文件代表键盘,按键盘数字先进入文件中,然后通过0号FD进入程序中去),文件结果通过1号描述符输出在显示器文件,然后在显示器/终端显示出来,2号描述符,标准错误输出,输出在显示器文件,然后在显示器/终端显示出来。

总结:FD是访问文件的标识,即链接文件,省去了冗长的绝对路径
0 是键盘只读
1,2 是终端可以理解为屏幕
3+ 是文件,可写可读(文件开的越多,数字越多)

输出重定向

可分为两种:正确输出和错误输出

正确输出:1> 等价于 > 1>> 等价于 >>
错误输出:2> 没有简写 2>> 没有简写
将正确输出和错误输出重定向到一个文件里

[root@localhost tmp]# ls /aaaa /home &>file11
[root@localhost tmp]# cat file11
ls: 无法访问/aaaa: 没有那个文件或目录
/home:
admin
alice
gougou10
jack
test.txt
user01
xulei

输入重定向发送邮件

默认邮件发送的过程:
向系统其他用户发送邮件

[root@localhost tmp]# mail -s 'ssss' xulei			'ssss'  为标题
你好呀!hello,world								   内容
.												按键 . 表示输入完成
EOT												
[root@localhost ~]# su - xulei						查看mail消息
上一次登录:三 623 13:23:16 CST 2021pts/0 上
[xulei@localhost ~]$ mail				回车后按键1,再回车
#使用重定向快速创建邮件
[xulei@localhost ~]$ vim test01.txt
[xulei@localhost ~]$ mail -s '标题' admin < test01.txt	将内容以文本编辑发送
[xulei@localhost ~]$ su - admin
密码:
上一次登录:五 625 17:46:20 CST 2021:0 上
[admin@localhost ~]$ mail

管道符

进程管道

1、管道命令可以将多条命令组合起来,一次性完成复杂的处理任务

[root@localhost admin]# cat /etc/passwd | grep 'root'
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost admin]# cat /etc/passwd | grep 'root' |tail -1
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost tmp]# cat /etc/passwd |grep ntp
ntp:x:38:38::/etc/ntp:/sbin/nologin
[root@localhost tmp]# cat /etc/passwd |grep ntp |cut -d: -f3  #cut命令,-d:(以冒号作为分隔符)-f3(切割第三列)
38

tee管道

三通管道,既交给另一个程序处理,又保存一份副本。

passwd内容放到file1.txt,并且显示第一行在终端(类似水管的三通管)
[root@localhost tmp]# cat /etc/passwd |tee file1.txt |head -1

参数传递Xargs

cp、rm一些特殊命令就是不服其他程序

[root@localhost tmp]# touch file{1..5}	创建1-5的文件
[root@localhost tmp]# cat files.txt		以下是文本内容
/tmp/file1
/tmp/file2
[root@localhost tmp]# cat files.txt |rm -rvf		将文本的内容传到rm执行,结果失败
[root@localhost tmp]# cat files.txt |xargs rm -rvf	 使用xargs参数,执行成功,v参数:显示信息
已删除"/tmp/file1"
已删除"/tmp/file2"

使用<<EOF EOF指令

#写一个多行的代码文本
[root@localhost dir1]# vim js.sh   			以下是脚本的内容
cat > /tmp/dir/tt.txt <<EOF					<<EOF  EOF用法(cat内容,将内容定向到tt.txt文中
11111111111--第1行										
22222222222--第2行							 具体内容  	33333333333--第3行					
EOF

[root@localhost dir1]# chmod +x js.sh
[root@localhost dir1]# ./js.sh
[root@localhost dir1]# cat tt.txt
11111111111--第1行
22222222222--第2行
33333333333--第3行

第六章:磁盘管理

存储管理

需要掌握的知识点:
1、磁盘长什么样?
2、磁盘有哪些?
3、什么是好磁盘,什么是次磁盘
4、把磁盘的软件操作(分区格式化)
5、写入输入数据到磁盘

磁盘类型:机械硬盘 由:盘片、马达、磁头、磁臂等组成的机器结构存储器

固态硬盘:由芯片和集成电路组成。尺寸:2.5英寸、3.5英寸

转速:每分钟旋转的速度
5400转、7200转、15000转

接口:早期使用IDE,现在使用SATA

厂商:西部数据、希捷、三星、日立、金士顿

磁盘命名方式

kernel对不同接口硬盘的命名方式:如RHEL7/CentOs

(略)IDE(并口)

SATA(串口):/dev/sda sda是一个文件,s代表sata就是串口,d代表磁盘,a代表第一块

磁盘分区方式

MDR:主引导记录(MBR,Master Boot Record)是 硬盘
支持最大磁盘容量是<2TB,设计时分配四个分区。如果超过4个分区,需放弃主分区,改为扩展分区和逻辑分区。

GPT: 全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体磁盘的分区表的结构布局的标准。
支持最大磁盘容量是>2TB,分配128个分区

使用MBR方式创建分区,可通过fdisk命令进行管理 fdisk [选项] [磁盘]

选项:
-l	详细显示磁盘及其信息
-s	显示磁盘分区容量(单位为block)
-b	设置扇区大小(扇区大小取值为512、1024、2048或4096,单位为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的内存。

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

交换分区管理Swap

作用:“提升”内存的容量,防止OOM(out of memory)
实际生产:大于4GB而小于16GB,最小需要4GB交换空间
大于16GB而小于64GB,最小需要8GB交换空间
大于64GB而小于256GB,最小需要16GB交换空间

[root@localhost admin]# free -m					查看挂载信息
             total    used     free   shared  buff/cache   available
Mem:         972      428       201      10       342         391
Swap:        3271      0        3271
----------------------------------------------------------------------------------
增加交换分区内存空间(以磁盘sde为例)
[root@localhost admin]# fdisk /dev/sde	  #加一个扩展分区为1号  e  在扩展分区上加一个100M的逻辑分区l  分区为2号
[root@localhost admin]# mkswap /dev/sde2
[root@localhost admin]# swapon /dev/sde2
[root@localhost admin]# free -m
              total    used     free   shared  buff/cache   available
Mem:            972    428       201      10       342         391
Swap:          3371      0      3371
由上可见,swap交换分区多了100M

补充:在挂载的磁盘上/mnt/disk1写入数据(创建1-5的文件夹,数据指向/dev/sdb1),然后卸载磁盘/dev/sdb1,进入/mnt/disk1并没有1-5的文件夹(此时数据指向sda),此时再创建6-10的文件夹,挂载/dev/sdb1后,/mnt/disk1并没有6-10的文件夹,除非将挂载点转到/mnt/disk2。

逻辑卷LVM

目的:管理磁盘的一种方式,性质与基本磁盘无异
特点:随意扩张大小
PV:物理卷
VG:卷组
LV:逻辑卷

1、pvcreat命令用于将磁盘分区初始化为物理卷,命令格式 pvcreate [选项] 参数

选项:
-f	强制创建物理卷,不需要用户确认
-u	指定设备的UUID(通用唯一识别码)
-y	所有的问题都用yes回答
-z	是否使用前四个扇区(y/n)

2、vgcreat命令用于将物理卷整合为卷组,语法格式 vgcreate [选项] 卷组名称 物理卷路径1 物理卷路径2 ……

选项:
-l	设置卷组上允许创建的最大逻辑卷数
-p	设置卷组上允许添加的最大物理卷数
-s	设置卷组上的最小存储单元(PE)

用法:
# 将物理卷/dev/sdc2、/dev/sdc4整合为卷组,并命名为vg1
vgcreate vg1 /dev/sdc2 /dev/sdc4
或者vgcreate vg1 /dev/sdc{2,4}

# 将物理卷/dev/sdc2、/dev/sdc4整合为卷组,设置最小存储单位为8MB,并命名为vg2
vgcreate -s 8M vg2 /dev/sdc2 /dev/sdc4

3、lvcreate命令的功能是在已经存在的卷组中创建逻辑卷,命令格式

lvcreate [选项] 卷组名/路径 物理卷路径

-n	逻辑卷名称

4、vgdisplay用于显示LVM卷组信息,命令格式 vgdisplay [选项] 卷组

选项:
-s	使用短格式输出信息
-A	仅显示活动卷组的属性

5、lvextend

当逻辑卷的可用空间不足时,需要为其拓展存储空间。使用LVM机制管理磁盘时可通过lvextend命令动态地调整分区大小,命令格式 lvextend [选项] 逻辑卷

选项:
-l	以PE为单位指定逻辑卷容量
-L	指定逻辑卷的容量,单位B/S/K/M/G/T/P/E

6、lvremove命令用于删除指定的LVM逻辑卷,若逻辑卷已经被挂载到系统中,则应先使用unmount命令将其卸载,再进行删除,命令格式 lvremove [选项] 逻辑卷

lvremove命令的常用选项为-f,其功能为强制删除指定逻辑卷

删除卷组、物理卷分别使用vgremove、pvremove,删除是应逆向删除,即先删除逻辑分区、卷组,最后删除物理卷。

案例
[root@localhost admin]# pvcreate /dev/sdf			#创建物理卷
  Physical volume "/dev/sdf" successfully created.
[root@localhost admin]# vgcreate  vg1 /dev/sdf	 	#创建卷组
  Volume group "vg1" successfully created
[root@localhost admin]# lvcreate -L 200M -n lv1 vg1
  Logical volume "lv1" created.
  --------------------------------------
lvcreate -L 200M -n lv1 vg1
创建逻辑卷 	大小    卷名 卷组

[root@localhost admin]# mkdir /mnt/lv1
[root@localhost admin]# mount /dev/vg1/lv1 /mnt/lv1    #挂载
[root@localhost admin]# df -hT
[root@localhost ~]# dd if=/dev/zero of=/mnt/lv1/1.txt bs=1M count=5000
#向lv1写入5G的数据,下面进行扩容实验
[root@localhost ~]# pvcreate /dev/sdg		#将sdg加入到物理卷
[root@localhost ~]# vgextend vg1 /dev/sdg	 	#sdg扩展到vg1卷组
[root@localhost ~]# resize2fs /dev/vg1/lv1		#调整逻辑卷文件系统大小

文件系统

蓝色的小方块在文件系统中称为块(block),每一块可以存放4096个字节(4K),如果一个文件有5K,它会占用2个块。如果file1占用1,2,5,file2占用3,4,产生文件碎片,使用inode文件记录file文件的碎片的存放位置。之所以一个500G的硬盘,实际没用500G显示,是因为它inode和每个块之间有

block:存储文件的实际数据,实际存储文件的内容,若文件较大,会占用多个 block,block大小默认为4K。

inode(索引节点):每产生一个小片,就是一个inode,每个小片对应的就是块的位置,我们想调用块的时候就找索引。

记录文件的属性(文件的元数据metadata,元数据,文件的属性,大小,权限,属主,属组,连接数,块数量,块的编号),一个文件占用一个inode,同时记录此文件所在的block number。inode大小为128bytes。

(略)superblock:通俗易懂说,就是一堆inode和block的统称。

每使用一次mkfs.ext4,就是创建一个文件系统.

使用df -i 查看sdb2可以存放多少个文件

[root@localhost disk1]# df -i |grep sdb2
/dev/sdb2                 51200      11     51189       1% /mnt/disk2
						总创建量  已用量	剩余
[root@localhost disk2]# ls
lost+found
[root@localhost disk2]# touch file{1..51189}		#创建51189个文件
[root@localhost disk2]# touch aaa.txt			大于51189则无法创建
touch: 无法创建"aaa.txt": 设备上没有空间
[root@localhost disk2]# df -i |grep sdb2
/dev/sdb2                 51200   51200       0     100% /mnt/disk2
#表示inode已经用完了,不能继续创建文件夹,但可以在其中的文件夹中写入数据。

结论:磁盘空间的限制根据inode和block两方面,请清理掉填满的分区,避免不必要的报错。

文件链接

符号链接

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

[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
#把源文件删除,硬链接文件还存在原有数据

RAID磁盘列阵(了解)

RAID 0
将N块硬盘上选择合理的带区来创建带区集。其原理是将类似于显示器隔行扫描,将数据分割成不同条带(Stripe)分散写入到所有的硬盘中同时进行读写。多块硬盘的并行操作使同一时间内磁盘读写的速度提升N倍。

RAID 1
称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%。

RAID5(分布式奇偶校验的独立磁盘结构)。
从它的示意图上可以看到,它的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它的意思也相同。RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错,RAID5至少需要3块磁盘。

缺点:

1、RAID0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。 2、RAID1磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别 中最低的。
3、RAID0+1以理解为是RAID 0和RAID 1的折中方案。RAID 0+1可以为系统提供数据安全保障,但保障程度要比 Mirror低而磁盘空间利用率要比Mirror高。

创建RAID

Linux系统中使用mdadm命令创建和管理RAID,语法格式 mdadm [模式] <RAID设备名> [选项] <组件设备名>

模式:
-A/--accemble			组合,组装一个预先存在的阵列
-B/--build				构建,构建一个不需要超级块的阵列,阵列中的每个设备都没有超级块
-C/--create				创建,创建一个新阵列
-F/--follow/--monitor	 监视,监视一个或多个阵列的状态
-G/--grow				增长,更改RAID的容量或阵列中的设备数目
--auto-detect			自动侦测,请求内核启动任何自动检测的阵列
-I/--incremental		增加,向阵列中添加单个设备,或从阵列中删除单个设备

在-C模式下选项

-l	指定RAID级别
-n	指定设备数量
-a{yes/no}	是否自动为其创建设备文件
-c	指定数据块大小
-x	指定空闲盘个数,空闲盘可自动顶替损坏的工作盘

实验:准备四块硬盘

[root@localhost ~]# mdadm -C /dev/md0   -l5  -n3 -x1 /dev/sd{h,i,j,k}
			创建RAID    RAID的名称	RAID5 数据盘3  热备盘数量1    磁盘
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# mkfs.ext4 /dev/md0		格式化
[root@localhost ~]# mkdir /mnt/raid5		创建挂载文件
[root@localhost ~]# mount /dev/md0 /mnt/raid5	挂载
[root@localhost ~]# cp -rf /etc/ /mnt/raid5/etc		使用raid5
[root@localhost ~]# df -hT |tail -1
/dev/md0                ext4      9.8G  126M  9.1G    2% /mnt/raid5
#添加了4块5G的盘,显示了10G。因为两块盘是数据盘,第三块的校验盘,第四块的热备盘。
[root@localhost ~]# mdadm -D /dev/md0		-D 查看raid5详细信息

破坏一块磁盘

[root@localhost ~]# watch -n0.5 'mdadm -D /dev/md0 |tail -10'
#实时查看信息
[root@localhost ~]# mdadm /dev/md0 -f /dev/sdh -f /dev/sdh -r /dev/sdh
#模拟损坏的数据盘

阶段插图

第八章:查找和压缩

文件查找

which :命令查找

alias:起别名(可以输入别名就可以执行对应的命令),语法:alias 别名=‘ls -l’

locate:文件查找,语法:locate 文件名

find:任意文件查找,语法:find 路径 选项 文件名(文件名记不全可用代替,如hos 就会查找以hos字样的文件)

选项:
-name :按照文件名区分大小写
-iname:不区分大小写 
-size:按文件大小查找(如后接 +5M)
-maxdepth:按照目录级查找(如find  / maxdepth 4  -a  -name  "文件字眼" )
		从根开始向下查找,包括根目录,总共4级
-user/group:  根据用户/组查找(如 find  /home -user  alice)
-type:按照文件类型查找(find  /dev/  -type b)(b:块设备,f:普通文件)
-perm:按照文件权限查找

find后接命令:
find ………… -delete (表示将查到的内容删除)
find ………… -ok cp -rvf {} 目标目录 ; (-ok表示连接符,{}表示引用查找的内容后的文件,;表示结束符)

文件打包及压缩

打包

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

压缩和解压

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 6月  27 23:54 etc-gz.tar.gz
-rw-r--r--. 1 root root  38M 6月  27 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 6月  28 00:18 etc.bz
-rw-r--r--. 1 root root  12M 6月  28 00:17 etc.gz
-rw-r--r--. 1 root root  38M 6月  28 00:17 etc.tar
-rw-r--r--. 1 root root 8.3M 6月  28 00:19 etc.xz

第九章:软件包管理(重点)

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 ftp
查询软件信息:rpm -qi 软件名称

删除软件包:rpm -evh wget-1.14-18.el7_6.1.x86_64(卸载的是软件,不用加.rpm后缀)
强制删除软件包(不安装依赖):rpm -ivh 软件包 --force
删除软件包(不检查依赖):rpm -ivh 软件包 --nodeps

无法自动安装依赖性软件包

出现下载错误信息:可能出现的原因,/etc/yum.repos.d 文件配置错误

YUM工具

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

案例

配置本地YUM源

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

本地源:系统安装光盘
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@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@localhost yum.repos.d]# yum makecache		#更新YUM仓库

源码包管理

缺点:配置复杂

认识源码包(了解)

获取源码包

来源:官方网站(如:Apache:www.apache.org Nginx:www.nginx.org
Tengine:www.tengine.taobao.org

在宿主机的源码包上传到VMare机器

#查找rz命令需要什么软件支持
#rz:将window的文件拷贝到Linux			sz:将Linux的文件拷贝到Windows
[root@ftp-server ~]# yum provides rz		
[root@ftp-server ~]# yum install -y lrzsz-0.12.20-36.el7.x86_64
#使用rz命令,打开在弹窗的文件包,即上传到当下目录
[root@ftp-server ~]# rz

第十章:任务计划

一次性调度执行 at

语法:at

案例:now +5min
teatime tomorrow(teatime is 16:00)
noon +4 days
5pm august 3 2029
4:00 2021-11-27

在未来时间执行调度(需要在root下执行):

[root@localhost admin]# at now+1min
at> useradd aaa
at> <EOT>
job 3 at Sun Jul  4 11:41:00 2021
[root@localhost admin]# id aaa
uid=1006(aaa) gid=1008(aaa) 组=1008(aaa)

循环调度执行cron

用于设置周期性被执行的指令,该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供以后读取和执行。想让计算机干什么,就往里面写指令,不执行的就删掉。

1、程序不执行问题,查看进程状态

[root@localhost admin]# systemctl status crond.service 
[root@localhost admin]# ps aux |grep crond
root       1225  0.1  0.1 126388  1688 ?        Ss   11:35   0:01 /usr/sbin/crond -n

计划任务存储位置 /var/spool/cron

[root@localhost admin]# crontab -e			#制定任务
语法格式:分别代表分,时,日,月,周
* * * * * /usr/sbin/reboot			#/usr/sbin/reboot	执行命令的文件
#把计划任务直接删除,即取消计划任务
[root@localhost admin]# crontab -l			#查看任务
*/5 * * * * mysql_bash.sh				    #每隔五分钟执行一次
0 2 1,4,6 * * mysql_bash.sh					#每月的1,4,6日两点执行一次
0 2 1-6 * * mysql_bash.sh					#每月的1-6日两点执行一次

第十一章:日志管理(重点)

常用是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 

日志进程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

rsyslog配置文件

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

日志轮转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			#查看当下时间
2021年 07月 09日 星期五 23:20:49 CST
[root@ftp-server log]# date 07092322		#修改系统时间(月日时分)
2021年 07月 09日 星期五 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

日志安全

[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、找到网卡文件;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

常用:ping -c1000 -i 0.01 www.baidu.com

使用traceroute 命令

traceroute www.baidu.com #测试ping百度经过多少个网关
traceroute -m 10 www.baidu.com #设置ping百度10个网关
traceroute -n www.baidu.com #只显示ip地址
#探测包使用基本UDP端口设置6888
traceroute -p 6888 www.baidu.com
#对外探测包响应时间为3秒
traceroute -w 3 www.baidu.com

第十三章 :网络管理实战

OSI模型

指的是开放系统互联模型,由国际标准化组织(ISO)制定
七层模型:应用层、表示层,会话层、传输层、网络层、数据链路层、物理层

OSI开放系统互联

应用层:提供应用程序间通信
表示层:处理数据格式,数据加密
会话层:建立、维护和管理会话
传输层:建立主机端到端的连接
网络层:寻址和路由选择
数据链路层:提供介质访问、链路管理
物理层:比特流传输

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

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

tcp协议的3次挥手

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

文件传输协议:是TCP/IP协议组的协议之一
控制端口 command 21/ftp
数据端口 data 20/ftp

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

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

第十七章:网站服务

概念

前言:UI的转换:B/S架构(UI指的是用户接口,B/S指的是浏览器和服务器)

名词: HTML(超文本标记语言)
网页(使用HTML,PHP,JAVA语言个格式书写的文件)
主页(网页呈现给用户的第一个页面)
网站(多个网页组成的一台网站服务器)
URL(统一资源定位符)

  • 23
    点赞
  • 186
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值