Screen + Irssi

Hvorfor Screen + Irssi?

Efter at have installeret Debian og SSH på min Eee server, samt gjort klar til at hoste og teste PHP applikationer på Ubuntu/Debain LAMP serveren, er det på tide også at gøre plads til lidt pjat og chat. Meget af kommunikationen i både det danske og det internationale Ubuntucommunity foregår via IRC protokollen, og IRC er derfor et godt sted at følge med hvis man gerne vil hjælpe til i communitiet, eller hvis man bare gerne vil have hjælp i real-time. For at benytte IRC protokollen skal man have en såkaldt IRC-klient. Der findes mange af disse, både med og uden GUI. Da projektet her handler om at køre en server der kan styres via ssh vælger jeg Irssi som er en terminalbaseret IRC-klient. For at gøre det en smule mere interessant vælger jeg at køre det igennem programmet Screen. Screen er et terminal program der lader dig åbne og styre flere terminalvinduer på den maskine det kører på, selvom du kun har åbnet én session. Dvs. det giver mulighed for kun at lave én SSH-forbindelse fra klientmaskinen til serveren, der så kan åbne flere "terminalvinduer" og på den måde køre flere programmer sideløbende. Ydermere lader Screen serveren huske din session fra gang til gang. Du kan altså starte en række terminalprogrammer, lukke SSH-forbindelsen, og logge på igen via SSH, og fortsætte hvor du slap.

Hvordan Screen + Irssi?

Selve opsætningen er let nok, da standardindstillingerne egentlig er fint nok til langt det meste. Begge programmer findes i både Ubuntu og Debians repositories, og kan derfor installeres som med det meste andet. Først Screen:
aptitude install screen
Derefter Irssi:
aptitude install irssi
Herfra kører det egentlig af sig selv, og standardopsætningen skulle for de fleste være god nok langt hen af vejen. Hvis man gerne vil pille, findes Screen's opsætningsfil i:
/etc/screenrc
Men jeg har aldrig haft behov for at ændre på standardindstillingerne, så jeg kender egentlig ikke rigtigt noget til den. opsætningen til Irssi findes i:
~/.irssi/config
Her er der mulighed for at indstille hvilke chatnets (IRC-servere) du benytter, hvilke kanaler (chatrum) på de forskellige chatnets du bruger, samt sætte autojoin på de forskellige chatnets og/eller kanaler, samt auto identify (log-in) på dine chatnets. Dette kan også gøres fra selve programmet hvis man ikke er så glad for at sidde og fedte med config-filer, dette vil jeg komme ind på senere.

Screen

De grundlæggende ting i screen er forholdsvis lette at lave hvis man har en smule erfaring med terminalbrug (hvilken mine læsere selvfølgelig har, da det efterhånden er et stykke tid siden jeg skrev min guide til Ubuntu terminalen ;-)), eller bare en smule gåpåmod. Først startes screen med:
screen
Der startes så en terminal, hvor du kan starte dine programmer som normalt. Udover de normale terminalkommandoer har screen nogle shortcuts der er gode at kende når man arbejder med programmet. Disse kommandoer bruges med:
ctrl+a, [letter]
Dvs. man trykker ctrl og bogstavet a samtidig, hvorefter man slipper de to knapper og trykker på det bogstav der svarer til den kommando man leder efter. Nogle gode kommandoer er:
  • 0-9 - skift til vindue 0-9
  • c - ny vindue
  • d - Detach fra session
  • n - næste vindue
  • w - Vis vinduer
  • k - kill, luk vindue
Dvs. hvis man vil oprette et nyt terminalvindue i sin screen session trykker man ctrl+a ned samtidig, slipper de to knapper hvorefter man trykker en enkelt gang på c. Når man er færdig med at bruge screen kan man enten lukke det ned med
exit
ligesom alle andre terminalsessions, eller man kan bruge ctrl+a+d for at detache. Det vil sige man kobler sig fra sin screen session, men lader den køre i baggrunden så man altid kan få fat i den og arbejde videre med den, på et senere tidspunkt.

Reattach

Næste gang man vil starte screen skal man så lige overveje hvad det egentlig er man gerne vil. Man kan, ligesom i første omgang, bruge
screen
Til at starte en ny screen-session, eller:
screen -raAd
for at genoptage en evt. gammel screen session, som du tidligere har detachet fra.

Irssi

Her ville jeg egentlig have skrevet en guide til at bruge Irssi, men jeg har selv været meget glad for MenZa's guide til Irssi, så den vil jeg gerne have lov til at anbefale :-)

Edit:

Jeg vil forresten også gerne gøre lidt reklame for denne Irssi kommandoliste, med en masse kommandoer der kan være gode at kunne når man er kommet lidt i gang med Irssi.