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_opzione
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 mia_password con la propria password:
/network add -autosendcmd "/quote nickserv identify mia_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 -m 1 -Eo '[0-9]+%')" /alias VU exec - echo "\033[35mvolume: $$(amixer set Master 1+ | grep -m 1 -Eo '[0-9]+%')" /alias VM exec - echo "\033[35mvolume: $$(amixer set Master 0 | grep -m 1 -Eo '[0-9]+%')" /alias VN exec - echo "\033[35mvolume: $$(amixer set Master 19% | grep -m 1 -Eo '[0-9]+%')" /alias VS exec - echo "\033[35mvolume: $$(amixer set Master '$*'% | grep -m 1 -Eo '[0-9]+%')"
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
- http://irssi.org/documentation
- http://irssi.org/themes
- http://scripts.irssi.org/
- http://wouter.coekaerts.be/site/irssi/aliases
- https://github.com/shabble/irssi-docs/wiki
--Ferdybassi 16:03, 10 mar 2010 (CET)