Irssi, è un client IRC da shell scritto da Timo Sirainen. Questo client è flessibile, minimale, elegante e potente. Ci sono anche diverse caratteristiche che rendono irssi superiore agli altri client IRC tra queste ricordo lo scripting in Perl e l'autologging. Per quanto rigurda che è da shell anche questo è un vantaggio, infatti rende questo client più flessibile e usabile in molti casi. Ad esempio ho provato personalmente questo client su un Pentium 133Mhz senza avere nessuna difficoltà.
Irssi non è difficile da usare, iniziamo subito ad impostare un po' la configurazione e poi a collegarci su Freenode.
Per installarlo basta dare un bel apt-get install irssi da root.
Ritornati ad un utente con meno privilegi invochiamo irssi da una qualsiasi shell o terminale (ad esempio xterm, konsole, xfce4-terminal…).
Ci comparirà un messaggio di benvenuto che ci dirà che questa è la prima volta che apriamo irssi. Ora configuriamo le impostazioni fondamentali, quindi il nick, e il nome reale.
/set nick topolino
/set alternate_nick topolino_
Da come si potrà intuire in irssi tutti i comandi (di default) sono preceduti da slash (/) e le impostazioni si cambiano con /set. Fino ad ora abbiamo dato sempre /set <impostazione> <valore> ma se ad esempio diamo un /set senza parametri possiamo vedere tutte le impostazioni di irssi, che possono essere lette aiutandoci con PagUp e PagDown. Quindi quando “navighiamo” in irssi abbiamo un approccio simile ai pager come ad esempio less o most.
/set real_name Mickey Mouse
/set term_charset UTF-8
In #debian-it ed in moltri altri channel infatti è buona norma usare UTF-8, in certi canali si rischia di essere calciati fuori se non rispettiamo questa regola! Infatti è fastidioso sia per gli altri che per noi usare un codice diverso.
/save
/server calvino.freenode.net
/join #debian-it
Se si sono seguiti tutti i passi ora stiamo in #debian-it!
/set quit_message Topolina mi aspetta…
/set indent 3
/hilight topolino
/hilight -word topolina
Con la prima riga abbiamo impostato il nostro messaggio che verrà stampato quando chiudamo irssi con /quit, con la seconda abbiamo impostato l'indentazione con un valore di 3, quindi quando stiamo su un channel vedremo il nick e poi il testo con 3 spazi di distanza, con la terza riga abbiamo detto di evidenziare il nick corrispondente di chiunque dice un messaggio contenente “topolino”, con la quarta riga abbiamo impostato di evidenziare la parola “topolina”.
Se premiamo TAB, in alcuni casi, irssi completa quello che vogliamo dire, questo vale quando chattiamo, TAB completa il nick e se fatto all'inizio aggiunge ”:” (/set completion_char). Il tasto TAB però funziona anche sulla configurazione ad esempio se facciamo /set ni e premiamo TAB possiamo vedere che ha completato “ni” con “nick”. Un altro caso in cui il tasto TAB è nostro amico e risulta particolarmente utile è nella modifica del topic di un canale, ad esempio il canale #debian-it ha di solito un topic abbastanza lungo e per cambiarlo basta /topic ed il tasto TAB e “magicamente” abbiamo il topic già completato. Questo risulta utilissimo se dobbiamo aggiungere qualche cosa nel topic.
Ora possiamo dare di nuovo /save per salvare la configurazione.
Questo è anche il momento giusto per curiosare aiutandoci con /help <voce>, se scriviamo soltanto /help verrano elencati tutti i possibili comandi di irssi.
/set beep_msg_level HILIGHT
/set beep_when_away OFF
/set bell_beeps ON
Con il primo /set impostiamo al PC speaker di suonare soltanto quando qualcuno dice il nostro nick, con il secondo gli diciamo di non beepare quando siamo /away (vedremo dopo come essere away) ed infine attiviamo il beep.
/set nick <nick>, /set alternate_nick <nick_alternativo>, /set real_name <nome_reale>/set term_charset <charset>/save/server <server>/join <canale>/quit/set <voce> <valore>/hilight <parola>/help <voce>
/server calvino.freenode.net
/join #debian-it,#debian (o /join #debian-it e /join #debian)
In questo modo ci colleghiamo a più canali, vengono aperte quindi più finestre, impariamo a spostarci tra di esse. In irssi per spostarci tra le finestre basta premere ALT+<n> dove <n> è un numero. In questo caso se teniamo premuto ALT e premiamo “2” andiamo su #debian-it, se premiamo “3” andiamo su #debian se premiamo “1” andiamo sul server dove possiamo leggere il MOTD ed altre cose. Se vogliamo uscire soltanto da #debian basta che digitiamo /window close o più semplicemente l'alias /wc mentre stiamo posizionati in quella finestra, per quanto riguardano gli alias, verrano approfonditi nei successivi paragrafi.
Con /window close quindi abbandoniamo il canale in cui ci siamo posizionati.
Come visto precedentemente per muoversi tra le finestre lo possiamo fare senza problemi con la combinazione “ALT+<n>”. Un metodo alternativo ma potente è usare il comando /window goto <canale>. Di aiuto è anche la status bar in cui possiamo vedere se c'è un nuovo messaggio in un certo canale, ad esempio se stiamo sia in #debian-it e #debian ma stiamo sulla finestra #debian come arriva un nuovo messaggio in #debian-it il numero “2” (dove c'è #debian-it) diventa bianco ad ogni nuovo messaggio e rosso ad ogni messaggio che contiene una parola presente in /hilight. Questo vale anche quando qualcuno apre una discussione in privato (/query) con noi, vedremo un nuovo numero nella status bar solitamente di colore rosso che corrisponde alla finestra della discussione in privato.
Come visto possiamo abbandonare un canale con /window close, un altro metodo è quello di usare il comando /part. Vediamo subito un esempio del suo utilizzo:
/part #debian-it ci vediamo *
Da come si può osservare la sintassi di /part è /part <canale> <messaggio>.
/away topolino
/whois topolino
Con questo comando stampiamo alcune informazioni (come nick, realname, stato, canali in cui è loggato) di quel nick. Quindi se vogliamo vedere qualche informazione di topolina basta che facciamo /whois topolina.
Per ritornare attivi basta che digitiamo /away privo di argomenti. Tra l'altro se abbiamo settato /set awaylog_level msgs hilight appena ritorniamo attivi vedremo tutti i messaggi indirizzati al nostro nick.
/join #canale1,#canale2,#canale3/window goto <canale/window close/part <canale> <messaggio>/away <nostro_nick>, /away/whois <nick>
/network add Freenode
In questo caso non abbiamo aggiunto niente parametri, anche se, volendo potevamo aggiungere parametri ad esempio utili per impostare un certo nick diverso da quello di default ed altro (/help network).
/server add -network Freenode calvino.freenode.net
Per vedere tutti i server basta digitare ”/server list”, ricordo che potevamo aggiungere un ”-auto” dopo “add” in modo da collegarci subito a quel server.
/channel add #debian-it Freenode
/channel add #debian Freenode
Anche in questo caso potevamo aggiungere il flag ”-auto” in modo da collegarci automaticamente a quel canale appena connessi al server.
Possiamo vedere la lista di tutti i canali con /channel list. Anche in questo caso rimando ad un bel /help channel per configurazioni più complesse.
Ricordo anche che con questo modo possiamo usare più server contemporaneamente, basta impostare network, server e i canali che ci interessano. Per questo scopo ci sono di aiuto i comandi /connect <server> e /disconnect <server>.
/network add <rete>/server add -network <rete> <server>/channel add <canale> <rete>/connect <server>, /disconnect <server>Può capitare a volte che un amico in IRC ci mandi un file o che noi vogliamo mandare un file a qualcuno via DCC. Con irssi è piuttosto semplice mandare e ricevere file con DCC. Possiamo vedere che topolina sta cercando di mandarci un file muovendoci sulla finestra del server (ALT+1).
/dcc get topolina
/dcc send topolina foto/ioetopolina.png
Anche qui TAB è nostro amico.
/dcc list
/dcc get <nick> <file>/dcc get <nick>/dcc send <nick> <file>/dcc list
Come promesso nei precedenti paragrafi vediamo ora che cosa è un alias, impariamo a farlo ed impariamo anche ad interfacciare irssi con la shell (ad esempio dobbiamo beccare un processo da uccidere con ps aux e poi ucciderlo con kill tutto da una finestra di irssi).
Molto probabilmente quasi tutti nella shell stanno utilizzando uno o più alias, infatti se stiamo usando la shell BASH diamo grep ls .bashrc vediamo che c'è una linea non commentata (senza ”#”) che contiene una riga del tipo: “alias ls ='ls –color=auto'”. Questo significa che ogni volta che noi diamo “ls” sulla nostra shell in realtà diamo “ls –color=auto”, questo è un ottimo esempio di alias.
Ora però vediamo gli alias in irssi, per creare un alias in irssi dobbiamo digitare /alias <alias> <comando_da_eseguire> ad esempio possiamo dare un alias per chiudere la finestra in cui stiamo /alias CLOSE window close. La voce “CLOSE” è il nostro alias, “window close” è il comando. Quindi ogni volta che daremo /close irssi lo interpreterà come un /window close. Per vedere tutti gli alias che abbiamo basta un /alias privo di argomenti.
/alias MSGTOPOLINA query topolina
/alias LL lastlog -force -file
Con il primo alias digitando /msgtopolina apriamo una discussione in privato con topolina (comando /query <nick> per aprire una discussione in privato).
Con il secondo alias invece salviamo il log della finestra in cui siamo posizionati, ad esempio se stiamo parlando in query con topolina e vogliamo salvare il log basta che digitiamo /ll badpaperino.log salvando quindi tutta la discussione che abbiamo fatto con topolina.
Ora abbiamo preso confidenza con gli alias, impariamo ad usare /exec. Per eseguire un comando da shell in irssi possiamo usare /exec che poi stampa l'eventuale output sulla finestra in cui siamo posizionati. Per non fare confusione creiamo una finestra con /window new hide, posizioniamoci in quella finestra e diamo /exec ls -l. Possiamo vedere che magicamente l'output di ls -l è andato a finire nella finestra che abbiamo appena creato. Possiamo usare anche l'AND, l'OR e le Pipe (rispettivamente &&, ||, |). Ad esempio possiamo fare /exec ps aux | grep topolino e /exec ls -1 && echo “Finito di stampare i file. Alcuni comandi però sono già integrati in irssi, ad esempio cat quindi per leggere la discussione con topolina basta che digitiamo /cat badpaperino.log.
Ricordo che con /exec non possiamo aprire programmi fatti con librerie grafiche da terminale, quali le curses, ncurses…
/alias E exec
Ora non siamo soddisfati, facciamoci un alias che richiama un programma della shell. Vedremo come fare un alias dannatamente utile.
Prima di tutto installiamo il software che ci serve con apt-get install surfraw. Surfraw sta per “Shell Users' Revolutionary Front Rage Against the Web” ed è un software da shell per interfacciarci a certi servizi del WWW. Questo programma piacerà sicuramente agli amanti della shell (come me
) e sotto irssi risulta particolarmente utile. Sintetizzando Surfraw ci permette di usare diversi motori di ricerca e stampare la ricerca sul nostro browser. Ad esempio siamo molto presi in una discussione in IRC, stiamo partecipando attivamente, e non vogliamo perdere tempo ad aprire il browser (o una nuova scheda), accedere ad un motore di ricerca e poi digitare ciò che vogliamo cercare. Surfraw potrebbe venirci in aiuto, non vogliamo lasciare neanche per 20 secondi la discussione, allora da irssi diamo /surfraw google topolina + blog perché vogliamo cercare il link del weblog di topolina. Con questo comando cerchiamo su google “topolina + blog” e surfraw ci apre una nuova scheda o il nostro browser preferito, che possiamo consultarlo in un qualsiasi momento. Prima di tutto leggiamo un po' di documentazione:
man surfraw
pager /usr/share/doc/surfraw/README.gz
/alias SURFRAW exec - surfraw
/surfraw debpackages surfraw
/surfraw google -l topolino
/surfraw wikipedia debian
/surfraw scpan pdf
/surfraw slinuxdoc irc
Questi sono soltanto alcuni esempi, rimando quindi il lettore curioso a digitare sulla propria shell: surfraw -elvi.
/alias <alias> <comando_da_eseguire>/window new hide/exec <comando_della_shell>/alias SURFRAW exec - surfraw, /surfraw <elvi> <ricerca>
http://irssi.org/ Sito ufficiale di irssi
http://it.wikipedia.org/wiki/Irssi irssi su Wikipedia
In questo HOWTO abbiamo imparato ad usare le funzioni principali di irssi. Ci sono ancora molti argomenti da approfondire che rimando però allo studio individuale del lettore, spero di non avervi annoiato, ma anzi di avervi stimolato la vostra curiosità per irssi.
Buon divertimento con irssi!
— Leonardo 'leot' Taccari – 25/04/2007 15:26