linux命令

127 阅读12分钟

查看系统参数

linux查看已安装的centos版本信息 cat /proc/version

[root@iZwz9f1ba8y91wed647jhlZ ~]#  cat /proc/version
Linux version 4.18.0-240.22.1.el8_3.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP Thu Apr 8 19:01:30 UTC 2021

Linux查看版本当前操作系统内核信息 uname -a

  • uname -a显示全部信息
  • -m或--machine:显示电脑类型;
  • -r或--release:显示操作系统的发行编号;
  • -s或--sysname:显示操作系统名称;
  • -v:显示操作系统的版本;
  • -p或--processor:输出处理器类型或"unknown";
  • -i或--hardware-platform:输出硬件平台或"unknown";
  • -o或--operating-system:输出操作系统名称;
  • --help:显示帮助;
  • --version:显示版本信息。
[root@iZwz9f1ba8y91wed647jhlZ ~]# uname -a
Linux iZwz9f1ba8y91wed647jhlZ 4.18.0-240.22.1.el8_3.x86_64 #1 SMP Thu Apr 8 19:01:30 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Linux查看cpu相关信息,包括型号、主频、内核信息 cat /proc/cpuinfo

  • 总核数 = 物理CPU个数 X 每颗物理CPU的核数
  • 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
[root@iZwz9f1ba8y91wed647jhlZ ~]# cat /etc/cpuinfo
cat: /etc/cpuinfo: No such file or directory
[root@iZwz9f1ba8y91wed647jhlZ ~]# cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 79
model name	: Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz
stepping	: 1
microcode	: 0x1
cpu MHz		: 2494.220
cache size	: 40960 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 20
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt arat
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit
bogomips	: 4988.44
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:

以上输出项的含义:
processor :系统中逻辑处理核的编号。对于单核处理器,则认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核
vendor_id :CPU制造商     
cpu family :CPU产品系列代号
model   :CPU属于其系列中的哪一代的代号
model name:CPU属于的名字及其编号、标称主频。标称主频就是CPU在没有超频的情况下的工作频率
stepping   :CPU属于制作更新版本
microcode   :CPU微代码
cpu MHz   :CPU的实际使用主频
cache size   :CPU二级缓存大小
physical id   :单个CPU的标号,物理CPU个数
siblings       :单个CPU逻辑物理核数
core id        :当前物理核在其所处CPU中的编号,这个编号不一定连续
cpu cores    :该逻辑核所处CPU的物理核数
apicid          :用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
initial apicid          :初始逻辑核编号 fpu             :是否具有浮点运算单元(Floating Point Unit)
fpu_exception  :是否支持浮点计算异常
cpuid level   :执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
wp             :表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
flags          :当前CPU支持的功能
bogomips   :在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
clflush size  :每次刷新缓存的大小单位
cache_alignment :缓存地址对齐单位
address sizes     :可访问地址空间位数
power management :对能源管理的支持,有以下几个可选支持功能:
ts:  temperature sensor
fid:   frequency id control
vid:  voltage id control
ttp:  thermal trip
tm:
stc:
100mhzsteps:
hwpstate:

查看物理CPU个数

[root@iZwz9f1ba8y91wed647jhlZ ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
1

查看每个物理CPU中core的个数(即核数)

[root@iZwz9f1ba8y91wed647jhlZ ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores	: 1
[root@iZwz9f1ba8y91wed647jhlZ ~]# cat /proc/cpuinfo |grep "cores"
cpu cores	: 1

查看逻辑CPU的个数:1个逻辑CPU

[root@iZwz9f1ba8y91wed647jhlZ ~]# cat /proc/cpuinfo| grep "processor"| wc -l
1
[root@iZwz9f1ba8y91wed647jhlZ ~]# cat /proc/cpuinfo |grep "processor"
processor	: 0

查看CPU信息(型号):可以看到有1个逻辑CPU。

[root@iZwz9f1ba8y91wed647jhlZ ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
      1  Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz

查看CPU使用率:top或cat /proc/stat

[root@iZwz9f1ba8y91wed647jhlZ ~]# top
top - 11:43:30 up 7 days, 18:17,  2 users,  load average: 5.58, 5.14, 4.59
Tasks:  99 total,   3 running,  96 sleeping,   0 stopped,   0 zombie
%Cpu(s): 99.3 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.7 hi,  0.0 si,  0.0 st
MiB Mem :   1818.6 total,    307.8 free,    332.1 used,   1178.8 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1304.5 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                 
  95671 root      20   0    7316    100      0 R  98.7   0.0  34:15.68 stress                                                  
  37701 root      10 -10  172076  23740  13368 S   0.7   1.3  68:55.27 AliYunDun                                               
      1 root      20   0  179380  11872   8276 S   0.0   0.6   0:09.24 systemd                                                 
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.07 kthreadd                                                
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                                  
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp   

top前5行统计信息:
top:任务队列信息
11:43:30     当前时间
up 7 days   系统运行时间,格式为时:分
18:17       系统运行时间
2 users    当前登录用户数
load average: 5.58, 5.14, 4.59    系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。

Task(s): 进程信息
total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数

Cpu(s): cCPU信息
99.3 us 用户空间占用CPU百分比
0.0 sy 内核空间占用CPU百分比
0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
0.0 id 空闲CPU百分比
0.0 wa 等待输入输出的CPU时间百分比
0.7 hi:硬件CPU中断占用百分比
0.0 si:软中断占用百分比
0.0 st:虚拟机占用百分比

MiB Mem、MiB Swap:内存信息
            物理内存总量     空闲内存总量    使用的物理内存总量  用作内核缓存的内存量
MiB Mem :   1818.6 total,   307.8 free,    332.1 used,       1178.8 buff/cache
            交换区总量       空闲交换区总量  使用的交换区总量    可用于进程下一次分配的物理内存数量
MiB Swap:   0.0 total,      0.0 free,      0.0 used.          1304.5 avail Mem 

进程信息 
PID	进程ID
USER	进程所有者的用户名
PR	优先级
NI	nice值。负值表示高优先级,正值表示低优先级
VIRT	进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES	进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR	共享内存大小,单位kb
S	进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU	上次更新到现在的CPU时间占用百分比
%MEM	进程使用的物理内存百分比
TIME+	进程使用的CPU时间总计,单位1/100秒
COMMAND	命令名/命令行
[root@iZwz9f1ba8y91wed647jhlZ ~]# cat /proc/stat
cpu  547965 16132 438041 65469968 10958 286144 23138 0 0 0
cpu0 547965 16132 438041 65469968 10958 286144 23138 0 0 0
intr 737809070 0 9 0 0 1464 0 0 0 0 0 0 33 15 0 0 0 0 0 0 0 0 0 0 0 0 201312 0 16 0 668038 661129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 1666849238
btime 1635931542
processes 96303
procs_running 5
procs_blocked 0
softirq 43285048 0 22117789 200 1378805 201085 0 1056 0 39794 19546319
name user    nice  system idle     iowait irrq   softirq steal guest guest_nice
cpu  1324301 16176 438421 65469968 10958  288944 23391    0     0      0
cpu0 1324301 16176 438421 65469968 10958  288944 23391    0     0      0

CPU指标	含义	时间单位	备注
user	从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1jiffies=0.01秒
nice	从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies)
system	从系统启动开始累计到当前时刻,核心时间,内核态时间(单位:jiffies)	 
idle	从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间,空闲时间(单位:jiffies)
IOWAIT	从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies)
IRQ		从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies)	 
softirq	从系统启动开始累计到当前时刻,软中断时间(单位:jiffies)	 
steal	被盗时间,虚拟化环境中运行其他操作系统上花费的时间(自Linux 2.6.11开始)
guest	来宾时间,操作系统运行虚拟CPU花费的时间(自Linux 2.6.24开始)
guest_nice	nice来宾时间,运行一个带nice值的guest花费的时间(自Linux 2.6.33开始)

1 jiffies = 0.01s = 10ms
CPU时间= user + system + nice + idle + iowait + irq + softirq

intr:这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;然后每个数对应一个特定的中断自系统启动以来所发生的次数
ctxt:给出了自系统启动以来CPU发生的上下文交换的次数
btime:给出了从系统启动到现在为止的时间,单位为秒
processes: (total_forks) 自系统启动以来所创建的任务的个数目
procs_running:当前运行队列的任务的数目
procs_blocked:当前被阻塞的任务的数目
softirq:此行显示所有CPU的softirq总数。第一列是所有软件和每个软件的总数,后面的列是特定softirq的总数

那么CPU利用率可以使用以下两个方法。先取两个采样点,然后计算其差值:
cpu usage=(idle2-idle1)/(cpu2-cpu1)*100
cpu usage=[(user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1)]/(total_2 - total_1)*100

cat /proc/uptime

[root@iZwz9f1ba8y91wed647jhlZ ~]# cat /proc/uptime
678789.25 657504.53
第一个参数是开机到现在的时间,单位为秒(s)
第二个参数是开机到现在CPU空闲时间,单位为秒(s)

查看CPU运行在多少位下的命令

[root@iZwz9f1ba8y91wed647jhlZ ~]# getconf LONG_BIT
64

查看CPU是否支持64位运算:等于1,说明1个逻辑CPU支持64位运算, lm指long mode, 支持lm则支持64bit

[root@iZwz9f1ba8y91wed647jhlZ ~]# cat /proc/cpuinfo | grep flags | grep ' lm '|wc -l
1

常用网络命令

nslookup用于查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题。如果没有指定dns服务器,就采用系统默认的dns服务器。

nslookup domain [dns-server] 

加上-d参数,即可查询域名的缓存

nslookup -d [其他参数] domain [dns-server] 

ping命令:判断一条链路好坏,解析顺序是系统缓存--hosts--缓存服务器--主服务器--辅服务器
ping 将数据包发向用户指定地址。当包被接收,目标机器发送返回数据包。ping 主要有两个作用:

  • 用来确认网络连接是畅通的。
  • 用来查看连接的速度信息。 traceroute是路由跟踪命令,用来检测发出数据包的主机到目标主机之间所经过的网关数量的工具。
    netstat是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
netstat -a      # 列出所有端口
netstat -at     # 列出所有TCP端口
netstat -au    # 列出所有UDP端口
netstat -atnlp    # 直接使用ip地址列出所有处理监听状态的TCP端口,且加上程序名