Date post: | 02-May-2015 |
Category: |
Documents |
Upload: | giordano-contini |
View: | 212 times |
Download: | 0 times |
1
Lez.3 Utilizzo Linux I comandi fondamentali per
iniziare
Uso del sistema dalla console testuale
Navigare nelle directory (ls, find, ..)
Operazioni sui file (cp,mv, grep,tail,more,less)
Creazione link fisici e simbolci
Documentazione Interna
Editing di file (VI, mcedit ;editor grafici delle GUI)
2
Processi di login e logout• Linux è un sistema operativo multiutente, dove differenti utenti
possono avere accesso al sistema avendo i propri dati, i propri programmi e impostazioni completamente separate da quelle di altri utenti oltre ad avere la possibilità di accedere alla risorse del sistema .
• Il login può essere eseguito in ambienti diversi, grafici o testuali da locale o da remoto ma hanno tutti lo stesso scopo: verificare che l'utente abbia i requisiti per accedere al sistema o ad un suo servizio e metterlo in condizione di interagire con la macchina.
• Il logout (ctrlD)è esattamente l'opposto del login: chiude la shell aperta con il precedente login e tutti i successivi programmi lanciati dall'utente, e fa in modo che l'utente debba ripetere il login per riaccedere alla linea di comando o meglio shell
3
User & SuperUser • In Linux esistono differenze fra i vari utenti, definite dai permessi e
dall'acceso ai file e comandi che un'utente può lanciare.
E' convenzione che i semplici utenti possono scrivere, leggere e
modificare file solo all'interno del loro ambiente (home) e lanciare
semplici comandi che non influiscono sulla configurazione del
sistema. Per poter accedere completamente alle risorse del sistema
bisogna accedere al sistema come superuser ovvero l'utente root.
In particolare si consiglia, per motivi di sicurezza, di non lanciare mai
Xwindows (l'interfaccia a finestre disponibile su Linux) come utente
root su una macchina che ha accesso a reti esterne.
4
Utente root • L'utente root ha poteri assoluti sul sistema:
- Aggiungere, Eliminare e modificare account (altri utenti)
- Installare e configurare servizi
- Accesso completo (read/write) di tutti i file presenti nel filesystem
- Aggiungere e Modificare il Filesystem
• Attraverso tools come sudo è possibile fare in modo che semplici
utenti possono lanciare comandi che solo root potrebbe lanciare.
5
Processi di login da remoto
• L’ accesso al sistema può essere eseguito da remoto
• tramite un client (come putty) • con protocollo ssh ( Telnet sicuro)
6
Shell
La shell e' il mezzo con cui si comunica con il sistema, è l’ambiente
dove si avviano e si controlla l'esecuzione degli altri programmi.
Solitamente quando si avvia la console testuale si riconosce
se l’utente collegato è un utente normale o il super user (root)
rispettivamente dai simboli del prompt $ o #
mario@localhost $
root@localhost #
7
Shell
La shell attivata al momento del login è quando si crea l'account, ad ogni
utente si può associare una shell diversa.
Per attivare una shell basta digitarne l'acronimo
bash per attivare la Bourne Again shell .
Per uscire dalla shell si usa il comando : exit
La shell puo' usare cinque files di configurazione
/etc/profile file globale/etc/bashrc file globale~/.bash_profile file locale~/.bashrc file locale ~/.bash_logout file locale
8
Tipi di shell
Esistono vari tipi di shellLe piu' frequentemente utilizzati sono:
Bourne shell (sh) la shell originale di UNIX, scritta da Steve Bourn dei Bell Labs. Disponibile
su tutti i sistemi UNIX, fornisce un semplice linguaggio per la sua programmazione.
C shell (csh) E' stata scritta all'universita' di Berkley, California. Come indica il nome, il
linguaggio di programmazione è molto simile al C.
Korn shell (ksh) E' stata scritta da D. Korn dei Bell labs. Attualmente è la shell standard dei
sistemi UNIX, fornisce uguali prestazioni della C e TC ha un linguaggio a Bourne shell.
Bourne Again Shell (bash) E' stata scritta dalla Free Software Foundation come shell di
pubblico dominio. Ampliamente usata in ambienti accademici, fornisce tutte le stesse
prestazioni della C e Korn shell, con un linguaggio compatibile con sh .
TC Shell (tcsh) Versione modificata della C shell, con cui è interamente compatibile,
introduce nuove caratteristiche che ne rendono piu' agevole l'interazione con l'utente.
Caratteristica comune a tutte le shell è il completamento del nome dei file e dei comandi
solitamente col tasto [TAB]
9
Avvio e arresto del sistema
Come si arresta il sistema? immediatamente# shutdown -h now[Invio] Oppure: # init 0[Invio]Programmando ora e minuti# shutdown -h ore:minuti [Invio]
Come si riavvia? # shutdown -r now[Invio] Oppure: # init 6[Invio] oppure rebootProgrammando ora e minuti# shutdown -r ore:minuti [Invio]
È possibile fermare l'arresto o il riavvio del sistema dopo averne dato il comando? Per poter farlo, occorre impartire il comando:# shutdown -cma questa operazione di annullamento avrebbe successo esclusivamente qualora il
comando shutdown fosse stato impartito mediante l'indicazione esatta del tempo di esecuzione dello stesso:
DA SEGNALARE I COMANDI halt o poweroff PER SPEGNERE IL SISTEMA
10
Info sul sistema
uname : mostra informazioni sul computer.-m tipo di macchina.-n nome dell'host.-r release dell'OS.-s nome dell'OS.-v versione dell'OS.-a tutte le informazioni..
• dmesg : riporta i messaggi mostrati durante il boot
• df -h : mostra lo spazio libero sul disco fisso.
• du : mostra lo spazio usato da file o directory.
-m dati in megabyte.
• lspci mostra l’hw su bus pci collegato
• lsusb mostra l’hw usb collegato
11
Terminal Control Keys I tasti di controllo piu usati sono i seguenti :
CTRL-u cancella tutto quello che si è digitato sulla linea di comando
CTRL-c interrompe bruscamente l'esecuzione di un comando
CTRL-h torna indietro di un carattere come il tasto <backspace>
CTRL-z sospende un comando
CTRL-s interrompe lo scorrimento ( scrolling ) dello schermo
CTRL-q continua lo scrolling , per uscire dai programmi
CTRL-d interrompe l'immissione dei dati da tastiere in un comando
interattivo ( rappresenta l'EOF ) ha anche funzione
di log-out nella fase di autenticazione
12
Metacaratteri *, ?, [..]Wild card, sono tre caratteri speciali che permettono di sostituire completamente o in parte
il nome del file.
Il carattere * Il suo significato per la shell è " qualsiasi sequenza di caratteri ",
esempio
cat PR* visualizza il contenuto dei file che incominciano per PR.
cat *ad* visualizza il contenuto dei file che contengono ad nel loro nome.
Il carattere ? E' in grado di sostituire qualsiasi carattere del nome del file che compaia
nella posizione corrispondente.
esempio cat ?rova visualizza il contenuto dei file aventi nome di 5 caratteri, i cui ultimi 4 sono rova .
Il carattere [..] Permette di specificare una lista di caratteri che possono sostituire un
carattere nel nome del file, come per l'operatore ?, limitando la sostituzione ad un
insieme selezionato di caratteri. Esempio cat prov[aeo] visualizza il contenuto dei file prova,prove,provo se esistono
cat [m-o]el[ae] visualizza se esistono il contenuto dei file : mela,mele,nela,nele,oela,oele
.
13
Ridirezione dell I/O standard Linux considera video e tastiera come dei file . E' quindi possibile ridirigere l' I/O di un comando semplicemente specificando al
SO da quale file si vogliono prelevare i dati ( ridirezione dell‘ Input), in quale file si vogliono mettere i risultati ( ridirezione dell‘ Output) e gli eventuali messaggi di errore (ridirezione dell’ Error).Ridirezione dell'output cat note > myfile memorizza il contenuto del file note in myfile, sovrascivend il contenuto. cat note >> myfile accoda nel file myfile il contenuto di note a quello eventuale di myfile Ridirezione dell'input mail joe < note invia tramite posta elettronica all'utente joe il messaggio contenuto nel file note; Ridirezione dell'error cat note 2> myfile se note non esiste, myfile conterra' il messaggio di errore relativo al comando catcat note 2>> myfile accoda l'eventuale messaggio di errore del comando ad altri messaggi i in myfile.
14
Documentazione interna Tra i comandi di che ci aiutano (quelli di Help) a capire gli altri comandi
Il primo da segnalare è man <nome comando>
da una spiegazione più che esaustiva (a volte sin troppo … diverse pagine)
Infatti se l’output da un testo maggiore dello spazio disponibile sullo schermo basta
premere la barra spaziatrice per vedere le linee non visualizzate.
Per uscire dal manuale basterà premere <q>.... se volete avere solo informazioni sintetiche e stringate è meglio usare:
man –f <nome comando> oppure whatis <nome comando>
Le directory dove risiedono le documentazioni per programmi specifici in diversi formati (txt,html,pdf etc..)
usr/share/doc oppure /usr/doc
15
Comando cd• Il primo comando, essenziale per muoversi fra le
directory e certamente compare directory.
• Senza argomenti (oppure cd ~), cd ci riporta alla nostra
home directory;
• con un argomento, che dovrà essere un nome di
directory, cd ci porterà all'interno della directory
specificata.
• “cd –” ci riporta alla directory di provenienza
• ”cd..” ci riporta alla directory precedente
16
cp per copiare file e directory. La sua sintassi è molto semplice:
cp <file_sorgente> <destinazione>Vediamo ora le opzioni più importanti di cp:
-b Esegue automaticamente una copia di backup di ogni file di destinazione
-f Forza la sovrascrittura dei file, senza richiedere interventi da parte dell'utente.
-i Attiva la modalità interattiva, che chiede conferma prima dell'evanutale sovrascrittura di file di destinazione preesistenti;
-p Mantiene, se possibile, gli attributi (permessi, ownership ecc.) del file. -r Permette di attivare la modalità ricorsiva, che permette la copia di
directory. -v Attiva la modalità verbose, che visualizza in output quello che il sistema
ha fatto in seguito al nostro comando
17
Operazioni su file/directory- Per cambiare nome dei file: mv < sorgente > <destinazione > Per spostare un file mv <sorgente > < directory>- Per eliminare file o directory. rm <file> (per eliminare un file) se siete sicuri di poter elimimare una directory non vuota, potete utilizzare il
rm -rf directorymkdir per creare una directory rmdir per cancellare una directory pwd mostra la directory corrente
Per crere un file vuoto touch <nome file>
18
Contenuto di una directory.ls : mostra il contenuto di una directory.in long format grazie all’opzione
<l>
Output di ls -l / Miadir/Miofile :
2333 -rw-r--r-- 1 root root 77266 Dec 13 17:18 / Miadir/Miofile
L'output esteso di ls da varie informazioni su un file:
- attributi (il primo carattere a sinistra);
- permessi (owner, group e other)
- numero di file con lo stesso inode (in questo caso 1);
- nome dell'owner (in questo caso root);
- nome del gruppo (in questo caso root);
- dimensioni in byte del file (in questo caso 77266);
- data dell'ultima modifica (13 Dic alle 17:18);
- nome del file ( /Miadir/Miofile).
Se aggiungiamo al comando ls –l <i >sarà visualizzato numero di i-node
Altre lettere importanti <a> mostra i file nascosti
19
Lettura di file
La lettura di file di testo può essere fatta attraverso due programmi ben
conosciuti: more oppure less.
• more è quello tradizionalmente più diffuso negli ambienti Unix;
• less è il più pratico ed è più ricco di piccoli accorgimenti.
[q] Per uscire dal file
[bar] Scorre il testo in avanti di una schermata
[Ret] Scorre il testo in avanti di una riga alla volta
Le funzionalità essenziali di questi due programmi sono simili,
anche se il secondo offre un gran numero di funzioni aggiuntive , tra cui
la più evidente è la possibilità di scorrere il testo all'indietro
di una pagina tasto [b] e di una riga tasto [y].
• cat legge il contenuto di un file. ma non funziona da pager
20
Per cercare file
• find per la ricerca di file all'interno del filesystem. find </directory/> -name <file> opz
alcuni opzioni di ricerca
-ctime in base alla data di creazione del file in giorni
-type in base al tipo ,file o dir
-size in base alla dimensione espressa in Kbyte
• locate cerca i file in un db di riferimento che bisogna aggiornare o creare da utente root col comando <updatedb>
• grep permette di ricercare pattern all'interno di uno o più file.
21
Partizionamento HD
• Il minimo partizionamento richiesto prevede:- una partizione generale (/, root) in cui saranno inseriti tutti i file.- una partizion di swap (usata come Virtual Memory)
• E' preferibile, nelle installazioni standard avere un miglior partizionamento cioè dedicare partizioni indipendenti per:- / (la root, sotto la quale stanno tutte le altri directory- /boot (partizione di boot, dove risiede kernel e file di boot. 20 Mb di spazio possono bastare)- /var (partizione in cui vengono messi file che cambiano di dimensione, tipicamente i log. E' utile averla su partizione indipendente per evitare che un aumento dei log inattesi riempa tutto il filesystem. Farla almeno di 100 Mb)- /home (dove risiedono i file di tutti gli utenti. Può essere piccola e praticamente inutilizzata (mail, dns server) o molto grossa e piena di documenti (web, file server)- /tmp dove risiedono file temporanei.
22
FS logico di Linux
23
Device come files
24
Device come files
/dev/fd0 floppy disk (A:)
/dev/hdadisco IDE (master, primario)
/dev/hdbdisco IDE (slave, primario)
/dev/hdcdisco IDE (master, secondario)
/dev/hdddisco IDE (slave, secondario)
/dev/ttyS0 porta di comunicazione (COM1)
/dev/sdaprimo dispositivo SCSI, hd SATA, device USB
/dev/psaux mouse tipo PS/2
25
Uso dei device
Al contrario di altri sistemi operativi, non è sufficiente inserire il dischetto
o il CDROM per poterlo utilizzare, ma occorre 'montarlo' e dire dove va posto
nell'albero del sistema.
Usando un Windows Manager è sufficiente fare un click sull'icona opportuna e
il device verrà montato (in /mnt/floppy o /floppy, a seconda delle distribuzioni).
E' però importante anche smontare il dispositivo altrimenti non potrete inserire
nuovi CD e non avrete neppure la sicurezza che quello che avete copiato sul
floppy ci sia….!
Per farlo occorre selezionare "smonta dispositivo“ per il floppy o CD .
26
Schema dei nomi per le partizioniEcco come decifrare lo schema per l'assegnazione dei nomi delle partizioni:
/dev/ XXy N ….Questo è il nome della directory nella quale risiedono tutti i file device. Dato che le partizioni risiedono su dischi fissi e i dischi fissi sono dispositivi, i file che rappresentano tutte le possibili partizioni sono contenuti in /dev/.
XX Le due lettere del nome della partizione indicano il tipo di dispositivo su cui risiede la partizione. In genere trovate hd (per i dischi IDE) oppure sd (per i dischi SCSI).
y Questa lettera indica su quale dispositivo si trova la partizione. Per esempio, /dev/hda (il primo disco IDE) oppure /dev/sdb (il secondo disco SCSI).
N Il numero finale indica la partizione. Le prime quattro partizioni (primarie o estese) vengono numerate da 1 a 4. Le partizioni logiche iniziano da 5. Per esempio, /dev/hda3 è la terza partizione primaria o estesa sul primo disco IDE e /dev/sdb6 è la seconda partizione logica sul secondo disco SCSI
27
Comando mount
mount [opzioni] [device] [directory] Esegue il mount di tutti i file system elencati in /etc/fstab-o opzione Specifica le opzioni con cui montare il file system. Sono varie, incidono su diversi aspetti e possono essere specifiche per determinati tipi di file system: async, auto, defaults, dev, exec, noauto, nodev, noexec, nosuid, nouser, remount, ro, rw, suid, sync, user, check, conv, debug, errors.-r Esegue il mount del file system in sola lettura-w Esegue il mount del file system in lettura/scrittura (opzione di default)-t tipo_fs Specifica il tipo di file system da montare. Valori possibili: minix, ext, ext2, ext3, xiafs, hpfs, msdos, umsdos, vfat, proc, nfs, iso9660, smbfs, ncpfs, affs, ufs, romfs, sysv, xenix, coherent, reiserfs, jfs... Esempi mount mount -t vfat /dev/fd0 /mnt/floppy Monta un floppy formattato sotto Windows sulla directory /mnt/floppymount -t iso9660 /dev/hdc /mnt/cdrom Mount un CD presente nel lettore IDE Secondary master sulla directory /mnt/cdrommount -t nfs 192.168.0.10:/home/rpm /mnt/remote Monta sulla directory /mnt/remote la condivisione NFS /home/rpm del server 192.168.0.10 (il serviazio portmap deve essere attivo sul client
28
mount• Permette di inserire un file system
presente in un dato device nella struttura di directory principale del sistema, a partire dalla directory indicata.L’ operazione di "montare" di fatto rende visibile al sistema il contenuto di dispositivi quali CD-ROM, floppy ma anche hd o Net FileSystem di rete. Il comando mount senza opzioni visualizza l'elenco dei file system attualmente montati nel sistema.Nel file di configurazione /etc/fstab sono elencati i parametri di mounting dei vari dispositivi del sistema predefiniti: per montare le voci presenti in questo file basta specificare come parametro di mount la directory o il device.Nel file /etc/mtab vengono visualizzati i file system attualmente montati sul sistema.
29
umount
• Smonta il file system specificato e lo rende inaccessibile al sistema.E' il comando che esegue l'operazione opposta a mount.Qualsiasi operazione in corso sul filesytem da smontare viene conclusa e la struttura del file system segnata come pulita (clean).
• umount [opzioni] [device|directory]-a Smonta tutti i file system montati (visualizzati in /etc/mtab)-n Smonta tutti i file system montati SENZA memorizzare le modifche in /etc/mtab -t tipo Smonta tutti i file system del tipo specificato.
Esempi umount umount /dev/fd0 Smonta il floppy (operazione necessaria prima di estrarre fisicamente il dischetto). Questo comando è analogo a umount /mnt/floppy (se il floppy è montato sulla directory /mnt/floppy.umount /mnt/cdrom Smonta il CDROM (se è montato sulla directory /mnt/cdrom). Nello specifico per i CDROM può essere usato il comando eject che smonta ed espelle il CD.
30
Gestione filesystem
Struttura gerarchica apparentemente complessa
Purtroppo non standard
/
/etc /usr /bin /sbin /tmp /home/dev/lib
bin sbin local
gonzo snake satan
lib
/var
lib log spool run
31
Principali directory
• /etc -> file di configurazione
• /bin o /usr/bin -> comandi base (user)
• /sbin o /usr/sbin -> comandi admin (super-user)
• /home -> utenti
• /tmp -> file temporanei
• /lib -> librerie
• /dev -> hardware
32
I comandi per avere informazioni:
• man : formatta e mostra le pagine della guida in linea.
• info : sistema di consultazione dei manuali tramite ipertesti.
• help : richiama l'help per i comandi builtin della shell.
• Which cerca la posizione di un file eseguibile o comando
• apropos e whatis cercano nell pagine di man rif alla parola cercata.
33
Ridirezione I/O
Ogni comando comando può essere ridiretto su un file diverso
comando &> 2 L'uscita del comando viene forzata sullo std error
Si noti che la numerazione prosegue dai file standard:
stdin = 0, stdout = 1, stderr = 2, ...
34
Pipe
35
Collegamenti o link Le voci di una directory contengono ognuna un riferimento (detto comunemente
collegamento) a un inode.
Più voci della stessa directory, o di directory differenti, possono puntare allo stesso inode.
si può parlare di collegamenti fisici, o hard link, per fare riferimento ai collegamenti che
puntano direttamente agli inode. (cioè il collegamento fisico).Quando si cancella un file, si
cancella la voce della directory e il numero di riferimenti contenuti nell'inode viene ridotto.
Quando questo raggiunge lo zero, quel numero di inode torna a essere disponibile.
Questa possibilità di avere riferimenti multipli allo stesso inode è ampliata dalla presenza dei
cosiddetti collegamenti simbolici, che sono solo file contenenti un riferimento a un altro
file. collegamenti simbolici o soft link
36
Iink fisico
Creiamo un file touch provaVisualizziamo l’i-node ls –il Creiamo un link (hard) tra i file prova e prova1 ln prova prova1Sempre con il comando ls –li verifichiamo che hanno lo stesso i-nodeSe cancelliamo il file originale prova Avremo sempre il collegamento prova1 che ha lo stesso contenutoDel file prova
37
File e permessi
chmodmodifica i permessi di accesso di un file. metodo numerico: primo numero (3 bit) : 4 set userID 2 : set groupID 1 : swap text image secondo numero (9 bit) 4 : lettura 2 : scrittura 1 : esecuzione
3 bit (u); permessi del proprietario: 3 bit (g) permessi del gruppo. 3 bit (o) permessi degli altri.
chown :cambia il proprietario di un file permessi per utente, gruppo e altri
38
Filesystem e processidf : mostra lo spazio libero sul disco fisso.
free : mostra lo stato della memoria.
mount : monta un filesystem.
umount : disattiva un filesystem.
ps : visualizza un elenco dei processi correnti.kill : invia un messaggio (TERM di default) ad un processo.
39
Comandi di Sistema:
• halt : chiude il sistema.
• reboot : riavvia il sistema.
• hostname: mostra e cambia il nome dell'host.
40
cron ed at La schedulazione di particolari comandi è un tipico compito dell’amministratore
di sistema, che può in questo modo far eseguire particolari compiti al sistema
in momenti non critici.
Esempio tipico di attività pianificata sono il backup, e la periodica pulizia delle
directory temporanee del sistema per recuperare spazio ed eliminare file
ormai obsoleti.
Il comando <cron> pianifica l’esecuzione di comandi secondo una cadenza
fissa, mentre <at> programma l’esecuzione ritardata del comando.
• Per eseguire un comando utilizzando cron, è necessario editare il file
crontab, inserendo una nuova linea con il comando da attivare. Per eseguire
tale operazione è utilizzato di norma il comando crontab.
Il file crontab prevede 5 campi che indicano l’ora di pianificazione con lo schema (mm-hh-mese-gg).E’ possibile inserire più valori per ogni campo,
separandolo con una virgola, mentre il metacarattere * indica ALL.
41
Comandi della shell• alias : definisce alias di comandi.
• bg : manda un processo sospeso in background.
• cd : cambia la directory corrente.
• exec : sistituisce la shell corrente con un nuovo processo.
• exit : chiude la shell.
• export esporta una variabile nelle shell figlie.
• fg : porta in foreground un processo.
. pwd : mostra il path asoluto
who : visualizza gli utenti collegati all’host
42
Comandi della shell• help : richiama l'help per i comandi builtin.
• history : mostra l'history della shell.
• jobs : mostra i processi fatti partire dalla shell corrente.
• logout : esce da una shell di login.
• set : setta una variabile.
• type : mostra dove si trova l'eseguibile di un comando.
• ulimit : controlla le risorse disponibili per la shell.
• umask : setta i permessi di default per la creazione di nuovi file.
43
Configurazione avvio
Al contrario di MS-DOS e Win9x, Linux non si può lanciare da solo
ma richiede l'ausilio di un programma di avvio, detto bootloader.
Due sono i programmi più diffusi, ovvero GRUB e LILO,
anche se il secondo è molto più diffuso del primo.
Il bootloader è solitamente installato nella primo settore del disco
rigido (MBR) e permette di lanciare vari sistemi operativi.
I bootloader sono programmi piccoli e sensibili, con una
configurazione piuttosto ostica. Vedremo ora il caso di LILO.
44
Struttura dual bootOccorre fornire a lilo molte informazioni quali: (1) DOVE volete installare
LILO, solitamente nell'MBR; (2) che volete avere 100 secondi per scegliere il sistema operativo, altrimenti verrà lanciato il sistema di default; (3) i dati per Linux, ovvero dove si trova il kernel, dove si trova il resto del sistema e come chiamate il sistema; (4) dove si trova windows, i suoi dati e il nome con il quale lo chiamerete.
/dev/hda1 - win
/dev/hda2 - swap
/dev/hda3 - /boot
Boot=/dev/hdavga=normalread-onlyprompttimeout=100
image = /boot/vmlinuz root = /dev/hda4 label = linux
other = /dev/hda1 table= /dev/hda label=win
1
2
3
4
/dev/hda1 - win
/dev/hda2 - swap
/dev/hda3 - /boot/dev/hda4 - /
45
Midnight commander
Quasi tutte le funzioni precedenti possono essere svolte da
un potente programma, mc.
Si tratta di un programma “semigrafico” dotato di grandi potenzialità incluso client ftp e redazione file
E' installato praticamente su tutte le distribuzioni standard, ma non nei sistemi di emergenza
46
Formattare
Il comando fdformat serve a formattare un dischetto
a basso livello. Il formato del comando è
fdformat devicefile dove devicefile è un dei device file
dell'unità floppy. Esempio: fdformat /dev/fd0H1440
Per formattare ad alto livello una partizione si usa il formato
# mkfs.ext2 /dev/hda1
# mkfs.msdos /dev/sda4
# mkreiserfs /dev/hda2
47
Midnight commander
48
Processi
Se qualche programma fa le bizze, lo si può “terminare”
Scrivete “ ps ax” e controllate il numero a fianco del programma, quindi scrivete
kill <numero>. Se non ha effetto, provate con kill -9 <numero>
Alternativamente, potete usare killall <nome del programma>, come in
# killall netscape
Esiste anche la versione grafica, xkill
49
Editor VI
E' uno dei programmi più noti e odiati della tradizione Unix.
E' un redattore testi molto potente e versatile, ma piuttosto ostile.
Per inserire le modifiche premete I
Per cancellare una riga, premete [ESC]poi “dd”
Per salvare premete [ESC], poi “:wq”
Per uscire senza salvare premere [ESC], poi “q!”
50
esercizi• 1 - Che cosa fa il comando rm?
Cancella, in modo definitivo, file o directory
• 2 – Che cos è la root? Come si indica?La root, indicata con la / è la directory principale di una macchina linux al cui interno sono presenti altre directory e, eventualmente, partizioni montate di altri file system.
• 3 - Che differenza c'e' fra soft symlink e hard symlink?
Il soft symlink, comunemente più utilizzato, è un file speciale che rappresenta un collegamento o alias di un'altro file o directory, l'hard symlink è un alias
per un file di cui si mantiene lo stesso inode e è quindi indistinguibile dall'originale. Gli hard link non possono riferirsi a file system diversi o a file
inesistenti, i soft link si.
• 4 - Come si visualizzano le ultime 20 righe del file /var/log/messages? tail -20 /var/log/messages
• 5 - Qual è il comando più versatile per visualizzare il contenuto di un file ascii? Less
• 6 - Nominare almeno 3 directory principali presenti nella root di una macchina Linux e la loro funzione.
Per un elenco completo delle directory fare riferimento alla pagina STRUTTURA FILE SYSTEM
• 7 - In quale file vengono definite le informazioni relative ai file system del sistema? In quale file sono presenti le informazioni sui file system in uso
(montati)? /etc/fstab - /etc/mtab
• 8 - Con quale comando definisco permessi in lettura, scrittura, esecuzione per owner e group owner e sola lettura ed esecuzione per gli altri utenti al file
/usr/bin/who ?
51
Esercizio
• 1 - Quali sono le principali caratteristiche di una licenza GPL?
.2 - Che differenza c'è fra kernel e distribuzione?
3 - Nomina almeno 4 nomi di distribuzioni esistenti per Linux
4 - Cosa posso fare per installare Linux su un computer che non
supporta il boot direttamente da CDROM?
5 - Quanti filesystem possono esserci in una partizione? Quanti
mount-point per ogni filesystem?
.6 - Com'è chiamata su Linux la terza partizione di un hard disk IDE
secondary slave?
52
Esercizi• 1- Loggarsi come root sul proprio computer.
• Trovare la posizione del file messages, che contiene il log dei principali eventi
• 2- Creare una nuova directory chiamata test in /tmp/ Copiarvi il file messages ,
• 3- Provare a visualizzare, in modalità continua, le ultime righe di /tmp/test/messages.
Provare a loggarsi su altre console del sistema per vedere se il file cambia
• .4- Rimuovere il file /tmp/test/messages. Creare un link simbolico fra il messages nella posizione originaria e
/tmp/test/messages
• 5- Provare a visualizzare, in modalità continua, le ultime righe di /tmp/test/messages. Provare a loggarsi su altre
console del sistema per vedere se il file cambia.
• 6- Spiegare perchè i comportamenti sono diversi nei punti 3 e 5
• .7- Visualizzare i permessi del file messages originario. Provare ad entrare sul sistema come utente normale. Provare a
visualizzare il contenuto del messages originario.
• 8- Si riesce a visualizzarlo? Spiegare perchè.9- Dalla shell aperta come root rendere leggibile a tutti gli utenti il file
messages originario. Passare alla shell aperta come utente normale e visualizzarne il contenuto.
• 10- Reimpostare i permessi precedenti sul file messsages (contiente riservate informazioni sul sistema che non tutti gli
utenti devono vedere)
• .11- Copiare il messages originario in /var/test/messages2
• 12- Visualizzare le righe di /var/test/messages2 che contengono la parola root
• 13- Cancellare la directory /var/test/ e il relativo contenuto.
53
Esercizio/risposte1 - Quali sono le principali caratteristiche di una licenza GPL?
Una licenza GPL implica: Ridistribuzione Libera del software e del codice; Il Codice Sorgente è Aperto e disponibile per lettura, modifiche, analisi, controllo; Prodotti derivati da prodotti GPL devono avere licenza GPL; Copyright dell'autore.
2 - Che differenza c'è fra kernel e distribuzione?Il kernel è la parte del sistema operativo che gestisce i dispositivi hardware, le risorse di sistema e i processi.Una distribuzione comprende il kernel Linux, una serie di programmi e software per utilizzarlo effettivamente e l'interfaccia di installazione e configurazione.
3 - Nomina almeno 4 nomi di distribuzioni esistenti per LinuxRed Hat - Caldera - Slackware - Debian - SUSE - Mandrake ... per una lista completa: http://www.distrowatch.com
4 - Cosa posso fare per installare Linux su un computer che non supporta il boot direttamente da CDROM?Creare un floppy di boot tramite il comando DOS rawrite (o analoghi).
5 - Quanti filesystem possono esserci in una partizione? Quanti mount-point per ogni filesystem?Ci può essere solo un file system in una partizione e questo ha un unico mount point
.6 - Com'è chiamata su Linux la terza partizione di un hard disk IDE secondary slave?/dev/hdd3 7 - Che differenza c'è fra un utente normale e l'utente root?
54
Riavvio e simili
Reboot vi permette di riavviare la macchina
Halt ferma il computer
Init 1 spegne la GUI e vi porta a una modalità monutente usabile solo da root
Init 0 va in una speciale modalità di emergenza
Init 5 riavvia t tutti i servizi (senza bisogno di riavviare)
Le sequenza di inizio sono riassunte nel file /etc/inittab
Tutto questo SOLO come utente ROOT