一,Linux文件管理
目录
Open System Interconnection(开放系统互联网模型),定义了不同计算机互联的标准,设计和描述了计算机网络通信的框架。
OSI 全世界网络通信的工作分为7层 应用层:应用程序/原始数据 qq,爱奇艺 ;
快捷光标管理
ctrl+a 移到命令行首
ctrl+e 移到命令行尾
ctrl+u 从光标处删除至命令行首
ctrl+k 从光标处删除至命令行尾
;与 &&, ||
;分号用于在同一行中分隔多个命令,并按顺序依次执行它们。每个命令都会独立执行,无论前一个命令是否成功。
&& 逻辑与符号用于连接两个命令,只有当第一个命令成功执行(返回值为0)时,才会执行第二个命令。如果第一个命令失败(返回值非0),则第二个命令不会执行。
|| 双或符号用于连接两个命令,只有当第一个命令失败执行(返回值非0)时,第二个命令才会被执行。
查看ip
ip a
ip -f inet a show dev ens33
配置阿里云yum源方法
1、mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
3、yum makecache
配置本地YUM源方法:
rm -rf /etc/yum.repos.d/* && \
echo "10.35.152.250 package.qf.com package2.qf.com" >>/etc/hosts && \
curl -o /etc/yum.repos.d/centos7.repo 10.35.152.250/repo/centos7.repo && \
yum clean all && \
yum makecache && \
yum repolist
rocky默认源配置阿里源:
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/rocky-*.repo
dnf makecache
rocky9安装epel源
dnf -y install epel-release
启动网卡获取ip
ifup ens33
centos7固定IP地址
cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.17.2
PREFIX=24
#NETMASK=255.255.255.0
GATEWAY=192.168.17.2
DNS1=223.5.5.5
DNS2=223.6.6.6
rocky9固定IP地址
cat /etc/NetworkManager/system-connections/ens33.nmconnection
[ipv4]
method=manual
address=192.168.100.136/24,192.168.100.2
dns1=223.5.5.5
dns2=223.6.6.6
nmcli c reload
systemctl restart NetworkManager
修改系统时间
date -s "2022-01-01 10:00:00"
同步系统时间
ntpdate time.windows.com
修改硬件时间
hwclock --set --date " 2022-01-01 10:00:00"
格式化显示时间
date +%F 显示当前年月日:2024-09-19
date +%x 以中文显示当前年月日:2024年09月19日
date +%T 显示当前时间到秒:20:57:35
date +%X 以中文显示当前时间到秒:09时40分53秒
date +%Y 只显示年:2024
date +%y 只显示年后两位:24
date +%m 只显示月份:09
date +%d 只显示几号:19
date +%H 只显示小时:09
date +%M 只显示分钟:40
date +%S 只显示秒:53
date +"%m%d"
date +"%m-%d"
date +"%m*%d"
date +"%m_%d"
系统初始化
防火墙:
查看:systemctl status firewalld
关闭:systemctl stop firewalld
永久关闭:systemctl disable firewalld
SELINUX:
查看:getenforce
关闭:setenforce 0
永久关闭:
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
ls
-l 长格式显示
-h 人性化显示
-a 显示所有文件包括隐藏文件
-d 查看指定目录
-t 按照时间排序
-r 反转
设置别名 alias
alias 别名='命令
unalias 别名
别名永久生效
/root/.bashrc
alias 别名='命令'
创建文件
touch 文件名字
查看当前所在位置
pwd
创建目录
mkdir 目录名
创建多级目录
mkdir -p 多级目录
复制文件
cp 文件名 文件夹
复制目录
cp -r 被复制目录 指定目录
移动命令
mv 被移动目标 指定目标文件路径
mv 被修改文件名称 要修改为文件名称
删除命令
rm 文件
rm -rf 不询问且目录和目录下文件也可删除
rm -rf /* 删除根目录
查看命令
查看文件全部内容
cat -n (显示行号) -A 包括控制字符(换行符/制表符) 文件名
翻页
more 文件
less 文件
查看头部(默认十行)
head
head -3 文件 (指定查看头部几行)
查看尾部(同理)
tail 文件
tail -1 /etc/passwd 查看文件最后一行
tail -f /var/log/secure #-f 动态查看文件的尾部
过滤关键字
grep 过滤的关键字 文件
grep 'root' /etc/passwd
修改文件内容 vi/vim
插入
i(光标前插入) o(空一行插入) a(光标后退一行插入) A(行尾插入)
末行模式
按esc + 冒号(末行模式) 输入 w保存 wq保存退出 q直接退出 q!(强制退出)
查找替换
:1,3(一到三行)s/被替换内容/ 替换内容/ %(所有行) g(全局替换)
s/old/new/ 替换第一行
:%s/// 所有行的第一个
:%s///g 全局替换
:3s/// 替换第三行
设置环境
set nu #设置行号
set list #显示控制字符
set nonu #取消设置行号
set ts=4 #设置制表符长度
另存为
w 新文件名
光标定位键盘
0 $ #行首行尾
gg #页首--文本顶端
G(shift+g) #页尾--文本底部
3G #进入第三行
/string #查找字符,n下一个,N上一个 (n N 可以循环的)
vim操作
yy #复制
3yy #从光标开始复制3行。在最后粘贴
ygg #从当前光标复制到页首
yG #从光标开始复制到页尾
dd #删除一行
3dd #从光标开始删除3行
dgg #从光标开始删除到页首
dG #从光标开始删除到页尾
d^ #删除当前光标之前的内容
p #粘贴到本行的下一行
大P #粘贴到本行的上一行
x #删除光标所在的字符
D #从光标处删除到行尾
u #undo撤销
r #可以用来修改一个字符
1,5 w /tmp/1.txt 另存为
x 保存并退出
X 加密
切换目录---cd
. 表示当前目录
cd .. 回到上一级目录等同于相对路径
cd 或者 cd ~ 直接回到家目录
cd /home/alice 切换目录=绝对路径
cd - 回到上一次所在目录,从哪来回哪去。
文件基本信息
时间类型
访问时间:atime,查看内容
修改时间:mtime,修改内容
改变时间:ctime,文件属性,比如权限,mv改名
二.Linux用户管理
用户与账号
用户的作用:查看当前登录用户信息: id whoami
用户基本信息文件 /etc/passwd
root:x:0:0:root:/root:/bin/bash (root是用户名,x是密码占位符,0是uid用户的身份证号0是特权用户,1-999是系统用户,1000+是普通用户;0:GID:group组号,root:描述身份:比如经理manager,/root:家目录:登陆系统时,所在目录,/bin/bash:登陆shell:命令解释器)
用户密码信息文件 /etc/shadow(9列)
root:$1$MYG2N:15636:0:99999:7: : :(1,登录名 2,加密后的密码 3,最后一次修改口令时间,时间天数 4,修改口令间隔最小时间天数 5,口令保持最大有效天数 6,从系统开始警告到密码失效的天数 7,过期了仍然有效的最大天数 8,账号有效时间到,就不能用了 9,保留)
组信息文件 /etc/group
root:x:0: (组名:组密码:组ID:组成员默认为空)
创建组
groupadd hr 创建一个用户组叫hr
groupadd net01 -g 2000 #创建组叫net01,并指定gid为2000
删除组
groupdel hr 删除组hr
修改组
groupmod hr -g 5000 #更改组id
将存在的用户添加到组中
gpasswd -a xiaozhang group_name 将一个用户加到用户组
gpasswd -M user1 group_name 将一个或多个用户加到用户组中
创建用户
useradd xiaoming //创建用户
useradd user02 -u 503 #指定uid为503
useradd user05 -s /sbin/nologin #创建用户并指定shell
useradd user07 -G it,hr #创建用户,指定附加组
useradd user10 -u 4000 -s /sbin/nologin
删除用户
userdel -r user02 //删除用户user2,同时删除用户家目录
用户密码
passwd #root用户给自己设置密码
passwd alice #root用户可以给任何用户设置密码
echo '123456' | passwd --stdin username
修改用户信息
usermod -u new_id jack 修改UID
usermod -s /sbin/nologin user07 #修改用户的登录shell
usermod 用户名 -aG 组名 添加用户到附属组++++
usermod -g 指定主组
usermod -G 指定附加组,会覆盖其他的附加组
三.Linux文件权限管理
Linux用户权限解析
ugo权限概述(赋予某个用户或组能够以何种方式访问某个文件资源,如会员特权,看VIP限定)
权限对象:属主 u 属组 g 其他人 o 所有人 a(u+g+o)
权限类型: 读 r=4 写 w=2 执行 x=1
查看权限 ls -l 文件 -rw-r--r--. 1 root root 179 5月 25 14:27 /root/1.txt (- 文件类型,rw-主人的权限,属主;r--属组的权限;r--其他人的权限;.权限的扩展 ;1 文件链接 ;root文件属主;root文件的属组 ; 179 大小;最后修改时间 ; 文件名和路径)
RWX对文件的影响
r:只读。cat head tail less more vi vim tac tee
w:只写。可以写,但是看不到原来的内容,强制写入会覆盖原来的文件内容
x:执行。只有x权限,没有任何意义,至少要加上r的权限
文件的x执行权限要谨慎给予
RWX对目录的影响
r:只读。可以列出目录下的文件名,但是会报错,(因为没有执行权限)
w:只写。没有任何意义,至少要加上x的权限
x:执行,能否进入这个目录。
目录至少要有rx的权限。w权限要谨慎给予
设置权限
一,更改权限 :
1.使用符号
u用户 g组 o其他 a 所有人 r读 w写 x执行
语法 chmod 对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x) 文件/目录
增加执行权限 chmod u+x file1.txt 取消执行权限 u-x
属主属组读写,其他人只读 ug=rw,o=r
2.使用数字
4读 2写 1执行
chmod 644 文件(第一位是文件的主人的权限,第二位是文件的属组权限,
第三位是文件其他人的权限)(6是读和写相加)
高级权限
suid
对象:命令文件
chmod u+s /usr/bin/cat /usr/sbin/rm
效果:普通用户可以像root用户一样使用这个命令
sgid
对象:目录
chmod g+s dirname
效果:任意用户在这个目录下创建的文件或者目录,属组继承父目录的属组
sticky:
对象:目录
chmod o+t dirname
效果:目录的文件只有创建者和root用户可以删除
visudo修改权限
visudo
101行 jack ALL=(ALL) NOPASSWD: ALL #添加内容
特殊权限
指定用户对某个文件的权限
xiaocai /opt/a.sh rwx
getfacl filename
授权:
setfacl -m u:username:rwx filename
回收:
setfacl -m u:username:--- filename
setfacl -x u:username filename
setfacl -b filename
隐藏权限
查看:lsattr
授权:chattr +i 文件 无法修改任何
chattr +a 只能追加文件内容
chattr -A 文件访问时间不变
二,更改属主,属组
chown 设置一个文件属于谁
语法 chown 用户名.组名 文件 /(目录 -R 目录及目录下所有文件一起更改)
四.Linux进程及磁盘操作
什么是进程?
进程是已启动的可执行程序的运行实例,进程有以下部分组成: 1,已分配内存的地址空间 2,安全属性,包括所有权凭据和特权 3,程序代码的一个或多个执行线程 4,进程状态
进程:是程序运行的过程,动态,有周期及运行状态
程序:二进制文件,静态 /usr/bin/passwd,/usr/sbin/useradd
进程与线程的区别
进程是独立的执行实体,拥有独立的资源,而线程是在进程内部运行的,共享进程的资源。
- 创建和销毁进程的开销较大,而线程的创建和销毁相对较轻量级。
- 进程间的切换开销较大,线程间的切换开销较小。
- 进程之间通信和同步需要使用操作系统提供的机制,线程间通过共享内存等方式进行通信和同步。
- 进程间相互独立,一个进程的崩溃不会影响其他进程,而线程共享同一个进程的资源,一个线程的错误可能导致整个进程崩溃。
简而言之,进程是独立的,资源独立,切换开销大;线程是共享的,资源共享,切换开销小。
进程管理 process
静态查看进程 ps(precess status)进程状态
进程命令: ps aux 1.USER 2.PID 3. %CPU 4.%MEM 5.VSZ 6.RSS 7. TTY 8.STAT 9.START 10.TIME 11.COMMAND
(1.运行进程的用户;2.进程ID;3.CPU占用率;4.内存占用率;5.占用虚拟内存;6.占用实际内存;7.进程运行的终端;8.进程状态;9.进程启动时间;10.进程占用CPU总时间;11.进程文件,进程名)
查找进程
ps aux | grep 要查找的进程
进程排序
ps aux --sort %cpu(由小到大) -%cpu (由大到小)
进程的父子关系
ps -ef PPID 父进程ID
查看端口
yum install lsof #安装软件包
lsof -i :80 #端口号,这能查看带端口的进程 端口号只有整数,范围是从0 到65535
通过使用 -p
选项后跟进程ID,可以查看某个特定进程打开了哪些文件
通过使用 -u
选项后跟用户名,可以查看某个特定用户打开了哪些文件
查网络进程和正在监听的端口
netstat -lntp
ss -lntp
-a 显示全部的进程
-u 显示udp
-n 以数字的形式显示协议名称
-t tcp
-p:显示进程的名称和pid
-l :只显示正在被监听的端口
参数解释:
recv-Q: 网络接收队列。表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service攻击。
send-Q: 网路发送队列。对方没有收到的数据或者说没有Ack的,还是本地缓冲区.如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。
Foreign Address: 与本机端口通信的外部请求
查看单个PID
最后一个pid为主进程的,其余为子进程 pidof httpd
第一个pid为主进程,其余为子进程 pgrep httpd
进程状态--了解
STAT(进程状态):R 运行 S 睡眠 T 停止的进程 Z 僵尸进程 X 死掉的进程
Sl l以线程的方式运行 ;Ss s进程的领导者,父进程 ;R+ +表示是前台的进程组 ; S< <优先级较高的进程 ; SN N优先级较低的进程
动态查看进程top
top 上半:top tasks %cpu kib Mem kibSwap (程序名;总进程数;cpu使用占比;物理内存k;交换分区)
top内部常用命令:h 或? 帮助 M 按内存的使用排序 P按cpu使用排序 N 按pid的大小排序 z 彩色 Z设置颜色 < 向前 >向后
top使用技巧: top (回车,立刻刷新。按z彩色显示,按F,通过光标设置列的顺序。)
top -d 1(每1秒刷新) top -d 1 -p 10126 (查看指定进程的动态信息) top -d 1 -p 10126,1 (查看10126和1号进程)
us: 用户态进程占用cpu
ni: nice值
id: cpu空闲率
wa: cpu等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了
hi:硬中断,请求插队
si:软中断
st:停止
PR 优先级
VIRT 进程使用的虚拟内存总量,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。
SHR 共享内存大小,单位kb
计算cpu负载:load average的三个值: 0.10, 0.16, 0.12,分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。
在工作中必须监控的东西 load average(平均负载)等待cpu处理的队列长度 也是个数。
1分钟 第一个数字 5分钟 第二个数字 15分钟 第三个数字
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。 renice -n -10 pid
查看cpu负载及已经登陆到终端的进程信息
w
查看当前CPU负载
uptime
查看内存使用
free -m
查看版本
cat /etc/redhat-release
看查正在运行的内核版本
uname -a
查看内核版本
uname -r
修改主机名
hostnamectl set-hostname xxxx
安装下载上传工具
yum install -y lrzsz
上传
# rz
下载
# sz 文件
将程序挂在后台持续运行(允许用户在退出终端或注销系统)
nohup 程序 &
作业控制
jobs #查看后台的工作号
bg %2 #让暂停的程序在后台运行,%是用来修饰job number,2就是job number。(程序的工作号)
fg %1 #将后台的程序调到前台
使用信号控制进程kill
信号种类 (给进程发送信号,kill -l 列出所有支持的信号) kill -信号编号 PID
-1 HUP 重新加载进程或者重新加载配置文件,PID不变
-9 KILL 强制杀死
-15 TERM 正常杀死(这个信号可以默认不写)
-18 CONT 激活进程
-19 STOP 挂起进程
重定向
FD简介 file descriptors,FD,文件描述符,文件句柄。进程使用文件描述符来管理打开的文件。句柄 0 ,关联硬件(stdin,标准输入); 1 (stdout,标准输出);2(标准错误输出)1,2关联显示器
重定向案例:输出重定向案例及综合案例: FD : 1 和 2 &> 1和2同时
标准正确输出 1 1>(可以省略为 >) 覆盖 1>>(可以省略为 >>)追加
标准错误输出 2 2> (无简写) 覆盖 2>> (无简写)追加
(cat > file <<EOF )是用来创建文件或者在脚本中使用,并向文件中输入信息输入的任何东西会被写入文件中,EOF:开始和结束的标记。成对使用,结尾的另一个必须定格写。
输入重定向案例及综合案例: FD:0 0<(可以省略为 <)
管道 | (进程管道Piping)
管道命令可以将多条命令组合起来,一次性完成复杂的处理任务。
语法: 命令1 | 命令2 | 命令3 wc 统计行,列,字数
tee管道:三通管道,即交给另一个程序处理,有保存一份副本。 cat /etc/passwd | tee 保存/输出位置 | grep root
命令1 | xargs 命令 2 ls cp rm 管道不能执行。所以通过xargs。
语法:
cat a.txt | xargs -i cp {} /目录
cat file.txt | xargs ls -l
{}:前面传过来的内容
-i :为了让大括号生效
目录时 -r
解释:前面传过来的东西交给大括号
查看目录及目录中文件的大小
du -h /etc/ #查看目录及目录中的文件大小
du -sh /etc/ #查看目录的总大小
du -h --max-depth=1 /etc/ #查看/etc/下子目录的大小
du -d 1 -h /etc/ #查看/etc/下子目录的大小
ls /etc/ | wc -l #查看目录中有多少个文件
排序
sort -t":" -k3 -n /etc/passwd #以: 分隔,将第三列按字数升序
sort -t":" -k3 -n /etc/passwd -r #以: 分隔,将第三列按字数降序
sort 排序,默认升序
-t 指定分隔符
-k 指定列
-n 按数值
-r 降序
五.存储管理
磁盘分区
硬盘的命名方式
centos9: IDE(并口) /dev/hda /dev/hdb
SATA(串口) /dev/sda /dev/sdb /dev/sdc
磁盘分区类型
MBR 主引导记录(MBR,Master Boot Record)是位于磁盘最前边的一段引导
MBR支持最大的磁盘容量是<2TB。设计时分配四个分区
如果希望超过4个分区,需放弃主分区,改为扩展分区和逻辑分区
fdisk 命令
GPT 全局唯一标识分区表(GUIDPartition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准。 GPT支持大于2T的硬盘,支持128个分区
gdisk 命令
磁盘管理三部曲
分区(MBR或GPT)----->格式化/文件系统Filesystem------>挂载mount
(隔间) (放家具/打造格子柜) (加个门/目录)
查看磁盘信息
ll /dev/sd*
lsblk
创建分区: MBR: 把房子分成卧室和客厅 启动分区工具: fdisk /dev/磁盘名 (n 新建分区,p 选择主分区,分区序号,起始扇区位置默认,根据磁盘大小划分分区大小:+1G,w保存并退出)
刷新分区表: partprobe /dev/磁盘名
查看分区结果: fdisk -l /dev/sdb 或 lsblk
创建文件系统(格式化):文件系统:房子里的格子柜 mkfs.ext4 /dev/磁盘分区 (新建的分区都要格式化)
挂载mount: 手动挂载 : 创建挂载点,一个分区一个挂载点 mkdir /mnt/disk1 挂载: mount -t ext4 /dev/磁盘分区 /mnt/disk1
1.2、使用UUID挂载 blkid /dev/sdb1 vim /etc/fstab
UUID=deb5d8c9-f41d-40c3-93bd-26874b2b7b95 /data1 ext4 defaults 0 0
重启挂载失效的解决问题
一.永久挂载fstab vim /etc/fstab
输入:/dev/nvme0n3p1 /mnt/disk1 ext4 defaults 0 0 mount -a(使挂载点生效)
使用UUID挂载 blkid /dev/sdb1 vim /etc/fstab
UUID=deb5d8c9-f41d-40c3-93bd-26874b2b7b95 /data1 ext4 defaults 0 0
二.写入自启动文件
vim /etc/rc.local mount /dev/sdb1 /data1 chmod +x /etc/rc.d/rc.local
查看挂载信息
方法一: df -hT
方法二: mount
磁盘分区如何超过4个分区
放弃一个主分区,创建一个扩展分区 主分区已创建并使用 : 先卸载4号分区:umount -l /dev/分区名 fdisk /dev/磁盘名 d 4 , n e 最后扇区默认创建扩展分区。 创建逻辑分区: n +大小G/M
逻辑卷管理LVM
LVM目的:管理磁盘的一种方式,性质与基本磁盘无异 特点:随意扩张大小
术语: LVM是Logical Volume Manager(逻辑卷管理)
PV:物理卷(Physical volume):一块硬盘,或多块硬盘
VG:卷组(Volume Group):一堆磁盘的统称
LV:逻辑卷(Logical Volume):一个逻辑分区,一个分区
创建LVM
1.pv 将物理磁盘,转换成物理卷-PV pvcreate /dev/sdc
查看PV信息: pvscan ; pvs ; pvdisplay
(扫描pv信息) (查看pv的摘要信息) (显示pv的详情信息)
2.vg 创建卷组-VG vgcreate vg1 /dev/sdc
查看VG信息:同查看pv一样 vgs vgscan vgdisplay
3.lv 创建逻辑卷 lvcreate -L 200M/G -n lv1 vg1
-L 大小 -n 卷名 vg1(组名) 查看lv信息:同上 lvscan
lvcreate -l 20 -n lv2 vg1(指定free pe将vg剩余的全部分区)
创建文件系统(格式化)并挂载:
mkfx.ext4 /dev/vg1/lv1(卷组名;逻辑卷名)
创建挂载点:mkdir /mnt/lv1 挂载:mount /dev/vg1/lv1 /mnt/lv1
逻辑卷扩容
vg没有剩余空间时:
1、制作PV
2、vgextend cloud /dev/sde
3、lvextend -L 15G 或者 +15G /dev/cloud/2404
lvextend -l +100%FREE /dev/cloud/2405
4、xfs_growfs /dev/cloud/2404 xfs文件系统扩容
resize2fs /dev/cloud/2405 etx4文件系统扩容
5、df -Th
交换分区
mkswap /dev/sdd1 #初始化
blkid /dev/sdd1 #查看UUID vim /etc/fstab #制作开机挂载
swapon -a #激活swap分区 swapon -s 显示交换分区
临时关闭:swapoff /dev/sdd1 #关闭swap分区(-a 关闭所有)
永久关闭:vim /etc/fstab 将swap分区那一行注释掉。
dd if=/dev/zero of=/swap2.img bs=1M count=512
解释:dd 读入 从空设备里面拿空块 到交换分区 块多大 一共多少
mkswap /swap2.img #初始化 vim /etc/fstab
chmod 600 /swap2.img #交换分区权限需要设置为600,默认644权限不安全。
RAID实战
RAID:廉价磁盘冗余阵列(Redundant Array of Independent Disks) 作用:容错,提升读写速率
类型:
RAID0(数据条带卷):RAID0 条带集2块磁盘以上,读写速率快100%*N(N块磁盘同时读写),但不容错。
RAID1: RAID1 镜像集(自动复制一份数据到其他磁盘)2块磁盘,容量50%(两块100G只有100G),读写速率一般,容错。
RAID5: RAID5 带奇偶校验条带集(把数据分为n-1份写入,最后一块磁盘放入校验和,反推),3块(磁盘数量n)磁盘以上,利用率(n-1)/n,读写速率快(n-1),容错
不同场景RAID的使用:硬RAID:需要RAID卡,有自己的cpu,处理速度快,有电池和无电池
软RAID:通过操作系统实现,比如Windows,Linux
软RAID示例:1. 准备4块硬盘 ll /dev/sd* RAID:(3块数据盘)+(1块热备硬盘)
创建RAID
mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{a,b,c}
(md0创建的磁盘组名;l小写的L,-l5是RAID5;-n3磁盘数量3;-x1热备磁盘数1)
格式化,
挂载: mkfs.ext4 /dev/md0 mkdir /mnt/raid5
mount /dev/md0 /mnt/raid5
查看RAID信息:mdadm -D /dev/md0
每隔一秒持续执行命令 watch -n 1 ‘mdadm -D /dev/md0’
六.Linux文件查找,打包压缩
文件查找
命令文件查找
which ls 查找ls命令的位置 或 whereis vim
find
语法 :find path options expression action
(命令; 路径; 选项; 表达式; 动作)
按文件名:find /etc -name "hosts" -iname(忽略大小写) “hos* "(扩大寻找范围)
按文件大小:find /etc -size +5M(+5M寻找大于5M的文件;5M寻找5M的文件;-5M寻找小于5M的文件)
指定查找的目录深度:find / -maxdepth 4 -a(两条命令同时生效) -name "readme-ifcfg"
按文件属主,属组找: find / -user jack (查找属主是jack的文件)
find / -group hr (查找属组是hr的文件)
按文件类型查找:find / -type f (f普通文件;b磁盘;l链接文件;d目录;p管道)
按文件权限:find / -perm(授权) 644 -ls (是find的动作之一,精确权限)
找到后处理的动作(ACTIONS):找到后默认是显示文件 -print 文件名 -ls 文件属性 -delete 找到后删除 -exec cp -rvf {} /tmp(想放复制文件的位置) \;
按时间找(atime,mtime,ctime)
-atime = access访问时间
-mtime = modify改变时间 内容修改时间会改变 +5 修改时间五天之前 -5 修改时间五天之内
-ctime = change修改时间 属性修改时间会改变
-amin #分钟
-mmin
-cmin
locate:文件查找,依赖数据库 locate hosts 查找文件hosts文件 updatedb 更新locate数据库 排除/tmp
打包压缩
打包
语法 : tar 选项 压缩包名称 源文件
打包: tar -c(创建)f (指定文档的名称) etc.tar(包名称) /etc(被打包的文件)
压缩
gzip 源文件 #格式 file.gz结尾
bzip2 源文件 #格式 file.bz2结尾
解压缩
gunzip 压缩文件 bunzip2 压缩文件
gzip -d 压缩文件 bzip2 -d 压缩文件
打包压缩
tar -czf etc.tar.gz /etc (z是gzip)
tar -cjf etc.tar.bz /etc (j是bzip)
tar -cJf ext.tar.xz /etc (J是xzip)
查看压缩包:tar -tf etc.tar
解压: tar -x(解压)f (解压的文件) etc.tar -C(指定解压位置) /root
七.Linux链接文件
文件链接
符号链接/软连接 : symbolic link/软链接
创建一个文件,并输入内容:echo 1111 > file1
创建一个软链接
ln -s /file1(源文件) /home/file11(链接符号)(新文件)
对目录做链接 ln -s /gpp(目录) /opt/ppp
进入ppp目录和进入gpp目录一个效果
总结: 软连接失去源文件不可用。 可以对目录做软链接;软链接和源文件的inode号是不同的;删除源文件,软链接不可用;当删除对目录做的软链接时,一定要注意不要加软链接名称后面的/,否则会将源目录下的文件也删除;
硬链接:1.不能跨文件系统 2.硬链接删除源文件,依然可以用 3.不允许将硬链接指向目录 4.硬链接和源文件具有相同的inode号;
创建硬链接
ln /file /home/file11
发送邮件
yum -y install mailx
vim /etc/mail.rc
set from=19991820903@163.com
set smtp=smtp.163.com
set smtp-auth-user=19991820903@163.com
set smtp-auth-password=GSLTKOHJSRNPAUBV
set smtp-auth=login
cat /etc/passwd | mail -s "测试邮件" 19991820903@189.cn
八.Linux软件管理
rpm
wget 不需要依赖
nginx 需要依赖
rpm -ivh *.rpm install vh 将安装过程人性化显示
rpm -Uvh *.rpm 更新并安装
rpm -qa 查询所有的软件包
rpm -ql 查看某一个RPM包生成了多少文件
rpm -qc 查看某一个RPM包生成的配置文件
rpm -qf 查看某一个文件是由哪一个RPM包生成的
rpm -e 卸载
yum操作
安装: yum -y install httpd vsftpd
重新安装:yum -y reinstall httpd
升级安装: yum -y update httpd
查询YUM源 :yum repolist
查询http程序:yum list httpd 带@的是已经安装了
查询工具包和软件包的关系 :yum provides ifconfig
卸载:yum -y remove httpd
清理yum缓存: yum clean all
查询历史操作: yum history list
回滚 yum history undo 7(历史操作前面的编号)
缓存软件包信息提高搜索/安装软件的速度 yum makecache
yum卸载rpm查找出来所有与httpd相关的软件包全部卸载掉
yum -y remove `rpm -qa | grep httpd`
配置yum源
配置阿里云yum源
1、mirrors.aliyun.com
2、备份
cd /etc/yum.repos.d/ mkdir bakup mv *.repo bakup/
3、配置:
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
4、清理缓存
yum clean all
5、生成缓存
yum makecache
制作本地源
1.挂载镜像
mount /dev/cdrom /mnt/
2.配置本地源
vim /etc/yum.repos.d/myyum.repo
[local] 不能有空格
name=local yum
baseurl=file:///mnt
enabled=1
gpgcheck=0
3.清理缓存
yum clean all
4.生成缓存
yum makecache
5.列出所有yum仓库
yum repolist
克隆源
yum -y install yum-utils
yum -y install nginx
cd /usr/share/nginx/html
rm -rf *
reposync -r base -r epel -r extras -r updates
createrepo base/
createrepo epel/
createrepo extras/
createrepo updates/
vim /etc/yum.repos.d/myrepo.repo
[httpd-base]
name=base
baseurl=http://192.168.182.131/base
enabled=1
gpgcheck=0
vim /etc/nginx/nginx.conf 第43行
location / {
root /usr/share/nginx/html;
autoindex on;}
systemctl restart nginx
计划任务
作用:计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据。
分类: 一次性调度执行at(Schedule one-time tasks with at);
循环调度执行cron(Schedule recurring jobs with cron)
一次性调度执行 at
yum -y install at
systemctl start atd
systemctl enable atd
语法格式: at <TIMESPEC> at> 要执行的任务 at>
CTRL D 输入完毕,提交任务
查询任务: atq 删除一次性任务 atd id
at存放目录 cd /var/spool/at
<TIMESPEC>示例: now +5min(五分钟后) teatime tomorrow (teatime is 16:00) (下午茶时间) 4:00 2020-11-27 (某年某日某月) noon +4 day (第四天中午)
5pm august 3 2020 (2020年8月3日下午5点)
循环调度执行cron:
简介:cron的概念和crontab是不可分割的。 crontab是一个命令,常见于Unix和Linux的操作系统之中。 用于设置周期性被执行的指令。
该命令从标准输入设备读取指令,并将其存放于 /etc/crotab 文件中,以供之后读取和执行。
查看cron进程:systemctl status crond.service ; ps aux | grep crond crond程序运行是计划任务执行的根本
创建计划: crontab -e 查询计划: crontab -l
-u username 管理其他用户的计划任务
删除计划: crontab -r
计划任务存储位置: ls /var/spool/cron/
语法结构:分 时 日 月 周 命令或脚本程序 *代表每一分/时/日/月/周 例如:0 * * * * /mysql_back.sh(每个小时的第0分钟执行) ;
*/5 * * * * /mysql_back.sh (每5分钟执行一次)
0 2 1,4,6 * * /mysql_back.sh (每月的1,4,6日的2点整执行)
0 2 * * 5 /mysql_back.sh (每月的周五2点执行)
0 2 2 6 5 /mysql_back.sh (6月的2号和周五的2点执行)
编写任务计划:crontab -e ;输入 :* * * * * /root/1.sh
注:crontab 执行脚本只写路径的话使用的是./执行的方式,需要给脚本执行权限
写上sh 执行,就不需要了
文件: /etc/cron.deny
说明:该文件中所列用户不允许使用crontab命令
文件:etc/cron.allow
当这个文件产生时,/etc/cron.deny文件失去作用,只有这个文件中的用户才能使用crontab
说明:该文件中所列用户允许使用crontab命令
日志管理
一.rsyslog系统日志管理
(关心问题:那类程序,产生的什么日志,放到什么地方)
处理日志的进程:第一类: rsyslogd:系统专职日志系统 ; 处理绝大部分日志记录 ;系统操作有关的信息,如登陆信息,程序启动关闭信息,错误信息。
第二类:各类应用程序,可以以自己的方式记录日志。
常见的日志文件(系统,进程,应用程序):
存放位置:tail /var/log/messages(系统的主日志)
tail -f 日志位置 (将日志锁在屏幕上)
tail /var/log/secure(安全日志)
tail /var/log/yum.log(安装日志)
tail /var/log/cron(任务计划日志)
tail /var/log/dmesg(系统启动相关日志)
所有用户的登录情况 /var/log/lastlog
rsyslogd配置
相关程序:yum -y install rsyslog logrotate 默认已安装
启动程序:systemctl start rsyslog.service
相关文件:rpm -qc rsyslog (观察日志程序的配置文件)
/etc/logrotate.d/syslog (和日志轮转相关)
etc/rsyslog.conf (rsyslog的主配置文件)
/etc/sysconfig/rsyslog (rsyslogd相关文件)
/etc/rsyslog.conf (rsyslog的主配置文件) :告诉rsyslogd进程什么日志,应该存到哪里。
RULES:规则,是一套生成日志,以及存储日志的策略。
有三部分组成(设备;级别;存放位置) 例:cron.* /var/log/cron
vim /etc/rsyslog.conf (修改规则来影响日志存放的结果)
systemctl restart rsyslog 重启
.logrotate日志轮转
(将大量的日志,分割管理,删除旧日志):日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事,为了节省空间和整理方便,日志文件经常需要按!时间或!大小等维度分成多份,删除时间久远的日志文件。
工作原理:按照配置进行轮转 配置文件种类
主文件: /etc/logrotate.conf(决定每个日志文件如何轮转)
子配置文件夹:/etc/logrotate.d/*(自定义,好删,好抢救,方便管理)
logrotate -f /etc/logrotate.d/myapp 手动轮转
vim /etc/logrotate.conf
/var/log/wtmp{
远程连接
ssh -p 22 root@192.168.182.131 远程登陆(默认端口22)
ssh配置文件:vim /etc/ssh/sshd_conf
产生公钥和私钥
ssh-keygen
查看钥匙的目录
cd /root/.ssh
将公钥拷贝给对方机器: ssh-copy-id -i id_rsa.pub 对方ip地址
将公钥传给对方,就可以免密登陆对方,对方的/root/.ssh目录下就会出现一个authorized_keys
文件记录着登陆者的公钥。known_hosts文件记录的是远程登陆过的服务器的信息。
远程拷贝
scp -r(拷目录加r) -p(改端口加p) 22 test/ 192.168.182.131:/root/
tcpwrapper---访问控制工具
TCPwrapper有两个配置文件。
1./etc/hosts.allow --允许
2./etc/hosts.deny --拒绝
TCPwrappers先查找/etc/hosts.allow,再查找/etc/hosts.deny,如果两个配置中有冲突,先匹配中的优先,也就是hosts.allow中的配置优先,如果两个配置都没命中,默认放行。
telnet
检查tcp连接80端口是否开放
telnet 192.168.246.156 80 检查tcp连接80端口是否开放
telnet:不安全,没有对传输数据进行加密,容易被监听,还有遭受中间人攻击,telnet不能压缩传输数据,所以传输慢
ssh:对数据进行了加密,安全度高,ssh传输数据经过压缩,所以传输速度比较快
九.DNS域名解析
DNS里面顶层是: "." 表示根域 ( 一共有十三台根服务器)
“.com”是顶级域名
分类:职能:com域,.org域(非营利机构),edu域名(教育)国家:.cn ,.us ,
“aliyun.com”是主域名(二级域),主要指企页名
“example.aliyun.com”是子域名(也可称为托管三级域名)
“www.example.aliyun.com”是子域名的子域(也可称为托管四级域名)。
TTL Time To Live
英文全称Time To Live ,这个值是告诉本地域名服务器,域名解析结果可缓存的最长时间,缓存时间到期后本地域名服务器则会删除该解析记录的数据,删除之后,如有用户请求域名,则会重新进行递归查询/迭代查询的过程。
TLD Server
英文全称Top-level domains Server,指顶级域名服务器。
DNS Resolver
本地域名服务器,它是DNS查找中的第一站,是负责处理发出初始请求的DNS服务器。运营商ISP分配的DNS、谷歌8.8.8.8等都属于DNS Resolver。
Root Server
指根域名服务器,当本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址。
DNS解析过程
1)当用户在浏览器中输入www.qq.com域名访问该网站时,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
(2)如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
(3)如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
(4)如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
(5)如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。
(6)如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
提示:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间的交互查询就是迭代查询。
配置DNS方式
vim /etc/resolv.conf
nameserver 114.114.114.114
十.Linux文件服务器
NFS 远程共享存储
文件系统级别共享(是NAS存储) --------- 已经做好了格式化,可以直接用。 速度慢比如:nfs,
NFS
NFS:Network File System 网络文件系统,NFS 和其他文件系统一样,是在 Linux 内核中实现的,因此 NFS 很难做到与 Windows 兼容。NFS 共享出的文件系统会被客户端识别为一个文件系统,客户端可以直接挂载并使用。
服务端操作
yum -y install rpcbind 安装rpc协议的包
yum -y install nfs-utils 安装nfs服务
systemctl start nfs-server systemctl start rpcbind
mkdir /nfs-dir 创建存储目录
vim /etc/exports 编辑共享文件
/nfs-dir 192.168.182.0/24(rw,no_root_squash,sync)
systemctl restart nfs-server
systemctl enable nfs-server
可选参数注释:
ro:只读
rw:读写
*:表示共享给所有网段。
sync:所有数据在请求时写入共享
root_squash: 对于使用分享目录的使用者如果是root用户,那么这个使用者的权限将被压缩成为匿名使用者,只读权限。
no_root_squash:使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限。
客户端操作
yum -y install rpcbind
yum -y install nfs-utils
mount -t nfs 192.168.182.131:/nfs-dir /qf 挂载
vim /etc/fstab 制作开机挂载
192.168.246.160:/nfs-dir /qf nfs rw,nofail,bg 0 0
以读写模式挂载文件系统,即使遇到问题也不会阻止系统启动,并且会持续在后台尝试重新挂载。
FTP
ftp主动模式
客户端开启一个端口N(>1023)向服务端的21端口,建立连接,同时开启一个N+1,告诉服务端,我监听的是N+1端口,服务端接到请求之后,用自己的20端口连接到客户端的N+1端口,进行传输
21端口建立连接
20端口传输数据
ftp被动模式
客户端同时开启两个端口(1024,1025),一个端口(1024)跟服务端的21端口建立连接,并请求,大哥,我连上了,你再开一个端口呗。服务端接到请求之后,随机会开启一个端口(1027)并告诉客户端我开启的是1027端口,客户端用另一个端口(1025)与服务端的(1027)端口进行连接,传输数据
vsftpd配置
yum -y install vsftpd
systemctl start vsftpd
systemctl enable vsftpd
FTP默认共享目录
/var/ftp
cd /var/ftp mkdir upload touch upload/1.txt
修改根目录的属主与属组
chown -R ftp.ftp /var/ftp/*
编辑vsftpd配置文件
允许匿名用户登陆
vim /etc/vsftpd/vsftpd.conf 允许匿名用户登陆
anon_upload_enable=YES 允许匿名用户上传文件
anon_other_write_enable=YES 允许匿名用户对目录进行操作
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_umask=022 匿名用户默认权限掩码
客户端
yum -y install lftp
lftp 192.168.182.131
下载 get 创建目录 mkdir 上传 put
上传目录及目录中的子文件 mirror -R /root/test/
下载目录 mirror test/
ftp本地用户登录
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO 将允许匿名用户登录关闭
chroot_list_enable=YES 启用限制登陆用户在主目录里面
chroot_list_file=/etc/vsftpd/chroot_list 限制登陆的用户在这个文件列表中,一行一个用户
allow_writeable_chroot=YES 允许限制的用户对目录有写权限
local_root=/home/zhangsan 设置本地用户的FTP根目录,一般为用户的家目录
local_max_rate=0 限制最大传输速率(字节/秒)0为无限制
mkdir /etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list 将允许登陆的用户添加
systemctl restart vsftpd
客户端
lftp 192.168.182.131 -u zhangsan
十一.WEB服务器
Apache服务的搭建与配置
yum -y install httpd
systemctl start httpd
netstat -nplta | grep 80
默认访问网站的主页
/var/www/html
认识主配置文件
vim /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd" #定义工作目录
Listen 80 #监听端口
Listen 192.168.2.8:80 指定监听的本地网卡 可以修改
User apache # 子进程的用户,有可能被人改称www账户
Group apache # 子进程的组
ServerAdmin root@localhost # 设置管理员邮件地址
DocumentRoot "/var/www/html" # 发布网站的默认目录,想改改这里。
IncludeOptional conf.d/*.conf # 包含conf.d目录下的所有*.conf配置文件
# 设置DocumentRoot指定目录的属性
<Directory "/var/www/html"> # 网站容器开始标识
Options Indexes FollowSymLinks # 找不到主页时,链接到网站目录以外,如测试页面
AllowOverride None # 对网站设置特殊属性:none不设置特殊属性,all允许
Require all granted # granted表示允许所有人访问,denied表示拒绝所有人访问
</Directory> # 容器结束
DirectoryIndex index.html # 定义主页文件,会自动访问该文件。
访问控制
<Directory "/var/www/html">
Options Indexes FollowSymlinks
AllowOverride None
<RequireAll>
#Require not ip 192.168.182.131 只拒绝一部分客户端访问
#Require all denied 拒绝所有ip
#Require all granted 允许所有ip
</RequireAll>
</Directory>
虚拟主机
vim /etc/httpd/conf.d/test.conf
基于域名
<VirtualHost *:80>
DocumentRoot /var/www/test
ServerName www.jiyuyuming.com
<Directory /var/www/test>
AllowOverride None
Require all granted
</Directiory>
</VirtualHost>
基于IP
<VirtualHost 192.168.182.131:80>
DocumentRoot /var/www/test
<Directory /var/www/test>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
基于端口
在httpd的主配置文件中加入,新端口
<VirtualHost *:80>
DocumentRoot /var/www/test
ServerName www.jiyuyuming.com
<Directory /var/www/test>
AllowOverride None
Require all granted
</Directiory>
</VirtualHost>
<VirtualHost *:81>
DocumentRoot /var/www/test
ServerName www.jiyuyuming.com
<Directory /var/www/test1>
AllowOverride None
Require all granted
</Directiory>
</VirtualHost>
十二.网络配置
网络配置
NetworkManager服务
网络管理器(NetworkManager)是一个动态网络的控制器与配置系统,它用于网络设备可用时保持设备和连接开启并激活
配置网络的工具:
命令行配置 配置文件:vim 命令行: nmcli
图形配置 简易图形: nmtui 图形界面: nm-connection-editor
配置网络参数:
centos7配置
方法 配置网络参数: vim /etc/sysconfig/network-scripts/ifcfg-ens33
查看网卡uuid: nmcli connection show 查看网关:ip route
重启网络设置:nmcli c reload ; nmcli c up e
十二.网络管理实战
网OSI简介
Open System Interconnection(开放系统互联网模型),定义了不同计算机互联的标准,设计和描述了计算机网络通信的框架。
优势:开放,厂商兼容性,易于理解,学习,模块化工程,故障排除
OSI 全世界网络通信的工作分为7层
应用层:应用程序/原始数据 qq,爱奇艺 ;
表示层: 格式/压缩/加密 快速传递,安全传递,鸡毛信 ;
会话层:会话/全双工/半双工 身份信息,电话/对讲机
传输层 :分段/重组/端口号 传输效率
网络层:ip地址/寻址/路由 总目标,全球地址
数据链路层:MAC地址/局域网 分段目标,局域地址,邮递员
物理层:传输介质/比特流 电流/光/无线信号/4G/5G
TCP/IP (5层结构/功能)
Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议
应用层(OSI的上三层)
传输层
网络层
数据链路层
物理层
四层:网络接口层(将数据链路层,物理层合为一层)
OSI模型和TCP/IP模型的区别
OSI:推出时间早,只有理论没有实践。
TCP/IP:美国军方由实践得出的的理论,当今通信标准
数据的封装和解封装:信息从一台计算机产生,经过TCP/IP模型加工后传递到另一台计算机,这个通信过程就像快递从厂家包装到顾客收到货物拆包一样,我们把这个通信过程称作数据的封装(发送)和数据解封装(接收)。
TCP协议簇
应用层
HTTP/超文本传输协议/网站
SSH/远程连接协议/远程控制
FTP/文件传输协议
SMTP/简单邮件传输协议/Email
DNS/域名服务/www
传输层:TCP/传输控制协议/可靠:3次握手,4次断开。鸡毛信,挂号信 ,UDP/用户数据协议/不可靠
网络层:IP/互联网协议/寻址 ICMP/网络消息管理协议/测试
数据链路层:MAC:家到邮局的地址
物理层:网线:公路 光纤:航道
单位换算:比特=bit=b==1/0 字节=byte=B=8个比特 1kB=1024B 1MB=1024KB
网络管理实战二
物理层: 信号 数
字信号: 两种恒定的物理量;适用计算机网络。优点:抗噪音和抗衰减比较强
介质 双绞线 :EIA/TIA568标准;8根线芯,两两互绞
功能性:屏蔽型(STP,SFTP),非屏蔽型(UTP)
速率分类:cat 5 /5类线/10M100M
cat 5e/超五类线/10M100M
cat 6/六类线/1000M
接口:RJ45/水晶头
线序:EIA/TIA568B: 橙白,橙,绿白,蓝,蓝白,绿,棕白,棕
标准网线:两端线序相同
光纤 : 多模/单模 纤芯粗/纤芯细 低速/高速 近/远 便宜/贵 FC/ST/LC
数据链路层: 功能: 链路创建,维护,管理帧封装,传输,同步差错校验
MAC地址:媒体访问控制地址 前6位是厂商标识,后六位是硬件标识 帧封装: 目标MAC/源MAC/数据/CRC
交换机工作原理: 学习/广播/转发/更新
网络层: ip地址
TCP三次握手和四次挥手
Seq 序列号 保障传输过程可靠。
ACK (确认消息)
SYN (在建立TCP连接的时候使用)
FIN (在关闭TCP连接的时候使用)
三次握手
1)发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。
2)接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了。
3)最后,发送方再回传一个带有ACK标志的数据包,代表我知道了,表示’握手‘结束。
===================================
通俗的说法
1)Client:嘿,李四,是我,听到了吗?
2)Server:我听到了,你能听到我的吗?
3)Client:好的,我们互相都能听到对方的话,我们的通信可以开始了。
四次挥手
1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送。
2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1
3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送.
4)第四次挥手:Client收到FIN后,接着发送一个ACK给Server,确认序号为收到序号+1.
======================
通俗的说法
1)Client:我所有东西都说完了
2)Server:我已经全部听到了,但是等等我,我还没说完
3)Server:好了,我已经说完了
4)Client:好的,那我们的通信结束
IP地址的组成
子网掩码:用于区分IP地址中的网络部分和主机部分.
计算子网掩码:网络位全1,主机位全0
网络部分(网络位):直接决定了可以分配的网络数
主机部分(主机位):则决定了网络中最大的主机数 计算方法:2^主机号位数-2
网络地址:用来表示一个网络。网络部分不变,主机位取值全部为0,例如:192.168.1.0/24
广播地址:用于在一个网络内一对所有的通信。网络部分不变,主机部分全部换成1。
子网划分
a.这个被选用的子网可以产生多少的子网? 2的x次方=? x表示借的主机位
b.这个子网中又会有多少个合法的主机号? 2的y次方-2=? y表示主机位
c.每个子网的广播地址是什么? 这个子网中最后一个IP地址