新聞中心
查看硬件信息
Linux里面提供了一系列命令用來查看系統(tǒng)硬件信息,如lscpu、lsblk、lshw等,如下:

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計、成都做網(wǎng)站、濮陽網(wǎng)絡(luò)推廣、小程序制作、濮陽網(wǎng)絡(luò)營銷、濮陽企業(yè)策劃、濮陽品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供濮陽建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
查看cpu信息
lscpu命令可以查看cpu信息,如下:
$ lscpu
Architecture: x86_64 #指令集架構(gòu),pc一般是x86_64,手機一般是arm64
CPU op-mode(s): 32-bit, 64-bit #支持32位、64位運行模式
Byte Order: Little Endian #小端字節(jié)序
Address sizes: 39 bits physical, 48 bits virtual # 39位物理地址,48位虛擬地址
CPU(s): 8 # 8個邏輯核
On-line CPU(s) list: 0-7 # 8核都在線
Thread(s) per core: 2 # 每個核兩個硬件線程(Intel超線程技術(shù))
Core(s) per socket: 4 # 每個cpu有4個核
Socket(s): 1 # 1個cpu
Vendor ID: GenuineIntel # intel的cpu
CPU family: 6 # cpu產(chǎn)品系列
Model: 142 # cpu產(chǎn)品型號
Model name: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz # cpu產(chǎn)品型號
Stepping: 10 # 此型號的每10代
CPU MHz: 1991.998 # cpu主頻
BogoMIPS: 3983.99
Hypervisor vendor: Microsoft # 虛擬化廠商Microsoft,因為我是在WSL中執(zhí)行的lscpu
Virtualization type: full # 虛擬化類型,full表示全虛擬化
L1d cache: 128 KiB # 一級數(shù)據(jù)緩存大小
L1i cache: 128 KiB # 一級指令緩存大小
L2 cache: 1 MiB # 二級緩存大小
L3 cache: 8 MiB # 三級緩存大小
可以看到,lscpu能查看cpu的各種詳細(xì)信息,這里面需要重點理解的是邏輯核與物理核的概念,如果一個機器上有2個4核8線程的CPU,那么它的邏輯核數(shù)是16,物理核數(shù)是8,而從操作系統(tǒng)的視角來看,它會認(rèn)為當(dāng)前機器有16個CPU。
另外,如果lscpu不可用,也可以使用/proc/cpuinfo查看,如下:
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
stepping : 10
microcode : 0xffffffff
cpu MHz : 1991.998
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
...
查看磁盤信息
使用lsblk可以很容易的看到機器上的磁盤與分區(qū)情況,如下:
$ lsblk -p
/dev/sda 8:0 0 280G 0 disk
└─/dev/sda1 8:1 0 280G 0 part /
可以看到當(dāng)前機器只有一個磁盤,大小是280G,它被虛擬成了/dev/sda文件,而磁盤/dev/sda只有1個分區(qū),它被虛擬成了/dev/sda1文件,這里又印證了Unix"一切皆文件"的設(shè)計哲學(xué),硬盤與分區(qū)都被虛擬成了文件!
相信你也發(fā)現(xiàn)了一些Linux磁盤命名的規(guī)律,如果有3個磁盤,命名就是sda、sdb、sdc,如果sda有3個分區(qū),分區(qū)名就是sda1、sda2、sda3,以此類推。
fdisk也可以用來查看磁盤信息,如下:
$ sudo fdisk -l
Disk /dev/sda: 280 GiB, 300647710720 bytes, 587202560 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd36fd4dd
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 587202559 587200512 280G 83 Linux
Disk /dev/sda1: 279.102 GiB, 300646662144 bytes, 587200512 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
還有一個常見場景是查看硬盤類型,比如:
- 當(dāng)前磁盤是機械硬盤還是SSD?
- 如果是SSD的話,它是
SATA SSD還是PCIe SSD?
對于這3種不同類型的磁盤,它們之間的性能差異巨大,區(qū)分方法如下:
$ lsblk -o name,size,type,rota /dev/sda
NAME SIZE TYPE ROTA
sda 280G disk 1 # ROTA代表是否旋轉(zhuǎn)磁盤,所以1代表機械硬盤,0代表固態(tài)硬盤
└─sda1 280G part 1
# 執(zhí)行下面兩條命令,就可以區(qū)分是SATA SSD還是PCIe SSD了,一般來說,PCIe SSD性能較好
$ lspci -vmm|grep -iE 'SATA|AHCI'
$ lspci -vmm|grep -iE 'PCIe|NVMe'
另外,下面這些命令也可以查看磁盤相關(guān)信息,一般需要自行安裝,如下:
# 查看scsi磁盤設(shè)備
$ lsscsi
# 查看磁盤詳細(xì)信息
$ sudo smartctl --info /dev/sda
$ sudo hdparm -I /dev/sda
查看網(wǎng)卡信息
使用ethtool可以查看網(wǎng)卡的一些硬件參數(shù),如下:
# 查看網(wǎng)卡參數(shù),會輸出好多看不懂的內(nèi)容,應(yīng)用層開發(fā)一般關(guān)注speed/duplex/link就可以了
$ sudo ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s # 網(wǎng)卡速率
Duplex: Full # 全雙工網(wǎng)卡
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Link detected: yes # 網(wǎng)卡連了網(wǎng)線
# 查看網(wǎng)卡數(shù)據(jù)包統(tǒng)計信息,關(guān)注drop/error之類的指標(biāo),這代表網(wǎng)卡層是否有丟包或錯誤產(chǎn)生
$ sudo ethtool -S eth0
# 查看網(wǎng)卡RingBuffer大小
$ sudo ethtool -g eth0
# 設(shè)置網(wǎng)卡RingBuffer大小
$ sudo ethtool -G eth0 rx 2048
# 使eth0網(wǎng)卡燈閃爍,網(wǎng)絡(luò)運維可能會經(jīng)常使用這個,因為機房網(wǎng)線錯綜復(fù)雜很難分清誰是誰的
$ sudo ethtool -p eth0
# 查看網(wǎng)卡驅(qū)動
$ sudo ethtool -i eth0
# 查看網(wǎng)卡支持的特性
$ sudo ethtool -k eth0
# 查看與調(diào)整網(wǎng)卡隊列數(shù)Combined
$ sudo ethtool -l eth0
$ sudo ethtool -L eth0 combined 8
查看其它硬件信息
除了cpu、內(nèi)存、磁盤、網(wǎng)卡外,機器上還有一些其它硬件,如總線、主板、usb等,開發(fā)人員一般關(guān)注較少,這里只簡單介紹一下,混個眼熟即可。
# 查看usb設(shè)備
$ lsusb
# 查看pci設(shè)備,一般外圍設(shè)備都是通過pci總線連接進來的,所以這個命令一般可以看到很多設(shè)備,包括磁盤與網(wǎng)卡等
# 輸出中Kernel driver in use表示設(shè)備驅(qū)動,Kernel modules表示內(nèi)核模塊
$ lspci -v
# 通過這個命令,機器中所有的硬件信息,都能查看到
$ lshw
查看系統(tǒng)信息
做為后端開發(fā),一般我們比較關(guān)注的系統(tǒng)信息有內(nèi)核版本、發(fā)行版、底層c庫版本等等,這些在Linux下也非常容易查看,如下:
查看內(nèi)核版本
$ uname -r
5.4.0-74-generic
# 通過/proc/version也能看到內(nèi)核版本
$ cat /proc/version
Linux version 5.4.0-74-generic (buildd@lgw01-amd64-038) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) 83-Ubuntu SMP Sat May 8 02:35:39 UTC 2021
可以看到,當(dāng)前系統(tǒng)Linux內(nèi)核版本是5.4.0-74-generic。
另外,內(nèi)核從源碼編譯時可以配置一些選項,內(nèi)核啟動時也可以配置一些選項,如要檢查這些選項,可如下查看:
# /boot/config-*文件保存了內(nèi)核的編譯配置
# 如下查看內(nèi)核編譯時是否開啟了KPROBES(內(nèi)核追蹤)功能
$ cat /boot/config-`uname -r` | grep -i KPROBES
CONFIG_KPROBES=y
# 查看內(nèi)核啟動參數(shù)
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.4.0-74-generic root=UUID=fce5376b-dcc2-4550-a72a-e7cf0f5354a4 ro find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US text nomodeset vga=792
查看發(fā)行版
Linux和Windows不一樣,Linux本身只是一個操作系統(tǒng)內(nèi)核,它提供基礎(chǔ)的進程調(diào)度、內(nèi)存管理等功能,而我們使用的Linux,如Ubuntu、Centos,這些是Linux發(fā)行版,它們將Linux下常用的軟件以及內(nèi)核打包在一起,然后發(fā)行出來給大家使用,降低了Linux使用的難度。
如下,查看當(dāng)前系統(tǒng)是哪個發(fā)行版:
# /etc目錄下有各種*-release文件,這些文件里面記錄著發(fā)行版的信息
$ ls /etc/*-release
/etc/centos-release /etc/os-release /etc/redhat-release /etc/system-release
# 一般通過/etc/os-release就可以了,如下顯示發(fā)行版是CentOS 7
$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
查看系統(tǒng)啟動時間
# 查看系統(tǒng)啟動至今的秒數(shù)
$ cat /proc/uptime|cut -d. -f1
3810068
# 通過date命令轉(zhuǎn)化為啟動時間點,如下:
$ date -d "`cat /proc/uptime|cut -d. -f1` seconds ago" +'%F %T'
2021-11-04 12:51:50
查看libc版本
像Linux上的glibc,Windows上的msvc,它們都是底層c庫,目前幾乎是所有應(yīng)用層軟件的基石。
然而某些場景下,兩個不同版本的c庫,性能差別會非常大,因此常規(guī)性檢查一下它們的版本也是非常有必要的,如下:
# ldd可直接查看glibc版本,如下顯示glibc版本是2.31
$ ldd --version
ldd (Ubuntu GLIBC 2.31-0ubuntu9) 2.31
# ldd可以查看某個程序的所有動態(tài)鏈接庫
# 因此可以通過如下方法檢查java程序使用的各種底層庫版本
$ ldd `which java`
linux-vdso.so.1 (0x00007ffeb11f1000)
/usr/local/lib/libjemalloc.so (0x00007fdcdd8fe000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fdcdd8cb000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdcdd8a8000) # 線程庫
libjli.so => /opt/jdk-11.0.12+7/bin/../lib/jli/libjli.so (0x00007fdcdd697000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdcdd691000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdcdd49f000) # 基礎(chǔ)c庫
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fdcdd2bb000) # 基礎(chǔ)c++庫
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fdcdd2a0000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdcdddc1000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdcdd151000)
# c庫版本是2.31
$ ls -l /lib/x86_64-linux-gnu/libc.so.6
lrwxrwxrwx 1 root root 12 2020-04-15 03:26:04 /lib/x86_64-linux-gnu/libc.so.6 -> libc-2.31.so
# c++庫版本是6.0.28
$ ls -l /lib/x86_64-linux-gnu/libstdc++.so.6
lrwxrwxrwx 1 root root 19 2021-05-29 15:49:27 /lib/x86_64-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.28
# pthread線程庫版本是2.31
$ ls -l /lib/x86_64-linux-gnu/libpthread.so.0
lrwxrwxrwx 1 root root 18 2020-04-15 03:26:04 /lib/x86_64-linux-gnu/libpthread.so.0 -> libpthread-2.31.so
neofetch
可以看到,上面那些命令查看系統(tǒng)信息還是比較零碎的,所以出現(xiàn)了一些命令,將上面的常見場景做了一些聚合,使得能快速直觀的看到系統(tǒng)的主要信息,如neofetch命令:
$ neofetch
如上所示,neofetch會顯示發(fā)行版的一個炫酷圖標(biāo),上面那個像寫輪眼的圖標(biāo)就是Ubuntu的logo。
然后會顯示一些系統(tǒng)關(guān)鍵信息,如內(nèi)核版本、啟動時間、Shell版本、CPU/GPU/Memory等。
網(wǎng)頁名稱:Linux系統(tǒng)如何查看系統(tǒng)信息
網(wǎng)站網(wǎng)址:http://www.dlmjj.cn/article/cocodhh.html


咨詢
建站咨詢
