Наиболее полезные команды для проверки информации о системе и оборудовании в Linux

Вступление

Ключевой навык, которым вы должны обладать как системный администратор Linux, — это знать, как просматривать информацию об установленном в настоящее время оборудовании в вашей системе.

В этом уроке мы рассмотрим различные инструменты, которые вы можете использовать для этого.

1. Изучение файловой системы / proc

Хотите верьте, хотите нет — одним из лучших инструментов для просмотра информации об оборудовании является старый добрый /proc каталог.

Теперь мы поговорили о /proc до.

Помните /proc Каталог на самом деле не существует в файловой системе, вместо этого это псевдофайловая система, которая динамически создается при каждом доступе к ней.

Теперь, как вы можете видеть здесь, /proc Каталог содержит множество подкаталогов, и каждый из этих подкаталогов, которые вы видите здесь синим цветом, представляет процесс, который в настоящее время выполняется в вашей системе.

Если вы хотите просмотреть информацию о конкретном процессе, вы можете зайти в соответствующий каталог здесь и там, вы найдете информацию об этом запущенном процессе.

# ls /proc/
985        driver       loadavg       slabinfo	    1     11     1345  154    1646   17508  1831  2     2174  2336  2428  2492  2675  464   617
986        execdomains  locks         softirqs      10    1100   1355  155    165    1751   1839  20    2182  2337  2430  25    2681  465   648
987        fb           mdstat        stat          1004  1160   1360  156    16599  1753   1849  2000  2195  2341  2432  2525  27    470   8  
990        filesystems  meminfo       swaps         1006  1161   1365  157    166    17550  19    2004  22    2344  2440  2532  2741  483   836
991        fs           misc          sys           1009  1169   1371  158    167    17551  1930  2008  2201  2349  2442  2549  2748  484   9  
acpi       interrupts   modules       sysrq-trigger 1014  1184   1423  1585   168    17569  1934  2013  2205  2352  2450  2551  28    509   920
asound     iomem        mounts        sysvipc       1015  1188   146   1586   169    176    1937  2019  2210  2363  2452  2570  29    510   921
buddyinfo  ioports      mpt           thread-self   1018  1191   1466  159    17     17609  1941  2021  2216  2368  2453  2572  3     511   946
bus        irq          mtrr          timer_list    1019  1197   147   16     170    177    1949  2031  2225  2371  2456  2598  30    512   948
cgroups    kallsyms     net           tty           1022  12     148   160    17039  178    1953  2040  2275  2385  2457  26    4     513   950
cmdline    kcore        pagetypeinfo  uptime        1038  12766  149   161    171    179    1974  2044  2295  2389  2469  2602  450   514   962
consoles   keys         partitions    version       1043  12785  15    1612   172    18     1981  2048  23    2393  2470  2605  451   515   963
cpuinfo    key-users    pressure      vmallocinfo   1046  12938  150   162    17285  180    1985  2051  2303  2397  2474  2606  454   516   978
crypto     kmsg         sched_debug   vmstat        1048  12939  151   1626   173    181    1989  2073  2320  24    2475  2609  455   517   979
devices    kpagecgroup  schedstat     zoneinfo      1068  12951  1518  16291  17341  182    1991  2092  2323  2409  2476  2613  457   53    982
diskstats  kpagecount   scsi                        1070  12952  152   163    174    1827   1992  21    2328  2410  2482  2625  462   6     983
dma        kpageflags   self                        1077  13     153   164    175    183    1996  2166  2331  2426  2489  2653  463   6131  984

Но на этом уроке нас беспокоит не это.

Нас беспокоят другие файлы в этом каталоге, которые содержат информацию об оборудовании в вашей системе.

1.1 / proc / cpuinfo объяснил

Например, /proc/cpuinfo Файл содержит подробную информацию о процессоре, установленном в системе.

И поскольку это всего лишь текстовый файл, вы можете использовать cat, less, more или любой другой текстовый редактор, в котором вы хотите просмотреть содержимое этого файла.

Предлагаемое чтение: Примеры команд cat в Linux

В этом примере я использую cat команда для просмотра cpuinfo файл в этой конкретной системе, и когда мы это сделаем, я узнаю, что у меня есть Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz и прямо здесь он говорит мне, что это 1-ядерный процессор.

Я также могу видеть, сколько кэш-памяти доступно на этом процессоре, в файле cpuinfo отображается дополнительная информация, которую мы можем одновременно отображать на экране.

# cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 78
model name	: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz
stepping	: 3
microcode	: 0xcc
cpu MHz		: 2495.999
cache size	: 3072 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 22
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 syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid 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 cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat md_clear flush_l1d arch_capabilities
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips	: 4991.99
clflush size	: 64
cache_alignment	: 64
address sizes	: 45 bits physical, 48 bits virtual
power management:

1.2 / proc / устройства

Кроме того, здесь есть еще один файл с именем /proc/devices.

Файл устройств содержит список всех аппаратных устройств, установленных в системе.

# cat /proc/devices 
Character devices:
  1 mem
  4 /dev/vc/0
  4 tty
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
  7 vcs
 10 misc
 13 input
 14 sound
 21 sg
 29 fb
116 alsa
128 ptm
136 pts
162 raw
180 usb
188 ttyUSB
189 usb_device
202 cpu/msr
203 cpu/cpuid
216 rfcomm
226 drm
243 aux
244 hidraw
245 usbmon
246 bsg
247 watchdog
248 ptp
249 pps
250 cec
251 rtc
252 dax
253 tpm
254 gpiochip

Block devices:
  8 sd
  9 md
 11 sr
 65 sd
 66 sd
 67 sd
 68 sd
 69 sd
 70 sd
 71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
253 device-mapper
254 mdp
259 blkext

1.3 / proc / dma

Здесь есть еще один файл под названием /proc/dma, он содержит список всех dma назначения каналов в системе.

# cat /proc/dma 
 4: cascade

1.4 / proc / interrupts

Еще один интересный файл — это /proc/interrupts файла, здесь показано содержимое образца файла прерываний.

Как видите, он содержит список IRQ назначения в системе.

Например, мы видим, что наши два ATA Контроллеры в системе назначены на прерывания 14 и 15, Наш сетевой порт назначен на использование прерывания 19, Наш USB портам назначены прерывания 17 и 18.

# cat interrupts 
            CPU0       
   0:         90   IO-APIC    2-edge      timer
   1:      13352   IO-APIC    1-edge      i8042
   8:          1   IO-APIC    8-edge      rtc0
   9:          0   IO-APIC    9-fasteoi   acpi
  12:     191742   IO-APIC   12-edge      i8042
  14:          0   IO-APIC   14-edge      ata_piix
  15:      56679   IO-APIC   15-edge      ata_piix
  16:      79971   IO-APIC   16-fasteoi   vmwgfx, snd_ens1371
  17:     375078   IO-APIC   17-fasteoi   ehci_hcd:usb1, ioc0
  18:        976   IO-APIC   18-fasteoi   uhci_hcd:usb2
  19:     223499   IO-APIC   19-fasteoi   ens33
  24:          0   PCI-MSI 344064-edge      PCIe PME, pciehp
  25:          0   PCI-MSI 346112-edge      PCIe PME, pciehp
  26:          0   PCI-MSI 348160-edge      PCIe PME, pciehp
  27:          0   PCI-MSI 350208-edge      PCIe PME, pciehp
  28:          0   PCI-MSI 352256-edge      PCIe PME, pciehp
  29:          0   PCI-MSI 354304-edge      PCIe PME, pciehp
  30:          0   PCI-MSI 356352-edge      PCIe PME, pciehp
  31:          0   PCI-MSI 358400-edge      PCIe PME, pciehp
  32:          0   PCI-MSI 360448-edge      PCIe PME, pciehp
  33:          0   PCI-MSI 362496-edge      PCIe PME, pciehp
  34:          0   PCI-MSI 364544-edge      PCIe PME, pciehp
  35:          0   PCI-MSI 366592-edge      PCIe PME, pciehp
  36:          0   PCI-MSI 368640-edge      PCIe PME, pciehp
  37:          0   PCI-MSI 370688-edge      PCIe PME, pciehp
  38:          0   PCI-MSI 372736-edge      PCIe PME, pciehp
  39:          0   PCI-MSI 374784-edge      PCIe PME, pciehp
  40:          0   PCI-MSI 376832-edge      PCIe PME, pciehp
  41:          0   PCI-MSI 378880-edge      PCIe PME, pciehp
  42:          0   PCI-MSI 380928-edge      PCIe PME, pciehp
  43:          0   PCI-MSI 382976-edge      PCIe PME, pciehp
  44:          0   PCI-MSI 385024-edge      PCIe PME, pciehp
  45:          0   PCI-MSI 387072-edge      PCIe PME, pciehp
  46:          0   PCI-MSI 389120-edge      PCIe PME, pciehp
  47:          0   PCI-MSI 391168-edge      PCIe PME, pciehp
  48:          0   PCI-MSI 393216-edge      PCIe PME, pciehp
  49:          0   PCI-MSI 395264-edge      PCIe PME, pciehp
  50:          0   PCI-MSI 397312-edge      PCIe PME, pciehp
  51:          0   PCI-MSI 399360-edge      PCIe PME, pciehp
  52:          0   PCI-MSI 401408-edge      PCIe PME, pciehp
  53:          0   PCI-MSI 403456-edge      PCIe PME, pciehp
  54:          0   PCI-MSI 405504-edge      PCIe PME, pciehp
  55:          0   PCI-MSI 407552-edge      PCIe PME, pciehp
  56:       7782   PCI-MSI 129024-edge      vmw_vmci
  57:          0   PCI-MSI 129025-edge      vmw_vmci
 NMI:          0   Non-maskable interrupts
 LOC:    3863622   Local timer interrupts
 SPU:          0   Spurious interrupts
 PMI:          0   Performance monitoring interrupts
 IWI:          0   IRQ work interrupts
 RTR:          0   APIC ICR read retries
 RES:          0   Rescheduling interrupts
 CAL:          0   Function call interrupts
 TLB:          0   TLB shootdowns
 TRM:          0   Thermal event interrupts
 THR:          0   Threshold APIC interrupts
 DFR:          0   Deferred Error APIC interrupts
 MCE:          0   Machine check exceptions
 MCP:        177   Machine check polls
 HYP:          0   Hypervisor callback interrupts
 HRE:          0   Hyper-V reenlightenment interrupts
 HVS:          0   Hyper-V stimer0 interrupts
 ERR:          0
 MIS:          0
 PIN:          0   Posted-interrupt notification event
 NPI:          0   Nested posted-interrupt event
 PIW:          0   Posted-interrupt wakeup event

1.5 / proc / iomem

Здесь также есть файл под названием /proc/iomem который содержит список I/O назначения портов в системе.

# cat /proc/iomem 
00000000-00000fff : Reserved
00001000-0009ebff : System RAM
0009ec00-0009ffff : Reserved
000a0000-000bffff : PCI Bus 0000:00
000c0000-000c7fff : Video ROM
000ca000-000cafff : Adapter ROM
000cc000-000cffff : PCI Bus 0000:00
000d0000-000d3fff : PCI Bus 0000:00
000d4000-000d7fff : PCI Bus 0000:00
000d8000-000dbfff : PCI Bus 0000:00
000dc000-000fffff : Reserved
  000f0000-000fffff : System ROM
00100000-3fedffff : System RAM
  1aa00000-1b6013f0 : Kernel code
  1b6013f1-1be19eff : Kernel data
  1c5ad000-1cbfffff : Kernel bss
  2a000000-33ffffff : Crash kernel
3fee0000-3fefefff : ACPI Tables
3feff000-3fefffff : ACPI Non-volatile Storage
3ff00000-3fffffff : System RAM

1.6 / proc / модули

Еще один очень полезный файл — это /proc/modules файл, этот файл содержит список всех модулей ядра, которые в настоящее время используются системой.

Пример /proc/modules файл показан здесь.

Я только что использовал cat , чтобы просмотреть его, и здесь вы можете увидеть все различные загруженные модули ядра, такие как наш драйвер Bluetooth, который используется для обеспечения поддержки устройств Bluetooth в системе.

# cat /proc/modules
uinput 20480 1 - Live 0xffffffffc0adb000
fuse 131072 3 - Live 0xffffffffc0a3d000
rfcomm 86016 6 - Live 0xffffffffc0871000
xt_CHECKSUM 16384 1 - Live 0xffffffffc0a34000
ipt_MASQUERADE 16384 1 - Live 0xffffffffc0a2f000
xt_conntrack 16384 1 - Live 0xffffffffc0a2a000
ipt_REJECT 16384 1 - Live 0xffffffffc0a23000
nft_counter 16384 16 - Live 0xffffffffc0a1e000
nf_nat_tftp 16384 0 - Live 0xffffffffc0a19000
nft_objref 16384 1 - Live 0xffffffffc0a14000
nf_conntrack_tftp 16384 3 nf_nat_tftp, Live 0xffffffffc0a0f000
tun 53248 1 - Live 0xffffffffc0a01000
bridge 192512 0 - Live 0xffffffffc09cf000
stp 16384 1 bridge, Live 0xffffffffc09ca000
llc 16384 2 bridge,stp, Live 0xffffffffc09c5000
bluetooth 634880 27 rfcomm,bnep,btusb,btrtl,btbcm,btintel, Live 0xffffffffc05a9000
ecdh_generic 24576 1 bluetooth, Live 0xffffffffc051f000
rfkill 28672 5 bluetooth, Live 0xffffffffc02ba000

1.7 / proc / scsi / Справочник объяснил

Здесь есть подпапка с именем scsi.

В scsi каталог содержит дополнительные файлы, содержащие информацию о различных scsi устройства в вашей системе.

# ls /proc/scsi/
device_info  mptspi  scsi  sg
# cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: VMware,  Model: VMware Virtual S Rev: 1.0 
  Type:   Direct-Access                    ANSI  SCSI revision: 02
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: VMware,  Model: VMware Virtual S Rev: 1.0 
  Type:   Direct-Access                    ANSI  SCSI revision: 02
Host: scsi0 Channel: 00 Id: 02 Lun: 00
  Vendor: VMware,  Model: VMware Virtual S Rev: 1.0 
  Type:   Direct-Access                    ANSI  SCSI revision: 02
Host: scsi0 Channel: 00 Id: 03 Lun: 00
  Vendor: VMware,  Model: VMware Virtual S Rev: 1.0 
  Type:   Direct-Access                    ANSI  SCSI revision: 02
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00
  Type:   CD-ROM                           ANSI  SCSI revision: 05

1.8 / proc / bus / Справочник объяснил

Здесь также есть папка под названием bus, в bus это файл с именем devices который содержит информацию о различных USB устройства в системе.

# ls /proc/bus/
input  pci

# ls /proc/bus/input/
devices  handlers
# cat devices
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
U: Uniq=
H: Handlers=kbd event0 
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input1
U: Uniq=
H: Handlers=sysrq kbd leds event1 
B: PROP=0
B: EV=120013
B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0011 Vendor=0002 Product=0013 Version=0006
N: Name="VirtualPS/2 VMware VMMouse"
P: Phys=isa0060/serio1/input1
S: Sysfs=/devices/platform/i8042/serio1/input/input4
U: Uniq=
H: Handlers=mouse0 event2 
B: PROP=0
B: EV=b
B: KEY=70000 0 0 0 0
B: ABS=3

1.9 / proc / diskstats

В /proc/diskstats файл отображает I/O статистика блочных устройств. Каждая строка содержит следующие 14 полей:

  1. Главный номер
  2. Второстепенное число
  3. Имя устройства
  4. Чтения успешно завершены
  5. Читает объединено
  6. Секторы читают
  7. Время, потраченное на чтение (мс)
  8. Пишет завершено
  9. Пишет слито
  10. Секторы написаны
  11. время, затраченное на написание (мс)
  12. Операции ввода-вывода в настоящее время выполняются
  13. Время, затраченное на ввод / вывод (мс)
  14. Взвешенное время, затраченное на операции ввода-вывода (мс)

Пример /proc/diskstats файл показан здесь.

# cat /proc/diskstats
   8       0 sda 364602 84167 34602359 214193 42116 376022 4221929 47325 0 190620 134354 0 0 0 0
   8       1 sda1 599 0 100694 288 17 4 96 6 0 503 105 0 0 0 0
   8       2 sda2 142790 83948 1850352 77867 21907 373586 3163944 32211 0 79272 61332 0 0 0 0
   8       3 sda3 221046 219 32616689 135978 20192 2432 1057889 15107 0 130180 72903 0 0 0 0
   8      16 sdb 7248 0 486546 961 698 830 350550 307 0 3220 164 0 0 0 0
   8      17 sdb1 435 0 28880 80 127 83 50841 57 0 347 30 0 0 0 0
   8      18 sdb2 414 0 29288 34 23 0 1915 4 0 168 3 0 0 0 0
   8      19 sdb3 454 0 28576 40 126 83 50833 55 0 260 22 0 0 0 0
   8      32 sdc 2201 0 163248 265 131 0 11523 53 0 1213 41 0 0 0 0
   8      48 sdd 1609 0 137440 212 129 0 11507 57 0 1086 36 0 0 0 0
  11       0 sr0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 253       0 dm-0 310 0 9616 51 189 0 49302 139 0 169 190 0 0 0 0
 253       1 dm-1 262 0 7528 29 189 0 49302 88 0 127 117 0 0 0 0

Источник: kernel.org

1.10 / proc / swaps

/proc/swaps измеряет пространство подкачки и его использование.

Этот файл предоставляет снимок каждого имени файла подкачки, типа пространства подкачки, общего размера и количества используемого пространства (в килобайтах).

# cat /proc/swaps
Filename				Type		Size	Used	Priority
/dev/sda2                               partition	2097148	718592	-2

Предлагаемое чтение: Как создать раздел подкачки в Linux

1.11 / proc / файловые системы

/proc/filesystems file отображает список типов файловых систем, поддерживаемых в настоящее время ядром.

# cat /proc/filesystems
nodev	sysfs
nodev	rootfs
nodev	ramfs
nodev	bdev
nodev	proc
nodev	cpuset
nodev	cgroup
nodev	cgroup2
nodev	tmpfs
nodev	devtmpfs
nodev	configfs
nodev	debugfs
nodev	tracefs
nodev	securityfs
nodev	sockfs
nodev	bpf
nodev	pipefs
nodev	hugetlbfs
nodev	devpts
nodev	autofs
nodev	pstore
nodev	mqueue
nodev	selinuxfs
	xfs
	ext3
	ext2
	ext4
nodev	rpc_pipefs
	fuseblk
nodev	fuse
nodev	fusectl

1.12 / proc / разделы

/proc/partitions: Этот файл содержит информацию о распределении блоков разделов.

# cat /proc/partitions
major minor  #blocks  name

   8        0   20971520 sda
   8        1     307200 sda1
   8        2    2097152 sda2
   8        3   18566144 sda3
   8       16    3145728 sdb
   8       17     512000 sdb1
   8       18     512000 sdb2
   8       19     512000 sdb3
   8       32    3145728 sdc
   8       48    3145728 sdd
  11        0    1048575 sr0
 253        0     512000 dm-0
 253        1     512000 dm-1

Предлагаемое чтение:

1.13 / proc / meminfo

Это один из наиболее часто используемых файлов в /proc каталог, так как он сообщает большой объем ценной информации об использовании оперативной памяти системой.

# cat meminfo 
MemTotal:         810492 kB
MemFree:           85700 kB
MemAvailable:     141600 kB
Buffers:              64 kB
Cached:           148356 kB
SwapCached:        59496 kB
Active:           214320 kB
Inactive:         178792 kB
Active(anon):     130152 kB
Inactive(anon):   125584 kB
Active(file):      84168 kB
Inactive(file):    53208 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2097148 kB
SwapFree:        1371388 kB
Dirty:                32 kB
Writeback:             0 kB
AnonPages:        237956 kB
Mapped:            64296 kB
Shmem:             11044 kB
KReclaimable:      55044 kB
Slab:             166788 kB
SReclaimable:      55044 kB
SUnreclaim:       111744 kB
KernelStack:       11436 kB
PageTables:        49720 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2502392 kB
Committed_AS:    4800280 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
Percpu:            57856 kB
HardwareCorrupted:     0 kB
AnonHugePages:     81920 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      286592 kB
DirectMap2M:      761856 kB
DirectMap1G:           0 kB

1.14 / proc / время безотказной работы

Этот файл содержит подробную информацию о том, как долго система была включена с момента последнего перезапуска.

# cat /proc/uptime 
69274.12 67735.13

1.15 / proc / версия

В этом файле указывается версия ядра Linux, версия gcc используется для компиляции ядра и время компиляции ядра. Он также содержит имя пользователя компилятора ядра.

# cat /proc/version 
Linux version 4.18.0-193.el8.x86_64 ([email protected]) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP Fri May 8 10:59:10 UTC 2020

Вы также можете получить ту же информацию, используя команда uname.

# uname -a
Linux localhost.localdomain 4.18.0-193.el8.x86_64 #1 SMP Fri May 8 10:59:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

2. Изучение файловой системы / sys

Теперь помимо /proc directory есть еще один каталог в вашей файловой системе Linux с именем /sys а также предоставляет информацию об оборудовании, установленном в системе.

Теперь файловая система внутри /sys фактически организована в виде древовидной структуры, сгруппированной по аппаратной шине, аппаратным устройствам и связанным с ними драйверам.

Верхний уровень /sys Здесь показан каталог, который содержит множество подкаталогов для организации этой информации.

# ls /sys/
block  bus  class  dev  devices  firmware  fs  hypervisor  kernel  module  power

Например, каталог блоков содержит файл символической ссылки для каждого блочного устройства в системе.

2.1 / sys / bus / Справочник объяснил

Каталог шины содержит каталог для каждой шины данных в системе, такой как ваш PCI автобус, твой scsi автобус и твой USB автобус.

Кроме того, в каждом каталоге шины есть два подкаталога, которые называются устройствами и драйверами.

# cd /sys/bus/

# ls
ac97  clockevents  cpu   event_source  i2c           memory    nvmem        platform  serio    thunderbolt  usb-serial  xen
acpi  clocksource  dax   gpio          machinecheck  mipi-dsi  pci          pnp       snd_seq  typec        virtio
cec   container    edac  hid           mdio_bus      node      pci_express  scsi      spi      usb          workqueue

# ls cpu/
devices  drivers  drivers_autoprobe  drivers_probe  uevent

# ls memory/
devices  drivers  drivers_autoprobe  drivers_probe  uevent

Они показаны прямо здесь. Я внутри каталога шины USB.

# cd usb/

# ls
devices  drivers  drivers_autoprobe  drivers_probe  uevent

В устройства подкаталог содержит записи для каждого устройства, подключенного к этой шине, в то время как водители Каталог содержит подкаталоги для каждого драйвера, загруженного для данного устройства на этой шине.

2.2 Объяснение / sys / class /, / sys / devices /, / sys / module / Каталоги

Теперь в рамках /sys сам каталог — это каталог, называемый класс.

# ls /sys/
block  bus  class  dev  devices  firmware  fs  hypervisor  kernel  module  power

В /sys/class Каталог содержит список всех доступных классов устройств.

В /sys/devices Каталог содержит запись для каждого аппаратного устройства, обнаруженного в системе.

Здесь также есть каталог под названием /sys/module.

Сейчас /sys/module Каталог содержит множество подкаталогов, по одному для каждого модуля, загруженного в ядро ​​в данный момент.

Например, вот наш подкаталог для модуля ядра Bluetooth, драйвера мыши, подкаталог для нашего драйвера клавиатуры и так далее.

# cd /sys/module/

8250              debug_core             intel_rapl_common  nf_conntrack          nft_reject          slab_common         tpm_tis_core
ac97_bus          dm_mod                 intel_rapl_msr     nf_conntrack_ipv4     nft_reject_inet     snd                 ttm
acpi              drm                    intel_rapl_perf    nf_conntrack_ipv6     page_alloc          snd_ac97_codec      tun
acpiphp           drm_kms_helper         ip6_tables         nf_conntrack_tftp     pcie_aspm           snd_ens1371         uhci_hcd
ata_generic       dynamic_debug          ip_set             nf_defrag_ipv4        pciehp              snd_pcm             uinput
ata_piix          e1000                  ip_tables          nf_defrag_ipv6        pci_hotplug         snd_rawmidi         usbcore
battery           ecdh_generic           ipt_MASQUERADE     nf_nat                pcmcia_core         snd_seq             usbhid
blk_cgroup        edac_core              ipt_REJECT         nf_nat_ipv4           pcspkr              snd_seq_device      uv_nmi
block             efi_pstore             ipv6               nf_nat_ipv6           printk              snd_seq_midi        virtio_pci
bluetooth         efivars                jbd2               nf_nat_tftp           processor           snd_seq_midi_event  vmd
bnep              ehci_hcd               joydev             nfnetlink             psmouse             snd_timer           vmw_balloon
bridge            ext4                   kdb                nf_reject_ipv4        pstore              soundcore           vmwgfx
btbcm             fb                     kernel             nf_reject_ipv6        random              spurious            vmw_vmci
btintel           fb_sys_fops            keyboard           nf_tables             rcupdate            srcutree            vmw_vsock_vmci_transport
btrtl             firmware_class         kgdboc             nf_tables_set         rcutree             sr_mod              vsock
btusb             fuse                   kgdbts             nft_chain_nat_ipv4    rfcomm              stp                 vt
button            ghash_clmulni_intel    libata             nft_chain_nat_ipv6    rfkill              sunrpc              watchdog
cdrom             haltpoll               libcrc32c          nft_chain_route_ipv4  rng_core            suspend             workqueue
cec               hid                    llc                nft_chain_route_ipv6  rtc_cmos            syscopyarea         xfs
configfs          hid_magicmouse         mbcache            nft_compat            scsi_dh_alua        sysfillrect         xhci_hcd
cpufreq           hid_ntrig              md_mod             nft_counter           scsi_dh_rdac        sysimgblt           xt_CHECKSUM
cpuidle           i2c_piix4              module             nft_ct                scsi_mod            sysrq               xt_conntrack
crc32c_intel      i8042                  mousedev           nft_fib               scsi_transport_spi  tcp_cubic           xz_dec
crc32_pclmul      ima                    mptbase            nft_fib_inet          sd_mod              thermal             zswap
crc_t10dif        intel_idle             mptscsih           nft_fib_ipv4          serio_raw           tpm
crct10dif_pclmul  intel_pmc_core         mptspi             nft_fib_ipv6          sg                  tpm_crb
cryptomgr         intel_pmc_core_pltdrv  netpoll            nft_objref            shpchp              tpm_tis

3. Команды для проверки информации об оборудовании в Linux

Теперь помимо /proc а также /sys Каталоги большинства дистрибутивов Linux также предоставляют широкий спектр инструментов командной строки, которые можно использовать для просмотра информации об оборудовании, установленном в настоящее время в вашей системе.

И если вы хотите знать правду, многие из этих инструментов на самом деле просто извлекают информацию прямо из /proc напрямую.

Теперь имейте в виду, что многие команды, которые мы собираемся здесь рассмотреть, могут не быть установлены по умолчанию в некоторых дистрибутивах.

Однако, если он не установлен, вы обычно можете выйти и получить их вручную, используя либо yum или apt-get команды.

Давайте посмотрим, что собой представляют некоторые из этих утилит.

3.1 Команда hdparm: получить параметры устройства SATA / IDE

Первое, на что нам нужно обратить внимание, это hdparm команда.

Он используется для отображения информации о вашем жестком диске, синтаксис — ввести hdparm а затем укажите, о каком файле жесткого диска мы хотим просмотреть информацию.

Синтаксис: hdparm [options] [device …] / hdparm /dev/device

Мы бы заменили это чем-то вроде sda или sdb какое бы устройство мы ни хотели просматривать, и когда вы это делаете, данные об этом устройстве отображаются на экране.

В этом случае я ищу информацию о /dev/sda привод жесткого диска.

# hdparm /dev/sda

/dev/sda:
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 multcount     =  0 (off)
 readonly      =  0 (off)
 readahead     = 8192 (on)
 geometry      = 2610/255/63, sectors = 41943040, start = 0

3.2 Команда sg_scan: Сканирует устройства SCSI / ATAPI / ATA

Следующая утилита, с которой вам нужно ознакомиться, — это sg_scan утилита.

Он используется для сканирования вашего scsi автобусы и перечислите все устройства, подключенные к вашему scsi контроллеры.

# sg_scan
/dev/sg0: scsi0 channel=0 id=0 lun=0
/dev/sg1: scsi0 channel=0 id=1 lun=0
/dev/sg2: scsi0 channel=0 id=2 lun=0
/dev/sg3: scsi0 channel=0 id=3 lun=0
/dev/sg4: scsi2 channel=0 id=0 lun=0 [em]

3.3 Команда sginfo: информация о странице режима доступа для устройства SCSI (или ATAPI)

Похожая команда — это sginfo -l команда.

Он также используется для отображения информации обо всех scsi устройств в вашей системе.

# sginfo -l

/dev/sg0 [scsi0 ch=0 id=0 lun=0]
/dev/sg1 [scsi0 ch=0 id=1 lun=0]
/dev/sg2 [scsi0 ch=0 id=2 lun=0]
/dev/sg3 [scsi0 ch=0 id=3 lun=0]
/dev/sg4 [scsi2 ch=0 id=0 lun=0]

3.4 Команда lsusb: список USB-устройств

Еще одна полезная команда — это lsusb команда.

Отображает информацию обо всех USB устройства, которые в настоящее время подключены к вашей системе.

Когда вы запустите его, вы увидите список всех ваших USB шины и все устройства, подключенные к этой шине.

# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 009: ID 0e0f:0008 VMware, Inc. 
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

В этом примере я вижу, что у меня две разные шины USB, у меня Bus 001 а потом у меня есть Bus 002.

На Bus 001 все, что у меня есть, это корневой хаб на Bus 002 У меня есть корневой концентратор, затем еще один USB-концентратор, а затем у меня есть мышь.

3.5 Команда hwinfo: проверка оборудования

Еще одна полезная утилита — это hwinfo утилита.

# hwinfo

Он отображает исчерпывающий обзор всего системного оборудования в вашей системе.

Он проверит оборудование системы, а затем сгенерирует обзорный отчет системы.

Теперь, если вы не укажете никаких параметров в команде, будет получен очень длинный отчет.

Итак, что мы обычно делаем, так это ограничиваем отчет одной подсистемой устройства, используя --device вариант.

Теперь вы можете заменить устройство на различные устройства, которые вам нужны.

Синтаксис: hwinfo --device

Вот пример. Введите следующую команду для отображения информации о сетевой карте.

# hwinfo --short --netcard

Примечание: hwinfo Команда не установлена ​​по умолчанию во многих дистрибутивах, но обычно вы можете пойти, получить ее и установить с помощью yum, zipper или apt-get.

3.6 Команда lspci: список всех устройств PCI

Следующая команда, которую мы рассмотрим, это lspci, здесь перечислены все PCI устройств, установленных вместе с системой.

Когда вы используете -k вариант, затем lspci команда также перечислит модули ядра, связанные с каждым PCI устройство.

Вы можете увидеть пример этого здесь.

# lspci -k
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
	Subsystem: VMware Virtual Machine Chipset
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
	Subsystem: VMware Virtual Machine Chipset
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
	Subsystem: VMware Virtual Machine Chipset
	Kernel driver in use: ata_piix
	Kernel modules: ata_piix, ata_generic
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
	Subsystem: VMware Virtual Machine Chipset
	Kernel modules: i2c_piix4
00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)
	Subsystem: VMware Virtual Machine Communication Interface
	Kernel driver in use: vmw_vmci
	Kernel modules: vmw_vmci

3.7 Команда lscpu: отображение информации об архитектуре ЦП

Команда lscpu сообщает информацию о ЦП и процессорах.

# lscpu 
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              1
On-line CPU(s) list: 0
Thread(s) per core:  1
Core(s) per socket:  1
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               78
Model name:          Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz
Stepping:            3
CPU MHz:             2495.999
BogoMIPS:            4991.99
Hypervisor vendor:   VMware
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            3072K
NUMA node0 CPU(s):   0

3.8 Команда lsscsi: список устройств SCSI

Перечисляет устройства SCSI / SATA, такие как жесткие диски и оптические приводы.

# lsscsi 
[0:0:0:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sda 
[0:0:1:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sdb 
[0:0:2:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sdc 
[0:0:3:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sdd 
[2:0:0:0]    cd/dvd  NECVMWar VMware IDE CDR10 1.00  /dev/sr0 

3.9 Команда lsblk: список блочных устройств

Перечисляет все блочные устройства, такие как разделы жесткого диска, логические тома (LVM) и другие устройства хранения, такие как оптические приводы и флэш-накопители.

# lsblk 
NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                       8:0    0   20G  0 disk 
├─sda1                    8:1    0  300M  0 part /boot
├─sda2                    8:2    0    2G  0 part [SWAP]
└─sda3                    8:3    0 17.7G  0 part /
sdb                       8:16   0    3G  0 disk 
├─sdb1                    8:17   0  500M  0 part 
│ └─new_vgroup-newlv001 253:0    0  500M  0 lvm  /newlv001
├─sdb2                    8:18   0  500M  0 part 
│ ├─new_vgroup-newlv001 253:0    0  500M  0 lvm  /newlv001
│ └─new_vgroup-newlv002 253:1    0  500M  0 lvm  /newlv002
└─sdb3                    8:19   0  500M  0 part 
  └─new_vgroup-newlv002 253:1    0  500M  0 lvm  /newlv002
sdc                       8:32   0    3G  0 disk 
sdd                       8:48   0    3G  0 disk 
sr0                      11:0    1 1024M  0 rom

3.10 команда free: отображение количества свободной и используемой памяти в системе.

Команда free отображает общий объем свободной и используемой физической памяти и памяти подкачки в системе, а также буферы и кеши, используемые ядром. Информация собирается путем парсинга /proc/meminfo.

# free
              total        used        free      shared  buff/cache   available
Mem:         810492      484516      107052        4480      218924      185472
Swap:       2097148      792320     1304828

Заключение

Надеюсь, вы кое-что узнали из этой статьи.

Я изо всех сил старался включить все полезные команды для проверки информации о системе и оборудовании в Linux.

Теперь хотелось бы услышать ваши мысли.

Было ли это руководство полезно для вас?

Или, может быть, у вас есть вопросы.

Разве я не включил в это руководство какую-либо команду?

Оставьте комментарий ниже.

Источник: https://access.redhat.com/

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.