1 Lez.3 Utilizzo Linux I comandi fondamentali per iniziare Uso del sistema dalla console testuale...

Post on 02-May-2015

212 views 0 download

transcript

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