常见命令的补充

一、arch

arch命令显示当前主机的硬件结构,常见的如i386、i486、mips、alpha等。

语法:arch [选项]

示例:arch

二、lspci

lspci显示系统中所有的pci总线或者连接到该总线的设备。

语法:lspci [选项]

选项:

-v # 以冗余模式显示所有设备的详细信息

-vv # 以冗余模式显示更加详细的信息

-n # 以数字形式显示pci设备厂商和设备号

-x # 以十六进制显示pci配置空间的前64个字节影像

-xxx # 以十六进制显示所有PCI配置空间,只root使用

-b # 以总线为中心进行查看

-t # 以树形结构显示pci设备的层次关系,包含所有总线、桥梁、设备和它们之间的连接

-k # 显示处理每个设备的内核驱动程序以及能够处理该设备的内核模块

-D # 始终显示PCI域号

-nn # 显示pci供应商和设备的代码和名字

-q # 如果本地pci.id文件中找不到设备,则使用dns查询pci id数据库

-Q # 查询中央数据库

数字例如“00:01.0”,第一个参数是总线编号,第二个是插槽编号,第三个是功能编号,它们都是十六进制的数字。一般来说,直接键入lscpi或者lspci -vv即可。

三、lscpu

lscpu命令显示有关CPU架构的信息,也可以查看/proc/cpuinfo

语法:lscpu [选项]

选项:

-a, --all # 打印在线和离线CPU(默认为-e)

-b, --online # 仅打印在线CPU(-p的默认值)

-c, --offline # 打印离线CPU

-e, --extended[=

] # 打印出一个扩展的可读格式

-p, --parse[=

] # 打印出可解析的格式

-s, --sysroot # 将指定的目录用作系统根目录

-x, --hex # 打印十六进制掩码,而不是CPU列表

对于大多数人来说,直接键入lscpu即可,输出结果是这样的。

lscpu命令的输出结果

四、lsmem

查看内存信息,直接键入即可。也可以查看/proc/meminfo。

五、lsblk

lsblk命令查看可用块设备的信息,且显示它们之间的依赖关系。这里所说的块设备指的就是存储设备,一般包括硬盘,闪存盘,cd-ROM等等

语法:lsblk [选项]

选项:

-a # 显示所有设备

-b # 以字节方式显示块设备的大小

-f # 显示文件系统信息

-m # 显示权限信息

六、lsinitrd

lsinitrd用于显示initranfs的工具,其实就是查看/boot/initramfs-4.19.1-1.el7.elrepo.x86_64.img 文件中的内容。img其实就是一种类似iso的镜像文件,里面的文件都是二进制,无法直接打开。可以利用fdisk或者parted工具进行分区,然后利用mount进行挂载。

七、lshw

lshw用户查看硬件的一些信息,这些信息主要来自于/proc里面。

语法:lshw [选项]

选项:

-short # 以硬件路径显示

-businfo # 以总线方式显示

-html # 以html格式显示

-xml # 以xml格式显示

八、lsmod

lsmod用于显示已载入系统的模块,读取的是/proc/modules文件内容,以友好的方式显示输出。输出内容有四列。

第一列:模块名称

第二列:模块大小

第三列:依赖模块的个数

第四列:依赖模块的内容

lsmod命令的输出结果

既然是查看已经加载的模块,就有通过modprobe命令加载模块,通过rmmod命令卸载已经加载的模块。

九、lsof

lsof全称 List Open Files,顾名思义,其作用是列出当前系统下所有打开的文件。我们都知道linux所有的内容都是文件,即“everything is a file”

lsof支持打开的文件有:

1、普通文件

2、目录

3、网络文件系统的文件

4、字符或设备文件

5、(函数)共享库

6、管道,命名管道

7、符号链接

8、网络文件(例如:NFS file、网络socket,unix域名socket)

9、还有其它类型的文件,等等

当然lsof的选项也是非常的多。

语法:lsof [选项]

选项:

-h # 帮助

-c 进程名 # 显示进程现在打开的文件

-i # 列出所有网络连接,后面可接udp与tcp

-n # 不将IP转换为hostname,即显示ip

-N # 列出所有NFS(网络文件系统)文件

-p 进程号 # 显示进程号打开了哪些文件

-u 用户名 #列出用户打开的文件,可通过逗号指定多个

-U # 列出所有UNIX域Socket文件

-a # 表示and,后面需要跟一个选项。比如lsof -u root -a -i列出root所有的网络连接与打开的文件

-g 组ID # 列出组id进程详情

首先lsof的意思如下:

第一列:COMMAND进程的名称

第二列:PID为进程id

第三列:TID线程id

第四列:USER进程的所有者

第五列:FD为文件描述符。cwd表示应用程序的当前工作目录;txt表示程序代码;mem表示内存映射文件;0表示标准输入;1表示标准输出;2表示标准错误输出。

第六列:TYPE文件类型。常见的有DIR表示目录;CHR表示字符;BLK表示块设备;UNIX表示域套接字;IPv4表示网络套接字;REG表示文件;FIFO表示先进先出队列。

第七列:DEVICE磁盘名称。

第八列:SIZE表示文件大小。

第九列:NODE表示索引节点。

第十列:NAME表示文件的确切名称。

lsof的输出结果

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190910A0690700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励