Jak wyświetlić listę urządzeń komputera w terminalu Linux

Dowiedz się, jakie dokładnie urządzenia znajdują się w Twoim komputerze z systemem Linux lub są do niego podłączone. Omówimy 12 poleceń do wyświetlania listy podłączonych urządzeń.

Dlaczego 12 poleceń?

Bez względu na to, jak wiele jest sposobów na oskórowanie kota, byłbym skłonny założyć się, że istnieje więcej sposobów, aby wymienić urządzenia, które są podłączone do komputera z systemem Linux lub w nim znajdują się. Pokażemy Ci 12 z nich. A to nie wszystko!

W sposób nieunikniony informacje, które można uzyskać z tych poleceń, pokrywają się, więc po co opisywać tak wiele z nich?

Po pierwsze, różnice w treści i szczegółach sprawiają, że są one na tyle różne, że niektórzy ludzie będą preferować jedną metodę od drugiej. Format wyjściowy jednego polecenia może szczególnie dobrze nadawać się do konkretnego przypadku użycia. Format innego polecenia może być idealnie dopasowany do przesyłania go potokiem przez grep lub do innej metody dalszego przetwarzania.

Przede wszystkim jednak chodzi o to, aby artykuł był jak najbardziej ogólny. Zamiast decydować, które polecenia będą interesujące lub używane przez naszych czytelników, wolimy raczej podać szeroką próbkę dostępnych poleceń i poprosić naszych czytelników, aby wybrali, które z nich będą używać, a które pozostawią nietknięte.

Wymagana instalacja

Większość tych poleceń jest domyślnie zawarta w Twojej dystrybucji Linuksa. Ubuntu, Fedora i Manjaro były używane jako reprezentatywna próbka dystrybucji z głównych gałęzi rodzin Debian, Red Hat i Arch.

Wszystkie trzy dystrybucje potrzebne do zainstalowania procinfo, który udostępnia polecenie lsdev. Polecenie lsscsi również musiało zostać zainstalowane na wszystkich trzech.

Aby zainstalować lsdev i lsscsi, użyj tych poleceń.

Ubuntu:

sudo apt-get install procinf
sudo apt-get install lsscsi

sudo apt-get install lsscsi w oknie terminala

sudo apt-get install procinf w oknie terminala

Fedora:

sudo dnf install procinfo
sudo dnf install lsscsi

sudo dnf zainstaluj procinfo w oknie terminala

sudo dnf zainstaluj lsscsi w oknie terminala

Manjaro

sudo pacman -Syu procinfo
sudo pacman -Syu lsscsi

sudo pacman -Syu lsscsi w oknie terminala

sudo pacman -Syu procinfo w oknie terminala

Zaskakujące jest, że Manjaro – znana z tego, że jest dystrybucją typu bare-bone – była dystrybucją, która zawierała większość poleceń, którym przyjrzymy się, wstępnie zainstalowanych.

Ubuntu i Fedora wymagały instalacji hwinfo, a Fedora również wymagała instalacji lshw i hdparm.

Ubuntu:

sudo apt-get install hwinfo

sudo apt-get install hwinfo w oknie terminala

Fedora:

sudo dnf install hwinfo
sudo dnf install lshw
sudo dnf install hdparm

sudo dnf zainstaluj hwinfo w oknie terminala

sudo dnf zainstaluj hwinfo w oknie terminala

sudo dnf zainstaluj lshw w oknie terminala

1. Polecenie montowania

Do tego służy polecenie mount montować systemy plików.

Jednak wydanie polecenia bez parametrów powoduje wyświetlenie listy wszystkich zamontowanych systemów plików, a także urządzeń, na których się znajdują. Więc możemy to wykorzystać jako sposób na odkrycie tych urządzeń.

mount

zamontować w oknie terminala

Dane wyjściowe z montowania mogą być dłuższe niż oczekiwano, szczególnie jeśli użyłeś metody przyciągania do zainstalowania oprogramowania. Za każdym razem, gdy używasz snap, pozyskujesz inny pseudosystem plików i są one wyświetlane po zamontowaniu. Oczywiście nie są one powiązane z fizycznymi urządzeniami, więc tylko przesłaniają prawdziwy obraz.

wyjście z mount w oknie terminala

Jeśli zauważysz prawdziwy system plików na liście znajdujący się na dysku twardym, możemy go wyizolować za pomocą grep.

Dyski twarde są identyfikowane na podstawie nazwy, zwykle nazywanej „sd”, po której następuje litera rozpoczynająca się od „a” dla pierwszego dysku, „b” dla drugiego dysku i tak dalej. Partycje są identyfikowane przez dodanie 1 dla pierwszej partycji i 2 dla drugiej partycji i tak dalej.

Zatem pierwszym dyskiem twardym będzie sda, a pierwsza partycja na tym dysku będzie miała nazwę sda1. Dyski twarde są połączone za pomocą specjalnych plików urządzeń (zwanych plikami blokowymi) w / dev, a następnie montowane gdzieś w drzewie systemu plików.

To polecenie użyło grep do odfiltrowania szczegółów dowolnego dysku, który zaczyna się od „sd”.

mount | grep /dev/sd

zamontować |  grep / dev / sd w oknie terminala

Dane wyjściowe zawierają pojedynczy dysk twardy w maszynie, który był używany do badania tego artykułu.

zamontuj wyjście w oknie terminala

Odpowiedź z mount mówi nam, że dysk / dev / sda jest zamontowany w / (katalogu głównym drzewa systemu plików) i ma system plików ext4. „Rw” oznacza, że ​​został zamontowany w trybie do odczytu i zapisu

Relatime to schemat używany przez procedury aktualizacji znaczników czasu plików. Czas dostępu nie jest zapisywany na dysku, chyba że czas modyfikacji (mtime) lub czas zmiany (ctime) pliku jest nowszy niż czas ostatniego dostępu lub czas dostępu (atime) jest starszy niż próg zdefiniowany przez system . To znacznie zmniejsza liczbę aktualizacji dysku, które muszą mieć miejsce w przypadku często używanych plików.

Parametr „errors = remount-ro” wskazuje, że jeśli wystąpią wystarczająco poważne błędy, system plików zostanie ponownie zamontowany w trybie tylko do odczytu.

Aby móc przewijać dane wyjściowe z montowania i łatwiej znaleźć systemy plików zamontowane na urządzeniach, potokuj wyjście z mount do less.

mount | less

zamontować |  mniej w oknie terminala

Przewiń dane wyjściowe, aż zobaczysz systemy plików, które są połączone z plikami specjalnymi / dev.

uchwyt [piped through less in a terminal window

2. The lsblk Command

The lsblk command lists the block devices, their mount point, and other information. Type lsblk at a command line:

lsblk

lsblk in a terminal window

The output shows:

Name: the name of the block device
Maj:Min: The major number shows the device type. The minimum number is the number of the current device out of the list of devices of that type. 7:4, for example, means loop device number 4.
RM: Whether the device is removable or not. 0 means no, 1 means yes.
Size is the capacity of the device.
RM: Whether the device is read-only or not. 0 means no, 1 means yes.
Type: The type of the device, for example, loop, dir (directory), disk, rom (CD ROM), and so on.
Mountpoint: Where the filesystem of the device is mounted.

lsblk output in a terminal window

To de-clutter the output and remove the loop devices, we can use the -e (exclude) option and provide the number of the type of devices we wish to ignore.

This command will cause lsblk to ignore the loop (7) and cd room (11) devices.

lsblk -e 7,11

lsblk -e 7,11 in a terminal window

The results now only contain the hard drive sda.

lsblk output in a terminal window

3. The df Command

The df command reports on drive capacities and used and free space.

Type df on the command line and press Enter.

df

df in a terminal window

The output table shows:

Fileystem: The name of this filesystem.
1K-Blocks: The number of 1K blocks that are available on this filesystem.
Used: The number of 1K blocks that have been used on this file system.
Available: The number of 1K blocks that are unused on this file system.
Use%: The amount of space used in this file system given as a percentage.
File: The filesystem name, if specified on the command line.
Mounted on: The mount point of the filesystem.

output from df in a terminal window

To remove unwanted entries from the output, use the -x (exclude) option. This command will prevent the loop device entries from being listed.

df -x squashfs

df -x squashfs in a terminal window

The compact output is much easier to parse for the important information.

df output in a terminal window

4. The fdisk Command

The fdisk command is a tool designed to manipulate the disk partition table, but it can be used to view information as well. We can use this to our advantage when we are investigating the devices in a computer.

We will use the -l (list) option to list the partition tables. Because the output might be very long, we will pipe the output from fdisk through less. Because fdisk has the potential to alter disk partition tables, we must use sudo.

sudo fdisk -l

fdisk -l in a terminal window

By scrolling through less you will be able to identify the hardware devices. Here is the entry for hard drive sda. This is a physical hard drive of 10 GB.

output from fdisk in a terminal window

Now that we know the identity of one of the hardware devices we can ask fdisk to report on that item alone.

sudo fdisk -l /dev/sda

sudo fdisk -l /dev/sda in a terminal window

We get an output of considerably reduced length.

output of fdisk in a terminal window

5. The /proc Files

The pseudo-files in /proc can be viewed to obtain some system information. The file we will look at is /proc/mounts, which will give us some information regarding the mounted filesystems. We will use nothing grander than cat  to view the file.

cat /proc/mounts

cat /proc/mounts  in a terminal window

The listing shows the special device file in /dev that is used to interface to the device and the mount point on the filesystem tree.

output from cat /proc/mounts in a terminal window

We can refine the listing by using grep to look for entries with /dev/sd in them. This will filter out the physical drives.

cat /proc/mounts | grep /dev/sd

cat /proc/mounts | grep /dev/sd in a terminal window

This gives us a much more manageable report.

output from cat /proc/mounts in a terminal window

We can be slightly more inclusive by using grep to look for devices that have  /dev/sd and /dev/sr special device files. This will include hard drives and the CD ROM for this machine.

cat /proc/partitions | grep s[rd]

cat / proc / partitions |  grep s[rd] w oknie terminala

Dane wyjściowe zawierają teraz dwa urządzenia i jedną partycję.

wyjście z cat / proc / mounts w oknie terminala

6. Polecenie lspci

Lista poleceń lspci wszystkie urządzenia PCI w Twoim komputerze.

lspci

lspci w oknie terminala

Podane informacje to:

Gniazdo: Gniazdo, w którym jest zamontowane urządzenie PCi
Klasa: klasa urządzenia.
Nazwa dostawcy: nazwa producenta.
Nazwa urządzenia: nazwa urządzenia.
Podsystem: nazwa dostawcy podsystemu (jeśli urządzenie ma podsystem).
Nazwa podsystemu: jeśli urządzenie ma podsystem.
Numer wersji: numer wersji urządzenia
Interfejs programowania: Interfejs programowania, jeśli urządzenie go udostępnia.

wyjście lspci w oknie terminala

7. Polecenie lsusb

Polecenie lsusb wyświetli listę urządzeń, które są podłączony do portów USB na komputerze, a także na urządzeniach USB wbudowanych w komputer.

lsusb

lsusb w oknie terminala

Ten komputer testowy ma podłączony skaner firmy Canon jako urządzenie USB 5 i zewnętrzny napęd USB jako urządzenie USB 4. Urządzenia 3 i 1 są wewnętrznymi programami obsługi interfejsu USB.

Urządzenia USB wymienione w oknie terminala

Możesz otrzymać bardziej szczegółową listę, używając opcji -v (szczegółowa), a jeszcze bardziej szczegółową wersję, używając opcji -vv.

8. Polecenie lsdev

Polecenie lsdev wyświetla informacje o wszystkie zainstalowane urządzenia.

To polecenie generuje dużo danych wyjściowych, więc zamierzamy przepuścić je przez mniej.

lsdev | less

lsdev |  mniej w oknie terminala

W danych wyjściowych znajduje się wiele urządzeń sprzętowych.

Wyjście lsdev przesyłane potokowo przez less w oknie terminala

9. Polecenie lshw

Polecenie lshw wyświetla listę urządzeń podłączony do komputera. To kolejna komenda z dużą ilością danych wyjściowych. Na komputerze testowym wygenerowano ponad 260 wierszy informacji. Jeszcze raz przepuścimy go mniej.

Zauważ, że musisz użyć sudo z lshw, aby jak najlepiej go wykorzystać. Jeśli tego nie zrobisz, nie będzie miał dostępu do wszystkich urządzeń.

sudo lshw | less

sudo lshw |  mniej w oknie terminala

Oto wpis dotyczący CD ROM z interfejsem SCSI. Jak widać, informacje podane dla każdego urządzenia są bardzo szczegółowe. lshw czyta większość informacji z różnych plików w / proc.

wyjście lshw w less w oknie terminala

Jeśli chcesz uzyskać krótszy, mniej szczegółowy wynik, możesz użyć opcji –short.

10. Polecenie lsscsi

Jak można sobie teraz wyobrazić, polecenie lsscsi wyświetla listę urządzeń SCSI podłączony do komputera.

lsscsi

lsscsi w oknie terminala

Oto urządzenia SCSI podłączone do tej maszyny testowej.

Wyjście lsscsi w oknie terminala

11. Polecenie dmidecode

Polecenia dmidecode dekodują plik Tabele interfejsu zarządzania pulpitem (DMI)i wyodrębnia informacje związane ze sprzętem podłączonym do komputera i wewnątrz komputera.

DMI jest czasami określany jako SMBIOS (podstawowy system wejścia / wyjścia zarządzania systemem), chociaż są to tak naprawdę dwa różne standardy.

Ponownie przepuścimy to przez mniej.

dmidecode | less

wyjście dmidecode w oknie terminala

Polecenie dmidecode może generować raporty dotyczące ponad 40 różnych typów sprzętu.

12. Polecenie hwinfo

Polecenie hwinfo jest najbardziej szczegółowym z nich wszystkich. Kiedy mówimy, że musisz przepuścić coś przez mniej, tym razem nie jest to opcjonalne. Na komputerze testowym wygenerował 5850 linii wyjściowych!

Możesz zacząć wszystko delikatnie, włączając opcję –short.

hwinfo --short

hwinfo --short w oknie terminala

Jeśli naprawdę potrzebujesz zobaczyć najdrobniejsze szczegóły, powtórz to i pomiń opcję –short.

wyjście z hwinfo w less w oknie terminala

Wrap It Up

Oto kilkanaście sposobów badania urządzeń znajdujących się w komputerze lub podłączonych do niego.

Bez względu na to, jakie jest twoje szczególne zainteresowanie polowaniem na ten sprzęt, na tej liście będzie metoda, która pozwoli ci znaleźć to, czego potrzebujesz.