نبذة تعريفيه عن الشل و ما هي اهميتة ؟

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

ماهو الـ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 وهو يحتوي على واجهة برمجية قوية تمكنك من التفاعل مع النظام
وما يميز هذا النوع انه يوفر لك تسهيلات كبيرة عند كتابة الاوامر او الانتقال من مسارات مختلفة داخل النظام .
قم بفتح اي تطبيق للشل واكتب اﻷمر التالي

linux:/home/bennjem # cd

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

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

linux:/ #

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

linux:/ # cd /

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


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

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

linux:/ # cd /m

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

media/ mnt/

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


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

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


bennjem@linux:~> cat filename.txt

bennjem@linux:~> less filename.txt

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

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

bennjem@linux:~> emacs filename.txt

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


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

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

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

نسخ الملفات

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

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

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


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

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


bennjem@linux:~> rm filename.txt

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


bennjem@linux:~> mkdire  folder

bennjem@linux:~> rm -r  folder

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


bennjem@linux:~>man rm

bennjem@linux:~>man cd

bennjem@linux:~>man cp

شارك هاذا المقال !

لا توجد تعليقات

أضف تعليق