علاء نت200
08-11-2002, 20:03
أوامر نظام لينكس
أوامر المعالجة
مثال وظيفته الأمر
# touch file1
أنشأ ملف جديد إنشاء ملف touch
أستعمل هذا الأمر بحذر إذا كنت تعمل كمستخدم جذري # rm file1.txt
يحذف الملف المحدد حذف ملف rm
# mkdir linux4arab
linux4arab إنشاء دليل جديد بإسم إنشاء دليل جديد mkdir
# rmdir win
win حذف الدليل حذف دليل
rmdir
#mv file1 file2
غير إسم الملف الأول الى الثاني تغيير إسم ملف
mv
# cp file1.txt file2.txt
file2.txt ينشئ ملفا بإسم
file1.txt وينسخ فيه الملف نسخ الملفات
cp
# ln file1.txt file2.txt
file2.txt ينشئ ملف إسمه
file1.txt ويضع فيه نفس محتويات
بحيث إذا غيرت أي ملف يتم تحديث الملف الآخر تلقائيا إنشاء إرتباط بين ملفين ln
# tar -c firstdir > seconddir.tar
يقوم بعمل ملف مضغوط لكل محتويات الدليل بحيث لا يؤثر على محتويات الدليل الأصلية ضغط ملفات tar
4-13 الدخول لجهاز كمبيوترك المنزلي عن بعد معرفة عنوان الآي بي IP address الخاص بكمبيوترك المنزلي
الهدف :
معرفة عنوان الآي بي IP address الخاص بجهاز الكمبيوتر المنزلي والدخول على جهازك الشخصي عن بعد .
مقدمة :
عندما تقوم بالاتصال بالإنترنت من منزلك إلى مزود خدمات الإنترنت الخاص بك ISP عن طريق اتصال شبكي هاتفي dialup بواسطة المودم ، فإنك تحصل على عنوان آي بي IP address مختلف كل مرة تقوم بالاتصال ، هذا يعني إنك لا تملك عنوان آي بي IP address ثابت تستطيع الوصول منه لجهازك المنزلي من أي مكان حول العالم .
وقد تتساءل عن فائدة الوصول إلى جهازك المنزل من أي مكان ؟ لاشك أن أغلب استخدامنا لأجهزة الكمبيوتر يكون في المنزل فبالتالي من الطبيعي جدا أن تكون أغلب ملفاتك الخاصة متوفرة في جهازك المنزلي وليس أي جهاز آخر (العمل مثلا) ، من خلال درسنا هذا يمكنك الوصول إلى كمبيوترك المنزلي من أي مكان يتواجد فيه جهاز كمبيوتر متصل بالإنترنت ( مقهى إنترنت أو جهازك في العمل ..الخ) بالتالي يمكنك الوصول مباشرة إلى مفكرة مواعيدك الشخصية أو دفتر تلفوناتك الشخصية أو تنزيل أي ملف تحتاجه من كمبيوترك المنزلي بدون الحاجة للعودة للمنزل أو طلب ذلك من أي شخص في المنزل .
لابد أنك لاحظت أن هذا يتطلب أيضا أن يكون جهازك المنزلي في وضعية التشغيل ومتصلا بالإنترنت !! ، في الولايات المتحدة وبعض الدول الأوربية يكون الاتصال بالإنترنت رخيص جدا أو مجاني بالتالي شئ طبيعي جدا أن تجد جهاز الكمبيوتر دائما في وضعية التشغيل ومتصلا بالإنترنت في جميع الأوقات ، إذا كان الاتصال بالإنترنت غالي الثمن في بلدك فهذا لا يمنع أن تستفيد أيضا من درسنا هذا فعندما تحتاج للوصول لكمبيوترك المنزلي يمكنك مثلا أن تطلب من أي شخص بالمنزل أن يقوم بتشغيل جهازك والاتصال بالإنترنت ( غالبا أي شخص بالمنزل قد يستطيع تشغيل جهاز الكمبيوتر والاتصال بمزود خدمة الإنترنت لكنك قد لا ترغب في أن يقوم أي شخص في البحث في ملفاتك الخاصة)
كيف يعمل :
هذه الطريقة تعتمد على نص برمجي (سكريبت) بلغة بيرل Perl من إعداد ( أيمن حيدر) ، حيث يعمل النص البرمجي كل مرة تتصل بالإنترنت بأن يقوم بمعرفة عنوان الآي بي IP address الخاص بجهاز كمبيوترك المنزلي ومن ثم يقوم بنقل ملف هتمل html صغير إلى موقع ثابت لك على الإنترنت ( مثلا صفحتك الشخصية على الإنترنت) ، وبهذه الطريقة كل ما عليك القيام به للوصول إلى كمبيوترك المنزلي من أي مكان في العالم هو الوصول لأي جهاز كمبيوتر متصل بالإنترنت ومن ثم فتح المتصفح وكتابة عنوان الصفحة التي قمنا بإعدادها مثلا http://www.mysite.com/home/index.html وسوف تقوم هذه الصفحة بتوصيلك بجهاز كمبيوترك المنزلي ، الطريقة بالغة السهولة !!!
ماذا تحتاج :
1- جهاز كمبيوتر منزلي يعمل بنظام لينكس .
2- Perl وهي تأتي بشكل قياسي مع جميع توزيعات لينكس الحديثة .
3- متغير module يسمى Net::FTP وهو يأتي كجزء من أهم وأكبر مكتبات بيرل Perl والتي تدعى libnet ، إذا لم يتوفر لديك توجه لسطر الأوامر وأكتب :
perl -MCPAN -e shell and
install Bundle::libnet
السطرين في الأعلى ستقوم بجلب المتغير لك و تثبيته .
4- موقع على الإنترنت ( مثلا موقعك الشخصي على الإنترنت) وبالطبع يجب أن تتمكن من نقل ملفات لموقعك على الإنترنت بواسطة أي برنامج نقل ملفات (مثل WS_FTP في ويندوز أو LogooFTP في لينكس) .
شرح عمل السكريبت :
سنقوم الآن بشرح طريقة عمل كل جزء من النص البرمجي :
#!/usr/bin/perl
use Net::FTP ;
$remote_ftp_server="your.fixed.site";
$remote_dir="public_html/home/";
$user="username";
$pass="secret";
هذا الجزء خاص بالإعداد ، ستقوم بالطبع بتغيير حقل your.fixed.site إلى عنوانك على الإنترنت الذي ستستطيع نقل الملفات إليه ، وبالطبع يمكنك الوصول إليه من خلال المتصفح ، في حقل public_html/home ستضع الدليل الفرعي الذي ستكون به الملفات في موقعك ، أخيرا يجب أن تغير اسم المستخدم username و والرقم السري secret بما يناسبك .
$ifconfig=`/sbin/ifconfig`;
$ifconfig =~ /ppp.*addr:(.*?) P-t-P/s;
$url=$1;
chop($url);
سيقوم النص البرمجي في الأعلى بتحديد عنوان الآي بي IP Address الخاص بجهازك وذلك عن طريق أمر ifconfig حيث يحدد عنوان الآي بي IP Address لوصلة الاتصال الشبكي PPP الخاصة بك ، ومن ثم يقوم بتخزين العنوان في $url
open (HOME,">/tmp/index.html");
select (HOME);
print <<END;
<HTML>
<HEAD>
<META http-equiv="Content-type" Content="text/html">
<META http-equiv="refresh"
content="1;URL=http://$url/~haidar/cgi-bin/home.pl">
</HEAD>
<BODY>
<center>you are being transfered home</center>
</BODY>
</HEAD>
</HTML>
END
close (HOME);
النص البرمجي التالي سيقوم بكتابة ملف هتمل html صغير في الدليل temp ( في جهازك المنزلي الذي يعمل بنظام لينكس)، هذا الملف هو أحد عدة ملفات ستنقل فيما بعد إلى موقعك على الإنترنت ، كل ما يفعله هذا الملف هو تحويلك إلى صفحة أخرى ، لاحظ أن الواصفةMETA تقوم بإخبار المتصفح بأن يحدث الصفحة بعد ثانية واحدة ، وسوف يقوم بنقله إلى عنوان URL الذي قمنا بتحديده فيما سبق وكذلك الدليل الفرعي الذي اخترناه سابقا ، (لاحظ أنه في المثال في الأعلى سيتوجه إلى الدليل Home في الكمبيوتر الشخصي لأيمن حيدر وسيقوم بتنفيذ نص برمجي صغير بلغة cgi يسمح للمستخدم بالنقر على ربط لكي يستطيع عمل telnet لجهازه وقد سردنا هذا النص البرمجي في نهاية الدرس ) ، لاحظ أنك ستقوم بالطبع بتغيير أسماء الأدلة ومسارها إلى ما يناسبك في دليل home الخاص بك
$ftp=Net::FTP- new($remote_ftp_server) ||
die "you are not connected to the net";
$ftp- login($user,$pass) ;
$ftp- cwd($remote_dir);
$ftp- put("/tmp/index.html");
$ftp- quit;
الخطوة الأخيرة هي نقل الملف الذي قمنا بإنشائه سابقا (/tmp/index.html)إلى موضعه الأخير ، المتغير Net::FTP سيجعل العملية سهلة التنفيذ وواضحة ، لكي نتأكد أن هذا النص البرمجي سيعمل كل مرة تتصل بها بالإنترنت قم بحفظ الملف بإسم set_home_ip.pl في الدليل /home/haidar/bin/ ثم اجعل الملف قابل للتنفيذ ثم أضفه للملف ip-up.local الذي يوجد في الدليل /etc/ppp/ ، ذلك الملف يجب أن يكون على الشكل التالي :
#!/bin/sh
/home/haidar/bin/set_home_ip.pl
الآن حاول الاتصال بالإنترنت من جهاز كمبيوترك المنزلي ، إذا جرت العملية كما نريد يجب أن تكون قادرا على الدخول للمتصفح والتوجه لصفحتك الشخصية على الإنترنت والتي ستقوم بنقلك مباشرة لجهاز كمبيوترك المنزلي ( غني عن القول أن أباشي apache يعمل على جهازك المنزلي) ، ستجد مثال حي لدرسنا هذا في هذا المكان
لاحظ أن سترى عنوان الآي بي IP address الخاص بجهازك المنزلي في خانة عنوان المواقع URL location في المتصفح . وكما تعلم انك بمجرد معرفته ستتمكن من عمل telnet لهذا العنوان أو نقل ملفات منه أو أي شئ آخر تريد . وكما ذكرت في الأعلى قمت بعمل نص برمجي بلغة CGI بسيط يعمل في جهازك المنزلي يقدم لك قائمة بالخيارات التي تريد أن تقوم بها على جهازك المنزلي عن بعد ، النص البرمجي هو :
#!/usr/bin/perl
$ifconfig=`/sbin/ifconfig`;
$ifconfig =~ /ppp.*addr:(.*?) P-t-P/s;
$url=$1;
chop($url);
print "Content-type:text/html\n\n";
print "<a href=\"telnet://$url\">telnet home</a>";
print "<br>";
print "<a href=\"ftp://$url\">ftp home</a>";
print "<br>";
print "<a href=\"http://$url/~haidar/phone/\">Phone Book</a>";
أوامر المعالجة
مثال وظيفته الأمر
# touch file1
أنشأ ملف جديد إنشاء ملف touch
أستعمل هذا الأمر بحذر إذا كنت تعمل كمستخدم جذري # rm file1.txt
يحذف الملف المحدد حذف ملف rm
# mkdir linux4arab
linux4arab إنشاء دليل جديد بإسم إنشاء دليل جديد mkdir
# rmdir win
win حذف الدليل حذف دليل
rmdir
#mv file1 file2
غير إسم الملف الأول الى الثاني تغيير إسم ملف
mv
# cp file1.txt file2.txt
file2.txt ينشئ ملفا بإسم
file1.txt وينسخ فيه الملف نسخ الملفات
cp
# ln file1.txt file2.txt
file2.txt ينشئ ملف إسمه
file1.txt ويضع فيه نفس محتويات
بحيث إذا غيرت أي ملف يتم تحديث الملف الآخر تلقائيا إنشاء إرتباط بين ملفين ln
# tar -c firstdir > seconddir.tar
يقوم بعمل ملف مضغوط لكل محتويات الدليل بحيث لا يؤثر على محتويات الدليل الأصلية ضغط ملفات tar
4-13 الدخول لجهاز كمبيوترك المنزلي عن بعد معرفة عنوان الآي بي IP address الخاص بكمبيوترك المنزلي
الهدف :
معرفة عنوان الآي بي IP address الخاص بجهاز الكمبيوتر المنزلي والدخول على جهازك الشخصي عن بعد .
مقدمة :
عندما تقوم بالاتصال بالإنترنت من منزلك إلى مزود خدمات الإنترنت الخاص بك ISP عن طريق اتصال شبكي هاتفي dialup بواسطة المودم ، فإنك تحصل على عنوان آي بي IP address مختلف كل مرة تقوم بالاتصال ، هذا يعني إنك لا تملك عنوان آي بي IP address ثابت تستطيع الوصول منه لجهازك المنزلي من أي مكان حول العالم .
وقد تتساءل عن فائدة الوصول إلى جهازك المنزل من أي مكان ؟ لاشك أن أغلب استخدامنا لأجهزة الكمبيوتر يكون في المنزل فبالتالي من الطبيعي جدا أن تكون أغلب ملفاتك الخاصة متوفرة في جهازك المنزلي وليس أي جهاز آخر (العمل مثلا) ، من خلال درسنا هذا يمكنك الوصول إلى كمبيوترك المنزلي من أي مكان يتواجد فيه جهاز كمبيوتر متصل بالإنترنت ( مقهى إنترنت أو جهازك في العمل ..الخ) بالتالي يمكنك الوصول مباشرة إلى مفكرة مواعيدك الشخصية أو دفتر تلفوناتك الشخصية أو تنزيل أي ملف تحتاجه من كمبيوترك المنزلي بدون الحاجة للعودة للمنزل أو طلب ذلك من أي شخص في المنزل .
لابد أنك لاحظت أن هذا يتطلب أيضا أن يكون جهازك المنزلي في وضعية التشغيل ومتصلا بالإنترنت !! ، في الولايات المتحدة وبعض الدول الأوربية يكون الاتصال بالإنترنت رخيص جدا أو مجاني بالتالي شئ طبيعي جدا أن تجد جهاز الكمبيوتر دائما في وضعية التشغيل ومتصلا بالإنترنت في جميع الأوقات ، إذا كان الاتصال بالإنترنت غالي الثمن في بلدك فهذا لا يمنع أن تستفيد أيضا من درسنا هذا فعندما تحتاج للوصول لكمبيوترك المنزلي يمكنك مثلا أن تطلب من أي شخص بالمنزل أن يقوم بتشغيل جهازك والاتصال بالإنترنت ( غالبا أي شخص بالمنزل قد يستطيع تشغيل جهاز الكمبيوتر والاتصال بمزود خدمة الإنترنت لكنك قد لا ترغب في أن يقوم أي شخص في البحث في ملفاتك الخاصة)
كيف يعمل :
هذه الطريقة تعتمد على نص برمجي (سكريبت) بلغة بيرل Perl من إعداد ( أيمن حيدر) ، حيث يعمل النص البرمجي كل مرة تتصل بالإنترنت بأن يقوم بمعرفة عنوان الآي بي IP address الخاص بجهاز كمبيوترك المنزلي ومن ثم يقوم بنقل ملف هتمل html صغير إلى موقع ثابت لك على الإنترنت ( مثلا صفحتك الشخصية على الإنترنت) ، وبهذه الطريقة كل ما عليك القيام به للوصول إلى كمبيوترك المنزلي من أي مكان في العالم هو الوصول لأي جهاز كمبيوتر متصل بالإنترنت ومن ثم فتح المتصفح وكتابة عنوان الصفحة التي قمنا بإعدادها مثلا http://www.mysite.com/home/index.html وسوف تقوم هذه الصفحة بتوصيلك بجهاز كمبيوترك المنزلي ، الطريقة بالغة السهولة !!!
ماذا تحتاج :
1- جهاز كمبيوتر منزلي يعمل بنظام لينكس .
2- Perl وهي تأتي بشكل قياسي مع جميع توزيعات لينكس الحديثة .
3- متغير module يسمى Net::FTP وهو يأتي كجزء من أهم وأكبر مكتبات بيرل Perl والتي تدعى libnet ، إذا لم يتوفر لديك توجه لسطر الأوامر وأكتب :
perl -MCPAN -e shell and
install Bundle::libnet
السطرين في الأعلى ستقوم بجلب المتغير لك و تثبيته .
4- موقع على الإنترنت ( مثلا موقعك الشخصي على الإنترنت) وبالطبع يجب أن تتمكن من نقل ملفات لموقعك على الإنترنت بواسطة أي برنامج نقل ملفات (مثل WS_FTP في ويندوز أو LogooFTP في لينكس) .
شرح عمل السكريبت :
سنقوم الآن بشرح طريقة عمل كل جزء من النص البرمجي :
#!/usr/bin/perl
use Net::FTP ;
$remote_ftp_server="your.fixed.site";
$remote_dir="public_html/home/";
$user="username";
$pass="secret";
هذا الجزء خاص بالإعداد ، ستقوم بالطبع بتغيير حقل your.fixed.site إلى عنوانك على الإنترنت الذي ستستطيع نقل الملفات إليه ، وبالطبع يمكنك الوصول إليه من خلال المتصفح ، في حقل public_html/home ستضع الدليل الفرعي الذي ستكون به الملفات في موقعك ، أخيرا يجب أن تغير اسم المستخدم username و والرقم السري secret بما يناسبك .
$ifconfig=`/sbin/ifconfig`;
$ifconfig =~ /ppp.*addr:(.*?) P-t-P/s;
$url=$1;
chop($url);
سيقوم النص البرمجي في الأعلى بتحديد عنوان الآي بي IP Address الخاص بجهازك وذلك عن طريق أمر ifconfig حيث يحدد عنوان الآي بي IP Address لوصلة الاتصال الشبكي PPP الخاصة بك ، ومن ثم يقوم بتخزين العنوان في $url
open (HOME,">/tmp/index.html");
select (HOME);
print <<END;
<HTML>
<HEAD>
<META http-equiv="Content-type" Content="text/html">
<META http-equiv="refresh"
content="1;URL=http://$url/~haidar/cgi-bin/home.pl">
</HEAD>
<BODY>
<center>you are being transfered home</center>
</BODY>
</HEAD>
</HTML>
END
close (HOME);
النص البرمجي التالي سيقوم بكتابة ملف هتمل html صغير في الدليل temp ( في جهازك المنزلي الذي يعمل بنظام لينكس)، هذا الملف هو أحد عدة ملفات ستنقل فيما بعد إلى موقعك على الإنترنت ، كل ما يفعله هذا الملف هو تحويلك إلى صفحة أخرى ، لاحظ أن الواصفةMETA تقوم بإخبار المتصفح بأن يحدث الصفحة بعد ثانية واحدة ، وسوف يقوم بنقله إلى عنوان URL الذي قمنا بتحديده فيما سبق وكذلك الدليل الفرعي الذي اخترناه سابقا ، (لاحظ أنه في المثال في الأعلى سيتوجه إلى الدليل Home في الكمبيوتر الشخصي لأيمن حيدر وسيقوم بتنفيذ نص برمجي صغير بلغة cgi يسمح للمستخدم بالنقر على ربط لكي يستطيع عمل telnet لجهازه وقد سردنا هذا النص البرمجي في نهاية الدرس ) ، لاحظ أنك ستقوم بالطبع بتغيير أسماء الأدلة ومسارها إلى ما يناسبك في دليل home الخاص بك
$ftp=Net::FTP- new($remote_ftp_server) ||
die "you are not connected to the net";
$ftp- login($user,$pass) ;
$ftp- cwd($remote_dir);
$ftp- put("/tmp/index.html");
$ftp- quit;
الخطوة الأخيرة هي نقل الملف الذي قمنا بإنشائه سابقا (/tmp/index.html)إلى موضعه الأخير ، المتغير Net::FTP سيجعل العملية سهلة التنفيذ وواضحة ، لكي نتأكد أن هذا النص البرمجي سيعمل كل مرة تتصل بها بالإنترنت قم بحفظ الملف بإسم set_home_ip.pl في الدليل /home/haidar/bin/ ثم اجعل الملف قابل للتنفيذ ثم أضفه للملف ip-up.local الذي يوجد في الدليل /etc/ppp/ ، ذلك الملف يجب أن يكون على الشكل التالي :
#!/bin/sh
/home/haidar/bin/set_home_ip.pl
الآن حاول الاتصال بالإنترنت من جهاز كمبيوترك المنزلي ، إذا جرت العملية كما نريد يجب أن تكون قادرا على الدخول للمتصفح والتوجه لصفحتك الشخصية على الإنترنت والتي ستقوم بنقلك مباشرة لجهاز كمبيوترك المنزلي ( غني عن القول أن أباشي apache يعمل على جهازك المنزلي) ، ستجد مثال حي لدرسنا هذا في هذا المكان
لاحظ أن سترى عنوان الآي بي IP address الخاص بجهازك المنزلي في خانة عنوان المواقع URL location في المتصفح . وكما تعلم انك بمجرد معرفته ستتمكن من عمل telnet لهذا العنوان أو نقل ملفات منه أو أي شئ آخر تريد . وكما ذكرت في الأعلى قمت بعمل نص برمجي بلغة CGI بسيط يعمل في جهازك المنزلي يقدم لك قائمة بالخيارات التي تريد أن تقوم بها على جهازك المنزلي عن بعد ، النص البرمجي هو :
#!/usr/bin/perl
$ifconfig=`/sbin/ifconfig`;
$ifconfig =~ /ppp.*addr:(.*?) P-t-P/s;
$url=$1;
chop($url);
print "Content-type:text/html\n\n";
print "<a href=\"telnet://$url\">telnet home</a>";
print "<br>";
print "<a href=\"ftp://$url\">ftp home</a>";
print "<br>";
print "<a href=\"http://$url/~haidar/phone/\">Phone Book</a>";