IRC: irssi, darmowy shell - bshellz

Artykuł ten napisałem kiedyś na potrzeby pewnej grupy znajomych w celu spopularyzowania nie tyle irssi, ile samej idei ircowania. Umieściłem go w sieci, a niedawno okazało się, że ktoś tam go podlinkował na swoim blogu, ktoś wyczytał i na nasz kanał trafiła osoba z joggera. Miło się zaskoczyłem. Postanowiłem więc uogólnić go nieco i zamieścić na blogu. Może komuś się przyda. Tekst jest pisany z myślą o (prawie) zupełnych laikach, tak, żeby (prawie) każdy mógł go sobie przyswoić. I nie chodzi tu o społeczność joggera, ile raczej nadzieję, że wujek wielkie G spojrzy na to łaskawym okiem.

IRC - krótki wstęp

IRC

Czym jest IRC? Najprościej będzie zacytować definicję z Wikipedii:

IRC (ang. Internet Relay Chat) to jedna ze starszych usług sieciowych umożliwiająca rozmowę na tematycznych lub towarzyskich kanałach komunikacyjnych, jak również prywatną z inną podłączoną aktualnie osobą.

Nie będziemy się tu zagłębiać w szczegóły - IRC po prostu umożliwia komunikację wielu osób w sieci i powstał jeszcze zanim ktokolwiek pomyślał o jakichkolwiek innych komunikatorach. Składa się z wielu sieci, które różnią się od siebie w wielu bądź niewielu aspektach. Skupimy się na sieci freenode, jednej z przyjemniejszych i łatwiejszych w użytkowaniu. W sieci istnieje wiele kanałów - kanał czasami skrótowo jest nazywany #.

Na IRCu istnieje wiele różnych komend. Reguła jest taka: kiedy piszesz na kanale, po prostu piszesz i wciskasz [Enter], a komendy poprzedza się znakiem ukośnika (tudzież slashem): "/" Ważne jest też to, żeby przed znakiem / nie było żadnych spacji ani innych znaków, bo potratkowane to zostanie jako zwykła wypowiedź, a nie komenda.

  • /join #jogger.pl - dołączasz do kanału #jogger.pl
  • /nick nowynick - zmieniasz nick na nowynick
  • /me coś robi - wyświetla tzw. "akcję" w formie * twojnick coś robi
  • /notice czyjsnick wiadomość - tzw. "whisper" do osoby czyjsnick
  • /query czyjsnick - otwiera okno/zakładkę prywatnej rozmowy z czyjsnick
  • /whois czyjsnick - wyświetla kilka prostych informacji o osobie czyjsnick
  • /part #jogger.pl jakiś komunikat - wyjście z kanału #jogger.pl (ale nie rozłączenie się z IRCem!). "Jakiś komunikat" jest opcjonalny.
  • /quit jakiś komunikat - rozłącza Cię z IRCem. "Jakiś komunikat" jest opcjonalny.

Jedną z istotniejszych spraw jest rejestracja własnego nicka, żeby potem nie było lamentu, że ktoś go podwędził. Do obsługi nicków służy bot (serwis) który nazywa się NickServ. Kiedy już się połączysz z IRCem, warto z tym botem "porozmawiać". Wszelką pomoc dotyczącą rejestracji nicka i autoryzacji uzyskasz po wykonaniu komendy /msg NickServ HELP

Żeby zarejestrować nicka, pod którym jesteś właśnie połączony z IRCem, wpisz /msg NickServ REGISTER twojetajnehaslo twoj@adres.email - zobaczysz komunikat "An email containing nickname activation instructions has been sent to twoj@adres.email. If you do not complete registration within one day, your nickname will expire."

Na podany adres dostaniesz maila z kodem weryfikacyjnym. Kopiujesz go i wpisujesz /msg NickServ VERIFY REGISTER twojnick kod-weryfikacyjny - powinieneś zobaczyć komunikat "twojnick has now been verified."

Co zaś zrobić, kiedy nick jest już zajęty? Zobaczysz komunikat "twojnick is already registered." Pozostaje wybrać inny nick i go zarejestrować, lub też poprosić o "dropnięcie" tego nicka dla Ciebie, jeśli jego właściciel nie logował się na niego od dłuższego czasu (zwyczajowo jest to 60 dni). Żeby sprawdzić, kiedy właściciel tego nicka ostatnio się autoryzował, wpisz /msg NickServ info twojnick - zobaczysz wtedy komunikat o tym, kiedy nick był zarejestrowany, spod jakiego hosta właściciel się na niego logował oraz, kiedy to miało miejsce. Może to wyglądać np. tak: "Last seen : Jun 15 21:42:41 2008 (1 year 5 weeks, 2 days, 19:02:51 ago)"

Jeśli więc chcesz zaklepać już zarezerwowany (ale od dawna nieaktywny) nick dla siebie, musisz udać się na kanał #freenode (/join #freenode) gdzie (już po angielsku;) wyłuszczysz swoją sprawę i najprawdopodobniej ktoś z freenode'owego staffu zwolni ten nick i będziesz mógł go sam zarejestrować.

Kiedy już masz zarejestrowany nick i łączysz się z freenode, wystarczy wpisać prostą komendę /msg NickServ IDENTIFY twojetajnehaslo i już jesteś autoryzowany (zalogowany). Jeśli zdarzy się tak, że ktoś "zajmie" Twój zarejestrowany wcześniej nick (rzadko się to zdarza, ale czasami się jednak może trafić komuś), wystarczy wpisać komendę /msg NickServ GHOST twojnick twojetajnehaslo

Klient: irssi

Żeby połączyć się z IRCem, potrzebujesz programu klienckiego. Tu przechodzimy do meritum, czyli irssi. Irssi to jeden z najstarszych klientów IRC przeznaczony na platformy takie jak Unix czy Linux. Natomiast dzięki darmowemu kontu shell na bshellz będzie można trzymać sesję IRCa prawie-że-wiecznie-on-line.

Na początku trzeba zaznaczyć, że irssi jest to klient tekstowo-konsolowy, czyli na niewiele zda się przy jego użytkowaniu myszka. Klawiszologia jest prosta: lewy Alt + [cyfra] (w przypadku PuTTY pod Windowsem mamy możliwość przełączania się pomiędzy poszczególnymi oknami za pomocą kombinacji lewy Alt + [kursor prawo/lewo]), przełączamy się między oknami/zakładkami (jak zwał, tak zwał). Całą resztę wykonujemy przy użyciu komend. Po pierwszych starciach może się okazać, że irssi jest bardzo przyjemnym klientem, chociaż na początku można się w nim dziwnie czuć. Ale jest naprawdę wart polecenia, jeden z najstarszych i najbardziej znanych klientów IRCa na świecie. Są też dostępne jego wersje pod Windowsa, ale to już nie to samo...

Żeby zacząć przygodę z irssi i shellem, najpierw musimy sobie tego shella założyć. Oczywiście, mogą też być i płatne shelle, ale to nie chodzi obecnie o jakieś niesamowite możliwości. Najpierw trzeba wejść na kanał #bshellz w sieci freenode - może do tego posłużyć bramka IRC dostępna pod adresem: http://webchat.freenode.net/.

Najpierw wypada przeczytać temat kanału - zazwyczaj jest widoczny na górze, nad oknem rozmowy. Następnie wpisujemy /query BeschBot i widzimy okno prywatnej rozmowy z botem bshellz. Wpisujemy help i czytamy, co nam bot wypluje. Wpisujemy !register i co widzimy?

<BeschBot> To register, type !register <desired-username> <email>

Wpisujemy więc, przykładowo, !register remmaz remmaz@mail.com (oczywiście "remmaz" to tylko przykład nicka) i widzimy coś takiego:

<BeschBot> all seems ok! check your email for confimation code!

Po kilku chwilach powinien dość mail mniej-więcej takiej treści:

You're receiving this mail from Bshellz BeschBot!
Your confirmation code is: xy7Ciekfkh7w
To complete the registration process you must send your confirmation code to BeschBot on IRC
i.e.... /MSG BeschBot !confirm xy7Ciekfkh7w
nOnce you have confirmed you will receive your shell details!

Wracamy więc na IRCa i na query BeschBotowi piszemy !confirm xy7Ciekfkh7w (oczywiście wstawiamy swój kod potwierdzenia) a bot wypluwa nam piękną odpowiedź:

<BeschBot> your shell will be created in the next 5 minutes! You'll receive details by email shortly!

Czekamy więc na maila, w którym dostajemy dane do logowania, a w tak zwanym międzyczasie możemy ściągnąć odpowiedni program, dzięki któremu będziemy mogli połączyć się z naszym nowym shellem. Program nazywa się PuTTy i można go ściągnąć ze strony http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html - wybieramy pierwszy link od góry, czyli czyste PuTTY, nie interesują nas inne wersje. Jeśli zaś lubimy bajery, to możemy ściągnąć sobie przyjemną modyfikację, która zwie się PuTTY Tray i jest dostępna do ściągnięcia na stronie http://haanstra.eu/putty/. Różni się ona tym od zwykłego PuTTY, że minimalizuje się nie do paska zadań, a do zasobnika systemowego, a także umożliwia ustawienie przezroczystości okna. Ot, taki szpan ;)

Kiedy już ściągnęliśmy sobie PuTTY, najpewniej doszedł mail z danymi, które posłużą nam do logowania się na darmowego shella. Jest tam również ważna informacja dotycząca utrzymania naszego konta shell - nie musimy nic płacić, ale raz na 168 godzin (czyli dokładnie raz na tydzień) musimy zajrzeć na kanał #bshellz w sieci freenode i wpisać komendę !keep nick (gdzie "nick" to oczywiście nasz wybrany login).

Uruchamiamy zatem PuTTY i z lewej strony wybieramy Window > Translation, gdzie ustawiamy kodowanie na UTF-8:

Konfiguracja PuTTY

Wracamy z lewej strony do zakładki Session i w pole Host Name (or IP address) wpisujemy to, co w mailu dostaliśmy jako Server (przykładowo może to być server1.bshellz.net), a w pole pod Saved Sessions wpisujemy cokolwiek, będzie to nazwa widziana tylko przez nas - możemy więc dla wygody wpisać np. "bshellz", ale może tam być też coś zupełnie innego. Upewniamy się, że zaznaczona jest opcja SSH i klikamy [Save]

Konfiguracja PuTTY

Teraz już możemy logować się na naszego shella - wystarczy, że zrobimy "dwuklik" na nazwie, pod którą zachowaliśmy ustawienia, albo ją zaznaczymy na liście i klikniemy [Open]. Po otwarciu sesji widzimy magiczny czarny ekran, który wita nas tajemniczym login as:

Konfiguracja PuTTY

Tak, tutaj dopiero wpisujemy nasz login, a po zatwierdzeniu hasło, które dostaliśmy w mailu. Widzimy mniej więcej coś takiego:

Konfiguracja PuTTY

No to już jesteśmy w domu. Pozostało nam do opanowania kilka rzeczy. Pierwsza z nich to zmiana hasła. Koniecznie! Wpisujemy passwd a następnie stare hasło, nowe hasło i powtarzamy. Teraz jeszcze trochę teorii i przydatnych programów:

  • screen - bardzo przydatny program, jeśli chcemy trzymać sesję IRCa aktywną nawet wtedy, kiedy się rozłączymy z shellem. Żeby uruchomić screena wpisujemy screen -SU jakasnazwa i otrzymujemy w ten sposób "wirtualną przestrzeń". Możemy z niej wyjść za pomocą kombinacji klawiszy Ctrl + A + D (naciskamy najpierw Ctrl, potem A, zwalniamy A i naciskamy D). Wracamy wtedy do głównej przestrzeni, a programy uruchomione wewnątrz danego screena nadal działają. Żeby wrócić do screena, wystarczy wpisać screen -r jakasnazwa - a jeśli zdarzy nam się uruchomić więcej niż jeden screen pod tą samą nazwą, możemy zawsze odwoływać do niego poprzez polecenie screen -r PID.jakasnazwa, gdzie PID to indywidualny identyfikator danego procesu w systemie (kiedy próbujemy przywołać screena, który wspódzieli nazwę z innym, program sam nam wypluje komunikat błędu wraz z listą PIDów). Żeby "zabić" zbędnego screena, wyświetlamy sobie listę aktualnie aktywnych screenów poprzez polecenie screen -ls - wybieramy jego PID (np. 22456) i wpisujemy kill -9 22456 a następnie screen -wipe
  • mc - czyli Midnight Commander, popularny manager plików na wzór znanego Norton Commandera. Niektórzy wolą mc od ręcznego wpisywania komend, inni wolą ręcznie klepać komendy. To już zależy od własnych upodobań.
  • irssi - czyli nasz główny obiekt zainteresowań, konsolowy klient IRCa. Szczegóły niżej.

Siadamy zatem wygodnie i pierwsze, co robimy, to tworzymy screena dla naszej sesji IRCa. Wpisujemy komendę screen -SU irc (nazwa "irc" to tylko przykład, możemy wpisać też "irssi" albo "cokolwiek"). W nowo utworzonym screenie odpalamy irssi, wpisując po prostu irssi - i oto jest ;) Teraz wypadałoby połączyć się z serwerem, wpisujemy więc /server irc.freenode.net i już jesteśmy połączeni. Teraz wystarczy wpisać tylko /join #jogger.pl i jesteśmy w domu! Między oknami/zakładkami możemy przemieszczać się, jak już było wyżej wspomniane, za pomocą kombinacji lewy Alt + [cyfra] lub też lewy Alt + [kursor prawo/lewo]

A jeśli chcemy odejść w końcu od tego kompa i iść na spacer? Nic prostszego, sesja nadal może trwać, a my możemy ją sobie "zawiesić w niebycie". Wpisujemy w irssi komendę /away jakiś tam powód bycia "ełej". Wychodzimy ze screena: Ctrl + A + D i zamykamy PuTTY. Kiedy chcemy wrócić, logujemy się na shella przez PuTTY, wpisujemy screen -r irc (gdzie "irc" to nazwa naszego screena, jaką nadaliśmy wydając komendę screen -SU nazwascreena) i już w irssi wracamy z trybu "away" do normalnej pracy: /away - jeśli ktoś do nas pisał, lub też wywoływał naszego nicka, irssi będzie to trzymać w tzw. "away logu" i wyświetli nam linie, które zawierają "highlighted strings". Standardowo jest to nasz nick.

Jeśli chcemy dodać coś ekstra, powiedzmy, że interesują nas wypowiedzi dotyczące nicka d4rky i chcemy wiedzieć kto o nim plotkuje, wystarczy, że wpiszemy /highlight d4rky i już irssi będzie wyróżniać na żółtawo linie, w których pada jego nick, a także będzie te dane trzymać w "away logu", jeśli będziemy w trybie "away". Oczywiście irssi jest na tyle sprytne, że możemy też dodać fragment słowa - np. interesuje nas kto plotkuje o spiochu. Problem jest w tym, że niektórzy mówią o nim "spioch", inni "spioszek" a jeszcze inni "spiochu". Możemy dodać zatem do wyróżniania samo "spio" - załatwi nam to wszystkie warianty: /highlight spio Jednak należy uważać, bo jeśli dodalibyśmy samo "spi" wyróżniałoby też nam linie takie jak "spitalaj", "spiacy jestem", "spis ludnosci" itp.

Domyślnie irssi nie wyświetla stale listy nicków obecnych na kanale. Jeśli chcemy ją zobaczyć, to wpisujemy /n albo /names i już widzimy. Podobnie działa komenda /b albo /ban - wyświetla listę banów na kanale.

Bardzo przydatną opcją jest tzw. tabowanie, czyli automatyczne uzupełnianie komend albo nicków. Jeśli wpiszemy tylko /aw i naciśniemy [Tab], to irssi automatycznie uzupełni komendę do /away. Podbnie z jest z nickami: jeśli chcemy napisać coś na kanale i poprzedzić linię wypowiedzi czyimś nickiem, to wpisujemy pierwszą literę jego nicka i wciskamy [Tab] - irssi automatycznie uzupełni resztę, doda jeszcze dwukropek i spację na końcu, żeby było wiadomo, że zwracamy się do kogoś bezpośrednio. Jeśli na kanale jest więcej osób o nicku na tę samą literę, możemy kilkukrotnie nacisnąć tabulator, wtedy nicki będą zmieniać się rotacyjnie.

Ała, coś się zepsuło!

Czasem bywa tak, że "niechcący" coś się wciśnie i przestanie działać. Bez paniki :) Jeśli przypadkiem wciśniemy kombinację Ctrl + Z, odsyłamy wtedy irssi "w tło". Podobnie dzieje się, kiedy naciśniemy [Pause/Break] na klawiaturze. Co w takim przypadku zrobić? Wpisać po prostu fg i nacisnąć oczywiście [Enter] - irssi automagicznie wróci w tryb normalnej pracy.

Czasami naciśnie się też nieopatrznie kombinacja Ctrl + S, która zamrozi screena. Nie, nie warto walić wtedy na oślep w klawiaturę, wystarczy wcisnąć kombinację Ctrl + Q i już wszystko działa. Podobnie można screena zablokować kombinacją Ctrl + A + S - również wtedy nie ma co panikować, wystarczy użyć kombinacji Ctrl + A + Q i screen wraca do życia.

Pamiętaj!

Żeby utrzymać tego darmowego shella, trzeba przynajmniej raz na tydzień (czyli raz na 168 godzin) zajrzeć na kanał #bshellz w sieci freenode i wpisać komendę !keep logindoshella - jeśli o tym się zapomni, shell zostanie usunięty i trzeba będzie go zakładać od nowa.

W razie problemów, bshellz ma też polski support - kanał #bshellz-pl w sieci freenode.

Napisał zammer, 28 grudnia 2009 o godzinie 16:45:27
Kategorie: Technikalia 10 komentarzyRSS komentarzy
Poziom wpisu: 0 Trackback

Komentarze:

http://pecet.jogger.pl/files/favicon.ico

1. pecet 28 grudnia 2009, 17:08:04 [permalink]

Fajnie fajnie, ale po co początkującemu użytkownikowi w ogóle shell i dosyć trudny klient jak irssi? Lepiej by było polecić http://webchat.freenode.net ;) albo jakiś klient z GUI

http://blog.zammer.eu/files/favicon.png

2. zammer 28 grudnia 2009, 17:15:54 [permalink]

Dla szpanu ;) I, jak doświadczyłem na własnej skórze, służąc niektórym osobom jako "helpdesk" w tej sprawie, nie jest to aż takie trudne, jak sądzisz. Ja sam do irssi przywykłem w ciągu kilku godzin i się zachwyciłem.

No i zasadniczy plus - możesz mieć do niego dostęp praktycznie wszędzie, a sesja będzie stać i masz wgląd do tego, co się działo wcześniej (jak np. wpadasz w środku rozmowy), widzisz co inni pisali do Ciebie, jak byłeś "away".

Owszem, znam i takich, którzy nie dają się przekonać do żadnego klienta i wiecznie korzystają z bramki. Kwestia upodobań.

http://pecet.jogger.pl/files/favicon.ico

3. pecet 28 grudnia 2009, 17:17:16 [permalink]

To już lepiej postawić jednego klienta który będzie gdzieś logi dostępne via http zapisywał, niż mieć armię idlerów którzy się od miesięcy nie odezwali, ale sesja im siedzi ;)

http://blog.zammer.eu/files/favicon.png

4. zammer 28 grudnia 2009, 17:18:45 [permalink]

Przy bshellz nie masz takiej opcji raczej - jeśli raz na tydzień się nie zaloguje, to shell leci w niebyt i idler znika.

http://mrdoom.jogger.pl/files/favicon.png

5. _DooM 28 grudnia 2009, 18:11:11 [permalink]

Lepiej zamiast irssi postawić na shellu ekg2, masz wszystko w jednym programie (irc, jabber i gg)

6. darkjames 28 grudnia 2009, 18:14:57 [permalink]

ekg2 jest nierozwijany i dalej ma problemy z pamięcią.

Co polecacie zamiast ekg2?

http://necro.nomicon.pl/files/favicon.ico

7. groszek 28 grudnia 2009, 20:47:15 [permalink]

bitlbee + irssi

8. lolek 29 grudnia 2009, 02:15:17 [permalink]

Może głupie pytanie ale do czego właściwie jest przydatna wisząca sesja IRC? Do trzymania porządku na kanale potrzeba jednego czy botów, w wielu sieciach autoop na kanale można po prostu skonfigurować i stała obecność nie jest do niczego potrzebna. więc po co się męczyć z kontem shelowym a nie po prostu odpalić irssi/xchat/chatzillę?

9. darkjames 29 grudnia 2009, 15:11:03 [permalink]

Może głupie pytanie ale do czego
właściwie jest przydatna wisząca sesja
IRC?

Dla backloga.
Serwery irc nie kolejkują wiadomości, dlatego:

sesja gg/xmpp <-- makes no sense.
sesja irc <-- makes sense.

10. mruczek 14 lipca 2010, 11:50:15 [permalink]

do autora : dzięki :P

ratujesz mi życie :D

Dodaj komentarz:

Markdown włączony w komentarzach (opis znaczników)