نبذة تعريفيه عن الشل و ما هي اهميتة ؟
السلام عليكم ورحمه الله وبركاته
ماهو الـ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
إرسال التعليق