Differenze tra le versioni di "Linea di comando"

Da GolemWiki.
Jump to navigation Jump to search
Riga 319: Riga 319:
  
 
= Comandi a briglia sciolta =
 
= Comandi a briglia sciolta =
−
 
−
Un ottimo testo di riferimento per usare Linux da linea di comando (shell): [http://www.manualinux.com/italia/manualinux.htm Manualinux] e poi una serie di utili combinazioni di tasti presa da [http://www.wowarea.com/italiano/linux/shell.htm wowarea].
 
−
 
−
cd
 
−
cd (da solo) torna nella homedir (~ o $HOME)
 
−
 
−
cd ..
 
−
porta alla directory precedente (da cui dipende)
 
−
 
−
cd /
 
−
torna alla radice da qualsiasi punto ci si trovi
 
−
 
−
ls
 
−
visualizza il contenuto di una directory orizzontalmente
 
−
 
−
ls | more
 
−
visualizza il contenuto x pagina e verticalmente (tramite enter prosegue con una singola linea x volta) (tramite space prosegue x pagina)
 
−
 
−
ls -l
 
−
l'opzione -l visualizza molti dettagli
 
−
 
−
ls -la
 
−
l'opzione -a visualizza le directory precedute da un punto (questo e' il comando consigliato)
 
−
 
−
cp -av
 
−
copia intere directory es. partenza (/usr) destinazione (/mnt/dove_vuoi_tu)
 
−
 
−
cp -r
 
−
per copiare directory
 
−
 
−
mkdir
 
−
per creare una directory
 
−
 
−
rmdir
 
−
per rimuovere directory vuote
 
−
 
−
rm -r
 
−
elimina le dir/sottodir e tutto in esse contenuto
 
−
 
−
rm -r -f
 
−
elimina le dir/sottodir e tutto in esse contenuto senza chiedere conferma
 
−
 
−
pwd
 
−
per controllare in quale directory ci si trova
 
−
 
−
tree nomedir
 
−
visualizza le directory dipendenti da quella indicata
 
−
 
−
reset
 
−
se xterm non risponde più ai comandi, il comando reset lo sbloccherà
 
−
 
−
cp
 
−
per copiare file
 
−
 
−
rm
 
−
per cancellare i file
 
−
 
−
mv
 
−
per spostare/rinominare file
 
−
 
−
mv nome nomenuovo
 
−
rinomina il file (es. mv cri.txt cro.txt)
 
−
 
−
mv nomefile /nomedir
 
−
sposta il file nella dir indicata (es. mv cri.txt /usr)
 
−
 
−
cat nomefile
 
−
mostra il contenuto di un file
 
−
 
−
touch nomefile
 
−
per creare un file vuoto all'istante
 
−
 
−
wc
 
−
per vedere le statistiche su un file di testo.
 
−
 
−
split
 
−
per dividere un file in più parti.
 
−
 
−
diff
 
−
per trovare la differenza di testo all'interno di 2 files (es. diff 1.txt 2.txt)
 
−
 
−
!!
 
−
riesegue l'ultimo comando appena eseguito
 
−
 
−
!n
 
−
riesegue l'ennesimo comando presente nella storia, dove 'n' e' il numero del comando da rieseguire
 
−
 
−
!stringa
 
−
riesegue l'ultimo comando che inizia con i caratteri specificati in 'stringa'
 
−
 
−
!stringa:p
 
−
visualizza l'ultimo comando che inizia con i caratteri specificati in 'stringa'
 
−
 
−
!?comando?
 
−
ricerca il comando specificato tra punti interrogativi
 
−
 
−
fc 4
 
−
permette di modificare in comando numero 4 con l'editor predefinito (solitamente vi)
 
−
 
−
fc -e 'nome' 4
 
−
permette di modificare in comando numero 4 con l'editor 'nome' specificato
 
−
 
−
^comando1^comando2
 
−
riesegue l'ultimo comando eseguito che contiene la parola 'comando1' sostituendola con 'comando2'.
 
−
 
−
history
 
−
visualizza l'elenco di tutti i comandi eseguiti
 
−
 
−
CTRL-U
 
−
cancella tutta la riga dalla posizione del cursore all'inizio della riga
 
−
 
−
CTRL-K
 
−
cancella tutta la riga dalla posizione del cursore alla fine della riga
 
−
 
−
CTRL-W
 
−
cancella una parola dalla posizione del cursore all'inizio della riga
 
−
 
−
ALT-D
 
−
cancella una parola dalla posizione del cursore alla fine della riga
 
−
 
−
freccia sinistra
 
−
sposta il cursore di un carattere a sinistra
 
−
 
−
freccia destra
 
−
sposta il cursore di un carattere a destra
 
−
 
−
freccia su
 
−
scorre la storia dei comandi a ritroso
 
−
 
−
freccia giu'
 
−
scorre la storia dei comandi in avanti
 
−
 
−
tasto home
 
−
sposta il cursore all'inizio della riga
 
−
 
−
CTRL-A
 
−
sposta il cursore all'inizio della riga
 
−
 
−
tasto fine
 
−
sposta il cursore alla fine della riga
 
−
 
−
CTRL-E
 
−
sposta il cursore alla fine della riga
 
−
 
−
ALT-F
 
−
sposta il cursore alla fine della parola successiva (F sta per forward, successivo)
 
−
 
−
CTRL-B
 
−
sposta il cursore all'inizio della parola precedente (B sta per backward, precedente)
 
−
 
−
CTRL-T
 
−
inverte gli ultimi due caratteri a sinistra del cursore, cioe' ab diventa ba (T sta per transpose)
 
−
 
−
ALT-T
 
−
inverte le ultime due parole a sinistra del cursore, cioe' cp pippo pluto diventa cp pluto pippo
 
−
 
−
ALT-U
 
−
trasforma in maiuscolo la parola su cui si trova il cursore (U sta per uppercase, cioe' maiuscolo)
 
−
 
−
ALT-L
 
−
trasforma in minuscolo la parola su cui si trova il cursore (L sta per lowercase, cioe' minuscolo)
 
−
 
−
tasto TAB
 
−
espande il nome di un file o di un comando
 
−
 
−
 
−
 
−
 
−
Altri consigli presi da [http://www.manualinux.com/italia/manualinux.htm Manualinux]
 
−
 
−
# COMANDI COMUNI PER MUOVERE I PRIMI PASSI SU LINUX
 
−
 
−
*# I comandi dati possono essere riscritti, sulla riga di comando, semplicemente premendo i tasti di direzione.
 
−
 
−
*# Tramite il comando "history" e' possibile vedere tutti i comandi dati
 
−
 
−
*# se dopo gli viene inserito un numero, visualizza gli ultimi n. comandi dati
 
−
 
−
3 - Spesso lanciando dei comandi, si generano file di testo. Per uscirne, bisogna premere "q"
 
−
oppure, qualora si voglia fermarne il processo perche' l'esecuzione del comando genera caratteri incomprensibili o non vengono accettati altri input da tastiera, bisogna premere "Ctrl+c"
 
−
 
−
4 - Spesso, i comandi lanciati, forniscono una serie di dati che superano la visualizzazione di una sola schermata, mostrando cosi', solo una parte di essi. Per ovviare a questo fenomeno, si usa una opzione  "|more" o "| less" aggiunta alla fine del comando (ls -la | more) oppure dopo il nome del file (cat nomefile | more)
 
−
 
−
5 - Inoltre, dopo avere utilizzato alcune procedure sopracitate, bisogna sapere che premendo il tasto "Invio", continua la visualizzazione per riga e premendo il tasto "space" continua per pagina.
 
−
 
−
 
−
shutdown -r now = riavvio del sistema
 
−
 
−
reboot = come sopra
 
−
 
−
shutdown -h now = chiusura del sistema
 
−
 
−
halt = come sopra
 
−
 
−
halt -p = fa shutdown e spegne il sistema
 
−
 
−
exit = chiude la consolle
 
−
 
−
startx = avvia l'esecuzione del server grafico
 
−
 
−
ctrl+alt+backspace = riavvia la modalita' grafica riportando al login iniziale
 
−
 
−
ctrl+alt+F1 = apre una consolle non emulata
 
−
 
−
ctrl+alt+F7 = passa semplicemente sullo screen 0 se c'e' un server X attivo. Non chiude la console da cui si proviene.
 
−
 
−
 
−
PER HELP E INFORMAZIONI
 
−
 
−
- comandi
 
−
 
−
nomecomando --help = mostra la sintassi del comando (un aiuto generico)
 
−
 
−
man nomecomando = mostra la spiegazione in dettagli
 
−
 
−
(enter ;prosegue per linea - space ;per pagina -
 
−
 
−
q ;per uscire e tornare alla riga di comando)
 
−
 
−
info nomecomando = idem
 
−
 
−
 
−
 
−
- file installati
 
−
 
−
makewhatis = crea un database con le informazioni che riguardano i file installati (senza visualizzare nulla), poi con
 
−
il comando
 
−
 
−
" apropos tipofile " viene restituito un elenco di quello che riguarda il tipo di file (es. apropos edit).
 
−
 
−
 
−
 
−
- kernel
 
−
uname -a = per sapere la versione del kernel
 
−
 
−
- sistema e kernel
 
−
 
−
lsmod = visualizza i moduli caricati nel kernel
 
−
 
−
du -h = quantita' di spazio usata nella directory e sottodirectory in kb e mb.
 
−
 
−
top = mostra i processi in uso dalla cpu (per interrompre Ctrl+c).
 
−
 
−
ps aux = Visualizza i programmi e demoni in corso con i relativi pid
 
−
 
−
pidof nome programma/demone  (per es. pidof kdm)
 
−
 
−
df = mostra le partizioni montate
 
−
 
−
free -mt = mostra la memoria ram e swap occupata, libera e totali
 
−
 
−
free (-t ;x i totali -m ;x i megabytes)
 
−
 
−
 
−
 
−
 
−
 
−
uname = mostra le informazioni sul sistema.
 
−
 
−
uname -m = tipo di macchina
 
−
 
−
uname -n = nome della macchina sulla rete
 
−
 
−
uname -r = release del sistema operativo (versione kernel)
 
−
 
−
uname -s = nome del sistema operativo
 
−
 
−
uname -v = versione del sistema operativo
 
−
 
−
uname -a = riepilogo generale delle opzioni sopra descritte
 
−
 
−
 
−
 
−
 
−
 
−
 
−
 
−
 
−
ALTRI COMANDI PER LA VISUALIZZAZIONE DI FILE E PRECISAZIONI
 
−
 
−
Oltre al comando "cat", ci sono altri comandi, spesso piu' utili, per visualizzare il contenuto di un file.
 
−
 
−
more nomefile = per i file di grandi dimensioni
 
−
 
−
 
−
 
−
oppure
 
−
 
−
less nomefile
 
−
 
−
 
−
 
−
 
−
 
−
more /dev/hda = verra' visalizzata la mappa delle partizioni
 
−
 
−
less /dev/hda = viene visualizzato di aggiungere l'opzione -f
 
−
 
−
less -f /dev/hda = questo e' il caso in cui non si capisce nulla
 
−
 
−
(premere "q")
 
−
 
−
cat /dev/hda = questo e' il caso in cui bisogna fermare il processo (Ctrl+c)
 
−
 
−
 
−
 
−
 
−
 
−
IL CARATTERE JOLLY "*"
 
−
 
−
* = significa tutto
 
−
 
−
Se introdotto a fianco di una parola, fa riferimento alla parola e quelle che hanno caratteri aggiunti
 
−
 
−
es. pippo* = pippo pippo1 pippociao pippopluto pippo..............
 
−
 
−
 
−
 
−
Bisogna stare attenti quando lo si usa per eliminare file o directory, perche', un comando sbagliato come:
 
−
 
−
"rm pippo * "; elimina il file pippo e anche tutti i file dentro quella directory. Meglio controllare con:
 
−
 
−
ls -a pippo* prima di cancellare qualcosa; in questa maniera, si potra' controllare cosa verra' eliminato.
 
−
 
−
 
−
 
−
 
−
 
−
IL COMANDO CAT
 
−
 
−
(precisazioni)
 
−
 
−
 
−
 
−
Può essere usato per creare
 
−
 
−
file di testo :
 
−
 
−
cat > nomefile
 
−
 
−
digitare il testo
 
−
 
−
ctrl+d = per chiudere il file
 
−
 
−
cat nomefile = per guardare il contenuto del file
 
−
 
−
 
−
 
−
Può essere usato per riassemblare files divisi o unire vari files :
 
−
 
−
es.:
 
−
 
−
cat file1.txt file2.txt file3.txt > ris.txt
 
−
 
−
 
−
 
−
 
−
 
−
IL COMANDO CP
 
−
 
−
(precisazioni)
 
−
 
−
Può essere usato anche per trasferire un file esistente in un file che viene creato all'istante:
 
−
 
−
cp fileesistente file creatoadesso
 
−
 
−
 
−
 
−
La stessa cosa avviene per le directory
 
−
 
−
cp -r diresistente dircreataadesso
 
−
 
−
 
−
 
−
I COLLEGAMENTI
 
−
 
−
ln nome nomelink = per creare collegamenti fisici
 
−
 
−
ln -s nome nomelink = per creare collegamenti simbolici
 
−
 
−
 
−
 
−
==COMANDI VARI==
 
−
 
−
pushd (Dice in che directory eravate prima)
 
−
 
−
popd (vi porta nella directory dove eravate prima)
 
−
 
−
cd - (come sopra)
 
−
 
−
 
−
 
−
==OCCUPAZIONE DEL DISCO==
 
−
 
−
du -h (per visualizzare la quantita' in kilobyte e megabyte)
 
−
 
−
 
−
 
−
==I PROCESSI==
 
−
 
−
& (da mettere a fine riga di comando) per eseguire un comando in background ossia dietro le quinte e darà questo
 
−
risultato:
 
−
 
−
[3] 32566  Dove 3 e' il numero del processo mentre 32566 e' l'ID del processo.
 
−
 
−
 
−
 
−
&& (da inserire tra 2 comandi, il secondo comando si avvierà solo quando il primo sarà terminato, ad esempio dir && top).
 
−
 
−
 
−
 
−
bg  (avvia il comando in background, la sintassi è:  bg numero_id_del_comando).
 
−
 
−
fg  (esegue un processo con priorità alta, la sintassi è:  fg numero_id_del_comando).
 
−
 
−
 
−
 
−
nohup (esegue un comando anche se si è usciti dalla sessione o è stata persa la connessione, la sintassi è: nohup dir
 
−
&), alla fine creerà un file chiamato nohup.out con all'interno il risultato del comando.
 
−
 
−
 
−
 
−
ps -ax = per visualizzare i processi in memoria.
 
−
 
−
kill = per uccidere un processo (con kill -l si visualizzano i segnali da mandare a morte.
 
−
 
−
kill -9 (n°processo) = forza la morte del processo.
 
−
 
−
killall = uccide tutti i processi).
 
−
 
−
 
−
 
−
==RAM==
 
−
 
−
Per poter visualizzare la ram scrivere:
 
−
 
−
free
 
−
 
−
Per avere informazioni sulla ram utilizzata scrivere:
 
−
 
−
top
 
−
 
−
Controllare la parte in alto a sinistra dello schermo.
 
−
 
−
 
−
 
−
==MANIPOLAZIONE DEI DIRITTI DI ACCESSO==
 
−
 
−
Se un file o una directory è di mia proprietà allora posso impostare a mio piacimento i suoi attributi (= diritti di
 
−
accesso). Il comando per fare ciò è chmod (change modes). La sua sintassi è la seguente:
 
−
 
−
chmod chi azione cosa nomefile
 
−
 
−
dove:
 
−
 
−
il parametro chi può essere u (user) g (groups) o (others) a (all)
 
−
 
−
il parametro azione può essere + (aggiungere) - (togliere)
 
−
 
−
il parametro cosa può essere r (read) w (write) x (execute)
 
−
 
−
il campo nomefile è il file o la directory oggetto del cambiamento.
 
−
 
−
(*) all indica contemporaneamente i tre tipi di utente.
 
−
 
−
Vediamo ora degli esempi pratici.Supponiamo di voler aggiungere accesso, lettura e scrittura a tutti nella directory.
 
−
 
−
drwx------ verdi users 512 pippo
 
−
 
−
Il modo più semplice è:
 
−
 
−
chmod a+rwx pippo
 
−
 
−
ovvero a parole "aggiungi (+) a tutti (a) lettura (r) scrittura (w) e accesso (x) al file pippo " (che poi è una
 
−
directory perché c'è d).
 
−
 
−
Il risultato è:
 
−
 
−
drwxrwxrwx verdi users 512 pippo
 
−
 
−
Altro esempio. Supponiamo di voler rendere il file
 
−
 
−
-r-------- verdi users 4096 paperino
 
−
 
−
leggibile da tutti e scrivibile solo dal proprietario :
 
−
 
−
chmod a+r paperino
 
−
 
−
chmod u+w paperino
 
−
 
−
E il risultato è:
 
−
 
−
-rw-r--r-- verdi users 4096 paperino
 
−
 
−
Altro esempio. Supponiamo di avere il file
 
−
 
−
-rw-rw-rw- rossi superuser 1234 pluto
 
−
 
−
Se eseguiamo:
 
−
 
−
chmod o-rw pluto
 
−
 
−
invece di ottenere:
 
−
 
−
-rw-rw---- rossi superuser 1234 pluto
 
−
 
−
si ottiene il messaggio:
 
−
 
−
Permission denied
 
−
 
−
Questo perché io (verdi) sto tentando di modificare gli attributi di un file che non mi appartiene (è di rossi)
 
−
 
−
 
−
==MANIPOLAZIONE DEI DIRITTI DI ACCESSO - METODO ALTERNATIVO==
 
−
 
−
Un metodo più sbrigativo per assegnare gli attributi ad un file si basa su questo ragionamento. Supponiamo di attribuire
 
−
dei valori
 
−
 
−
numerici ai permessi possibili:
 
−
 
−
Lettura = 4 (r)
 
−
 
−
Scrittura = 2 (w)
 
−
 
−
Esecuzione = 1 (x)
 
−
 
−
 
−
 
−
(Ricordatevi che per una directory x significa accesso). In tale maniera, eseguendo delle semplicissime somme:
 
−
 
−
0 = Nessun permesso -
 
−
 
−
1 = Esecuzione x
 
−
 
−
2 = Scrittura w
 
−
 
−
3 = Scrittura + Esecuzione wx
 
−
 
−
4 = Lettura r
 
−
 
−
5 = Lettura + Esecuzione rx
 
−
 
−
6 = Lettura + Scrittura rw
 
−
 
−
7 = Lettura + Scrittura + Esecuzione rwx
 
−
 
−
 
−
 
−
Se affianchiamo i tre codici di accesso user / groups / others
 
−
 
−
otteniamo dei numeri di tre cifre, ognuna delle quali indica i permessi di ogni tipo di utente in modo sintetico. Per
 
−
esempio:
 
−
 
−
rwxrwxrwx 777
 
−
 
−
rw-rw-rw- 666
 
−
 
−
r--r--r-- 444
 
−
 
−
rwx------ 700
 
−
 
−
rw-r--r-- 644
 
−
 
−
 
−
 
−
e così via.... Perciò è possibile inglobare in un solo colpo tutti gli accessi di ogni singolo tipo di utente. Esiste
 
−
allora la sintassi
 
−
 
−
alternativa di chmod:
 
−
 
−
chmod codice nomefile
 
−
 
−
 
−
 
−
Esempio. Il secondo esempio sulla prima sintassi di chmod voleva
 
−
 
−
trasformare
 
−
 
−
-r-------- verdi users 4096 paperino
 
−
 
−
 
−
 
−
nel file:
 
−
 
−
-rw-r--r-- verdi users 4096 paperino
 
−
 
−
 
−
 
−
e necessitava di 2 chmod consecutivi, il primo per assegnare a+r e il secondo per assegnare u+w. Con la sintassi
 
−
alternativa di chmod è
 
−
 
−
possibile fare il tutto in un solo colpo, usando:
 
−
 
−
 
−
 
−
chmod a+r,u+w paperino -#-#-#-(attenzione alla virgola)-#-#-#-
 
−
 
−
 
−
 
−
oppure nella maniera più semplice:
 
−
 
−
 
−
 
−
chmod 644 paperino
 
−
 
−
 
−
 
−
 
−
 
−
==CAMBIARE LA PROPRIETA' DI UN FILE==
 
−
 
−
Se sono proprietario di un file e volessi "regalarlo" a qualcuno, cioè fare in modo che questo qualcuno ne divenga il
 
−
nuovo proprietario, esiste il comando chown (change owner). La sua sintassi è:
 
−
 
−
chown nuovoproprietario.nuovogruppo file
 
−
 
−
Vediamo gli esempi. Supponiamo che rossi, dopo aver depositato nella mia directory il file:
 
−
 
−
-rw-rw-rw- rossi superuser 1234 pluto
 
−
 
−
voglia fare in modo che esso divenga di mia proprietà. Dovrà allora eseguire:
 
−
 
−
chown verdi.users pluto
 
−
 
−
Il risultato sarà:
 
−
 
−
-rw-rw-rw- verdi users 1234 pluto
 
−
 
−
 
−
 
−
==CREARE ED AGGIUNGERE GRUPPI ED UTENTI==
 
−
 
−
Fare tutto come utente root.
 
−
 
−
Ad es. creare un gruppo chiamato supporto:
 
−
 
−
groupadd supporto
 
−
 
−
 
−
 
−
Ad es. creare un utente ed inserirlo nel gruppo supporto
 
−
 
−
useradd utente -c (commento) -d (home directory) -g (gruppo)
 
−
 
−
useradd cristian -c ordinato -d /reparto -g supporto
 
−
 
−
 
−
 
−
Adesso bisogna inserire una password:
 
−
 
−
passwd cristian
 
−
 
−
 
−
 
−
E' possibile usare anche:
 
−
 
−
adduser (completo di tutto, pure di inserimento password).
 
−
 
−
Verranno proposti i parametri di default , sono possibili delle modifiche.
 
−
 
−
 
−
 
−
Modificare il gruppo di appartenenza di un utente:
 
−
 
−
usermod -gnome_gruppo cristian
 
−
 
−
 
−
 
−
Inserire l'utente in altri gruppi:
 
−
 
−
usermode -Ggruppo1 gruppo2 gruppo3 cristian
 
−
 
−
 
−
 
−
Per eliminare utente e gruppo scrivere:
 
−
 
−
groupdel supporto
 
−
 
−
userdel cristian  (usando userdel -r verranno cancellati tutti i files e la directory dell'utente)
 
−
 
−
 
−
 
−
 
−
 
−
==CONTROLLARE L'EFFICIENZA DEI DISCHI IDE==
 
−
 
−
Un grazie a Riccardo Pelizzi (r.pelizzi@virgilio.it)
 
−
 
−
Controllare l'efficienza dei propri dischi ide.
 
−
 
−
nota: queste opzioni possono danneggiare i vostri dischi ide
 
−
 
−
Se il dispositivo ide (che può essere sia un hard disk sia un cd-rom sia un dvd) e la vostra scheda madre sono recenti,
 
−
il vostro disco supporta la modalità di trasferimento a 32-bit, la modalità ultra-DMA e l'irq unmasking. Il kernel è
 
−
molto conservativo sotto questo punto di vista (poichè attivando queste opzioni su schede o su dispositivi che non le
 
−
supportano si rischia di rovinarli) e se non ci ha pensato la vostra distro a configurare a puntino i vostri dischi, lo
 
−
faremo noi con il comando hdparm:
 
−
 
−
-Capire a che dispositivo corrisponde ciascun disco usiamo il comando:
 
−
 
−
hdparm -i /dev/hdX
 
−
 
−
dove X sta per il dispositivo che dovete controllare. Di solito sono a, b, c, d.
 
−
 
−
Una delle prime voci di output sarà il modello del vostro dispositivo, così potrete capire che dispositivo IDE state
 
−
interrogando.
 
−
 
−
-Controlliamo che il supporto per il nostro chipset sia attivo. Non sarà possibile interagire con i dischi senza avere
 
−
il supporto per il proprio chipset
 
−
 
−
integrato nel kernel o caricato come modulo. Per esempio avendo un chipset Via ed avendo compilato il driver come
 
−
modulo, prima di ogni altra operazione bisogna scrivere "modprobe via82cxxx".
 
−
 
−
-Controlliamo lo stato dei nostri dischi. Il comando:
 
−
 
−
hdparm /dev/hdX
 
−
 
−
darà un output simile a questo:
 
−
 
−
multcount = 16 (on)
 
−
 
−
IO_support = 1 (32-bit)
 
−
 
−
unmaskirq = 1 (on)
 
−
 
−
using_dma = 1 (on)
 
−
 
−
keepsettings = 0 (off)
 
−
 
−
readonly = 0 (off)
 
−
 
−
readahead = 8 (on)
 
−
 
−
geometry = 9964/255/63, sectors = 160086528, start = 0
 
−
 
−
Questo è l'output di un disco che dovrebbe essere già configurato a puntino. L'unica opzione importante ma non visibile
 
−
da questo menù è la modalità udma. Con il comando precedente potete vedere se la modalità dma è attivata, ma non che
 
−
modalità è attivata.
 
−
 
−
Ma a questo penseremo alla fine.
 
−
 
−
-Configuriamo il nostro dispositivo
 
−
 
−
Cominciamo dando il comando:
 
−
 
−
hdparm -t /dev/hdX
 
−
 
−
e segnatevi il vostro transfer rate. Se IO_Support è uguale a 0, attiviamolo con il comando:
 
−
 
−
hdparm -c1 /dev/hdX.
 
−
 
−
Alcune combinazioni di schede madri / dispositivi richiedono il parametro c3. Questa opzione dovrebbe da sola
 
−
raddoppiare il transfer rate del vostro dispositivo. Unmaskirq serve per mantenere il sistema operativo "responsive"
 
−
(come lo traduco? Scattante? Pronto? Sono orribili...)
 
−
 
−
mentre si legge dal dispositivo, utile soprattutto per cd/dvd. Si attiva con:
 
−
 
−
hdparm -u1 /dev/hdX
 
−
 
−
E ora passiamo alla parte più interessante: la modalità dma. Date il comando:
 
−
 
−
hdparm -t /dev/hdX
 
−
 
−
dopo ogni operazione.
 
−
 
−
Ogni operazione dovrebbe aumentare il vostro transfer rate. Se così non è, dovrete tornare all'opzione precedente,
 
−
perchè la corrente non è supportata. Cominciamo con:
 
−
 
−
hdparm -d1 /dev/hdX
 
−
 
−
Questa opzione non porta necessariamente ad un aumento di prestazioni, se non è stata attivata una modalità dma valida:
 
−
andiamo a settarla.
 
−
 
−
Questa è la tabella dei parametri da fornire ad hdparm (rubata ai gentili signori della intel):
 
−
 
−
(ATA/33) -X66
 
−
 
−
(ATA/66) -X68
 
−
 
−
(ATA/100) -X69
 
−
 
−
Per esempio per attivare la modalità ATA/66, date il comando:
 
−
 
−
hdparm -X68 /dev/hdX.
 
−
 
−
C'è un ultima opzione da settare, un poco più pericolosa delle altre: multicount. Date il comando:
 
−
 
−
hdparm -i /dev/hdX
 
−
 
−
e leggete la voce max_multicount. Sarà il valore da settare come:
 
−
 
−
hdparm -mY /dev/hdX
 
−
 
−
Ovviamente questa opzione non è settabile per i cd/dvd che hanno una sola testina, il laser. A questo punto dovreste
 
−
avere un transfer rate di almeno 40MB al secondo con un disco ATA/66. Confrontatelo con quello ottenuto prima di ogni
 
−
operazione. Godete o rimanete impassibili a seconda del risultato :-)
 
−
 
−
NOTA: Queste opzioni non sono permanenti, per cui dovrete mettere tutti i vostri bei comandi in uno script e eseguirlo
 
−
all'avvio mettendo il nome del file in fondo a:
 
−
 
−
/etc/rc.d/rc.local
 
−
 
−
 
−
 
−
 
−
 
−
==HARDWARE INSTALLATO==
 
−
 
−
Dare i seguenti comandi come utente root:
 
−
 
−
lspci
 
−
 
−
dmesg
 
−
 
−
cat /proc/cpuinfo
 
−
 
−
 
−
 
−
 
−
==RICERCA FILE==
 
−
 
−
- find (directory-file) es. find / -name cri.txt    (/ cerca in tutto il file system, -name seguito dal nome del file)
 
−
 
−
- find /root -size 990k ( trova un file di dimensione 990k nella directory /root)
 
−
 
−
- locate file (es. locate cri.txt) maniera velocissima di trovare un file (dare prima il comando updatedb e poi il
 
−
comando locate).
 
−
 
−
- which cri.txt in varie directory predeterminate ( which cri.txt /usr /tmp/root)
 
−
 
−
- grep cerca una parola all'interno di un documento  (es. grep "casa" *.txt )
 
−
 
−
 
−
 
−
 
−
 
−
==ARCHIVIAZIONE E COMPRESSIONE FILES==
 
−
 
−
 
−
 
−
ESTENSIONE    COMPRIMERE                                          DECOMPRIMERE
 
−
 
−
 
−
 
−
.Z                        compress cri.txt                                      uncompress cri.Z
 
−
 
−
.zip                      zip cri.txt cri.zip                                      unzip cri.zip
 
−
 
−
.gz                      gzip cri.txt                                                gunzip cri.gz
 
−
 
−
.bzip2                  bzip2 cri.txt                                              bunzip2 -d cri.bz2
 
−
 
−
.tar.gz                tar zcvf cri.tar.gz</dir/files>                    tar zxvf cri.tar.gz
 
−
 
−
.lzh                      lha a cri.lzh</dir/files>                            lha x cri.lzh
 
−
 
−
.rar                    rar a cri.rar</dir/files>                            unrar x cri.rar
 
−
 
−
.zoo                    zoo -add cri.zoo</dir/files>                      zoo -extract cri.zoo
 
−
 
−
 
−
 
−
==MONTARE UN CDROM==
 
−
 
−
Per montare un cdroom il comando è:
 
−
 
−
mount -t iso9660 /dev/hdc /mnt/cdrom (nome dir che devi crearecon mkdir)
 
−
 
−
Controlla che il tuo cdrom sia hdc o hdd o scd0 o scd1 (se SCSI) e ricordati di creare una directory di nome cdrom.
 
−
 
−
 
−
==MONTARE UNA PARTIZIONE LINUX==
 
−
 
−
Per montare una partizione linux il comando e':
 
−
 
−
mount /dev/sda1 /mnt/linux (nome dir che devi creare con mkdir)
 
−
 
−
mount -w -n -o remount /      montare il file system in scrittura
 
−
 
−
mount -r -n -o remount /      montare il file system in lettura
 
−
 
−
[[Category: Howto]]
 

Versione delle 13:41, 11 ott 2014

Introduzione

Una shell è un software provvisto di un'interfaccia da riga di comando attraversi il quale digitando un comando si avvia l'esecuzione di un programma.

Sui sistemi Microsoft (DOS e Windows) è chiamata prompt dei comandi.

La maggior parte delle distribuzioni Linux utilizza la Bourne Again Shell (bash), una versione avanzata della vecchia Bourne shell (sh).

Altre shell:

  • Almquist shell (ash, sh, dash): veloce e minimale, shell di default di Android, è usata su Debian e derivate per eseguire gli script di avvio.
  • TENEX C Shell (tcsh): shell predefinita di FreeBSD, compatibile con la vecchia C shell (csh).
  • Korn shell (ksh): shell predefinita di NetBSD ed OpenBSD.
  • Z shell (zsh): compatibile con bash, incorpora varie funzionalità della tcsh e ksh

Nota: su Linux tutto è un file: cartelle, file, partizioni, dischi, periferiche, interfacce, sono trattati allo stesso modo. Una cartella si distingue da un file perché contiene al suo interno due elementi: «punto» e «punto punto».

.

collegamento ricorsivo a se stessa

..

collegamento alla cartella sovrastante

Comandi principali

man

Anteposto ad un comando ne mostra la guida


Gestione di file e cartelle

cd ..

Permette di tornare alla cartella di livello superiore

ls

Mostra la lista di elementi contenuti in una directory.

ls -a

Mostra la lista di tutti gli elementi di una directory inclusi quelli nascosti.

ls -l

Mostra gli elementi contenuti in una directory sotto forma di lista, descrivendone il tipo (file, cartella o link), i diritti, il proprietario, il gruppo e la data di modifica.

ls -h

Mostra la lista di tutti gli elementi di una directory indicando la dimensione dei file in modo “human readable”, ovvero espressa in Kbyte o Mbyte anziché in byte.

mkdir nome_cartella

Crea una directory

ls -alh

Combina i tre comandi precedenti.

cp file_o_directory destinazione

Copia file o cartelle. Con l'opzione -R (ricorsività) il comando cp copia anche i file nelle sottocartelle, fino al livello più basso.

mv file_o_directory destinazione

Permette di spostare e rinominare i file. Come per il comando cp, l'opzione -R, ne applica una ricorsività.

rm file → cancella il file.
rm -r cartella

Applica il comando cancella ricorsivamente all'interno delle sottocartelle cancellandone il contenuto.

rm -f 

Cancella forzatamente il file ma solo se si hanno i permessi giusti sul file in questione. Non chiede la conferma prima di eliminare!

rm -rf cartella

Cancella una cartella e tutto il suo contenuto senza chiedere conferma per ogni file.

ln -s file destinazione

Crea un link statico al file specificato.

w

indica gli utenti che in quel momento stanno lavorando sulla macchina, il tipo di console TTY (tele type terminal) da cui si connettono, l'ora di login e la macchina da cui hanno effettuato la connessione.

pwd

Print Working Directory mostra il percorso (path) della cartella in cui ci troviamo.


Spengimento e Riavvio

systemctl poweroff = Spenge il PC

reboot = Riavvia il PC


Sistema e kernel

du -h = quantità di spazio usata nella directory e sottodirectory in kb e mb.

top = mostra la percentuale di CPU utilizzata dai vari processi.

ps aux = Visualizza i programmi e demoni in corso con i relativi pid

df -h = mostra le partizioni montate

free -m = mostra la memoria ram e swap occupata, libera e totale

uname -a = indica la versione del kernel

lsmod = visualizza i moduli (driver) caricati nel kernel


Altro

history 

Visualizza l'elenco degli ultimi comandi eseguiti

cat nomefile

Mostra il contenuto di un file

less nomefile

Simile a cat, ma permette di scorrere il file avanti ed in dietro. Utile per file lunghi.


Il carattere JOLLY *

  • = significa tutto

Introdotto a fianco di una parola, fa riferimento alla parola e quelle che hanno caratteri aggiunti

es. pippo* = pippo pippo1 pippociao pippopluto pippo..............

Gestione dell'output

| → ingabbia l'output del comando che lo precede e lo da in input al comando successivo.

→ esegue il comando che lo prece e poi passa automaticamente al successivo indipendentemente dall'esito del comando eseguito in precedenza.

& → esegue il comando che lo precede e poi passa al successivo solo se il precedente è andato a buon fine.

> → reindirizza l'output a video del comando che lo precede in un altro file, sovrascrivendo quello che c'era prima nel file destinazione. Può essere usato per la copia.

>> → è analogo al comando > ma accoda l'input alla fine del file destinazione senza cancellarne il contenuto preesistente.


Struttura del filesystem

/bin: contiene i programmi che sono essenziali all'avviamento e all'uso della macchina. Es. bash, mv, cp...

/boot: contiene i file di configurazione del bootloader, necessari all'avviamento della macchina. Es. I file di configurazione del Grub.

/dev: tutti i file contenuti in questa directory sono dispositivi che fanno parte del sistema o che vengono emulati. Es. I dischi hda e sda

/etc: contiene principalmente i file di configurazione dei programmi e del sistema di base.

/home: non è strettamente necessaria. Contiene le directory personali dei singoli utenti.

/lib: contiene le libreria che sono usate dai programmi che stanno in /bin e /sbin, nonchè i moduli del kernel.

/media: esiste da poco, da quando sono entrati in uso i demoni “udev” e “hal” che montano automaticamente le periferiche nella cartella media a caldo quando vengono inserite. Es. Pennine e device usb

/mnt: cartella dove vengono montati manualmente i device e le partizioni che solitamente sono statici e non vengono rimossi. Per montare un device automaticamente nella /mnt all'avvio è necessario editare il file /etc/fstab, altrimenti è necessario montare manualmente il device ogni volta con il comando muount.

/opt: di solito contiene i programmi che non interagiscono con altri programmi installati.

/proc: è un file system virtuale. All'interno ci sono file che danno informazioni sul sistema (per esempio il tipo di CPU).

/root: è la home dell'utente root.

/sbin: contiene eseguibili e file che può usare solo l'utente root.

/srv: è la cartella che contiene i server standard.

/tmp: contiene i file temporanei che ad ogni riavvio vengono cancellati.

/usr: è speculare alla directory /root poiché contiene le stesse directory, con la differenze che in passato non stava sul mainframe ma sulla macchina locale.

/usr/src: contiene i sorgenti del kernel o dei programmi compilati dall'utente.

/usr/X11R6: contiene i file del server grafico.

/usr/local: speculare alla /usr, contiene l'installazione di programmi.

/var: ha contenuti dinamici, ovvero file che sono soggetti a modifiche dal sistema.

/var/tmp: contiene principalmente file temporanei che non vengono cancellati al riavvio.

/share: principalmente usata per condividere dati tra più utenti o in rete.

/swap: serve al S.O. per swappare ma al giorno d'oggi, con le grandi quantità di ram che vengono installate a bordo dei client, è quasi praticamente inutile.


/etc/fstab

È il file in cui sono specificati i device che vengono montati all'avvio.

Es.: montaggio di una partizione NTFS

/dev/sda1 /media/win ntfs-3g defaults,users,umask=000,locale=it_IT.UTF-8 0 0

In fstab non va messo il riferimento a /media ma solo a /mnt altrimenti si crea confusione con il S.O. che in /media è programmato per scriverci automaticamente al momento del rilevamento del dispositivo inserito.


apt

È il gestore dei pacchetti i cui file di configurazione stanno in /etc/apt. Il file che contiene i repository è sources.list ed ha la seguente sintassi:

deb cdrom [percorso] intrepid main restricted deb http://archive.ubuntu.com/ubuntu intrepid main restricted


(Intrepid è il nome di una versione della distribuzione di Ubuntu)

Comandi:

apt-get update: aggiorna la lista dei pacchetti interrogando i repository.

apt-get upgrade: aggiorna i pacchetti presenti sulla macchina con nuove versioni se presenti nei repository e risolvendo le relative dipendenze.

apt-get install “nome_pacchetto”: installa il pacchetto con le relative dipendenze.

apt-cache search “stringa_da_cercare”: cerca il pacchetto che ha nel nome o nella descrizione la stringa che gli è stata specificata.

apt-get dist-upgrade: aggiorna il S.O. alla versione successiva, aggiornando automaticamente anche i sources dei repository.

Tramite apt è possibile installare anche una cache dei pacchetti, molto utile nel caso si abbiamo molti client su cui installare programmi e aggiornamenti, prendendo i file direttamente dalla cache del proxy locale anziché dalla rete internet.

tar

Programma che permette di creare archivi, un tempo usato per archiviare i file su nastro.

Opzioni:

-c → crea l'archivio. -f → archivia su file. -v → mostra la lista dei file che vengono aggiunti all'archivio dettagliatamente (verbose mode). -x → estrai l'archivio. -z → crea archivio compresso con gzip. -j → crea archivio compresso con bzip2.

Es: tar -czf “nome_file_da_creare” “file_da_comprimere.gz” (compressione di un file in formato gzip) tar -cjf “nome_file_da_creare” “file_da_comprimere.bz2” (compressione di un file in formato bzip2)

tar -xjf “file_compresso.bz2” (estrazione di un file in formato bzip2)

xorg.conf

Gestisce e rileva le periferiche video e di input quali monitor, vga, mouse e tastiera. Alcune distribuzioni hanno dei tools specifici per creare il file xorg.conf, ma è possibile farlo anche a mano. Il comando “X -configure” crea un file xorg.conf funzionante...in teoria! :-(


Permessi, gruppi, utenti

I gruppi si creano con il comando groupadd “nome_gruppo”. Sia quelli standard che quelli creati a posteriori compaiono nel file /etc/group.

alsa → per l'audio network → per la rete optical → per lettori e masterizzatori wheel → gruppo che ha permessi quasi da root users → gruppo dove ci stanno tutti gli utenti

Gli utenti si creano con il comando useradd “nome_utente”. La lista degli utenti compare nel file /etc/passwd.


Per cambiare i permessi ai file si usa il comando chmod.

Metodo delle lettere (UGO – User/Group/Others): Permesso di lettura → r Permesso di scrittura → w Permesso di esecuzione → x

chmod u+x “nome_file” → do i permessi di esecuzione al proprietario chmod u-x “nome_file” → tolgo i permessi di esecuzione al proprietario

Lo stesso vale per il gruppo e per gli others:

chmod g+w “nome_file” → do i permessi di scrittura al gruppo chmod o+w “nome_file” → do i permessi di scrittura a tutti gli altri chmod a-w “nome_file” → tolgo i diritti di scrittura a tutti

Sempre usando il comando chmod si possono dare i permessi ai file anche usando il metodo dei numeri:

1 → lettura 2 → scrittura 4 → esecuzione

I diritti si danno al proprietario, gruppo e others sommando i numeri corrispondenti ai diritti che vogliamo dargli.

Es.:

Se volessi dare i diritti di esecuzione, lettura e scrittura sia al proprietario, al gruppo e a tutti gli altri dovrei scrivere:

chmod 777 “nome_file”

Dove: -Il primo 7 è dato dalla somma di esecuzione+scrittura+lettura=4+2+1=7 ovvero i diritti che diamo al proprietario. -Il secondo 7 è dato dalla somma di esecuzione+scrittura+lettura=4+2+1=7 ovvero i diritti che diamo al gruppo. -Il terzo 7 è dato dalla somma di esecuzione+scrittura+lettura=4+2+1=7 ovvero i diritti che diamo agli altri. E cosi per tutte le possibili combinazioni.

Se voglio cambiare un gruppo ad un file uso il comando chgroup “nome_gruppo” “nome_file” (di cui voglio cambiare il gruppo). Per cambiare utente ad un file invece si usa il comando chown “nuovo_utente” “nome_file” (di cui voglio cambiare l'utente). Posso cambiare utente e gruppo con un comando solo sempre usando il chown: chown “utente:gruppo” “nome_file”

NB. Se si hanno i permessi di scrittura/lettura/esecuzione su una directory sarà possibile anche scrivere/leggere/eseguire i file che stanno al suo interno anche se non ho i permessi direttamente su quei file specifici.


Monitoraggio delle risorse

ps ax | less → fa vedere tutti i processi che ci sono attivi, ridirezionando l'output tramite il less a video come se fosse un file di testo. Nella lista ci sono tutti i processi con il relativo PID.

kill PID → uccide il processo relativo a quel PID.

killall “nome_programma” → uccide tutti i processi che hanno a che fare con quel programma (compresi i processi figli).

top → comando che ci permette di vedere i processi attivi in tempo reale con relativo utilizzo delle risorse, oltre alle risorse (RAM e CPU) in uso e libere sulla macchina.


Comandi a briglia sciolta