From 4fb71fee1fbe47d5932c1661af77bd581ad320cb Mon Sep 17 00:00:00 2001 From: Elena of Valhalla'' Grandi Date: Tue, 28 Jan 2014 22:45:59 +0100 Subject: Riga di comando: log lezione 2 --- src/corsi/2014-linea_di_comando.txt | 2 + src/corsi/2014-linea_di_comando/index.txt | 4 + .../2014-linea_di_comando/log-lezione_2-raw.log | 289 +++++++++++++++++++++ src/corsi/2014-linea_di_comando/log-lezione_2.log | 253 ++++++++++++++++++ 4 files changed, 548 insertions(+) create mode 100644 src/corsi/2014-linea_di_comando/log-lezione_2-raw.log create mode 100644 src/corsi/2014-linea_di_comando/log-lezione_2.log diff --git a/src/corsi/2014-linea_di_comando.txt b/src/corsi/2014-linea_di_comando.txt index 826fef1..0247d8d 100644 --- a/src/corsi/2014-linea_di_comando.txt +++ b/src/corsi/2014-linea_di_comando.txt @@ -70,6 +70,8 @@ grazie alla documentazione sia preinstallata (manpages) che online. ~~~~~~~~~~ * file e directory: creazione e manipolazione +* `log della lezione 2 <2014-linea_di_comando/log-lezione_2.log>`_ +* `materiale della lezione 2 <2014-linea_di_comando/riga_di_comando-lezione_2.tar.gz>`_ 4 febbraio ~~~~~~~~~~ diff --git a/src/corsi/2014-linea_di_comando/index.txt b/src/corsi/2014-linea_di_comando/index.txt index 59ed631..84e2281 100644 --- a/src/corsi/2014-linea_di_comando/index.txt +++ b/src/corsi/2014-linea_di_comando/index.txt @@ -5,7 +5,11 @@ file: riga_di_comando-lezione_1.tar.gz file: riga_di_comando-lezione_1.tar.xz file: log-lezione_1.log + file: log-lezione_1-raw.log file: riga_di_comando-lezione_2.tar.xz + file: remove_events_from_log.sh + file: log-lezione_2.log + file: log-lezione_2-raw.log /restindex uservalues diff --git a/src/corsi/2014-linea_di_comando/log-lezione_2-raw.log b/src/corsi/2014-linea_di_comando/log-lezione_2-raw.log new file mode 100644 index 0000000..bdbcd79 --- /dev/null +++ b/src/corsi/2014-linea_di_comando/log-lezione_2-raw.log @@ -0,0 +1,289 @@ +21:00 <@diego71> per tutti: ricordatevi di collegarvi a #lifo-domande -> /join #lifo-domande +21:00 -!- Dereek [97408f29@gateway/web/freenode/ip.151.64.143.41] has joined #lifo +21:00 <@valhalla> come la volta scorsa, ci sarà qualcuno di noi su #lifo-domande a passare di qui le domande (stasera sarà diego71) e a dare assistenza al volo se qualcuno ha problemi +21:01 <@valhalla> oltre a diego71, sono erossi e warp10 +21:01 <@valhalla> la prima cosa da fare per la lezione di stasera sarà scaricare il materiale: +21:02 -!- mediechions1 [~mediechio@host184-7-dynamic.40-79-r.retail.telecomitalia.it] has joined #lifo +21:02 <@valhalla> aprite la riga di comando, andate con cd nella directory dove avete scaricato il materiale la volta scorsa +21:02 -!- tiziano [~tiziano@host195-180-dynamic.45-79-r.retail.telecomitalia.it] has joined #lifo +21:02 <@valhalla> con ls controllate di essere nella directory giusta, dovreste vedere ``lezione_1`` +21:03 <@valhalla> lì dentro, lanciate il comando ``wget http://www.lifolab.org/corsi/2014-linea_di_comando/riga_di_comando-lezione_2.tar.xz`` +21:03 -!- gianluca_ [54dd6636@gateway/web/freenode/ip.84.221.102.54] has joined #lifo +21:04 <@valhalla> wget è il programma classico per scaricare file da riga di comando, nella pagina di manuale trovate millemila opzioni per fare TUTTO +21:04 -!- turbometalskater [~turbometa@151.95.206.99] has joined #lifo +21:04 -!- gianluca_ [54dd6636@gateway/web/freenode/ip.84.221.102.54] has quit [Client Quit] +21:05 <@valhalla> (chiedo scusa, nel materiale il comando che ho appena scritto ha l'indirizzo sbagliato, nelle prossime lo metto a posto) +21:06 <@valhalla> se avete scaricato il file (se non avete visto il comando per farlo, chiedete pure sul canale #lifo-domande e verrà ripetuto), proseguiamo +21:07 <@valhalla> il file si chiama .tar.xz perché è un archivio tar compresso con xz +21:07 <@valhalla> lo si pu`o estrarre con ``tar -x -v -f dispense_2.tar.xz`` +21:07 <@valhalla> ehm +21:07 <@valhalla> ``tar -x -v -f riga_di_comando-lezione_2.tar.xz`` +21:07 -!- thefantaman [~thefantam@dynamic-adsl-78-14-187-93.clienti.tiscali.it] has joined #lifo +21:08 -!- faziel [4f1813dd@gateway/web/freenode/ip.79.24.19.221] has quit [Ping timeout: 245 seconds] +21:08 <@valhalla> -x sta per "estrai", -v per "verboso", ovvero gli si fa stampare quello che sta facendo (ed è un'opzione che quasi tutti i comandi hanno), -f è seguita dal file su cui lavorare +21:09 <@valhalla> le versioni moderne di tar si accorgono già che il file è compresso (e in che formato) e provvedono a scompattare nel modo giusto +21:09 <@valhalla> a questo punto potete usare ``ls`` e ci saranno due directory (``lezione_1 lezione_2`` e un file ``riga_di_comando-lezione_2.tar.xz`` +21:09 <@valhalla> entriamo nella directory della seconda lezione +21:10 <@valhalla> ``cd lezione_2``, che possiamo scrivere premendo ``cd le[tab]2`` +21:10 <@valhalla> e iniziamo con l'argomento della serata, che è manipolare file e directory +21:10 <@valhalla> così dopo questa serata si pu`o veramente usare la riga di comando al posto del file manager +21:11 <@valhalla> nel frattempo: ci sono domande? +21:11 <@diego71> < aldagaau> che differenza passa tra .tar.gz (classico) e tar.xz? +21:12 <@valhalla> xz è un formato di compressione più recente ed un po' più efficiente +21:12 -!- pxk [~pxk@host147-124-dynamic.56-82-r.retail.telecomitalia.it] has quit [] +21:13 <@valhalla> le alternative che si usano di solito sono .gz per la compatibilità con l'universo, .bz2 e .xz che lo sta sostituendo come potenzialmente non supportati da tutti, ma che comprimono di più +21:13 -!- faziel [4f1813dd@gateway/web/freenode/ip.79.24.19.221] has joined #lifo +21:13 <@valhalla> altre domande? +21:13 <@diego71> nessuna domanda +21:14 <@valhalla> allora, proseguiamo e creiamo una directory in cui fare le nostre prove di stasera, con ``mkdir esercizi`` +21:14 <@valhalla> se tutto va bene, non otterremo risposta, e questo è un comportamento abbastanza standard dei programmi da riga di comando +21:14 <@valhalla> se tutto va bene, tendono ad essere silenziosi, a parlare solo se qualcosa è andato storto +21:15 <@valhalla> per`o possiamo vedere il risultato con un bel ``ls``, e poi entrare nella directory creata con ``cd esercizi`` +21:15 <@valhalla> adesso creiamo un'altra directory ancora, ``mkdir altra_dir`` +21:15 -!- frank976 [~frank976@host55-152-dynamic.54-79-r.retail.telecomitalia.it] has joined #lifo +21:16 -!- frank976 [~frank976@host55-152-dynamic.54-79-r.retail.telecomitalia.it] has quit [Client Quit] +21:16 <@valhalla> ``ls`` per vedere il risultato, e poi proviamo a cancellarla +21:16 <@valhalla> ``rmdir altra_dir/`` (sempre scrivendo rmd[tab] a[tab]) +21:16 <@valhalla> adesso proviamo a ricrearla, ma riempiendola: +21:17 <@valhalla> ``mkdir -p altra_dir/una_dir_ancora`` +21:17 <@valhalla> ls +21:17 -!- frank976 [~frank976@host55-152-dynamic.54-79-r.retail.telecomitalia.it] has joined #lifo +21:17 <@valhalla> e poi ``ls altra_dir/`` e vediamo che contiene una seconda directory +21:18 <@valhalla> se proviamo ad usare ``rmdir altra_dir/`` ci risponderà qualcosa tipo ``rmdir: failed to remove ‘altra_dir/’: Directory not empty`` +21:18 <@valhalla> questo perché rmdir rimuove le directory solo se sono vuote (il che lo rende abbastanza sicuro da usare con disinvoltura) +21:18 <@valhalla> per poterla cancellare dovremo cancellare le due directory una per volta: +21:19 <@valhalla> ``rmdir altra_dir/una_dir_ancora/`` e poi ``rmdir altra_dir/`` +21:19 <@valhalla> domande? +21:19 <@diego71> < tafaRU> diego71: diff tra rm e rmdir +21:19 <@valhalla> rmdir come dicevo cancella solo le directory e solo se sono vuote +21:19 <@valhalla> rm lo vedremo più avanti, cancella anche i file, e cancella anche le directory piene +21:20 <@valhalla> (usato con le opzioni giuste) +21:20 <@valhalla> in teoria non ci sarebbe bisogno di rmdir, ma in certi casi è utile usarlo perché, come dicevo prima, è meno facile fare danni per aver scritto male +21:21 <@valhalla> con rm se si sbaglia ad indicare la directory da cancellare, si cancella ed è andata +21:21 <@valhalla> con rmdir non si perdono file :) +21:21 <@valhalla> altre domande? +21:21 <@diego71> no +21:21 <@valhalla> passo successivo, cp serve per copiare file e directory +21:22 -!- madi [~madi@unaffiliated/madi] has joined #lifo +21:22 <@valhalla> ``cp ../dispensa.rst ./un_file.txt`` +21:22 <@valhalla> con questo abbiamo copiato il file dispensa.rst che c'era nella directory sopra a quella corrente (..) nella directory corrente (.) con il nome un_file.txt +21:23 <@valhalla> possiamo vedere con ``ls`` cosa abbiamo fatto, e magari anche con ``ls -l`` +21:23 <@valhalla> usato in questo modo, cp copia solo i file, per copiare anche directory bisogna aggiungere l'opzione -r +21:24 <@valhalla> se si danno solo due parametri come in questo caso il primo è il nome di partenza, il secondo è il nome di destinazione +21:24 <@valhalla> se si danno più parametri, i primi sono i file da copiare, l'ultimo deve essere una directory, e tutti i file verranno copiati in quella directory (con il loro nome originale) +21:25 <@valhalla> ad esempio, inziiamo creando un altro file con ``touch altro_file.txt`` +21:25 <@valhalla> touch è un comando che serve per dire al computer "imposta la data di ultima modifica di questo file ad "adesso", e se non esiste lo crea +21:26 <@valhalla> è comodo per fare esempi, ma a volte lo si usa anche in casi reali +21:26 <@valhalla> a questo punto, creiamo una directory, ``mkdir directory`` e ci copiamo più file: +21:26 <@valhalla> ``cp un_file.txt altro_file.txt directory/`` +21:27 <@valhalla> ``ls directory/`` e vediamo che si è riempita +21:27 <@valhalla> domande? +21:27 -!- tafaRU [~Alex@87.253.117.217] has left #lifo [] +21:27 -!- tafaRU [~Alex@87.253.117.217] has joined #lifo +21:27 <@diego71> turbometalskater> sry, domanda in ritardo: esiste un sistema di cestino per l'rm da shell? +21:27 <@valhalla> no, non esiste un sistema di cestino, quello che viene cancellato viene cancellato +21:28 <@valhalla> esiste l'opzione ``-i`` con la quale viene chiesta conferma file per file, ma la vediamo dopo +21:28 <@valhalla> diego71: altre domande? +21:28 -!- rasalgethi [~quassel@host184-236-dynamic.45-79-r.retail.telecomitalia.it] has quit [Quit: http://quassel-irc.org - Chatta con comodo. Ovunque.] +21:29 <@valhalla> ok, prosegui +21:29 <@valhalla> proseguo +21:30 <@valhalla> a questo punto, possiamo creare un altro file nel modo "classico" in cui si creano: aprendolo con un programma +21:30 -!- taumaturgo [5d93b50d@gateway/web/freenode/ip.93.147.181.13] has joined #lifo +21:30 <@valhalla> ``nano terzo_file.txt``, possiamo scriverci qualcosa a caso +21:31 <@valhalla> e poi premere ctrl-x per uscire (lo dice nell'help in basso a sinistra) +21:31 <@valhalla> ``ls`` e vediamo che è apparso +21:31 <@valhalla> ``less terzo_file.txt`` e possiamo controllare che contiene effettivamente quello che ci abbiamo scritto +21:31 <@valhalla> (q per uscire da less, come già detto la volta scorsa) +21:32 <@valhalla> diego71: domande? +21:32 <@diego71> < Fra_Supercar83> possibile ordinare in un preciso ordine l'output del comando 'ls'? +21:32 <@valhalla> sì, è possibile +21:32 <@valhalla> con ``man ls`` si trovano le opzioni per ordinare in base a vari criteri +21:33 <@valhalla> ad esempio, ``-t`` ordina per data (di solito lo si usa assieme a ``-l`` in modo da vedere anche la data in questione) +21:33 <@valhalla> oppure ``-S`` per ordinare per dimensioni (anche qui, di solito usato assieme a ``-l`` e ``-h``) +21:34 <@valhalla> con ``-r`` si inverte l'ordine, in entrambi i casi +21:34 <@valhalla> un classico è ``ls -lrt`` per vedere in fondo qual'è il file pi`u recente +21:35 <@valhalla> (con ls ed altri comandi le opzioni da un carattere solo possono essere riassunte con un ``-`` solo) +21:35 <@valhalla> anche ricordato come ``ls -lart`` :) +21:35 <@valhalla> (-a stampa anche i file nascosti) +21:35 <@valhalla> altre domande? +21:36 <@valhalla> (ah, e l'altro classico è ls -lrSh per scoprire quali sono i file grossi che occupano spazio da cancellare) +21:36 <@valhalla> ok, proseguiamo con rm +21:37 <@valhalla> rm, come dicevo prima, cancella i file senza pietà +21:37 <@valhalla> quindi fate *molta* attenzione a quello che scrivete :) +21:37 <@valhalla> per prudenza, mettiamo sempre l'opzione ``-i``, che così si deve dare conferma +21:37 <@valhalla> inziiamo da ``rm -i un_file.txt`` +21:38 <@valhalla> quando chiede se cancellare il file, premiamo y (se il sistema è in inglese) o s (se è in italiano) e diamo invio +21:38 <@valhalla> dopo aver controllato che stia cancellando il file giusto +21:39 <@valhalla> (y dovrebbe funzionare sempre, anche con il sistema in italiano, comunque) +21:39 <@valhalla> adesso proviamo ``rm -i directory/`` +21:40 <@valhalla> e rm ci risponderà che non pu`o farlo, perché directory è una directory +21:40 <@valhalla> per poter cancellare le directory bisogna usare l'opzione -r, ovvero "ricorsivo", che prima cancella i contenuti e poi i contenitori +21:40 <@valhalla> ``rm -r -i directory`` +21:41 <@valhalla> (e avendo usato -i ci chieder`a conferma per ogni singolo file e directory che viene cancellata +21:41 <@valhalla> diego71: domande? +21:41 <@valhalla> ok, proseguamo +21:41 <@diego71> no +21:41 -!- paolettopn [~paolo@unaffiliated/paolettopn] has joined #lifo +21:42 <@valhalla> con ``ls -l`` vediamo che all'inizio c'`e una successine di caratteri tipo ``-rw-r--r--`` +21:42 -!- paolettopn [~paolo@unaffiliated/paolettopn] has left #lifo [] +21:43 <@valhalla> quelli sono i permessi dei file: il primo carattere indica il tipo (- per un file, d per una directory) e quelli successivi indicano i permessi di lettura, scrittura ed esecuzione per il proprietario del file, il gruppo a cui apparteiene il file e per tutti gli altri +21:43 <@valhalla> i permessi sono una cosa gestibile anche da interfaccia grafica, se qualcuno non li conosce ditemelo che ne parlo a fine lezione +21:43 <@valhalla> per modificarli da riga di comando, si usa il comando chmod +21:44 <@valhalla> che prende le opzioni in modo un po' diverso dal solito: +21:44 <@valhalla> innanzitutto gli si pu`o dare la somma dei permessi che si vogliono dare al file: ovvero +21:45 <@valhalla> esecuzione vale 1, scrittura vale 2, lettura vale 4 +21:45 <@valhalla> per dare il permesso di scrittura e lettura si usa 6 +21:45 <@valhalla> lettura ed esecuzione 5 +21:45 <@valhalla> lettura, scrittura ed esecuzione7 +21:45 <@valhalla> e si devono scrivere i permessi per tutti e tre le categorie +21:45 <@valhalla> quindi ad esempio: +21:46 <@valhalla> ``chmod 666 altro_file.txt`` da i permessi di lettura e scrittura a tutti +21:46 <@valhalla> ``chmod 644 altro_file.txt`` da i permessi di lettura e scrittura al proprietario, ma gli altri possono solo leggere +21:47 <@valhalla> ``chmod 755 altro_file.txt`` da il permesso di lettura, scrittura ed esecuzione al proprietario, lettura ed esecuzione a tutti (è un permesso classico per i programmi +21:47 <@valhalla> dopo aver dato quei comandi, potete usare ls -l per veder cambiare i permessi +21:47 <@valhalla> domande? +21:48 <@diego71> < stefano_> se non è ot puoi spiegare umask e come si usa? +21:48 <@valhalla> umask serve per impostare i permessi di default con il quale vengono creati i file +21:48 <@valhalla> ma spiegare come si usa è un po' troppo per questa lezione +21:49 <@valhalla> (anche perché richiede di fare un po' di conti in base 8) +21:49 <@valhalla> altre domande? +21:49 -!- popi [5230eb0f@gateway/web/freenode/ip.82.48.235.15] has joined #lifo +21:50 <@diego71> < aldagaau> mi è apparso altro_file.txt* (con asterisco) perché? +21:50 <@valhalla> l'asterisco sta ad indicare che quel file è un eseguibile (ovvero, ha i permessi di esecuzione) +21:50 -!- Delfino1983 is now known as Delfino1983_0u7 +21:50 <@valhalla> se si ha la riga di comando a colori è possibile che non ci sia quell'asterisco, ma ad esempio che il file sia evidenziato il verde +21:50 <@valhalla> (o in qualche altro colore a seconda delle impostazioni) +21:51 -!- Delfino1983_0u7 is now known as Delfino1983_Rai3 +21:51 <@diego71> < erio> il nome file è diventatodi colore verde, anche questo perchè è eseguibile? +21:51 <@valhalla> esatto :) +21:51 <@diego71> < aldagaau> però il mio vicino di pc ce l'ha verde come me ma senza asterisco. Creato assieme e con stessi permessi +21:52 <@valhalla> sì, dipende dalle impostazioni della shell (che possono cambiare a seconda della distribuzione) +21:52 <@valhalla> sono varianti che si trovano in giro +21:52 <@valhalla> sempre per evidenziare il fatto che il file sia eseguibile +21:53 <@valhalla> in modo che lo si veda ad occhio anche usando ``ls`` senza l'opzione ``-l`` +21:53 <@valhalla> se si è su una shell diversa dal solito, si può usare ``ls -l`` e poi ``ls`` su qualche file per vedere cosa fa +21:53 <@valhalla> altre domande? +21:54 <@diego71> < tiziano> si può usare chmod indicando i permessi in formato "-rw-r--r--" +21:54 -!- Ringmeister84 [~Ringmeist@ppp-222-99.21-151.libero.it] has joined #lifo +21:54 <@valhalla> purtroppo no, ma c'è un altro formato +21:55 <@valhalla> usando una delle lettere u per utente, g per gruppo, o per other oppure a per all (tutti assieme) seguito da un + o un - e dal permesso che si mette o toglie rispettivamente +21:55 <@valhalla> ad esempio ``chmod a-x altro_file.txt`` toglie a tutti il permesso di esecuzione +21:56 <@valhalla> mentre ``chmod g+w`` da il permesso di scrittura al gruppo +21:56 <@valhalla> o ``chmod o-r altro_file.txt`` toglie il permesso di lettura agli altri (ovvero chi non è nel gruppo ne' è il proprietairo) +21:56 <@valhalla> altre domande? +21:57 <@diego71> < erio> se do chmod 744 mi esce : -rwxr--r-- 1, non manca il gruppo o gli altri ? +21:57 <@valhalla> no, ci sono il proprietario "rwx", il gruppo "r--" e gli altri "r--" +21:58 <@valhalla> diego71: altre domande? +21:58 <@valhalla> ok, proseguiamo +21:58 <@diego71> no +21:59 <@valhalla> altri comandi utili per sostituire il file manager con la shell: per sapere lo spazio su disco occupato dai file +21:59 <@valhalla> con ``ls -l`` si ha solo la dimensione dei file, non delle directory +21:59 <@valhalla> (o meglio, si ha lo spazio occupato dalla directory stessa, non dai file che contiene) +21:59 <@valhalla> ``cd ..` per tornare alla directory sopra +22:00 <@valhalla> ``ls -l -h`` ci darà un paio di file da 1.pochi K e la directory esercizi da 4.0K (probabilmente) +22:00 <@valhalla> c'è il comando du che invece calcola le dimensioni dei file contenuti +22:01 <@valhalla> ``du -h .`` calcola le dimensioni di tutti i contenuti delle directory corrente e delle sue sottodirectory +22:01 <@valhalla> mentre ``du -s -h .`` calcola solo il riassunto finale della directory che gli è stata indicata esplicitamente +22:02 <@valhalla> soprattutto con file piccoli, il risultato potrebbe essere "sorprendente" +22:03 <@valhalla> come la directory esercizi che nel mio caso contiene un file da 0 byte ed uno da 17 byte, ma le dimensioni totali sono di 8.0K +22:03 <@valhalla> dipende dalla struttura del filesystem, ed è argomento decisamente OT +22:03 <@valhalla> ma in generale, se state cercando cose grosse da cancellare perché avete finito lo spazio, du da la risposta giusta :) +22:04 <@valhalla> altro comando per conoscere spazio occupato: ``df`` dice quanto spazio libero/occupato c'è su una partizione +22:04 <@valhalla> ``df -h`` e basta su tutte le partizioni montate +22:04 <@valhalla> ``df -h `` solo sulla partizione che contiene quella directroy +22:04 <@valhalla> diego71: domande? +22:05 <@diego71> < tiziano> esiste un comando per vedere quanti file ci sono nelle directory? +22:05 <@valhalla> non c'è un comando diretto che lo faccia, ma lo si ottiene combinando due comandi come vedremo nella prossima lezione :) +22:06 <@diego71> esiste un parametro del comando du (o altro) che permetta di vedere la grandezza di un singolo file contenuto in una directory o sub +22:06 <@valhalla> per vedere la grandezza del singolo file si pu`o usare ls +22:07 <@valhalla> ad esempio ls -l -h ``esercizi/terzo_file.txt`` +22:08 <@valhalla> se si usa ``du esercizi/terzo_file.txt`` si ottiene lo spazio occupato da quel file sul disco +22:09 <@valhalla> oppure per vederli tutti ``du -a`` che entra anche nelle sottodirectory e fa vedere tutti i file +22:09 <@valhalla> diego71: altre domande? +22:09 <@diego71> no +22:11 <@valhalla> ls +22:11 <@valhalla> ehm, sorry :) +22:11 <@valhalla> abbiamo iniziato la serata scompattando un file con tar +22:12 <@valhalla> adesso concludiamola creando una tarball :) +22:12 <@valhalla> (tarball = archivio tar) +22:12 <@valhalla> ``tar -c -v -f esercizi.tar esercizi/`` permette di creare una tarball, non compressa +22:13 <@valhalla> che contiene una directory (esercizi) e tutti i suoi contenuti +22:13 <@valhalla> ma di solito la si vuole anche comprimere, quindi o si usa l'opzione ``-z`` per comprimere con gzip, oppure ``-J`` per comprimere con xz +22:13 <@valhalla> quindi tar -c -J -v -f esercizi.tar.xz esercizi/ +22:13 <@valhalla> adesso possiamo vedere i contenuti con l'opzione ``-t`` (senza scompattarla) +22:14 <@valhalla> ``tar -t esercizi.tar`` +22:14 <@valhalla> oppure ``tar -t esercizi.tar.xz`` +22:14 <@valhalla> in automatico tar si accorge se deve scompattare con qualche formato +22:14 <@valhalla> ls +22:14 <@valhalla> ehm, di nuovo... +22:14 <@valhalla> diego71: domande? +22:15 <@diego71> < polva> nel caso di du -a il numero che è espresso accanto al file cosa sono? Kb? sono tutti multipli di 4 +22:15 <@valhalla> sì, lo sono (e sono multipli di 4K perché la maggior parte dei filesystem usati comunemente ha quello come block size) +22:16 <@valhalla> (quindi un file anche pi`u piccolo occupa comunque 4K) +22:16 <@valhalla> è un default specifico di du, perché ad esempio ls di default usa i byte +22:16 <@valhalla> altre domande? +22:16 <@diego71> < tafaRU> diego71: tar -t esercizi.tar mi dovrebbe mostrare il contenuto? +22:17 -!- albertux [~Icedove@dynamic-adsl-78-14-226-141.clienti.tiscali.it] has quit [Quit: Alla prossima...] +22:17 <@valhalla> manca la -f per specificare su che file deve lavorare +22:17 <@valhalla> ``tar -t -f esercizi.tar`` +22:18 -!- kyoshoevolva [~kyoshoevo@net-93-145-188-122.cust.dsl.teletu.it] has quit [Quit: Sto andando via] +22:18 <@valhalla> (i parametri per tar indicano file da aggiungere o da trovare nell'archivio, a seconda di quello che sta facendo) +22:18 <@valhalla> (il nome della tarball si da con -f) +22:18 <@valhalla> diego71: altre domande? +22:19 <@valhalla> sorry, ho visto che ho sbagliato io a scriverlo sopra, se vi rimane bloccato usate ctrl-c per chiudere +22:19 <@valhalla> altre domande? +22:19 <@diego71> < tiziano> scrivere tar -t esercizi.tar.xz oppure tar -tesercizi.tar.xz (senza spazio) è indifferente? +22:19 -!- Delfino1983_Rai3 is now known as Delfino1983 +22:20 <@valhalla> in teoria, sì, si può anche scrivere ``tar -tfesercizi.tar.xz`` (con la f) +22:20 <@valhalla> in pratica, non tutti i comandi accettano queste cose +22:20 <@valhalla> e in generale è illeggibile e facile a causare errori +22:20 <@valhalla> quindi meglio evitare :) +22:21 <@valhalla> altre domande? +22:21 <@diego71> < Fra_Supercar83> Non ho ben capito l'opzione '-f' nel comando 'tar' +22:21 <@valhalla> tar si aspetta due cose su cui lavorare: +22:22 <@valhalla> una tarball e dei file +22:22 <@valhalla> la tarball si indica con -f +22:22 <@valhalla> tutto il resto sono considerati dei file +22:22 -!- malo [~malo@217.203.139.21] has quit [Quit: Sto andando via] +22:22 <@valhalla> se si sta creando la tarball, sono i file da aggiungere alla stessa +22:22 <@valhalla> (file e directory, in modo ricorsivo) +22:23 <@valhalla> se si sta estraendo, si possono estrarre solo alcuni dei file contenuti, e li si indica sempre in quel modo +22:23 -!- Ringmeister84 [~Ringmeist@ppp-222-99.21-151.libero.it] has quit [Ping timeout: 264 seconds] +22:24 <@valhalla> ad esempio ``tar -t -f esercizi.tar esercizi/altro_file.txt`` elenca solo il file esercizi/altro_file.txt (se presente nella tarball) e non tutti gli altri contenuti +22:24 <@valhalla> (e con (``-x`` al posto di ``-t`` lo estrae)) +22:24 <@diego71> < gioque> per estrarre un file tar in una directory specifica? +22:25 <@valhalla> il modo pi`u semplice è usare cd per spostarsi in quella directory +22:25 <@valhalla> c'è un opzione per farlo, ma è molto pi`u facile sbagliare, meglio usare cd +22:25 <@valhalla> diego71: prossima domanda? +22:25 -!- DD3my [~DD3my@unaffiliated/dd3my] has quit [Quit: Sto andando via] +22:25 <@diego71> < stefano_> per aggiungere un file all'archivio creato si fa con -A? come? +22:26 <@valhalla> in teoria sì, si usa -A +22:26 -!- Letozaf_ [~Letozaf@95.236.254.248] has joined #lifo +22:26 <@valhalla> sinceramente non so se funzioni con i file compressi +22:27 <@valhalla> perché ad essere compresso è il tar finale, per cui per concatenare dovrebbe scomprimere, concatenare e ricomprimere, e non so se lo faccia +22:27 <@valhalla> andrebbe provato +22:27 <@valhalla> altre domande? +22:28 -!- giocat [~giocat@host22-119-dynamic.5-87-r.retail.telecomitalia.it] has quit [Quit: Sto andando via] +22:28 <@valhalla> ecco, vedo che erossi ci ha provato +22:28 <@valhalla> < erossi> tar: Cannot concatenate compressed archives +22:28 <@valhalla> non funziona con gli archivi compressi +22:29 <@valhalla> si deve scomprimere l'archivio, aggiungere il file, ricomprimerlo +22:29 -!- mediechions1 [~mediechio@host184-7-dynamic.40-79-r.retail.telecomitalia.it] has left #lifo [] +22:29 <@valhalla> se non ci sono altre domande direi che si pu`o finire prima che io scriva un'altro ls nella finestra sbagliata :) +22:30 <@valhalla> < erio> ho provato : tar -xf esercizi.tar altro_file.txt e mi dà "tar: altro_file.txt: non trovato nell'archivio +22:31 -!- depaolim [~depaolim@host68-237-dynamic.6-79-r.retail.telecomitalia.it] has quit [Quit: Leaving] +22:31 <@valhalla> dando ``tar -t -f esercizi.tar`` dovreste trovare che quella tarball non contiene il file altro_file.txt, ma il file esercizi/altro_file.txt +22:31 -!- Letozaf_ [~Letozaf@95.236.254.248] has left #lifo [] +22:31 <@valhalla> ovvero, tar vuole tutto il path con cui quel file è indicato nella tarball, non basta solo il nome del file +22:32 <@valhalla> quindi per estrarre quel file dovrete dare ``tar -xf esercizi.tar esercizi/altro_file.txt`` e verrà estratto nella directory esercizi +22:32 <@valhalla> ad esempio, ``mkdir altra_dir``, ``cd altra_dir`` e poi ``tar -xf ../esercizi.tar esercizi/altro_file.txt`` e potete vedere il risultato +22:32 <@valhalla> diego71: altre domande? +22:32 -!- MrPan [~marcopani@cable-78-34-86-86.netcologne.de] has left #lifo [] +22:33 <@diego71> sembra di no +22:34 <@valhalla> ok, ricordo a chi è arrivato tardi: +22:34 <@valhalla> abbiamo un account su friendica (social network distribuito) i cui post vengono riportati anche su identica (idem) +22:34 <@valhalla> se volete ricevere un avviso/promemoria per la prossima lezione potete seguire quegli account +22:34 <@valhalla> http://social.gl-como.it/profile/lifo ---> su friendica +22:35 <@valhalla> https://identi.ca/lifo ---> su identica +22:35 <@valhalla> http://social.gl-como.it/dfrn_poll/lifo ---> feed rss dell'account su friendica, se non siete iscritti a quei social network +22:35 <@valhalla> detto questo, chiudo la lezione e mi metto a preparare il log da pubblicare diff --git a/src/corsi/2014-linea_di_comando/log-lezione_2.log b/src/corsi/2014-linea_di_comando/log-lezione_2.log new file mode 100644 index 0000000..0312e42 --- /dev/null +++ b/src/corsi/2014-linea_di_comando/log-lezione_2.log @@ -0,0 +1,253 @@ +21:00 <@diego71> per tutti: ricordatevi di collegarvi a #lifo-domande -> /join #lifo-domande +21:00 <@valhalla> come la volta scorsa, ci sarà qualcuno di noi su #lifo-domande a passare di qui le domande (stasera sarà diego71) e a dare assistenza al volo se qualcuno ha problemi +21:01 <@valhalla> oltre a diego71, sono erossi e warp10 +21:01 <@valhalla> la prima cosa da fare per la lezione di stasera sarà scaricare il materiale: +21:02 <@valhalla> aprite la riga di comando, andate con cd nella directory dove avete scaricato il materiale la volta scorsa +21:02 <@valhalla> con ls controllate di essere nella directory giusta, dovreste vedere ``lezione_1`` +21:03 <@valhalla> lì dentro, lanciate il comando ``wget http://www.lifolab.org/corsi/2014-linea_di_comando/riga_di_comando-lezione_2.tar.xz`` +21:04 <@valhalla> wget è il programma classico per scaricare file da riga di comando, nella pagina di manuale trovate millemila opzioni per fare TUTTO +21:05 <@valhalla> (chiedo scusa, nel materiale il comando che ho appena scritto ha l'indirizzo sbagliato, nelle prossime lo metto a posto) +21:06 <@valhalla> se avete scaricato il file (se non avete visto il comando per farlo, chiedete pure sul canale #lifo-domande e verrà ripetuto), proseguiamo +21:07 <@valhalla> il file si chiama .tar.xz perché è un archivio tar compresso con xz +21:07 <@valhalla> lo si pu`o estrarre con ``tar -x -v -f dispense_2.tar.xz`` +21:07 <@valhalla> ehm +21:07 <@valhalla> ``tar -x -v -f riga_di_comando-lezione_2.tar.xz`` +21:08 <@valhalla> -x sta per "estrai", -v per "verboso", ovvero gli si fa stampare quello che sta facendo (ed è un'opzione che quasi tutti i comandi hanno), -f è seguita dal file su cui lavorare +21:09 <@valhalla> le versioni moderne di tar si accorgono già che il file è compresso (e in che formato) e provvedono a scompattare nel modo giusto +21:09 <@valhalla> a questo punto potete usare ``ls`` e ci saranno due directory (``lezione_1 lezione_2`` e un file ``riga_di_comando-lezione_2.tar.xz`` +21:09 <@valhalla> entriamo nella directory della seconda lezione +21:10 <@valhalla> ``cd lezione_2``, che possiamo scrivere premendo ``cd le[tab]2`` +21:10 <@valhalla> e iniziamo con l'argomento della serata, che è manipolare file e directory +21:10 <@valhalla> così dopo questa serata si pu`o veramente usare la riga di comando al posto del file manager +21:11 <@valhalla> nel frattempo: ci sono domande? +21:11 <@diego71> < aldagaau> che differenza passa tra .tar.gz (classico) e tar.xz? +21:12 <@valhalla> xz è un formato di compressione più recente ed un po' più efficiente +21:13 <@valhalla> le alternative che si usano di solito sono .gz per la compatibilità con l'universo, .bz2 e .xz che lo sta sostituendo come potenzialmente non supportati da tutti, ma che comprimono di più +21:13 <@valhalla> altre domande? +21:13 <@diego71> nessuna domanda +21:14 <@valhalla> allora, proseguiamo e creiamo una directory in cui fare le nostre prove di stasera, con ``mkdir esercizi`` +21:14 <@valhalla> se tutto va bene, non otterremo risposta, e questo è un comportamento abbastanza standard dei programmi da riga di comando +21:14 <@valhalla> se tutto va bene, tendono ad essere silenziosi, a parlare solo se qualcosa è andato storto +21:15 <@valhalla> per`o possiamo vedere il risultato con un bel ``ls``, e poi entrare nella directory creata con ``cd esercizi`` +21:15 <@valhalla> adesso creiamo un'altra directory ancora, ``mkdir altra_dir`` +21:16 <@valhalla> ``ls`` per vedere il risultato, e poi proviamo a cancellarla +21:16 <@valhalla> ``rmdir altra_dir/`` (sempre scrivendo rmd[tab] a[tab]) +21:16 <@valhalla> adesso proviamo a ricrearla, ma riempiendola: +21:17 <@valhalla> ``mkdir -p altra_dir/una_dir_ancora`` +21:17 <@valhalla> ls +21:17 <@valhalla> e poi ``ls altra_dir/`` e vediamo che contiene una seconda directory +21:18 <@valhalla> se proviamo ad usare ``rmdir altra_dir/`` ci risponderà qualcosa tipo ``rmdir: failed to remove ‘altra_dir/’: Directory not empty`` +21:18 <@valhalla> questo perché rmdir rimuove le directory solo se sono vuote (il che lo rende abbastanza sicuro da usare con disinvoltura) +21:18 <@valhalla> per poterla cancellare dovremo cancellare le due directory una per volta: +21:19 <@valhalla> ``rmdir altra_dir/una_dir_ancora/`` e poi ``rmdir altra_dir/`` +21:19 <@valhalla> domande? +21:19 <@diego71> < tafaRU> diego71: diff tra rm e rmdir +21:19 <@valhalla> rmdir come dicevo cancella solo le directory e solo se sono vuote +21:19 <@valhalla> rm lo vedremo più avanti, cancella anche i file, e cancella anche le directory piene +21:20 <@valhalla> (usato con le opzioni giuste) +21:20 <@valhalla> in teoria non ci sarebbe bisogno di rmdir, ma in certi casi è utile usarlo perché, come dicevo prima, è meno facile fare danni per aver scritto male +21:21 <@valhalla> con rm se si sbaglia ad indicare la directory da cancellare, si cancella ed è andata +21:21 <@valhalla> con rmdir non si perdono file :) +21:21 <@valhalla> altre domande? +21:21 <@diego71> no +21:21 <@valhalla> passo successivo, cp serve per copiare file e directory +21:22 <@valhalla> ``cp ../dispensa.rst ./un_file.txt`` +21:22 <@valhalla> con questo abbiamo copiato il file dispensa.rst che c'era nella directory sopra a quella corrente (..) nella directory corrente (.) con il nome un_file.txt +21:23 <@valhalla> possiamo vedere con ``ls`` cosa abbiamo fatto, e magari anche con ``ls -l`` +21:23 <@valhalla> usato in questo modo, cp copia solo i file, per copiare anche directory bisogna aggiungere l'opzione -r +21:24 <@valhalla> se si danno solo due parametri come in questo caso il primo è il nome di partenza, il secondo è il nome di destinazione +21:24 <@valhalla> se si danno più parametri, i primi sono i file da copiare, l'ultimo deve essere una directory, e tutti i file verranno copiati in quella directory (con il loro nome originale) +21:25 <@valhalla> ad esempio, inziiamo creando un altro file con ``touch altro_file.txt`` +21:25 <@valhalla> touch è un comando che serve per dire al computer "imposta la data di ultima modifica di questo file ad "adesso", e se non esiste lo crea +21:26 <@valhalla> è comodo per fare esempi, ma a volte lo si usa anche in casi reali +21:26 <@valhalla> a questo punto, creiamo una directory, ``mkdir directory`` e ci copiamo più file: +21:26 <@valhalla> ``cp un_file.txt altro_file.txt directory/`` +21:27 <@valhalla> ``ls directory/`` e vediamo che si è riempita +21:27 <@valhalla> domande? +21:27 <@diego71> turbometalskater> sry, domanda in ritardo: esiste un sistema di cestino per l'rm da shell? +21:27 <@valhalla> no, non esiste un sistema di cestino, quello che viene cancellato viene cancellato +21:28 <@valhalla> esiste l'opzione ``-i`` con la quale viene chiesta conferma file per file, ma la vediamo dopo +21:28 <@valhalla> diego71: altre domande? +21:29 <@valhalla> ok, prosegui +21:29 <@valhalla> proseguo +21:30 <@valhalla> a questo punto, possiamo creare un altro file nel modo "classico" in cui si creano: aprendolo con un programma +21:30 <@valhalla> ``nano terzo_file.txt``, possiamo scriverci qualcosa a caso +21:31 <@valhalla> e poi premere ctrl-x per uscire (lo dice nell'help in basso a sinistra) +21:31 <@valhalla> ``ls`` e vediamo che è apparso +21:31 <@valhalla> ``less terzo_file.txt`` e possiamo controllare che contiene effettivamente quello che ci abbiamo scritto +21:31 <@valhalla> (q per uscire da less, come già detto la volta scorsa) +21:32 <@valhalla> diego71: domande? +21:32 <@diego71> < Fra_Supercar83> possibile ordinare in un preciso ordine l'output del comando 'ls'? +21:32 <@valhalla> sì, è possibile +21:32 <@valhalla> con ``man ls`` si trovano le opzioni per ordinare in base a vari criteri +21:33 <@valhalla> ad esempio, ``-t`` ordina per data (di solito lo si usa assieme a ``-l`` in modo da vedere anche la data in questione) +21:33 <@valhalla> oppure ``-S`` per ordinare per dimensioni (anche qui, di solito usato assieme a ``-l`` e ``-h``) +21:34 <@valhalla> con ``-r`` si inverte l'ordine, in entrambi i casi +21:34 <@valhalla> un classico è ``ls -lrt`` per vedere in fondo qual'è il file pi`u recente +21:35 <@valhalla> (con ls ed altri comandi le opzioni da un carattere solo possono essere riassunte con un ``-`` solo) +21:35 <@valhalla> anche ricordato come ``ls -lart`` :) +21:35 <@valhalla> (-a stampa anche i file nascosti) +21:35 <@valhalla> altre domande? +21:36 <@valhalla> (ah, e l'altro classico è ls -lrSh per scoprire quali sono i file grossi che occupano spazio da cancellare) +21:36 <@valhalla> ok, proseguiamo con rm +21:37 <@valhalla> rm, come dicevo prima, cancella i file senza pietà +21:37 <@valhalla> quindi fate *molta* attenzione a quello che scrivete :) +21:37 <@valhalla> per prudenza, mettiamo sempre l'opzione ``-i``, che così si deve dare conferma +21:37 <@valhalla> inziiamo da ``rm -i un_file.txt`` +21:38 <@valhalla> quando chiede se cancellare il file, premiamo y (se il sistema è in inglese) o s (se è in italiano) e diamo invio +21:38 <@valhalla> dopo aver controllato che stia cancellando il file giusto +21:39 <@valhalla> (y dovrebbe funzionare sempre, anche con il sistema in italiano, comunque) +21:39 <@valhalla> adesso proviamo ``rm -i directory/`` +21:40 <@valhalla> e rm ci risponderà che non pu`o farlo, perché directory è una directory +21:40 <@valhalla> per poter cancellare le directory bisogna usare l'opzione -r, ovvero "ricorsivo", che prima cancella i contenuti e poi i contenitori +21:40 <@valhalla> ``rm -r -i directory`` +21:41 <@valhalla> (e avendo usato -i ci chieder`a conferma per ogni singolo file e directory che viene cancellata +21:41 <@valhalla> diego71: domande? +21:41 <@valhalla> ok, proseguamo +21:41 <@diego71> no +21:42 <@valhalla> con ``ls -l`` vediamo che all'inizio c'`e una successine di caratteri tipo ``-rw-r--r--`` +21:43 <@valhalla> quelli sono i permessi dei file: il primo carattere indica il tipo (- per un file, d per una directory) e quelli successivi indicano i permessi di lettura, scrittura ed esecuzione per il proprietario del file, il gruppo a cui apparteiene il file e per tutti gli altri +21:43 <@valhalla> i permessi sono una cosa gestibile anche da interfaccia grafica, se qualcuno non li conosce ditemelo che ne parlo a fine lezione +21:43 <@valhalla> per modificarli da riga di comando, si usa il comando chmod +21:44 <@valhalla> che prende le opzioni in modo un po' diverso dal solito: +21:44 <@valhalla> innanzitutto gli si pu`o dare la somma dei permessi che si vogliono dare al file: ovvero +21:45 <@valhalla> esecuzione vale 1, scrittura vale 2, lettura vale 4 +21:45 <@valhalla> per dare il permesso di scrittura e lettura si usa 6 +21:45 <@valhalla> lettura ed esecuzione 5 +21:45 <@valhalla> lettura, scrittura ed esecuzione7 +21:45 <@valhalla> e si devono scrivere i permessi per tutti e tre le categorie +21:45 <@valhalla> quindi ad esempio: +21:46 <@valhalla> ``chmod 666 altro_file.txt`` da i permessi di lettura e scrittura a tutti +21:46 <@valhalla> ``chmod 644 altro_file.txt`` da i permessi di lettura e scrittura al proprietario, ma gli altri possono solo leggere +21:47 <@valhalla> ``chmod 755 altro_file.txt`` da il permesso di lettura, scrittura ed esecuzione al proprietario, lettura ed esecuzione a tutti (è un permesso classico per i programmi +21:47 <@valhalla> dopo aver dato quei comandi, potete usare ls -l per veder cambiare i permessi +21:47 <@valhalla> domande? +21:48 <@diego71> < stefano_> se non è ot puoi spiegare umask e come si usa? +21:48 <@valhalla> umask serve per impostare i permessi di default con il quale vengono creati i file +21:48 <@valhalla> ma spiegare come si usa è un po' troppo per questa lezione +21:49 <@valhalla> (anche perché richiede di fare un po' di conti in base 8) +21:49 <@valhalla> altre domande? +21:50 <@diego71> < aldagaau> mi è apparso altro_file.txt* (con asterisco) perché? +21:50 <@valhalla> l'asterisco sta ad indicare che quel file è un eseguibile (ovvero, ha i permessi di esecuzione) +21:50 <@valhalla> se si ha la riga di comando a colori è possibile che non ci sia quell'asterisco, ma ad esempio che il file sia evidenziato il verde +21:50 <@valhalla> (o in qualche altro colore a seconda delle impostazioni) +21:51 <@diego71> < erio> il nome file è diventatodi colore verde, anche questo perchè è eseguibile? +21:51 <@valhalla> esatto :) +21:51 <@diego71> < aldagaau> però il mio vicino di pc ce l'ha verde come me ma senza asterisco. Creato assieme e con stessi permessi +21:52 <@valhalla> sì, dipende dalle impostazioni della shell (che possono cambiare a seconda della distribuzione) +21:52 <@valhalla> sono varianti che si trovano in giro +21:52 <@valhalla> sempre per evidenziare il fatto che il file sia eseguibile +21:53 <@valhalla> in modo che lo si veda ad occhio anche usando ``ls`` senza l'opzione ``-l`` +21:53 <@valhalla> se si è su una shell diversa dal solito, si può usare ``ls -l`` e poi ``ls`` su qualche file per vedere cosa fa +21:53 <@valhalla> altre domande? +21:54 <@diego71> < tiziano> si può usare chmod indicando i permessi in formato "-rw-r--r--" +21:54 <@valhalla> purtroppo no, ma c'è un altro formato +21:55 <@valhalla> usando una delle lettere u per utente, g per gruppo, o per other oppure a per all (tutti assieme) seguito da un + o un - e dal permesso che si mette o toglie rispettivamente +21:55 <@valhalla> ad esempio ``chmod a-x altro_file.txt`` toglie a tutti il permesso di esecuzione +21:56 <@valhalla> mentre ``chmod g+w`` da il permesso di scrittura al gruppo +21:56 <@valhalla> o ``chmod o-r altro_file.txt`` toglie il permesso di lettura agli altri (ovvero chi non è nel gruppo ne' è il proprietairo) +21:56 <@valhalla> altre domande? +21:57 <@diego71> < erio> se do chmod 744 mi esce : -rwxr--r-- 1, non manca il gruppo o gli altri ? +21:57 <@valhalla> no, ci sono il proprietario "rwx", il gruppo "r--" e gli altri "r--" +21:58 <@valhalla> diego71: altre domande? +21:58 <@valhalla> ok, proseguiamo +21:58 <@diego71> no +21:59 <@valhalla> altri comandi utili per sostituire il file manager con la shell: per sapere lo spazio su disco occupato dai file +21:59 <@valhalla> con ``ls -l`` si ha solo la dimensione dei file, non delle directory +21:59 <@valhalla> (o meglio, si ha lo spazio occupato dalla directory stessa, non dai file che contiene) +21:59 <@valhalla> ``cd ..` per tornare alla directory sopra +22:00 <@valhalla> ``ls -l -h`` ci darà un paio di file da 1.pochi K e la directory esercizi da 4.0K (probabilmente) +22:00 <@valhalla> c'è il comando du che invece calcola le dimensioni dei file contenuti +22:01 <@valhalla> ``du -h .`` calcola le dimensioni di tutti i contenuti delle directory corrente e delle sue sottodirectory +22:01 <@valhalla> mentre ``du -s -h .`` calcola solo il riassunto finale della directory che gli è stata indicata esplicitamente +22:02 <@valhalla> soprattutto con file piccoli, il risultato potrebbe essere "sorprendente" +22:03 <@valhalla> come la directory esercizi che nel mio caso contiene un file da 0 byte ed uno da 17 byte, ma le dimensioni totali sono di 8.0K +22:03 <@valhalla> dipende dalla struttura del filesystem, ed è argomento decisamente OT +22:03 <@valhalla> ma in generale, se state cercando cose grosse da cancellare perché avete finito lo spazio, du da la risposta giusta :) +22:04 <@valhalla> altro comando per conoscere spazio occupato: ``df`` dice quanto spazio libero/occupato c'è su una partizione +22:04 <@valhalla> ``df -h`` e basta su tutte le partizioni montate +22:04 <@valhalla> ``df -h `` solo sulla partizione che contiene quella directroy +22:04 <@valhalla> diego71: domande? +22:05 <@diego71> < tiziano> esiste un comando per vedere quanti file ci sono nelle directory? +22:05 <@valhalla> non c'è un comando diretto che lo faccia, ma lo si ottiene combinando due comandi come vedremo nella prossima lezione :) +22:06 <@diego71> esiste un parametro del comando du (o altro) che permetta di vedere la grandezza di un singolo file contenuto in una directory o sub +22:06 <@valhalla> per vedere la grandezza del singolo file si pu`o usare ls +22:07 <@valhalla> ad esempio ls -l -h ``esercizi/terzo_file.txt`` +22:08 <@valhalla> se si usa ``du esercizi/terzo_file.txt`` si ottiene lo spazio occupato da quel file sul disco +22:09 <@valhalla> oppure per vederli tutti ``du -a`` che entra anche nelle sottodirectory e fa vedere tutti i file +22:09 <@valhalla> diego71: altre domande? +22:09 <@diego71> no +22:11 <@valhalla> ls +22:11 <@valhalla> ehm, sorry :) +22:11 <@valhalla> abbiamo iniziato la serata scompattando un file con tar +22:12 <@valhalla> adesso concludiamola creando una tarball :) +22:12 <@valhalla> (tarball = archivio tar) +22:12 <@valhalla> ``tar -c -v -f esercizi.tar esercizi/`` permette di creare una tarball, non compressa +22:13 <@valhalla> che contiene una directory (esercizi) e tutti i suoi contenuti +22:13 <@valhalla> ma di solito la si vuole anche comprimere, quindi o si usa l'opzione ``-z`` per comprimere con gzip, oppure ``-J`` per comprimere con xz +22:13 <@valhalla> quindi tar -c -J -v -f esercizi.tar.xz esercizi/ +22:13 <@valhalla> adesso possiamo vedere i contenuti con l'opzione ``-t`` (senza scompattarla) +22:14 <@valhalla> ``tar -t esercizi.tar`` +22:14 <@valhalla> oppure ``tar -t esercizi.tar.xz`` +22:14 <@valhalla> in automatico tar si accorge se deve scompattare con qualche formato +22:14 <@valhalla> ls +22:14 <@valhalla> ehm, di nuovo... +22:14 <@valhalla> diego71: domande? +22:15 <@diego71> < polva> nel caso di du -a il numero che è espresso accanto al file cosa sono? Kb? sono tutti multipli di 4 +22:15 <@valhalla> sì, lo sono (e sono multipli di 4K perché la maggior parte dei filesystem usati comunemente ha quello come block size) +22:16 <@valhalla> (quindi un file anche pi`u piccolo occupa comunque 4K) +22:16 <@valhalla> è un default specifico di du, perché ad esempio ls di default usa i byte +22:16 <@valhalla> altre domande? +22:16 <@diego71> < tafaRU> diego71: tar -t esercizi.tar mi dovrebbe mostrare il contenuto? +22:17 <@valhalla> manca la -f per specificare su che file deve lavorare +22:17 <@valhalla> ``tar -t -f esercizi.tar`` +22:18 <@valhalla> (i parametri per tar indicano file da aggiungere o da trovare nell'archivio, a seconda di quello che sta facendo) +22:18 <@valhalla> (il nome della tarball si da con -f) +22:18 <@valhalla> diego71: altre domande? +22:19 <@valhalla> sorry, ho visto che ho sbagliato io a scriverlo sopra, se vi rimane bloccato usate ctrl-c per chiudere +22:19 <@valhalla> altre domande? +22:19 <@diego71> < tiziano> scrivere tar -t esercizi.tar.xz oppure tar -tesercizi.tar.xz (senza spazio) è indifferente? +22:20 <@valhalla> in teoria, sì, si può anche scrivere ``tar -tfesercizi.tar.xz`` (con la f) +22:20 <@valhalla> in pratica, non tutti i comandi accettano queste cose +22:20 <@valhalla> e in generale è illeggibile e facile a causare errori +22:20 <@valhalla> quindi meglio evitare :) +22:21 <@valhalla> altre domande? +22:21 <@diego71> < Fra_Supercar83> Non ho ben capito l'opzione '-f' nel comando 'tar' +22:21 <@valhalla> tar si aspetta due cose su cui lavorare: +22:22 <@valhalla> una tarball e dei file +22:22 <@valhalla> la tarball si indica con -f +22:22 <@valhalla> tutto il resto sono considerati dei file +22:22 <@valhalla> se si sta creando la tarball, sono i file da aggiungere alla stessa +22:22 <@valhalla> (file e directory, in modo ricorsivo) +22:23 <@valhalla> se si sta estraendo, si possono estrarre solo alcuni dei file contenuti, e li si indica sempre in quel modo +22:24 <@valhalla> ad esempio ``tar -t -f esercizi.tar esercizi/altro_file.txt`` elenca solo il file esercizi/altro_file.txt (se presente nella tarball) e non tutti gli altri contenuti +22:24 <@valhalla> (e con (``-x`` al posto di ``-t`` lo estrae)) +22:24 <@diego71> < gioque> per estrarre un file tar in una directory specifica? +22:25 <@valhalla> il modo pi`u semplice è usare cd per spostarsi in quella directory +22:25 <@valhalla> c'è un opzione per farlo, ma è molto pi`u facile sbagliare, meglio usare cd +22:25 <@valhalla> diego71: prossima domanda? +22:25 <@diego71> < stefano_> per aggiungere un file all'archivio creato si fa con -A? come? +22:26 <@valhalla> in teoria sì, si usa -A +22:26 <@valhalla> sinceramente non so se funzioni con i file compressi +22:27 <@valhalla> perché ad essere compresso è il tar finale, per cui per concatenare dovrebbe scomprimere, concatenare e ricomprimere, e non so se lo faccia +22:27 <@valhalla> andrebbe provato +22:27 <@valhalla> altre domande? +22:28 <@valhalla> ecco, vedo che erossi ci ha provato +22:28 <@valhalla> < erossi> tar: Cannot concatenate compressed archives +22:28 <@valhalla> non funziona con gli archivi compressi +22:29 <@valhalla> si deve scomprimere l'archivio, aggiungere il file, ricomprimerlo +22:29 <@valhalla> se non ci sono altre domande direi che si pu`o finire prima che io scriva un'altro ls nella finestra sbagliata :) +22:30 <@valhalla> < erio> ho provato : tar -xf esercizi.tar altro_file.txt e mi dà "tar: altro_file.txt: non trovato nell'archivio +22:31 <@valhalla> dando ``tar -t -f esercizi.tar`` dovreste trovare che quella tarball non contiene il file altro_file.txt, ma il file esercizi/altro_file.txt +22:31 <@valhalla> ovvero, tar vuole tutto il path con cui quel file è indicato nella tarball, non basta solo il nome del file +22:32 <@valhalla> quindi per estrarre quel file dovrete dare ``tar -xf esercizi.tar esercizi/altro_file.txt`` e verrà estratto nella directory esercizi +22:32 <@valhalla> ad esempio, ``mkdir altra_dir``, ``cd altra_dir`` e poi ``tar -xf ../esercizi.tar esercizi/altro_file.txt`` e potete vedere il risultato +22:32 <@valhalla> diego71: altre domande? +22:33 <@diego71> sembra di no +22:34 <@valhalla> ok, ricordo a chi è arrivato tardi: +22:34 <@valhalla> abbiamo un account su friendica (social network distribuito) i cui post vengono riportati anche su identica (idem) +22:34 <@valhalla> se volete ricevere un avviso/promemoria per la prossima lezione potete seguire quegli account +22:34 <@valhalla> http://social.gl-como.it/profile/lifo ---> su friendica +22:35 <@valhalla> https://identi.ca/lifo ---> su identica +22:35 <@valhalla> http://social.gl-como.it/dfrn_poll/lifo ---> feed rss dell'account su friendica, se non siete iscritti a quei social network +22:35 <@valhalla> detto questo, chiudo la lezione e mi metto a preparare il log da pubblicare -- cgit v1.2.3