|
در اين مطلب میخواهيم
در مورد يكی از سادهترين برنامههای Chat كه عليرغم سادگی
بسيار پركاربرد است صحبت كنيم. مسلما يكی از نيازهای اوليه كاربران يك سيستم چندكاربره نظير لينوكس، برقراری ارتباط و محاوره با ساير كاربران اين سيستم است. لينوكس برای اين كار ابزارهای
متعددی را ارائه میكند كه هر كاربر متناسب با نيازهای خود میتواند
از آنها استفاده كند. اما يكی از پركاربردترين اين ابزارها را میتوان برنامه write دانست.
مطمئنا كسانی كه از برنامهchat پيشرفته نظير messengerها استفاده میكنند، در نگاه اول هيچ شباهتی بين برنامه write
و اين برنامههای نمیبينند. اما واقعيت اين است
آنها از نظر معماری، كاملا شبيه هم هستند. در هر دو، كاربران با استفاده از برنامه مشخصی به يك كارگزار مركزی متصل میشوند
و همه تبادلات پيغامها نيز از طريق اين كارگزار مركزی انجام میشود.
تفاوت در اينجا است كه در برنامه write (و برنامههای مشابه) وجود اتصال به كارگزار مركزی بسيار واضحتر
و ملموستر است و از سوی ديگر ظاهر ساده برنامه write و محيطهايی
كه اين برنامه در آنها استفاده میشود اين ديد را قویتر
میكند. بيشترين كاربرد برنامه write را میتوان
در ميان اعضای يك شركت يا يك سازمان دانست كه همگی روی يك كارگزار خاص دارای account هستند. اين افراد (كه ممكن است در اتاقهای
مختلفی از سازمان باشند)، برای برقراری ارتباط با يكديگر به جای محاوره عادی از برنامه write استفاده میكنند.
مثلا اگر دو كاربر با شناسههای user1 و user2 روی يك كارگزار لينوكس وصل باشند، كاربر user1 برای صحبت كردن با كاربر
user2 بايد روی ترمينال خود عبارت زير را تايپ كند: write user2
به اين ترتيب پيغامی روی صفحه كاربر user2 نمايش داده میشود و او متوجه میشود
كه user1 قصد مكالمه با او را دارد. پس از اين هر جملهای كه كاربر user1 تايپ كند، پس از فشرده شدن كليد Enter روی ترمينال
user2 نمايش داده میشود. user2 نيز میتواند با اجرای
write user1 اين مكالمه را پاسخ دهد و به اين ترتيب user1 و user2 يك chat كامل را با يكديگر
آغاز میكنند. اگر در ابتدا كاربر user1 مشاهده كند كه كاربر user2 بيش از يك ترمينال باز روی كارگزار دارد، میتواند
صريحا مشخص كند كه روی كدام ترمينال user2 میخواهد بنويسد. مثلا اگر user2 روی ترمينالهای
tty1، tty4 و tty6 وصل باشد، user1 میتواند دستور زير را برای نوشتن روی ترمينال tty4 اجرا كند:
write user2 tty4
|
" " |
|
بيشترين كاربرد برنامه write را میتوان
در ميان اعضای يك شركت يا يك سازمان دانست كه همگی روی يك كارگزار خاص دارای account هستند. اين افراد (كه ممكن است در اتاقهای
مختلفی از سازمان باشند)، برای برقراری ارتباط با يكديگر به جای محاوره عادی از برنامه write استفاده میكنند.
|
|
" " |
چنانچه ترمينال
مورد نظر توسط user1 مشخص نشود، خود برنامه write بهترين انتخاب را انجام میدهد. يعنی پيغام را روی ترمينالی میفرستد
كه آخرين بار توسط user2 استفاده شده است. اما لينوكس به كاربران خود اين امكان را نيز میدهد
كه نوشته شدن روی ترمينال خود را ممنوع كنند. به اين ترتيب هيچ كاربری (مگر كاربر root) نمیتواند روی ترمينال اين
كاربر بنويسد. اين كار با استفاده از دستور mesg انجام میگيرد. اين دستور بسيار ساده است. برای ممنوع كردن نوشتن
روی ترمينال كاربر میتواند دستور زير را اجرا كند:
mesg nو برای اجازه دادن دستور زير استفاده میشود:
mesg y اما مسلما قبل از استفاده از برنامه write لازم است كه به نوعی افراد متصل
به كارگزار مشخص شوند. برای اين كار از دو دستور w و finger میتوان استفاده كرد. هر دوی اين دستورات (بدون هيچ
آرگومانی) نشان میدهند كه چه كسانی در حال حاضر روی كارگزار وصل هستند. البته اين دو دستور كاربردهای ديگری نيز
دارند كه خارج از اين مقوله هستند. يكی ديگر از برنامههای مفيد، برنامه
wall است. با استفاده از wall (كه مخفف write all) است، میتوان يك پيغام را برای تمامی كاربران متصل روی كارگزار
ارسال كرد. مثلا: wall Salamبرنامههای
پيشرفتهتر استفاده زياد از برنامه write باعث شده است كه برخی نسخههای
پيشرفتهتر آن نيز ايجاد و عرضه شوند. يكی از اين برنامهها،
برنامه nwrite يا Enhanced Write است. اين برنامه علاوه بر قابليتهای توصيف شده برای برنامه write، امكان
ارسال يك پيغام به طور همزمان به چند كاربر و امكان تعيين فرمت نمايش پيغامهايی
كه از ديگران دريافت میشود را فراهم كرده است. اما پيشرفتهترين
جانشينی كه برای برنامه write نوشته شده است، برنامه Orville Write است. اين برنامه كه همانند ساير برنامههای
ذكر شده سورسآزاد است، از نظر ظاهری بسيار شبيه برنامه write است، ولی امكانات بسيار بيشتری نسبت به آن
ارائه میكند. با استفاده از اين برنامه، وقتی كه user1 روی
ترمينال user2 مینويسد، user2 حتی در صورتی كه user1 نوشتن روی ترمينال خود را ممنوع كرده باشد، میتواند
پاسخ او را بدهد. اين برنامه تغييراتی نيز در برنامه mesg میدهد كه باعث میشود
بتوان قوانين دقيقتری برای منع يا اجازه دسترسی به ترمينال تعريف كرد.
قابليتهايی كه توسط اين برنامه ارائه میشود
بسيار بيشتر از موارد مطرح شده در بالا میباشد. اطلاعات بيشتر در مورد اين برنامه و همچنين سورس آن از آدرس
http://www.unixpapa.com/write.html قابل دسترسی میباشد.
يك برنامه ديگر نمیتوان
از برنامههای Chat تحت لينوكس صحبت كرد ولی نامی از برنامه Talk نياورد. با استفاده از اين برنامه نه تنها
كاربران متصل روی يك كارگزار مشترك، بلكه كاربرانی كه روی كارگزارهای متفاوت login هستند میتوانند با يكديگر
ارتباط برقرار كنند. در حالتیكه كاربران روی يك كارگزار وصل هستند، مزيت Talk نسبت به write در واسط كاربر
آن است كه حالت قابلقبولتری نسبت
به آن دارد. اگر user1 بخواهد با user2 صحبت كند و هر دو روی كارگزار متصل باشند، كافی است هريك به ترتيب تايپ كنند:
talk user2 talk user1
اما در
حالتی كه user1 روی host1 و user2 روی host2 متصل باشند، دستورات به شكل زير تغيير میكنند:
talk user2@host2 talk user1@host1
دستور talkرا نيز مشابه write میتوان با استفاده از برنامه mesg غيرفعال يا فعال كرد. اطلاعات بيشتر در مورد اين
برنامه در manual آن در لينوكس بيان شده است. |