ماهو الـshell ... وماهي أوامره

mr.elshfra

New member
السلام عليكم ورحمه الله وبركاته

ماهو الـshell ... وماهي أوامره

الموضوع كان حصرى فى منتدى القراصنه العرب و الشفره بس انتشر والحمد لله كنت اول من يكتب الموضوع وشكرا لصديقي dr.dermann لمساعدتى فى كتابته



بسم الله نبدا الموضوع

الــ SHELL هو برنامج يقوم بالوساطة بينك وبين الــ KERNEL حيث يقوم بتمرير الاوامر التي تكتبها في الـ prompt الى الــkernel .
حيث يعتبر الــ shell مفسر للغة الاوامر في CLI وهي اختصار لـ Command Language Interpreter كما يحتوي الشل على العديد من اﻷوامر الخاصة به .

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

من اﻻن سنفرق بين الـــ shell و الــ terminal فالشل كما قلنا هو مجرد وسيط
اما الــ terminal فهو البرنامج الذي يوفر واجهة لك لكي تكتب فيها أوامر الشل ويقوم هو بتمريرها الى الــ shell .
و أنواع الــ terminal كثيرة على سبيل المثال ﻻ الحصر ,هناك Konsole و X teminal ... الخ .
فلو فرضنا أنك قمت بكتابة اﻷمر التالي بالـــ terminal :
pwd
ستلاحظ ان النتيجة المعروضة لديك هو المكان او الجذر الذي أنت موجود فيه اﻻن ... كيف تم ذلك ؟
باختصار ... قام الـ terminal بنقل اﻷمر pwd الى الـ shell وهناك تم فحصه من قبل الشل
هل هو أمر مبني في الــــ Linux bash shell اذا لم يجده يقوم بالتأكد هل اﻷمر أحد البرامج التطبيقية لديك " و المقصود بالبرامج التطبيقية هنا هي اﻷوامر الاخرى المستخدمة بالترمينال مثل الامر نسخ او حذف " ... اذا وجدها قام بطباعة النتيجة و اﻻ يعرض لك رسالة يخبرك فيها بان الامر غير موجود لديه او انه غير معرف .

من المعلوم ان الــ shell يحتوي على لغة تفسيرية قوية جدا وهي مشابهة الى حد ما بعض لغات البرمجة ... كأن تنشأ Looping or functions or arrays or variables

يبدأ الشل بالعمل بعد أن تدخل الى النظام بنجاح ويظل هو الوسيلة الوحيدة بينك وبين نواة النظام "kernel¨ .

اذا كان هناك أكثر من مستخدم في الجهاز ... سيقوم الشل بإنشاء شل افتراضي لكل مستخدم
ويخزن هذا الشل الافتراضي للمستخدمين في ملف اسمه system passowrd file او اسمه /etc/password ويحتوي هذا الملف الـــ ID للمستخدمين باﻹضافة الة نسخة مشفرة من كلمة السر .

وهناك ثلاث أنواع رئيسية للـــ Shell :
Bourne Shell
ويعرف اختصارا باسم sh وهو الشل الاصلي الخاص بالليونكس ... ويعتبر الافضل
اﻻ انه ﻻ يوفر تفاعل كافي بين النظام و المستخدم .

C shell
ويعرف اختصار باسم csh وهو اكثر تفاعل بين النظام و المستخدم عن سابقه لكن الواجهة البرمجية له ليست افضل من سابقه . وسمي بالــ C shell ﻷن أوامر لغة البرمجة فيه قريبة الى حد ما من لغة السي .


Korn shell
ويعرف اختصارا باسم ksh وهي تضم جميع المزايا من النوعين السابقين
حيث أصبح لدينا شل يتميز بالتفاعل وقوة واجهة برمجية .


ويمكن اعتبار الانواع السابقة هي الاساس للشل اللاحقة


وهو امتداد و تطوير لــ sh وهو يحتوي على واجهة برمجية قوية تمكنك من التفاعل مع النظام
وما يميز هذا النوع انه يوفر لك تسهيلات كبيرة عند كتابة الاوامر او الانتقال من مسارات مختلفة داخل النظام .
قم بفتح اي تطبيق للشل واكتب اﻷمر التالي



PHP:
linux:/home/bennjem # cd


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

تخيلها بهذا الشكل " أنت واقف أمام ملفات النظام وليس بداخلها كما هو موضح بالتالي


PHP:
linux:/ #


فلو كتبت الامر السابق و اتبعته بزر tab مثل ماهو موضح بالشكل التالي


PHP:
linux:/ # cd /  [tab]


ستلاحظ ان النتيجة هي قام الشل بعرض لك جميع ملفات النظام التي انت وقفت امامها ... كما بالشكل التالي :


PHP:
linux:/ # cd /  
bin/      etc/      media/    proc/     srv/      tmp/      windows/  
boot/     home/     mnt/      root/     sys/      usr/  
dev/      lib/      opt/      sbin/     tftpboot/ var/


وبإمكانك استعمال الامر السابق على اكثر من وجه ... كأن تقوم بعرض الملفات التي تبدأ بحرف m فقط ... بأن تكتب الامر التالي :


PHP:
linux:/ # cd /m


ستلاحظ ان النتيجة هي



PHP:
media/ mnt/


ومن مميزات الــ bash انه يحتوي على ذاكرة يقوم بتخزين الاوامر التي أدخلتها اليه في ملف يسمى
bash_history فلو حركت الاسهم بالشل أعلى و اسفل ستشاهد انه يقوم بعرض لك آخر الاوامر التي أدخلتها اليه ... اما اذا أحببت أن يعرض لك جميع اﻷوامر التي أدلختها نفذ الامر التالي :



PHP:
[/CENTER]
    linux:/ # history  
    1  alsamixer  
    2  lsamixer  
    3  alsamixer  
    4  mkdir /usr/src/alsa  
    5  cp /home/bennjem/alsa-driver-1.0.9rc4a.tar.bz2 /usr/src/alsa  
    6  cd /usr/src/alsa  
    7  ls  
    8  tar jxvf alsa-driver-1.0.9rc4a.tar.bz2  
    9  ./configure --with-sequencer=yes && make  
   10  ./configure  
   11  cd /usr/src/alsa/alsa-driver-1.0.9rc4a  
   12  ./configure --with-sequencer=yes && make  
   13  make install  
   14  ./snddevices  
   15  alsamixer  
   16  test alsamixer  
   17  -o soundcard  
   18  modprobe snd_hda_intel  
   19  modprobe sdn_hda_core  
   20  modprobe snd_hda_intel model=asus  
   21  asus 3-jack  
   22  F1734 2-jack  
   23  mkdir /usr/src/realtek  
   24  cp /home/bennjem/realtek-linux-audiopack-3.5-6.tar.bz2   /usr/src/realtek  
   25  cd /usr/src/realtek 
[CENTER]


لمشاهدة أو عرض الملفات عن طريق الــ shell استعمل احد الامرين less او cat


PHP:
bennjem@linux:~> cat filename.txt


PHP:
bennjem@linux:~> less filename.txt


إنشاء و تحرير الملفات

ﻹنشاء او تحرير اي ملف عن طريق الــ shell فقط قم بكتابة اي اسم اي برنامج لتحرير الملفات متبوعة باسم الملف ... هنا سأستخدم برنامج emacs



PHP:
bennjem@linux:~> emacs filename.txt


نقل الملفات
نستعمل هنا الامر mv لنقل الملف او المجلد او لتغير اسمه او تغير نوعه ... مثل



PHP:
bennjem@linux:~> mv filename1.txt    mv filename1.txt


PHP:
bennjem@linux:~>mv   filename.txt    filename.html


PHP:
bennjem@linux:~> mv filename1.txt  fiename2.txt


نسخ الملفات

لنسخ الملف نستعمل الامر cp



PHP:
bennjem@linux:~> cp    filename1.txt   filename2.txt


ايضا بمكانك نقل الملف من مجلد الى آخر ... فقط قم بوضع الباث قبل الملفين .
ولنقل المجلد من مكان الى آخر ... فقط نضيف على الامر السابق -R



PHP:
 bennjem@linux:~> cp  /home/bennjem/folder1    /home/bennjem/folder2


حذف الملفات
لحذف الملفات نستعمل الامر rm



PHP:
bennjem@linux:~> rm filename.txt


إنشاء مجلد جديد
ﻹنشاء مجلد جديد نستعمل اﻷمر mkdir



PHP:
bennjem@linux:~> mkdire  folder


PHP:
bennjem@linux:~> rm -r  folder


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



PHP:
bennjem@linux:~>man rm


PHP:
bennjem@linux:~>man cd


PHP:
bennjem@linux:~>man cp


فى امان الرحمن,,,
 

madpyhack

New member
كل الشكر للأخ mr.elshfra على سلاسة الشرح ونحو الأفضل والمزيد ياصديقي تقبل تحياتي ومروري
وأيضا هناك أومار مهمه جدا بخصوص الشل ومشروحه في قسم الدورات وكل الشكر للمساهمين بالمنتدى ماشالله ولي الفخر بالتواجد بينكم
 
أعلى