![]() | ![]() | ![]() |
![]() |
| |||||||
![]() |
| | خيارات الموضوع | طريقة العرض |
|
#1
| |||
| | |||
| مقدمة عن أنواع الشيل وبعض الأوامر الهامة فى لينوكس بسم الله الرحمن الرحيم أنواع الShell الموجودة فى نظام التشغيل LINUX مقدمة قبل أن نتحدث عن انواع الShell الموجودة فى اللينوكس يجب علينا أولا أن نفهم ما هو الShell . مفهوم ال Shell : الshell هو برنامج يقوم بالوساطة بينك وبين اللينوكس أو بالتحديد بين المستخدم وبين نواة اللينوكس والتى تسمى الكيرنل (Kernel) حيث يقوم ال Shell بتفسير ما تقوم بكتابته فى ال prompt ويقوم تمريره الى النواة (Kernel). ويمكن اعتبار ال Shell على أنه مفسر لغة أوامر Command Language Interpreter كما أنه يحتوى على العديد من الأوامر Commands الخاصة به ويمكنه أيضا الأستفادة من الملحقات والبرامج الموجودة فى اللينوكس ( سنوضح ذلك فيما بعد) . أين أكتب اوامر الشيل ؟ يجب أولا ان تفرق بين برنامجيين الأول يسمى Shell والآخر يسمى Terminal . فالShell هو مانتحدث عنه أما ال Terminal فهو البرنامج الذى يقوم بتوفير واجهة لكى تكتب فيها أوامر ال Shell ويقوم هو بتمريرها الى الShell . ويوجد أكثر من برنامج للتيرمنال Terminal مثل Konsole , Eterm ,Aterm ,…………… والعديد من البرامج الأخرى ويمكنك استخدام ما يروق لك منها . وكما ذكرنا سابقا أن الShell يقوم بتفسير الأوامر فعلى سبيل المثال اذا قمت بكتابة الأمر التالى : ( اذا كنت لا تعرف أين تكتب الأوامر ارجع الى المقدمة ) كود: [ahmed@localhost ahmed]$ pwd /home/ahmed [ahmed@localhost ahmed]$ ما أريده هنا هو أن أوضح لك أن الأمر pwd أمر مبنى فى اللينوكس باش شيل (Linux bash Shell) . لكن هناك أوامر مثل cp وهو اختصار ل copy أو rm وهو اختصار ل remove فهذان الأمران يعتبران برامج تنفيذية منفصلة وموجودة فى أحد المجلدات الخاصة بنظام ملفات اللينوكس مثل /usr/bin/ . أرجو الا تكون قد حدث لك شيئا من التداخل و للتوضيح أكثر : سأشرح لك المراحل التى يقوم بها ال Shell لكى يقوم بتنفيذ الأمر الذى نفذه المستخدم : -1 أولا يقوم الشيل بفحص الأمر لكى يتأكد اذا ما كان أحد الاوامر التى المبنية فيه وإن لم يجده يقوم بالتأكد من أن الأمر أحد البرامج التطبيقية ( والبرامج التطبيقية ربما تكون أحد البرامج الموجودة فى النظام مثل الأمر ls أو rm . أو ربما يكون أحد البرامج التى تكون قد ثبتها فى النظام مؤخرا ) حيث يقوم بالبحث عن هذه البرامج التطبيقية فى المجلدات الموجودة فى مسار الشيل ( ستتعلم لاحقا كيفية اضافة البرامج الى مسار الشيل . وإن لم يجده أيضا فى البرامج التطبيقية يقوم الشيل بإظهار رسالة تفيد بإن الأمر خاطىء أو اظهار رسالة خطأ . ويجدر بنا الأشارة هنا إلى أن الShell له ميزة أخرى وهى أنه يحتوى على لغة تفسيرية قوية جدا .وهذه اللغة تحتوى على العديد من الوظائف والأمكانيات كالتى توجد فى لغات المستوى المتقدم High level Language مثل Functions ,looping ,arrays and variables . ويوجد سؤال هنا يجب أن نجيب عليه وهو كيف يبدأ الShell فى العمل ؟؟؟ والإجابة هى أن الShell يقوم بالعمل بعد أن تدخل الى النظام بنجاح Logged into the System ويظل الشيل هو الوسيلة الرئيسية بينك وبين نواة النظام حتى تخرج من النظام . وكما يظهر عنوان هذه المقالة ( أو سمها كما تشاء ) يتضح أن هناك أنواع ل Shell ولكل مستخدم وجهة نظره الشخصية لذلك يمكنك اختيار أى نوع من الShell كما تشاء ولذلك اذا فرضنا أن لديك أكثر من مستخدم لجهازك فكل مستخدم لديه Shell أفتراضى خاص به ويخرن هذا الشيل الأفتراضى لكل المستخدمين فى ملف اسمه System password file أو /etc/passwd/ ويحتوى هذا الملف أيضا على الID لكل المستخدمين باإضافة الى نسخة مشفرة لكلمة السر واسم البرنامج الذى يعمل تلقائيا بعد الدخول الى النظام . والآن نأتى الى الموضوع الرئيسيى وهو أنواع الShell : يوجد العديد من برامج الShell المختلفة سواء كان ذلك فى نظام التشفيل UNIX أو أخونا LINUX . ومن هذا البرامج Bourne Shell ويعرف اختصارا بإسم (sh) ويوجد أيضا C Shell ويختصر ب (csh) و يوجد ال Korn Shell ويختصر ب (ksh) ولكل من هذه البرامج المزايا والعيوب على حد سواء : -1 Bourne Shell تمت كتابته بواسطة رجل يدعى Steven Bourne وهو الشيل الأصلى الخاص بالUNIX وموجود فى كل أنظمة ال UNIX ويعتبر أفضل الShells فى الShell programming لكنه لايوفر تفاعلا بين المستخدم والنظام كما يفعل غيره من ال Shells . -2 C Shell كتب بواسطة Bill Joy وهو أكثر تفاعلا مع المستخدم من سابقه ولكن يعتقد الكثير أن الواجهة البرمجية له programming Interface ليست بالقوة والجدارة مثل الموجودة فى Bourne Shell ولكن الكثير من مبرمجى لغة ال C يفضلونه لأن الSyntax ل Programming Language الخاصة به قريب من لغة ال C . ولذلك سمى ب C Shell . Korn Shell-3 تمت كتابته بواسطة Dave Korn وقام هذا الرجل بعمل شىء رائع جدا فقد قام بجمع المزايا الموجودة فى كلا من ال csh و الbourne shell وقام بجمعهم فى شىء واحد متوافق مع ال Bourne Shell يتمتع بالتفاعل والقوة وقوة واجهته البرمجية . ويمكن اعتبار الثلاث Shells السابقة هم الأساس ( هناك أنواع أخرى لن نتطرق اليها ) وأن ما سيأتى بعد ذلك امتدادات لهؤلاء أو تطوير لأحد البرامج السابقة . ما سنركز عليه فى الآتى هو ثلاث برامج للShell هى: tcsh وهو امتداد للcsh و bourne again shell والذى يختصر ب bash وهو امتداد ل sh وأخيرا Public Domain Korn Shell وهو امتداد ل Ksh . ويجب ان تعلم أن الbash هو ال shell الأفتراضى لمعظم أنظمة اللينوكس . The Bourne Again Shell (Bash) BASH وهو أمتداد وتطوير ل SH وتمت اضافة بعض الأشياء الجديدة والأضافات التى حسنت من ال Bourne Shell كما أنه يحتوى على بعض مميزات الKsh و Csh . كما أن ال bash يحتوى على واجهة برمجية قوية ومرنة كما أنه يمكنك من التفاعل مع النظام . ولل BASH مميزات عدة منها أنه يوفر لك تسهيلات كبيرة عند كتابة الأوامر أو مسارات المجلدات التى تود الأنتقال اليها فى لحظة ما . ولتوضيح ذلك افتح برنامج الTerminal الذى تستخدمه وكما قلنا سابقا أن التيرمينال هو البرنامج الذى تكتب فيه أوامر ال Shell ومن أمثال الTerminal برنامج Konsole وبرنامج Eterm و Kterm و Aterm والعديد من البرامج التى تختلف فيما بينها فى كيفية توفير واجهة مريحة للمسخدم . نفذ التالى : أكتب الأمر ********************************************************************** *********** كود: [root@localhost ahmed]# cd / [root@localhost /]# وبالتالي تكون واقفا على نظام الملفات الرئيسى . أكتب نفس الأمر السابق لكن متبوعا بزر الtab وانظر ماذا سيحدث ********************************************************************** *********** كود: [root@localhost /]# cd [tab] bin dev home lib .mozilla proc sbin tmp var boot etc initrd mnt opt root sys usr بل جرب الأمر التالى اكتب الأمر cd متبوعا ب حرف s ثم اضغط tab ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + كود: [root@localhost /]# cd s [tab] sbin sys [root@localhost /]# نعم فقد قام bash بعرض كل المجلدات الموجودة فى هذا المجلد والتى تبدأ بحرف s . ------------------------------------------------------------------------------------------------------------------------- ملحوظة: اذا كان المجلد الحالى كان لا يحتوى الا على مجلد واحد يبدأ حرف S كان الBash سيقوم بالدخول الى هذا المجلد تلقائيا . فمثلا لو استبدلت حرف s السابق بحرف m ثم الضغط على tab سيدخل الى مجلد /mnt تلقائيا بعد ضغط Enter . --------------------------------------------------------------------------------------------------------- أتمنى أن تكون قد لاحظت فائدة هذه الإمكانية فى ترحمك من حفظ الكثير من اﻷوامر كما سنرى : أكتب ba فى التيرمينال ثم اضغط tab ستجده يظهر لك كل الأوامر والبرامج التى تبدأ بحرفى ba . شىء رائع أليس كذلك وهذه الأمكانية فى الBash كفيلة بسد أفواه المتكلمين والجهلاء الذين يتهمون اللينوكس بالصعوبة بسبب كثرة الأوامر ربما يكون صحيحا أن الأوامر كثيرة لكن لو أنك تتذكر حرفا واحدا من الأمر انحلت المشكلة !!!!! وليس هذا فحسب بل هناك ما يسمى ب Wild Card. لو كنت قد تعاملت مع جمل ال SQL وهى جمل الأستعلام وخصوصا مع جملة select فإذا أردت مثلا أن تختار السجلات التى يبدأ أسم العميل فيها بحرف a ماذا كنا نفعل ؟؟؟ بكل بساطة كنا نكتب التالى : select * from [table name] where name like '*a' نحن هنا لا نتحدث عن جمل الأستعلام ولكن نتحدث عن مرونة ال Bash فجملة الأستعلام السابقة تقوم بإرجاع القيم التى تبدأ بحرف الa فمثلا لو كان بالجدول ahmed , ali , alias ,amgad,arkan ,afrakosh ,............. فستقوم الجملة السابقة بإرجاع جميع الأسماء السابقة نفس النظام هنا فى الباش يمكنك كتابة التالى cd m * فكتابة أو وضع * قبل أى حرف سيجعل الباش يقوم بالبحث عن كل المجلدات ( فى هذه الحالة مجلدات ربما تكون أوامر فى وضع آخر) التى تبدأ بحرف m وتنتهى بأى عدد من الحروف أو الكلمات ولو وجد مجلدا واحدا فقط هو الذى يبدأ بحرف m سيدخل إليه مباشرا أما ان كان هناك أكثر من مجلد ففى هذه الحالة سيقوم بترتيبهم أبجديا وسيدخل فى أول واحد منهم من الناحية الأبجدية . لذلك فهذه الطريقة ليست عملية فى الحالة الأخيرة لذلك فإن ال Wildcard * يستخدم فى حالة التعامل مع الملفات المتشابهة فى الأمتداد على سبيل المثال : لو أفترضنا أن لديك مجلدا بداخله هذه الملفات first.doc second.doc third.doc ahmed guid ثم أنك تريد أن تقوم بطبع الملفات التى تنتهى بالأمتداد .doc فهناك طريقتين أما أن تقوم بكتابة اسماء الملفات كلها أو تقوم بتنفيذ الآتى بكل سهولة كود: [root@localhost etc]# lpr *.doc كود: [root@localhost etc]# lpr first.doc second.doc third.doc فكما قلنا سابقا يقوم * بالتعويض عن أى عدد من الحروف أو الكلمات لكن ؟ يقوم بالتعويض عن حرف واحد فقط . //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ومن مميزات ال bash ايضا الذاكرة أو ال History حيث أنه يقوم بحفظ الأوامر التى أدخلتها فى قائمة تخزن هذه القائمة داخل ملف يسمى فى الوضع الأفتراضى .bash_history حيث أنه عند دخولك للنظام يقوم الbash بملىء هذه الذاكرة من هذا الملف ويوجد هذا الملف فى مجلد home للمستخدم الحالى . ملحوظة : هذا الملف من الملفات التى تبدأ ب (.) وتسمى النقطة هذه بال period وهذه الملفات يقوم النظام بإنشاءها وتكون مخبأة ( Hidden) ولكى تراها يجب عليك اظهار الملفات المخفية أو كتابة الأمر ls مع الخيار a- أى يكون الأمر هكذا كود: [ahmed@localhost ahmed]$ ls -a ./ .dmrc .kaffeine/ .openoffice/ ../ .esd_auth .kde/ .qt/ .adobe/ .fonts/ .kderc .recently-used Andal/ .fonts.cache-1 .licq/ rhl10_files/ .appletviewer .fonts.conf .lyx/ rhl10.htm .assistant/ .gaim/ .Mail/ .screenrc .audacity .gconf/ .mailcap .sversionrc .bash_history .gconfd/ .mcop/ .thumbnails/ .bash_logout .gftp/ .mcoprc tmp/ .bash_profile .gnome/ .MdkOnline/ .tmsnc/ .bash_profile~ .gnome2/ .metacity/ .totem.ahmed= .bashrc .gnome2_private/ .mime.types .Trash/ core.5341 .gnupg/ .mozilla/ .Xauthority .csmashrc .gstreamer-0.8/ .mplayer/ .xine/ .DCOPserver_localhost__0 .gtkrc-1.2-gnome2 .nautilus/ .xmms/ .DCOPserver_localhost_:0@ .i18n* .net_applet .xmovierc .desktop* .ICEauthority .netbeans/ .xsession-errors Desktop/ JavaApplication1/ .oofficerc* [ahmed@localhost ahmed]$ حيث يقوم زر Up باستعراض أخر أمر كتبته ثم الذى يليه وهكذا . كما يمكنك استخدام زر down لعمل العكس كما أنه يمكن التعديل فى الأمر الذى استدعيه من ال History باستخدام زرى Left و Right . كما يمكنك عرض ال History باستخدام الأمر history الذى يقوم بعرض الhistory بهذه الطريقة كود: [ahmed@localhost ahmed]$ history 87 mnt 88 exit 89 ksh 90 exit 91 log 92 exit 93 shell 94 bash 95 exit 96 kwrite fstab 97 su 98 kdf 99 su 100 kde 101 su 102 acm 103 bsh ماعليك الا أن تكتب الأمر السابق متبوعا برقم 10 هكذا كود: [ahmed@localhost ahmed]$ history 10 131 pwd 132 dir 133 clear 134 free 135 ls -a 136 free 137 ls 138 history 139 history 5 140 history 10 [ahmed@localhost ahmed]$ الى اللقاء بحول الله |
| عدد 4 من الطلاب تقدموا بالشكر لكاتب الموضوع Arabian Penguin علي هذه المشاركة الطيبة : | ||
|
#2
| ||||
| | ||||
| بارك الله فيك على الموضوع الرائع والجهد الأروع وجزاك الله خيرا تقبل تحياتــــي وتقديري |
|
#3
| ||||
| | ||||
| موضوع جميل جزاك الله كل خير والى الامام |
|
#4
| |||
| | |||
| بارك الله فيك تفيدنا في السرفرات هذه أخي طبعا سرفرات اللينوكس شكرا لك |
|
#5
| ||||
| | ||||
| جزاك الله خيرا اخي شركح بسيط و معلومات مهمة |
|
#6
| |||
| | |||
| رائع جدا .. ننتظر التكملة أيها البطريق المبدع .. |
|
#7
| |||
| | |||
| مقدمة عن بعض الأوامر المهمة أولا يجب أن تعرف أن هناك شيئا يسمى الأمر Command وهناك شيئا آخر يسمى Command Options أو خيارات الأمر. وتستخدم Command Options لتحسين أداء الأمر أو إضافة مميزات جديدة الى الأمر الأصلى . على سبيل المثال : الأمر ls ( ls ليس أمر من أوامر الShell المبنية فيه كما وضحنا سابقا ولكن سأشير اليه فى هذا الدرس على أنه أمر ) يقوم بعرض جميع الملفات الموجودة على القرص الصلب أو الموجودة فى ملف ما . كود: [ahmed@localhost ahmed]$ ls Desktop/ JavaApplication1/ tmp/ [ahmed@localhost ahmed]$ كود: [ahmed@localhost ahmed]$ ls -a ./ .dmrc .kde/ .recently-used ../ .fonts/ .kderc .screenrc .audacity .fonts.cache-1 .mailcap .sversionrc .bash_history .fonts.conf .mcop/ .thumbnails/ .bash_logout .gconf/ .MdkOnline/ tmp/ .bash_profile .gconfd/ .mime.types .Xauthority .bash_profile~ .gnome/ .mozilla/ .xine/ .bashrc .gnome2/ .mplayer/ .xmms/ .DCOPserver_localhost__0 .gnome2_private/ .netbeans/ .xsession-errors .DCOPserver_localhost_:0@ .ICEauthority .oofficerc* .desktop* JavaApplication1/ .openoffice/ Desktop/ .kaffeine/ .qt/ [ahmed@localhost ahmed]$ عندما استخدمنا ls بالخيار a- ( لاحظ وجود مسافة بين ls و a- ولاحظ أيضا أنه لاتوجد مسافات بين (-) و (a) ) قام بعرض التالى : كود: [ahmed@localhost ahmed]$ ls -a ./ .dmrc .kde/ .recently-used ../ .fonts/ .kderc .screenrc .audacity .fonts.cache-1 .mailcap .sversionrc .bash_history .fonts.conf .mcop/ .thumbnails/ .bash_logout .gconf/ .MdkOnline/ tmp/ .bash_profile .gconfd/ .mime.types .Xauthority .bash_profile~ .gnome/ .mozilla/ .xine/ .bashrc .gnome2/ .mplayer/ .xmms/ .DCOPserver_localhost__0 .gnome2_private/ .netbeans/ .xsession-errors .DCOPserver_localhost_:0@ .ICEauthority .oofficerc* .desktop* JavaApplication1/ .openoffice/ Desktop/ .kaffeine/ .qt/ [ahmed@localhost ahmed]$ النقطة بالPeriod والملفات التى تبدأ بالPeriod فى معظمها تكون ملفات من صنع اللينوكس (ملفات يكونها النظام الحاكم عفوا يكونها نظام التشغيل ) ومن هنا يمكننا القول بأن الخيارات التى تضاف الى الأمر تعطى الأمر بعض الأمكانيات الجديدة . والأمر ls لديه الكثير من الخيارات (Options) الأخرى مثل (U-) وأرجو أن تجربه أنت الآن . ويجدر بنا الأشارة هنا أيضا الى أن ال (-) وتسمى dash ليست جزءا من ال Command Option ولكنها تقوم باخبار الشيل أيا كان نوعه بأن كل حرف سيأتى بعدها على أنه خيار للأمر . ويمكنك وضع أو تشغيل أكثر من خيار مرة واحدة : على سبيل المثال استخدمنا قبل ذلك الخيار a مع الأمر ls واستخدمت أنت الخيار U مع نفس الأمر ماذا أذا أردنا تنفيذ الأثنين معا ؟؟ بكل بساطة أكتب الأمر متبوعا بمسافة ثم ال dash ثم الخيارات التى تريدها متتالية . كود: [ahmed@localhost ahmed]$ ls -aU نرجع الى البداية عندما طلبت منك استخدام الخيار U- مع ls قام بعرض كل الملفات الموجودة لكن دون ترتيب فالأمر ls ( بمفرده) يقوم بعرض الملفات مرتبة ترتيبا هجائيا . لذلك اذا نفذت الأمر ls مع الخيار U و a سيقوم بعرض الملفات دون استثناء حتى التى تحتوى على الPeriod ويقوم بعرضها غير مرتبة . كود: [ahmed@localhost ahmed]$ ls -aU ./ .gnome/ Desktop/ .audacity ../ .Xauthority .fonts/ .mozilla/ tmp/ .gnome2/ .thumbnails/ .netbeans/ .screenrc .gnome2_private/ .ICEauthority JavaApplication1/ .bash_logout .gconf/ .bash_history .mime.types .bash_profile .gconfd/ .fonts.conf .mailcap .bashrc .qt/ .kderc .openoffice/ .dmrc .DCOPserver_localhost__0 .bash_profile~ .sversionrc .desktop* .mcop/ .xine/ .oofficerc* .xsession-errors .fonts.cache-1 .xmms/ .adobe/ .MdkOnline/ .DCOPserver_localhost_:0@ .recently-used .kde/ .mplayer/ .kaffeine/ [ahmed@localhost ahmed]$ ويمكنك أيضا استخدام طريقة Multiple Option وذلك بفصل كل خيار عن الآخر باستخدام dash (-) عن الخيار السابق . مثلا لتنفيذ آخر أمر بهذه الطريقة يكون على الشكل التالى : كود: [ahmed@localhost ahmed]$ ls -a -U -1 الخيار (t) :- ففى بعض الأحيان تريد أن تعرف متى تم عمل ملف ما ومتى تم التعديل فيه . ويمكنك الخيار (t) من عرض الملفات وترتيبها بالتاريخ بدلا من ترتيبها هجائيا فيقوم بعرض الملفات الجديدة أولا . كود: [root@localhost / ]# ls -t root/ tmp/ boot/ initrd/ sys/ home/ lib/ var/ dev/ usr/ etc/ opt/ proc/ bin/ sbin/ mnt/ [root@localhost /]# يقوم بعرض الملفات بطريقة عسكية ويتم استخدامه مع الخيار t حتى يقوم بعرض الملفات وترتيبها من الأقدم الى الأحدث لاحظ : كود: [root@localhost /]# ls -tr mnt/ sbin/ bin/ proc/ opt/ etc/ usr/ dev/ var/ lib/ home/ sys/ initrd/ boot/ tmp/ root/ [root@localhost /]# |
|
#8
| |||
| | |||
| بسم الله الرحمن الرحيم تناولنا سابقا أمر ls وذكرنا معظم الخيارات التى تأتى معه والآن بإذن الله تعالى سنقدم بعض الأوامر الأخرى التى ربما لا يمكنك الإستغناء عنها فى تعاملك مع Shell . أولا يجب أن أذكر لك معلومة يجب أن تعرفها جيدا وهى أن الShell يوفر لك أمران Two Commands فى غاية الاهمية وهما man و info . man تعنى manual وهى تمكنك من عرض جميع المعلومات عن أمر معين أقول جميع المعلومات يعنى كأنه كتيب تشغيل لأحد الأجهزة التى اشتريتها مؤخرا !!!!!!!!!!! ويستخدم هكذا : كود: [ahmed@localhost ahmed]$ man ls كود: LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuSUX nor --sort.
Mandatory arguments to long options are mandatory for short options
too.
-a, --all
do not hide entries starting with .
-A, --almost-all
do not list implied . and ..
--author
print the author of each file
-b, --escape
print octal escapes for nongraphic characters أمر info له نفس الوظيفة لكن مع اختلاف التنسيق الذى يعرض به البيانات . جرب الأتى info ls ونفس التحكم بالصفحة كما هو الحال مع man . الفرق بين man و info هو أن man يقال أنه من أيام UNIX أما info مستحدث لكن لا توجد مشكلة فكلاهما برامج حرة ( man,info برامج وليسوا أوامر ) . نعود الى موضوع الأوامر المهمة والآن نحن بصدد التحدث عن الأمر cd : ربما تتذكر نظام التشغيل DOS وتتذكر هذا الأمر أيضا وهو يعنى Change Directory . ربما من الأسم تكون قد فهمت عمل هذا الامر فهو يقوم بتغير المجلد الحالى الذى تقف عليه . فمثلا لو أنك تقف على المجلد ahmed هكذا : كود: [ahmed@localhost ahmed]$ بكل سهولة أكتب الامر cd متبوعا بأسم المجلد الذى تريد الدخول اليه هكذا كود: [ahmed@localhost ahmed]$ cd ali [ahmed@localhost ali]$ وللعودة مرة اخرى الى المجلد الذى يحتوى المجلد الذى أنت بداخله أكتب الأمر cd متبوعا بنقطتين هكذا كود: [ahmed@localhost ali]$ cd .. [ahmed@localhost ahmed]$ أكتب الأمر cd متبوعا ب ~ وستجد نفسك فى بيتك !!!! كود: [ahmed@localhost usr]$ cd ~ [ahmed@localhost ahmed]$ كود: [ahmed@localhost ahmed]$ cd / [ahmed@localhost /]$ لو كنت تريد انشاء مجلد directory جديد استخدم الأمر الأمر mkdir (وهو أختصارا لكلمة make directory ) متبوعا بأسم المجلد الذى تريد انشاؤه هكذا: كود: [ahmed@localhost ahmed]$ mkdir arabteam [ahmed@localhost ahmed]$ cd arabteam [ahmed@localhost arabteam]$ وهو اختصارا لكلمة remove directory ويستخدم لحذف مجلد ويستخدم هكذا: كود: [ahmed@localhost arabteam]$ rmdir dir_name الأمر touch يعطيك امكانية انشاء (ملف) فارغ جديد بالإمتداد الذى تريده هكذا: كود: [ahmed@localhost arabteam]$ touch Barq [ahmed@localhost arabteam]$ touch Kaboos [ahmed@localhost arabteam]$ ولو قمت بكتابة اﻷمر ls لرأيت الملفين . مثال آخر : لكتابة برنامج C /C++ أو جافا Java أو حتى ملف نصى Text يجب ان يكون للملف امتداد معين فلو كان ملف C كان الإمتداد c. ولو كان جافا كان الأمتداد java. لو كان text يبقى الأمتداد txt. نختار ملف واحد من السابق مثلا تريد انشاء ملف جافا بكل سهولة اكتب الأمر التالى : كود: [ahmed@localhost arabteam]$ touch Main.java ما الفائدة التى استفدتها من عمل ملف بأسم معين ولكن ليس بداخله أى شىء ؟؟؟ |
|
#9
| |||
| | |||
| والأجابة هى انك تسرعت قليلا ! فكما تمكنا من عمل الملف سنتمكن بإذن الله من ملىء الملف والكتابة والتعديل وعرض ما فيه بإذن الله . نبدأ أولا بعرض محتويات الملف ونستخدم لهذا الغرض الأمر cat متبوعا بأسم الملف هكذا : كود: [ahmed@localhost arabteam]$ cat -n Main.java
1
2 //created by Engineer Shaheen
3 import javax.swing.*;
4
5 /**
6 *
7 * @author ahmed
8 */
9 public class Main {
10
11 /**
12 * @param args the command line arguments
13 */
14 public static void main(String[] args) {
15 JOptionPane.showMessageDialog(null,"Hello world ! \n Shaheen Soft");
16 System.exit(0);
17 }
18
19 }
[ahmed@localhost arabteam]$ استخدمت الخيار n لكى يرقم كل سطر من أسطر الملف . وللتعديل والإضافة فى الملف استخدم أحد برامج تحرير النصوص text editors مثل kwrite ,Emacs ,gedit,kate,nedit,................ أو أى برنامج لديك . ويمكنك استخدام ذلك من خلال سطر اﻷوامر كالأتى : مثلا أنا استخدم دائما برنامج kwrite ويمكنك أنت استخدام ما شئت . لتعديل الملف السابق عن طريق أحد برامج تحرير النصوص مثل kwrite : كود: [ahmed@localhost arabteam]$ kwrite Main.java [ahmed@localhost arabteam]$ وسأقوم فى الدروس القادمة بإذن الله بتقديم نبذة مختصرة عن أهم محررات النصوص المشهورة فى لينوكس . استخدمنا قبل ذلك الأمر rmdir لحذف مجلد وماذا إذن لو أردت حذف ملف ؟؟؟ استخدم الأمر rm ويعنى remove ويستخدم هكذا : كود: [ahmed@localhost arabteam]$ touch windows [ahmed@localhost arabteam]$ rm windows rm: remove regular empty file `windows'? y [ahmed@localhost arabteam]$ لاحظ أيضا أن هذا الأمر يمكن أن يستخدم مع المجلدات ولكنه يقوم بمحو المجلد أو الملف نهائيا دون الرمى فى سلة المهملات التى تسمى Trash ويستخدم مه المجلدات باستخدام الخيار r لحذف كل الملفات والمجلدات التى توجد بداخل المجلد والخيار f للحذف بدون سؤال التأكيد هكذا : كود: [ahmed@localhost ahmed]$ rm -rf ali [ahmed@localhost ahmed]$ نستخدم الأمر cp لنسح ملف من مكان الى آخر وربما فى نفس المكان هكذا : كود: [ahmed@localhost arabteam]$ cp Main.java Main.cpp [ahmed@localhost arabteam]$ ماذا لو أردت سخ الملف الى مكان آخر غير المجلد الموجود به ؟؟؟ >>>> أكتب المسار كاملا هكذا : كود: [ahmed@localhost arabteam]$ cp Main.java /mnt cp: cannot create regular file `/mnt/Main.java': Permission denied [ahmed@localhost arabteam]$ يقول ال Shell أن Permission denied !!!!! يعنى لم يتم نسخ الملف هل تعرف لماذا ؟؟؟ الإجابة ببساطة تتلخص فى الآتى : هل سمعت يوما من يقول أن اللينوكس نظام آمن ؟؟ هل سمعت يوما من يقول أن لكل مستخدم من مستخدمى النظام له صلاحية معينة ؟؟ هل سمعت يوما من يقول أن اللينوكس يدعم تعدد المستخدمين ؟؟ هل سمعت يوما أن هناك مستخدم يسمى ال Super User أو Administrator أو الRoot ؟ اذا كانت اجاباتك على بعض هذه الأسئلة بنعم فيمكنك الإستمرار معنا ! وإن لم تكن كذلك فيجب عليك أولا مراجعة حساباتك !!! يجب علينا الآن أن أوضح لك نبذة مختصرة عن ما هو ال Root أو ماهو المستخدم الرئيسى للجهاز . ال Root هو المستخدم الوحيد الذى يملك صلاحية التعديل فى كل شىء يخص النظام والمستخدمين لهذا النظام . دائما كنت أسمع هذا المثل ((( المركب اللى عليها رئيسين تغرق ))) يعنى اذا ترك الأمر لكل مستخدم من مستخدمى الجهاز يعبث بالنظام فبعد يوم واحد من اﻷستخدام سوف لايكون هناك ما يسمى بالنظام . لذلك وضع لكل مستخدم صلاحيات معينة كهذه الحالة التى نحن بصددها فالShell لم يستطيع نسخ الملف التى تريده الى مجلد mnt/ وذلك بكل بساطة لأنك ليست لديك الصلاحية بأن تكتب على مجلد من مجلدات النظام وهو mnt/ لذلك أعطاك رسالة خطأ . حسنا ما الحل اذا كنت مضطرا لعمل ذلك ؟؟ نعم يمكنك عمل ذلك ببساطة لكن مع وجود شرط واحد ألا وهو ال password للمستخدم Root وإن لم تكن لديك فلا يمكنك ذلك ! فلنفرض أنك لديك ال password للمستخدم Root ولو أردنا تنفيذ الأمر السابق قم بالآتى : كود: [ahmed@localhost arabteam]$ su Password: [root@localhost arabteam]# وبذلك تكون لك الصلاحية بعمل أى شىء فى النظام. نفذ أمر النسخ السابق هكذا : كود: [root@localhost arabteam]# cp Main.java /mnt [root@localhost arabteam]# ( لاحظ أن أمر su يعنى Super User ) ولا حظ أيضا أنه عند تثبيت بعض الحزم أو البرامج لا تتمكن من ذلك ويعطيك رسالة بعدم السماح لك بهذا والمشكلة تكون فى هذه الحالة أنك مستخدم عادى والحل هو بالدخول ك Su من الامر su وادخال ال Password كما شرحنا سابقا . ننتقل الى نقطة أخرى خاصة بأمر آخر اسمه ln . أتتذكر أخونا Windows كان فيه حاجة عنده أسمها shortcut أو اختصار وهى عبارة عن وصلة تحتوى على مسار ملف ما . الآن فى اللينوكس أصبح أسمها link ونستخدم الأمر ln لعمل ذلك. جرب هذا الأمر كود: [root@localhost arabteam]# ln Main.cpp /mnt/a.cpp ولكن قبل ذلك أستخدم man الخاص بالأمر ln قبل أن أشرحه فى المرة القادمة التى سنتابع فيها باقى الحديث عن أشهر اﻷوامر المستخدمة فى نظام التشغيل لينوكس . سبحان الله وبحمده سبحان الله العظيم |
|
#10
| |||
| | |||
| بارك الله فيك |