Linux F.A.Q (marzo 2008)
Le risposte alle
domande più frequenti.
1.) Come si installa un pacchetto RPM?
2.) Come si installa un pacchetto DEB?
3.) Come si ricompila il kernel?
4.) Come si installano i pacchetti TGZ per Slackware e le distribuzioni derivate da essa?
5.) Come si disinstalla GNU/Linux?
6.) Come si modificano i permessi dei file?
7.) È possibile avviare Linux utilizzando il boot manager di Windows XP (NT, 2000)?
8.) Come faccio ad ottenere i privilegi di root senza riavviare la sessione?
9.) Come si arresta un processo o un'applicazione bloccata?
10.) È possibile arrestare o riavviare il sistema direttamente dalla riga di comando?
11.) Come si caricano i moduli del kernel?
12.) È possibile caricare i moduli automaticamente all'avvio del sistema?
13.) È necessario deframmentare l'hard disk in GNU/Linux?
14.) Come si visualizza lo spazio disponibile su disco?
15.) Come si verifica se ci sono settori danneggiati sul disco?
16.) Come si visualizza la versione del kernel in uso?
17.) Come faccio a verificare le risorse occupate dai processi in esecuzione?
18.) Come si masterizzano le ISO presenti sul DVD?
19.) Come faccio ad ottenere informazioni sull'hardware del PC
20.) È possibile conoscere la versione di XOrg utilizzata?
21.) Come si avviano e arrestano i processi in esecuzione?
22.) Come si applicano le patch al kernel?
23.) È possibile cambiare il nome della macchina?
24.) Cosa contiene la directory /tmp? È possibile cancellarla?
25.) Permessi predefiniti per file e directory
26.) Come si configura la rotella del mouse?
27.) Come si visualizzano gli accessi al sistema?
28.) Come si sposta un file dalla riga di comando?
29.) Esiste un comando shell per controllare l'utilizzo della RAM?
30.) È possibile localizzare la posizione di un programma?
31.) Posso configurare la scheda di rete dalla shell?
32.) Esiste un metodo per arrestare o riavviare il PC più rapidamente?
33.) È possibile montare automaticamente i dischi all'avvio?
34.) Come faccio a leggere l'output di un comando troppo lungo?
35.) Quali sono i comandi per creare un file vuoto?
36.) Qual è il sistema più rapido per cercare un file?
37.) Perché bisogna inserire ./ prima del nome per eseguire alcuni programmi?
38.) Posso installare un nuovo modulo senza ricompilare tutto il kernel?
39.) Come si installano i programmi di tipo .bin e .run?
40.) A cosa serve il file di dispositivo /dev/null?
41.) Cos'è il Master Boot Record?
42.) È possibile visualizzare i messaggi di avvio del sistema?
43.) A cosa serve il comando history?
44.) Posso personalizzare il prompt della shell?
45.) Come si scrivono la tilde e le parentesi graffe?
46.) Come si usa il comando man?
47.) Posso assegnare a tutti gli utenti il permesso di montare un dispositivo?
48.) A cosa servono le directory /dev e /proc? È possibile cancellarle?
49.) Ho sentito parlare di demone? Di cosa si tratta?
50.) Cosa contiene il file /etc/shadow?
51.) Esiste un programma per convertire i pacchetti in altri formati?
52.) Ho cancellato un utente. Come faccio ad eliminare tutti i suoi file?
53.) Qual è la differenza tra shell interattiva e non interattiva?
54.) Come si gestiscono le variabili d'ambiente?
55.) A cosa serve la directory /etc/skel?
56.) Nella directory /boot è presente il file initrd-x.x.xx.img. A cosa serve?
57.) Come faccio a cambiare le password di accesso al sistema?
58.) Cosa sono e come si creano i collegamenti simbolici?
59.) Non riesco ad eseguire applicazioni grafiche da root. Perché?
60.) Come si attiva la richiesta di conferma prima di cancellare o sovrascrivere un file dalla shell?
61.) È possibile ottene l'IP dal nome di dominio e viceversa?
62.) Come faccio a cancellare il boot loader da GNU/Linux?
1.) Come si installa un pacchetto RPM?
Non
sempre i pacchetti che utilizzano questo formato sono disponibili tra
le repository della distribuzione o nei CD di installazione quindi, in
alcuni casi, è necessario installarli manualmente. È possibile farlo
sia con strumenti grafici come KPackage, sia da riga di comando
utilizzando il comando “rpm” (RedHat Packge Manager). Supponiamo di
disporre del pacchetto package.rpm, vediamo come installarlo e cosa
possiamo fare con esso. Il comando per installarlo è rpm -i
package.rpm. Con rpm -ivh package.rpm, non solo installiamo il
software, ma visualizziamo anche informazioni su di esso e una sorta di
barra di progressione. È possibile anche forzare l'installazione del
software senza verificare eventuali dipendenze, basta usare il comando
seguente: rpm -i --nodeps package.rpm. Se è solo necessario aggiornare
il programma il comando diventa rpm -Uvh package.rpm oppure rpm -F
package.rpm. Disinstallare un pacchetto è altrettanto semplice: è
sufficiente eseguire il comando rpm -e nome_pacchetto. A differenza di
quanto fatto prima, per la disinstallazione non è necessario
specificare il nome dell'archivio RPM ma solo il nome del programma. È
anche possibile verificare se un pacchetto è installato o meno
utilizzando il comando rpm -V nome_pacchetto. Infine, ricordiamo il
comando rpm -qa che serve per visualizzare l'elenco di tutti i
pacchetti installati nel sistema.
back to top
2.) Come si installa un pacchetto DEB?
Dando
per scontato che tutti sappiano usare tool grafici come Synaptic o
Adept, è bene sapere che sono disponibili anche strumenti a riga di
comando per installare pacchetti software con estensione .deb. Tra
questi i più importanti sono apt-get e dpkg. Il primo, più evoluto, può
essere usato come sostituto dei package manager grafici, mentre il
secondo opera a livello più basso ed è indicato anche per
l'installazione di pacchetti singoli. Supponiamo, ad esempio, di voler
installare il pacchetto package.deb presente sul disco rigido. Il
comando da utilizzare è dpkg -i package.deb. Al posto di -i è possibile
usare –install. La disinstallazione è altrettanto semplice: dpkg -r
nome_pacchetto. Ad esempio dpkg -r scribus. Anche in questo caso è
possibile usare –remove al posto di -r. È importante però precisare che
il comando precedente elimina il software ma non i suoi file di
configurazione, quindi, per la rimozione completa del programma è
necessario utilizzare dpkg –purge nome_pacchetto (dpkg --purge
kaffeine). Per ottenere informazioni su un pacchetto il comando da
eseguire è dpkg -l nome_pacchetto, come nel caso di dpkg -l inkscape.
Se non si specifica alcun pacchetto (dpkg -l), il comando precedente
mostra l'elenco di tutti quelli installati nel sistema. Per quanto
riguarda apt-get, i comandi più utilizzati sono apt-get update, per
aggiornare l'elenco dei pacchetti, apt-get upgrade per aggiornare la
distribuzione e apt-get install nome_pacchetto per installare un
software: ad esempio, apt-get install gimp. Ricordate che apt-get non è
adatto per l'installazione di pacchetti singoli presenti sul file
system, ma solo per quelli disponibili nelle repository indicate nel
suo file di configurazione /etc/apt/sources.list.
back to top
3.) Come si ricompila il kernel?
Per
ricompilare il kernel già presente nel sistema, è necessario verificare
che all'interno della directory /usr/src sia presente un collegamento
simbolico di nome linux che punti alla directory dei sorgenti del
kernel già installato, oppure la directory vera e propria, linux-2.x.x
a seconda delle versione. Per ricompilare una nuova versione del kernel
bisogna copiare il pacchetto (linux-2.x.xx.tar.bz2 o tar.gz, presente
nel CD/DVD allegato o scaricabile dal sito www.kernel.org ) in /usr/src
e successivamente si deve scompattarlo mediante:
tar -zxvf linux-2.x.xx.tar.gz
oppure
tar -xvjf linux-2.x.xx.tar.bz2
In questo modo verrà creata una nuova directory chiamata linux-2.x.xx
dove sono presenti i sorgenti del nuovo kernel. A questo punto è
necessario rinominare la directory
mv linux-2.x.xx linux
o creare un collegamento simbolico simbolico ad essa:
ln -s linux-2.x.xx linux
Dopo essere entrati nella nuova directory bisogna eseguire i comandi seguenti:
make menuconfig
o per avviare il programma di configurazione grafica
make xconfig
Dopo aver scelto tutti i componenti da utilizzare e il supporto per
l'hardware del proprio sistema, si salva la configurazione (nel file
.config) e si eseguono i comandi seguenti:
make dep
make clean
make bzImage
make modules
make modules_install
make install
Nelle nuove distribuzioni, questo è sufficiente per installare il
kernel e aggiornare il boot loader, ma se questo non dovesse funzionare
è possibile procedere manualmente. L'immagine del nuovo kernel è
posizionata nella directory /usr/src/linux/arch/i386/boot con il nome
bzImage. Questa va,. per prima cosa, copiata nella directory /boot/:
cp bzImage /boot
dopodiché, va configurato il boot loader LILO o GRUB per caricare il nuovo kernel.
back to top
4.) Come si installano i pacchetti TGZ per Slackware e le distribuzioni derivate da essa?
Lo script explodepkg serve per estrarre gli archivi TGZ nella directory corrente.
explodepkg nome_pacchetto.tgz
installpkg gestisce l'installazione dei pacchetti Slackware:
installpkg [opzioni] archivio_slackware nome_pacchetto.tgz
Le opzioni che è possibile passare sono:
-warn, non effettua l' installazione ma mostra i file e le directory che verrebbero creati.
-r, installa i pacchetti contenuti a partire dalla directory corrente
-m, serve per generare un archivio tar.gz ma con estensione .tgz costituito dal contenuto della directory corrente.
Per creare archivi TGZ secondo lo standard dei pacchetti applicativi Slackware si utilizza
makepkg pacchetto_applicativo
Lo script removepkg si occupa della disinstallazione dei pacchetti
removepkg nome_pacchetto.tgz
Il tool di installazione standard utilizzato dalla distribuzione Slackware è
pkgtool
Il comando upgradepkg aggiorna un pacchetto, disinstallando prima il pacchetto già installato e inserendo dopo quello nuovo.
upgradepkg nome_pacchetto_vecchio [%nome_pacchetto_nuovo]
back to top
5.) Come si disinstalla GNU/Linux?
Per
prima cosa è necessario eliminare le partizioni usate dal sistema
operativo. Il metodo migliore consiste nell'utilizzare una delle tante
distribuzioni “live” (Knoppix, SimplyMEPIS, Kanotix, ecc) ed eseguire i
programma di partizionamento grafico QtParted. Dopo aver eliminato le
partizioni è necessario eliminare il boot loader LILO o Grub e
ripristinare il settore di avvio.
Da un sistema DOS Windows si può eseguire
fdisk /MBR
oppure, da un disco di ripristino di Windows o da una live Linux
fdisk /MBRo ancora sys c:
Direttamente da Linux si può eseguire il comando
lilo -U
È possibile ripristinare l'MBR utilizzando il tool dd e caricare il file di backup creato da LILO al momento dell'installazione
dd if=boot.xx of =/dev/hda bs=446 count=1
/dev/hda è il disco installato come master sul primo canale IDE, mentre
boot.xx è il file da ripristinare, con xx che indica la versione di
tale file. Da Windows XP in poi la procedura è diversa. Bisogna avviare
il PC con il CD/DVD di Windows, premere F8 per accedere alla console di
ripristino e poi usare i comandi fixboot o fixmbr. Il primo ripristina
il settore di avvio della partizione di Windows XP, mentre il secondo
si occupa dell'MBR (Master Boot Record), il settore di avvio del disco,
reinstallando il bootloader del sistema Microsoft.
back to top
6.) Come si modificano i permessi dei file?
chmod a+x file
assegna il permesso di esecuzione del file a tutti gli utenti del sistema;
chmod u+x file
assegna il permesso di esecuzione solo al proprietario del file;
chmod g+x file
assegna il permesso di esecuzione al gruppo;
chmod o+x file
assegna il permesso di esecuzione a tutti gli altri utenti;
Per i permessi di lettura sono valide le stesse indicazioni del
permesso di esecuzione, ma in questo caso si sostituisce x con r.
chmod a+r file
permesso di lettura a tutti gli utenti del sistema;
chmod u+r file
permesso di lettura esclusivamente solo al proprietario del file;
chmod g+r file
permesso di lettura al gruppo;
chmod o+r file
permesso di lettura agli altri utenti;
Per il permesso di scrittura si sostituisce x o r con w.
chmod a+w file
permesso di scrittura a tutti gli utenti del sistema;
chmod u+w file
permesso di scrittura solo al proprietario del file;
chmod g+w file
permesso di scrittura al gruppo;
chmod o+w file
permesso di scrittura agli altri utenti.
Ovviamente è sempre possibile combinare i diversi tipi di permessi.
back to top
7.) È possibile avviare Linux utilizzando il boot manager di Windows XP (NT, 2000)?
Durante
l'installazione di Linux è necessario installare il boot loader LILO
sulla partizion edi avvio del sistema e non sul MBR, supponiamo per
comodità
/dev/hda3). Successivamente è necessario creare il file bootsect.lin
che contiene l'immagine del settore di avvio della partizione Linux:
dd if=/dev/hd3 of= /tmp/bootsect.lin bs=512 count=1
Il file bootsect.lin va copiato nella directory C: di Windows XP e va modificato il file boot.ini nel modo seguente:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
c:\bootsect.lin="Linux"
Per modificare il file clic con il destro su Risorse del computer e
successivamente dalla scheda Avanzate selezionate Avvio e
ripristino/Impostazioni/Modifica. È anche possibile modificare il file
boot.ini direttamente in un qualsiasi editor di testi. Se decidete di
modificare la configurazione dI LILO è necessario rigenerare il file
immagine bootsect.lin e copiarlo nuovamente nella partizione di Windows.
back to top
8.) Come faccio ad ottenere i privilegi di root senza riavviare la sessione?
Durante
l'installazione del sistema, generalmente viene creato anche un utente
comune ed consigliabile utilizzare il sistema sempre effettuando il
login con questo utente. Quando è necessario effettuare operazioni che
richiedono i privilegi di root, basta avviare la shell ed eseguire il
comando su (switch user) seguito dalla password di amministratore. Per
caricare la shell con l'ambiente root completo basta aggiungere a su il
simbolo -. Alcuni sistemi prevedono un solo utente con privilegi più
estesi, ma per accedere alla shell di root vera e propria, è necessario
utilizzare il comando sudo -s e inserire la password dello stesso
utente comune con cui si effettuato il login.
back to top
9.) Come si arresta un processo o un'applicazione bloccata?
Quando
un'applicazione nonne vuole proprio sapere di sbloccarsi, l'unico
rimedio è “ucciderla” o “killarla”. Sono disponibili strumenti sia
grafici (Xkill) sia a riga di comando come kill. Il primo è utile per
arrestare programmi grafici, basta avviarlo dal menu o da shell e
cliccare con il mouse sull'applicazione da arrestare. Per arrestare
un'applicazione bloccata o un processo dalla shell, per prima cosa è
necessario visualizzare i processi attivi con il comando
ps -ax
dopodiché basta individuare il PID associato all'applicazione bloccata ed eseguire
kill -9 pid_dell'applicazione
l'opzione -9 indica il segnale SIGKILL. Per ottenere l'elenco dei
possibili segnali da inviare basta eseguire kill -l. In casi
particolari può essere utile il comando fuser, per individuare e
arrestare il processo o l'applicazione che blocca una risorsa, ad
esempio il lettore CD:
fuser -v /dev/cdrom (individua il processo che occupa il lettore)
fuser -k /dev/cdrom (invia un segnale di kill al processo e lo termina liberando la risorsa)
Il programma killall invia un segnale a tutti i processi che eseguono i
comandi specificati. I segnali possono essere indicati per nome o per
numero. Ad esempio per arrestare tutti i processi avviati da Apache si
può usare il comando
killall httpd.
back to top
10.) È possibile arrestare o riavviare il sistema direttamente dalla riga di comando?
Per arrestare il sistema dalla shell bisogna usare il comando
shutdown -h now
o in alternativa
init 0
Per riavviare il sistema il comando è
shutdown -r now
o anche i questo caso il comando init
init 6
Il comando serve a cambiare il runlevel o livello di esecuzione del
sistema, ce ne sono sei e lo 0 indica l'arresto e il 6 il riavvio.
Generalmente per l'utilizzo normale del PC vengono utilizzati i
runlevel 3 e 4. Per scoprirlo da root basta utilizzare il comando
runlevel senza argomenti.
back to top
11.) Come si caricano i moduli del kernel?
Per
prima cosa è necessario verificare la disponibilità del modulo.
Supponendo che vogliamo caricare il modulo per la gestione delle penne
USB , usb-storage, possiamo verificarne la presenza utilizzando il
comando (da root)
modprobe -l | grep usb
se è presente nell'elenco fornito dal comando, possiamo caricarlo con
modprobe usb-storage
o il nome del modulo che vogliamo caricare. Per ottenere l'elenco dei moduli caricati basta eseguire il comando lsmod.
back to top
12.) È possibile caricare i moduli automaticamente all'avvio del sistema?
Se
ad esempio si intende caricare il modulo irda per il supporto delle
periferiche a infrarossi (IrDA) ad ogni avvio del sistema invece
eseguire ogni volta:
modprobe irda
è necessario inserire la riga /sbin/modprobe irda
all'interno del file /etc/rc.d/rc.local o nei file corrispondenti a seconda della distribuzione utilizzata.
back to top
13.) È necessario deframmentare l'hard disk in GNU/Linux?
I
programmi ci sono ma non sono quasi mai necessari e addirittura se ne
sconsiglia l'uso. Normalmente la frammentazione di un file system Ext2,
quello nativo di Linux, si stabilizza tra il 4% e il 5%, e questo
valore non viene mai superato.
back to top
14.) Come si visualizza lo spazio disponibile su disco?
Oltre
a numerosi programmi grafici integrati nei desktop KDE e Gnome è
disponibile il tool df, eseguibile dalla shell anche senza passare
opzioni aggiuntive. Fornisce la dimensione di tutti i file system
montati e mostra la quantità di spazio libero e utilizzato. Utilizzando
l'opzione -h, lo spazio residuo verrà visualizzato in maniera più
chiara (G per Gbyte, M per Mbyte). L'opzione -T mostra anche il tipo di
file system utilizzato.
back to top
15.) Come si verifica se ci sono settori danneggiati sul disco?
Di
questo compito si occupa il comando fsck e le sue numerose varianti, a
seconda del file system utilizzato dalla partizione da controllare. Per
controllare una partizione con file system Ext3 bisogna eseguire
fsck.ext3 -c /dev/hdaX
dove hda indica il disco e X il numero della partizione. Per
visualizzare i comandi disponibili per gli altri tipi di file system
basta digitare fsck e premere i tasto di tabulazione.
back to top
16.) Come si visualizza la versione del kernel in uso?
Basta eseguire dalla console il comando
uname -r
back to top
17.) Come faccio a verificare le risorse occupate dai processi in esecuzione?
Avviate
una shell ed eseguite il comando top senza argomenti. Questo tool
fornisce informazioni in tempo reale sull'utilizzo delle risorse di
sistema da parte di un programma. Per la CPU e la RAM il valore è
espresso in percentuale. Inoltre, sono fornite informazioni sul
proprietario del processo, da quanto tempo è in esecuzione, priorità di
esecuzione, ecc., oltre ovviamente al nome del processo stesso.
back to top
18.) Come si masterizzano le ISO presenti sul DVD?
Per
gli utenti che utilizzano Windows e Nero come software di
masterizzazione, è sufficiente avviare il programma Nero Burning Rom,
chiudere il wizard che parte all'avvio e selezionare la voce del menù
principale Masterizzatore, Scrivi immagine.... Dopodiché basta cercare,
mediante la finestra di dialogo che appare, l'immagine ISO della
distribuzione GNU/Linux che si vuole utilizzare presente all'interno
del DVD. Per gli utenti GNU/Linux che utilizzano K3b basta selezionare
dal menù Strumenti la voce Scrivi immagine CD..., oppure Scrivi
immagine ISO DVD... Dopodiché dalla finestra di dialogo bisogna
utilizzare il campo Immagine da scrivere per indicare l'ISO da
masterizzare.
back to top
19.) Come faccio ad ottenere informazioni sull'hardware del PC
In
assenza di tool grafici è sempre possibile ricorrere ai comandi shell.
Se l'obiettivo è raccogliere, in un colpo solo, più informazioni
possibili sulle periferiche installate il comando necessario è lshw.
L'output ottenuto è abbastanza prolisso, quindi, per facilitarne la
lettura è opportuno “accoppiarlo” al comando more con una pipe (“|”)
nel modo seguente: lshw | more. Così facendo è possibile visualizzare
gradualmente i dati ottenuti premendo Invio. Nel caso in cui
l'obiettivo è ottenere informazioni sulle periferiche PCI (scheda
audio, video, scheda di rete, controller USB, ecc.) il comando diventa
lspci. Esiste anche un tool specifico per verificare la presenza di
eventuali periferiche collegate alle porte USB il cui comando per
eseguirlo è proprio lsusb. Nel caso dei computer portatili è anche
possibile ottenere informazioni su eventuali schede PCMCIA connesse
utilizzando il comando lspcmcia. Per ottenere informazioni dettagliate
su hard disk, lettori CD/DVD e masterizzatori bisogna usare il comando
hdparm con l'opzione -i. Supponiamo, ad esempio, di voler “analizzare”
il lettore DVD identificato dal file di dispositivo /dev/hdd, in questo
caso il comando diventa hdparm -i /dev/hdd. Non dimentichiamo poi il
comando dmesg (diagnostic message) che visualizza i messaggi inviati
dal kernel contenenti dati importanti relativi all'hardware. Infine,
ricordiamo l'inesauribile fonte di informazioni offerta dal file system
virtuale /proc. Per poter leggere il suo contenuto basta utilizzare il
tool cat. Ad esempio per le periferiche PCI il comando è cat
/proc/bus/pci/devices. Se, invece, desiderate ottenere informazioni in
tempo reale quando collegate una periferica rimovibile al PC è
possibile usare il comando tail -f /var/log/messages, eseguendolo prima
di connettere il dispositivo al PC.
back to top
20.) È possibile conoscere la versione di XOrg utilizzata?
Il
comando per conoscere quale versione del sistema grafico (X Window
System) stiamo utilizzando è molto semplice. È sufficiente eseguire X
-version.
back to top
21.) Come si avviano e arrestano i processi in esecuzione?
Anche
in questo caso, è probabile che la distribuzione utilizzata disponga di
tool grafici, ad esempio KSyvInit, per gestire l'esecuzione dei
programmi, in caso contrario è possibile intervenire dalla shell. Nella
maggior parte dei casi, per queste particolari applicazioni, come
quelle server (posta, web, FTP, Samba, MySQL, ecc.), è disponibile il
relativo script di avvio nella directory /etc/init.d. Ad esempio per
gestire l'esecuzione del server di database MySQL è possibile eseguire
il comando /etc/init.d/mysql seguito da una delle seguenti opzioni,
start, stop, restart, reload, force-reload, status, a seconda di quello
che si vuole fare. Ad esempio, /etc/init.d/mysql restart. Il comando
precedente serve per riavviare il server MySQL
back to top
22.) Come si applicano le patch al kernel?
Una
patch (letteralmente “pezza”), detta anche file di modifiche o
semplicemente aggiornamento, è un frammento di codice che, inserito
all'interno del kernel Linux, ma anche di un qualsiasi altro programma,
consente di aggiungere a esso nuove funzionalità o correggere eventuali
difetti, eliminando allo stesso tempo la necessità di dover
reinstallare una nuova versione del software. Nel caso del kernel
Linux, ad esempio, evita di dover scaricare e installare nuovamente
l'intero sorgente, generalmente di grosse dimensioni. Per quanto
riguarda le patch specifiche per il kernel Linux, in genere sono
disponibili sotto forma di file compressi con estensione .bz2 o .gz.
Per applicarne una al kernel, bisogna innanzitutto copiarla all'interno
della directory /usr/src, dopodiché è necessario spostarsi nella stessa
cartella mediante il comando cd /usr/src ed eseguire i comandi seguenti
a seconda del formato utilizzato:
bzip2 -dc nome_file.bz2 | patch -p1
gzip -dc nomefile.gz | patch -p0
Oltre a questo sistema, è possibile utilizzare lo script patch-kernel
presente nella directory /usr/src/linux/scripts. In questo caso è
necessario copiare le patch nella directory /usr/src, spostarsi in
/usr/src/linux/scripts con cd /usr/src/linux/scripts ed eseguire il
comando ./patch-kernel. È importante ricordare che in presenza di più
kernel è necessario spostarsi ed eseguire tale comando nella directory
corrispondente a quello che si intende patchare. Ad esempio, per il
kernel 2.6.20, potrebbe essere qualcosa di simile a
/usr/src/linux-2.6.20/scripts. Inoltre, dopo aver applicato la o le
patch, prima di poterle sfruttare, è sempre necessario ricompilare il
kernel.
back to top
23.) È possibile cambiare il nome della macchina?
Il
nome assegnato al sistema durante la fase di installazione, meglio
conosciuto come “hostname”, serve per identificare il nostro PC (detto
anche host o end system). Se non diversamente indicato il nome
predefinito diventa, in genere, “localhost”. In tutte le distribuzioni
GNU/Linux, tale informazione è conservata all'interno di /etc/hostname;
è proprio in questo file che viene indicato il nome della macchina. È
chiaro che per cambiare l'hostname è sufficiente modificare la stringa
presente nel file /etc/hostname. In alternativa è possibile utilizzare
il comando “hostname” che, se eseguito senza argomenti mostra a video
il nome della macchina, se seguito da un'altra stringa lo modifica
utilizzando il contenuto di questa'ultima al suo posto. Ad esempio:
hostname linuxpc.
back to top
24.) Cosa contiene la directory /tmp? È possibile cancellarla?
Molti
programmi in esecuzione durante il normale utilizzo del PC usano la
directory /tmp per archiviare al suo interno alcuni file, spesso
temporanei, necessari alla loro esecuzione. In alcuni casi, il
contenuto di tale directory può raggiungere dimensioni spropositate
(per verificarlo basta eseguire du -h /tmp), quindi, sarebbe una buona
idea ripulirla, ma è possibile farlo solo prima che qualsiasi programma
possa scrivere qualcosa al suo interno. Detto ciò, risulta evidente che
il momento più opportuno è proprio durante la fase di avvio del
sistema. Per farlo è sufficiente creare un semplice script da inserire
nella directory contente i servizi da avviare ovvero /etc/init.d.
Alcune distribuzioni eseguono in automatico tale procedura, in caso
contrario lo script da inserire è composto nel modo seguente:
#!/bin/bash
rm -Rf /tmp/*
back to top
25.) Permessi predefiniti per file e directory
Per
poter assegnare permessi predefiniti ai file e alle directory bisogna
utilizzare il comando umask, conosciuto anche come maschera dei
permessi. Attenzione, tramite questo tool non è possibile modificare i
permessi di file già esistenti, ma consente “solo” di stabilire a
priori quali saranno i diritti di accesso applicati di default ai file,
ma anche alle directory, nel momento in cui vengono creati ma non
vengono specificati i permessi. In pratica i permessi indicati con
umask non verranno applicati ai nuovi file. Per conoscere il valore
corrente della maschera è sufficiente eseguire il comando umask e
premere Invio. In genere, il risultato che si ottiene è 0022, il che
significa che il permesso di scrittura, indicato proprio dal numero 2
verrà tolto sia agli altri utenti sia al gruppo. Per ottenere un output
più leggibile è possibile utilizzare l'opzione -S (umask -S). In questo
caso il risultato sarà quello seguente:
u=rwx,g=rx,o=rx
Come vedete l'utente proprietario del file, identificato dalla “u”,
dispone di tutti i permessi “r” read (lettura), “w” write (scrittura) e
“x” che sta per “execution” o esecuzione. Mentre al gruppo “g” (group)
e agli altri utenti “o” (other) il permesso di scrittura (“w”) non è
concesso, proprio come stabilito da umask. Questo significa che al
momento della creazione di un qualsiasi file o directory, se non
espressamente specificato, verranno applicati tali permessi. Per
modificare il valore della maschera dei permessi basta eseguire umask
seguito dalla nuova direttiva, ad esempio:
umask 0077
In questo caso (limite), su tutti i nuovi file e directory, verranno
tolti tutti i permessi (7), cioè lettura, scrittura, ed esecuzione per
il gruppo e gli altri utenti. Ricordiamo che in base al sistema di
gestione dei permessi il numero 4 indica l'accesso in lettura, il 2
quello in scrittura e l'1 quello di esecuzione. Ecco spiegato il valore
7, cioè 4+2+1. È chiaro che il 4 corrisponde alla r, il 2 alla w e l'1
alla x. Sono solo due metodi diversi di rappresentare i permessi, ma il
risultato è uguale.
back to top
26.) Come si configura la rotella del mouse?
In
genere non è più necessario configurare manualmente questo aspetto. Ma
se per qualche motivo la nostra distribuzione non riuscisse a farlo
automaticamente è necessario intervenire direttamente sul file di
configurazione del sistema grafico X (/etc/X11/xorg.conf). Per prima
cosa bisogna individuare la sezione relativa al mouse, Section
"InputDevice", dopodiché bisogna indicare al server grafico che il
mouse in questione ha 5 pulsanti: 3 per la pressione, 4 per la rotella
sù e 5 per la rotella giù. Segue un esempio di configurazione corretta:
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "off"
EndSection
L'operazione va eseguita come utente root, dopodiché, per applicare le modifiche è necessario riavviare il sistema grafico.
back to top
27.) Come si visualizzano gli accessi al sistema?
È
semplicissimo, basta consultare i log di accesso alla macchina. Per
farlo bisogna eseguire last senza argomenti aggiuntivi. Questo comando
mostra l'elenco degli ultimi accessi al sistema.
back to top
28.) Come si sposta un file dalla riga di comando?
Spostare
un file utilizzando la shell equivale al Taglia/Incolla in modalità
grafica. Il comando per eseguire questo tipo di operazione è mv. La sua
sintassi è molto semplice:
mv file_sorgente file_destinazione
Supponendo che il file test.txt si trovi nella home directory
dell'utente linux, per spostarlo nella sottodirectory temp è necessario
eseguire quanto segue:
mv /home/linux/test.txt /home/linux/temp
Lo stesso comando può anche essere utilizzato per rinominare un file o
una directory. La sintassi i questo caso è quella seguente:
mv nome_file nuovo_file
Nel caso del file test.txt, per rinominarlo in nuovo_test.txt, bisogna eseguire
mv test.txt nuovo_test.txt
È importante ricordare che il comando mv, durante le operazioni di
spostamento, se trova un file con lo stesso nome si limita a
sovrascriverlo senza chiedere conferma. Esiste comunque un modo per
evitare questo comportamento. In pratica, è sufficiente utilizzare
l'opzione -i nel modo seguente:
mv -i /home/linux/test.txt /home/linux/temp
Se nella directory temp è presente un altro file con nome test.txt, mv
chiederà conferma prima di sovrascriverlo. Per confermare basta
scrivere y e premere Invio. Per ottenere ulteriori informazioni potete
utilizzare il comando man mv.
back to top
29.) Esiste un comando shell per controllare l'utilizzo della RAM?
Per
verificare l'utilizzo della memoria RAM da console è disponibile il
comando free. Questo tool mostra sia la quantità complessiva di memoria
fisica e di swap libera e usata nel sistema, sia la shared memory e i
buffer usati dal kernel. Se eseguito senza opzioni (flag), free
visualizza i dati ricavati in Kbyte, altrimenti è possibile scegliere
l'unita di misura: Il flag -b mostra la quantità di memoria in byte, -k
(impostato di default) in Kbyte e -m in Mbyte.
back to top
30.) È possibile localizzare la posizione di un programma?
Tra
i comandi predefiniti di GNU/Linux è disponibile il tool which, il
quale prende come argomento il nome di un programma e mostra a video la
sua posizione all'interno delle directory del file system; in pratica
il percorso completo, meglio noto come pathname. Which fa questo
utilizzando la variabile d’ambiente $PATH (echo $PATH per visualizzare
il suo valore). Ecco un esempio di utilizzo di which:
which bash
Il risultato del comando precedente è /bin/bash, che indica la posizione dell'eseguibile della shell Bash.
back to top
31.) Posso configurare la scheda di rete dalla shell?
Configurare
la scheda di rete graficamente forse è più facile ma certamente non più
pratico e veloce che farlo dalla shell. Per prima cosa bisogna loggarsi
come root con su o sudo -s e subito dopo eseguire il comando ifconfig
per verificare quali sono le interfacce di rete disponibili. In genere
le schede di rete vengono identificate da eth0, eth1, eth2 e così via a
seconda di quante periferiche sono installate nel PC. Supponiamo di
dover configurare la scheda eth0 per la connessione ad una rete locale
che usa gli indirizzi IP 192.168.0.1/24, maschera di rete (netmask)
255.255.255.0 e gateway 192.168.0.1. In questo caso, per collegare un
PC alla rete, assegnandogli l'IP 192.168.0.3, bisogna eseguire quanto
segue:
ifconfig eth0 192.168.0.3 netmask 255.255.255.0
route add default gateway 192.168.0.1
A questo punto, è ancora necessario indicare gli indirizzi dei server
DNS prima di poter accedere a Internet. Per farlo, bisogna modificare
il file /etc/resolv.conf inserendo la parola nameserver seguita dall'IP
del DNS, tante volte quanti sono quelli che vogliamo aggiungere. Ad
esempio per aggiungere due DNS il comando è quello seguente:
nameserver 87.167.220.2
nameserver 87.167.110.2
Ovviamente, per modificare tale file dalla shell è possibile usare, da root, gli editor nano o vi:
vi /etc/resolv.conf
nano -w /etc/resolv.conf
Oppure il comando echo in questo modo:
echo " nameserver 87.167.220.2" > /etc/resolv.conf
echo " nameserver 87.167.110.2" >> /etc/resolv.conf
Il comando echo serve per scrivere la stringa di testo (in condizioni
normali la stamperebbe semplicemente a video) e il simbolo > serve
per indirizzare il suo output nel file di destinazione, questa volta
/etc/resolv.conf, sovrascrivendone il contenuto. Anche il simbolo
>>, serve per redirige l'output di echo su tale file file ma, al
contrario del primo lo inserisce alla fine, senza sovrascrivere il
contenuto originale.
back to top
32.) Esiste un metodo per arrestare o riavviare il PC più rapidamente?
Nei
sistemi GNU/Linux e Unix più in generale, l'arresto e il riavvio della
macchina sono gestiti mediante l'uso del comando shutdown. Questo
permette di eseguire l'intera procedura in modo sicuro, immediatamente
o dopo un certo ritardo espresso in secondi. In pratica, shutdown non
fa altro che comunicare al processo principale init (man init) di
cambiare runlevel (livello di esecuzione). Più precisamente il runlevel
0 è usato per arrestare il sistema (halt), mentre il 6 per il riavvio,
noto anche come reboot. Così facendo si ottiene un arresto/riavvio
pulito, in quanto i processi in esecuzione ricevono un sorta di avviso,
che permette loro di salvare le operazioni in corso. Come accade per
molti altri comandi, anche il funzionamento di shutdown può essere
influenzato mediante l'uso di opportuni switch (opzioni). In
particolare, il comando shutdown -n arresta la macchina in modo più
veloce, ma lo fa senza servirsi di init, quindi, si tratta di un metodo
decisamente più pericoloso e per questo sconsigliato nelle stesse
pagine di manuale del comando shutdown (man shutdown). Utilizzando,
invece, shutdown -f, si ottiene un reboot veloce (fast) della macchina.
In quest'ultimo caso non esistono particolari controindicazioni.
back to top
33.) È possibile montare automaticamente i dischi all'avvio?
Montare
un disco, una partizione o qualsiasi altro supporto di memorizzazione,
significa renderne accessibile il contenuto all'interno di una
determinata directory, detta anche punto di mount o punto di innesto.
Questa operazione può essere svolta sia manualmente, mediante l'uso del
comando mount (man mount), sia automaticamente all'avvio del computer.
In quest'ultimo caso, il sistema si serve delle indicazioni presenti
nel file di configurazione /etc/fstab. Tale file è costituito da
diverse righe, ognuna delle quali è divisa in campi che indicano il
dispositivo da montare, dove deve essere agganciato al file system
principale (punto di mount), il tipo di file system (VFAT, Ext2,
ISO9660, NTFS, EXT3, ecc.), più altre opzioni, tra le quali c'è anche
auto. Quando su una riga è presente questa voce, significa che il
dispositivo corrispondente verrà montato automaticamente all'avvio del
sistema, senza bisogno di eseguire altri comandi. Al contrario, tutti i
dispositivi che non devono essere montati presentano l'opzione noauto
(tipicamente CD, DVD e Floppy). Abbiamo detto che per montare un
dispositivo manualmente è necessario il comando mount. Se questo è
presente in /etc/fstab, per farlo è sufficiente eseguire mount
dispositivo oppure mount punto_di_montaggio. Ad esempio, per montare la
prima partizione del secondo hard disk, in genere /dev/hdc1, nella
directory /mnt/disco2, il comando precedente diventa mount /dev/hdc1
oppure mount /mnt/disco2. Nel caso in cui, in /etc/fstab non è presente
una voce relativa al dispositivo da montare, bisogna indicare il tipo
di file system (ad esempio ext3), il dispositivo e il punto di mount,
come nell'esempio seguente:
mount -t ext3 /dev/hdc1 /mnt/disco2
Per smontare un dispositivo e liberare nuovamente le risorse occupate
bisogna, invece, utilizzare il comando umount. Proseguendo con
l'esempio precedente, dovremo eseguire umount /dev/hdc1 oppure umount
/mnt/disco2. Infine, per conoscere quali sono i dispositivi attualmente
montati basta utilizzare il comando mount senza argomenti o
visualizzare il contenuto del file /etc/mtab con cat /etc/mtab.
back to top
34.) Come faccio a leggere l'output di un comando troppo lungo?
Quando
capita di eseguire un comando che fornisce un risultato troppo lungo
per essere visualizzato all'interno di una sola schermata, questo viene
fatto scorrere velocemente fino alla fine, impedendoci di consultare le
parti che ci interessano. Pensiamo ad esempio alla visualizzazione dei
messaggi del kernel tramite dmesg, o ancora, all'esecuzione del comando
ls all'interno di una directory stracolma di file. L'unico modo per
risolvere il problema è reindirizzare l'output su more o less
utilizzando una pipe (simbolo |):
dmesg | less
dmesg | more
Le funzionalità dei due programmi sono simili, infatti, entrambi
consento di scorrere il testo poco alla volta utilizzando appositi
pulsanti della tastiera. La differenza fondamentale è che, mentre more
permette di farlo solo in avanti premendo Invio, con less è possibile
utilizzare i tasti freccia e di pagina per scorrere il testo avanti e
indietro, un rigo o una pagina alla volta.
back to top
35.) Quali sono i comandi per creare un file vuoto?
I
sistemi Unix, comprese tutte le distribuzioni GNU/Linux, includono di
default il comando touch. Quest'ultimo serve a creare un file vuoto. In
pratica, è sufficiente eseguire dalla shell il comando seguente:
touch nome_file
Successivamente è possibile aprire il file appena creato con un
qualsiasi editor e scrivere al suo interno. Nel momento in cui, invece,
oltre a creare il file si decidesse di iniziare a scriverne subito il
contenuto, il comando da eseguire è:
cat > nome_file
Così facendo, non solo si crea il file, ma è anche possibile scrivere
il suo contenuto fino a quando non si preme la combinazione di tasti
Ctrl+D.
back to top
36.) Qual è il sistema più rapido per cercare un file?
I
moderni motori di ricerca per il desktop o Desktop Search Engine come
Google Desktop Linux, Tracker o Recoll, non sono gli unici programmi in
grado di cercare rapidamente un file all'interno del file system.
GNU/Linux, infatti, dispone di alcuni tool predefiniti per effettuare
questo tipo di operazioni anche dalla riga di comando. Uno di questi è
find. Ad esempio, supponiamo di voler cercare il file test.txt
all'interno della directory root (/). In questo caso, il comando find
va usato nel modo seguente:
find / -name text.txt -print
Ovviamente è possibile sostituire la directory root con qualsiasi altra
per indicare un punto specifico del file system dove eseguire la
ricerca. Un altro comando ancora più semplice da utilizzare è locate:
locate test.txt
Quest'ultimo è molto più veloce di find, ma prima di usarlo bisogna
aggiornare il suo archivio eseguendo, da utente root, il comando
updatedb. Tale comando non va eseguito ogni volta che si usa locate, ma
solo quando si vuole effettuare una nuova indicizzazione del contenuto
del disco. Questa, in genere, è necessaria solo quando si effettua
qualche cambiamento nel file system. Ad esempio, creazione di file e
directory, installazioni di nuovi programmi, ecc. Insomma, si modifica
il contenuto del disco aggiungendo nuovi file.
back to top
37.) Perché bisogna inserire ./ prima del nome per eseguire alcuni programmi?
Ogni
volta che si esegue un comando dalla shell, a meno che non si indichi
il percorso completo dove questo è posizionato all'interno del file
system, il sistema effettua una veloce ricerca per individuarlo. Tale
ricerca prende in considerazione tutte le directory contenute nella
variabile di ambiente PATH (per visualizzarne il contenuto basta
eseguire il comando echo $PATH). È ovvio che, nel momento in cui
l'eseguibile non è presente in nessuna delle directory contenute in
PATH, il comando non può essere avviato. In questo caso, per eseguire
il programma i metodi sono due. Il primo, come abbiamo detto, consiste
nell'indicare il percorso completo, ad esempio per eseguire il
programma prova, presente, ad esempio, nella nostra home, il comando
diventa /home/nome_utente/prova. Il secondo metodo consiste
nell'accedere alla directory che contiene il programma (in questo caso
cd /home/nome_utente) ed eseguirlo con ./prova. In pratica, in
quest'ultimo caso, non essendo il programma contenuto nei percorsi
contenuti nella variabile PATH, è stato necessario indicare che si
trova nella directory corrente, cioè quella in cui ci troviamo.
Infatti, il . (punto) serve per indicare al sistema di cercare
l'eseguibile nella directory corrente il simbolo / completa il
percorso. È comunque possibile evitare di inserire ogni volta i
caratteri ./, indicando la direcory corrente nella variabile PATH:
PATH=.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
export PATH
In questo modo abbiamo aggiunto anche la directory corrente tra i
percorsi degli eseguibili, quindi possiamo avviare qualsiasi programma,
da qualunque posizione senza inserire ./ prima del nome, ma solo se
questo è presente nella directory in cui ci troviamo.
back to top
38.) Posso installare un nuovo modulo senza ricompilare tutto il kernel?
Tutte
le distribuzioni GNU/Linux installano di default alcuni kernel
“precompilati”, che possiamo definire generici, allo scopo di garantire
la massima compatibilità con le configurazioni hardware più diffuse.
Ovviamente, tali kernel vengono installati con un numero limitato di
componenti (driver hardware o altro), alcuni dei quali compilati
staticamente, cioè inseriti direttamente nel kernel, quindi sempre
disponibili, mentre altri compilati dinamicamente, cioè sotto forma di
moduli, da caricare manualmente all'occorrenza. Questo sistema consente
di ottenere, almeno in teoria, kernel più leggeri, senza troppe parti
in eccesso. Purtroppo, però, quando si tratta di componenti hardware
particolari o del supporto per protocolli poco utilizzati, tali moduli
possono non essere presenti, quindi, prima di poterli utilizzare è
necessario compilarli e installarli separatamente. A questo punto le
strategie sono due: inserirli direttamente nel kernel o installarli
come moduli separati. Nel primo caso, ovviamente, bisogna ricompilare
nuovamente l'intero kernel, nel secondo è necessario solo eseguire i
comandi previsti per la compilazione dei moduli, procedendo nel modo
seguente. Per prima cosa, se non presenti, bisogna installare i
sorgenti del kernel in uso. Per scoprire la versione esatta basta
eseguire il comando uname -r. I sorgenti possono essere installati
utilizzando i pacchetti precompilati per la propria distribuzione,
oppure il file dei sorgenti. In quest'ultimo caso, è necessario
scaricare il relativo pacchetto dal sito www.kernel.org e scompattarlo
in /usr/src/linux, per comodità supponiamo
/usr/src/linux-source-2.6.20. A questo punto, entriamo nella nuova
directory (cd /usr/src/linux-source-2.6.20) ed eseguiamo il comando
make xconfig per effettuare la nuova configurazione. Per evitare di
escludere i moduli utili già in uso e ritrovarci solo con quelli nuovi,
ottenendo un sistema non utilizzabile, utilizziamo una configurazione
funzionante. Basta accedere al menu File/Load e caricare il file di
configurazione presente in /boot: in genere si tratta di un file del
tipo config-2.6.XX.X-generic o qualcosa di simile. Dopo averlo
caricato, sempre dall'interfaccia grafica individuiamo i componenti da
compilare come moduli (indicati dal simbolo a forma di punto) e
salviamo il nuovo file da File/Save. A questo punto, possiamo
compilarli e installarli:
make modules
make modules_install
depmod -a
Infine, possiamo caricarli nel sistema con modprobe nome_modulo.
back to top
39.) Come si installano i programmi di tipo .bin e .run?
Il
software disponibile per GNU/Linux è distribuito in formati differenti,
ognuno dei quali necessita di un'installazione particolare. Oltre a
quelli più diffusi, sorgenti, .deb, .rmp, .tgz e alcuni specifici per
distribuzioni minori, spesso i programmi vengono forniti sotto forma di
pacchetti .run o .bin. In questo caso si tratta di software
precompilati, con integrate staticamente (cioè già presenti nel
pacchetto stesso) le librerie di cui necessitano. In questi casi, non è
necessario alcuna compilazione, tanto meno utilizzare i gestori di
pacchetti come Yum, Adept, Synaptic o altro, è sufficiente eseguirli
direttamente dalla shell o in alcuni casi tramite un semplice doppio
clic sul file. La parte restante della procedura, in genere, avviene
mediante procedure guidate grafiche o testuali. Supponiamo di disporre
del file software.bin o software.run (la procedura è identica in
entrambi i casi). Per prima cosa, anche se non sempre, bisogna rendere
il file eseguibile:
chmod u+x software.run
A questo punto è sufficiente avviare l'installazione con il comando
./software.run e seguire le istruzioni mostrate a video. Lo stesso
discorso vale per alcuni pacchetti .sh e il nuovo formato .package. In
quest'ultimo caso, la procedura si differenzia solo per il fatto che,
una volta avviata l'installazione, lo script verifica il contenuto del
pacchetto e la presenza nel sistema di alcuni software indispensabili
(le cosiddette dipendenze) prima di procedere con l'installazione del
programma. In caso contrario, scarica da Internet e installa
automaticamente tutti quelli mancanti (è solo necessario essere
connessi alla rete). Oltre a questi formati esistono altri sitemi di
distribuzione del software, sempre tramite pacchetti precompilati. Ad
esempio, software come Opera, Firefox, Thunderbird, SeaMonkey e molti
altri, sono disponibili sotto forma di archivi compressi contenenti il
software già compilato. Basta scompattarli ed eseguire un file, nel
cado di Thunderbird, si tratta dello script thunderbird: in alcuni casi
non è neppure necessaria una vera e propria installazione.
back to top
40.) A cosa serve il file di dispositivo /dev/null?
Il
file di dispositivo /dev/null se aperto in lettura corrisponde ad un
file vuoto, mentre in scrittura può essere paragonato ad una sorta di
buco senza fondo. In pratica tutto quello che viene inviato al suo
interno è perduto per sempre. Qual è allora la sua utilità. Questa
caratteristica particolare lo render molto utile all'interno di alcuni
script, nei quali non è necessario che i comandi eseguiti producano
output da inviare agli utenti. Eseguendo, ad esempio, il comando
seguente
ls /bin > /dev/null
non otterremo nulla come risultato, perché il risultato è stato
rediretto (simbolo >) /dev/null e quindi perso. Attenzione: in
questo caso non si perdono i file ma solo l'output del comando. È
possibile verificare il contenuto vuoto del file utilizzando il comando
seguente:
cat /dev/null
Come non verrà mostrato nulla a schermo.
back to top
41.) Cos'è il Master Boot Record?
Il
Master Boot Record (MBR), in italiano settore di avvio, è costituito
dai primi 512 byte (mezzo Kbyte) dell'hard disk. È all'interno di
questo fondamentale settore del disco che vengono conservati tutti i
comandi e le informazioni necessarie al PC per poter avviare il sistema
operativo. In pratica, il software di avvio (meglio noto come firmware)
contenuto nella ROM del BIOS carica ed esegue il contenuto del Master
Boot Record che a sua volta dispone del necessario per caricare il
sistema operativo. All'interno dell'MBR, infatti, è presente la tabella
delle partizioni, utilizzata dal sistema per conoscere la struttura del
disco (indispensabile per caricare ed avviare il settore di avvio della
partizione segnata come attiva) e il boot loader (per GNU/Linux LiLo o
Grub) che si occupa, successivamente, di caricare il kernel del sistema
operativo.
back to top
42.) È possibile visualizzare i messaggi di avvio del sistema?
Durante
l'avvio (boot), i sistemi GNU/Linux mostrano a video una serie di
messaggi (in alcuni casi, vengono sostituiti da un'immagine e una barra
di progressione ma, in genere, per visualizzarli è sufficiente premere
Esc). Tali messaggi non sono altro che dati prodotti dal kernel e dagli
script di inizializzazione per fornire informazioni riguarda la
procedura di caricamento del sistema: riconoscimento e configurazione
dell'hardware, esecuzione di servizi fondamentali, avvio automatico di
programmi ecc. Si tratta, in pratica, di dati molto utili per eseguire
una diagnosi veloce del sistema, per cui è importante poterli
consultare all'occorrenza. Per farlo sono disponibili diversi comandi.
Uno di questi è dmesg che, eseguito senza argomenti, scorre velocemente
le informazioni di boot dall'inizio alla fine. Per cercare una parola
in particolare, ad esempio per recuperare informazioni a proposito
delle periferiche USB, tale comando può essere associato a grep
mediante l'utilizzo di una pipe (simbolo “|”): dmesg | grep usb.
Inoltre è possibile visualizzare solo i messaggi del kernel con less
/var/log/kern.log, oppure quelli relativi al funzionamento del sistema
con less /var/log/syslog. Al posto di less, è possibile utilizzare il
comando more.
back to top
43.) A cosa serve il comando history?
L'utility
history si occupa di mantenere la cronologia (in pratica un elenco
organizzato in ordine temporale) dei comandi shell eseguiti
dall'utente. In questo modo, nel momento in cui bisogna usare
nuovamente lo stesso comando, non è necessario riscriverlo da zero ma
basta eseguire history. Immediatamente verrà visualizzato l'elenco dei
comandi eseguiti dall'utente fino a quel momento e ad ognuno di essi
sarà associato un numero. A questo punto per eseguirne nuovamente uno
bisogna utilizzare il punto esclamativo (!) seguito dal numero che lo
identifica, ad esempio: !154. Ovviamente, dipende da quanti comandi
sono stati eseguiti, la lista fornita da history può essere anche molto
lunga e, poiché il programma si limita a scorrerla dall'inizio alla
fine senza pause, è bene associarlo a more o less nel modo seguente:
history | more o history | less. Ma esistono ancora altri sistemi per
evitare di dover riscrivere comandi già utilizzati. Ad esempio, basta
digitare il punto esclamativo seguito dalla stringa iniziale di uno di
essi per ripeterlo senza doverlo riscrivere. Supponiamo di aver
eseguito mount -t iso9660 linux.iso /mnt per montare un'immagine ISO.
Per ripetere il comando basta eseguire !mount. Infine, ricordiamo che è
sempre possibile scorrere lo storico dei comandi utilizzando i pulsanti
Freccia-Sù e Freccia-Giù della tastiera: dopo averli individuati basta
premere Invio.
back to top
44.) Posso personalizzare il prompt della shell?
La
configurazione del prompt shell è definita all'interno della variabile
di ambiente PS1, quindi per personalizzarne l'aspetto, è necessario
modificare il contenuto di questa (ricordiamo che è sempre possibile
visualizzare la configurazione corrente eseguendo il comando echo
$PS1). Per cambiare aspetto al prompt è necessario utilizzare alcuni
caratteri particolari, ognuno dei quali assume un valore preciso: \t
rappresenta l'orario attuale nel formato hh:mm:ss (ore, minuti,
secondi); \d è la data attuale; \n l'interruzione di riga; \s il nome
della shell; \w la directory corrente (quella in cui ci troviamo); \W
il percorso che porta alla directory corrente; \u il nome dell'utente;
\h il nome della macchina (hostname); \# il numero del comando attuale;
\! il numero del comando nella cronologia della shell; \$ serve per
inserire il simbolo # per root e $ per gli utenti comuni; \nnn è la
notazione ottale del carattere che si vuole visualizzare; \\ aggiunge
una barra obliqua inversa (backslash) singola; \[ segna l'inizio di una
sequenza di controllo; \] segna la fine di una sequenza di controllo.
Capito il significato dei simboli è possibile passare alla
personalizzazione del prompt. Ad esempio, il comando seguente:
export PS1='\u@\h:\w\$'
fornisce un prompt di questo tipo (quello più comune):
nome_utente@nome_host:~$
Ovviamente, è possibile utilizzare combinazioni diverse dei simboli in modo da ottenere il risultato desiderato.
back to top
45.) Come si scrivono la tilde e le parentesi graffe?
Per
la tilde (carattere ~) bisogna utilizzare la combinazione di tasti Alt
Gr+ì, mentre per le parentesi graffe Alt Gr+7 per quella aperta
(simbolo {) e Alt Gr+9 per quella chiusa (simbolo }). Caratteri
speciali aggiuntivi si possono ottenere con Alt Gr in combinazione con
altri tasti, oppure con Alt Gr+Shift+altri tasti. Ad esempio: Alt
Gr+Shift+c stampa il carattere ©, Alt Gr+Shift+r visualizza il simbolo
®, Alt Gr+Shift+9 serve per scrivere ±, Alt Gr+Shift+o stampa a video Ø
e così via. Inoltre, è possibile modificare la configurazione dei
pulsanti della tastiera utilizzando i comandi xmodmap in ambiente
grafico e loadkeys per la shell, oltre che attraverso gli strumenti
grafici a corredo di KDE e Gnome.
back to top
46.) Come si usa il comando man?
L'utility
man serve per poter visualizzare e consultare le pagine di manuale o
man page, cioè la documentazione a corredo dei programmi che ne spiega
dettagliatamente sintassi e funzionamento (secondo la filosofia
GNU/Linux e Unix in generale, ogni comando dovrebbe essere accompagnato
da questo tipo di documentazione). In pratica, se non si conosce il
funzionamento di un determinato programma, questo vale in particolare
per i comandi di base, il primo posto dove cercare informazioni a
riguardo è proprio questo. Tra l'altro, molte pagine di manuale, prima
disponibili solo in lingua inglese, sono state tradotte in italiano.
Accedere alla documentazione è semplicissimo: basta eseguire man
seguito dal nome del comando. Ad esempio, per mount la riga di comando
è: man mount. Per cercare all'interno di tutta la documentazione solo
le pagine contenenti una stringa particolare, il comando diventa: man
-k parola_da_cercare, nel caso specifico man -k mount. Addirittura, il
comando man può essere utilizzato per convertire le pagine di manuale
in formato PostScript (.ps), bisogna solo utilizzare l'opzione -t e
redirigere l'ouput su un file: man -t mount > file.ps. Oltre a man
sono disponibili i comandi whatis e apropos che servono allo stesso
scopo.
back to top
47.) Posso assegnare a tutti gli utenti il permesso di montare un dispositivo?
Gli
hard disk, le singole partizioni e altri dispositivi di memorizzazione
come lettori CD e DVD possono essere montati e smontati, cioè resi
accessibili, anche all'avvio, tenendo conto delle impostazioni presenti
nel file di configurazione /etc/fstab. È qui, infatti, che si
stabilisce l'associazione tra dispositivo (ad esempio /dev/hda1,
/dev/hdb2, /dev/hdc1, ecc.) e punto di mount all'interno del file
system, cioè la directory dove il contenuto di un hard disk o di una
partizione diventerà disponibile. Inoltre, sempre attraverso /etc/fstab
è possibile stabilisce il tipo di file system utilizzato per la
formattazione del supporto (Ext3, ReiserFS, Xfs, ISO9660...) e i
permessi di accesso: possibilità di montare e smontare il disco, anche
in automatico, accesso in lettura e scrittura e molte altre opzioni. È
chiaro, quindi, che per garantire a tutti gli utenti la possibilità di
montare e smontare un supporto è necessario intervenire su questo file.
In particolare per questo tipo di operazioni bisogna utilizzare le
opzioni user e users. Nel primo caso, si concede a tutti il permesso di
montare il supporto ma non di smontarlo, mentre la seconda direttiva
attiva entrambi i permessi. Supponiamo di voler montare all'avvio la
terza partizione del primo disco, identificata dal file di dispositivo
/dev/hda3, e permettere a tutti gli utenti di montarla e smontarla
successivamente. In questo caso, il file /etc/fstab, con riferimento
alla riga relativa a dev/hda3, va modificato nel modo seguente:
/dev/hda3 /mnt/backup ext3 ro,users,oauto 0 0
In dettaglio, /dev/hda3 indica la partizione, /mnt/backup il punto di
mount, ext3 il tipo di file system utilizzato in questo caso, ro (read
only) l'accesso in lettura, users la possibilità per tutti gli utenti
di montare e smontare la partizione e auto il montaggio automatico
all'avvio. I due zeri alla fine indicano che non si tratta di una
partizione di avvio e di non effettuare il controllo durante il boot.
La presenza di un numero 1 indica che si tratta di una partizione di
avvio e che bisogna eseguire il controllo. In quest'ultimo caso, un 2
al posto dell'1 fa in modo che questo file system venga controllato
solo dopo quello principale. Altre opzioni di mount importanti sono
nouser, che vieta agli utenti la possibilità di montare e smontare i
dispositivi, noauto, per impedire il montaggio al boot. I comandi per
montare e smontare una partizione o un altro dispositivo sono mount e
umount, ma se /etc/fstab è configurato correttamente, è possibile farlo
direttamente dal file manager o da altri programmi. Il loro uso è
comunque molto semplice:
mount -t ext3 /dev/hda3 /mnt/backup
umount /mnt/backup
Il comando mount eseguito senza argomenti mostra tutti i file system
montati in quel momento, elencati anche nel file /etc/mtab.
back to top
48.) A cosa servono le directory /dev e /proc? È possibile cancellarle?
Assolutamente
no! La directory /dev contiene i file, meglio noti come file di
dispositivo, che consentono ai programmi, quindi a noi, di interagire
con l'hardware: in pratica, una vera e propria interfaccia tra il
kernel, le applicazioni e i componenti del PC. La directory /proc è il
punto di mount per il file system virtuale omonimo, al cui interno sono
presenti file creati direttamente dal kernel. Tali file e directory
sono necessari ai programmi che hanno bisogno di accedere alle
informazioni sul sistema.
back to top
49.) Ho sentito parlare di demone? Di cosa si tratta?
Il
termine daemon, italianizzato in demone, è utilizzato per indicare i
processi (spesso si tratta di software server) eseguiti automaticamente
all'avvio del computer (boot). Questi programmi restano attivi in
background durante il normale utilizzo del PC in attesa di svolgere
determinate funzioni a seguito di una richiesta. Ad esempio, sono
demoni smbd (il server Samba), httpd (Apache), mysqld (MySQL) e syslogd
(il sistema di logging). Spesso per indicare i demoni è utilizzato il
termine servizio, proprio per sottolineare la loro caratteristica di
software server.
back to top
50.) Cosa contiene il file /etc/shadow?
Se
presente, il file /etc/shadow indica che la distribuzione utilizza il
sistema delle shadow password: una tecnica utilizzata per proteggere le
password degli utenti. In pratica, tutte le parole chiave cifrate
vengono tolte dal file /etc/passwd (responsabile della gestione degli
utenti e, quindi, dei loro dati di accesso) e sostituite da una x,
dopodiché vengono scritte in /etc/shadow sempre in modo cifrato (ecco
perché shadow, termine che significa oscurare). Oltre alle password,
questo file, nei campi separati dal simbolo : (due punti), contiene il
nome utente e informazioni sulla durata delle parole chiave:scadenza
della password, l'ultima volta in cui è stata modificata, giorni di
avviso prima della scadenza, ecc. Ma perché è necessario questo file?
Poiché il file /etc/passwd fornisce numerose informazioni
indispensabili al funzionamento del sistema, non è possibile limitare
oltre un certo “livello” gli accessi in lettura, cosa che rappresenta
un pericolo per la sicurezza delle password. Al contrario, “isolando”
le parole chiave in un file separato è possibile assegnare a questo
permessi di accesso molto più restrittivi ottenendo maggiore sicurezza.
Inoltre, se il campo password di /etc/passwd contiene una x, significa
che la password è presente in /etc/shadow, se contiene un simbolo *
(asterisco), la password è nulla e l'utente disabilitato.
back to top
51.) Esiste un programma per convertire i pacchetti in altri formati?
Certo
che esiste, si chiama alien ed è scaricabile all'indirizzo
http://kitenet.net/~joey/code/alien. Questo programma consente di
convertire tra loro pacchetti software disponibili nei formati .rpm,
.deb. .tgz (Slackware) e, l'oramai inutilizzato, .slp (Stampede). L'uso
di alien è semplicissimo. Ad esempio per convertire un pacchetto .rpm
in .deb il comando da eseguire è:
alien --to-deb pacchetto.rpm
Mentre per quanto riguarda la conversione da .rpm a .deb, bisogna eseguire quanto segue:
alien --to-rpm pacchetto.deb
Purtroppo, questo non significa che il pacchetto convertito sia
sicuramente installabile. Molto, infatti, dipende dalla configurazione
richiesta dal sistema sul quale si cerca di installarlo: spesso le
distribuzioni coinvolte possono essere alquanto differenti. Pensate, ad
esempio a Ubuntu (.deb) e Fedora (.rpm). Per ulteriori informazioni su
questo particolare software è possibile consultare le relative pagine
di manuale con man alien.
back to top
52.) Ho cancellato un utente. Come faccio ad eliminare tutti i suoi file?
Cancellare
un utente dal sistema, purtroppo, non significa eliminare anche tutti i
file a lui appartenenti. Comandi come userdel nomeutente o deluser
nomeutente, non eliminano proprio tutto. Lo stesso effetto si ottiene
utilizzando applicazioni grafiche come KUser, oppure, ancora,
cancellando manualmente la cartella /home/nomeutente e le voci presenti
nei file /etc/passwd, /etc/shadow e /etc/group. Ma, anche in questo
caso, qualche cosa resta sempre. Fortunatamente esiste un rimedio. Per
prima cosa controlliamo quali sono i file appartenenti all'utente che
abbiamo eliminato e che, quindi, saranno cancellati, utilizando il
comando seguente:
find / -user uid | less
Questo serve per verificare che non si elimino per errore file
importanti per il funzionamento del sistema o di qualche applicazione
in particolare. A questo punto, possiamo cancellarli con
find / -user nomeutente -exec rm {} \;
o, in alternativa
find / -uid `id -u nomeutente` | xargs rm -f
Per scrivere il simbolo “ ` “ presente in quest'ultimo comando, bisogna utilizzare la combinazione di tasti Alt Gr + ' (apice).
back to top
53.) Qual è la differenza tra shell interattiva e non interattiva?
In
tutti i sistemi Unix, GNU/Linux compreso, esistono due tipi di shell:
interattiva e non interattiva. Nel primo caso si tratta di una shell in
cui l'utente interagisce con essa: questo è quello che accade, ad
esempio, quando eseguiamo qualche comando. Al contrario, quella non
interattiva non richiede interventi da parte dell'utente: questo è il
caso, ad esempio, dell'esecuzione di uno script. Ma non finisce qui.
Infatti, la shell interattiva si divide a sua volta in shell di login e
shell normale. La prima è quella che si ottiene quando si effettua il
login, mentre l'altra è quella che, ad esempio, avviamo in un secondo
momento per eseguire qualche programma. Ad esempio, premendo le
combinazioni di tasti da Ctrl+Alt+ F1... Ctrl+Alt+F6 si accede ad
altrettante shell di login, ovviamente, solo dopo essersi autenticati
con nome utente e password.
back to top
54.) Come si gestiscono le variabili d'ambiente?
Le
variabili d'ambiente (environment variable), dette anche variabili di
sistema, sono delle stringhe di testo contenenti indicazioni sulla
configurazione del sistema, alle quali i programmi, ma anche lo stesso
sistema operativo, si appoggiano per svolgere le loro funzioni.
All'interno dell'ambiente Unix, quindi GNU/Linux, sono identificate da
un nome, preceduto dal simbolo $. Un esempio di variabile di ambiente è
$PATH, la quale contiene i percorsi (cioè le directory a partire da
quella radice) dove sono posizionati gli eseguibili presenti nel
sistema. Il sistema operativo contiene diverse variabili d'ambiente
predefinite, ma è sempre possibile modificarle o crearne altre. Per
visualizzare tutte le variabili d'ambiente presenti nel sistema bisogna
utilizzare il comando printenv oppure set. Per ottenere il valore di
una variabile in particolare basta eseguire il comando echo seguito dal
nome della variabile, ad esempio: echo $PATH. Nel caso in cui, invece,
è necessario crearne una nuova, il comando diventa export
NOME_VARIABILE=valore. Ecco un esempio di utilizzo di export: export
HOSTNAME="`cat /etc/hostname`". In questo caso, la variabile d'ambiente
$HOSTNAME sarà uguale al nome della macchina (hostname), valore
ottenuto, nell'esempio, dal comando cat /etc/hostname. Ovviamente, il
valore può essere espresso mediante un comando, come in questo caso
(ricordate però, di racchiuderlo sempre tra due simboli `), da nomi,
percorsi di directory, ecc.
back to top
55.) A cosa serve la directory /etc/skel?
Ogni
volta che si crea un nuovo utente, automaticamente viene creata, tra le
altre cose, la sua directory personale, la quale può contenere cartelle
e file predefiniti. La directory /etc/skel serve proprio a stabilire
questo contenuto “extra” aggiunto di default. In pratica basta
sistemare in questa particolare cartella tutto quello che si vuole
aggiungere alla directory di ogni nuovo utente creato.
back to top
56.) Nella directory /boot è presente il file initrd-x.x.xx.img. A cosa serve?
Il
file initrd, o initial ramdisk (in italiano disco RAM iniziale) è un
particolare tipo di file system, in genere contenuto all'interno di un
file immagine .img, montato dal kernel Linux in RAM come RAM disk (ecco
perché initial ramdisk). Tale file viene fornito al kernel dal
bootloader come sistema minimale per svolgere alcune funzioni
fondamentali prima del caricamento del file system vero e proprio.
Sostanzialmente, il file initrd contiene al suo interno i moduli
necessari al supporto e all'attivazione del file system radice, più gli
script necessari per caricarli. Concluse queste operazioni di base, il
disco RAM iniziale passa il controllo al file system principale.
Ovviamente, è anche possibile fare a meno del file initrd, purché i
moduli necessari al caricamento iniziale del sistema siano stati
compilati direttamente nel kernel. Il vantaggio che ne consegue è
ovvio. La presenza del file initrd permette alle distribuzioni
GNU/Linux di usare un kernel precompilato con tutte le funzionalità
attive come moduli, quindi molto più leggero. È anche possibile creare
un file initrd utilizzando il comando mkinitrd integrato nel pacchetto
initrd-tools. Nelle nuove distribuzioni questi tool sono stati
sostituiti da initramfs e iniramfs-tools. Infine, nelle distribuzioni
Debian GNU/Linux e derivate è presente il comando mkinitramfs-kpkg che
automatizza la creazione di file initrd.
back to top
57.) Come faccio a cambiare le password di accesso al sistema?
Le
nuove distribuzioni GNU/Linux includono di default strumenti grafici
per la gestione degli utenti e delle relative password. Ma il modo più
semplice per modificarle resta sempre il tool a riga di comando passwd.
Ovviamente, ogni utente può cambiare la propria password, mentre solo
root è in grado di modificare oltre alla propria quelle di tutti gli
altri. In particolare, per cambiare la propria parola chiave come
utente comune, basta aprire una shell ed eseguire il comando passwd,
dopodiché è necessario inserire la vecchia password e poi per due volte
quella nuova. Per modificare la password di amministratore, invece,
bisogna aprire la shell, loggarsi come root (su o sudo -s) ed eseguire
il comando passwd. Anche in questo caso è necessario indicare prima la
password attualmente in uso e subito dopo quella nuova per due volte.
Infine, per modificare, da root la password di un qualsiasi utente,
bisogna eseguire sempre passwd ma questa volta seguito dal nome utente:
ad esempio, passwd giovanni.
back to top
58.) Cosa sono e come si creano i collegamenti simbolici?
Un
collegamento simbolico, detto anche symbolic link, spesso abbreviato in
symlink, può essere paragonato alla copia di un file (può trattarsi
anche di una directory o di un altro collegamento simbolico) in una
diversa posizione, con la differenza che invece di copiarne il
contenuto si crea un “semplice” riferimento ad esso che si comporta
allo stesso modo di quello originale. Il comando utilizzato per creare
collegamenti simbolici è ln. Ad esempio, supponiamo di avere un file di
nome test. Eseguendo il comando ln-s test testlink, creiamo il
collegamento simbolico testlink che fa riferimento al file test. D'ora
in poi è possibile fare riferimento al file test riferendoci a
testlink. In questo caso, abbiamo supposto che entrambi i file, sia
l'originale sia il link simbolico, fossero presenti nella stessa
directory, ma è possibile eseguire la stessa operazione anche con
riferimento a cartelle differenti, bisogna solo ricordare di
specificare i percorsi completi quando si esegue il comando ln. Ad
esempio, per creare nella nostra home il collegamento simbolico
testlink che fa riferimento a test presente in /usr/local, il comando
diventa: ln -s /usr/local/test /home/nome_utente/testlink. È facile
verificare se un file è un collegamento simbolico o meno,
indipendentemente dal fatto che spesso la console li visualizza con
colori differenti: basta utilizzare il comando ls -l all'interno di una
directory che ne contiene qualcuno. Infatti, questi ultimi si
distinguono per una lettera “l” posta all'inizio della relativa riga
(per i file è presente un trattino “-”, mentre per le directory una
“d”). Inoltre, alla fine della stessa riga è presente il nome del
collegamento e il file a cui fa riferimento rappresentati nel modo
seguente (sempre in riferimento all'esempio precedente): testlink ->
test nel primo caso, testlink /usr/local/test nel secondo.
back to top
59.) Non riesco ad eseguire applicazioni grafiche da root. Perché?
Anche
se si tratta di una forma di controllo non più utilizzata dalla maggior
parte delle distribuzioni GNU/Linux, può ancora succedere che mentre si
utilizza il PC come utente comune non risulti possibile avviare
applicazioni grafiche da root. Questo comportamento è dovuto al fatto
che sui sistemi GNU/Linux, per motivi di sicurezza, è possibile
abilitare o disabilitare l'accesso al server X (l'ambiente grafico), da
parte di determinati utenti o, addirittura, macchine (host) connesse in
rete. È possibile, però, gestire tali permessi utilizzando il programma
xhost. Ad esempio, eseguendo xhost +, tutte gli utenti e tutte le
macchine sono abilitati ad accedere al server X, quindi ad avviare
applicazioni grafiche. Al contrario, xhost – disabilita tali permessi.
Inoltre, è possibile specificare singolarmente gli utenti e gli host
abilitati o meno eseguendo rispettivamente xhost + nome e xhost – nome,
dove nome può essere un nome utente o quello di una macchina
(hostname).
back to top
60.) Come si attiva la richiesta di conferma prima di cancellare o sovrascrivere un file dalla shell?
Così
come accade per i file manager grafici, anche la shell offre un sistema
di controllo che consente di visualizzare un avviso per chiedere
conferma prima di cancellare o sovrascrivere effettivamente un file o
una directory. I comandi per eseguire questo genere di operazioni sono
rm (rimozione), cp (copia) e mv (spostamento). In genere, eseguendo
questi comandi su un file o su una cartella, questi vengono
immediatamente cancellati o copiati nella nuova posizione, purtroppo
senza prima chiedere conferma. Così facendo, però, spesso si eliminano
o si sovrascrivono, senza volerlo, file o directory importanti. Per
fortuna la soluzione c'è ed è possibile applicarla utilizzando due
tecniche differenti. La prima consiste nel passare l'opzione -i sulla
riga di comando: ad esempio, supponendo di voler cancellare il file
test.txt presente nella directory corrente, il comando diventa rm -i
test.txt. La stessa cosa accade con mv e cp, basta semplicemente
utilizzare l'opzione -i. In alternativa, per evitare di dover scriverla
ogni volta, è possibile creare un alias per ognuno dei tre comandi nel
modo seguente:
alias cp="cp -i"
alias mv="mv -i"
alias rm="rm -i"
Per fare in modo che la modifica sia disponibile per tutti gli utenti
(globale), bisogna aggiungere le tre righe precedenti alla fine del
file /etc/profile, mentre aggiungendole nel file .bash_profile la nuova
configurazione riguarderà solo il nostro utente (si tratta di un file
nascosto, notate il punto prima del nome, presente nella directory home
di ogni utente).
back to top
61.) È possibile ottene l'IP dal nome di dominio e viceversa?
Supponiamo,
ad esempio, di voler conoscere l'indirizzo IP associato al nome di
dominio www.prova.it. Per ottenere questa informazione è sufficiente
eseguire il comando nslookup www.prova.it. Lo stesso risultato si
ottiene con host www.prova.it. Al contrario, è possibile risalire al
nome di dominio conoscendo l'indirizzo IP sostituendo, sempre negli
stessi comandi, l'IP al nome dominio, ad esempio: nslookup 159.82.122.9
oppure host 159.82.122.9.
back to top
62.) Come faccio a cancellare il boot loader da GNU/Linux?
Per
prima cosa, diciamo subito che la procedura è identica sia per Grub che
per LiLo e si limita ad singolo comando da eseguire da root: dd
if=/dev/null of=/dev/hda bs=512 count=1. L'unico inconveniente è che in
questo modo si cancella anche la tabella delle partizioni. Se è nostra
intenzione evitare che ciò accada, è sufficiente modificare il comando
precedente nel modo seguente: dd if=/dev/null of=/dev/hda bs=446
count=1. Nel caso di dischi SCSI o SATA bisogna sostituire /dev/hda con
/dev/sda.
back to top