liunx基础六

1、100.0.0.16/28 对应网段的网关地址、广播地址、可分配IP地址范围

可用地址:14
掩码:255255255240
网络:1000016
第一个可用地址:1000017
最后可用地址:1000031
广播地址:1000031

2、使用man手册学习tcpdump的使用

tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。
【 语法格式 】

tcpdump [option] [expression]
tcpdump [选项] [表达式]

参数选项解释说明(带※的为重点)
-A以ASCII码的方式显示每一个数据包(不会显示数据包中链路层的头部信息)。在抓取包含网页数据的数据包时,可方便查看数据
-c接收到指定的数据包数目后退出命令 ※
-e每行的打印输出中将包括数据包的数据链路层头部信息
-i<网络接口>指定要监听数据包的网络接口 ※
-n不进行DNS解析,加快显示速度
-nn不将协议和端口数字等转换成名字 ※
-q以快速输出的方式运行,此选项仅显示数据包的协议概要信息,输出信息较短 ※
-s<数据包大小>设置数据包抓取长度,如果不设置则默认为68字节,设置为0则自动选择合适的长度来抓取数据包
-t在每行输出信息中不显示时间戳标记
-tt在每行输出信息中显示无格式的时间戳标记
-ttt显示当前行与前一行的延迟
-tttt在每行打印的时间戳之前添加日期
-ttttt显示当前行与第一行的延迟
-v显示命令执行的详细信息
-vv显示比-v选项更加详细的信息
-vvvv显示比-vv选项更加详细的输出

实例

命令解释
tcpdump默认直接启动tcpdum监视第一个网络接口
tcpdump -i th1如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0,这里指定th1
tcpdump -q精减显示信息
tcpmdump -c 5使用-c选定指定监听的数据包数量
tcpdump - n host 10.0.0.1不进行dns解析, 截获10.0.0.1的主机收到和发出的所有数据包
tcpdump host sundown打印所有进入或离开sundown的数据包
tcpdump -n src host 10.0.0.1只监听从10.0.0.1发出的数据包
tcpdump -n src host 10.0.0.1只监听从10.0.0.1发出的数据包
tcpdump -n dst host 10.0.0.1只监听从10.0.0.1收到的数据包
tcpdump -nn port 22不进行协议转换监听指定端口的数据包
tcpdump -n arp监听指定协议的数据包(ip、icmp、tcp、udp)
tcpdump udp port 123对本机的udp 123 端口进行监视 123 为ntp的服务端口
tcpdump host helios and ( hot or ace )打印helios 与 hot 或者与 ace 之间通信的数据包
tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 )截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信
tcpdump ip host ace and not helios打印ace与任何其他主机之间通信的IP 数据包, 但不包括与helios之间的数据包
tcpdump ip host 210.27.48.1 and ! 210.27.48.2210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包

获取主机10.0.0.1与所有主机(除主机10.0.0.10外)通信的ip数据包,简单显示并指定数据包数量

[root@CTS6 ~]# tcpdump -nq -c 5  host 10.0.0.1 and ! 10.0.0.10
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
22:23:01.284629 IP 10.0.0.50.ssh > 10.0.0.1.10289: tcp 208
22:23:01.286481 IP 10.0.0.50.ssh > 10.0.0.1.10289: tcp 112
22:23:01.286709 IP 10.0.0.1.10289 > 10.0.0.50.ssh: tcp 0
22:23:01.290251 IP 10.0.0.50.ssh > 10.0.0.1.10289: tcp 176
22:23:01.293314 IP 10.0.0.50.ssh > 10.0.0.1.10289: tcp 112
5 packets captured
6 packets received by filter
0 packets dropped by kernel

3、详细叙述僵尸进程产生的原因以及危害

  1. 僵尸进程产生的原因:
    在liunx系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程。通过ps命令查看其带有defunct的标志。僵尸进程是一个早已死亡的进程,但在进程表 (processs table)中仍占了一个位置(slot)。
    但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程。因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看看有没有哪个 进程是刚刚结束的这个进程的子进程,如果是的话,就由Init进程来接管他,成为他的父进程,从而保证每个进程都会有一个父进程。而Init进程会自动 wait其子进程,因此被Init接管的所有进程都不会变成僵尸进程。
  2. 僵尸进程的危害
    在进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等。但是仍然为其保留一定的信息(包括进程号 PID,退出状态 the termination status of the process,运行时间 the amount of CPU time taken by the process 等)。直到父进程通过 wait / waitpid 来取时才释放。
    如果进程不调用 wait / waitpid 的话, 那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程。
  3. 如何处理僵尸进程
    当系统中出现了僵尸进程时,我们是无法通过 kill 命令把它清除掉的。但是我们可以杀死它的父进程,让它变成孤儿进程,并进一步被系统中管理孤儿进程的进程收养并清理。
    如果僵死进程的父进程是init进程,那只有重启系统才能解决。

4、详细说明vmstat输出结果的含义

vmstat命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。

【 语法格式 】

vmstat [option] [delay [ count]] 
vmstat [选项]    [时间间隔[次数]]  
数选项解释说明(带的为重点)
-a显示活跃和非活跃内存
-f显示从系统启动至今的fork进程数量
-m显示slab信息
-n只在开始时显示一次各字段名称
-s显示内存相关统计信息及多种系统活动数量
-d显示磁盘相关统计信息
-p显示指定磁盘分区统计信息
-S使用指定单位显示。参数有k、K、m、M,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024byte)
-t统计信息带上时间戳

不带参数仅显示一次退出

[root@benny~]#vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 1244764   3232 426148    0    0     2     2   41   57  0  0 100  0  0

每三秒更新一次3次后停止

[root@benny~]#vmstat 3 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 1244920   3232 426152    0    0     2     2   41   57  0  0 100  0  0
 0  0      0 1244772   3232 426152    0    0     0     0   98  127  0  0 100  0  0
 0  0      0 1244772   3232 426152    0    0     0     0  133  138  0  0 100  0  0

输出结果含义解释图

在这里插入图片描述

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值