Scopri esattamente quali dispositivi si trovano all’interno del tuo computer Linux o collegati ad esso. Copriremo 12 comandi per elencare i dispositivi collegati.
Sommario:
Perché 12 comandi?
Per quanti modi ci siano per scuoiare un gatto, sarei pronto a scommettere che ci sono più modi per elencare i dispositivi che sono collegati o alloggiati all’interno del tuo computer Linux. Ve ne mostreremo 12. E non è tutto!
Inevitabilmente, c’è molta sovrapposizione nelle informazioni che puoi ottenere da questi comandi, quindi perché preoccuparsi di descriverne molti?
Ebbene, per prima cosa, le variazioni nel contenuto e nei dettagli li rendono sufficientemente diversi che alcune persone preferiranno un metodo rispetto a un altro. Il formato di output di un comando potrebbe prestarsi particolarmente bene a un caso d’uso specifico. Il formato di un altro comando potrebbe essere idealmente adatto per essere reindirizzato tramite grep o un altro metodo di ulteriore elaborazione.
In primo luogo, però, è rendere l’articolo il più generale possibile. Piuttosto che decidere quali comandi interesseranno o utilizzeranno i nostri lettori, preferiremmo fornire un ampio campione dei comandi disponibili e chiedere ai nostri lettori di scegliere quali useranno e quali lasceranno intatti.
Alcune installazioni richieste
La maggior parte di questi comandi sono inclusi nella distribuzione Linux per impostazione predefinita. Ubuntu, Fedora e Manjaro sono stati utilizzati come un campione rappresentativo di distribuzioni dai rami principali delle famiglie Debian, Red Hat e Arch.
Tutte e tre le distribuzioni erano necessarie per installare procinfo, che fornisce il comando lsdev. Anche il comando lsscsi doveva essere installato su tutti e tre.
Per installare lsdev e lsscsi, usa questi comandi.
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
Sorprendentemente, Manjaro, famoso per essere un tipo di distribuzione essenziale, era la distribuzione che aveva la maggior parte dei comandi preinstallati.
Ubuntu e Fedora necessitavano dell’installazione di hwinfo e Fedora richiedeva anche l’installazione di lshw e hdparm.
Ubuntu:
sudo apt-get install hwinfo
Fedora:
sudo dnf install hwinfo
sudo dnf install lshw
sudo dnf install hdparm
1. Il comando mount
Il comando mount è usato per montare i filesystem.
Ma l’emissione del comando senza parametri fa sì che elenchi tutti i filesystem montati, così come i dispositivi su cui si trovano. Quindi possiamo usarlo come mezzo per scoprire quei dispositivi.
mount
L’output di mount può essere più lungo del previsto, soprattutto se è stato utilizzato il metodo snap per installare il software. Ogni volta che usi snap acquisisci un altro pseudo-filesystem e questi vengono elencati da mount. Naturalmente, questi non hanno dispositivi fisici associati, quindi stanno solo oscurando l’immagine reale.
Se si individua un vero filesystem nell’elenco che si trova su un disco rigido, è possibile isolarlo con grep.
I dischi rigidi sono identificati dal nome, solitamente chiamato “sd” seguito da una lettera che inizia con “a” per la prima unità, “b” per la seconda unità e così via. Le partizioni vengono identificate aggiungendo 1 per la prima partizione e 2 per la seconda e così via.
Quindi il primo disco rigido sarebbe sda e la prima partizione su quell’unità sarebbe chiamata sda1. I dischi rigidi sono interfacciati tramite file di dispositivo speciali (chiamati file di blocco) in / dev e quindi montati da qualche parte nell’albero del filesystem.
Questo comando utilizzava grep per filtrare i dettagli di qualsiasi unità che inizia con “sd”.
mount | grep /dev/sd
L’output contiene il singolo disco rigido della macchina che è stato utilizzato per la ricerca in questo articolo.
La risposta di mount ci dice che il drive / dev / sda è montato in / (la radice dell’albero del filesystem) e ha un filesystem ext4. “Rw” indica che è stato montato in modalità di lettura-scrittura
Relatime è lo schema utilizzato dalle routine di aggiornamento del timestamp dei file. L’ora di accesso non viene scritta sul disco a meno che l’ora di modifica (mtime) o l’ora di modifica (ctime) di un file non sia più recente dell’ultima ora di accesso, o l’ora di accesso (atime) sia più vecchia di una soglia definita dal sistema . Ciò riduce notevolmente il numero di aggiornamenti del disco che devono essere eseguiti per i file a cui si accede di frequente.
“Errors = remount-ro” indica che se ci sono errori sufficientemente gravi, il filesystem verrà rimontato in modalità di sola lettura.
Per poter scorrere l’output di mount e individuare più facilmente i filesystem montati sui dispositivi, convogliare l’output da mount a less.
mount | less
Scorri l’output finché non vedi i filesystem collegati ai file speciali / dev.
2. The lsblk Command
The lsblk command lists the block devices, their mount point, and other information. Type lsblk at a command line:
lsblk
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.
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
The results now only contain the hard drive sda.
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
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.
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
The compact output is much easier to parse for the important information.
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
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.
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
We get an output of considerably reduced length.
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
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.
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
This gives us a much more manageable report.
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]
Ora ci sono due dispositivi e una partizione inclusi nell’output.
6. Il comando lspci
Il comando lspci elenca tutti i dispositivi PCI nel tuo computer.
lspci
Le informazioni fornite sono:
Slot: lo slot in cui è inserito il dispositivo PCi
Classe: la classe del dispositivo.
Nome del fornitore: il nome del produttore.
Nome dispositivo: il nome del dispositivo.
Sottosistema: nome del fornitore del sottosistema (se il dispositivo ha un sottosistema).
Nome sottosistema: se il dispositivo ha un sottosistema.
Numero di revisione: il numero di versione del dispositivo
Interfaccia di programmazione: l’interfaccia di programmazione, se il dispositivo ne fornisce una.
7. Il comando lsusb
Il comando lsusb elencherà i dispositivi che sono collegato alle porte USB sul tuo computer e sui dispositivi abilitati USB che sono incorporati nel tuo computer.
lsusb
A questo computer di prova è collegato uno scanner Canon come dispositivo USB 5 e un’unità USB esterna come dispositivo USB 4. I dispositivi 3 e 1 sono gestori di interfaccia USB interni.
È possibile ricevere un elenco più dettagliato utilizzando l’opzione -v (verbose) e una versione ancora più dettagliata utilizzando -vv.
8. Il comando lsdev
Il comando lsdev visualizza le informazioni su tutti i dispositivi installati.
Questo comando genera molto output, quindi lo faremo passare attraverso meno.
lsdev | less
Ci sono molti dispositivi hardware elencati nell’output.
9. Il comando lshw
Il comando lshw elenca i dispositivi collegato al tuo computer. Questo è un altro comando con molto output. Sul computer di prova sono state generate oltre 260 righe di informazioni. Lo convogliamo di meno ancora una volta.
Nota che devi usare sudo con lshw per ottenere il massimo da esso. Se non lo fai, non sarà in grado di accedere a tutti i dispositivi.
sudo lshw | less
Ecco la voce per il CD ROM con un’interfaccia SCSI. Come puoi vedere le informazioni fornite per ogni dispositivo sono molto dettagliate. lshw legge la maggior parte delle sue informazioni dai vari file in / proc.
Se si desidera un output più breve e meno dettagliato, è possibile utilizzare l’opzione –short.
10. Il comando lsscsi
Come puoi immaginare, il comando lsscsi elenca i dispositivi SCSI collegato al tuo computer.
lsscsi
Ecco i dispositivi SCSI collegati a questa macchina di prova.
11. Il comando dmidecode
I comandi dmidecode decodificano i file Tabelle DMI (Desktop Management Interface)ed estrae le informazioni relative all’hardware collegato al computer e all’interno del computer.
Il DMI è anche a volte indicato come SMBIOS (System Management Basic Input / Output System) sebbene siano in realtà due standard diversi.
Ancora una volta, lo faremo passare di meno.
dmidecode | less
Il comando dmidecode può segnalare oltre 40 diversi tipi di hardware.
12. Il comando hwinfo
Il comando hwinfo è il più dettagliato di tutti. Quando diciamo che devi convogliare qualcosa di meno, questa volta non è opzionale. Sul computer di prova, ha generato 5850 linee di output!
Puoi iniziare delicatamente includendo l’opzione –short.
hwinfo --short
Se hai davvero bisogno di vedere i dettagli più fini, ripeti l’operazione e ometti l’opzione –short.
Avvolgetelo
Quindi, ecco la nostra dozzina di modi per indagare sui dispositivi all’interno o collegati al tuo computer.
Qualunque sia il tuo interesse particolare nella ricerca di questo hardware, ci sarà un metodo in questo elenco che ti consentirà di trovare ciò di cui hai bisogno.