Linux: sfruttiamo le risorse di rete
Una rapida carrellata sui client ftp ed irc per meglio sfruttare le risorse di rete
oesse@tecnogi.com

Nei numeri precedenti abbiamo imparato ad installare una distribuzione Linux (la Red Hat), a configurare l’ambiente grafico (Xfree) ed il Window Manager ed infine a collegarci al proprio ISP.
Queste operazioni sono solo la base di partenza per poter avere una macchina in "rete" in tutto e per tutto sostituibile a quella con il caro Windows95/98.
La particolarità di un sistema Linux nei confronti del ben più famoso Windows95 sta, purtroppo per i neofiti, nella non facile ed immediata configurabilità del sistema e dei suoi applicativi. La Microsoft ha sviluppato negli anni una immediata e comoda interfaccia utente, grafica, con bottoni e menu, mentre Linux (e come lui la maggior parte dei SO Unix) solo ora ci sta arrivando.
Le varie distribuzioni sviluppate sul kernel di Linux (Red Hat, Debian, Suse e Slackware solo per citare le maggiori) hanno implementato la distribuzioni di pacchetti che, alla stregua di un unico file compresso in stile Windows, si auto installano. Inoltre verificano anche l’esistenza sul sistema delle librerie e/o di altri pacchetti sui quali il nuovo programma si basa.
Debian ha anche messo a punto con l’installazione del pacchetto una sorta di configuratore che, con una serie di domande, permette la giusta scelta dei parametri che piloteranno il programma nella sua esecuzione.
Detto ciò, se si sono seguiti tutti i passi descritti nei precedenti numeri, ci si trova in un ambiente Linux di base, collegati al proprio ISP e, se si e’ installato, con un demone per la gestione della posta. Molto probabilmente, avete installato anche un browser grafico (Netscape) ed uno testuale (Lynx) che vi permette di navigare esattamente come con il vostro caro Windows95. Ma la rete non è solo questo, e vi permette di utilizzare protocolli diversi quali irc ed ftp oltre al comodissimo telnet.
Ma vediamo in dettaglio alcuni prodotti che possono essere facilmente installati sulla vostra workstation Linux.

FTP
Il protocollo ftp permette di "uploadare" ed "unloadare" file da una macchina remota alla vostra e viceversa. Ovvero vi permette di prendere file presenti su di una macchina collegata in rete ed anche, se ne avete i permessi, di depositare vostri file su quella macchina.
Esistono diversi client ftp disponibili per Linux sia in formato RedHat (estensione rpm) sia in formato Debian (estensione deb), nonché una miriade di client in formato sorgente pronti per essere compilati e resi cosi’ eseguibili. Nella installazione base, viene solitamente installato il client ftp, eseguibile da console o da xterm semplicemente digitando ftp nome.del.server. (Per esempio ftp ftp.tecnogi.com oppure solo ftp ed al prompt "open ftp.tecnogi.com".
Se avete delle macchine a cui accedete spesso, può essere comodo averle listate nel vostro /etc/hosts in modo da poterle raggiungere digitando solo il loro nickname.
Se, per esempio, inserite in /etc/hosts la seguente riga: 195.22.104.11 ftp.tecnogi.com tecnogi digitando poi ftp tecnogi arriverete subito alla macchina ftp.tecnogi.com. Vi sarà chiesto in questo caso lo user e la password. Molti sistemi permettono ftp anonimo, ovvero non necessitano che lo user che si collega abbia un account presso la macchina remota. Inserendo come user "anonymous" e come password il proprio indirizzo di posta elettronica, (e mi raccomando, non usate indirizzi falsi, è solo una questione di correttezza verso chi vi sta ospitando) avrete accesso alla sezione pubblica della macchina.
I browser come Netscape e Lynx sono stati studiati per permettere anche la navigazione non solo tra le pagine www (in formato html) ma anche in ftp.
Nonostante questa possibilità, questi client non sono degli ottimi gestori del protocollo ftp e sono carenti di alcune delle funzione più comode dell’ftp stesso (quale il resume). Una volta collegati con ftp all’indirizzo preferito, vi troverete un prompt del tipo
ftp>
dal quale potrete eseguire i comandi ftp (molto simili a quelli di una shell unix).
Per visualizzare il contenuto della directory remota in cui vi trovate, utilizzate ls, per cambiare directory si usa cd e, molto importante, per prendere un file utilizzate get.
Per un aiuto in linea, usate il comando help e vi saranno visualizzati i comandi che potrete passare al server a cui siete collegati.
Per informazioni più dettagliate sui comandi, digitate help comando (per esempio help get o help put) ed il sistema vi fornirà un manuale del comando con la giusta sintassi.
Per esempio, supponiamo si voglia andare nella directory /pub/linux/WindowMaker; basterà al prompt digitare: cd /pub/linux/WindowMaker e poi ls per vederne il contenuto.
Se poi si vuole prendere il file test.tar.gz e copiarlo sulla propria macchina, utilizzare il comando get test.tar.gz. Il client passa queste informazioni al server ed inizia il trasferimento del file che voi avete scelto.
Riassumendo i comandi più usati sono:

ls lista il contenuto della dir corrente
Get filename prende un file
Put filename metti un file
Hash visualizza un # durante il trasferimento
Prompt on/off obbliga all’uso di un prompt interattivo (on ed off)
Binary definisce il trasferimento in formato binario
Ascii definisce il trasferimento in formato ascii
Open server_name apre la connessione al server specificato
Mget files prende tutti i file specificati (da usare con le wildcards * e/o ?)
Mput files metti tutti i file specificati (da usare con le wildcards * e/o ?)
Lcd cambia la directory sulla macchina locale

Alcuni server ed alcuni client permettono, nel caso il trasferimento del file non venga completato, di continuare il trasferimento in un secondo momento senza però dover ritrasferire tutto il file, ma solo la parte mancante. Questo tipo di azione si chiama "resume" ed è molto comoda quando si vogliono trasferire file di grosse dimensioni in più riprese. Come detto, la funzione di resume dipende innanzitutto dal server ed in seconda istanza dal client. Come precedentemente detto, Netscape non permette il resume dei file ed è questo, a mio avviso, un grosso handicap.

Per ovviare a questo inconveniente, consiglio l’utilizzo di client (testuali) come ftp, ncftp o grafici come xftp. Un ottimo archivio di programmi per Linux può essere trovato presso Sunsite ( http://sunsite.unc.edu/pub/Linux) organizzato in sezioni e discretamente veloce.
Oppure, nel caso conosciate il nome del file da prelevare o parte di esso, è molto comodo l’utilizzo di ftpsearch (http://ftpsearch.ntnu.no) che permette di trovare un file e scegliere anche il dominio su volete cercarlo. Il protocollo ftp permette anche di prelevare più file utilizzando le wildcards (* e ? ).

Con ftp basterà usare il comando mget mentre con ncftp usate get –R file*. Comodo vero?
Ncftp permette anche l’utilizzo dei bookamrks, ovvero memorizza i nomi delle macchine a cui voi avete avuto accesso e vi permette di collegarvi senza dover digitarne tutto l’indirizzo, ma solo il nome che voi avete abbinato al quell’IP.
La personalizzazione di ncftp avviene utilizzando il comando prefs al prompt.
La personalizzazione permete di definire la password da utilizzare in ftp anonimo, con che utente loggarsi in ftp (anonimo o meno) unitamente ad altre opzioni del client.
Se non amate i client testuali ma preferite sfruttare a fondo le possibilità grafiche del vostro sistema, allora potete utilizzare wxftp o xftp, facilmente scaricabili dalla rete.
Di wxftp e' stato fatto il porting per utilizzare le orami note librerie GTK (www.gtk.org) che evitano cosi' di dover utilizzare il client binario linkato staticamente alle librerie Mootif (che non sono free).
La configurazione dei client ftp e' minimale in tutte le sue forme. Wxftp prevede che l'utente crei i profili degli indirizzi più comunemente usati utilizzando il Wxftp session. Vi ricordo di salvare ogni volta che inserirete un nuovo host a cui collegarvi. L'utilizzo ricorda molto quello dei client per Win95, mentre le opzioni sono personalizzabili tramite il bottone OPTIONS presente sulla barra inferiore del client. Potete decidere quanti tentativi fare prima di collegarvi e che intervallo di tempo deve passare tra uno e l'altro, abilitare l'audio, definire la vostra password per ftp anonimo ed altro ancora. Un secondo client ftp grafico abbastanza noto e' xftp, che a mio avviso non uguaglia pero' wxftp. Personalmente io prediligo i client testuali come ncftp, che sono di facile utilizzo e funzionano ottimamente.

IRC
Oltre al protocollo ftp, un ottimo modo per passare il vostro tempo in rete ed eventualmente chiedere chiarimenti sul mondo linux, consiste nel utlizzare un client IRC, ovvero Internet Relay Chat. Anche nel mondo di IRC esistono client grafici e client testuali, che ricordano piu' o meno quelli usti in ambiente Win95/98. IRC è una rete di computer che funzionano da server (provate irc.fun.uni.net o irc.tin.it per esempio nei vostri settaggi) ai quali ci si può collegare con un client per chattare con gli amici sui vari canali aperti. Ognuno può infatti creare un nuovo canale (se non esiste) o entrare in uno esistente tramite il comando join #canale (i comandi sono passati al client precedendo al comando una /). Si entrerà in questo modo nel canale e si potranno vedere visualizzati sullo schermo tutti i messaggi che gli appartenenti al canale stanno scrivendo. Uno tra i client installati di default da quasi tutte le distribuzioni e' ircII oppure il suo migliorato clone Epic o ancora BitchX (che ha un minimo di gestione dei colori). I client grafici di maggior utilizzo sono circus, tkirc e zircon. Ma analizziamoli nei dettagli: IRC ed EPIC Di gran lunga i piu’ usati anche se testuali, IRCII ed EPIC sono semplici client irc che svolgono degnamente il loro dovere nonostante siano carenti nella grafica (a volte questo è un bene in quanto non occupa memoria inutilmente).
Entrambi si basano su di un file di configurazione che deve risiedere nella home dir dell’utente e che deve chiamrsi .ircrc. Nel file vengono salvate le opzioni base del client quali il nickname, il server a cui collegarsi, i canali a cui collegarsi allo startup del programma ed altro ancora.
A differenza dei comandi passati utilizzando il client, quelli presenti in .ircrc non necessitano del / per essere compresi. Entrambi si basano inoltre su di un file che contiene l’elenco dei server a cui collegarsi. Tale file viene definito in fase di compilazione, e solitamente si chiama /usr/lib/irc/ircII.server (ma potrebbe anche avere un altro nome e dovrarsi in un path differente).
All’interno possono essere definiti tutti i server irc che si utilizzano, in modo che il client ricerchi sempre il giusto server e possa avere alternative nel momento in cui, per motivi diversi, il server non dovesse essere disponibile.
Oltre al file .ircrc, possono essere usate delle variabili d’ambiente quali quelle qui elencate che hanno effetto sul client e sostituiscono quelle eventualmente definite nel file di configurazione.

IRCNICK - specifica il vostro nickname
IRCNAME - specifica il vostro nome
IRCSERVER - specifica il server di default a cui collegarsi
IRCPATH - Specifica una lista di directory in cui ricercare eventuali script
IRCRC - specifica un alternativa al file di configurazione $HOME/.ircrc.

Le variabili d’ambiente devono essere immesse nel file di configurazione della shell che state usando (.profile, .bashrc, .bash_profile) con la sintassi:

Export variabile=valore

Ma riassumiamo i comandi principali (precedendoli da / se passati dal client):

join #canale per collegarsi ad un canale (esistente o meno) o crearlo se non esiste
nick nuovo_nick per modificare il proprio nick name
List per elencare i canali esistenti
help per avere il manuale del client
me per passare una descrizione preceduta dal proprio nome
leave #canale per uscire da un canale
whois nickname per sapere chi è la persona che utilizza il nick in questione
quit per uscire dal client

Anche per i client grafici si trovano molto facilmente i binari compilati in formato rpm e deb, pronti per essere installati con i tools quali rpm e dpkg. Tkirc per il suo funzionamento prevede le librerie Tcl/Tk, che devono essere state installate sul sistema. Il suo file di configurazione si chiama .tkircrc e deve risiedere nella home dir dell’utente per poter essere visto dal programma. Con la distribuzione del binario, viene installato anche un file di configurazione standard che deve essere rinominato e portato nella propria home dir. Il file consta di diverse parti che servono per definire sia la parte grafica che le modalità di connessione e di comportamento del programma stesso. Troviamo infatti la definizione delle fonts da usare, la dimensione dei bordi delle finestre, la definizione dei colori, la geometria delle finestre, quando segnalare acusticamente un determinato evento ed altro ancora. Tutti questi parametri possono essere tranquillamente lasciati invariati mentre suggerisco di modificare la sezione che riguarda il nickname ed i server a cui collegarsi, nonché i canali di maggior utilizzo.
La sezione riguardante il nickname viene definita in questo modo:

Set preferred_nicknames { "oesse" "defrag" "gigi_sull" "F-U-R-Y" "new_nick" }

ove il nickname definito viene incluso tra doppi apici.
Potete quindi sostituire o aggiungere nickname nuovi, definendoli all’interno di { }.
I canali preferiti saranno, in modo analogo, definiti in questo modo:

Set preferred_channels { "#linux-it" "#linux" "#unix" "nuovo-canale" }

ove il canale deve essere sempre compreso tra doppi apici e preceduto dal cancelletto #.
Per i server, utilizzate la sintassi:

Set preferred_servers { {"irc.fun.uni.net" 6667} {"irc.tin.it" 6667} {"new.irc.server" porta} }

I server vengono specificati oltre che con il nome, anche con il numero della porta a cui ci si deve collegare (normalmente la 6667) e con una sintassi identica a quella degli esempi precedenti.
Tkirc permette di definire nel suo file di configurazione anche i messaggi di saluti (quando si lascia il canale e quando ci si disconnette), il messaggio di away e il messaggio quando (se si e’ OP) si kicka qualcuno.
La sintassi in questi casi e’ la seguente:

Set preferred_signoffmessages { "messaggio" "messaggio2" }
Set preferred_partmessages { "ciao" "a dopo" "saluti" }
Set preferred_awayreasons { "sono away" "non ci sono" }
Set preferred_kickreasons { "gioca altrove" "non riprovarci" "stattene fuori" }

La configurazione molto ricca di TKIRC permette di definire altri parametri quali dopo quanto tempo essere messi in away e con che messaggio. Tkirc risulta a mio avviso uno dei migliori client irc grafici, con una ottima configurazione che gli permette di essere flessibile e ben gestibile. Oltre a Tkirc, anche Zircon (http://catless.ncl.ac.uk/Programs/Zircon/) necessita delle librerie Tcl/Tk (ultima release 8.0.3) ed anche lui, come Tkirc, risulta essere un valido client grafico che si presta ottimamente soprattutto per chi arriva da Windows95. Il suo file di configurazione (~/.zircon/preferences) viene creato da zircon stesso tramite la procedura configure sul pannello di controllo di zircon. Da qui potete definire i nick da usare ed i server, ma niente di piu’. Circus (http://www.nijenrode.nl/~ivo/circus/) ha un file di configurazione molto simile a quello di Tkirc (.circusrc) ed anche lui, oltre a definire la parte grafica come le fonts ed i colori, imposta anche il nickname ed i server con una sintassi molto semplice: Set nick pippo Set ircname "ciao, sono pluto" Set ircserver { Irc.fun.uni.net Irc.tin.it Irc.nonloso.it Irc.newserver.com Irc.tin.it:7000 Irc.newserver.it:porta } Semplici e facilmente configurabili, questi client hanno il vantaggio di riassumere alcune funzioni tramite tools e bottoni presenti sulla interfaccia grafica. Questi permettono di avere informazioni su gli altri utenti (whois) possibilità di fare dcc e ctcp direttamente dal client senza dover passare i comandi in modo testuale. Sui canali IRC esiste la possibilità di diventare OP, ovvero di avere i diritti di modificare le impostazioni del canale e di kickare (ovvero allontanare ) gli utenti che non rispettano le regole oppure anche di inibirli ad entrare (comando ban). Queste operazioni possono essere fatte da riga di comando (/kick #canale nickname user) con i client testuali oppure utilizzando i bottoni presenti sui client grafici. Spero di avervi dato con queste brevi note una infarinatura molto generale sui programmi elencati, infarinatura che può essere approfondita con il loro utilizzo ed leggendosi la documentazione presente nel manuale (man tkirc per esempio) oppure le note comprese con il programma (solitamente nella dir /usr/doc ). Nel prossimo numero tratteremo i client per leggere la posta e quelli per leggere le news, addentrandoci sempre più nel fantastico mondo linux!


Marco Giardini
oesse@tecnogi.com