PDA

View Full Version : Learning Linux practing it!!


barzi
16-09-2007, 12:25
Ciao a tutti.
ho una proposta su come imparare/insegnare Linux.
Sul Web ci sono molti manuali, c'è una dose di informazioni incredibile.
Ho scaricato diversi manuali,qualcuno fatto bene,qualcuno un po meno bene ma in linea di massima ci siamo (i migliori che ho trovato sono qui: http://www.isinet.it/~marco/unix/manuale-unix.pdf e qui: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ )

Però uno li prende... li legge.... e pensa :"Ah si ok... questi sono i permessi... ah si il tar!! Ah però! Carino!!!! WOW!!! Che figata il crontab!!!"

Dopo aver letto ste cose il giorno seguente nn ci si ricorda piu niente (anche se si è speso qualche quarto d'ora su qualche comando). A me ad esempio è capitato che taaaaanto tempo fa lessi qualcosa circa il crontab. Pensai :"ah figo!".

Dopo abbastanza tempo mi è capitato al lavoro di dover pianificare un'operazione giornaliera sul server linux. Pensavo tra me e me :"Chissà se si può fare?" Mi metto alla ricerca su internet e scopro l'esistenza di sto crontab. Me lo studio e faccio sta pianificazione.

Ora io questa cosa l'avevo letta ma.... l'ho dimenticata subito!!! Mi sono accorto di averla gia letta proprio stamattina scartabellando un po di carte che ho qui con me... E ho pensato:"Minkia il crontab già lo avrei dovuto sapere!!!" . Questo a dimostrazione del fatto che le cose leggendole si dimenticano.
Un proverbio cinese recita più o meno sta cosa qua:

1) Ascolto e dimentico
2) Vedo e ricordo
3) Faccio e capisco

Bene. Quindi secondo me bisognerebbe puntare sul terzo punto. Attualmente mi ritrovo a dover insegnare qualche comando da terminale ad un ragazzo che lavora con me che è a completo digiuno di Linux. Per fargli rimanere impresse le cose in testa gli ho dato un prontuario di comandi, gli ho spiegato come funziona il comando "man" e gli ho creato un account per connettersi al server linux. Bene. Gli sto insegnando linux assegnandogli degli esercizi. Devo dire che ci ha sbattuto un po la testa ma ora tutto ciò che ha fatto ce l'ha bene impresso. Sono partito da esercizi del tipo

a. Crea un'alberatura di cartelle fatta in questo modo ( e gli ho fatto un disegno). A questo punto ti do dei dei files e mettili in queste cartelle e poi sposta e rinomina i files in questo modo qua (e gli facevo un disegnino). Dopo aver fatto tutto ciò facevo qualcosa come :"Ora elimina la cartella B con tutto il suo contenuto facendo uso di una sola istruzione". Ho strutturato questo esercizio per fargli prendere dimestichezza con il file system.

b. Dopo una breve introduzione sul vi e sul vim gli ho iniziato a far scrivere qualche testo, proponendo esercizi del tipo: "...facendo l'uso del copia incolla sotto vi replica il primo blocco di 5 righe alla fine del testo per 3 volte e salva tutto in /...../...../...." dandogli un percorso. In questo modo oltre ad insegnargli il vi gli facevo imparare operazioni un po più avanzate.

c. A questo punto gli ho insegnato qualcosa sul tar. o meglio gli ho spiegato la differenza tra archivio e archivio compresso e gli ho fatto fare un esercizio del tipo:" scrivi 5 files con vi e salvali come a.txt,b.txt,c.txt,d.txt,e.txt. Mettili salvali un po dove vuoi. A questo punto crea un archivio di questi files ad eccezione del file e.txt. Visualizza senza scompattare il contenuto di Archivio.tar. Elimina il file c.txt dall'Archivio e aggiungigi il file e.txt. Adesso comprimi l'archivio. Ora scompatta l'archivio nella cartella ./XYZ"

d. Utilizzo di crontab. Date 4 cartelle A,B,C,D e altre 4 cartelle a,b,c,d pianificare un'operazione che ogni notte alle 2:00 A) ripulisca il contenuto di a,b,c,d B) Copi il conteuto di A dentro a, il contenuto di B dentro b, il contenuto di C dentro c e il contenuto di E dentro e (tip: usare un ciclo FOR per fare ciò). Generare automaticamente un file log.txt che mostri A) La data in cui è avvenuta l'operazione con l'ora B) tutto il contenuto alle 2:01 delle cartelle a,b,c,d. In pratica il contenuto aggiornato delle cartelle a,b,c,d deve essere memorizzato automaticamente nel file log.txt

Devo dire che è il metodo più rapido e funzionale che ho trovato!! Ora 'sto ragazzo fa un uso intensivo del TAB e del man. Si muove con agilità nel file system e si trova a suo agio con vim. Sono davvero contento dei risultati ottenuti. Ovviamente gli assegnavo un esercizio e gli dicevo:" Qui sul server ci sono diversi manuali e prontuari. Quello che ti serve ci sta scritto. Fai parecchio uso del comando man e studiati le opzioni. Vedi che ce la farai". E io andavo via. Tornavo nella sua stanzetta una volta ogni 1-2 ore per vedere i risultati ottenuti. E ogni tanto lo "orientavo" ma facevo in modo che alla soluzione ci arrivasse lui con le sue gambe.

Bene,dopo sta lunga introduzione, che ne dite di sfruttare questo 3D per proporre degli "esercizi" per far capire Linux(me compreso)? Dalla mia esperienza credo che il "practing" sia il modo migliore per apprendere.
Penso che in fondo se una persona non ha un obbiettivo le cose non se le impara. Invece in questo modo di pongono degli obbiettivi.Diciamo che è una via alternativa per imparare "sul campo" linux. Non credete?
Considerate che SERVE anche a me approfondire un po visto che conosco solo 4 minkiate. Ad esempio potete proporre esercizi per familiarizzare con gli script della shell, esercizi sulla gestione di utenti/gruppi e permessi, esercizi sull'impostazione di un PC, sulla compilazione dei sorgenti.... su come controllare l'HW del PC. magari possiamo strutturare ogni "esercizio" con dei prerequisiti del tipo:" Per fare questo esercizio devi vederti prima ste cose qua...1) cosa c'è nella cartella /dev 2) Il ciclo for 3) cosa è uno script 4) ...."
Che ne pensate?

Secondo me si eliminerebbero ancche tanti 3D del tipo :"Come faccio a fare questo?" Una risposta potrebbe essere :" fatti l'esercizio 4.1".

Pensate si possa fare una cosa del genere? :)

MrAsd
16-09-2007, 12:43
Che ne pensate?

Secondo me si eliminerebbero ancche tanti 3D del tipo :"Come faccio a fare questo?" Una risposta potrebbe essere :" fatti l'esercizio 4.1".

Pensate si possa fare una cosa del genere? :)

Per fare si può fare il problema è che non credo che diminuirebbe la quantità di domande banali sul come si fa "questo o quello" perché la maggior parte delle persone trova molto più semplice scrivere un messaggio di aiuto e lasciare che sia qualcun altro a trovare la soluzione che perdere anche soltanto 10 minuti a leggere la documentazione o a tentare di trovare da solo la risposta.

barzi
16-09-2007, 12:47
Beh l'abbattimemto dei "soliti" 3D non dico che debba essere del 100% ma già un 30% in meno sarebbe un buon traguardo no? :)

barzi
16-09-2007, 12:52
Tornando in 3D magari inizio io proponendo quei 4 esercizi di sopra. Il primo forse è un po generico (serve più che altro ad imparare a muoversi nel filesystem), magari poi si fa un disegnino e si struttura un po meglio.

Per il b. i prerequisiti sono "cerca in rete vi" . Anche questo magari è da strutturare meglio

Per il c. i prerequisiti sono :"Leggiti prima qualcosa sull'archiviazione dei files e sulal compressione degli stessi"

Per il d. " Cerca come si ridirezionano gli output sotto linux"

Enjoy. :)

Fugazi
16-09-2007, 16:31
Io nel tempo ho notato 2 cose:

- Quando ho deciso di imparare qualcosa, ho imparato di più con manuali che procedevano per argomenti facendo esempi pratici, che con un altri che spiegavano la sintassi dei comandi (o altro) in via quasi esclusivamente teorica.

- Il 90% della documentazione su Linux & C. che si trova in rete è piuttosto teorica, capire l'utilizzo PRATICO di un comando leggendo il man spesso è fantascienza, non parliamo poi della documentazione di certe applicazioni che è fatta più per gli sviluppatori (intenzionati a fare hacking) che per gli utenti.

Un manuale o una serie di miniguide del genere proposto sarebbe utile ma teniamo conto che ci sono già gli How To (praticamente equivalenti alla proposta), non sarebbe forse meglio scriverne qualcuno e inviarlo a siti esistenti che li raccolgono, invece di reinventare l'acqua calda? (cosa peraltro abituale nel mondo open sources, dove è usuale che 10 sviluppatori facciano 10 applicazioni equivalenti piuttosto che mettersi insieme e farne una sola come si deve - vedi gli innumerevoli CAD-giocattolo sotto Linux e l'assenza di un vero concorrente open di ACAD, oppure le dozzine di Wiki su Linux, di cui nemmeno una lontanamente completa)

barzi
16-09-2007, 17:04
Ok per i manuali. Però poi si dimentica ciò che si legge se non si fa nulla. Stessa cosa per gli HOW TO. Sono buoni ma vengono utilizzati SOLO quando bisogna fare qualcosa di specifio. Il problema è DOVER FARE QUALCOSA. A volte penso:"Ah bene,ora imparo Linux." Accendo il PC e penso:"Ok mo che faccio?".
Per questo IMHO non sarebbe male avere degli Input. Ad esempio:"Bene ora devo archiviare dei files" e uno vede come si fa..."Ok devo fare un'operazione pianificata...." ==> Ci si documenta e si fa.
E' che a volte quello che manca sono proprio gli input. Almeno è ciò che succede a me (non credo cmq di essere il solo). All'inizio uno è spaesato co tutte ste cartelle /dev /bin /etc.... E cosa sono?
Magari invece ponendo "Controlla gli HD che vengono montati in automatico" uno inizia a vedere UNA sola cartella di quelle sopra.... E poi pian piano le impara tutte.
Dandosi degli obiettivi si esplora il S.O. pezzetto per pezzetto. Io lo ritereri un percorso meglio articolato.
che ne pensate? :)

le_
16-09-2007, 18:26
Sono dell'idea che alla fine chi e` destino che impari, imparera` da se`.
La documentazione abbonda ed e` sufficente installarsi Slackware per avere tutte le occasioni possibili di esercitarsi, chi vuole imparare deve solo sapere che deve evitare praticamente tutte le altre distribuzioni che aggiungono automatismi e complessita` nascondendo il sistema.

Quello la` che si e` messo a fare gli esercizi e` perche` evidentemente e` un tuo collega e doveva farlo, ma mica credere che la gente che viene su interrnet a chiedere aiuto si metta a fare gli esercizi!!
Il 99% degli utilizzatori ormai rimarra` sempre niubbo come quando usava windows perche` per lo piu` si vuole semplicemente risolvere i problemi e fare quel che si deve fare senza perderci tanto tempo dietro, e se una volta non era possibile oggi ormai lo sta diventando sempre piu`.
E se non va, cambiano distribuzioni finche` non va.

barzi
17-09-2007, 18:32
Beh su qualche punto sono anche daccordo come quando dici che se è destino che uno impari imparerà da se.
E' vero che oramai ci sono automatismi ecc ecc e si cambia di continuo distribuzione. Io ad esempio sono un utilizzatore da veramente poco e ho scelto di installarmi la Debian perchè leggendo qua e la ho realizzato che è un po una "via di mezzo" tra il very simple e l'impara qualcosa. D'altra parte ho scaricato una guida di moooolte pagine sulla Debian scritta presumibilmente da un giapponese ma mi ha lasciato un po perplesso (incredibile quando sono arrivato a leggere la parte sul boot loader LILO!!! 5 righe che dicono solo:"La gente pensa che LILO sia limitato ai primi 1024 settori!!! FALSO!!!" Senza spiegare A) cosa è un boot loader B) cosa vuol dire 1024 cilindri C) perchè poi è falso!?!?! C) Perchè LILO) tant'è vero che tra qualche giorno passerò direttamente a FreeBSD visto che ha un manuale che dire FANTASTICO è dir poco.

Il fatto è che talvolta mi ritrovo davanti il computer e penso:"Si ok... e mo che faccio??" ..e inizio a smanettare qua e la senza concludere nulla. Per quanto riguarda gli esercizi io ad esempio li farei. Mi sono innamorato del manuale di freeBSD perchè all'inizio di ogni capitolo ti dice :"Cosa imparerai in questo capitolo" e secondo me il massimo si sarebbe avuto a fine capitolo con degli esercizi mirati per vedere se una persona ha realmente capito cosa ha letto durante il capitolo!!! Però qui sto andando OT.

Secondo me la storia deli esercizi sarebbe un modo alternativo di scrivere una guida un po fuori dalle righe, divertente e istruttiva. ;)

Daccordo infine sulla niubbiaggine dei "nuovi" in linux ;)
(anche io sono niubbio ma mi sto sforzando per capire bene questo OS).