جنوم و fstab

الأربعاء-07-2009

طبعا من يستخدم ملف fstab لعمل auto mount لكي يتخلص من الرسالةالمنزعجة التى تطلب منه كل مره إدخال كلمة المرور

طبعا وعلى كسل مني سالت فى قناة جنوم فوجدت الحل

إجعل نقطة التثبيت او mount point فى /media/ وليس /mnt/ فأى شئ فى /media/ سوف تراه داخل جنوم بدون مشاكل :) وتكون صيغة كل سطر فى fstab كالتالى

مسار ملف التقسيم مثل

/dev/sda3

وهذه لدى تحتوى على التقسيم اللذى اريد عمل mount

ثانيا إسم المجلد اللذى سوف يظهر محتويات التقسيم به مثل

/media/BigDataStore

طبعا BigDataStore هو إسم Label اعطيته للتقسيم وجعلته ايضا إسم للمجلد اللذى سوف يكون به محتويات التقسيم

ثالثا نوع نظام الملفات وهو فى حالتى هنا هو ext4 قد يكون لديك ext3 او غير ذلك (جرب الامر sfdisk -l او إستخدم auto للتحديد التلقائى)

وبعد ذلك نحدد الخيارات ولنجعلها defaults او لنضع ما نشاء من الخيارات فيكون الناتج النهائى  كالتالى

/dev/sda3    /media/BigDataStore    ext4     defaults    0  0

إنتهى الدرس :)

شبكات – 2

الثلاثاء-06-2009

بسم الله الرحمن الرحيم
الان ننتقل الى الجزء الثاني وهو الجدار النارى
تخيل انك خرجت من بيتك يوما ما وتركت جميع نوافذ منزلك مفتوحه وباب بيتك الامامي والخلفى أيضا , ولم تغلقها بعد ذلك
أؤكد لك أنك اما سيتم سرقتك أو ربما على الاقل يدخل احد المدمرين الى بيتك ويقوم باتلاف بعض محتويات بيتك وربما أجد أيضا بعض الخنفشاريين ويقول ليس لدى مايسرق أو مايتم تخريبة , ولكن قد يدخل شخص الى بيتك ويسرق سكينك أو حتى مسدسك ويقتل به شخص أخر وسوف تكون أنت المتهم أما الناس وايضا تكون متحملا جزء من الجريمة أمام الله لأنك شاركت فيها بشكل أو بأخر , ربما تقول أنك لست من المعروفين بالثراء ليتم سرقتك لكن أؤكد لك أن هناك انواع من اللصوص والمجرمين يختارون اهدافهم عشوائيا بمجرد ان يرى بيت يحاول الدخول حتى بدون معرفة من هو صاحبه
نفس القصة فى الحواسيب , الجدران النارية تكون موجوده لحماية حاسوبك من السرقة أو التخريب وايضا لمنعهم من تنفيذ هجمات على حواسيب أخرى من داخل حاسوبك وهذة الهجمات قد تكون عشوائية فبمجرد دخولك على الانترنت يكون لك رقم – راجع المقال السابق – والمخرب ببساطه لديه سكريبت او برنامج يقوم بالمرور على نطاق معين من العناوين بدون حتى أن يعرف من أنت.

والان ماهو المخرج (port) ؟
لنفرض مثلا ان لدى حاسوب فى شبكة لدى يحمل العنوان 192.168.1.3 واريد أن اقدم عليه خدمه معينه مثلا أن يكون خادوم ويب فيكون الامر سهلا أقوم بثبيت البرنامج ومن يريد الخدمه ليس عليه سوى أن يطلب – Request – عنوان الخادوم وسوف يكون الخادوم مجهز على أن يرد على تلك الطلبات
لكن ماذا لو أردت ان اقدم أكثر من خدمة مثل FTP Server أو خادوم ملفات مع ftp بالاضافة الى خادوم الويب كيف يميز الحاسوب – ولاحظ أنه الة – بين طلبات ؟
الحل هو أن يكون هناك مايشبة الثقب او أنبوبة خاصة بكل خدمة ولكل انبوب رقم وأقوم انا مدير النظام بتخصيص أنبوب معين لخدمة معينة
هناك أشياء قياسية وقد تحتاج الى تغييرها مثلا المعروف أن خدمة الويب تقدم على port 80 و FTP على 21 و SSH على 22 ولكنى لأسباب معينى أوفر خادوم ويب على port 80 وخادم اخر على نفس الحاسوب على بورت 22 , صحيح ان ذلك يخالف الشائع والمتعارف عليه لكن لايهم مادام من أريد تقديم الخدمه له يعلم ذلك
فأنا أقوم بضبط برنامج معين -فى حالة خادوم الويب هناك اباتشى الشهير apache – على ان يستمع الى الانبوب أو البورت رقم 80 ويقوم بالرد على أى طلبات تاتى اليه وأقوم بتشغيل سيرفر ويب اخر ولنقل مثلا nginx على ان يعمل ولكن على بورت 22 لهدف معين فى رأسى واى برنامج يتبع هذا السلوك يسمى daemon -لا اعرف كيف أترجمها :D – وايضا البرنامج اللذى تستخدمه للوصول الى تلك الخدمة واللذى يكون موجود على جهازك يسمى client مثل firefox او ssh او filezilla
-طبعا هناك من يسأل ماذا لو كان كان مثلا daemon مثلا nginx تم ضبطه لكي يعمل على بورت 22 و قمت بتشغيل خادم ssh اللذى يستخدم بورت 22 ايضا ؟
الاجابة ان اللذى بدأ اولا سوف يستمر بالعمل والثاني لن يبدأ اصلا لأنك سوف يجد أن البورت قد تم حجزه من قبل برنامج أخر بالفعل
-ماذا لو حاولت أن اطلب مثلا صفحة ويب من بورت يقدم خدمة ssh , الاجابة لن يعمل لأن daemon لن يفهم معنى الطلب وسوف يرد بالرفض

الامر أشبه بمؤسسة كبيرة جدا جدا جدا بها أكثر من نافذة كل نافذة خلفها موظف وكل موظف مختص بنوع معين من الطلبات مثلا شخص متخصص بإعطاء الزوار بعض الطعام والاخر مختص بأواراق السيارات واخر مختص بأوراق العمل
لابد أن تعرف رقم النافذة وإلا لن تجد الموظف المطلوب , طبعا يمكن لسبب أو لاخر ان يقوم الموظف بتغيير مكان النافذة التى يعمل من خلالها
تخيل لو أنك طلبت من موظف أعتماد اوراق السيارات ان يعطيك مثلا أن يعطيك شطيرة بيتزا :D , طبعا لن يرد عليك أو يخبرك انك فى المكان الخطأ

يمكنك مشاهدة البرامج التى حاليا تتسمع الى مخارج على حاسوبك عن طريق الامر netstat
[root@srv ~]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      2427/mysqld
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      2289/portmap
tcp        0      0 10.0.0.1:53                 0.0.0.0:*                   LISTEN      2962/named
tcp        0      0 192.168.1.3:53              0.0.0.0:*                   LISTEN      2962/named
tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN      2962/named
tcp        0      0 0.0.0.0:3128                0.0.0.0:*                   LISTEN      2554/(squid)
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      2493/sendmail: acce
tcp        0      0 0.0.0.0:604                 0.0.0.0:*                   LISTEN      2118/rpc.statd
tcp        0      0 0.0.0.0:43582               0.0.0.0:*                   LISTEN      -
tcp        0      0 :::80                       :::*                        LISTEN      2519/httpd
tcp        0      0 :::22                       :::*                        LISTEN      2316/sshd

يمكنك منها ملاحظ أنى لدى على ذلك الحاسوب سيرفر اباتشى – يسمى httpd مع فيدورا – و سيرفر sshd وايضا DNS سيرفر – يسمى named -

واخيرا يمكنك طلب البورت عن طريق العنوان – عنوان الانترنت IP Address -  متوبعا بنقطتين ثم برقم البورت مثل
192.168.1.3:22
طبعا هناك برامج ذكية والتى لا تطلب منك رقم البورت مثلا
الفايرفوكس , عندما تقوم بطلب عنوان يفترض تلقائيا ان daemon يستمع على بورت 80 هذا إن لم تحدد رقم البورت

الان أنتهينا والجزء الثالث هو الجدار النارى ipfilter

صحتك ثروتك

الثلاثاء-06-2009

السلام عليكم

لم اكن انوى ان اكتب شيئا الليلة لكني اثناء حديثي مع مازن سألنى إذا كنت قد رأيت دونتة مؤخرا , سؤال محرج :D لم افتح google reader منذ فتره وبالتالى لم اعرف عنها شيئا

المهم انى فتحتها ووجدته اشترى كرسى !

ووجدت الموضوع يتكلم على استحياء عن صحة المبرمج

أحياننا أجلس امام حاسوبي بما يقارب من الخمس عشرة ساعة يوميا !

تلك ليست المشكله المشكله انى عندما اقوم اجد انى لم انجز ما جلست لانجزه حيث انى فتحت قارئ اخبار جوجل ووجدت خبر أخذني بدوره الى خبر اخرى واللذى سحبني أيضا الى خبر اخر والى مقال اخر !

على الرغم من الوقت الكبير اللذى اقضية امام الحاسوب اعتقد انى لا أنجز بقدر الوقت اللذى اقضية أمامه

فى مره كنت اقوم بتثبيت دروبال على سيرفر محلى افتراضي على حاسوبي والمشكله انه يخبرني بحدوث خطأ فى صيغة استفسار قاعدة بيانات !

صراحة صعقت كما لو كانت قرصني ثعبان , طبعا كنت على ثقة أن هذا خطا فى السيرفر لان هذة كانت الاصدارة رقم 12 على ما أتذكر فى الفئة السادسة من دروبال !

دخلت الى قناة دروبال على IRC لكى استعلم فأخبرني أحدهم بأن هذا يكون خطأ فى عمل الجلسة Session initiation , بالتالى وجدت نفسى فاغر الفاه مره أخرى على التوازى :D

المهم بعدها بخمس ساعات من البحث المتحيص والتفحيص والمحاولة لم أصل الى نتيجة وطرحت المشكله مره أخرى على قناة دروبال

رد على مبرمج مخضرم ومعرف لديهم وعندما أخبرته أن هذا سيرفر افتراضى لدى أنا انهال الرجل على قائلا “قم بإصلاح قمامتك بعيدا عنا”

طبعا كان لديه حق , كان لابد من أن أخبره بالحالة كلها ولكنى طبعا دخلت معه فى نقاش حاد نوعا ما ,المهم ان الرجل تقريبا تفهم حالة العصبية اللتى كنت فيها بسبب  وأخبرني بنصيحة قائلا

إذا جربت شيئا ما مره , إثنين , ثلاثة ولم يعمل اتركه !

طبعا اذا تأملت استهلاك الوقت لدى أجده يضيع فى مثل تلك الاشياء !

ناهيك عن التواجد فى قناة لينكس العربي اللذى يأكل الكثير من الوقت

طبع ما علاقة هذا بمقالة مازن !

طبعا انا اجلس على كرسى وامامي شاشة حاسوب

الكرسى يؤثر على ظهرى سلبا ولابد ان يكون الكرسى مناسب ويساعدك على الحلوس الصحيح .

شخصيا ظهرى بدا يؤلمنى مؤخرا من الجلوس على ذلك الكرسى !

اترككم مع مقال مازن

اعلام العوام

الجمعة-06-2009

السلام عليكم

السلام إسم من أسماء الله وانا متأكد انه تقريبا ذكر فى اغلب الديانات السماوية

لا أعرف الى اى مدى من الانحطاط سوف يصل مايسمى بالاعلام

منذ  فتره وجدت على قناه محلية مشهورة لقاء بين عضو مجلس شعب وواحده من المسيحين تتدعى أنها تناقش جهل الاسلام وتخلفة لأن الشريعه مصدر الثانون وتتكلم بكلام يوحي بأنها قد وصلت الى قمة الجهل وبدلا من أن تتجه الى علماء الدين او أحد ا  لتستفسر  تلجا الى الطعن فى الظهر

لست اهاجم اى شخص من اى ديانة فانا لا اهتم لديانتك فتلك مساله بينك وبين ربك وليس لى ان افرض على شخص ديانه معين فلا إكره فى الدين

ليس لغير المسلمين عندى سوى ان اعرض عليهم الدين فى كياني وليس مجرد كلام (تقضية واجب)

ومن سمح بهذا البرنامج إما أنه يريد ان يسبب فرقعه لكى يزيد من شهرة البرنامج أو أنه يتحسس القتنة الطائفية.

ثم أخيرا وليس اخرا ياتى السيد عمرو أديب

لا افهم هذا الرجل حقا ولكني اعرف انه أخطئ بكل المقاييس

فى حلقته السخيفة التى نكلم فيها عن المنتخب الوطني وحينما سبه حسن شحاته قال بالنص “أهم اللى بيصلوا”

لست افهم : إعلامي يأخذ خبر من صحيفة اجنبية بدون ان يتحقق منه اوحتى تنتهى التحقيقات ويقوم بعمل ضجة اعلامية كبيرة حول هذا الامر

وياتي بعد ذلك ويقول “هايقولوا ان عمرو اديب هو المشكله”

نعم لقد كنت انت المشكله لأنك ببساطه روجت للأمر , بمجرد معرفت الخبر مساءا انتهزت الفرصة للتشهير بهم !

على الرغم من انه اعتذر بعد ذلك ولكني لن أكون مرتاحا لما يقوله بعد الان

وايضا خبرا قراته فى احد الجرائد المعروفة منذ فتره يعلق على ماجاء فى كتاب التربية الدينية الثانوية “بأن المسلمين استخدموا الدبابات”

ويقول أن شيخ الازهر (وهو رجل قد قرأ وحفقظ من الكتب أكثر مما تكتبة الصحيفة يوميا ) ومن ساهم معه فى الكتاب أخطاوا وليس ذلك فقط بل كتبه بأسلوب فقظ

وهذا لايشير سوى الى ان كاتب ذلك المقال شخص جاهل ولايفقه شئ فى التاريخ ولا حتى يفقه شئ فى الصحافة والاعلام

اولا الدبابات موجوده من ماقبل بعثة الرسول (صلى الله علية وسلم) ولكن ليس بالمفهوم الحديث بل كانت عبارة عن بناء خشبي كبير يستخدم لاقتحام الحصون

دبّابة دبّاب دبّ , يمكن ان تكشف فى القاموس فى مادة ( د ب ب )

ومن شكل الهيكل القديم تم أخذ شكل الهيكل الحالى

هذا الشخص لو كان إعلاميا (كما يدعون ليل نهار ) لسأل صحة ما يكتب قبل أن يكتب بأن يتجه الى مشيخة الازهر او دار الافتاء المصرية حتى

لكن يبدو أنه أكل كثيرا على الغذاء ففضل النوم قبل إرسال الخبر الى المطبعة على التحقق من الخبر

للاسف الاعلام فى الكثير من الاماكن أصبح يميل الى الاستستهال

واغلب الاخبار لايتم فيها تحرى الدقة وأصبحت كلمة الحرية ستارا يختبئ خلفة المخطئون ولايعرفون بان الحرية لها انياب وانها إن زادت عن حدودها أصبحت خروجا عن الادب

كما يقول صديق لى , “مابقتش تفرق سينا من سونيا”

شبكات -1

الجمعة-06-2009

أولا كل حاسوب على أى شبكة يحمل رقم يسمى IP  وهو رقم مكون من أربع اجزاء يفصل بين كل جزء والاخر نفطه وكل جزء عبارة عن رقم يمتد من 0 الى 255 مثل     10.0.0.1    او  192.168.1.2 – هذا النظام يسمى IP4 وهناك نظام أحدث يسمى IPV6 ولكنه لم يعمم على مسوى العالم كليا ولا اعتقد انك سوف تجده – وأيضا قد يسمى بعنوان الانترنت internet address وهو لايتكرر مرتين أبدا
ثانيا:هناك فرق بين الايبى الحقيقى والايبى الداخلى (اتمنى أن اعبر جيدا عن هذا )
لو استخدمنا الامر ifconfig حاليا على حاسوبي الشخصى لمعرفة الايبى الخاص بجهازى فسوف نحصل على
[ahmed@wizard-box:~]$ ifconfig
br0       Link encap:Ethernet  HWaddr 1A:31:A8:03:AD:33
inet addr:10.0.0.254  Bcast:10.0.0.255  Mask:255.255.255.0
inet6 addr: fe80::1831:a8ff:fe03:ad33/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:18907 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b)  TX bytes:1354550 (1.2 MiB)

eth1      Link encap:Ethernet  HWaddr 00:24:1D:2C:AD:C3
inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
inet6 addr: fe80::224:1dff:fe2c:adc3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:8205 errors:0 dropped:0 overruns:0 frame:0
TX packets:11041 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2041353 (1.9 MiB)  TX bytes:1139173 (1.0 MiB)
Interrupt:18 Base address:0×8000

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:348 errors:0 dropped:0 overruns:0 frame:0
TX packets:348 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:22350 (21.8 KiB)  TX bytes:22350 (21.8 KiB)
سوف تلاحظ ثلاث واجهات شبكة أو network interface  (مايسمى بكارت الشبكة )
-الاول br0 هى نوع خاص يسمى bridge وهو خاص بالشبكة الداخلية للحواسيب الافتراضية التى أقوم بإنشائها , ويحمل الايبى 10.0.0.254
-الثانى eth1 وهو كارت حقيقى من نوع Ethernet وهو ماسوف تجده لديك غالبا , برقم 192.168.1.2 (وهو اللذى سوف نركز عليه)
-الثالث lo او loopback وهو ليس بكارت حقيقى ولكنه فقط للاتصالات التى توجهاا لجهازك نفسه
مثلا ان تحاول ان تتصل بجهازك عن طريق ssh 127.0.0.1
ويحمل الرقم 127.0.0.1 وهذا الرقم دائما ثابت لا يتغير وهو خاص بالاجهزه الشخصية , أى انك لن تجد جهاز على الشبكة يحمل الايبى 127.0.0.1 يمكنك الدخول عليه لأن هذا العنوان مخصص لكى تتصل بنفسك فقط ولاشى أخر

يمكنك أن تجد ان واجهات الشبكة لديك تحمل أسماء أخرى مثلا قد لاتجد br0 لانى انا من قام بعملها
او ربما تجد ان eth1 لها اسم اخر مثل eth0 – جميع كروت الايثرنت فى لينكس تبدا بكلمة eth متبوعا برقم معين -
او قد تجد أشياء إضافية أخرى ليست هنا ,

ثالثا: عنوان واجهة الشبكة هو أيضا عنوان لحاسوبك لكنه يستخدم مع الشبكة الداخلية , بمعنى أنه يستخدم فقط حتى تنتقل البيانات من جهازك الى الجهاز اللذى بعده ويسمى ايضا بعنوان الهارد وير و Hardware Address او MAC Address أو BurnIn Address  وهو يتكون من ستة أجزاء يفصل بين كل منها نقطتان (colon) وكل جزء من الستة يتكون من حرفين أو رقمين وكل شركة لها مجموعة من الارقام تقوم باعطائها للكروت التى تصنعها بحيث انك لاتجد واجهتان لهما نفس الرقم

رابعا : القناع أو Mask :
كيف تعرف أن شخص ما مثلا يدعى جوزيف إذا كان صديقك أو لا ؟ , بالتأكيد أنت تعرف أصدقاء جيدا وتعرف كيف تمبزهم وبمجرد أن اخبرك بالاسم ترد أنت على قائلا إن كان صديقك ام أنك لا تعرفه
إذن فأنت تحدد ذلك بناءا على معرفتك المسبقة بهؤلاء الاشخاص
وكذلك الحاسوب به شبكات كل شبكة منفصلة عن الاخرى قد تكون مرتبطه ببعضها البعض عن طريق حاسوب معين , مثلا لدى شبكة بها أكثر من حاسوب وأريد ان اقوم بربطها بشبكة أخرى ,
بالتأكيد لابد من حاسوب يعمل كنفق او كبوابة بين كلتا الشبكتين ونسمية Gateway او الحاسوب البوابه , فى بعض الاحيان تلك البوابه قد يكون بها مزايا أخرى وتوفر خدمات أخرى غير عملها كبوابة وهذة الخدمات ربما تحصرها البوابه لشبكتها فقط وليس لأى شبكة أخرى (لاحظ ان البوابة تتصل بشبكة أخرى)
إذن كيف نحدد ذلك ؟ كيف تعرف الحواسيب بعضها إذا كانت من نفس شبكتها ام من شبكة اخرى ؟ , هذا الامر برمته يسمى بال subnetting او بالعربية تحديد الشبكات الفرعية -لا اعرف إن كان هذا هو الاسم العربي الصحيح أم لا نحتاج الى الاستاذ خالد حسنى فى تلك الامور :D -
ولهذا نستخدم القناع
وسوف نقوم بسرد مثال لتوضيح الفكره أولا
لنفرض أن لديك صورة لك أنت وأصدقائك وأنت تريد أن ترى وجه صديق بعينه بصوره دائمة – لا اريد من يقول لى أقطع الصوره وأترك صوره صديقى – فالحل اللذى أقترحه بدون اتلاف الصورة هو أن اقوم بقص ورقة معتمة أخرى بحيث تكون بنفس حجم الصورة الاصلية وأقوم بتفريغ الجزء الصغير الذى يناسب وجه الصديق فى الصورة ليظهر هو وحده فقط
الان لنفرض أن لديك شبكة من المفروض ان يحصل كل حاسوب على عنوان من 192.168.1.1 الى 192.168.1.254 (لاحظ ان العنوان لاينتهى بصفر او 255 فليس هناك حاسوب يحمل العنوان 192.168.1.0 او 192.168.1.255 أو 4.2.2.255 او 192.168.1.0 وهكذا )
كما نلاحظ الان أن ثلاثة أجزاء الارقام بها ثابتة -العنواين سوف يتكون 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 ……………. 10.0.0.254 – واللذى يتغير هو الجزء الاخير فقط , إذن نحن نريد الجزء الاخير إذن نحتاج الى ورقة معتمة وسوف تكون هى الرقم 255.255.255.255 بمعنى أن 255 تعنى جزء لانريد والجزء اللذى نريده نضع بدلا منه 0 (صفر فى القناع) ليكون فى حالتنا هذه هو 255.255.255.0
وبهذا يمكن أن يكون هناك فى الشبكة التى تريدها 254 حاسوب وإذا أردت أكثر , يمكنك توسيع القناه أكثر ليصبح 255.255.0.0 (وهو مايستخدمه مزود خدمة الانترنت فى بلدك فغالبا الجزء الاول من العنوان يشير الى الدولة والثاني الى المزود والثالث والرابع يستغله المزود لاعطاء عناوين لعملائه وأحياننا تكون الدولة هى الاول والثاني والمزود هو الثالث وأنت تكون موجود فى الجزء الرابع )

هناك طريقة أخرى وتستخدم بكثرة وهى تستخدم prefix فى اخر العنوان مثلا المثال التالى
192.168.1.0/24
الرقم 24 هو ال prefix اللذى نتكلم عنه وببساطه كلما زاد هذا الرقم يعنى أن مدى الارقام المتاحة يصبح أقل ويمكنك المقارنة بالطريقة السابقة كالاتى
Network 192.168.1.0 , Mask 255.255.255.0 ===   192.168.1.0/24
Network 192.168.1.0 , Mask 255.255.0.0   ===   192.168.1.0/16
لاحظ أنه عندما أصبح رقم prefix أقل زاد العدد المسموح عن طريق MASK حيث يتم استخدام الجزئين الاخيرين بدلا من جزء واحد
ويمكنك أستخدام الاداة ipcalc لحساب prefix من الطريقة السابقة والعكس
كالتالى
[ahmed@wizard-box:~]$ ipcalc -p 192.168.1.0 255.255.255.0 #للحصول على طريقة البادئة من طريقة القناع
PREFIX=24

[ahmed@wizard-box:~]$ ipcalc -m -n -b 192.168.1.0/16    #للحصول على القناع والشبكة من طريقة البادئة
NETMASK=255.255.0.0
BROADCAST=192.168.255.255
NETWORK=192.168.0.0

أعتقد أن تلك مقدمة جيدة وهذا هو الجزء الاول منها
فى الجزء الثاني سوف نتعرض الى معنى porting او port

السلام عليكم ورحمة الله وبركاته
هذا هو سكريبت صغير جدا لتغيير خلفية جنوم بشكل متسلسل خلال فترات زمنية معينه
أولا الاداه التي سوف نستخدمها هى gconftool-2 وهى اداة للتجكم فى Configuration Editor او محرر الاعدادات -وهو لمن لا يعرف يشبة كثيرا الريجيسترى فى الويندوز ويمكنك من خلاله تغيير بعض خيارات برامج جنوم ومنها سطح المكتب , ربما من الافضل أن تحاول ان تفتحه وتحاول تجربة بعض الامور به -  حيث تمكنك تلك الاداه من تغيير بعض القيم فى configuration editor جرب المثال التالى

$  gconftool-2 -g  gconftool-2 -g /desktop/gnome/background/picture_filename

وهو الأمر اللذى يحضر لك قيمة picture_filename فى المسار المعرف , يمكنك تتبعه من البرنامج
وهو عباره عن قيمة نصية تحتوى على مسار الخلفية الان الى السكريبت

سوف نعرف اولا متغيران
أولا متغير يحمل مسار الصور التى سوف تكون خلفية
WALLPAPERS_DIR=’/usr/share/backgrounds/images/themes-backgrounds-gnome/’;
والمسار اللذى موجود بالاعلى من المفروض ان يحتوى على صور تكون موجوده مع جنوم افتراضيا
ويمكنك تغييره الى مسار اى مجلد اخر

ثانيا الوقت بين كل تغيير وأخر
TBA=10
وهى احتصار لـ Time Between Alternating وتعنى بالعربية الوقت بين عمليات المبادلة
وهو هنا 10 ثوان فقط , يمكنك تغييرها الى اى قيمة أخرى (الوقت بالثانية )

الان سوف نعرف دالة تقوم بتغيير الخلفية بحيث تعطيها إسم الصورة وتقوم هى بتغييره

set_gnome_bg(){
if [[ -n $1 ]] ;then
gconftool-2 –set /desktop/gnome/background/picture_filename –type=string $1
else
echo set_gnome_bg::No background wallpaper given to set !!;
fi;
}

الادالة إسمها هو set_gnome_bg وهى تختبر أول قيمة يتم إعطائها للدالة عن طريقة if وهى تختبر إذا ماكانت طولها لايساوى الصفر
فى حالة كانت تساوى الصفر سوف نستخدم الأداة السالف ذكرها بوضع قيمة نوعها sting – هى نفسها المتغير الذى يتم اعطائه للدالة – فى المسار الموضح

وأى شئ غير هذا يعرض رسالة خطأ

الان ننتقل الى الدالة الثانية التى تقوم بإحضار ملفات الخلفيات

collect_bgs(){
if [[ -n $1 && -d $1 ]] ;then

#get all files
for file in `find $1 -type f -print`; do
set_gnome_bg $file;
sleep $TBA;
done;
else
echo collect_bgs::No argument or not a directory !!;
fi;
}
الدالة تقبل متغير واحد وهو يحتوى على مسار المجلد اللذى يحتوى ملفات الخلفيات
نستخدم if بعد ذلك لاختبار النتغير انه ليس مساوى للصفر( -n ) وأنه مجلد ( -d )
وفى حالة تحقق الشرط تبدا دورة for فى العمل بأخذ ناتج الامر find $1 -type f -print وهو ببساطه امر يبحث عن ملفات وليس مجلدات ويقوم بطباعتها سطر تلو الاخر
أما دورة for نفسها تقوم بأخذ الملف وإعطائه للدالة set_gnome_bg السابق شرحها لكى يتم تغيير الخلفية
وبعد ذلك يتوقف البرنامج عن طريق الامر sleep الفتره السابق تحديدها

والان الى استدعاء الدوال

while [[ 1 ]]; do
collect_bgs $WALLPAPERS_DIR;
done;

السطر الاول هو دوره while تدور فى ملانهاية لكى يتم تغيير الخلفيات دائما
السطر الثاني يقوم باستدعاء الدالة collect_bgs واعطائها المتغير $WALLPAPERS_DIR اللذى يحتوى على المجلد اللذى يحتوى على إسم المجلد
يمكنك أستدعاء السكريبت فى بداية كل جلسة – session – عن طريق برنامج gnome-session-properties

الهدف من السكريب : معرفة وظيفة وصيغة كل من for , if , while وهى أشياء اساسية فى bash
ولاحظ ان سكريبتات الشل هى تفسيرية أى أنك لابد أن تقوم بتعريف الداول والمتغيرات قبل إستدعائها

انتهى الشرح , أرحب بأى تعديل على السكريبت او أى اقتراحات

http://www.linuxac.org/forum/attachments/forum64/8114d1245612652-alterbg.sh.gz

قصص سريعة -1

الأحد-06-2009

بعد إنتصار سيف الدين قطز فى هزيمة الماغول بمساندة صديقة الظاهر بيبرس , أوعز الحاقدون والحاسدون الى بيبرس الى أن قطز يريد قتله وللاسف صدقهم و نسى أن من يتكلمون عليه هو صاحبه ورفيقه فى القتال
كان قطز ينوى التنازل عن عرش مصر الى صديقة بيبرس لأن هدفه كان أولا وأخيرا هو هزيمة التتار الذين قتلو اهله جميعا
وفى أثناء العوده أراد قطز أن يلمح الى بيبرس بهذا وقال له أن مكانه فى قلعة الجبل (وهى القلعة المشهورة فى القاهرة وكانت هى رمز الحكم فى مصر أثناء حكم المماليك) ولكن بيبرس بدلا من أن يستوضع الأمر ظن أنه سوف يقتل هناك (كان مدرب وأستاذ بيبرس قتل فى القلعة ذاتها ) وحكم على مافى نفس صديقة بالظن بل وأراد أن يباغته فقتله فى اثناء الطريق على حين غفلة من الحرس وكانت أخر كلمات قطز أن يتولى صديقه بيبرس حكم مصر على الرغم من أنه كان قاتله وندم بيبرس بعد ذلك ندما شديدا وحاول النسيان بطرق شتى عن طريق استكمال المعارك ضد التتار ومحاولة إصلاح ما أفسده التتار لكنه أبدا لم ينسى
ما أريد قوله هو أنك مهما كنت ليس لك الحق أن تحكم على مافى ضمائر الناس مثلا بأن تقول معلقا على كلام احد الاشخاص انها يقصد به كذا أو كذا فالوحيد اللذى يعرف مراد الكلام ومبتغاه هو قائله وليس اى شخص أخر وإذا ضاقت عليك الامور وكان من التعليق بدا فإياك أن تتكلم إلا بخير

rpm package mnger

الجمعة-04-2009

قمت بكتابة موضوع كبير نوعا ما عن rpm و yum وايضا حلول لبعض المشاكل فى بوابة الحرية

والرابط هنا

من الماضى : لمن لايعرف هناك نوع من انواع الجدران النارية فى لينكس تكون موجوده داخل الكرنل وتتحكم فى التدفق من والى النظام عن طريق الكرنل نفسه ويمكن ظبطها عن طريق بعض الادوات

والمستخدم منها حاليا هو iptables وهو عتيق نوعا ما

هناك الجديد : nftables : يقال ان العمل عليه دام شهورا وانه مختلف تماما عن جده :)

لم اجربه حتى الان , فالوقت لا يسمح باى شئ هذة الايام

فقط يمكننى ان اقدمه لكم شخصيا

http://lwn.net/Articles/324251/

تحديث ام اضافة الطريقة على اوبنتو واضافة طريقة اخرى لجعل البرنامج يتكلم بتلك اللغة مباشرة من اقتراح الاخ مؤيد

منذ فتره كانت واجهت احد الاصدقاء مشكله مع xchat ( برنامج يستخدم فى قنوات irc ) , فهو يعمل على اعجوبة والتصحيح للانجليزية لايعمل لدية

فكانت هناك فكره عرضتها عليه وجربها  وهى تغيير قيمة المتغير LANG لتحتوى على en_US.UTF-8

فالفكره ان هذا المتغير ببساطه يحمل مايسمى local

ويمكنك معرفة ماهى locales الاساسية التى تستخدمها بالامر التالى

$ locale -a

وعندى على فيدورا 10  en_US.UTF-8

الذى يتحكم فى كل هذة هو المتغير LANG

فى فيدورا سوف تجد كل اللغات موجوده ولن تحتاج سوى لتغيير المتغير  LANG , كما سوف نرى بعد قليل ولكن مع دبيان ( لا اجد هذا فى اوبنتو لا تسألونى لماذا ؟!! )

وفى اوبنتو المتغير هو LANGUAGE ولا يستخدكمون المحليات مثل ar_EG او الترميز , فقط ar او en

——————-

كيفية توليد locale فى دبيان (دبيان فقط )

افتح الملف

/etc/locale.gen

سووف تجد كل اللغات تقريبا, فقط احذف الهاش # من امام اى locale تريده مثل ( ar_EG.UTF-8 ) وبعد ذلك نفذ الامر

# locale-gen

سوف تجده بعد ذلك يولد اللغات التى طلبتها

—————————–

الان الى الاستخدام اذا كنت تستخدم واجهه انجليزية كامله مثلى ولكنك مثلا تريد ان تفتح totem بالعربية افتح الترمنال واكتب الامر التالى

$ LANG=ar_EG.UTF-8 totem

لاحظ انى هنا كتبت ar_EG وهذا يعنى العربية المصرية , يمكنك ان تستخدم مثلا ar_SA للسعودية ولاحظ ان فى نهايتها UTF-8 , حتى نستخدم التكويد العالمى

طبعا سوف تجد totem بالعربية فى وسط الواجهه الانجليزية والعكس بالعكس

على اوبنتو يمكنك تجربة الامر

$ LANGUAGE=ar totem

فإذا كنت تستخدم العربية (اعجوبة مثلا ) وتريد تعديل aspell ( المسئول عن تصيحيح الكلمات الخاطئة ) او تعديل الواجهه ككل مثلا اذا كنت تستخدم اعجوبة اكتب

$ LANG=en_US.UTF-8 totem

ولكى تجعل البرنامج مثلا  هناك طريقتان

الطريقة الاولى :

,لكى تجعل البرنامج مثلا يعمل هكذا مبارشرة , بحيث اى مره تفتح به البرنامج تجده باللغة العربية, سوف نقوم بتغيير اسم البرنامج الاصلى اى مثلا totem-orig وبعد ذلك نقوم بعمل سكريبت باش يقوم بتشغيل البرنامج ويضبط locale فى نفس الوقت ولن يشعر اى احد :)

افتح الترمنال واكتب الاتى

# which totem

/usr/bin/totem

# mv /usr/bin/totem /usr/bin/totem-orig

# echo ‘

#!/bin/bash

export LANG=ar_EG.UTF-8

/usr/bin/totem-orig $@

‘ >/usr/bin/totem

الامر الاول يحضر لنا مسار totem لكى نقوم بالعمل عليه والسطر الثانى يعطى النتيجة التى استخدمناها فى باقى السكريبت

السطر الثالث قام بتغيير اسم totem الى totem-orig وهو نفسه totem ولكن بعد تغيير الاسم , لا تقلق

السطر الثالث نستخدم الامر cat للكتابة الى ملف /usr/bin/totem واللذى سوف يحل محل totem ومحتواه هو

السطر الاول يقوم بتحديد ان هذا ملف bash

الثاني يقوم بتغيير المتغير LANG والسطر الثالث يقوم بتشغيل totem واضافة اى شئ مضاف اليه $@

طبعا يمكنك تنفيذ هذا على اى برنامج اخر ايا كان gedit , pidgin , ……….

وايضايمكنك تغيير ar_EG.UTF-8 الى اى شئ اخر مثل en_US.UTF-8 كما قلنا لو كنت مثلا تستخدم اعجوبة او مثلا الى fr_FR.utf8 لكى تستخدم الفرنسية

ولاينسى مستخدمى اوبنتو باستبدال LANGUAGE بدلا من LANG وازالة المحليات لتصبح ar او en فقط

الطريقة الثانية:

كما اشار الاخر مؤيد: نفذ الامر التالى

# echo ‘

#!/bin/bash

export LANG=ar_EG.UTF-8

/usr/bin/totem $@

‘>/usr/local/bin/totem

هنا منا بعمل ملف تنفيذى ( او بالاصح ملف shell ) بقوم بنفس الخطوات السابقة ولكن بدون تغيير اسم البرنامج الاساسى ووضعنا الملف فى /usr/local/bin وهذا هو الرائع فى الامر فلاخظ معى ان

البرامج التنفيذية فى المسار /usr/local/vib/ لها اولوية عن التى موجوده فى /usr/bin/  وهى بدورها لها اولوية عن التى موجوده فى /bin/ بمعنى انك عندما تريد تشغيل برنامج مثل totem فإن البحث يكون بالترتيب الاتى

/usr/local/bin/totem

فإن لم يجد البرنامج فى المسار فيبحث عن التالى وهكذا وان لم يعثر عليه فى النهاية يخبرك ان الامر ليس موجود

لمستخدمى فيدورا طبق مباشرة , اما دبيان فيجب ان يقوموا بتوليدها اولا , اما مستخدمي اوبنتو فلاتصلح لديهم ولا اعرف لماذا ؟!

انتهى الشرح