1 Corso su Bash GL-COMO 03/2010
2 Shell Kernel Shell/ GUI Utente Perché?! ● Velocità/performance ● Richieste di software praticamente nulle ● Operazioni complesse ● Operazioni in remoto ● Emergenza ● Imparare funzionamento del sistema […] Hardware […]
3 BASH ● Viene spesso usato da shell come interprete ● E' a tutti gli effetti un linguaggio di programmazione interpretato ● Utilissimo per gestione del sistema, backup, modifiche rapide ai files, modifica dei permessi etc ● Non consigliato per applicazioni grafiche dotate di GUI, applicazioni in cui si punta sulla velocitàe portabilità.
4 Usare una shell IN LOCALE ● Premendo ctr+alt+FX (X≠7 se è attivo xorg) ● Shell grafiche (terminal (GTK), konsole (QT), xterm, urxvt...) ● IN REMOTO ● SSH ● Putty ● Telnet
5 Struttura di Bash Nome Utente Nome Computer Directory corrente Permessi In mio Possesso
6 Eseguire comandi ● Digitare il nome del comando e premere invio per eseguirlo. ● Bash è case-sensitive! ● Flag: indicate con –opzione o -o indicano di eseguire il comando con delle opzioni in più. ● Tab: utilizzare il tasto tab per l'autocompletamento di comandi e percosi ● Freccette per fare comandi eseguiti precedentemente. [vedi anche history] ● Si chiama “input” ciò che viene dato in ingresso, si chiama “output” ciò che la shell restituisce; non tutti i programmi devono restituire un output. ● Per eseguire più comandi in una sola riga si usa comando1 &&comando2
7 Directory ● / directory root ● ~ directory home ●. directory corrente ●.. directory superiore ● - directory precedente ● ? carattere jolly ● * X caratteri jolly ● \ (backslash): il carattere seguito non verrà considerato come un'istruzione
8 Primi comandi ● Man: manuale; seguito da un comando stampa a schermo il manuale contenente le linee guida su come utilizzare quel comando. ● Pwd: mostra la directory corrente. ● Whoami: mostra con che utente si sta utilizzando la shell. ● Ls: mostra il contenuto di una directory. E' possibile usare per esempio la flag -l per avere informazioni più dettagliate, la flag -a per mostrare anche i files “hidden”. ● Cd: cambia directory. Deve essere seguito dal percorso della directory su cui ci si vuole spostare. ● Clear: pulisce schermo (è possibile pulire lo schermo anche premendo ctr+l) ● Echo: scrive a video.Usare la flag -n per non stampare l'a capo.
9 Operazioni sui files ● Cp [file da copaire] [destinazione]: copia un file. E' possibile utilizzare l'opzione -r con cui si possono copiare le cartelle intere e l'opzione -v (--verbose) che mostra dettagliatamente cosa sta copiando nell'arco del tempo. ● Mv [file da muovere] [destinazione]:muove un file. Anche con mv è possibile utilizzare la flag -v ● Rm [file da eliminare]: elimina un file. E'possibile utilizzare la flag -r (per eliminare direcotory) e la flag -v (verbose) ● Rmdir [directory da eleminare]: elimina una directory vuota.
10 Utenza ● Who: stampa a video l'username degli utenti connessi ai rispettivi terminali e l'ora del loro login. ● Whoami: stampa a video l'utente con cui stai eseguendo il comando. ● Longname: stampa a video il nome utente con cui è stato effettuato il login. ● W: stampa a video username degli utenti connessi ai rispettivi terminali, l'indirizzo IP da cui si sono connessi, l'ora del login e il processo che stanno eseguendo. ● Su [utente]: cambiare utente. Su senza argomenti comporta l'autenticazione come root. ● Passwd[utente]: cambia la password. Senza parametri cambia la password dell'utente che ha dato il comando.
11 Output da file ● Cat: legge da un file e stampa a video il contenuto di un file ● More: legge da un file, stampa a video il contenuto fermandosi a quando la schermata è piena e permette di scorrere in giù premendo invio ● Less: legge da un file, stampa a video il contenuto fermandosi a quando la schermata è piena, permette di scorrere in su e in giù con le frecce.Per usciere premere q e per cercare in avanti una parola /parola.Per ricercare all'indietro una parola ?parola. ● Grep:ricerca una stringa.
12 Pipe Pipe consente di trasferire in un file l'output di un comando. Per esempio echo GL-COMO > leggimi Ora è stato creato file “leggimi” che contiene “GL-COMO”. Se il file non esiste viene creato, se il file esiste viene sovrascritto. Echo gl-como >> leggimi Ora invece è stato scritto “gl-como” alla fine del file leggimi. Con la doppia pipe quindi se il file non esiste verrà creato, se il file esiste viene aggiunto del testo.
13 Esecuzione di un comando su output Per eseguire un comando sull'output di un altro comando si fa nel seguente modo: ComandoA | comandoDaEseguire Per esempio usando i comandi precedentemente proposti: Echo utenti connessi > informazioni && w >> informazioni | grep root In definitiva tale insieme di comandi ci dirà se l'utente root è connesso al sistema e, nel caso fosse connesso ci fornirà in output tutte le informazioni su root che “w” ci può dare.
14 Input su file Per scrivere un nuovo file abbiamo diverse vie. Creare un nuovo file con Touch nuovo Ed aprirlo con un editor di testo per esempio. Potremmo anche creare un file nuovo vuoto mettendo con pipe l'output di /dev/null (una periferica nel nuovo file da creare. Cat /dev/null > nuovo Oppure senza usare editor di testi, è molto più comodo prendere l'output di ciòche digitiamo sulla tastiera e mettere il tutto in un nuovo file: cat nuovo Tutto questo per dimostrare quanto sia utile, comodo e piuttosto potente un linguaggio come Bash.
15 Gestione utenza ● Useradd [utente]: aggiunge un nuovo utente al sistema. ● Userdel [utente]: rimuove un utete dal sistema. ● Passwd: cambia password. ● Gpasswd: modifica permessi e gruppi di utenza.
16 Gestione permessi ● Chown [utente] [file]: cambia proprietario ad un file ● Chmod [opzioni] [file]: cambia permessi ad un file. I permessi sono lettura (r), modifica (w),esecuzione (x). ● chmod +x file ● da il permesso al proprietario di eseguire il file.
17 CHMOD Chmod può anche cambiare i permessi relativi agli utenti appartenenti al gruppo e agli “altri”. Chmod 777 file chmod è seguito da 3 numeri: identificano rispettivamente proprietario, gruppo e altri. 4: lettura 2: modifica 1: esecuzione I numeri possono essere sommati per dare più permessi. 7 per esempio significa che il file può sia essere letto, che modificato che eseguito. 5 significa che il file può essere letto od eseguito e così via.
18 Elenco di programmi testuali ● Ed (editor di testo minimalistico) ● Vi (editor di testo avanzato) ● Vim (miglioramento di VI) ● Nano (altro editor di testo ) ● Links, elinks, lynx, w3m (browser testuali) ● Mutt ( client) ● Irssi, weechat (client di chat) ● Htop (gestione risorse e processi) ● Mplayer (lettore multimediale)
19 Contatti ● Website: ● MailingList: