ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

一些实用的Linux系统信息命令

2021-03-13 16:30:48  阅读:200  来源: 互联网

标签:iptables ps 端口 实用 命令 Linux 进程 数据包 CPU


文章目录

1. 查看当前Linux系统的物理CPU个数和逻辑CPU的个数

# 查看物理CPU个数
cat /proc/cpuinfo | grep -c 'physical id'
# 查看逻辑CPU的个数
cat /proc/cpuinfo | grep -c 'processor'

物理CPU:主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id)

逻辑CPU:一般情况下,逻辑cpu=物理CPU个数×每颗核数(不考虑超线程技术的情况下)

PS:Linux下top查看的CPU也是逻辑CPU个数

2. 使用top查看各进程信息时,各列分别表示什么含义?

top命令可以动态的显示进程信息

top命令

  • PID:进程ID
  • USER:进程所有者
  • PR:进程优先级
  • NI:nice值。负值表示高优先级,正值表示低优先级
  • VIRT:进程的虚拟内存用量,单位kb。VIRT=SWAP+RES
  • RES:进程的物理内存用量,单位kb
  • SHR:进程的共享内存用量,单位kb
  • S:进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
  • %CPU:上次更新到现在的CPU时间占用百分比
  • %MEM:进程使用的物理内存用量百分比
  • TIME+:进程使用的CPU时间总计,单位1/100秒
  • COMMAND:进程名称(命令名/命令行)

3. 如何查看当前系统都有哪些进程?

ps命令是Process Status的缩写,其可以用来列出系统当前运行有哪些进程。

ps命令是列出系统当前进程的快照,即执行ps命令时各进程的状态。

top命令是动态的显示进程信息

ps 为我们提供了进程的一次性查看功能,它显示的查看结果并不动态连续;如果想对进程实时监控,应该用 top 工具。

(1)ps aux

ps aux

  • USER:进程所有者
  • PID:进程ID
  • %CPU:占用的 CPU 使用率
  • %MEM:占用的内存使用率
  • VSZ:占用的虚拟内存大小
  • RSS:占用的物理内存大小
  • TTY:进程运行所在的终端设备号。若与终端无关,则显示?
  • STAT:进程的状态
    • D:无法中断的休眠状态(通常 IO 的进程)
    • R:正在运行
    • S:处于休眠状态
    • T:停止状态,可能是在后台暂停或进程处于除错状态
    • W:进入内存交换状态(从 2.6 内核开始无效)
    • X:死掉的进程(基本不会出现)
    • Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。
    • <:高优先级(以下状态在 BSD 格式中出现)
    • N:低优先级
    • L:被锁入内存
    • s:包含子进程
    • l:多线程
    • +:位于后台
  • START:进程启动时间
  • TIME:进程使用CPU运行的时间
  • COMMAND:进程使用的命令名称及参数

由man手册可知,“ps -aux"不同于"ps aux”。POSIX和UNIX的标准要求"ps -aux"打印用户名为"x"的用户的所有进程,以及打印所有将由-a选项选择的过程。如果用户名为"x"不存在,ps的将会解释为"ps aux",而且会打印一个警告。

如果运行ps -aux >/dev/null,那么就会得到下面这行警告信息
Warning: bad ps syntax, perhaps a bogus ‘-’? See http://procps.sf.net/faq.html

因此,建议使用"ps aux"而不是"ps -aux"

(2)ps -elf

与"ps aux"类似,该命令也可以用来列出系统当前运行有哪些进程。二者的区别在于:

  • ps aux :最常用的 BSD 风格选项组合,其中的 a表示所有关联到终端的进程,如果同时使用 x 则代表所有进程;u 表示列出进程的用户。
  • ps -elf : unix标准风格组合,其中-e 代表列出所有进程,-l 代表长格式,-f 代表完整的格式

ps -ef和ps -elf的唯一区别就是后者输出更长格式的信息,即显示更多内容

ps -elf

  • F:与进程有关的flags
    • 1:表示此子进程仅通过复制(fork)而未实际执行(exec)
    • 4:表示使用root权限的进程
  • S:进程的状态
  • UID:用户ID
  • PID:进程ID
  • PPID:父进程ID
  • C:进程占用CPU的百分比
  • PRI:进程优先级
  • NI:进程的Nice值
  • ADDR:表示该进程在内核中的那个部分,如果是running状态,则显示为“-”
  • SZ:表示内存被消耗的量
  • WCHAN:表示目前进程是否在运行(- 表示正在运行)
  • STIME:进程启动时间
  • TTY:进程运行所在的终端设备号。若与终端无关,则显示?
  • TIME:进程使用CPU运行的时间
  • CMD:进程的启动命令名称和参数

4. iptables配置访问IP及端口命令

iptables不是真正的防火墙,可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架”中,这个”安全框架”才是真正的防火墙。因此iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。因此,iptables本质上就是IPv4数据包过滤和NAT的管理工具,它会对请求的数据包的包头数据进行分析、并根据我们预先设定的规则进行匹配来决定是否可以进入、流出、流经主机。

4.1 iptables的常用命令(COMMAND)含义

(1)-I --insert

形式:iptables -I chain [rulenum] rule-specification

将 rule-specification 添加为 chain 中的第 rulenum 条规则,原先的第 rulenum 条及以后各条的需要顺次 +1。如上面一样,1 表示该 chain 中第一条。默认为 1,即,如果没有指定 rulenum 则将该 chain 中第一条规则替换掉。

4.2 iptables的参数(PARAMETER)含义

(1)-s --source

  • 指定数据包的源地址
  • 可以是 ip 地址,或者网络地址,或者主机名(hostname)
  • 例如:-s 192.168.1.101 表示针对特定的 ip 地址
  • 对于网络掩码,使用 /mask。例如,“-s 192.168.1.0/24″ 表示网络掩码为 255.255.255.0 的所有 192.168.1.x 地址都匹配。
  • 如果不指定 -s 参数,默认匹配所有源地址

(2)-d --destination

  • 指定数据包的目的地址
  • 使用方式与上面的 “-s” 一样(不同之处仅在于 -s 指源,而 -d 表示目的地址)

(3)-p --protocol

  • 指明当前规则针对的传输协议(如 TCP、UDP、ICMP 等)
  • 可能的参数值有:tcp, udp, icmp, all
  • 使用 “all” 表示适用于所有协议。而如果在规则中不指定 -p 参数,则默认使用 “all” 参数。一般不使用 “all” 这个值,要么指定某个特定的协议,要么就指定 -p 参数。
  • -p 的参数值既可以用名称(如 tcp)也可以用协议对应的数值(如 6 代表 tcp 协议)
  • /etc/protocols 文件中包含了所有允许的协议名称和相应数值

(4)–sport --source-port(表示 SOURCE PORT 源端口,用于 -P TCP, 或者 -P UDP)

  • 默认匹配所有端口(未特别指定时)
  • 可以指定端口号(数字),也可以指定端口名称。例如,默认的 SSH 端口号码为 22,名称为 ssh,可以表示为 “–sport 22″ 或者 “–sport ssh”。
  • /etc/services 文件包含了所有允许的端口名称和对应的端口号码。
  • 在规则中使用号码比使用名称要好(效率高些)
  • 要匹配一个端口范围,使用英文半角冒号(:),如 22:100 匹配从 22 到 100 的所有端口号。

(5)–dport --destination-port(表示 DESTINATION PORT 目的端口,用于-P TCP, 或者 -P UDP)

  • 与 –sport 的用法相同,区别仅在于对象是目的端口

(6)-j --jump

  • j 的意思是 “jump”(跳转) 到目标
  • 指定当某个数据包满足该规则的时候的就跳转到的下一个处理规则,而不再顺序执行后面的规则判断
  • 可能的值有:ACCEPT, DROP, REJECT, QUEUE, RETURN,分别表示接受、丢弃、拒绝、进入队列,返回(跳出,通常是从某个 chain 中跳回到调用该 chain 的上层 chain)
  • 也可以跳转到某个自定义的 chain 中,使用该 chain 的名称做为跳转目标

4.3 命令示例:拒绝来源IP为192.168.1.101对本机80端口的访问包

iptables -I INPUT -s 192.168.1.101 -p tcp --dport 80 -j REJECT 

上面的指令中包含了 4 个部分:

  • “-I INPUT” – 表示我们要在 INPUT 链的第一条插入后面的规则。所以这条规则将会应用于入站的数据包。
  • “-s 192.168.1.101″ – 表示检查来自IP为192.168.1.101的数据包,看看是否匹配此规则。
  • “-p tcp –dport 80″ – 该规则针对的是 TCP 数据包,并且使用了 -p 参数的选项 “–dport 80″ 来指定该规则针对的是要发送到服务器 80 号端口的数据包。
  • “-j REJECT” – 跳转到 REJECT,即拒绝满足这些匹配规则的数据包的传输。

5. dmesg命令

kernel会将开机信息存储在ring buffer中。若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。

dmesg被用于检测和控制内核ring buffer,该程序可以帮助用户打印他们的启动信息。

当网卡或者硬盘有问题时,可以使用该命令查看相关信息。

标签:iptables,ps,端口,实用,命令,Linux,进程,数据包,CPU
来源: https://blog.csdn.net/zhuiyisinian/article/details/114751047

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有