Irssi, chattare da terminale

Introduzione

irssi è un client IRC che funziona da linea di comando. È un programma estremamente spartano, ma che ha al suo arco molte frecce.

Installazione

L'installazione di irssi su Debian è molto semplice:

# apt-get install irssi

Una volta installato, il programma è già funzionante e potete avviarlo come ogni altro programma da shell:

$ irssi

Configurazione

Vi troverete davanti ad una semplice console dove a prima vista non sembrano esserci comandi disponibili.
Per iniziare basta però digitare:

/set <invio>

e verrete sommersi da un nugolo di opzioni da selezionare.
Le opzioni e i parametri seguono una sintassi standard:

/set nome_opzione_da_selezionare = parametro_che_si_vuole_impostare<invio>

Potete usare il completamento automatico: ossia una volta scritta una parte del comando:

/set nome_opz

potete premere il tasto TAB per completare il comando.
Il comando /set si comporta in modo simile a grep, per cui si possono ottenere tutte le opzioni riguardanti un certo pattern:

/set name 
[dcc] dcc_autorename = OFF [lookandfeel] actlist_names = ON names_max_columns = 6 names_max_width = 0 show_names_on_join = ON [server] hostname = real_name = skizzhg user_name = skizzhg

Come prima cosa conviene impostare il vostro nick name:

/set nick il_mio_nick <invio>

dove al posto di il_mio_nick dovrete scrivere il nickname con cui volete essere riconosciuti su IRC.
Se si vuole annullare una modifica e tornare allo stato iniziale:

/set -clear opzione

Data la complessità del file di configurazione è fortemente sconsigliato modificarlo manualmente tramite un editor, usate invece i comandi interni e il ricco help ottenibile con /help e quindi /help comando; ad esempio: /help set.

Collegamento ad un server IRC

Digitate:

/connect nome_server_irc <invio>

e irssi cercherà immediatamente di collegarsi. Un esempio:

/connect irc.azzurra.org <invio>

Una volta collegati al server potrete raggiungere un canale. Se non conoscete a priori il nome del canale o se volete sfogliare la lista dei canali disponibili, il comando irc list, magari specificando l'argomento di interesse, ad esempio linux, è quello che fa per voi:

/list #linux*

Sarà elencata una serie di canali inerenti questo tema. Per entrare in un canale usate il comando join:

/join #debianizzati

Si aprirà un'altra finestra con l'elenco delle persone collegate e il topic del canale; per iniziare a chattare basta digitare quello che volete comunicare e poi premere invio.
Se volete ritornare alla finestra iniziale del server a cui siete collegati basta premere ALT+1.

Automatizziamo la connessione al server e il join al canale:

/server add -ssl -auto -network azzurra irc.azzurra.org 9999
/network add -nick skizzhg -user skizzhg -realname skizzhg azzurra

aggiungere la seguente stringa solo se si ha un nick registrato sostituendo tua_password con la propria password:

/network add -autosendcmd "/quote nickserv identify tua_password; wait 3000" azzurra

quindi l'autojoin

/channel add -auto #debianizzati azzurra

e infine salviamo il tutto (le impostazioni verranno scritte nel file ~/.irssi/config)

/save

All'interno di un canale

Quando si è in un canale, se volete aprire una finestra privata col vostro interlocutore dovete digitare il comando:

/query nick_con_cui_volete_parlare <invio>

Per passare da una finestra ad un'altra è possibile utilizzare varie combinazioni di tasti:

  • ALT+numero (oltre le 10 finestre ci si muove con Alt+q,w,e,r...)
  • ESC+numero (premere e rilasciare ESC e quindi il numero)
  • CRTL-n / CTRL-p
  • scrivendo /window goto N (dove N è il numero della finestra o il nome del canale)

mentre premere ALTt+a porta alla prima finestra dove c'è attività.

Se invece volete spedire un file ad un utente usate:

/dcc send nick_destinatario file_da_spedire<invio>

Per ricevere un file:

/dcc get nick_che_spedisce file_da_ricevere <invio>

Per chiudere una qualsiasi finestra è sufficiente trovarsi nella finestra che si vuol chiudere e digitare:

/wc (ovvero window close)<invio>

Tutti i comandi standard di IRC funzionano sotto irssi.
Per uscire utilizzate il comando:

/quit<invio>

Alias

Come per qualsiasi altro client IRC possiamo creare tanti alias quanto le esigenze e la fantasia ci suggeriscono, ecco qualche esempio.
Innanzitutto dobbiamo creare gli alias per i service dell'ircd perché irssi, al contrario di altri, non interpreta le consuete abbreviazioni:

/alias CS quote chanserv
/alias NS quote nickserv
/alias MS quote memoserv
/alias HS quote helpserv
/alias SEEN quote seenserv seennick

Spesso irssi viene usato insieme a GNU/Screen per restare connessi a lungo, in questo caso non vogliamo uscire per sbaglio:

/alias quit echo ^C5 sei sicuro? usa //quit

^C5 significa premere e rilasciare CTRL-c e quindi 5 per ottenere il testo colorato di rosso, lo stesso si ottiene con

/alias quit echo \0035 sei sicuro? usa //quit

D'ora in poi per chiudere realmente si userà il comando //quit. È bene anche eliminare gli altri alias predefiniti che rimandano a quit:

/unalias BYE
/unalias EXIT
/unalias SIGNOFF

È possibile dividere orizzontalmente la finestra per visualizzare più canali contemporaneamente, in questo caso prendiamo l'esempio della finestra di status (la 1) dove finiscono ad esempio i notice, i memo e altri messaggi che altrimenti possiamo facilmente non notare; creiamo una piccola porzione (11 righe) dello status sopra la finestra solita:

/alias SPLIT window show 1; window shrink 11

e un altro in caso volessimo tornare allo stato iniziale (espanderlo per quante finestre occorrono):

/alias UNSPLIT window goto 1; window stick off; window goto 2; window stick off; window goto 3; window stick off; \
window goto 4; window stick off; window goto 5; window stick off; window goto 1; window hide

Stanchi di scrivere sempre la ragione per cui si è away? Mettiamone una fissa:

/alias A away non sono al pc

e con questo torniamo:

/alias B away

Capita di dimenticarsi finestre aperte, controlliamo cosa c'è:

/alias WL window list

Uno dei punti forti di irssi è la ricerca di pattern nel buffer della finestra, proprio come se usassimo grep:

normale, cerca qualsiasi cosa, ad esempio /ll debian mostrerà tutte le righe che contengono la parola debian:

/alias LL lastlog

mostra tutte le righe nelle quali si è stati nominati:

/alias LLH lastlog -hilight

pulisce i risultati, elimina quindi le righe mostrate in precedenza:

/alias LLC lastlog -clear

Una volta che abbiamo trovato una certa riga con /lastlog vogliamo anche risalire a quel punto per leggere un certo pezzo di conversazione o altro, il comando /scrollback fa proprio questo:

normale, per il gusto di digitare meno lettere:

/alias SB scrollback

va all'inizio del buffer:

/alias SBH scrollback home

va alla fine del buffer:

/alias SBE scrollback end

va in un punto preciso secondo determinati pattern che spaziano dal numero di riga al timestamp, ad esempio /sbg 21:33 risalirà in prossimità della prima corrispondenza dell'orario richiesto, mentre /sbg -1 21:33 alla stessa ora ma del giorno precedente, /sbg -11 invece scrollerà in su di 11 righe:

/alias SBG scrollback goto

A questo proposito consiglio di aumentare visibilmente il buffer:

/set scrollback_time 3day

Tramite il comando /exec possiamo invocare comandi esterni, e qui ci si può davvero sbizzarrire.

grep:

/alias GREP exec - grep

tail:

/alias TAIL exec - tail

controllo del volume (down, up, mute, normal, valore impostabile)

/alias VD exec - echo "\033[35mvolume: $$(amixer set Master 1- | grep -Eo '[0-9]+%' | uniq)"
/alias VU exec - echo "\033[35mvolume: $$(amixer set Master 1+ | grep -Eo '[0-9]+%' | uniq)"
/alias VM exec - echo "\033[35mvolume: $$(amixer set Master 0 | grep -Eo '[0-9]+%' | uniq)"
/alias VN exec - echo "\033[35mvolume: $$(amixer set Master 19% | grep -Eo '[0-9]+%' | uniq)"
/alias VS exec - echo "\033[35mvolume: $$(amixer set Master '$*'% | grep -Eo '[0-9]+%' | uniq)"

pastebinit, l'opzione -o manda l'output in canale:

/alias PB exec - -o pastebinit
/alias PBC exec - -o $* | pastebinit
/alias PBG exec - -o grep $* | pastebinit

URL shrinker:

/alias US exec - -o w3m -no-cookie -dump 'http://2tu.us/?save=y&url=$*' | awk '/Your tight URL is/ {print $$5}'

Il comando /alias senza argomenti mostra tutti quelli impostati, mentre /alias w tutti quelli che iniziano con la lettera w.

Riferimenti


--Ferdybassi 16:03, 10 mar 2010 (CET)