$HOSTNAME
12.5
hostid
12.7
hostname
12.5 12.5
lsdev
12.1.2
lshw
12.4
lspci
12.2
lssub
12.3
procinfopcal
12.1.1
socklist
12.1.3
uname
12.6
In questo capitolo si descrivono sommariamente alcuni programmi che forniscono delle informazioni varie sul sistema in funzione, non avendo trovato una collocazione più specifica nella trattazione di altri argomenti.
La quantità di informazioni disponibili all'interno di /proc/
è enorme; inoltre, con l'evolversi dei kernel cambiano i contenuti dei file virtuali e anche la loro collocazione. A questo proposito sono utili i programmi del pacchetto Procinfo(1) che aiutano ad analizzare tali informazioni per generare dei resoconti e delle statistiche più facili da consultare.
Il programma procinfo è quello che, dal pacchetto omonimo, dà le informazioni più comuni sulla gestione dei processi di un sistema GNU/Linux. I dati vengono visualizzati in forma più o meno tabellare e i campi sono indicati attraverso dei nomi. Il significato di alcuni di questi è descritto nella tabella 12.1.
procinfo [opzioni] |
|
Quando procinfo viene utilizzato senza argomenti si ottengono le informazioni più importanti che possono essere visualizzate su uno schermo normale, per esempio ciò che viene mostrato di seguito:
|
Eventualmente, procinfo può essere utilizzato per ottenere un'informazione continua (o quasi), come fa il programma top. In questo senso può essere stabilita una pausa tra un aggiornamento e il successivo. Durante questo funzionamento continuo, si possono utilizzare alcuni comandi interattivi, composti da una lettera singola, il cui significato tende a essere coerente con quello delle opzioni della riga di comando. In modo particolare, il comando q termina il funzionamento continuo di procinfo.
|
Il programma lsdev si limita a mostrare una tabella con informazioni tratte dai file /proc/interrupts
, /proc/ioports
e /proc/dma
. In pratica mostra tutti gli indirizzi relativi all'hardware installato.
lsdev |
Il risultato che si ottiene potrebbe essere simile a quello seguente:
|
Il programma socklist si limita a mostrare una tabella con informazioni tratte dai file /proc/net/tcp
, /proc/net/udp
e /proc/net/raw
, integrandoli con le informazioni relative ai descrittori dei file di ogni processo, ovvero /proc/*/fd/*
.
socklist |
Si tratta di informazioni utili per ciò che riguarda la gestione della rete, tuttavia questo programma viene mostrato qui per completare l'argomento del capitolo. Di seguito viene mostrato un esempio del risultato che si può ottenere con socklist.
|
Il pacchetto Linux PCI utilities contiene in particolare il programma lspci(2) con il quale è possibile conoscere tutte le informazioni disponibili sul bus PCI:
lspci [opzioni] |
Attraverso le opzioni è possibile avere una rappresentazione diversa delle informazioni, ma nella maggior parte dei casi è sufficiente l'utilizzo di lspci senza argomenti:
$
lspci
[Invio]
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x \ |
Eventualmente basta l'opzione -v per ottenere maggiori informazioni:
$
lspci -v
[Invio]
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x \ |
Lsusb(3) è un programma che fa parte del pacchetto USButils, con lo scopo di elencare i dispositivi USB presenti. Si può usare con delle opzioni, in mancanza delle quali mostra l'elenco completo dei componenti:
lsusb [opzioni] |
Ecco come potrebbe presentarsi l'elenco che si ottiene da questo programma:
$
lsusb
[Invio]
Bus 001 Device 003: ID 067b:2517 Prolific Technology, Inc. \ |
|
Viene mostrato un esempio in cui si mette a confronto l'uso normale di Lsusb con l'aggiunta successiva dell'opzione -t:
$
lsusb
[Invio]
Bus 001 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 003: ID 04cb:0128 Fuji Photo Film Co., Ltd Bus 002 Device 001: ID 0000:0000 |
$
lsusb -t
[Invio]
Bus# 3 `-Dev# 1 Vendor 0x0000 Product 0x0000 Bus# 2 `-Dev# 1 Vendor 0x0000 Product 0x0000 `-Dev# 3 Vendor 0x04cb Product 0x0128 Bus# 1 `-Dev# 1 Vendor 0x0000 Product 0x0000 |
Eventualmente, per approfondire l'uso del programma si può leggere la pagina di manuale lsusb(8).
Lshw(4) è un programma in grado di scandire ed elencare tutti i dispositivi esistenti. Attraverso le opzioni della riga di comando è possibile modificare il modo in cui queste informazioni vengono mostrate; altrimenti non c'è bisogno di specificare alcunché:
lshw [opzioni] |
Ecco come potrebbe presentarsi l'elenco che si ottiene da questo programma se avviato dall'utente root:
#
lshw
[Invio]
nanohost description: Computer product: VT82C692BX vendor: VIA Technologies, Inc. capabilities: smbios-2.2 dmi-2.2 *-core description: Motherboard product: 693A-596B-977EF physical id: 0 *-firmware description: BIOS vendor: Award Software International, Inc. physical id: 0 version: 6.00 PG (09/27/2000) size: 128KB capacity: 192KB capabilities: isa pci pnp apm upgrade shadowing escd cdboot \ |
Si osservi che la precisione e il dettaglio delle informazioni si riduce se usato da un utente comune, senza privilegi.
|
Segue la descrizione di alcuni esempi.
$
lshw -businfo
[Invio]
Bus info Device Class Description ============================================== system Computer bus Motherboard memory System memory cpu@0 processor AMD Sempron(tm) 2800+ memory L1 cache memory L2 cache pci@00:00.0 bridge 746 Host pci@00:01.0 bridge SG86C202 ... ide@0 ide0 bus IDE Channel 0 ide@0.0 /dev/hda disk Maxtor 6Y120P0 ... usb@2 usb2 bus OHCI Host Controller pci@00:03.2 bus USB 2.0 Controller usb@1 usb1 bus EHCI Host Controller pci@00:04.0 eth0 network SiS900 PCI Fast Ethernet ... |
$
lshw -businfo -class network
[Invio]
Bus info Device Class Description ============================================== pci@00:04.0 eth0 network SiS900 PCI Fast Ethernet plip0 network Ethernet interface dummy0 network Ethernet interface |
Per maggiori informazioni sull'uso del programma conviene leggere la pagina di manuale lshw(8).
Nella tradizione dei sistemi Unix, il sistema deve avere un nome. Questo nome tende a confondersi con quello attribuito all'indirizzo dell'interfaccia di rete, se questa esiste; per la precisione si tratta della prima parte, senza il dominio della rete a cui si connette. Tra le altre cose, questo fatto è poi anche motivo di confusione, nel momento in cui si comprende che ci possono essere diverse interfacce di rete, oppure ci possono essere interfacce dinamiche come quelle riferite alle connessioni PPP.
Per un principiante, questa premessa può risultare incomprensibile. In effetti, la gestione della rete viene affrontata in un altro volume, però rimane il fatto che il nome del sistema si attribuisce indipendentemente dalla connessione o meno a una rete, senza nemmeno che ci debba essere necessariamente un'armonizzazione tra questo nome e i nomi utilizzati nell'ambito della rete.
Il nome del sistema si attribuisce con il comando hostname e generalmente si annota anche all'interno della variabile di ambiente HOSTNAME. L'utilizzo di hostname(5) è molto semplice:
hostname [nome] |
In pratica, se non si indicano argomenti, si ottiene l'emissione del nome attuale; al contrario, se si indica un argomento, quello viene memorizzato come il nome del sistema.
Come si può intuire, la lettura del nome è accessibile a tutti gli utenti, mentre l'impostazione del nome è consentita solo all'utente root. |
In generale, l'impostazione di questa definizione è compito della procedura di inizializzazione del sistema, con la quale si dovrebbe definire coerentemente anche la variabile di ambiente HOSTNAME, in modo che contenga lo stesso nome.
In alcuni sistemi, si utilizza il file /etc/hostname
per annotare questo nome, in modo che venga poi letto e utilizzato per la configurazione all'atto dell'avvio del sistema stesso.
Oltre al nome, un sistema dispone anche di altre informazioni identificative. In particolare si tratta del tipo di architettura hardware, il nome del kernel e la sua versione. Queste informazioni si leggono generalmente attraverso il programma uname:(6)
uname [opzioni]
|
Il programma uname, usato senza argomenti, fornisce il nome del kernel, mentre con altri argomenti si possono ottenere informazioni differenti. La tabella 12.16 riepiloga brevemente le opzioni relative.
|
Si osservi che l'opzione -n serve a visualizzare lo stesso nome che si ottiene e si imposta con hostname.
Teoricamente, attraverso il programma hostid(7) dovrebbe essere possibile ottenere un numero univoco di identificazione dell'elaboratore, determinandolo in base ai componenti fisici che questo contiene (di solito il BIOS):
hostid |
A parte le opzioni minime delle estensioni GNU (--help e --version), questo programma non prevede nulla di standard. Purtroppo, è molto probabile che a elaboratori identici venga attribuito lo stesso numero, rendendo questo programma perfettamente inutile:
$
hostid
[Invio]
7f0100 |
LinuxInfo (8) è un programma che si comporta in modo simile a uname, fornendo però informazioni specifiche di un sistema GNU/Linux:
linuxinfo [opzioni] |
Utilizzando linuxinfo senza argomenti, si ottiene un risultato simile a quello dell'esempio seguente:
$
linuxinfo
[Invio]
Linux nanohost 2.6.7 #1 Fri Aug 13 18:28:48 CEST 2004 One Intel Unknown 768MHz processor, 1511.42 total \ |
2) Linux PCI utilities GNU GPL
5) GNU core utilities GNU GPL
6) GNU core utilities GNU GPL
7) GNU core utilities GNU GPL
8) LinuxInfo GNU GPL e GNU LGPL
«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net