Professional Documents
Culture Documents
الصدار الثانى
25رمضان 1429
25سبتمبر 2008
إهداء
أهدي هذا الكتاب إلى أمي الحبيبة وأرجو
من كل من يقرأ هذا الكتاب أن يدعو لها
بالشفاء و بدخول الجنة
مقدمة:
الحمد ل رب العالمين والصلة و السلم على أشرف المرسلين وخاتم النبيين ورحمة ال للعالمين
سيدنا محمد وعلى آله وصحبه وسلم .
لحظت ان البعض هذه اليام يرى ان سطر الوامر قل استخدامه خصوصا بعد التطور الكبير فى
الواجهات الرسومية وظهور توزيعات غاية فى السهولة مثل توزيعة . mintوهذه النظرة خاطئة عن
سطر الوامر .
فانا ارى ان سطر الوامر يساوى لينكس حيث انك من خلله تشعر وكان الدنيا كلها بين يديك
وذلك لقدراته العظيمة التى لتجاريها الواجهات الرسومية مع احترامى لها فانا لانكر التطور الكبير
فى الواجهات الرسومية التى سهلة علينا الكثير و الكثير لكن يظل سطر الوامر هو الساس لكى تعتبر
نفسك مستخدم جيد للينكس .ومن خلل قراءتك لهذا الكتاب ستكتشف ذلك بنفسك .
يتوجه هذا الكتاب الى جميع مستخدمى لينكس بداية بالمبتدئ و انتهاء بمدير النظام المحترف.
وبالرغم كونى قد كتبت هذا الكتاب واختبرت ما فيه من اوامر على توزيعة opensuse 11
ال انى قد راعيت فيه الحيادية حيال التوزيعات المختلفة ال انى لحظت عدم وجود بعض
الوامر فى توزيعتى مثل المر adduserولذلك فانى لم اتمكن من شرح هذه الوامر ولكنى
شرحت اوامر بديلة لها مثل المر . useradd
إن شاء ال سيصدر هذا الكتاب على إصدرات متتالية بحيث يلم الكتاب بأكبر قدر ممكن
من الوامر .وإن شاء ال ستحمل الصدارة التالية رقم . 3
تمت كتابة هذا الكتاب على توزيعة opensuse 11وذلك باستخدام برنامج
openoffice.orgالصدارة 2.4
ملحظة مهمة :هذه العلمة تعنى اترك مسافة بعد المر .وسوف أضع هذه العلمة فى شرح
المر بالعربى فقط ولن أضعها فى المثلة .وساتبع تلك الطريقة فى الوامر الولى فقط لكى تشعر
بالمسافات ومدى وجوبها .
قائمة المحتويات
مقدمة :
الفصل الول :اساسيات سطر الوامر
المر man
المر info
المر xman
طريقة فهم صفحات المساعدة manual
المر whatis
المر apropos
استخدام الخيار --help
استخدام المفتاح tab
علمتى التنصيص ””
تنفيذ عدة اوامر باستخدام ) ; (
تنفيذ عدة اوامر باستخدام العلمة &&
المعامل النبوبى ( | ) pipes
المعاملت > و >> و < و <<
المر pwd
المر ls
المر dir
-bالتعامل مع الملفات
المر touch
المر cat
المر tac
المر file
المر paste
المر more
المر less
المر head
المر tail
المر wc
المر grep
المر zgrep
المر diff
-cالتعامل مع المجلدات
المر mkdir
المر tree
-dأوامر النسخ و النقل و إعادة التسمية
المر rm
المر cp
المر mv
#النسخ و النقل باستخدام علمة *
المر ln
المر pstree
المر kill
المر killall
الخاتمة
أخي القارئ :لكي تفهم مهمة أحد الوامر واستخداماته المتعددة وخياراته يمكنك الستعانة
بأوأمر هذا الفصل لتتمكن من الحاطة بوظيفة المر .
#يوجد لكل أمر صفحات ) manualصفحات مساعدة( الغرض منها التعريف بوظيفة المر
وبيان كيفية استخدامه .
#المر : man
ووظيفة المر :يعرض لك جميع المعلومات المتعلقة بأي أمر تريد مثل ) كيفية استخدام هذا المر
-اسم المبرمج الذى كتب هذا المر وبريده اللكترونى – أوامر أخرى لها صلة بهذا المر -
......الخ ( .
ويتم استخدام هذا المر كالتالى :
المر الذى تريد الستعلم عنه man
-1إذا أردت معرفة جميع المعلومات المتعلقة بالمر lsاكتب ما يلي:
-2لمعرفة وظيفة أمر معين دون عرض كامل لصفحة المساعدة نستخدم الخيار ) ( fفمثل إذا
أردت معرفة وظيفة المر lsاكتب ما يلى :
-3لمعرفة جميع الوامر التى تؤدى غرضا معينا استخدم الخيار ) (kفمثل إذا أردت معرفة جميع
الوامر التى تقوم بالتقسيم fdiskاكتب ما يلى :
)cfdisk (8 - Curses based disk partition table manipulator for Linux
)fdisk (8 - Partition table manipulator for Linux
)sfdisk (8 - Partition table manipulator for Linux
#المر : info
ووظيفة هذا المر نفس وظيفة المر السابق manولكن المر infoأكثر تفصيل.
-1إذا أردت معرفة جميع المعلومات المتعلقة بالمر lsاكتب ما يلى :
#المر : xman
يستخدم هذا المر لعرض صفحات المساعدة manualمثل المر manتماما لكنه يتميز
بالتى ) تستطيع استخدام الفارة لعرض الوامر والبحث عنها – يمكنه عرض الوأمر حسب رقمها
) ( 9 – 1كما سيشرح فى جزء كيفية فهم صفحات .( man
لعرض صفحات المساعدة اضغط على manual pageوسوف يظهر لك الشكل التي :
لعرض الوامر حسب رقمها اضغط على الزر العلوى sectionsوللبحث عن أمر معين اضغط
على الزر العلوى optionsثم اضعط على searchفيظهر لك الشكل التي :
للبحث عن الوامر حسب السم اضغط على manual pageبعد إدخال اسم المر.
للبحث عن الوامر حسب الوظيفة اضغط على Aproposبعد إدخال وظيفة المر .
ملحظة مهمة:
قد يكون للمر الواحد أكثر من رقم ) أي أنه موجود فى أكثر من قسم (
فمثل المر killموجود بالقسم ). (2) , (1
المشكله هنا أننا عندما نستدعى صفحة المساعدة الخاصة بمثل هذا المر ) (killفإن المر man
سوف يبحث عن المر فى قاعدة بياناته ويأتى بأول نتيجة تصادفه ) أي أنه سيأتى لك بالمر kill
الموجود فى القسم . ( 1
ولتفادى ذلك لبد من تحديد القسم الذى سيبحث فيه عن المر وذلك عن طريق كتابة رقم
القسم قبل المر كالتالى :
مثال :إذا أردنا معرفة معلومات عن المر clearافتح الترمينال termenalواكتب التي :
clear(1) clear(1 )
NAME
clear - clear the terminal screen
SYNOPSIS
clear
DESCRIPTION
clear clears your screen if this is possible. It looks in the environment
for the terminal
type and then in the terminfo database to figure out how to clear the
.screen
SEE ALSO
(tput(1), terminfo(5
: الشـــــرح
1 ورقمهclear تبدأ صفحة المساعدة بكتابة اسم المر الذى استعلمت عنه ورقمه ) وهو هنا-1
( أي من الوامر التقليدية التى يمكن لى مستخدم تنفيذها
clear(1) clear(1)
2- NAME:
وهنا نجد اسم المر تتبعه وظيفته.
3- SYNOPSIS:
وهنا يبين لك كيفية استخدام المر .فنجد مثل المر : emacs
فالمر يكتب أول ثم يتبعه optionثم بعد ذلك الملف أو المجلد الذى يطبق عليه المر.
#قبل النتقال إلى النقطة التالية يجب معرفة كيف تفهم صيغة كتابة المر وذلك كما يلى:
] [ مابداخلها اختيارى يمكن أن تكتبه أو ل تكتبه
> < مابداخلها اجبارى لبد أن تكتبه مع إبداله بالنص المناسب
فمثل إذا كان > <fileلبد ابدال كلمة fileبالملف الذى سوف
تتعامل معه.
} { أي لبد كتابة أحد الخيارات الموجودة بداخله أي اختر مايناسبك.
...الثلث نقط تعنى الخ.
فمثل نجد مكتوبا [option]...أي اكتب خيار واحد أو أكثر ونجد [file]...أي ملف واحد
أو أكثر.
يمكن دمج هذه الرموز مع بعضها وتقرأ من الخارج للداخل فمثل الرمز ]> <[ يعنى أنه اختيارى
ولو اخترته استبدل مابداخله بما يناسبك.
4- DESCRIPTION:
وهنا نجد شرحا لما يقوم به المر بإيجاز وشرح لخياراته.
5- OPTIONS:
6- EXAMPLES:
هنا بعض المثلة التوضيحية .
7- AUTHORS:
هنا نجد اسم المبرمج الذى كتب المر أو البرنامج وكذلك صفحة .manual
8- BUGS:
هنا نجد البريد اللكترونى الذى نرسل إليه المشاكل التى تواجهنا أثناء تنفيذ المر أو البرنامج.
9- COPYRIGHT:
هنا نجد معلومات عن حقوق الملكية للمر أو البرنامج.
11- F IL ES:
نجد هذا القسم فى الوامر التى لها ملفات تهيئة مثل المر .mount
12- HISTORY:
يذكر تاريخ المر من حيث إذا كان يستخدم فى أنظمة أخرى مثل unixأو .bsd
#المر : whatis
يستخدم لعرض معلومات مختصرة عن أي أمر .ولكى يعمل هذا المر يلزم له قاعدة بيانات.
ولعمل قاعدة البيانات اتبع إحدى الطريقتين التيتين:
ahmed@the-game:~> su
Password:
the-game:/home/ahmed # makewhatis
ahmed@the-game:~> su
Password:
the-game:/home/ahmed # mandb
الن معظم التوزيعات بها قاعدة بيانات جاهزة لهذا المر ول تحتاج كل هذا بل وقد ليوجد بها
المر makewhatisأصل.
-1إذا أردت الستعلم عن وظيفة أمر واحد فقط اكتب ما يلى :
-2إذا أردت الستعلم عن وظيفة أكثر من أمر اكتب الوامر المراد الستعلم عنها وراء بعض
كالتالى :
ونلحظ هنا ان المر cdلم يتم العثور له على وظيفة مناسبة .
#المر : apropos
يستخدم للبحث عن أي أمر أعرف وظيفته .أي أنك تستخدم هذا المر إذا كنت تبحث عن
الوامر التى تؤدى وظيفة معينة.
-1إذا أردت الستعلم عن الوامر التى يمكن أن تقسم الهارد ديسك اكتب ما يلى :
)cfdisk (8 - Curses based disk partition table manipulator for Linux
ahmed@the-game:~> ls --help
>~ahmed@the-game:
)Display all 4575 possibilities? (y or n
-2اذا اردت مشاهدة جميع الوامر التى تبدأ بحرف معين وليكن mافتح الترمينال ثم اكتب
الحرف mثم اضغط على المفتاح tabمرتين فتظهر لك رساله تسالك هل تريد عرض جميع الوامر
التى تبدأ بحرف mوتذكر عددها وتكون الجابه بـ yللموافقه او nللرفض وذلك كالتالى :
ahmed@the-game:~> m
)Display all 296 possibilities? (y or n
-3اذا كنت غير متذكر صيغة المر بالضبط لكنك متاكد من الحروف الولى من المر افتح
الترمينال واكتب تلك الحروف ثم اضغط على المفتاح tabمره واحده فيكمل لك المر مباشرة اما
اذا كان يوجد اكثر من امر يبدأو نتلك الحرف الولى ستحتاج فقط للضغط على المفتاح tab
مرتين وبالتالى سيعرض لك جميع الوامر التى تبدأ بتلك الحرف الولى وذلك كالتالى :
ahmed@the-game:~> chk
chkstat chktrust
-4ليقتصر استخدام المفتاح tabعلى الوامر وانما يمكن ايضا استعماله مع اسماء الملفات
والمجلدات فمثل اذا اردت الدخول الى مجلد اسمه طويل وبه مسافات باستخدام المر cdولم
ترد كتابة ذلك السم فكل ماعليك فعله هو كتابة الحرف الول من المجلد اذا لم يكن هناك مجلد
اخر يبدا بذلك الحرف او الحرف الولى من المجلد ثم الضغط على المفتاح tabمره واحده
ليكمل لك اسم المجلد .
وتعنى تلك الصورة ان خرج المر الول هو دخل المر الثانى .و المعامل النبوبى ليستخدم مع
جميع الوامر وانما يستخدم مع الوامر القادره على القراءه من الدخل النظامى والكتابه الى الخرج
النظامى .
وفيما يلى بعض المثله على استخدام المعامل النبوبى مع شرح مبسط لها :
هنا المر الول catيستخدم لعرض الملف النصى midoلكن بدل من عرضه فى الترمينال تم
ارسال خرج ذلك المر catالى دخل المر wcلكى يقوم بعد السطر فى ذلك الملف
-2اذا اردت احصاء عدد السطر الموجوده فى جميع ملفات النظام اى الموجوده تحت الدليل /
اكتب ما يلى :
هنا المر findيقوم بعرض جميع الملفات و المجلدات الفرعيه لكن بدل من ان يتم العرض داخل
الترمينال يتم ارسال خرج المر findالى دخل المر wcليتمكن الخير من عد السطر الموجوده
فى جميع الملفات على الجهاز
-3اذا اردت التاكد من عمل خدمه او برنامج معين مثل برنامج tvtimeاكتب ما يلى :
اذا كان برنامج tvtimeيعمل سيظهر لك معلومات عن البرنامج مثل رقم العمليه pidواذا لم يكن
برنامج tvtimeيعمل فلن يظهر لك شئ فى الترمينال .
اول :المعامل > و >> ) معامل اعادة توجيه الخرج النظامى ( :
يستخدم فى اعادة توجيه خرج المر السابق له فمثل اذا كان المر السابق لذلك المعامل يعطى
خرجه للشاشه يمكن باستخدام ذلك المعامل اعادة توجيه الخرج الى ملف مثل .وفيما يلى بعض
المثله لليضاح :
مثال : 1
اذا اردت نسخ محتويات ملف نصى اسمه midoالى ملف اخر اسمه jackاكتب مايلى :
الشرح:
المر ) catبدون استخدام المعامل > او >> ( يقوم بعرض محتويات الملف المسمى midoعلى
الشاشه اى فى الترمينال ولكن بعد استخدام المعامل > او >> تم تحويل خرج المر catالى ملف
اخر اسمه jack
مثال : 2
اذا اردت نسخ صفحة المساعده الخاصه بالمر lsفى ملف اسمه zicoبحيث نستطيع قراءة
صفحة المساعده الخاصه بالمر lsباى محرر نصوص اكتب ما يلى :
الشرح:
المر ) manبدون استخدام المعامل > او >> ( يقوم بعرض صفحة المساعده الخاصه بالمر ls
على الشاشه اى فى الترمينال و لكن بعد استخدام المعامل > او >> تم تحويل خرج المر man
الى ملف اسمه zico
مثال : 3
اذا اردت انشاء ملف اسمه nonaوالكتابه بداخله باستخدام المر catاكتب ما يلى :
الشرح:
المر catمفردا وظيفته ) ( Copy standard input to standard outputعرض ما
تكتبه فى الدخل القياسى ) الترمينال ( على الخرج القياسى ) الشاشه ( .
لكن بعد استخدام المعامل > او >> تم تحويل ماسيتم كتابته فى الترمينال الى الملف . nona
يظهر الفرق فى حالة اذا كان لديك ملف يحمل نفس اسم الملف الموجه اليه الخرج فنجد ان
المعامل > يكتب على الملف مع مسح محتوياته اما المعامل >> فانه يعدل على الملف مع عدم
مسح محتوياته بحيث يتم اضافة الخرج الى اسفل الملف .ولذلك فان من المان استخدام
المعامل >> خاصة وانت مستخدم جذر .
مثال :
اذا كان لديك ملف اسمه gamalمحتواه ما يلى :
mr.ahmed mr.hazem mr.hassan mr.islam
واردت تغيير كلمة mr.الى mrs.فى كامل الملف ووضع تلك التغييرات فى ملف جديد اسمه
lilaاكتب ما يلى :
الشرح:
هنا تم اخذ دخل المر sedمن الملف gamalعن طريق العلمه < وارسال الخرج الى ملف
جديد اسمه lilaعن طريق العلمه >
مثال :
اذا اردت انشاء ملف اسمه sicaوالكتابه بداخله باستخدام المر catبحيث تتوقف الصدفه
عن قراءة الدخل عند كتابة الكلمه game overاكتب ما يلى :
ادخل النص الذى تريد وفى نهايته اكتب كلمة game overفى سطر منفرد وبدون علمتى
التنصيص وبالتالى ستتوقف عملية الدخال ولن تحتاج للضغط على ctrl+dمع ملحظة ان
كلمة game overلن تظهر فى النص الذى قمت بادخاله فى الملف . sica
#المر : whereis
يستخدم هذا المر للبحث عن البرامج ] ملفات ثنائية [ والملفات المتعلقة بها وصفحات كتيب
التشغيل . manual
-1إذا أردت البحث عن برنامج أو أمر معين وكل شىء متعلق به }مثل صفحات manual
الخاصة به والملفات { sourceاكتب ما يلى:
ls: /bin/ls
ls:
#المر : locate
يستخدم للبحث عن الملفات داخل النظام أو داخل الهارد وهو أسرع من المر .find
ملحظة :بعض التوزيعات تحتاج عمل قاعدة بيانات للمر locateقبل استخدامه وذلك كما
يلى :
ahmed@the-game:~> su
Password:
the-game:/home/ahmed # updatedb
-1إذا أردت البحث عن جميع الملفات ذات نوع واحد فقط داخل جهازك اكتب ما يلى:
فتكون النتيجة مثل كما يلى } :وذلك طبعا حسب الملفات الموجودة على جهازك {
-2إذا أردت البحث عن الملفات ذات امتداد mp4و mp2معا داخل جهازك اكتب ما
يلى:
فتكون النتيجة مثل كما يلى } :وذلك طبعا حسب الملفات الموجودة على جهازك {
فتكون النتيجة كما يلى } :وذلك طبعا حسب الملفات الموجوده على جهازك {
#المر : find
يستخدم للبحث عن الملفات و المجلدات كما يستخدم لعرض الملفات و المجلدات الموجوده
فى المسار الحالى مثلما يفعل المر lsو الصيغه العامه لستخدام المر هى :
ملحظه :اذا لم تحدد مسار البحث فان البرنامج سيبحث فى المجلد الحالى
-3للبحث عن الملفات و المجلدات التى تمت عملية الوصول اليها او استعمالها من اكثر من 10
ايام فى المسار /media/collection1اكتب ما يلى :
-4للبحث عن الملفات و المجلدات التى تمت عملية الوصول اليها او استعمالها من اقل من 10
ايام فى المسار /media/collection1اكتب ما يلى :
-5للبحث عن الملفات و المجلدات التى تمت عملية الوصول اليها او استعمالها من 10ايام
اما اذا اردت البحث عن الملفات و المجلدات حسب تاريخ استخدامها او الولوج اليها بحيث
تكون وحدة الزمن المعتبره هى الدقيقة استخدم الخيار -aminوذلك تماما مثلما سبق .
اما اذا اردت البحث عن الملفات و المجلدات حسب تاريخ التعديل عليها بحيث تكون وحدة
الزمن المعتبره هى الدقيقة استخدم الخيار -mminوذلك تماما مثلما سبق .
اما اذا اردت البحث عن الملفات و المجلدات حسب تاريخ انشائها بحيث تكون وحدة الزمن
المعتبره هى الدقيقة استخدم الخيار -cminوذلك تماما مثلما سبق .
-12للبحث عن الملفات و المجلدات التى يملكها مستخدم معين رقم UIDالخاص به هو
1002فى المسار /media/collection1اكتب ما يلى :
او
ahmed@the-game:~> find /media/collection1/ -uid 1002
-14للبحث عن الملفات و المجلدات التى تملكها مجموعه معينه رقم GIDالخاص به هو
1000فى المسار /media/collection1اكتب ما يلى :
-15للبحث عن الملفات و المجلدات التى تملكها مجموعه اسمها videoفى المسار media/
/collection1اكتب ما يلى :
وتكون النتيجه هى ايجاد الملفات و المجلدات ذات صلحية القراءه فقط للمجموعات والتى
تعادل الصلحيه 0040
وتكون النتيجه هى ايجاد الملفات و المجلدات ذات الصلحية المركبه r+wفقط للمجموعات
اى انها تعادل الصلحيه 0060
وتكون النتيجه هى ايجاد الملفات و المجلدات ذات الصلحية 0040فقط والتى تعادل
صلحيه القراءه للمجموعات .
-23للبحث عن الملفات و المجلدات التى حجمها اقل من 5ميجا بايت فى المسار media/
/collection1اكتب ما يلى :
-24للبحث عن الملفات و المجلدات التى حجمها يساوى 7كيلو بايت فى المسار media/
/collection1اكتب ما يلى :
نلحظ هنا انه يتم عرض المجلد ومن ثم يتم عرض محتوياته .
-31اذا اردت البحث فى المسار الحالى عن جميع الملفات و المجلدات الجدد من مجلد
اسمه kokoموجود فى المسار /media/collection1اكتب ما يلى :
ACTIONS :
-32اذا اردت مسح جميع الملفات و المجلدات الموجوده داخل مسار معين وليكن media/
) /collection1/oggاى مسح المجلد oggبما يحتويه من مجلدات و ملفات فرعيه (
اكتب ما يلى :
ملحظه :عند استخدام الفعل -deleteفانه يقوم بتشغيل الخيار -depthاتوماتيكيا ) اى انه
يقوم بمسح محتويات المجلد المذكور و من ثم يتم مسح المجلد الب نفسه ( .
او
;\ '}{' ahmed@the-game:~> find /media/win-xp/ -empty -exec rmdir
#المر : pushd
يستخدم للدخول إلى أى مجلد أو أى مسار .وطريقة استعمال هذا المر كالتالى:
#المر : popd
يستخدم للرجوع إلى الخلف خطوة واحدة عن المكان الذي تقف عنده .ويستخدم بعد المر
pushdفقط أي أنك إذا استخدمت المر cdللدخول لحد المجلدات وأردت استخدام
المر popdللرجوع خطوة واحدة فإن المر لن ينفذ ويستخدم هذا المر منفردا كالتالى :
ahmed@the-game:/mnt/games/chm/ahmed> popd
~ /mnt/games/chm
>ahmed@linux-r58p:/mnt/games/chm
#المر : cd
يستخدم للتنقل بين المجلدات والدخول إليها .
-1للدخول إلى مجلد فى نفس المكان الذى تقف فيه اكتب التي :
مثال :للدخول إلى المجلد ahmedفى المسار الذي تقف فيه حاليا اكتب التالى:
ahmed@the-game:~> cd ahmed
>ahmed@the-game:~/ahmed
-2للدخول إلى مجلد ما فى مسار غير الذي تقف عليه اكتب التي :
المسار cd
ahmed@the-game:~> cd /mnt/collection1/ogg
>ahmed@the-game:/mnt/collection1/ogg
ahmed@the-game:/mnt/collection1/ogg> cd ..
>ahmed@the-game:/mnt/collection1
-4للرجوع إلى المكان الصلي الذي كنت واقفا فيه اكتب ما يلى :
~ ahmed@the-game:/mnt/collection1/ogg> cd
أو
ahmed@the-game:/mnt/collection1/ogg> cd
أو
ahmed@the-game:~> cd --
>~ahmed@the-game:
ahmed@the-game:/mnt/collection1/ogg> cd ../..
>ahmed@the-game:/mnt
#المر : pwd
يستخدم لعرض المسار أو المكان الذي تقف فيه .وطريقة استخدامه سهلة جدا ببساطة اكتب
المر هكذا منفردا وفقط .
ahmed@the-game:~> pwd
/home/ahmed
ahmed@the-game:/mnt/collection1/ogg> pwd
/mnt/collection1/ogg
#المر : ls
يستخدم هذا المر لعرض الملفات و المجلدات الموجودة فى المسار الذى تحدده أنت أو لعرض
الملفات والمجلدات الموجوده فى المسار الحالى إذا لم تحدد له أي مسار .
-1لعرض جميع الملفات والفهارس فى المسار الحالى } المكان إلى انت واقف فيه دلوقتى {
اكتب ما يلى :
ahmed@the-game:~> ls
-2لعرض جميع الملفات والفهارس فى أي مسار على الجهاز اكتب ما يلى :
ahmed@the-game:~> ls /var
-3لعرض جميع الملفات والمجلدات المخفية وغير المخفية اكتب ما يلى :
ahmed@the-game:~> ls -a
. .gconf .qt
.. .gconfd .realplayerrc
.bash_history .gnome2 .recently-used
.bashrc .gnome2_private .recently-used.xbel
.beagle .gnu-emacs .scim
bin .gtk_qt_engine_rc .skel
.config .ICEauthority .subversion
.DCOPserver_the-game__0 .inputrc .thumbnails
.DCOPserver_the-game_:0 .kde .tvtime
Desktop .kermrc .urlview
.dmrc .local .wapi
Documents .mailcap .Xauthority
.dvipsrc .mcop .xchat2
.emacs .mozilla .xcoralrc
.esd_auth .mplayer .xemacs
.exrc .muttrc .xim.template
.fontconfig .ooo-2.0 .xine
.fonts .opera .xinitrc.template
.fonts.conf .profile .xsession-errors
RealPlayer11GOLD.bin public_html .xtalkrc
" وذلك كماU "capital- لعرض جميع الملفات والمجلدات دون ترتيب استخدم الخيار-4
: يلى
ahmed@the-game:~> ls -U
-5لعرض جميع الملفات مرتبة بالتاريخ بدل من الحروف البجدية اكتب ما يلى :
ahmed@the-game:~> ls -t
-6لعرض جميع الملفات بطريقه عكسية } أي ترتب أبجديا من أسفل إلى أعلى { اكتب ما يلى :
ahmed@the-game:~> ls -r
-7لعرض معلومات تفصيلية عن الملفات و المجلدات مثل ) نوع الملف و التصاريح الممنوحة له
وعدد الروابط الصلبة hard linksللملف أو عدد المجلدات الفرعية للمجلد و المالك
والمجموعه والحجم بالبايت و تاريخ النشاء واخيرا اسم الملف ( اكتب ما يلى :
ahmed@the-game:~> ls -l
total 7384
نلحظ أنه فى بداية النتيجة يكتب الحجم الجمالى للملفات والمجلدات بوحدة bytesمع
ملحظة أن حجم المجلدات ليشمل حجم محتوى تلك المجلدات .
-8لعرض معلومات تقصيلية عن الملفات و المجلدات كما سبق لكن مع إظهار الحجم بالكيلو
والميجا والجيجا اكتب ما يلى :
ahmed@the-game:~> ls -hl
total 7.3M
drwxr-xr-x 2 ahmed users 4.0K 2008-06-12 15:01 bin
drwx------ 10 ahmed users 4.0K 2008-06-18 13:47 Desktop
drwx------ 2 ahmed users 4.0K 2008-06-14 22:20 Documents
drwxr-xr-x 2 ahmed users 4.0K 2008-06-12 15:01 public_html
-rwxrwxrwx 1 ahmed users 7.2M 2008-06-07 02:45 RealPlayer11GOLD.bin
-rw-r--r-- 1 ahmed users 16 2008-06-13 11:25 Text File
نلحظ أنه فى بداية النتيجة يكتب الحجم الجمالى للملفات والمجلدات بوحدة megaمع
ملحظة أن حجم المجلدات ليشمل حجم محتوى تلك المجلدات .
ahmed@the-game:~> ls -S
ولمزيد من اليضاح سوف ندمج الخيار lمع الخيار Sوذلك كما يلى :
ahmed@the-game:~> ls -lS
total 9760
-rwxrwxrwx 1 ahmed users 7502048 2008-06-07 02:45
RealPlayer11GOLD.bin
-rw-r--r-- 1 ahmed users 2111499 2008-06-18 04:23 Chikenux.01.7z
ahmed@the-game:~> ls -R
.:
bin Desktop Documents public_html RealPlayer11GOLD.bin Text File
./bin:
./Desktop:
epiphany.desktop ls openSUSE-10.3-GM-KDE-i386-iso
مشروعى.odt
fstab MozillaFirefox.desktop opera.desktop
konqbrowser.desktop myComputer.desktop rpmforge-net-
tvtime.desktop
konquerorsu.desktop Office.desktop trash.desktop
./Desktop/openSUSE-10.3-GM-KDE-i386-iso:
openSUSE-10.3-GM-KDE-i386.iso
./Documents:
./public_html:
ahmed@the-game:~> ls -F
ونلحظ أن المجلد يأخذ الرمز /والملف التنفيذى يأخذ الرمز * والرابط لملف آخر أو linkيعبر
عنه بالرمز @ و socketيأخذ الرمز = .
ahmed@the-game:~> ls -m
-13لعرض أسماء الملفات التى تبدأ بحرف معين } مثل حرف { Dاكتب ما يلى :
*ahmed@the-game:~> ls D
Desktop:
epiphany.desktop myComputer.desktop
Fedora-9-i386-CDs.torrent Office.desktop
fstab openSUSE-10.3-GM-KDE-i386-iso
~fstab opera.desktop
konqbrowser.desktop rpmforge-net-tvtime.desktop
konquerorsu.desktop Text File
MozillaFirefox.desktop trash.desktop
mp3 .odtمشروعى
Documents:
ونلحظ هنا أنه بحث عن المجلدات والملفات التى تبدأ بحرف Dفوجد مجلدين
Desktopو Documentsأحدهما فارغ وهو Documentsوالخر Desktopوبه
ملفات ومجلدات وقد قام بعرضها .
-14لعرض جميع الملفات والمجلدات التى أول حرف منها أحد الحرف التية مثل z,R,r
وتنتهى بمقطع ثابت مثل ootاكتب التي :
ahmed@the-game:~> ls [Rrz]oot
root:
Root:
ونلحظ من تلك النتيجة أنه وجد المجلدين rootو Rootوهما مجلدان فارغان ولم يجد
مجلدا باسم . zoot
-15لعرض الملفات والمجلدات التى تبدأ بالحرف من aوحتى rوتنتهى بالمقطع llwاكتب
ahmed@the-game:~> ls [a-r]llw
gllw:
kllw:
ونلحظ أنه يعرض لك الحرف smallفقط من aإلى rولن يعرض الحرف الكابيتال .
ahmed@the-game:~> ls -1 /var
adm
agentx
cache
games
lib
lock
log
mail
opt
run
spool
tmp
X11R6
yp
-17لعرض الملفات والمجلدات مرتبة ترتيبا هجائيا حسب المتداد اكتب ما يلى :
ahmed@the-game:~/Documents> ls -X
ونلحظ هنا أن المجلدات تأتى أول لنه ليوجد لها امتداد ثم تأتى الملفات حسب الترتيب
البجدى لمتدادها كما هو موضح مع ملحظة أنه إذا كان للملف امتداد مركب مثل
) ( .tar.bz2يتم اعتبار آخر جزء فقط فى المتداد وهنا هو ) . ( .bz2
#المر : dir
يستخدم لعرض الملفات والمجلدات تماما مثل المر lsويأخذ نفس خيارات المر
. ls
#المر : touch
-يستخدم هذا المر لنشاء ملف فارغ
-يستخدم لتغيير تاريخ إنشاء الملف أو المجلد وذلك إذا كان موجود أصل .
-1لنشاء ملف فارغ دون امتداد فمثل إذا أردت إنشاء الملف باسم asdاكتب ما يلى :
-2لنشاء ملف فارغ بامتداد معين } اسم الملف xmanوامتداده txtمثل { اكتب ما يلى :
-3لنشاء أكثر من ملف فى وقت واحد يتم كتابة اسم الملفين الواحد تلو الخر مع ترك مسافة
بينهم اكتب ما يلى :
-4لتغيير تاريخ آخر تعديل على ملف أو مجلد موجود أصل بحيث يكون تاريخ آخر تعديل
على الملف لحظة كتابة المر } وذلك إذا كنت تمتلك تصريح الكتابة على ذلك الملف أو المجلد
{ اكتب نفس المر السابق كما يلى :
ولملحظة الفرق سنستعرض تلك الملفات قبل وبعد تغيير التاريخ باستخدام المر touch
كالتالى :
أول قبل تغيير التاريخ باستخدام المر : touch
ahmed@the-game:~> ls -l
ahmed@the-game:~> ls -l
-5لتغيير تاريخ آخر تعديل على ملف أو مجلد موجود أصل بأى تاريخ آخر تختاره يتم
استخدام الخيار tولكن قبل شرح كيفية استخدام هذا الخيار يجب توضيح كيفية كتابة
التاريخ وذلك كالتالى :
cc yy MM DD hh mm ss التاريخ يكتب هكذا
حيث :
ccأول رقمين من الربعة أرقام الخاصة بالسنين
yyآخر رقمين من الربعة أرقام الخاصة بالسنين
مثال لتوضيح ccو : yy
العام 1985يكون فيه cc=19و yy=85
العام 2008يكون فيه cc=20و yy=08
يكتب . 09
إذا أردت وضع الثوانى يجب أن تسبقها نقطة .
مثال :إذا كان لديك فى مجلد البيت ملف اسمه midoوتريد تغيير تاريخ آخر تعديل عليه
إلى التاريخ التالى 12/9/1981الساعه 6:30:24عصرا ) بالمناسبة هذا هو تاريخ ميلدى
لمن أراد إرسال هدية !! ( فما علينا إل عمل التي :
وتظهر النتيجة طبعا عند استخدام المر lsمع الخيار lكما يلى :
ahmed@the-game:~> ls -l
مثال :إذا كان لديك فى ملف البيت ملف اسمه midoوتريد تغيير تاريخ آخر تعديل عليه إلى
التاريخ التالى 30/7/2022الساعه 13:30:50ظهرا فما علينا إل عمل التي :
وتظهر النتيجة طبعا عند استخدام المر lsمع الخيار lكما يلى :
ahmed@the-game:~> ls -l
ملحظة مهمة :ليمكن تغيير التاريخ إلى تاريخ أعلى من 2068ول إلى تاريخ أقل من
. 1969
#المر : cat
وظيفة المر catالساسيه هى ) ( Copy standard input to standard output
عرض ما تكتبه فى الدخل القياسى ) الترمينال ( على الخرج القياسى ) الشاشه ( .وفيما يلى بعض
الوظائف الخرى للمر : cat
-aقراة ملف واحد على الشاشة دون أن تتمكن من التغيير فى ذلك الملف .
-bقراة أكثر من ملف معا مع دمجهم فى ملف واحد على الشاشة فقط بحيث يظهروا تحت
بعضهم وذلك حسب ترتيب الملفات عند كتابة المر .
-cدمج أكثر من ملف فى ملف واحد ويتم دمجهم تحت بعضهم حسب تسلسل أسماء
الملفات عند كتابة المر .
-dالكتابة داخل ملف مع حذف البيانات التى كانت موجودة فيه .
-eللتعديل داخل ملف نصى مكتوب مع الحتفاظ بالبيانات التى كانت موجودة فيه .
-fيستخدم لنشاء ملف جديد والكتابة بداخله .
ملحظة مهمة :ل يفضل استخدام المر catمع الملفات النصية الطويلة لنها ستعرض على
الشاشة بسرعة أكبر من قراءتها .
-1لقراة ملف واحد على الشاشة دون إمكانية التعديل فى محتواه ) بفرض أن الملف اسمه
( socaاكتب ما يلى :
-3لعرض ملف اسمه socaمع ترقيم جميع السطر عدا السطر الفارغة استخدم الخيار -b
وذلك كما يلى :
-4لقراءة أكثر من ملف فى آن واحد مع دمجهم على الشاشة فقط ) بفرض أن لديك ملفين
socaو ( tmanاكتب ما يلى :
فتكون النتيجة بعرض الملفين بحيث يكون ملف socaفى الول ويليه ملف . tman
-5لقرأة أكثر من ملف فى آن واحد مع دمجهم على الشاشة فقط وترقيم كل سطر اكتب ما
يلى :
-6لدمج أكثر من ملف داخل ملف واحد جديد ) بفرض أن الملف الجديد اسمه ( ahmed
اكتب ما يلى :
فتكون النتيجة هى إنشاء ملف جديد اسمه ahmedيحتوى على ما بداخل الملفين socaو
tmanمن بيانات .
-7لدمج أكثر من ملف داخل ملف واحد جديد مع ترقيم كل سطر من أسطر الملف الجديد )
بفرض أن الملف الجديد اسمه ( didoاكتب ما يلى :
فتكون النتيجة هى إنشاء ملف جديد اسمه didoيحتوى على ما بداخل الملفين من بيانات
بالضافة إلى أن أسطر هذا الملف مرقمة .
-8للكتابة داخل ملف مع حذف جميع البيانات التى كانت موجودة بداخله اكتب ما يلى :
بعد النتهاء من الكتابة داخل الملف يتم الضغط على Enterثم الضغط على
) ( Ctrl+dلكى يحفظ ماكتبت .
-9للتعديل داخل ملف مكتوب فيه وإضافة بيانات جديدة له مع الحتفاظ بالبيانات الموجودة
سابقا اكتب ما يلى :
بعد النتهاء من الكتابة داخل الملف يتم الضغط على Enterثم الضغط على
) ( Ctrl+dلكى يحفظ ماكتبت .
-10لنشاء ملف جديد مع الكتابة بداخله ) بفرض أن الملف الجديد اسمه ( biboاكتب ما
يلى :
بعد النتهاء من الكتابة داخل الملف يتم الضغط على Enterثم الضغط على
) ( Ctrl+dلكى يحفظ ماكتبت .
#المر : tac
وظيفة هذا المر هى عرض الملف من الخر للول .أي آخر سطر يكون أول سطر
) بفرض أن الملف المراد عرضه اسمه ( biboوذلك كما يلى :
#المر : file
يستخدم هذا المر لعرض نوع الملف فقط
-1لعرض نوع ملف واحد ) بفرض أن الملف المراد عرض نوعه اسمه ( biboاكتب ما يلى :
-2لعرض نوع أكثر من ملف ) بفرض أن الملفات المراد عرض نوعها هى biboو
RealPlayer11GOLD.binو ( binاكتب ما يلى :
(SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), for
GNU/Linux 2.2.5, not stripped
bibo: ASCII text
bin: directory
#المر : paste
يستخدم لدمج الملفات النصية معا على الشاشة بالتناظر بحيث يدمج السطر الول للملف الول
مع السطر الول للملف الثانى فى سطر واحد و السطر الثانى للملف الول مع السطر الثانى للملف
الثانى فى سطر واحد وهكذا .
-1لدمج ملفين نصيين معا على الشاشة الملف الول اسمه socaوالملف الثانى اسمه tman
اكتب ما يلى :
-2لدمج ملفين نصيين معا الول اسمه socaوالثانى اسمه tmanفى ملف اخر اسمه noga
اكتب ما يلى :
#المر : more
يستخدم لقراءة الملفات التى يزيد حجمها عن صفحة .وطريقة استعماله سهلة جدا وهى كتابة
اسم الملف المراد قراءته بعد المر moreوذلك كالتالى ) بفرض أن الملف المراد قراءته اسمه
: ( tman
#المر : less
يستخدم لقراءة الملفات تماما مثل المر السابق moreولكن مع بعض التحسينات .
وطريقة استعماله تماما مثل المر السابق moreوذلك كالتالى :
من الجدير بالذكر أن المر lessهو البرنامج الذى تعرض به صفحات manualداخل
الترمينال .
#المر : head
يستخدم لعرض عدد معين من السطر من أول الملف .
مثال :إذا أردت عرض أول 10أسطر من ملف اسمه tmanاكتب ما يلى :
#المر : tail
يستخدم لعرض عدد معين من السطر من آخر الملف .كما يستخدم لعرض جزء من الملف مع
إهمال الباقى .
-2إذا أردت عرض الملف مع إهمال أول 16سطرا منه اكتب ما يلى :
فتكون النتيجة طبعا هى عرض الملف من أول السطر 16وحتى النهاية .
#المر : wc
يستخدم لمعرفة معلومات عن ملف معين .بفرض أن الملف المراد الستفسار عنه اسمه . soca
ahmed@the-game:~> wc -l soca
ahmed@the-game:~> wc -w soca
ahmed@the-game:~> wc -c soca
ahmed@the-game:~> wc -m soca
ahmed@the-game:~> wc soca
#المر : grep
يستخدم للبحث عن كلمة أو جملة داخل الملفات النصية ) مع وضع الجملة داخل علمتى
تنصيص ( .
ملحظة مهمة :يجب مراعاة حالة الحرف capital & smallفى الكلمة التى تبحث عنها .
-1إذا أردت البحث عن كلمة ولتكن linuxداخل ملف نصى اسمه socaاكتب ما يلى :
فتكون النتيجة هى ظهور جميع السطر التى تحتوى على تلك الكلمة .
-2إذا أردت البحث عن جملة ولتكن Linux kernelداخل ملف نصى اسمه soca
اكتب ما يلى :
فتكون النتيجة هى ظهور جميع السطر التى تحتوى على تلك الجملة .
-3لعرض جميع السطر التى لتحتوى على كلمة معينة ولتكن linuxداخل ملف نصى اسمه
socaاكتب ما يلى :
فتكون النتيجة هى عرض جميع السطر التى لتحتوى على كلمة . linux
-4لعرض جميع السطر التى لتحتوى على جملة معينة ولتكن Linux kernelداخل ملف
نصى اسمه socaاكتب ما يلى :
فتكون النتيجة هى عرض جميع السطر التى لتحتوى على جملة . Linux kernel
-5لعرض جميع السطر التى تحتوى على كلمة معينة ولتكن Linuxمع عرض أرقام تلك
السطر داخل ملف نصى اسمه socaاكتب ما يلى :
-6لعرض جميع السطر التى تحتوى على جملة معينة ولتكن Linux kernelمع عرض أرقام
تلك السطر داخل ملف نصى اسمه socaاكتب ما يلى :
-7لعرض عدد السطر التى تحتوى على كلمة معينة ولتكن linuxفى ملف نصى اسمه soca
-8لعرض عدد السطر التى تحتوى على جملة معينة ولتكن Linux kernelفى ملف نصى
اسمه socaاكتب ما يلى :
-9لعرض أسماء الملفات فقط التى تحتوى على كلمة معينة ولتكن linuxفى مسار معين
وليكن * /home/ahmed/اكتب ما يلى :
-10لعرض أسماء الملفات فقط التى تحتوى على جملة معينة ولتكن Linux kernelفى مسار
معين وليكن * /home/ahmed/اكتب ما يلى :
عند البحث عن الجمل والكلمات باستخدام المر grepفإنه يفضل استخدام بعض الرموز .
هذه الرموز توضع فى الجمل والكلمات موضوع البحث .
هذه الرموز تزيد من كفاءة البحث وتسمى تلك الرموز ) التعابير النظامية ( pattern
ملحظة مهمة :إذا كان السطر ينتهى بمسافة أو بنقطة .فسوف تفشل عملية البحث لنه بذلك
يكون آخر السطر ليس كلمة linux
-cللبحث عن الكلمات التى تبدأ بالحرف أو تنتهى بالحرف ) xفمثل الكلمة التي أبحث عنها
هى linuxلكنى ل أتذكرها بالضبط ( اكتب ما يلى :
-dللبحث عن الكلمات عن الكلمات التى تبدأ بالحرف من aإلى fاكتب ما يلى :
#المر : zgrep
يستخدم للبحث عن كلمة أو جملة داخل الملفات النصية المضغوطة ) مع وضع الجملة داخل
علمتى تنصيص ( .
المر zgrepهو هو المر grepأي تستطيع تطبيق كل ماسبق مع المر grepعلى المر
zgrepوالختلف فقط هو أن الملفات التى أبحث فيها هى الملفات النصية المضغوطة .
وإليك مثال للتوضيح :
إذا أردت البحث عن كلمة ولتكن linuxداخل ملف نصى مضغوط اسمه soca.tar.gz
اكتب ما يلى :
#المر : diff
يستخدم للمقارنة بين ملفين سطر سطر
مثال لليضاح :إذا كان لديك ملفان الول اسمه asd1ويحتوى على السطر التالية :
amr ali
2,3c2
<
< amr ali
---
> amr ahmed
\ No newline at end of file
نلحظ هنا أنه عرض السطر المختلفة من الملفين أسفل بعضهم )حيث السطر الثانى فى الملف
الول فارغ بينما السطر الثانى فى الملف الثانى به amr ahmedوكذلك السطر الثالث فى
الملف الول به amr aliبينما ليوجد سطر ثالث فى الملف الثانى ( .
ملحظات :
-aيعتبر السطران مختلفين إذا كانت المسافات بين الكلمات مختلفة حتى إذا كان السطران
يحملن نفس الكلمات بالضبط
-bيعتبر السطران مختلفين إذا كان فى نهاية أحدهما مسافة بينما لينتهى السطر الخر بمسافة
-cيعتبر السطران مختلفين إذا كان فى نهاية أحدهما نقطهةبينما لينتهى السطر الخر نقطة
#المر : mkdir
يستخدم لنشاء مجلد واحد فقط وكذلك يستخدم لنشاء عدة مجلدات بجانب بعضها
البعض أو داخل بعضها .
-1لنشاء مجلد فارغ اسمه conanفى المسار الحالى اكتب ما يلى :
طبعا لنشاء ملف فى هذا المسار لبد أن تكون مستخدم جذر . root
-3لنشاء عدة مجلدات فارغة بعضها بجانب بعض ) بفرض أن المجلدات هى amrو gigiو
haniو ( didoاكتب ما يلى :
-4لنشاء أكثر من مجلد داخل بعض ) بفرض أن المجلدات هى edgو amrو gigiو
haniو ( didoاكتب ما يلى :
-5إذا أردت أن يطلعك المر mkdirعلى تقدم سير عملية النشاء أي يخبرك بالمجلدات
التى فرغ من إنشائها استخدم الخيار v-وذلك كما يلى :
-6اذا اردت انشاء مجلد اسمه midoفى المسار الحالى مع اعطاء ذلك المجلد الصلحية
700بدل من الصلحية الفتراضية 755اكتب ما يلى :
#المر : tree
يستخدم لعرض المجلدات على شكل شجرى .
-1لعرض المجلدات وما تحتويه من ملفات و مجلدات على شكل شجرى فى المسار الحالى
اكتب ما يلى :
ahmed@the-game:~> tree
-2لعرض المجلدات وما تحتويه من ملفات و مجلدات على شكل شجرى فى المسار /var
اكتب ما يلى :
نلحظ أن تلك الطريقة غير عملية عندما يحتوى المسار الذى تعرضه على ملفات كثيرة
و الفضل هو عرض المجلدات فقط من دون عرض ما تحتويه من ملفات و مجلدات
-3لعرض المجلدات وما تحتويه من مجلدات فقط على شكل شجرى فى المسار الحالى
اكتب ما يلى :
-4لعرض المجلدات وما تحتويه من مجلدات فقط على شكل شجرى فى المسار
) ( /varاكتب ما يلى :
#المر : rm
يستخدم هذا المر لمسح الملفات والمجلدات سواء كانت ممتلئة أم فارغة .
-1لحذف ملف وليكن اسمه socaموجود فى المسار الحالى اكتب ما يلى :
ahmed@the-game:~> rm soca
ahmed@the-game:~> rm /mnt/collection1/bibo
ahmed@the-game:~> rm -f koki
-4لتفادى حذف ملف بطريق الخطأ حيث يعطى لك رسالة تكون إجابتها yesأو noبفرض
أن الملف اسمه naniوموجود فى المسارالحالى اكتب ما يلى :
ahmed@the-game:~> rm -i nani
* ahmed@the-game:~> rm
-6لحذف المجلد سواء كان ممتلئا أم فارغا اكتب ما يلى ) بفرض أن اسمه :( zizo
ahmed@the-game:~> rm -r zizo
لنستطيع مسح الملفات التى ليس لدينا تصريح الكتابة عليها .
#المر : cp
يستخدم لنسخ الملفات والمجلدات وعند استعماله لبد من تحديد المكان الذى ستنسخ منه
والمكان الذى ستنسخ إليه .
-4لتفادى نسخ ملف مكان آخر بنفس السم استخدم الخيار -iوبذلك سوف يسألك قبل
النسخ إذا كان هناك ملف موجود يحمل نفس السم أم ل والجابة تكون yesأو noفمثل إذا
كان لديك ملف اسمه miroوتريد نسخه من المسار
/mnt/collection1إلى المسار الحالى مع استخدام الخيار -iحيث يوجد ملف بنفس
السم فى المسار الحالى اكتب ما يلى :
~ ahmed@the-game:~> cp -i /mnt/collection1/miro
-5لنسخ مجلد سواء كان ممتلئا أم فارغا استخدم الخيار -rأو -Rفمثل إذا كان لديك مجلد
اسمه vectorفى المسار /mnt/collection1وتريد نسخه إلى المسار
/home/ahmed/Desktopاكتب ما يلى :
نلحظ أنه عند نسخ المجلد أو الملف فإن المالك يتغير إلى المستخدم الذى قام بنسخ الملف أو
المجلد .
سؤال :هل يمكن نسخ ملف أو مجلد إلى مكان آخر أو فى نفس المكان باسم مخالف ؟
الجابة :نعم
-7إذا أردت نسخ ملف اسمه folaفى نفس المكان باسم مخالف وليكن somaاكتب ما
يلى :
-8إذا أردت نسخ ملف اسمه folaمن المسار الحالى إلى المسار /mnt/collection1
باسم مخالف وليكن somaاكتب ما يلى :
-9إذا أردت نسخ ملف من مسار إلى آخر بحيث يكون غير متواجد فى أي من المسارين
فمثل إذا أردت نسخ ملف اسمه ahmedالموجود فى المسار
/mnt/collection1إلى المسار /mnt/collection2اكتب ما يلى :
#المر : mv
يستخدم لنقل الملفات والمجلدات من مكان إلى آخر وعند استعماله لبد من تحديد المكان
الذى ستنقل منه والمكان الذى ستنقل إليه .
يمكن استعمال المر mvلعادة تسمية الملفات والمجلدات وذلك بنقل الملف أو المجلد إلى
نفس المسار مع تغيير اسمه .
استخدام المر mvيشبه كثيرا استعمال المر cpفيما عدا أنه ينقل المجلدات دون استخدام
الخيار -rوإليك فيما يلى أمثلة لستخدام المر . mv
-1لنقل ملف اسمه fofaمن المسار /mnt/collection1إلى المسار
/home/ahmed/Desktopاكتب ما يلى :
-4لتفادى لنقل ملف مكان آخر بنفس السم استخدم الخيار -iوبذلك سوف يسألك قبل النقل
إذا كان هناك ملف موجود يحمل نفس السم أم ل والجابه تكون yesأو noفمثل إذا كان
لديك ملف اسمه miroوتريد نقله من المسار
/mnt/collection1إلى المسار الحالى مع استخدام الخيار -iحيث يوجد ملف بنفس
السم فى المسار الحالى اكتب ما يلى :
~ ahmed@the-game:~> mv -i /mnt/collection1/miro
-5لنقل مجلد ممتلئ بالملفات و المجلدات الفرعية وليكن اسمه zimaمن المسار الحالى إلى
المسار /mnt/collection1اكتب ما يلى :
ملحظة :
إذا وقفت على المسار الذى عليه المجلد المراد إعادة تسميته فإنك لن تحتاج لكتابة كل هذه
المسارات وفيما يلى مثال لليضاح على نفس المثال السابق :
ahmed@the-game:~> cd /home/ahmed/Desktop
ahmed@the-game:~/Desktop> mv zima mike
عند تغيير اسم الملف أو المجلد باستخدام المر mvوكان هناك فى ذلك المسار مجلد بنفس
السم الجديد سوف ينقل إليه الملف أو المجلد الذى أردت تغيير اسمه لن المر mvيبحث
أول عن مجلد بالسم الجديد لكى ينقل إليه الملف أو المجلد
اما إذا أردت تغيير اسم ملف وكان هناك فى ذلك المسار ملف بنفس السم الجديد سوف يتم
عمل إحلل overwriteحيث تحل البيانات الموجوده فى الملف المراد تغيير اسمه محل
البيانات الموجوده فى الملف ذو السم الجديد فمثل إذا كان لديك ملف اسمه bisoوأردت
تغيير اسمه إلى nonaوكان بالصدفة هناك ملف اسمه nonaلم تنتبه إلى وجوده .فكيف
تكون النتيجة ؟
النتيجة هى أنه عند كتابة المر
تنتقل جميع البيانات الموجودة فى ملف bisoلتحل محل البيانات الموجودة فى ملف
. nona
-8إذا أردت نقل ملف اسمه folaمن المسار الحالى إلى المسار /mnt/collection1
باسم مخالف وليكن somaاكتب ما يلى :
-9لعمل نسخة احتياطية من الملف المراد نقله أو اعادة تسميته استخدم الخيار -bوذلك بفرض
أن الملف اسمه wamaكما يلى :
وتكون النتيجة هى عمل نسخة احتياطية فى مكان الملف الصلي قبل النقل تكون تحت اسم ~
wamaمع نقل الملف wamaإلى المسار /mnt/collection1
ahmed@the-game:~> cp -r * /mnt/collection1
لنقل جميع الملفات و المجلدات الموجودة فى المسار الحالى مرة واحدة إلى مسار معين وليكن
/mnt/collection1اكتب ما يلى :
ahmed@the-game:~> mv * /mnt/collection1
#المر : ln
يستخدم لنشاء روابط لينة و صلبة
- 1الروابط اللينة :
الرابط اللين هو ملف صغير يحتوى على مسار الملف أو المجلد الصلى وإذا حذف هذا الرابط
فلن يؤثر هذا على الملف الصلي أما إذا حذف الملف الصلي فلن يعمل الرابط .ويتم عمل
الروابط اللينة للملفات و المجلدات على حدا سواء .
ولنشاء الروابط اللينة نستخدم المر lnمع الخيار -sفمثل إذا كان لديك ملف اسمه hima
موجود فى المسار /mnt/collection1وتريد إنشاء رابط له اسمه zimaفى المسار
-aالرشفة :
الرشيف هو مجموعة من الملفات و المجلدات الموجودة معا فى مكان واحد ويتم التعامل معها
على أنها ملف واحد .
#المر : tar
يستخدم لعمل أرشيف و لعرض محتويات أرشيف و لفك أرشيف .بحيث تكون الملفات
والمجلدات المؤرشفة تحت امتداد .tar
ومن الجدير بالذكر أن هذا الخيار غير إبدالى أي أن) -cvfليساوى .( -fvc –
-1لعمل أرشيف لمجلد اسمه wcwبه مجموعة من الملفات و المجلدات الفرعية وموجود فى
المسار /mnt/collection1مع وضع الرشيف فى المسار
/home/ahmed/Desktopاكتب ما يلى :
ahmed@the-game:~> cd /mnt/collection1
ahmed@the-game:/mnt/collection1> tar -cvf /home/ahmed/Desktop/wcw.tar
wcw
-2لعمل أرشيف لمجلد اسمه wcwبه مجموعة من الملفات و المجلدات الفرعية وموجود فى
المسار /mnt/collection1وتريد وضع الرشيف فى نفس مسار المجلد wcwوتسميته
mtmاكتب ما يلى :
ahmed@the-game:~> cd /mnt/collection1
ahmed@the-game:/mnt/collection1> tar -cvf mtm.tar wcw
-3إذا أردت عمل أرشيف لمجلد به مجموعة من الملفات والمجلدات الفرعية وتريد أن تنتقى
بعضا من هذه الملفات والمجلدات لتدرجها داخل الرشيف بحيث يعطيك رسالة يسألك فيها
عن كل ملف أو مجلد هل تريد ضمه للرشيف أم ل وتكون الجابه yأو nاستخدم الخيار
-cwf
بفرض أن المجلد المراد أرشفته اسمه gigiالموجود فى المسار /mnt/collection1وتريد
وضع الرشيف فى نفس مسار المجلد gigiوتسميته vinoاكتب ما يلى :
ahmed@the-game:~> cd /mnt/collection1
ahmed@the-game:/mnt/collection1> tar -cwf vino.tar gigi
?'add `/mnt/collection1/gigi
add `/mnt/collection1/gigi'?y
وهكذا سيتابع معك السئلة عن كل ملف أو مجلد فرعى أجب بما تشاء .
نلحظ أنك إذا أجبت عن أول سؤال nفإنه لن يسألك عن باقى الملفات والمجلدات الفرعية
وبالتالى سوف تحصل على أرشيف فارغ .
-4لرشفة مجلد اسمه rayaباستخدام الصيغة gzipمع وضع الرشيف فى نفس مسار
المجلد و تسمية hoda.tgzاكتب ما يلى :
-5لرشفة مجلد اسمه rayaباستخدام الصيغه bzip2مع وضع الرشيف فى نفس مسار
المجلد و تسمية hoda.bz2اكتب ما يلى :
ahmed@the-game:~> cd /mnt/collection1
ahmed@the-game:/mnt/collection1> tar -xvf vino.tar
?'extract `gigi
extract `gigi'?y
وهكذا سيتابع معك السئلة عن كل ملف أو مجلد فرعى أجب بما تشاء .
-4إذا كنت تريد استخراج ملف بعينه اسمه nana.pdfمن أرشيف اسمه wcw.tar
موجود فى المسار /mnt/collection1اكتب ما يلى :
ahmed@the-game:~> cd /mnt/collection1
ahmed@the-game:/mnt/collection1> tar -xf wcw.tar wcw/nana.pdf
-2لضافة مجلد } به مجموعة من الملفات الفرعية { اسمه gamalإلى أرشيف موجود أصل
اسمه yara.tarمع العلم أن الملف و الرشيف موجودان فى نفس المسار اكتب ما يلى :
#المر : cpio
يستخدم لنشاء أرشيف و لستخراج الملفات من الرشيف و لدخال ملفات إلى داخل
أرشيف .
عند إنشاء أرشيف cpioيتم أخذ قائمة بأسماء الملفات والمجلدات التى سيتم أرشفتها ثم
ترسل إلى الخرج القياسى أو إلى الجهاز الذى سيتم أرشفته بواسطة الخيار -fوعادة يتم استخدام
المر lsأو findلتوفير تلك القائمة للخرج القياسى
ahmed@the-game:~> cd /mnt/collection1/noga
ahmed@the-game:/mnt/collection1/noga> ls | cpio -ov > ../tatu.cpio
أو
ahmed@the-game:/mnt/collection1/noga> find | cpio -ov > ../tatu.cpio
-2لرشفة مجلد اسمه } nogaبه مجموعة من الملفات والمجلدات الفرعية { موجود فى
المسار /mnt/collection1مع وضع الرشيف فى نفس مسار المجلد nogaوتسميته
tatuاكتب ما يلى :
ahmed@the-game:~> cd /mnt/collection1/noga
ahmed@the-game:/mnt/collection1/noga> find | cpio -ov > ../tatu.cpio
الخيار oيعنى createsاما الخيار vيستخدم لظهار ما الذى انتهى من أرشفته .
نأتي الن للتعرف على ماهية الفرق بين lsو findالذين استخدما للمساعدة فى عملية الرشفة .
إن إنشاء أرشيف باستخدام المر cpioيتتطلب عمل قائمة بالملفات والمجلدات وما تحويها
ثم إرسالها إلى الخرج القياسى أي الرشيف .وعادة يستخدم } lsأو . { findلتجهيز تلك القائمة
ولكن متى نستخدم lsومتى نستخدم findوالجابة بكل سهولة أن المر lsيستخدم لعمل
قائمة للملفات فقط } أي أنه ليدمج فى تلك القائمة الملفات الموجودة داخل المجلدات الفرعية {
لليضاح اكتب المر lsمنفردا وأنت على أي مسار فماذا تكون النتيجة ؟ النتيجة هى أنه يعرض
جميع الملفات والمجلدات الموجوده فى المسار الحالى دون عرض الملفات الموجوده داخل
المجلدات الفرعية .
اما المر findيستخدم لعمل قائمة للملفات و المجلدات الفرعية وما تحويه } أي أنه يدمج فى
تلك القائمة الملفات الموجوده داخل المجلدات الفرعية { لليضاح اكتب المر findمنفردا
وأنت على أي مسار فماذا تكون النتيجة ؟ النتيجة هى أنه يعرض جميع الملفات والمجلدات
الموجوده فى المسار الحالى مع عرض الملفات الموجوده داخل المجلدات الفرعية .
ملخص :
استخدم lsعندما ليكون فى المجلد المراد أرشفته مجلدات فرعية .
استخدم findعندما يوجد فى المجلد المراد ارشفته مجلدات فرعية .
-2إذا أردت فك أرشيف اسمه nogaفى مجلد اسمه tamerاكتب ما يلى :
-bالضغط :
#المر : gzip
يستخدم لضغط الملفات كما يستخدم لضغط أي أرشيف من نوع tarفمثل المتداد من نوع
tar.gzهو عبارة عن أرشيف من نوع tarتم ضغطه بواسطة المر . gzip
ملحظات :
-aليتم ضغط المجلد مباشرة وإنما يجب أول أرشفته ومن بعد ذلك يتم ضغطه .
-bبعد ضغط الملف أو الرشيف يتم مسحه أو إزالته .
قبل شرح المر يجب أن تعرف أن مستويات الضغط تتراوح من ) ( 9-1ويمكن تحديد
مستوى الضغط أو تركه . default
-1لضغط ملف اسمه amr-diab.mp3مع وضع الملف المضغوط فى نفس مسار الملف
وتسميته بنفس السم وترك مستوى الضغط defaultاكتب ما يلى :
-2لضغط أرشيف اسمه amr-diabمع وضع الرشيف المضغوط فى نفس مسار الرشيف
وتسميته بنفس السم واختيار أقصى مستوى الضغط ) ( 9اكتب ما يلى :
-3للتأكد من أن الملف المضغوط فى حالة سليمة أم ل استخدم الخيار -tvفمثل إذا كان
لديك أرشيف مضغوط اسمه amr-diab.tar.gzوتريد التأكد من أن ذلك الملف
المضغوط فى حالة سليمة اكتب ما يلى :
-5لفك ملف مضغوط اسمه amr-diab.mp3.gzوذلك فى نفس المسار اكتب ما يلى :
تنبيه:
عند فك الملف المضعوط يتم حذفه تلقائيا والبقاء على الملف المفكوك .
#المحرر : mcedit
هو أسهل محرر نصوص على الطلق لدرجة أنه ليحتاج لى شرح ويتميز بأن الفأرة تعمل
بداخله .
-1اذا اردت عمل ملف نصى اسمه midoوالكتابه بداخله فما عليك ال عمل التى :
-aافتح الترمينال واكتب المر التالى :
ahmed@the-game:~> mcedit
-bاكتب بداخل البرنامج النص الذى تريد ثم اضغط على saveفتظهر لك رساله تخبرك هل
أنت متأكد أنك تريد الحفظ اضغط saveفتظهر لك رساله أخرى تقول لك أدخل اسم الملف
اضغط okثم quitسيتم حفظ الملف فى مجلد البيت الخاص بك .خلص كده مبروك لقد
قمت بعمل أول ملف نصى لك .
للمحرر vimأكثر من 50خيار من خيارات سطر الوامر ويمكنك الرجوع إلى صفحة
manualللطلع عليها ولمعرفة معلومات أكثر عن البرنامج وآخر إصداراته زُر موقع البرنامج
. http://www.vim.org
كما يمكنك من خلل الموقع تنزيل كتاب بصيغة pdfيشرح كيفية التعامل مع البرنامج
والستفاده من مميزاته .تخيل أن حجم هذا الكتاب 572صفحة مما يدل على روعة هذا
البرنامج .
ملحظة :يمكن تشغيل المحرر vimفى وضع يتصرف فيه كالمحررات العادية لكنك ستخسر
الكثير من مزاياه وذلك بكتابة ما يلى :
ahmed@the-game:~> evim
ونأتي الن لشرح كيفية التعامل مع هذا البرنامج بصوره مختصره جدا :
-1إذا أردت عمل أو فتح ملف نصى اسمه file.txtفما عليك إلكتابة ما يلى فى الترمينال :
حيث إن العلمة ~ تدل على السطر كما أنه ظهر فى آخر الشاشة رسالة بها اسم الملف وهو
file.txtوبها كلمة new fileللدللة على أنك أنشأت ملفا جديدا
اضغط على iأو insertللنتقال إلى طور الدخال ) لحظ ظهور كلمة -- INSERT --
أسفل الشاشة ( ثم أدخل النص التالى :
بعد النتهاء من إدخال ذلك النص اضغط على Escللتحول إلى طور الوامر ) لحظ اختفاء
كلمة – INSERT --أسفل الشاشة ( ثم اكتب wq:وذلك للحفظ و إغلق البرنامج .
قبل تعلم خصائص المفاتيح فى طور الدخال يجب التنويه على بعض الساسيات التى قد تكون
بديهية لكثير منا ولكن قد يغفل عنها البعض وهى كالتالى :
-1يجب أن يفصل بين الجملة والجمله نقطة .
-2يجب أن يفصل بين الفقرة والفقرة سطر فارغ أو أكثر .
مفاتيح التعامل مع المحرر vimفى طور الوامر التى تحتاج لمثلة :
-1لحذف الجملة السابقه فى سطر مكون من أكثر من جملة اكتب ( d + shift +مع وضع
المؤشر قبل بداية أول حرف فى الجملة التالية فمثل إذا كان لديك جملتان كالتالى :
my name is ahmed elsayed ahmed ali . this is my last chance . this my last
escape .
-2لحذف جملة سابقه مع إضافة جملة أو كلمة بدل منها اكتب ( c + shift +
ثم اكتب الكلمة أو الجملة التى تريد حيث إنك بعد الحذف قد تحولت لطور الدخال
مع مراعاة وضع المؤشر قبل بداية أول حرف فى الجملة التالية كما سبق وأوضحنا .
-3لنسخ جملة سابقه اكتب ( y + shift +مع مراعاة وضع المؤشر قبل بداية أول حرف فى
الجملة التالية وللصق فى أي مكان اكتب p
-4جميع مافعلناه فى السابق كان خاصا بأي جملة سابقة و لعمله لي جملة تالية غير اتجاه القوس
واجعله هكذا )
-5يمكن تنفيذ أي عملية كالحذف والنسخ والضافه إلى آخره أكثر من مرة وذلك عن طريق
إعطاء رقم لتلك العملية
أمثلة لليضاح :
إذا أردت التحرك ثلثة كلمات للخلف اكتب 3w
إذا أردت نسخ الثلث كلمات التى تلى المؤشر اكتب y3w
-2إذا كنت تكتب داخل النص اسم ملف أو اسم مجلد موجود عندك على الجهاز فى نفس
المكان الموجود به الملف الذى تكتب بداخله اضغط على ctrl + xثم ctrl + fوللتنقل بينهم
إما عن طريق السهم أو بالضغط على ctrl + pو ctrl + n
ملحظة :عند كتابة اسم ملف أو مجلد يمكنك أن ل تكتب أيا من أحرفه و الضغط على ctrl
+ xثم ctrl + fليعرض لك أسماء جميع الملفات و الفولدرات الموجوده فى نفس المسار
الموجود به الملف الذى تكتب بداخله .
-3يمكن إنشاء قاموس أنت تعده بنفسك مسبقا بحيث تكمل منه الكلمات وذلك بالضغط على
ctrl + xثم ctrl + k
#المحرر : pico
هو جزء من رزمة البرمجيات . pineويعد هذا المحرر سهل الستخدام فهو أبسط كثيرا من
المحرر . vimوطريقة استخدامه سهلة فإذا أردت عمل أو فتح ملف اسمه
file.txtاكتب ما يلى :
اما إذا أردت أن تجعل البرنامج تعمل بداخله الفارة استخدم الخيار -mوذلك كالتالى :
وبعد فتح الملف file.txtانقر على أي أمر من الوامر الموجودة أسفل الشاشة للتقدم فى العمل .
لجعل الملف يفتح فى طور القراءة فقط أي ليكون لك الحق فى الكتابة بداخله استخدم الخيار
-vوذلك كما يلى :
إذا أردت أن يقوم المحرر بحفظ أي تغييرات داخل الملف تلقائيا دون الحاجه لتأكيد الحفظ
عند إغلق الملف استخدم الخيار t-وذلك كما يلى :
لجعل شريط المساعدة الموجود بالسفل يختفى استخدم الخيار -xوذلك كما يلى :
من مزايا المحرر picoأنه يقوم بحفظ الملفات آليا فى حالة توقف linuxعن الستجابه وذلك
فى ملف يحمل اسم الملف بامتداد saveفمثل إذا كان الملف اسمه file.txtيكون الملف
المحفوظ أتوماتيكيا اسمه file.save
#المحرر : nano
هو المحرر الفتراضى لديبيان وهذا المحرر مبنى على المحرر picoلذلك فهو يشبهه ولكن مع
الكثير من المزايا .
وموقع هذا المحرر على النترنت هو http://www.nano-editor.orgوآخر إصدارة
منه رقم 2.0.7
ومن الجدير بالذكر أن جميع مفاتيح التعامل مع محرر picoهى نفسها مفاتيح التعامل مع المحرر
. nano
وطريقة استخدامه سهلة كأى محرر نصوص آخر فإذا أردت عمل أو فتح ملف اسمه
file.txtاكتب ما يلى :
اما إذا أردت ان تجعل البرنامج تعمل بداخله الفارة استخدم الخيار -mوذلك كالتالى :
وبعد فتح الملف file.txtانقر على أي أمر من الوامر الموجودة أسفل الشاشة للتقدم فى العمل .
لجعل شريط المساعدة الموجود بالسفل يختفى استخدم الخيار -xوذلك كما يلى :
لجعل الملف يفتح فى طور القراءة فقط أي ليكون لك الحق فى الكتابة بداخله استخدم الخيار
-vوذلك كما يلى :
إذا أردت أن يقوم المحرر بحفظ أي تغييرات داخل الملف تلقائيا دون الحاجة لتأكيد الحفظ
عند إغلق الملف استخدم الخيار t-وذلك كما يلى :
#المحرر : emacs
ويعد هذا المحرر من أقوى محررات النصوص فهو ليس محرر نصوص فحسب وإنما له العديد
من الوظائف وهى كالتالى :
-aمحرر نصوص
-bبيئة برمجة متكاملة
-cصدفة لينكس
-dمفسر للغة lisp
-eمن خلله يمكن إرسال البريد اللكترونى
-fمن خلله يمكن استعراض مواقع النترنت
-gمن خلله يمكن استعراض أخبار use net
-hيقبل وظائف المفكرة dirayوالتقويم calendar
-iيمكنه تشغيل اللعاب !!
-jيستخدم كمساعد للمكفوفين !!
المحفوظه تلقائيا أم ل
-2إنشاء نسخة احتياطية من الملف تقوم أنت بتحريره و عند تسمية النسخة الحتياطية تكون
بنفس اسم الملف متبوعا بالعلمة ~
لعرض أشهر المشكلت التى تواجه مستخدمى البرنامج اضغط ctrl + hثم اضغط p
ملحظة :فى اختصارات برنامج emacsتجد زرا اسمه mأو metaوهذا الزر هو الزر alt
وفى أحيان نادرة جدا يكون الزر . Escأما الحرف cفيعنى . ctrl
ملحظة :كل وظيفه تقوم بها الختصارات السابقة لها اسم طويل وهناك وظائف ليس لها
اختصارات .وللوصول للوظيفة عن طريق اسمها اضغط على alt +xثم اكتب اسم الوظيفة
مع ملحظة أن المحرر emacsهنا يدعم استكمال اسم الوظيفة من خلل الضغط على الزر
tabفمثل وظيفة النتيجة calendarليس لها اختصارات وللولوج إليها اضغط على alt + x
ثم اكتب أول حرفين منها ثم اضغط على الزر tabفسيظهر لك جميع الوظائف التى تبدأ بهذين
الحرفين أما إذا لم يكن هناك إل وظيفة واحدة تبدأ بهذين الحرفين سيكمل اسم الوظيفه على
الفور .
من إمكانيات المحرر emacsالبرمجه بلغة cعن طريق الطور cc-modeكما يمكنك
البرمجه بلغة javaعن طريق الطور java-modeوللدخول لتلك الطوار اضغط على alt +
xثم اكتب اسم الطور أو الوظيفة التى تريد أن يقوم بها المحرر . emacs
ومن وظائف المحرر emacsالخرى النتيجة calendarكماسبق وأوضحنا وفى هذا الطور
يعرض لك الشهر الحالى والسابق واللحق كما يمكنه فى عرض أطوار القمر وعرض التاريخ
الهجرى والتحويل من هجرى إلى ميلدى
فمثل إذا أردت معرفة أول يوم فى رمضان وماذا يوافق من أيام التاريخ الميلدى اتبع ما يلى :
اضغط على alt + xثم اكتب calendarثم اضغط على enterثم اضغط على الزر goto
من tool barالعلوى ومنه اختر islamic dateثم اضغط على enterثم اكتب اسم الشهر
الذى تريد وهنا سوف نكتب } ramadanوإذا لم تكن تعرف اسم الشهر بالضبط اكتب أول
حرف منه فيعرض لك جميع الشهر التى تبدأ بهذا الحرف { ثم اضغط على enterثم أدخل اليوم
الذى تريد معرفة ما يوافقه فى التاريخ الميلدى وهنا سندخل اليوم رقم 1ثم اضغط على enter
فيضع لك المؤشر على بداية أول يوم فى رمضان .
ملحظة :مع دخولك فى أي طور من أطوار البرنامج تجد أن tool barالعلوى يتغير .
ملحظة :ما تم شرحه فى المحرر emacsيعتبر نبذة عنه فمازال به الكثير والكثير من الوظائف
والسرار .
#المحرر : xemacs
يشبه المحرر xemacsالمحرر emacsفكلهما يمكن أن يعمل فى نظام النوافذ
xwindowsوكذلك فى النمط النصى } فى الترمينال { كما أنهما متشابهان أيضا فى طريقة
استخدامهما لكن الختلف هو أن المحرر xemacsصمم ليأخذ شكل أفضل فى البيئة
الرسومية كما أنه يعمل بكفاءة أكثر داخلها .لكن بالرغم من ذلك التشابه الكبير يظل هذان
المحرران منفصلين .
هى برامج مخصصة لتلقى النص الذى أعيد توجيهه عن طريق المعاملت > أو < أو المعامل
النبوبى | بهدف فلترة و تغيير النص ومن أمثلة هذه المحررات المحرر sed
#المحرر : sed
هو أحد أشهر المحررات الدفقية أو التجاهية لتحرير النصوص بطريقة سريعة من سطر الوامر .
استخدامات المحرر : sed
-1يستخدم فى إجراء تعديلت كلية على مستند نصى .
-2يستخدم فى إجراء عدة تعديلت كلية على مستند نصى من . script
وفيما يلى سوف نشرح عدة أمثلة لتوضيح تلك الستخدامات :
-1إجراء تعديلت كلية على مستند نصى
وأردت تحويل كلمة mr.إلى mrs.فى كامل الملف ووضع تلك التغييرات فى ملف جديد
اسمه . lilaاكتب ما يلى :
ملحظة :ليجوز التغيير فى نفس الملف مباشرة أي لبد من إرسال التغييرات إلى ملف جديد
وهذا على حد علمى .
مثال :إذا كان لديك ملف نصى اسمه mandoمحتواه ما يلى :
s/Ahmed/hazem/
s/Elsayed/mohammed/
s/Ahmed/abas/
s/Ali/ismail/
ملحظة :عند كتابة السكربت يجب مراعاة حالة الحرف هل هى capitalام . small
ويحتوى قاموس النظام على آلف الكلمات المدققة إملئيا و المرتبة أبجديا .
وفيما يلى سوف نشرح مثال على استخدام المر ispellلن التجربة خير دليل :
إذا كان لديك ملف نصى اسمه nogaيحتوى على نص مكتوب باللغة النجليزية وتريد
تصحيحه فما عليك إل كتابة المر التالى :
إذا لم يكن بالملف أية أخطاء فإن البرنامج سيعود لسطر الوامر أما إذا عثر المدقق الملئي على
أخطاء فإنه يقوم بعرض أول كلمة مغلوطة فى أعلى الشاشة وبجانبها اسم الملف ويتم عرض الكلمة
المغلوطة ضمن الجملة بالضافة إلى عرض قائمة مرتبة بالكلمات البديلة المقترحة أسفل الجملة
الموجود بها الكلمة الخاطئة .واليك طريقة التعامل مع المدقق الملئي وهى كما يلى :
-aلختيار إحدى الكلمات المقترحة أدخل رقمها الموضح فى القائمة .
-bللموافقة وعدم تصحيح تلك الكلمة اضغط على المفتاح . a
-cلستبدال تلك الكلمة الخاطئة بكلمة أخرى اضغط على المفتاح rوإذا كانت الكلمة البديلة
خاطئة هى الخرى سيعرض لك قائمة بالكلمات المقترحة .
-dلعتبار تلك الكلمة صحيحة وإدراجها داخل القاموس اللغوى للنظام اضغط على المفتاح . I
-eللبحث عن الكلمة الصحيحة داخل القاموس اللغوى للنظام باستعمال العلمة * أو مايعرف
wildcardاضغط على المفتاح Lثم أدخل الحروف الولى من الكلمة التى تريد البحث عنها ثم
اضغط على المفتاح enterواختر مايناسبك .
-fللتنقل بين الكلمات الخاطئة دون تصحيحها السهم العلوى . up arraw
-iلغلق المدقق الملئي اضغط على المفتاح . q
#مقدمة :
القراص الصلبة تقع تحت الدليل /devالذى يحتوى على جميع الجهزة المتصلة بالكمبيوتر مثل
) كارت الشاشة vgaوالماسح الضوئى scannerوبطاقات pciوبطاقات الصوت (.
قبل البدء فى شرح الوامر الخاصة بتقسيم القرص الصلب أو الهارد يجب معرفة الطريقة التى
يسمى بها لينكس محركات القراص الصلبة و كذلك كيفية تسمية أقسام القرص الصلب )
. ( physical partition
ملحظة :التوزيعات القديمة قبل عام 2007وبعض التوزيعات الجديدة مثل slackware
مازالت تعتمد على الطريقة السابقة فى تسمية القراص الصلبة أما أغلب التوزيعات الجديدة الن
تسمى جميع القراص الصلبة sdxسواء كانت ataام sataولتستخدم تسمية . hdx
#المر : fdisk
يستخدم هذا المر لتقسيم الهارد فقط أي ليقوم بتهيئة القرص الصلب وهنا يجب التفرقة بين
التقسيم و التهيئة .
تعرف على برنامج : fdisk
-aلمعرفة القراص الصلبة المتصلة بالكمبيوتر اكتب ما يلى :
والن نأتي لكيفية استخدام المر fdiskفى تقسيم القرص الصلب وسوف نشرح هذا المر بمثال
للتوضيح .
بفرض أن أحد أصدقائك أعطاك قرصا صلبا وطلب منك تقسيمه وكان هذا القرص مكونا من 4
برتشنات منهم برتشن primaryو ثلث برتشنات . logicalفكيف ستتم عملية التقسيم ؟
تتم عملية التقسيم كالتالى :
-1اعرف اسم الهارد الذي ستقوم بتقسيمه وذلك بواسطة الخيار -lكما يلى :
-2ابدأ التقسيم وذلك بكتابة اسم القرص الصلب بعد المر fdiskمباشرة ) بفرض أن القرص
الصلب الذى سيتم تقسيمه ( /dev/sdbكما يلى :
-3قم بمسح جميع البرتشنات الموجوده بفرض أن الهارد مكون من 3برتشنات البرتشن الول
primaryوالبرتشنين الخرين ) logicalوذلك إذا كان الهارد قديما أما إذا كان الهارد
جديدا فلن نلجأ لتلك الخطوه ( وذلك بالضغط على المفتاح dكما يلى :
-4أدخل رقم البرتشن المراد مسحه طبعا سيتم مسح جميع البرتشنات فى هذا المثال وأرقام
البرتشنات هى ) أول برتشن primaryرقم 1و البرتشن الممتد extendedرقم 2و
البرتشنين logicalأرقامهم 5و 6على الترتيب ( بعد إدخال رقم البرتشن اضغط على المفتاح
enterوهكذا يتم مسح جميع البرتشنات .
-6أنشئ البرتشنات الجديدة التى تريد وهنا سوف أنشئ 4برتشنات الول primaryوالباقى
سيتم عمله برتشن ممتد extendedومنه سيتم عمل 3برتشنات . logicalوعملية النشاء
ستتم بالضغط على المفتاح nوذلك كما يلى :
Command action
e extended
)p primary partition (1-4
اضغط على المفتاح pلنشاء برتشن primaryوستجد أنه يسألك عن رقم البرتشن المراد
إنشاؤه وذلك كما يلى :
p
Partition number (1-4):
ادخل الرقم 1لننا سنشئ أول برتشن primaryوستجد أنه يسألك عن بداية البرتشن اضغط
على المفتاح enterليبدأ البرتشن مع البداية الفتراضية وذلك كما يلى :
بعد ذلك يسألك عن نهاية البرتشن ) يعنى من الخر هنا نحدد حجم البرتشن ( ويخبرك أنك
بإمكانك إدخال حجم البرتشن بالكيلو بايت أو بالميجا بيت فمثل إذا كنت ستنشئ البرتشن
بحجم 10جيجا يمكنك وضع الحجم بالميجا كالتالى
+10000M
والن نأتي لنشاء البرتشن الممتد extendedوذلك بالضغط على المفتاح nثم الضغط على
المفتاح eلعمل برتشن ممتد ثم أدخل رقم 2حيث أن البرتشن الممتد هو sda2ثم اضغط
على المفتاح enterمرتين لكى يتم عمل كل المساحة المتبقية برتشن واحد ممتد وذلك كما
يلى :
والن نأتي لنشاء البرتشنات logicalوسأكتفى بشرح بشرح كيفية إنشاء برتشن logical
واحد .
اضغط على المفتاح nثم الضغط على المفتاح lلعمل برتشن logicalثم اضغط على المفتاح
enterليبدأ البرتشن مع البداية الفتراضية وذلك كما يلى :
بعد ذلك يسألك عن نهاية البرتشن ) يعنى من الخر هنا نحدد حجم البرتشن ( ويخبرك أنك
بإمكانك إدخال حجم البرتشن بالكيلو بايت أو بالميجا بيت فمثل إذا كنت ستنشئ البرتشن
جيجا يمكنك وضع الحجم بالميجا كالتالى15 بحجم
+15000M
ليتم حفظ وتفعيل العمليات التىw بعد النتهاء من إنشاء جميع البرتشنات اضغط على المفتاح
. قمت بها
بعد النتهاء من عملية التقسيم يتبقى لنا أمر أخير وهو تحديد نوع البرتشنات لرشاد ويندوز
ولظهار جدول به أنواع البرتشنات المتاحة استخدمt ويتم ذلك عن طريق الخيار. ليس إل
: وذلك كما يلىl الخيار
ونلحظ أن أمام كل نوع برتشن ) رقم أو حرف أو حرف مع رقم ( وهذا هو ماسندخله عند
والن نريد تحديد أنواع البرتشنات الربعة بحيث يكون هناك برتشن. اختيار نوع البرتشن
. swap وبرتشنext3 وبرتشنينvfat
ثم أدخل رقم البرتشن المراد تحديد نوعه وهنا هوenter ثم اضغطt اضغط على المفتاح
f ثم اضغط على المفتاحenter ثم اضغط2 البرتشن رقم
اضغط على المفتاح tثم اضغط enterثم أدخل رقم البرتشن المراد تحديد نوعه وهنا هو
البرتشن رقم 5ثم اضغط enterثم اضغط على المفتاح 83
اضغط على المفتاح tثم اضغط enterثم أدخل رقم البرتشن المراد تحديد نوعه وهنا هو
البرتشن رقم 6ثم اضغط enterثم اضغط على المفتاح 82
اضغط على المفتاح wثم اضغط على المفتاح qوذلك للحفظ و الخروج وذلك كما يلى :
#المر : cfdisk
يستخدم هذا المر لتقسيم الهارد فقط أي ليقوم بتهيئة القرص الصلب تماما مثل المر fdisk
لكنه أسهل من سابقه المر . fdiskوذلك لن له واجهة سهلة ومرتبة تعمل السهم بداخلها
لختيار العملية التى تريد تنفيذها وكل ذلك من داخل الترمينال
كما يتميز ذلك المر بعرض مساحة البرتشنات بالميجا بايت .
وطريقة تشغيل البرنامج سهلة فقط اكتب المر cfdiskوأنت مستخدم جذر وذلك كما يلى :
the-game:/home/ahmed # cfdisk
و العمليات التى يمكن إجراؤها تكون فى الجزء السفلى من البرنامج و يمكن اختيار أي عملية
تريد إجراءها من خلل السهم ) right arrawو ( left arrawويمكن النتقال بين
البرتشنات عن طريق السهم ) up arrawو ( down arrawوطبعا البرنامج سهل جدا ل
يحتاج لشرح
ومن ماسبق يتضح أن المر mkfsيمكنه تهيئة البرتشنات بنظم ملفات كثيره فمثل :
ملحظة :قبل استعمال المر mkfsيجب إلغاء ربط البرتشن المراد تهيئته عن طريق المر
umountفمثل للغاء ضم البرتشن /dev/sda1اكتب ما يلى :
مثال آخر :إذا أردت تهيئة البرتشن /dev/sda5بنظام ملفات fat32ماعليك إل أن تكتب
ما يلى :
نعنى بربط محرك أقراص جديد هو جعل أقسامه أو برتشناته ظاهرة أو مقروءة فى النظام .
ويجب قبل البدء فى عملية الربط معرفة نظام ملفات البرتشن المراد ربطه وكذلك اسمه مثل
sda1أو . sdc7
وربط البرتشنات نوعين :
-1ربط مؤقت :ويتم عن طريق المر mountوعمل نقطة ربط وبمجرد إعادة تشغيل الجهاز
يزول الربط .
-2ربط دائم :ويتم عن طريق إضافة أسطر للملف fstabوعمل نقطة ربط وتتميز
تلك الطريقة بأنها توفر ربطا دائما للبرتشن أي أنك لن تضطر لربط البرتشن بها ال مرة واحدة ولن
يضيع الربط عند إعادة تشغيل الجهاز .
وسواء كان الربط دائما أو مؤقتا يجب عمل نقطة ربط ليتم ربط البرتشن بها .
لكن ماهى نقطة الربط هذه ؟
نقطة الربط هى المكان الذى سيـربط فيه البرتشن وهى عبارة عن مجلد فارغ وتكون عادة نقطة
الربط فى المسار /mntوأحيانا تكون فى . /media
ملحظة :ليمكن ربط أكثر من برتشن فى مجلد واحد أو فى نقطة ربط واحدة بل لبد من
ربط كل برتشن فى مجلد منفصل .ولكن يجوز ربط برتشن واحد فى نقطتى ربط أو
مجلدين على أن ل يكون هذا البرتشن هو برتشن النظام أو . root
-2قم بانشاء نقطة ربط لكل برتشن فى المجلد /mntوسمها بأى اسم عن طريق المر
mkdirوذلك كما يلى :
-3استخدم المر mountلربط البرتشنات فمثل إذا كان لديك برتشن اسمه sda1نظام
ملفاته fat32تريد ربطه فى المجلد movieاكتب ما يلى :
حيث vfatهو نظام ملفات البرتشن sda1المراد ربطه و movieهو نقطة ربط البرتشن
. sda1
مثال آخر :إذا كان لديك برتشن اسمه sda9نظام ملفاته ext3تريد ربطه فى المجلد song
اكتب ما يلى :
حيث /dev/sda1هو اسم البرتشن المراد ربطه و /mnt/win-xpهو مكان الربط و vfat
هو نظام ملفات البرتشن المراد ربطه و
user,users,gid=users,umask=0002,utf8=trueلدعم الينيكود و للسماحيات
و 0 0للغاء عمل فحص للقرص الصلب كل مده .
مثال آخر :إذا كان لديك برتشن اسمه sda9نظام ملفاته ext3و نقطة الربط الخاصة به هى
collection1وتريد ربط هذا البرتشن ربط دائم .فما عليك إل إضافة السطر التالى إلى الملف
: fstab
#المر : df
يستخدم لمعرفة المساحة الخالية و المستخدمة و الكلية لجميع البرتشنات المركبة أو المربوطة .
-1لعرض المساحة الكلية و المستخدمة و الخالية لجميع البرتشنات المربوطة وكذلك نقطة ربط
كل برتشن اكتب ما يلى :
ahmed@the-game:~> df
فتكون النتيجة مثل التالى طبعا النتيجة تكون مختلفة من هارد لخر :
-2لعرض المساحة الكلية و المستخدمة و الخالية لبرتشن معين وليكن sda9اكتب ما يلى :
ahmed@the-game:~> df /dev/sda9
فتكون النتيجة مثل التالى طبعا النتيجة تكون مختلفة من هارد لخر :
-3لعرض المساحة الكلية و المستخدمة و الخالية لجميع البرتشنات المربوطة بحيث يتم عرض
المساحة بصورة مفهومة ) بالجيجا أو بالميجا ( وكذلك نقطة ربط كل برتشن اكتب ما يلى :
ahmed@the-game:~> df -h
فتكون النتيجة مثل التالى طبعا النتيجة تكون مختلفة من هارد لخر :
-4لعرض المساحة الكلية و المستخدمة و الخالية لجميع البرتشنات المربوطة بحيث يتم عرض
المساحة بصورة مفهومة ) بالجيجا أو بالميجا ( لكنه يستخدم 1000بدل من ) 1024أي يعتبر
ahmed@the-game:~> df -H
: فتكون النتيجة مثل التالى طبعا النتيجة تكون مختلفة من هارد لخر
لعرض المساحة الكلية و المستخدمة و الخالية لجميع البرتشنات المربوطة مع عرض نظام ملفات-5
: كل برتشن بجانبه وكذلك نقطة ربط كل برتشن اكتب ما يلى
ahmed@the-game:~> df -T
: فتكون النتيجة مثل التالى طبعا النتيجة تكون مختلفة من هارد لخر
#مقدمة :
المستخدم :هوشخص معرف فى النظام بتعريف وحيد مكون من اسم و رقم بحيث ل يتشابه
أي اثنين من المستخدمين فى التعريف الخاص بهما .
المجموعة :هى تجمع من المستخدمين معرف فى النظام بتعريف وحيد مكون من اسم و رقم
بحيث ل يتشابه أي مجموعتين مع بعضهما فى التعريف الخاص بهما .
ملحظات :
#للمستخدم اسم و رقم فالمستخدم يستعمل اسمه فى التعامل مع النظام و النظام يستعمل رقم
هذا المستخدم UIDفى عملياته أي أن جميع العمليات التى يقوم بها المستخدم تكون بالعتماد
على رقمه فقط فالبرامج و الوامر لتعرف السماء .
#لتغير رقم UIDللمستخدم ولكن يمكنك تغيير اسم المستخدم فقط وذلك لن النظام يربط
ملكية الملفات برقم التعريف UIDوليس باسم الدخول فإذا قمت بتغيير رقم المستخدم
ستتسبب فى فقدان ذلك المستخدم لملكية جميع ملفاته .
#اسم الدخول يجب أن ليحتوى على أحرف عربية وإنما يحتوى على أحرف إنجليزية و أرقام .
#يجب أن ليقل طول كلمة المرور عن ستة أحرف ويسمح فى كلمة السر بالحرف الكابيتال
و السمول و الرقام و العلمات والمسافات .
اخترنا أول التعامل مع المجموعات لنك لن يمكنك إضافة أي مستخدم إل بوجود مجموعة
تضمه .وسنتكلم فى هذا الجزء عن أربعة أشياء ) إنشاء مجموعة – تعديل مجموعة – حذف
مجموعة – الملفات الخاصة بالمجموعات ( .
وتكون النتيجة هى إنشاء مجموعة اسمها Friendsمع إعطائها رقم GIDتسلسلى .
-2إذا أردت إنشاء مجموعة اسمها eraمع اعطائها رقم GIDغير الرقم التسلسلى وليكن 560
اكتب ما يلى :
ملحظة :المجموعات التى أرقامها أقل من 500هى مجموعات خاصة بالنظام أما المجموعات
التى أرقامها أكبر من 500هى مجموعات مستخدمين .
-3إذا أردت إنشاء مجموعة اسمها bombaوجعلها من ضمن مجموعات النظام والتى تأخذ
أرقام GIDأقل من 500اكتب ما يلى :
-4إذا أردت إنشاء مجموعتين لهما نفس رقم GIDاتبع ما يلى :
مثل إذا أردت إنشاء مجموعتين الولى اسمها hhhوالثانيه اسمها hbkبحيث تحمل
المجموعتان نفس رقم GIDوليكن الرقم 800اكتب ما يلى :
-2إذا أردت تعديل رقم مجموعة وإعطائها نفس رقم مجموعة أخرى اتبع ما يلى :
مثل إذا كان لديك مجموعة اسمها eraتحمل رقم 560وكانت لديك مجموعة أخرى اسمها
friendsتحمل الرقم 900وأردت تغيير رقم المجموعة eraلتحمل الرقم 900اكتب ما
يلى :
ملحظة مهمة :تغيير رقم المجموعة أمر خطير لن كل الملفات السابقة للتغيير ستظل محتفظة
برقمها الول مما يعنى وجود ملفات لمجموعة ليست موجودة .
ملحظة :إذا أردت حذف المجموعة الساسية لمستخدم موجود بالفعل على النظام فانه يتم
إلغاء حساب ذلك المستخدم اول ثم بعد ذلك يتم إلغاء مجموعته الساسية .
حيث videoهو اسم المجموعة و xهو الباسورد الخاص بالمجموعة و 33هو رقم GIDالخاص
بالمجموعة و ahmed,conan,remstereoهم المستخدمون المنضمون لمجموعة
. video
-1لعرض جميع القيم الفتراضية التى يعطيها النظام لى مستخدم جديد اكتب ما يلى :
وتكون النتيجة هى إنشاء مستخدم جديد اسمه himaمع جعل جميع قيم ذلك المستخدم
افتراضية .
-3إذا أردت إنشاء مستخدم اسمه jakeمع إعطائه صدفة أخرى غير الفتراضية ولتكن csh
-4إذا أردت إنشاء مستخدم جديد اسمه rockمع وضع معلومات له مثل اسمه الحقيقى و
رقم تليفونه بفرض أن اسم هذا المستخدم الحقيقى هو ahmed elsayedوتليفونه هو 8659
اكتب ما يلى :
-5إذا أردت إنشاء مستخدم جديد اسمه asdمع تغيير المجموعة الفتراضية الساسية التى
ينشئها النظام بمجموعة أخرى شرط ان تكون تلك المجموعة موجوده بالفعل مثل friendsوذلك
كما يلى :
-6إذا أردت إنشاء مستخدم جديد اسمه saidمع ضم ذلك المستخدم لمجموعة ثانوية أخرى
موجوده بالفعل مثل rootبالضافة للمجموعات الفتراضية الساسية اكتب ما يلى :
-7إذا أردت إنشاء مستخدم جديد اسمه Jenniferمع ضم ذلك المستخدم لعدة
مجموعات ثانوية ولتكن cdromو mailو wheelاكتب ما يلى :
-8إذا أردت إنشاء مستخدم جديد اسمه amrوتغيير مجموعته الفتراضية الساسية من
usersإلى hbkبالضافة إلى ضمه إلى مجموعة ثانوية مثل wwwاكتب ما يلى :
ملحظة :لبد من وجود المجموعتين الساسية و الثانوية بالفعل لكى نتمكن من إلحاق
المستخدم بهما و كذلك لبد من أن يكون المستخدم جديدا فى المجموعتين .
-9إذا أردت إنشاء مستخدم جديد اسمه hazemمع تغيير مجلد البيت لذلك المستخدم
إلى /varاكتب ما يلى :
-10إذا أردت إنشاء مستخدم جديد اسمه zizoمع إعطاؤه رقم UIDمعين مثل 865
اكتب ما يلى :
-11إذا أردت إنشاء أكثر من مستخدم بحيث يحملون نفس رقم UIDاستخدم الخيار -o
كما فعلنا فى المجموعات فمثل إذا أردت إنشاء 3مستخدمين الول اسمه azizوالثانى اسمه
nimoوالثالث اسمه kimoبحيث يكون رقم UIDللثلث مستخدمين هو 750اكتب ما
يلى :
-12إذا أردت إنشاء مستخدم جديد مع وضع تاريخ لنهاء حسابه تلقائيا بحيث أنه لن
يتمكن من الدخول بعد هذا التاريخ استخدم الخيار -oويتم وضع التاريخ كالتالى yyyy-
mm-ddحيث ddتمثل اليام و mmتمثل الشهر و yyyyتمثل السنين
وفيما يلى مثال لليضاح .
مثال :إذا أردت إنشاء مستخدم جديد اسمه didoمع وضع التاريخ
2008-10-20لنهاء حسابه اكتب ما يلى :
-13إذا أردت تغيير القيم الفتراضية التى ستنشئ لجميع المستخدمين الجدد على الدوام فانه
سيتوجب عليك استخدام الخيار -Dوبعده ماتريد تغييره .
واليك فيما يلى بعض المثلة التوضيحية :
مثال : 1إذا أردت تغيير مجلد بيت جميع المستخدمين الجدد من المسار /homeإلى
المسار /varاكتب ما يلى :
مثال : 2إذا أردت تغيير صدفة جميع المستخدمين الجدد وجعلها tchبدل من bash
اكتب ما يلى :
-2إذا أردت تعديل صدفة مستخدم اسمه jakeمن cshإلى bashاكتب ما يلى :
-3إذا أردت تعديل بعض معلومات مستخدم اسمه rockفمثل نريد تعديل اسمه الحقيقى
إلى foadو رقم تليفونه إلى 5555اكتب ما يلى :
-4إذا أردت تغيير المجموعة الساسية لمستخدم اسمه asdمن friendsإلى hhhاكتب
ما يلى :
-5إذا أردت تغيير المجموعة الثانوية لمستخدم اسمه saidمن rootإلى hbkاكتب ما
يلى :
-6إذا أردت تغيير مجلد البيت لمستخدم اسمه hazemمن /varإلى /homeاكتب ما
يلى :
-7إذا أردت تغيير رقم UIDلمستخدم اسمه zizoمن 865إلى 555اكتب ما يلى :
-8إذا أردت تغيير تاريخ انتهاء حساب مستخدم اسمه didoمن 20-10-2008إلى
28-8-2008اكتب ما يلى :
-9إذا أردت قفل حساب المستخدم amrبحيث ليستطيع ذلك المستخدم الولوج للنظام
استخدم الخيار -Lمع مراعاة أن حرف L capitalاكتب ما يلى :
ملحظة :عند استخدام الخيار -Lلقفل حساب المستخدم فانه يتم إضافة العلمة ! امام كلمة
سر المستخدم فى الملف . shadow
-10إذا أردت فتح حساب المستخدم amrالذى قمت بقفله سابقا بحيث يتمكن من الولوج
للنظام استخدم الخيار -Uمع مراعاة ان حرف U capitalاكتب ما يلى :
-2إذا أردت حذف مستخدم اسمه fofaمع حذف مجلد البيت الخاص به اكتب ما يلى :
remstereo:x:1002:100:remstereo:/home/remstereo:/bin/bash
فى أول السطر يذكر اسم المستخدم وهو هنا remstereoثم كلمة المرور ويعبر عنها بالرمز x
ثم رقم UIDوهنا هو 1002ثم يذكر رقم GIDللمجموعة الساسية وهنا هو 100ثم يذكر
المعلومات الضافية التى كتبها المستخدم مثل اسمه الحقيقى ورقم تليفونه وهنا نجد أن
المستخدم وضع اسمه الحقيقى بنفس اسم الدخول remstereoثم يذكر مجلد البيت
الخاص بالمستخدم وهنا هو /home/remstereoثم يذكر الصدفة التى يستخدمها
المستخدم للدخول للنظام وهى هنا . /bin/bash
-2الملف : /etc/shadow
ووظيفة هذا الملف حفظ جميع المعلومات الخاصة بالمستخدمين بما فى ذلك المعلومات السريه
للمستخدمين مثل كلمة المرور والفترة التى سيغلق بعدها حساب المستخدم وما إلى ذلك من
معلومات سرية .وهذا الملف غير مسموح للمستخدمين العاديين بقرائته ويتكون ذلك الملف من
تسع خانات أو أعمده ويفصل بين كل خانة وأخرى بعلمة : colonوفيما يلى مثال على أحد
أسطر ذلك الملف
remstereo:2a$05$zn4uZeg:14089:0:99999:7:::
فى أول السطر يذكر اسم المستخدم وهو هنا remstereoثم كلمة المرور وتظهر مشفرة كالتالى
2a$05$zn4uZegثم يذكر آخر مرة تم تغيير فيها كلمة المرور و الرقم الموجود فى تلك الخانة
standardوهنا هو 14089وهذا الرقم standardثم يذكر الوقت الذى ينتظره المستخدم
لكى يستطيع تغيير كلمة المرور ويحسب ذلك الوقت من آخر مرة تم تغيير كلمة المرور فيها وهنا
هذا الرقم هو صفر 0أي أنه لم يحدد ثم يذكر فترة السماح التى بعدها لبد من تغيير كلمة المرور
وهى هنا 99999وهذا الرقم standardوتعنى 99999يوم ثم يذكر عدد اليام الواجب
تغيير كلمة المرور فيها قبل انتهاء حساب المستخدم وهى هنا 7أيام وتعنى أنه إذا كان حساب
المستخدم محدد ب 99999يوم فقبل انتهاء هذه المدة ب 7أيام لبد من تغيير كلمة المرور
ثم يذكر الفترة بين إنهاء حساب المستخدم وبين إغلق الحساب كليا و الفرق بينهما أن إنهاء
حساب المستخدم متعلق بتعامل المستخدم مع النظام أما إغلق الحساب كليا فمتعلق بسياسة
إدارة النظام و هى هنا فارغة .ثم يذكر تاريخ صلحية الحساب account expireوتعنى أن
الحساب سيغلق بعد انتهاء هذه الفترة و هى هنا فارغة أما آخر خانة فتسمى special flagوهذه
خانة غير مستخدمة حاليا و محجوزة للستخدام فى المستقبل .
remstereo:2a$05$zn4uZeg:14089:0:99999:7:::
remstereo:2a$05$zn4uZeg:14089:0:99999:7::14088:
ملحظة :الخانة رقم 7و التى تحدد عدد اليام بين إنهاء حساب المستخدم وبين إغلق
قد تتساءل الن لماذا نحتاج إلى نقل المستخدمين إلى نظام آخر ؟؟ فمثل إذا أردت تنزيل
توزيعة أخرى لى سبب من السباب ففى هذه الحالة ستحتاج لنقل جميع المستخدمين إلى
النظام أو التوزيعة الخرى
ولنقل المستخدمين من نظام لخر يجب العتماد على ملف واحد فى إدارة المجموعات وملف
واحد فى إدارة المستخدمين
بالنسبه للمجموعات يمكن العتماد على الملف /etc/groupدون استخدام الملف
/etc/gshadowوهذا ماتفعله السوزى لنها أساسا لتعتمد على الملف . gshadow
بالنسبه للمستخدمين يمكن العتماد على الملف /etc/passwdدون استخدام الملف
/etc/shadow
the-game:/home/ahmed # grpunconv
ويكون ناتج هذا المر هو تحويل محتويات الملف gshadowإلى الملف groupوبالتالى
سيتم إلغاء الملف gshadowوالعتماد فقط على الملف . group
-2ولرجاع الحال كما كان عليه سابقا أي لرجاع الملف gshadowاكتب المر التالى :
the-game:/home/ahmed # grpconv
the-game:/home/ahmed # pwunconv
ويكون ناتج هذا المر هو تحويل كلمات المرور الموجودة فى الملف shadowإلى الملف
passwdوبالتالى سيتم إلغاء الملف shadowوالعتماد فقط على الملف . passwd
-2ولرجاع الحال كما كان عليه سابقا أي لرجاع الملف shadowاكتب المر التالى :
the-game:/home/ahmed # pwconv
ويكون ناتج المر هو أن الملف shadowقد تمت كتابته ثانية وأيضا كلمات المرور الموجودة
فى الملف passwdقد تحولت إلى الملف . shadow
إذا كان المستخدم مشترك فى أكثر من مجموعة فكيف يستطيع المستخدم التنقل بين تلك
المجموعات ؟ يتم التنقل بين المجموعات باستخدام المر newgrpمتبوعا باسم المجموعة
المراد النتقال إليها .
-1إذا كان لديك مستخدم اسمه amrمشترك فى عدة مجموعات مشترك فى عدة
مجموعات وهى ) friendsو familyو ( engineeringوكانت المجموعة الساسية لذلك
-2إذا أراد المستخدم amrالرجوع إلى المجموعة الساسية التى كان عليها وهى
engineeringاكتب ما يلى :
amr@the-game:/home/ahmed> exit
أو
amr@the-game:/home/ahmed> newgrp
وهنا نجد سؤال يطرح نفسه وهو ما الفائدة من تنقل المستخدم بين المجموعات ؟
الفائده من تنقل المستخدم بين المجموعات ترجع إلى المجموعة نفسها ول تؤثر على المستخدم
نفسه .فعند انتقال المستخدم amrمن مجموعته الساسية engineeringإلى المجموعة
friendsتصبح جميع العمليات ) من إنشاء ملفات ومجلدات ( التى ستتم من خلل
المستخدم amrفى مجموعة friendsمملوكة لمجموعة friendsولن تكون مملوكة
لمجموعة . engineering
التعرف على بياناتك :
يتم التعرف على بياناتك من خلل المرين idو . groups
#المر : id
ووظيفة ذلك المر جلب معلومات عن المستخدمين مثل ) اسم المستخدم و رقمه UIDو
أسماء المجموعات المشترك فيها المستخدم و أرقامها ( GIDوليلزم أن تكون مستخدم جذر
وأنت تستعمل ذلك المر .
ahmed@the-game:~> id
ahmed@the-game:~> id remstereo
-3إذا أردت معرفة رقم GIDللمجموعة الساسية فقط لمستخدم اسمه remstereoاكتب
ما يلى :
ahmed@the-game:~> id -g remstereo
100
-4إذا أردت معرفة أرقام GIDلجميع المجموعة المشترك فيها مستخدم اسمه remstereo
اكتب ما يلى :
ahmed@the-game:~> id -G remstereo
100 16 33
-5إذا أردت معرفة رقم UIDفقط لمستخدم اسمه remstereoاكتب ما يلى :
ahmed@the-game:~> id -u remstereo
1002
#المر : groups
ووظيفة هذا المر إظهار المجموعات المشترك فيها المستخدم فقط وليلزم أن تكون مستخدم
جذر وأنت تستعمل ذلك المر .
-1إذا أردت معرفة المجموعات المشترك أنت فيها اكتب المر groupsمنفردا فمثل إذا أراد
مستخدم على النظام اسمه ahmedمعرفة المجموعات المشترك فيها فليكتب ما يلى :
ahmed@the-game:~> groups
-2إذا أردت معرفة المجموعات المشترك فيها مستخدم اسمه remstereoاكتب ما يلى :
#المر : gpasswd
يستخدم هذا المر لوضع كلمة مرور لمجموعة و لحذف كلمة مرور مجموعة ولغلق مجموعة و
للغاء غلق مجموعة .
قبل البدء فى الشرح قد تتساءل ماهى الفائدة من عمل كلمة مرور للمجموعة ؟
● الفائدة من عمل كلمة مرور لمجموعة معينة هى أنه إذا كان هناك مستخدم غير مشترك
فى تلك المجموعة و أراد الدخول لتلك المجموعة عن طريق المر newgrpفإنه لن
يتمكن من ذلك إل بعد إدخال كلمة المرور وذلك يزيد من المن فى النظام .
ملحظة :جميع المشتركين داخل المجموعة المعمول لها كلمة مرور مسموح لهم طبعا الدخول
والخروج من المجموعة دون كتابة كلمة مرور .
حيث يطلب منك إدخال كلمة المرور الجديدة ثم يطلب منك إعادة إدخال كلمة المرور و
ذلك للتأكيد .
-3إذا أردت غلق مجموعة اسمها ) familyأي لتسمح لى مستخدم من خارج المجموعة
بالدخول إليها ( وذلك سواء كان للمجموعة المراد غلقها كلمة مرور أو ل اكتب ما يلى :
-4إذا أردت إلغاء غلق مجموعة لها كلمة مرور اسمها familyاكتب ما يلى :
-5إذا أردت إلغاء غلق مجموعة ليس لها كلمة مرور اسمها friendsاكتب ما يلى :
#المر : passwd
-1إذا أردت تغيير أو إنشاء كلمة مرور لمستخدم اسمه remstereoاكتب ما يلى :
حيث يطلب منك إدخال كلمة المرور الجديدة ثم يطلب منك إعادة ادخال كلمة المرور و
ذلك للتاكيد .
ملحظة :يمكن للمستخدم العادى تغيير كلمة المرور الخاصة به بنفسه دون اللجوء للمستخدم
الجذر فمثل إذا أراد المستخدم remstereoتغيير كلمة المرور الخاصة به فليكتب المر
التالى :
remstereo@the-game:/home/ahmed> passwd
ونلحظ أنه طلب منك إدخال كلمة المرور الخاصة بالمستخدم remstereoمره أخرى وذلك
للتاكد من أنه من قام باستخدام ذلك المر .
-2إذا أردت وضع كلمة مرور لمجموعة اسمها familyاكتب ما يلى :
حيث يطلب منك إدخال كلمة المرور الجديده ثم يطلب منك إعادة إدخال كلمة المرور و
ذلك للتاكيد .
اكتب بعد علمة colon :اسم الصدفة الجديدة /bin/tcshكما يلى :
و للطلع على جميع الصدفات المتاحة اقرأ الملف /etc/shellsبأى محرر نصوص وأنت
مستخدم جذر .
ملحظة :يمكن للمستخدم العادى تغيير صدفته بنفسه دون اللجوء للمستخدم الجذر فمثل إذا
أراد المستخدم remstereoتغيير صدفته من tcshإلى bashفليكتب المر التالى :
ونلحظ أنه طلب منك ادخال كلمة المرور الخاصة بالمستخدم remstereoمره أخرى وذلك
للتاكد من أنه من قام باستخدام ذلك المر .
-7لجبار مستخدم اسمه remstereoعلى تغيير كلمة المرور الخاصة به فى المره القادمه
لدخوله اكتب ما يلى :
وبالتالى عند دخول المستخدم remstereoالمره القادمه يطلب منه تغيير كلمة المرور الخاصة
به وذلك كما يلى :
ahmed@the-game:~> su remstereo
Password:
Password change requested. Choose a new password.
Old Password:
New Password:
Reenter New Password:
Password changed.
-8إذا أردت تقرير عن حالة كلمة المرور الخاصة بمستخدم معين اسمه remstereoاستخدم
الخيار S- capitalوذلك كما يلى :
ملحظة :يمكن للمستخدم العادى طلب تقرير عن حالة كلمة المرور الخاصة به فالنفرض ان
مستخدم اسمه ahmedاراد معرفة حالة كلمة المرور الخاصة به فليكتب ما يلى :
يبدأ التقرير باسم المستخدم loginوهنا هو remstereoثم يذكر حالة حساب المستخدم
ولها ثلث أنواع ) LKو NPو ( PSحيث :
LKتعنى أن حساب المستخدم مغلق من قبل المستخدم الجذر أي تم غلقه باستخدام المر
-9إذا أردت معرفة حالة جميع كلمات المرور لجميع المستخدمين الموجودين على النظام
اكتب ما يلى :
#التصاريح : permission
مقدمة :
هى سمة من سمات النظمه متعددة المستخدمين حيث يوجد عدد كبير من المستخدمين
يمكنهم الوصول للنظام والعمل عليه .
وهذه السمه تستخدم لتوفير المان لجميع المستخدمين فهى تحافظ على خصوصية
المستخدمين وتحمى ملفاتهم من العبث .
والصلحيات الممنوحة للملفات والمجلدات 3انواع :
readصلحية القراءة
writeصلحية الكتابة
executeصلحية التنفيذ
وتمنح هذه الصلحيات إما فى صوره مفردة أو تمنح فى صورة مركبة .ويتم تحديد
الصلحيات السابقة لثلث جهات وهى ) ( user , group , otherحيث :
: userهو من قام بإنشاء الملف وهو الذى يحدد الصلحيات لنفسه و للمجموعة وللخرين .
: groupوهى المجموعة المشترك فيها المستخدم والمتواجد عليها أثناء إنشاء الملف وهذه
المجموعة تكون مرتبطة بالملف .
: otherوهم باقى مستخدمي النظام غير المشتركين فى مجموعة مالك الملف المرتبطة بالملف .
وكل جهة من الجهات الثلث ) ( user , group , otherيمكن منحها التصاريح الثلثة )
( read , write , executeأي أن الجمالى هو تسعة تصاريح فرعية .
ونلحظ أنه عند إنشاء الملف أو المجلد يتم منحه افتراضيا بعض التصاريح حتى إذا لم يتم تعيينها
له .
ويمكنك عرض التصاريح الممنوحة للملفات و المجلدات باستخدام المر lsمع الخيار -lوذلك
كالتالى :
ahmed@the-game:~> ls -l
total 1675076
drwxrwxrwx 2 ahmed users 6 2008-08-08 23:05 aa
-rwxrwxrwx 1 ahmed users 910 2008-05-31 13:38 antiNetCut-linux.py
ويتم عرض التصاريح فى سلسلة من عشر شرط بحيث تدل أول شرطة على نوع الملف فإذا كان
المعروض ملفا تترك أول شرطة فارغة أما إذا كان المعروض مجلدا فيوضع فى أول شرطة حرف . d
اما التسع شرط الباقية فيكتب بداخلها التصاريح التسعة بحيث تكون أول ثلثة تصاريح خاصة
بالمالك والثلث تصاريح الثانية تخص مجموعة المالك والثلث تصاريح الخيرة تخص
المستخدمين الخرين .ويتم ترتيب التصاريح بحيث يأتى تصريح القراءة أول ثم يليه تصريح
الكتابة ثم يليه تصريح التنفيذ و عند عدم إعطاء تصريح معين تظهر بدل منه شرطة .
ملحظة :عند إنشاء مجلد يكون التصريح الفتراضى للمالك 7وعند إنشاء ملف يكون
التصريح الفتراضى . 6
#بحث حول معانى التصاريح وتأثير التصاريح على العمليات المختلفة :
وقبل معرفة كيفية إعطاء التصاريح يجب عليك معرفة معانى التصاريح ووظائفها وتأثير التصاريح
على بعضها وتأثير التصاريح على العمليات المختلفة التى تجرى على الملفات والمجلدات من
إنشاء ونسخ ونقل وحذف وما إلى ذلك من عمليات .
لذلك قمت بعمل بحث صغير جدا كانت فكرته كالتالى :
-1أنشأت مجلدا مع إعطاء ذلك المجلد جميع التصاريح حتى لنؤثر على تصاريح الملفات
والمجلدات الموجوده بداخله .
-2أنشأت داخل ذلك المجلد 6ملفات و 6مجلدات فرعية .
-3سميت كل ملف ومجلد بالتصريح الممنوح إياه فمثل الملف الممنوح تصريح القراءة فقط
اسمه rوالملف الممنوح تصريح الكتابة فقط اسمه wو الملف الممنوح تصريح التنفيذ فقط اسمه
xوالملف الممنوح تصريح القراءة والكتابة اسمه r+wوهكذا وبالتالى كانت أسماء الملفات
كالتالى :
r , w , x , r+w , r+x , w+x
وكانت أسماء المجلدات كالتالى :
r1 , w1 , x1 , r+w1 , r+x1 , w+x1
-4ثم عملت جدولين لمقارنة التصاريح مع العمليات التى يمكن إجراؤها على الملفات و
المجلدات
اول :تاثير التصاريح على العمليات التى يمكن إجراؤها على المجلدات :
مسح نقل ملف نقل ملف نسخ نسخ إنشاء مسح نقل نسخ فتح التصريح
ملف من من داخل من ملف من ملف من ملف المجلد المجلد المجلد المجلد
داخل خارج المجلد خارج داخل داخل
المجلد المجلد للخارج المجلد المجلد المجلد
لداخله لداخله للخارج
0 0 0 0 0 0 0 0 0 0 r1
0 0 0 0 0 0 0 2 0 0 w1
0 0 0 0 2 0 0 0 0 1 x1
0 0 0 0 0 0 0 2 0 0 r+w1
0 0 0 0 2 0 0 0 2 2 r+x1
2 2 2 2 2 2 2 2 0 1 w+x1
حيث :
0تعنى أن العملية فشلت ) لم تتم (
2تعنى أن العملية قد تمت بنجاح
اما 1فتعنى أنه يمكنك الدخول إلى المجلد باستخدام المر cdفقط وليمكنك عرض ما بداخل
المجلدات أي لن تتمكن من استخدام المر . ls
نتيجة :
التصريح : r
يستخدم لعرض ما بداخل المجلد فقط دون إمكانية فتح المجلد أو الدخول إليه ويتم ذلك من
خلل المر ls
التصريح : x
يستخدم لفتح المجلد أو الدخول إليه فقط دون إمكانية عرض مابداخله ويتم ذلك باستخدام
المر . cd
التصريح : r+x
يستخدم لفتح المجلد مع عرض ما بداخله كما يستخدم لنسخ المجلد من مكان لخر
التصريح : w
يستخدم لنقل المجلد من مكان لخر
التصريح : w+x
يستخدم لمسح المجلد ويستخدم لنشاء ملف داخل المجلد ويستخدم لنسخ ملف من خارج
المجلد لداخله ويستخدم لنقل ملف من خارج المجلد إلى داخله والعكس ويستخدم لمسح
مابداخل المجلد من ملفات و مجلدات فرعية
ثانيا :تأثير التصاريح على العمليات التى يمكن إجراؤها على الملفات :
التعديل على الملف مسح الملف نقل الملف نسخ الملف فتح الملف التصريح
حيث :
0تعنى أن العملية فشلت ) لم تتم (
2تعنى أن العملية قد تمت بنجاح
اما 1تعنى أنه يمكنك التعديل على الملف دون فتحه باستخدام المر :
نتيجة :
التصريح : r
يستخدم لفتح الملف و الطلع على مابداخله من بيانات ويستخدم لنسخ الملف من مكان
لخر
التصريح : w
يستخدم لكى تستطيع الكتابة داخل الملف و التعديل على بياناته
التصريح : r+x
يستخدم لكى تستطيع تنفيذ برنامج أو سكربت أو تسطيب البرامج
ملحظة :نقل الملفات من مكان لخر وحذفها ل يعتمد على التصاريح الممنوحة للملف و إما
يعتمد على التصاريح الممنوحة للمجلد الذى يحوى الملفات
وبذلك قد تكون إن شاء ال قد فهمت الغرض من وراء كل تصريح وتأثير التصريح الممنوح على
العمليات التى تجرى على الملف و المجلد .
ويتحكم فى منح التصاريح صاحب الملف أي من قام بإنشائه وكذلك المستخدم الجذر
#المر : chmod
يستخدم هذا المر لتغيير السماحيات على الملفات والمجلدات ومن خلل ذلك المر يمكن
تغيير السماحيات بالرقام و بالحرف
-2إذا أردت تغيير السماحيات لمجلد بما يحتويه من ملفات و مجلدات فرعية وكان ذلك
المجلد اسمه didoبحيث تمنح المالك ومجموعته جميع الصلحيات ول تمنح الخرين أية
صلحيات اكتب ما يلى :
= لضافة تصريح
-لسحب تصريح
-1إذا كان لديك مجلد اسمه socaوأردت إعطاء مالكه جميع الصلحيات اكتب ما يلى :
-2إذا كان لديك مجلد اسمه socaوأردت إعطاء مجموعة مالكه صلحية القراءة و التنفيذ
اكتب ما يلى :
-3إذا كان لديك مجلد اسمه socaوأردت إعطاء المستخدمين الخرين صلحية القراءة و
التنفيذ اكتب ما يلى :
-4إذا كان لديك مجلد اسمه nogaوأردت إعطاء مالكه و مجموعته و المستخدمين
الخرين صلحية القراءة و التنفيذ اكتب ما يلى :
أو
ahmed@the-game:~> chmod a=rx noga
-5إذا كان لديك مجلد اسمه nogaوأردت سحب صلحية القراءة و التنفيذ من
المستخدمين الخرين اكتب ما يلى :
#المر : chown
يستخدم لتغيير ملكية ملف معين إلى مستخدم جديد و إلى مجموعة جديده أيضا وذلك من
خلل المستخدم الجذر فقط .
-1إذا أردت تغيير ملكية ملف أو مجلد اسمه himaإلى المستخدم amrمع عدم تغيير
المجموعة المالكة لذلك الملف اكتب ما يلى :
-2إذا أردت تغيير ملكية ملف أو مجلد اسمه miroإلى المستخدم conanوتغيير المجموعة
المالكة لذلك الملف إلى المجموعة familyاكتب ما يلى :
ملحظة :ليس شرطا عند تغيير المجموعة المالكة للملف أن يكون صاحب الملف عضوا فى تلك
المجموعة فمثل هنا المستخدم conanليس عضوا فى مجموعة . family
-3إذا أردت تغيير ملكية مجلد بما يحتويه من ملفات و مجلدات فرعية وكان ذلك المجلد
اسمه didoإلى المستخدم amrمع عدم تغيير المجموعة المالكة لذلك الملف اكتب ما يلى :
-4إذا أردت تغيير ملكية مجلد بما يحتويه من ملفات و مجلدات فرعية وكان ذلك المجلد
اسمه didoإلى المستخدم conanوتغيير المجموعة المالكة لذلك المجلد إلى المجموعة
familyاكتب ما يلى :
#المر : chgrp
يستخدم لتغيير المجموعة التى ينتمى إليها ملف أو مجلد معين .
-1إذا أردت تغيير المجموعة التى ينتمى إليها ملف أو مجلد اسمه biboإلى المجموعة
familyاكتب ما يلى :
-2إذا أردت تغيير المجموعة التى ينتمى إليه مجلد بما يحتويه من ملفات و مجلدات فرعية
وكان ذلك المجلد اسمه zizoإلى المجموعة familyاكتب ما يلى :
لنفرض أنك تريد عمل مستخدم اسمه adelكل ما عليك فعله هو اتباع الخطوات التالية :
-1أنشئ المستخدم بواسطة المر useraddوذلك كالتالى :
-2قم بعمل كلمة مرور لذلك المستخدم باستخدام المر passwdوذلك كالتالى :
حيث يطلب منك إدخال كلمة المرور الجديدة ثم يطلب منك إعادة إدخال كلمة المرور و
ذلك للتأكيد .
-4قم بنقل ملكية مجلد بيت المستخدم adelبما يحويه من مجلدات فرعية و ملفات من
المستخدم الجذر rootإلى المستخدم adelوذلك كالتالى :
adel:x:1006:100::/home/adel:/bin/bash
وتأكد من أنه ينتهى ب /bin/bashأي يكون كالسطر السابق فإذا لم يكن كذلك ضع فى
نهايته /bin/bash
#مقدمه :
لكل عمليه تجرى فى النظام عمليه ام تقوم بتشغيل البرنامج الحقيقى .والعمليه الم لجميع العمليات
الخرى هى العمليه initفهى تتحكم بما يحدث عند تشغيل النظام و تتحكم بطريقة عمله .
العمليه initتشكل جزء من النواه حيث انها تقوم بتوليد جميع العمليات الخرى عن طريق
مجموعة قيود موجوده فى الملف /etc/inittabفمثل عند ادخال المر findفى سطر الوامر
فان الصدفه هنا تمثل العمليه الم للمر . find
تتمتع العمليات بجميع صلحيات المستخدم الذى اطلقها فى النظام وهذا المفهوم مهم لن هذا ما
يمنع مستخدم من الكتابه و التعديل على بيانات مستخدم اخر و كذلك يمنع قراءة البريد الخاص
بالمستخدمين الخرين .
&ahmed@the-game:~> xcalc
فتكون النتيجه هى طباعة رقم العمل على الشاشه يليه رقم العمليه processالخاصه بالبرنامج .
الخلفيه ثم اردت لى سبب ما تعليق البرنامج او ايقافه عن العمل اضغط على مفتاحى ctrl+zو
ذلك كما يلى :
ahmed@the-game:~> xcalc
اضغط على ctrl+z
[1]+ Stopped xcalc
فتكون النتيجه هى ايقاف او تعليق برنامج xcalcو طباعة رقم العمل على الشاشه يليه حالة البرنامج
يليه اسم البرنامج .
ahmed@the-game:~> jobs
فتكون النتيجه كالتالى مثل :
[1]- Running & tvtime
[2]+ Stopped xcalc
فتكون النتيجه هى عرض رقم العمل الخاص بالبرنامج ثم عرض حالة البرنامج ثم عرض اسم البرنامج .
ahmed@the-game:~> jobs
[1]+ Stopped xcalc
ahmed@the-game:~> fg 1
فتكون النتيجه هى اعادة البرنامج المعلق او الموقوف الى العمل فى المقدمة .
ahmed@the-game:~> jobs
[1]+ Stopped xcalc
ahmed@the-game:~> bg 1
& [1]+ xcalc
فتكون النتيجه هى عرض رقم العمل و اسم البرنامج و بجانبه المعلمه & ) اى ان البرنامج سوف يعمل
فى الخلفيه ( .
#المر : ps
وظيفة هذا المر عمل تقرير عن العمليات التى تجرى حاليا .
-1اذا اردت عرض قائمه بجميع العمليات التى يملكها المستخدم الحالى اكتب ما يلى :
ahmed@the-game:~> ps
حيث :
PIDيمثل رقم العمليه و هو رقم خاص بكل عمليه فل تتشابه عمليتان فى هذا الرقم .
TTYالمحطه الطرفيه التى تعمل عليها .
TIMEكمية الوقت الذى اخذته العمليه من المعالج او زمن وحدة المعالجه المركزيه .
CMDاسم العمليه ذاتها .
-2اذا اردت عرض قائمه بجميع العمليات التى يملكها المستخدم الحالى مع عرض بعض المعلومات
الضافيه عن تلك العمليات اكتب ما يلى :
ahmed@the-game:~> ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ahmed 8452 0.1 0.4 5008 2364 pts/2 Rs 04:55 0:00 /bin/bash
ahmed 8468 0.0 0.1 2580 992 pts/2 R+ 04:56 0:00 ps u
حيث :
USERهو اسم المستخدم .
CPU%النسبه المئويه التى تستخدمها العمليه من سرعة الجهاز الكليه .
MEM%النسبه المئويه التى تستخدمها العمليه من الذاكره .
STATحالة العمليه ) Rتعنى runningاى قيد التشغيل ( و ) sتعنى sleepingاى نائمه ( و
) Tتعنى stoppedاى متوقفه ( و ) Zتعنى . ( zombie
VSZالمساحه المستخدمه من الذاكره الفتراضيه بالكيلوبايت .
RSSالمساحه المستخدمه من الذاكره الفيزيائيه الرامات بالكيلوبايت .
-3اذا اردت معرفة الرقم الساسى للعمليات ppidاستخدم الخيار -lوذلك كما يلى :
ahmed@the-game:~> ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 R 1000 2635 2575 0 80 0 - 1253 - pts/2 00:00:00 bash
0 R 1000 2644 2635 0 80 0 - 592 - pts/2 00:00:00 ps
-4اذا اردت معرفة جميع العمليات التى تعمل الن فى لينكس اكتب ما يلى :
ahmed@the-game:~> ps -A
-5اذا اردت عرض العمليات على شكل شجره تبين العملية الم والعلقة بين العمليات المختلفة
اكتب ما يلى :
ahmed@the-game:~> ps f
-6اذا اردت عرض جميع العمليات الخاصه التى بدأها المستخدم الحالى اكتب ما يلى :
ahmed@the-game:~> ps -ux
#المر : pstree
يستخدم لعرض جميع العمليات و البرامج الجاري تشغيلها على شكل شجرى جميل جدا
-1اذا اردت عرض جميع العمليات و البرامج الجارى تشغيلها على شكل شجرى اكتب ما يلى :
ahmed@the-game:~> pstree
-2اذا اردت عرض جميع العمليات الخاصة بمستخدم معين اسمه ahmedاكتب ما يلى :
-3اذا اردت عرض جميع العمليات الجارى تشغيلها مع عرض ارقام العمليات pidاستخدم الخيار
-pوذلك كما يلى :
#المر : kill
يستخدم لرسال اشارات الى العمليات ويوجد 64اشارة متاحه و الشارة الفتراضية هى
SIGTERMوتحمل القيمة 15وهذه الشارة يمكنك من خللها انهاء عمل البرنامج و العمليات
غير المرغوب فيها اى حذفها من النظام .
يمكن للمستخدم العادى انهاء البرامج و العمليات التى تعود ملكيتها اليه فقط ول يمكنه انهاء البرامج
و العمليات التى ليملكها بينما يستطيع المستخدم الجذر انهاء اى عملية او برنامج فى النظام .
-1لعرض قائمة بالشارات المتاحة وقيمها استخدم الخيار -lوذلك كما يلى :
اذا لم تنتهى العمليه او البرنامج المراد انصحك بالتحول الى المستخدم الجذر لنهاء ذلك البرنامج لنه
قد يكون ذلك البرنامج او العمليه مملوك للمستخدم الجذر .
السبب فى بقاء بعض العمليات بعد الغاؤها و عند الكشف عليها بالمر psوجد انها تعمل ولكن
برقم pidجديد هو ان هذه العمليه قد تم تشغيلها من قبل برنامج اخر لذلك فان الخيار المثالى هو
انهاء تلك العملية باستخدام رقم العمليه الرئيسى ppidكما سبق واوضحنا .
طبعا يمكنك الحصول على رقم العمليه pidورقم العمليه الساسى ppidمن خلل المر ps
وذلك كما سبق ان اوضحنا .
-3اذا اردت انهاء عدة عمليات معا اكتب ارقام العمليات بعد المر killمع ترك مسافة بين كل
رقم عمليه و الخرى وذلك كما يلى :
-5يمكنك انهاء عمل برنامج بواسطة رقم العمل الخاص به وذلك بوضع علمة %قبل رقم العمل
البرنامج مباشرة فمثل اذا قمت بتشغيل برنامج tvtimeمن الترمينال فى الخلفيه و اردت انهاء
عمله اكتب ما يلى :
وطبعا رقم العمل يمكنك الحصول عليه من خلل المر jobsكما اوضحنا سابقا
#المر : killall
يستخدم لنهاء العمليات و البرامج بواسطة اسمائها .
اذا اردت انهاء برنامج او عملية ما اكتب اسم العمليه بعد المر killallمباشرة فمثل اذا اردت
انهاء برنامج xcalcاكتب ما يلى :
اذا رفض البرنامج او العمليه النتهاء استخدم الخيار -9متبوعا باسم العمليه وذلك كما يلى :
خاتمه :