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 وهو يحتوي على واجهة برمجية قوية تمكنك من التفاعل مع النظام
وما يميز هذا النوع انه يوفر لك تسهيلات كبيرة عند كتابة الاوامر او الانتقال من مسارات مختلفة داخل النظام .
قم بفتح اي تطبيق للشل واكتب اﻷمر التالي
ستلاحظ ان النتيجة هي اخراجك من جميع المسارات واعادتك الى نقطة البداية ...
تخيلها بهذا الشكل " أنت واقف أمام ملفات النظام وليس بداخلها كما هو موضح بالتالي
فلو كتبت الامر السابق و اتبعته بزر tab مثل ماهو موضح بالشكل التالي
ستلاحظ ان النتيجة هي قام الشل بعرض لك جميع ملفات النظام التي انت وقفت امامها ... كما بالشكل التالي :
وبإمكانك استعمال الامر السابق على اكثر من وجه ... كأن تقوم بعرض الملفات التي تبدأ بحرف m فقط ... بأن تكتب الامر التالي :
ستلاحظ ان النتيجة هي
ومن مميزات الــ bash انه يحتوي على ذاكرة يقوم بتخزين الاوامر التي أدخلتها اليه في ملف يسمى
bash_history فلو حركت الاسهم بالشل أعلى و اسفل ستشاهد انه يقوم بعرض لك آخر الاوامر التي أدخلتها اليه ... اما اذا أحببت أن يعرض لك جميع اﻷوامر التي أدلختها نفذ الامر التالي :
لمشاهدة أو عرض الملفات عن طريق الــ shell استعمل احد الامرين less او cat
إنشاء و تحرير الملفات
ﻹنشاء او تحرير اي ملف عن طريق الــ shell فقط قم بكتابة اي اسم اي برنامج لتحرير الملفات متبوعة باسم الملف ... هنا سأستخدم برنامج emacs
نقل الملفات
نستعمل هنا الامر mv لنقل الملف او المجلد او لتغير اسمه او تغير نوعه ... مثل
نسخ الملفات
لنسخ الملف نستعمل الامر cp
ايضا بمكانك نقل الملف من مجلد الى آخر ... فقط قم بوضع الباث قبل الملفين .
ولنقل المجلد من مكان الى آخر ... فقط نضيف على الامر السابق -R
حذف الملفات
لحذف الملفات نستعمل الامر rm
إنشاء مجلد جديد
ﻹنشاء مجلد جديد نستعمل اﻷمر mkdir
الحصول على مساعدة عن طريق الشل
الامر man يوفر لك مكتبة متكاملة عن الاوامر المتوفرة بالشل وكيفية استعمالها
فى امان الرحمن,,,
ماهو الـ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
فى امان الرحمن,,,