12/08/2018, 16:27

10 câu lệnh hữu ích để thu thập thông tin hệ thống và phần cứng trong Linux

Chắc hẳn, những ai đã từng làm việc với vai trò là một backend developer thì đều đã ít nhiều làm việc với hệ điều hành "họ" Linux. Tuy nhiên, để có thể hiểu hơn về hệ thống và phần cứng của máy tính đang chạy Linux thì không phải ai cũng nắm được. Đặc biệt với những người mới như tôi, điều đó còn ...

Chắc hẳn, những ai đã từng làm việc với vai trò là một backend developer thì đều đã ít nhiều làm việc với hệ điều hành "họ" Linux. Tuy nhiên, để có thể hiểu hơn về hệ thống và phần cứng của máy tính đang chạy Linux thì không phải ai cũng nắm được. Đặc biệt với những người mới như tôi, điều đó còn có vẻ khó khăn hơn nhiều do phải sử dụng nhiều câu lệnh command line. Vì vậy, trong bài viết này, tôi xin dịch một bài viết mà tôi cảm thấy khá hữu ích cho việc khám phá một máy tính Linux.

Nó luôn là một cách tốt để biết về những thành phần trong hệ thống Linux mà bạn đang sử dụng, Điều này giúp bạn giải quyết nhiều vấn đề tương thích khi cài đặt các gói dịch vụ hoặc drivers cho hệ thống của bạn. Vì vậy, trong bài viết này, chúng tôi sẽ cùng tìm một vài câu lệnh để giúp bạn xem được thông tin về hệ thống Linux và thiết bị phần cứng của nó.

1. Làm thế nào để hiển thị thông tin hệ thống Linux?

  • Để biết về tên hệ thống, cạn có thể sử dụng câu lệnh uname (có hoặc không -s)
$ uname
Linux
$ uname -s
Linux
  • Để hiển thị hostname của máy tính, sử dụng câu lệnh uname với -n
$ uname -n
tecmint.com
  • Để hiển thị thông tin phiên bản nhân Linux, sử dụng câu lệnh uname với -v
$ uname -v
#64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014
  • Để hiển thị thông tin về "kernel-release", sử dụng câu lệnh uname với -r
$ uname -r
3.13.0-37-generic
  • Để biết về tên phần cứng sử dụng câu lệnh uname với -m
$ uname -m
x86_64
  • Cuối cùng, để hiển thị toàn bộ thông tin, ta sử dụng câu lệnh uname với -a
$ uname -a
Linux tecmint.com 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

2. Làm thế nào để hiển thị thông tin phần cứng của máy đang chạy Linux?

  • Ở đây, bạn có thể sử dụng công cụ lshw để tóm gọn nhiều thông tin về phần cứng của máy như cpu, ổ đĩa, bộ nhớ, ...
  • lshw là một công cụ tương đối nhỏ và có vài lựa chọn mà bạn có thể sử dụng với nó trong khi khai thác thông tin. Thông tin được cung cấp bởi lshw thu thập các tệp tin khác nhau /proc. Lưu ý: lshw được sử dụng với quyền của superuser (sudo).
  • Để hiển thị thông vin về phần cứng máy chạy Linux, sử dụng câu lệnh lshw.
$ sudo lshw
tecmint.com
description: Notebook
product: 20354 (LENOVO_MT_20354_BU_idea_FM_Lenovo Z50-70)
vendor: LENOVO
version: Lenovo Z50-70
serial: 1037407803441
awidth: 64 bits
capabilities: smbios-2.7 dmi-2.7 vsyscall32
configuration: administrator_password=disabled boot=normal chassis=notebook family=IDEAPAD frontpanel_password=disabled keyboard_password=disabled power-on_password=disabled sku=LENOVO_MT_20354_BU_idea_FM_Lenovo Z50-70 uuid=E4B1D229-D237-E411-9F6E-28D244EBBD98
*-core
description: Motherboard
product: Lancer 5A5
vendor: LENOVO
physical id: 0
version: 31900059WIN
serial: YB06377069
slot: Type2 - Board Chassis Location
*-firmware
description: BIOS
vendor: LENOVO
physical id: 0
version: 9BCN26WW
date: 07/31/2014
size: 128KiB
capacity: 4032KiB
capabilities: pci upgrade shadowing cdboot bootselect edd int13floppynec int13floppytoshiba int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int9keyboard int10video acpi usb biosbootspecification uefi
......
  • Tổng hợp thông tin với tùy chọn -short
$ sudo lshw -short
H/W path       Device      Class          Description
=====================================================
system         20354 (LENOVO_MT_20354_BU_idea_FM_Lenovo Z50-70)
/0                         bus            Lancer 5A5
/0/0                       memory         128KiB BIOS
/0/4                       processor      Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
/0/4/b                     memory         32KiB L1 cache
/0/4/c                     memory         256KiB L2 cache
/0/4/d                     memory         3MiB L3 cache
/0/a                       memory         32KiB L1 cache
/0/12                      memory         8GiB System Memory
/0/12/0                    memory         DIMM [empty]
/0/12/1                    memory         DIMM [empty]
/0/12/2                    memory         8GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
/0/12/3                    memory         DIMM [empty]
/0/100                     bridge         Haswell-ULT DRAM Controller
/0/100/2                   display        Haswell-ULT Integrated Graphics Controller
/0/100/3                   multimedia     Haswell-ULT HD Audio Controller
...
  • Nếu bạn muốn xuất ra một tệp html, sử dụng tùy chọn -html
sudo lshw -html > lshw.html
# Câu lệnh này sẽ thấy toàn bộ thông và định dạng thành html.
# Lưu vào tệp lshw.html ở ngay thư mục mà chạy đang chạy terminal
# Mở tệp lshw.html trên trình duyệt để xem kết quả.

3. Làm thế nào để hiển thị thông tin CPU?

  • Để hiển thị thông tin về CPU, sử dụng câu lệnh lscpu, nó sẽ hiển thị thông tin về kiến trúc CPU như cores, model, cache, ...
$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 69
Stepping:              1
CPU MHz:               768.000
BogoMIPS:              4788.72
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3

4. Làm thế nào thu thập thông tin về Block Device?

  • Block Device là những thiết bị lưu trữ như ổ cứng, ổ flash (usb). Câu lệnh lsblk được sử dụng để hiển thị thông tin Block device như sau:
$ lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda       8:0    0 931.5G  0 disk
├─sda1    8:1    0  1000M  0 part
├─sda2    8:2    0   260M  0 part /boot/efi
├─sda3    8:3    0  1000M  0 part
├─sda4    8:4    0   128M  0 part
├─sda5    8:5    0 557.1G  0 part
├─sda6    8:6    0    25G  0 part
├─sda7    8:7    0  14.7G  0 part
├─sda8    8:8    0     1M  0 part
├─sda9    8:9    0 324.5G  0 part /
└─sda10   8:10   0   7.9G  0 part [SWAP]
sr0      11:0    1  1024M  0 rom
  • Nếu bạn muốn hiển thị toàn bộ Block Device trên hệ thống của mình thì sử dụng thêm thùy chọn -a
$ lsblk -a
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda       8:0    0 931.5G  0 disk
├─sda1    8:1    0  1000M  0 part
├─sda2    8:2    0   260M  0 part /boot/efi
├─sda3    8:3    0  1000M  0 part
├─sda4    8:4    0   128M  0 part
├─sda5    8:5    0 557.1G  0 part
├─sda6    8:6    0    25G  0 part
├─sda7    8:7    0  14.7G  0 part
├─sda8    8:8    0     1M  0 part
├─sda9    8:9    0 324.5G  0 part /
└─sda10   8:10   0   7.9G  0 part [SWAP]
sdb       8:16   1         0 disk
sr0      11:0    1  1024M  0 rom
ram0      1:0    0    64M  0 disk
ram1      1:1    0    64M  0 disk
ram2      1:2    0    64M  0 disk
ram3      1:3    0    64M  0 disk
ram4      1:4    0    64M  0 disk
ram5      1:5    0    64M  0 disk
ram6      1:6    0    64M  0 disk
ram7      1:7    0    64M  0 disk
ram8      1:8    0    64M  0 disk
ram9      1:9    0    64M  0 disk
loop0     7:0    0         0 loop
loop1     7:1    0         0 loop
loop2     7:2    0         0 loop
loop3     7:3    0         0 loop
loop4     7:4    0         0 loop
loop5     7:5    0         0 loop
loop6     7:6    0         0 loop
loop7     7:7    0         0 loop
ram10     1:10   0    64M  0 disk
ram11     1:11   0    64M  0 disk
ram12     1:12   0    64M  0 disk
ram13     1:13   0    64M  0 disk
ram14     1:14   0    64M  0 disk
ram15     1:15   0    64M  0 disk

5. Làm thế nào để hiển thị thông tin USB Controllers?

  • Câu lệnh lsusb được dùng để hiển thị thông tin USB controllers và tất cả những thiết bị được kết nối với chúng.
$ lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 005: ID 0bda:b728 Realtek Semiconductor Corp.
Bus 002 Device 004: ID 5986:0249 Acer, Inc
Bus 002 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 002 Device 002: ID 045e:00cb Microsoft Corp. Basic Optical Mouse v2.0
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  • Bạn có thể sử dụng thêm -v để hiện thông tin chi tiết cho từng thiết bị USB.

6. Làm thế nào để hiển thị thông tin các thiết bị PCI?

  • Những thiết bị PCI bao gồm cổng usb, card đồ họa, card mạng, ... Câu lệnh lspci dùng để hiển thị toàn bộ thông tin về những thiết bị này.
$ lspci
00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 0b)
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 0b)
00:14.0 USB controller: Intel Corporation Lynx Point-LP USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation Lynx Point-LP HECI #0 (rev 04)
00:1b.0 Audio device: Intel Corporation Lynx Point-LP HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 3 (rev e4)
00:1c.3 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 4 (rev e4)
00:1c.4 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 5 (rev e4)
00:1d.0 USB controller: Intel Corporation Lynx Point-LP USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Lynx Point-LP LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation Lynx Point-LP SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation Lynx Point-LP SMBus Controller (rev 04)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter
03:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 840M] (rev a2)
  • Sử dụng thêm tùy chọn -t để hiển thị thành một cây.
tecmint@tecmint ~ $ lspci -t
-[0000:00]-+-00.0
+-02.0
+-03.0
+-14.0
+-16.0
+-1b.0
+-1c.0-[01]----00.0
+-1c.3-[02]----00.0
+-1c.4-[03]----00.0
+-1d.0
+-1f.0
+-1f.2
-1f.3
  • Sử dụng thêm tùy chọn -v để hiển thị thông tin chi tiết cho từng thiết bị kết nối.
$ lspci -v
00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 0b)
Subsystem: Lenovo Device 3978
Flags: bus master, fast devsel, latency 0
Capabilities:
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b) (prog-if 00 [VGA controller])
Subsystem: Lenovo Device 380d
Flags: bus master, fast devsel, latency 0, IRQ 62
Memory at c3000000 (64-bit, non-prefetchable) [size=4M]
Memory at d0000000 (64-bit, prefetchable) [size=256M]
I/O ports at 6000 [size=64]
Expansion ROM at  [disabled]
Capabilities:
Kernel driver in use: i915
.....

7. Làm thế nào để hiển thị thông tin thiết bị SCSI?

  • Để hiển thị toàn bộ thiết bị scsi/data, sử dụng lệnh lsscsi như dưới đây. Nếu bạn chưa cài đặt lsscsi thì hãy cài đặt như sau:
$ sudo apt-get install lsscsi        [on Debian derivatives]
# yum install lsscsi                 [On RedHat based systems]
# dnf install lsscsi                 [On Fedora 21+ Onwards]
  • Sau khi cài đặt, chạy lệnh lsscsi sẽ hiển thị như sau:
$ lsscsi
[0:0:0:0]    disk    ATA      ST1000LM024 HN-M 2BA3  /dev/sda
[1:0:0:0]    cd/dvd  PLDS     DVD-RW DA8A5SH   RL61  /dev/sr0
[4:0:0:0]    disk    Generic- xD/SD/M.S.       1.00  /dev/sdb
  • Sử dụng thêm tùy chọn -s để biết dung lượng thiết bị
lsscsi -s
[0:0:0:0]    disk    ATA      ST1000LM024 HN-M 2BA3  /dev/sda   1.00TB
[1:0:0:0]    cd/dvd  PLDS     DVD-RW DA8A5SH   RL61  /dev/sr0        -
[4:0:0:0]    disk    Generic- xD/SD/M.S.       1.00  /dev/sdb        -

8. Làm thế nào để hiển thị thông tin về thiết bị SATA?

  • Bạn có thể tìm được một số thông tin về thiết bị SATA trên hệ thống của bạn bằng cách sử dụng tiện ích utility. Trong ví dụ dưới đây, tôi sử dụng block device /dev/sda1 là ổ cứng.
$ sudo hdparm /dev/sda1
/dev/sda1:
multcount     =  0 (off)
IO_support    =  1 (32-bit)
readonly      =  0 (off)
readahead     = 256 (on)
geometry      = 56065/255/63, sectors = 2048000, start = 2048

9. Làm thế nào để hiển thị thông tin File System?

$ sudo fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xcee8ad92
Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1953525167   976762583+  ee  GPT
Partition 1 does not start on physical sector boundary.

10. Làm thế nào để hiển thị thông tin về những thiết bị phần cứng?

$ sudo dmidecode -t memory
# dmidecode 2.12
# SMBIOS entry point at 0xaaebef98
SMBIOS 2.7 present.
Handle 0x0005, DMI type 5, 24 bytes
Memory Controller Information
Error Detecting Method: None
Error Correcting Capabilities:
None
Supported Interleave: One-way Interleave
Current Interleave: One-way Interleave
Maximum Memory Module Size: 8192 MB
Maximum Total Memory Size: 32768 MB
Supported Speeds:
Other
Supported Memory Types:
Other
Memory Module Voltage: Unknown
Associated Memory Slots: 4
0x0006
0x0007
0x0008
0x0009
Enabled Error Correcting Capabilities:
None
...
$ sudo dmidecode -t system
# dmidecode 2.12
# SMBIOS entry point at 0xaaebef98
SMBIOS 2.7 present.
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: LENOVO
Product Name: 20354
Version: Lenovo Z50-70
Serial Number: 1037407803441
UUID: 29D2B1E4-37D2-11E4-9F6E-28D244EBBD98
Wake-up Type: Power Switch
SKU Number: LENOVO_MT_20354_BU_idea_FM_Lenovo Z50-70
Family: IDEAPAD

Trên đây là những kiến thức mà tôi cảm thấy vô cùng bổ ích để hiểu thêm về một hệ thống sử dụng Linux. Rất mong nó có thể giúp ích cho mọi người. Do kiến thức về phần cứng của tôi rất hạn chế nên có thể có nhiều chỗ dịch không đúng ngữ nghĩa. Mong mọi người comment để giúp tôi hoàn thiện hơn.

Chúc các bạn học tập và làm việc vui vẻ!

https://www.tecmint.com/commands-to-collect-system-and-hardware-information-in-linux/

0