Så här listar du din dators enheter från Linux-terminalen

Ta reda på exakt vilka enheter som finns inuti din Linux-dator eller anslutna till den. Vi kommer att täcka 12 kommandon för att lista dina anslutna enheter.

Varför 12 kommandon?

Hur många sätt det än finns för att flå en katt, skulle jag vara villig att slå vad om att det finns fler sätt att lista de enheter som är anslutna till, eller inrymda i, din Linux-dator. Vi kommer att visa dig 12 av dem. Och det är inte alla!

Oundvikligen finns det mycket överlappning i informationen som du kan få ut av dessa kommandon, så varför bry sig om att beskriva så många av dem?

Tja, för det första gör variationerna i innehåll och detaljer dem tillräckligt olika för att vissa människor kommer att föredra en metod framför en annan. Utdataformatet för ett kommando kan lämpa sig särskilt väl för ett specifikt användningsfall. Formatet för ett annat kommando kan vara idealiskt för att det ska skickas via grep, eller en annan metod för vidare bearbetning.

I första hand är det dock att göra artikeln så allmän som möjligt. Istället för att bestämma vilka kommandon som kommer att vara intressanta eller använda för vår läsekrets, ger vi hellre ett brett urval av de kommandon som är tillgängliga och låter våra läsare välja vilka de ska använda och vilka de lämnar orörda.

Viss installation krävs

De flesta av dessa kommandon ingår som standard i din Linux-distribution. Ubuntu, Fedora och Manjaro användes som ett representativt urval av distributioner från huvudgrenarna av familjerna Debian, Red Hat och Arch.

Alla tre distributioner behövs för att installera procinfo, som tillhandahåller kommandot lsdev. Kommandot lsscsi behövde också installeras på alla tre.

För att installera lsdev och lsscsi, använd dessa kommandon.

Ubuntu:

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

Fedora:

sudo dnf install procinfo
sudo dnf install lsscsi

Manjaro

sudo pacman -Syu procinfo
sudo pacman -Syu lsscsi

Överraskande nog var Manjaro – känd för att vara en typ av distribution – distributionen som hade de flesta kommandon vi ska titta på förinstallerade.

Ubuntu och Fedora behövde installera hwinfo, och Fedora krävde också installation av lshw och hdparm.

Ubuntu:

sudo apt-get install hwinfo

Fedora:

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

1. Monteringskommandot

Monteringskommandot används för att montera filsystem.

Men att utfärda kommandot utan parametrar gör att det listar alla monterade filsystem, såväl som enheterna de finns på. Så vi kan använda detta som ett sätt att upptäcka dessa enheter.

mount

Utdata från monteringen kan vara längre än du förväntade dig, särskilt om du har använt snapmetoden för att installera programvara. Varje gång du använder snap skaffar du ett annat pseudo-filsystem och dessa listas efter mount . Naturligtvis har dessa inga fysiska enheter kopplade till sig, så de skymmer bara den verkliga bilden.

Om du ser ett riktigt filsystem i listan som sitter på en hårddisk, kan vi isolera det med grep.

Hårddiskar identifieras med namn, vanligtvis kallade ”sd” följt av en bokstav som börjar på ”a” för den första enheten, ”b” för den andra enheten och så en. Partitioner identifieras genom att lägga till en 1 för den första partitionen och 2 för den andra partitionen, och så vidare.

Så den första hårddisken skulle vara sda, och den första partitionen på den enheten skulle kallas sda1. Hårddiskar ansluts till speciella enhetsfiler (kallade blockfiler) i /dev och monteras sedan någonstans i filsystemträdet.

Detta kommando använde grep för att filtrera bort detaljerna för alla enheter som börjar med ”sd”.

mount | grep /dev/sd

Utdatan innehåller den enda hårddisken i maskinen som användes för att undersöka den här artikeln.

Svaret från mount berättar att enheten /dev/sda är monterad på / (roten av filsystemträdet) och att den har ett ext4-filsystem. ”rw” indikerar att den har monterats i läs-skrivläge

Relatime är schemat som används av rutinerna för uppdatering av filens tidsstämpel. Åtkomsttiden skrivs inte till disken om inte antingen den modifierade tiden (mtime) eller ändringstiden (ctime) för en fil är senare än den senaste åtkomsttiden, eller åtkomsttiden (atime) är äldre än en systemdefinierad tröskel . Detta minskar avsevärt antalet diskuppdateringar som behöver äga rum för ofta åtkomst till filer.

”errors=remount-ro” indikerar att om det finns tillräckligt allvarliga fel kommer filsystemet att monteras om i skrivskyddat läge.

För att kunna bläddra genom utdata från montering och lättare upptäcka filsystemen som är monterade på enheter, rör utdata från montering genom mindre .

mount | less

Bläddra igenom utgången tills du ser filsystem som är anslutna till /dev specialfiler.

2. Kommandot lsblk

Kommandot lsblk listar blockenheterna, deras monteringspunkt och annan information. Skriv lsblk på en kommandorad:

lsblk

Utgången visar:

Namn: namnet på blockeringsenheten
Maj:Min: Huvudnumret visar enhetstypen. Minsta antalet är numret på den aktuella enheten från listan över enheter av den typen. 7:4 betyder till exempel slingapparat nummer 4.
RM: Oavsett om enheten är borttagbar eller inte. 0 betyder nej, 1 betyder ja.
Storlek är enhetens kapacitet.
RM: Om enheten är skrivskyddad eller inte. 0 betyder nej, 1 betyder ja.
Typ: Typ av enhet, till exempel loop, dir (katalog), disk, rom (CD ROM) och så vidare.
Mountpoint: Där enhetens filsystem är monterat.

För att rensa ut flödet och ta bort slingenheterna kan vi använda alternativet -e (exkludera) och ange antalet typer av enheter vi vill ignorera.

Detta kommando kommer att få lsblk att ignorera loop (7) och cd room (11) enheter.

lsblk -e 7,11

Resultaten innehåller nu bara hårddisken sda.

3. Kommandot df

Kommandot df rapporterar om enhetens kapacitet och använt och ledigt utrymme.

Skriv df på kommandoraden och tryck på Enter.

df

Utdatatabellen visar:

Filsystem: Namnet på detta filsystem.
1K-block: Antalet 1K-block som är tillgängliga på detta filsystem.
Används: Antalet 1K block som har använts på detta filsystem.
Tillgängligt: ​​Antalet 1K block som är oanvända på detta filsystem.
Använd%: Mängden utrymme som används i detta filsystem angivet i procent.
Fil: Filsystemets namn, om det anges på kommandoraden.
Monterad på: Monteringspunkten för filsystemet.

För att ta bort oönskade poster från utdata, använd alternativet -x (exkludera). Detta kommando kommer att förhindra slingenhetsposterna från att listas.

df -x squashfs

Den kompakta utgången är mycket lättare att analysera för viktig information.

4. Kommandot fdisk

Kommandot fdisk är ett verktyg utformat för att manipulera diskpartitionstabellen, men det kan användas till visa information också. Vi kan använda detta till vår fördel när vi undersöker enheterna i en dator.

Vi kommer att använda alternativet -l (lista) för att lista partitionstabellerna. Eftersom utgången kan vara mycket lång, kommer vi att leda utgången från fdisk genom mindre. Eftersom fdisk har potential att ändra diskpartitionstabeller måste vi använda sudo.

sudo fdisk -l

Genom att bläddra igenom mindre kommer du att kunna identifiera hårdvaruenheterna. Här är posten för hårddisk sda. Detta är en fysisk hårddisk på 10 GB.

Nu när vi vet identiteten för en av hårdvaruenheterna kan vi be fdisk att rapportera enbart om det objektet.

sudo fdisk -l /dev/sda

Vi får en utgång med avsevärt reducerad längd.

5. /proc-filerna

Pseudofilerna i /proc kan ses för att få lite systeminformation. Filen vi kommer att titta på är /proc/mounts, vilket kommer att ge oss lite information om de monterade filsystemen. Vi kommer inte att använda något större än katt för att se filen.

cat /proc/mounts

Listan visar den speciella enhetsfilen i /dev som används för att ansluta till enheten och monteringspunkten i filsystemträdet.

Vi kan förfina listan genom att använda grep för att leta efter poster med /dev/sd i dem. Detta kommer att filtrera bort de fysiska enheterna.

cat /proc/mounts | grep /dev/sd

Detta ger oss en mycket mer lätthanterlig rapport.

Vi kan vara lite mer inkluderande genom att använda grep för att leta efter enheter som har /dev/sd och /dev/sr speciella enhetsfiler. Detta inkluderar hårddiskar och CD ROM för denna maskin.

cat /proc/partitions | grep s[rd]

Det finns nu två enheter och en partition i utgången.

6. Kommandot lspci

Kommandot lspci listar alla PCI-enheter i din dator.

lspci

Informationen som tillhandahålls är:

Kortplats: Platsen som PCi-enheten är monterad i
Klass: Enhetens klass.
Leverantörsnamn: Namnet på tillverkaren.
Enhetsnamn: Namnet på enheten.
Subsystem: Subsystemleverantörens namn (om enheten har ett undersystem).
Subsystem name: Om enheten har ett subsystem.
Revisionsnummer: Enhetens versionsnummer
Programmeringsgränssnitt: Programmeringsgränssnittet, om enheten tillhandahåller ett.

7. Kommandot lsusb

Kommandot lsusb kommer att lista enheter som är ansluten till USB-portar på din dator samt USB-aktiverade enheter som är inbyggda i din dator.

lsusb

Denna testdator har en Canon-skanner ansluten till den som USB-enhet 5 och en extern USB-enhet som USB-enhet 4. Enheterna 3 och 1 är interna USB-gränssnittshanterare.

Du kan få en mer utförlig lista genom att använda alternativet -v (verbose), och ännu mer utförlig version genom att använda -vv.

8. Kommandot lsdev

Kommandot lsdev visar information om alla installerade enheter.

Det här kommandot genererar en hel del utdata, så vi kommer att gå igenom det mindre.

lsdev | less

Det finns många hårdvaruenheter listade i utgången.

9. Kommandot lshw

Kommandot lshw listar enheterna ansluten till din dator. Detta är ett annat kommando med mycket utdata. På testdatorn genererades över 260 rader med information. Vi kommer att röra igenom det mindre en gång till.

Observera att du måste använda sudo med lshw för att få ut det mesta av det. Om du inte gör det kommer den inte att kunna komma åt alla enheter.

sudo lshw | less

Här är posten för CD-ROM med ett SCSI-gränssnitt. Som du kan se är informationen för varje enhet mycket detaljerad. lshw läser det mesta av sin information från de olika filerna i /proc.

Om du vill ha en kortare, mindre detaljerad utskrift kan du använda alternativet –short.

10. Kommandot lsscsi

Som du kan föreställa dig vid det här laget, kommandot lsscsi listar SCSI-enheterna ansluten till din dator.

lsscsi

Här är SCSI-enheterna som är anslutna till denna testmaskin.

11. Kommandot dmidecode

Kommandona dmidecode avkodar Desktop Management Interface (DMI) tabelleroch extraherar information relaterad till hårdvaran som är ansluten till datorn och inuti datorn.

DMI kallas ibland även för SMBIOS (System Management Basic Input/Output System) även om det egentligen är två olika standarder.

Återigen, vi kommer att ta hand om det här mindre.

dmidecode | less

Kommandot dmidecode kan rapportera om över 40 olika hårdvarutyper.

12. Kommandot hwinfo

Kommandot hwinfo är det mest utförliga av dem alla. När vi säger att du behöver röra igenom något mindre, den här gången är det inte valfritt. På testdatorn genererade den 5850 utdatarader!

Du kan börja saker försiktigt genom att ta med alternativet –short.

hwinfo --short

Om du verkligen behöver se de finaste detaljerna, upprepa detta och utelämna alternativet –short.

Linda upp det

Så här är vårt dussintal sätt att undersöka enheterna i eller kopplade till din dator.

Oavsett vad ditt speciella intresse för att leta efter den här hårdvaran kan vara, kommer det att finnas en metod i den här listan som gör att du kan hitta det du behöver.