معرفی Irssi

by Ahmed on ۵/۰۵/۱۳۸۹

خوب بعد مدتها ، یه حسو حال و وقتی پیدا کردم بنویسم ! تا دوهفته پیش درگیر امتحانای دانشگاه بودم و بعد اونم کارای لینوکس اف ام و جشنو زنجان لاگ مسافرتم مجال خاصی برام نزاشت! البته به قول جادی اینا همش بهانس و اگه آدم بخواد یه کاری رو بکنه اون کارو میکنه حالا تو هر شرایطی!

امروز دوس دارم با یه نرم افزار لینوکسی که تو خط فرمان کار میکنه و کلاینت (سرویس گیرنده! ) IRC هست آشناتون کنم و طی این آشنایی با مباحث زیر روبرو میشیم:

  • irc چیست
  • دستورات irc
  • آشنایی با دستورات اولیه Irssi
  • نام های مستعار خود را بسازید
  • اجرای برنامه ها و چاپ خروجی آنها از داخل irssi
  • به کاربرانی که به شما msg/ میدهند بگویید نیستید
  • کارهای تکراری را در irssi خودکار کنید
  • چند ترفند برای مقابله با افراد/کانالهای شلوغ
  • تهیه گزارش از لاگهای irssi
  • برای irssi خود برنامه بنویسیم

irssi

irc چیست:

اما برای دوستانی که نمیدونن irc چی هست:

آی‌آرسی ((Internet Relay Chat (IRC) یا گپ رله اینترنتی، روشی از ارتباط آنی روی اینترنت است. آی‌آرسی اساساً برای گفتگوهای گروهی طراحی شد و گفتگوها بصورت عمومی در محلهایی بنام کانال (به انگلیسی: Channels) انجام می‌گیرد، همچنین ارتباط شخص با شخص توسط پیام خصوصی ممکن است. IRC به‌وسیله جارکو اویکارینن (به انگلیسی: Jarkko Oikarinen) (اسم مستعار WiZ) در اواخر اوت ۱۹۸۸ برای جایگزینی برنامه بنام MUT ساخته شد.

و واقعا هم irc جای بسیار خوبیه که اکثرا افراد متخصص رو میتونید توش پیدا کنید و کمتر جای دوس دختر دوس پیر بازیه! برنامه های زیادی برای کار با irc هست اما اسم اون برنامه که میخواهم معرفی کنم Irssi هست .

همون طور که گفتم irssi یه سرویس گیرنده تحت خط فرمان irc هست که از سال ۱۹۹۹ تحت زبان زیبای c در حال توسعه هست.

بامزگیش همین تحت خط فرمان بودنش و قابلیت انعطاف خیلی بالاشه که جلوتر توضیح میدم. کافیه بنا به توضعی که دارین Irssi رو نصب کنید و در خط فرمان irssi رو بزنید تا نرم افزار اجرا بشه!

دستورات irc :

خوب مسلما مثل همه کلاینتهای IRC میتونید دستورات irc رو توش اجرا کنید ! اگه با این دستورات آشنایی ندارین توصیه میکنم از این لینک استفاده کنید که مطالب فارسی خوبی رو راجع به این موضوع ارائه میده !

مثلا میگه که برای ثبت نام باید از این دستور استفاده کنید :

/msg nickserv register PASSWORD

ولی اگه بخوام خلاصه فقط اونایی که لازمه رو بگم:

/nick username

/server chat.freenode.net

/join #zanjanlug

در دستور اول من هر اسمی که دلم بخواد ! (البته اگه قبلا ثبت نشده باشه) رو به خودم میدم! برای اینکه بفمید چه طوری ثبت نام میکنن و ما بقی کارا حتما از لینکی که معرفی کردم استفاده کنید و در مرحله دوم به سرور مورد نظرم وصل شدم ! بعد به کانال مورد نظرم وارد شدم !

آشنایی با دستورات اولیه Irssi :

و اما برای پیمایش برگه ها از Alt+number استفاده کنید و یا از Alt+left/right . مثلا برای رفتن به برگه دوم ار آلت + ۲ استفاده کنید و برای بالا پایین رفتن در پیغامهای یک صفحه از Alt+p و Alt + n استفاده کنید.

خوب من الان تو نستم از irssi به صورت معمولی استفاده کنم !اما ببینیم که چه طوری میتونیم بهترو بیشتر ! با این نرم افزار کار کنیم:

/j kde,gnome (/join #kde,#gnome) Join a channel
/c (/clear) Clear the window
/c -all (/clear -all) Clear all windows
/wi nickname (/whois) View information about nickname
/pa (/part) Leave a channel
/m (/msg) Send a private message
/al (/alias) View available aliases/shortcuts
/al X (/alias X) Aliases/shortcuts beginning with X

نام های مستعار خود را بسازید :

بسیار عالی ! حالا یه سری ترفند تو این نرم افزار بزنیم و حال کنیم!

بیایین یه سری میانبر برای دستوراتمون بسازیم!

مثلا با زدن این دستور :

/alias linuxfriends /me has a few good friends. man, info, /usr/doc, tlpd & google.

خوب اگه بعد از زدن این دستور هر وقت که خواستم بزنمlinuxfriends/ اون یه خروار دستوری که تعریف کردم اجرا میشه!

خوب بیایین یه نمه انعطاف پذیر تر کنیم این دستورو با گرفتن آرگومان!!!

/alias tarvel /me travel to $0 $1 $2 **

و بعد از اون خیلی راحت به این صورت استفاده میکنم:

/travel tehran mashhad torghabe

یه مثال خوب al uptime/ هست که کوچک شده عبارت زیره!

UPTIME eval exec – expr date +%s – \$F | awk ‘{print “Irssi uptime:”int(\\\$1/3600/24)”d “int(\\\$1/3600%24)”h “int(\\\$1/60%60)”m”int(\\\$1%60)”s” }’

نکته: خاطرتون باشه بعد از نوشتن میانبر ها و سایر تنظیماتتون حتما دستور save/ رو بزنید.

اجرای برنامه ها و چاپ خروجی آنها از داخل irssi :

خوب خیلی جالب شد بیایین با ترفند های بیشتری آشنا شیم:

برای اجرای برنامه از داخل irssi کافیه به صورت زیر اقدام کینم:

/exec program

و اگه بخواهیم خروجی دستور خط فرمانمون در داخل کانالمون درج شه از کلید o- استفاده میکنیم :

/exec -o ls /pub/

به کاربرانی که به شما msg/ میدهند بگویید نیستید:

با استفاده از دستور :

/set show_away_once ON

وقتی شما از دستور away/ استفاده میکنید ، اگر کاربری توسط msg/ به شما پیغام دهد به صورت خودکار به او پیغام away شما ، نمایش داده خواهد شد.

کارهای تکراری را در irssi خودکار کنید:

خوب مسلما هیچ کسی دوس نداره هر وقت irssi رو اجرا میکنه تمام دستورات مربروط به لوگین و انتخاب سرور و کانال ها و … رو بزنه ، پس باید این کارها خودکار بشه ! برای خود کار کردن کارها در irssi به صورت زیر عمل میکنیم:

/server add -auto -network Freenode irc.freenode.net 6667

/channel add -auto #linuxfm Freenode

/channel add -auto #zanjanlug Freenode

/network add -autosendcmd “/msg nickserv identify password ;wait 2000″ Freenode

ما در خط اول سرورمون رو اضافه میکنیم ، کلید auto- باعث میشه هر وقت irssi اجرا بشه این دستوراتم اجرا بشن! در دو خط بعد من کانال هایی که دوس دارم اتوماتیک همیشه واردشون شم رو اضافه میکنم و در خط آخر چون من نام کاربریمو ثبت کردم کاری میکنم که به طور خودکارم پسورد به سرور فرتاده شه . مطمئنا به جای password باید پسورد خوتونو بزارید!

چند ترفند برای مقابله با افراد/کانالهای شلوغ:

اگر شما در کانال های پر جمعیت هستین مثل technotux خودمون ،دیدن آمدو رفت افراد ممکنه آزار دهنده باشه بنابراین با دستور:

/ignore #channelname ALL -PUBLIC -ACTIONS

میتونید این چیزا رو غیر فعال کنید ! اگه بجای نام کانال که در channelname# قرار میگره از * استفاده کنید این به تمام کانال ها اعمال میشه و اما برای مقابل افراد شلوغ! که واقعا بعضی وقتا شورشو در میارن:

/ignore -time 3600

این دستور شخصی رو که در قسمت nick قرار میگیره به مدت یک ساعت نادیده میگیره! (کاش آیدنتیکا هم یه همچین چیزی داشت!)

تهیه گزارش از لاگهای irssi :

نرم افزار های جانبی خیلی خوبی برای تهیه آمار و ارقامهای خیلی مختلف از لاگ irssi شما درست شدن. در حد نام بردن میشه به نرم افازرهای زیر اشاره کرد:

irssistats

nudelstats

irCstats

pisg

برای irssi خود برنامه بنویسیم :

یکی از زیباترین جنبه های برنامه irssi امکان توسعه آسونه اونه. وقتی من irssi رو نصب کردم متوجه شدم که وقتی من ترمینال رو مینیمایز میکنم تا به کارام برسم اگه ملت به کانال بیانو پیغام بدم من متوجه نمیشم و مدام باید پنجره رو ماکیمایز کنم تا ببینم چه خبره!

خوب این که نمیشد برای همین فکر کردم اگه هر کی پیغام میده یه notify در دسکتاپم ظاهر بشه و یه صدای کوچیک در بیاد خیلی خوب میشه! بنا بر این دست به کار شدم و با کمک دوستان این قضیه هم حل شد! مراحل زیر روند کارو نشون میده :

mkdir -p ~/.irssi/scripts/autorun/

cd ~/.irssi/scripts/

touch notify.pl

gedit notify.pl

#——————————- past this lines to file ——————————————————-

use strict;

use vars qw($VERSION %IRSSI);

use Irssi;

$VERSION = ’0.0.3′;

%IRSSI = (

authors => ‘Chrelad’,

contact => ‘[email protected]’,

name => ‘notify’,

description => ‘Display a pop-up alert for different events.’,

url => ‘http://google.com’,

license => ‘GNU General Public License’,

changed => ‘$Date: 2007-02-07 12:00:00 +0100 (Thu, 7 Feb 2008) $’

);

#——————————————————————–

# Created by Chrelad

# Feb 7, 2008

#——————————————————————–

#——————————————————————–

# The notify function for public message

#——————————————————————–

sub pub_msg {

my ($server,$msg,$nick,$address,$target) = @_;

`notify-send -t 8000 “${target} : ${nick}” “${msg}”`;

}

#——————————————————————–

# Irssi::signal_add_last / Irssi::command_bind

#——————————————————————–

Irssi::signal_add_last(“message public”, “pub_msg”);

Irssi::signal_add_last(“message private”, “pub_msg”);

#- end

cd autorun/

ln -sfn ../notify.pl

خوب ببینیم چه کردیم ! ما فهمیدیم که اسکرپتهای irssi در مسیر

~/.irssi/scripts/

قرار دارند و برای اینکه با اجرای irssi ، خودکار اجرا بشن باید در پوشه autorun لینک بشن! و اما میریم سراغ اسکریپتمون، اون به زبان پرل نوشته شده و اینجا داره بر اساس سیگنال و اسلاتهای irssi کار میکنه ! برای دیدن لیست سیگنال ها irssi اینجا رو کلیک کنید،باید یه اعترافی کنم واقعا بحث سیگنال چیز جذابیه که من تا قبل از امدن رو لینوکس اسمشم نشنیده بودم ، از این لینک میتوانید تمام اسکرپتهای ساخته رو پیدا کنید و ازشون استفاده کنید.

نکته: تغییر این اسکرپتها کار آسون و سرگرم کننده ایه ، فقط عزیزان KDE کار برای استفاده از اسکریپت بالا به جای استفاده از notify-send که مخصوص gnome هست از kdialog –passivepopup استفاده کنند.

از استادم ، آقای مقدم بخاطر معرفی این نرم افزار تشکر میکنم ، امیدوارم شما هم از این نرم افزار لذت ببرید .

منابع:

http://linuxreviews.org/software/irc/irssi/

http://www.persianroom.org/learning/irc.html

http://fa.wikipedia.org/wiki/%D8%A2%DB%8C%E2%80%8C%D8%A2%D8%B1%D8%B3%DB%8C

http://www.irssi.org/documentation/startup

http://linuxtidbits.wordpress.com/2008/01/09/setting-up-irssi/

پ . ن :

ما معتقدیم که عشق سر خواهد زد
بر پشت ستم کسی تیر خواهد زد
سوگند به هر چهارده آیه نور
سوگند به زخم های سرشار غرور
آخر شب سرد ما سحر می گردد
مهدی به میان شیعه برمی گردد
یا امام زمان انتظار هم از نیامدنت بی تاب شد …

=-=-=-=-=
Powered by Bilbo Blogger

[email protected]

There are 3 comments in this article:

  1. ۱۲/۰۵/۱۳۸۹n4v4r3d says:

    salam
    mrc ababte tozihe khob va moarefie in barname……….:)

  2. ۲۸/۰۷/۱۳۸۹پیام says:

    عالی و کاربردی… مرسی

  3. ۲۹/۰۷/۱۳۸۹فرید says:

    قربونه شما لطف داری

Write a comment: