Professional Documents
Culture Documents
مقدمة لينكس
عبدهللا القحطاني
أهداف االمتحان
1.1تطور اللينكس وأنظمة التشغيل المشهورة
• ملخص األهداف
– معرفة تاريخ اللينكس واليونكس
– فهم أجزاء نظام التشغيل لينكس
– معرفة األنظمة مفتوحة المصدر
– معرفة أين يمكن استخدام اللينكس
عبدهللا القحطاني
تطور اللينكس
عبدهللا القحطاني
ما هو اللينكس ؟
• اللينكس هو نواة النظام ( )Kernelوهي وحدة التحكم
المسؤولة عن كل ما يحدث في الحاسب.
• هناك بعض األدوات المكملة للحصول على نظام تشغيل
متكامل وهي
– الشل ( )Shellوهي الواجهة الكتابية المستخدمة لكتابة األوامر.
– أنظمة اإلدارة (مثل :اضافة المستخدمين)
– التطبيقات (مثل :البريد االلكتروني ،صفحات االنترنت)
– هذه االجزاء مع بعضها تسمى توزيعة لينكس ( Linux
)Distribution
عبدهللا القحطاني
تاريخ اللينكس
• اخترع كمشروع لطالب هاوي في عام 1991من قبل لينوس
تورفالدس عندما كان طالبا في جامعة هلسنكي في فنلندا.
• الناس بدأت تساهم في جعل هذا النظام الجديد يعمل مع
أجهزتهم الشخصية.
• قام مشروع جنو ( )GNUبتقديم مجموعة كبيرة من األدوات
والبرامج لنظام اللينكس
عبدهللا القحطاني
ما هو اليونكس UNIX؟
بدأ اليونكس الذي طور من قبل معامل بيل في عام 1970م •
ثم سمح للجامعات بتطويره.
يعد اليونكس االن عالمة تجارية لألنظمة المفتوحة المصدر. •
لكي يطلق على نظام تشغيل بأنه يونكس البد أن يحصل على •
مصادقة
اللينكس ليس مصادق لذلك هو ليس يونكس ولكن يطلق عليه •
UNIX-like
عبدهللا القحطاني
ما هي وظيفة لينكس ()kernel؟
نواة اللينكس ( )kernelتدير عمليات التطبيق. •
تخصيص جزء من الذاكرة للبرامج واستعادته. •
يدير عملية الوصول الى القرص أو الوصول للمعالج. •
يقوم بتخصيص المكونات المادية ألداء العمليات الخاصة بتطبيق •
ما وعزله عن البقية
يوفر الحماية واألمن ويعزل المستخدمين عن بعضهم البعض. •
يوفر التبديل بين العمليات المختلفة( preemptive •
.) multitasking
عبدهللا القحطاني
مفتوح المصدر
البشر يكتبون البرامج على شكل شفرة تسمى كود المصدر •
Source Code
المترجم Compilerيترجم هذه الشفرة الى لغة اآللة. •
اذا كنا نملك الشفرة فإننا نستطيع عمل التغيرات عليها •
وترجمتها لنرى نتائج التغيير.
مفتوح المصدر تعني اننا نستطيع فحص وتعديل كود •
المصدر
عبدهللا القحطاني
توزيعات اللينكس
تعنى بإنشاء وتخزين وتركيبdistribution • التوزيعة
وتركيب ما تبقى من البرنامج،النواة
Kernel + tools + installation + package •
management = distribution
RedHat RHEL • ريدهات
Fedora, CentOS, Scientific Linux –
Debian • ديبيان
Ubuntu, many appliance based distributions –
عبدهللا القحطاني
لينكس يعمل على
• منصات األجهزة التي يعمل عليها نظام اللينكس
Big Iron (e.g. IBM Power Systems) –
Enterprise servers (Dell, HP, IBM, etc) –
Desktops –
Laptops –
Single board (Raspberry Pi) –
Custom hardware (TiVo) –
Embedded devices/Phones (Android) –
عبدهللا القحطاني
1.3اختيار نظام التشغيل
• ملخص األهداف
– فهم كيفية ادارة دورة حياة توزيعة اللينكس
– دراسة االختالفات بين أنظمة التشغيل
عبدهللا القحطاني
ادارة دورة حياة التوزيعة
عبدهللا القحطاني
نقاط القرار
ماذا سيفعل الجهاز؟ •
ما هي البرامج التي يحتاجها الكمبيوتر ليعمل؟ •
هل تحتاج الى مكونات مادية محددة ام الى نظام تشغيل؟ •
من الذي سيقوم بصيانة الجهاز والنظام؟ •
كم من الوقت يحتاج الجهاز او النظام ليبقى يعمل بكفاءة؟ •
عبدهللا القحطاني
دورة االطالق Release Cycles
• تحديثات البرامج وأنظمة التشغيل تأتي بشكل دوري ويسمى
دورة االطالق Release Cycles
• التحديثات ممكن أن تكون رئيسة majorأو ثانوية minor
• أمثلة على ذلك:
– النسخ الجديدة من Fedoraتصدر كل ستة أشهر.
– التحديثات الثانوية من RHELتصدر كل 12الى 18شهر
– التحديثات الرئيسة من RHELتصدر كل 3الى 6سنوات
عبدهللا القحطاني
دورة الصيانة
Maintenance Cycles
• البرامج عادة تمر بعدة مراحل
– تطوير نشط Actively developed
– اصالح األخطاء فقط Bug fixes only
– تصحيحات األمان فقط Security fixes only
– عدم وجود تحديثات No updates
• هذا ما يسمى بدورة الصيانة Maintenance Cycles
• دورة الصيانة القصيرة تعني أن التحديثات المتكررة مطلوبة
عبدهللا القحطاني
إيجابيات وسلبيات الدورات
Pros and Cons of cycles
اطالق التحديثات بشكل سريع يعني أن أحدث البرمجيات •
ستكون متوفرة بشكل أسرع
يعني أيضا أن تطوير البرنامج سيكون أسرع ليبقى يعمل أو •
سيصبح أقل استقرارا
دورة صيانة أطول تعني االعتماد على مستويات البرامج •
الحالية لفترة أطول
دورة صيانة أطول غالبا تحتاج الى دفع قيمة حزم الدعم •
عبدهللا القحطاني
مصطلحات البرنامج
Software Terms
االصدارات الحديثة تقدم للمستخدم على شكل نسخ beta •
نسخ بيتا betaهي إصدار فيه العديد من المميزات الجديدة •
ولكن لم يتم اختبارها بدقة.
يتم طرحها للمستخدمين ليتم اختبارها واكتشاف عيوبها ومن ثم •
اصالح هذه العيوب.
بعد اصالح العيوب وانتهاء مدة االختبار يتم طرح نسخ محدثة •
تسمى النسخ المستقرة stable
مفهوم التوافق Backward compatibilityيعني مقدرة نظام •
التشغيل الحديث على تشغيل البرامج المصممة لإلصدارات
السابقة
عبدهللا القحطاني
المقارنة بين أنظمة التشغيل
عبدهللا القحطاني
نظام Windows
ينقسم الى نوعين نسخ سطح المكتب desktopونسخ الخادم •
server
دورة االصدار بطيئة ،ودورة الصيانة طويلة •
تركيز عالي على التوافق backward compatibility •
يعمل على واجهة المستخدم الرسومية GUI •
تحسين البرمجة والمقدرة االدارية لكي ينافس اللينكس •
عبدهللا القحطاني
نظام Apple OS X
يعمل النظام على أجهزة ابل Apple HW •
هو نظام تشغيل ألجهزة سطح المكتب •
نسخة الخادم Serverتضيف حزم مساعدة لنسخ Desktop •
والتي تساعد في عملية االدارة ومشاركة الملفات
معتمد من قبل يونكس UNIX certified •
التحديثات الرئيسة يتم اصدارها كل 18الى 24شهر •
عبدهللا القحطاني
Unix انواع تجارية أخرى من
BSD •
OpenBSD –
FreeBSD –
NetBSD –
GNOME •
KDE •
Oracle Solaris •
IBM AIX •
HP-UX •
عبدهللا القحطاني
نظام Linux
• بعد اختيار نظام Linuxالبد من اختيار توزيعة
distribution
• اختالف التوزيعات يعتمد على اختالف الغرض من
االستخدام مثل desktop, server, scientific, network
• بعض التوزيعات تقدم الدعم الفني بمقابل مادي ،والغالبية
يكون الدعم تطوعي.
عبدهللا القحطاني
نظام اندرويد Android
• هو نظام مصمم برعاية جوجل وهو توزيعة لينكس األكثر
شعبية في العالم.
• يستخدم اندرويد ( Dalvikالجهاز الظاهري virtual
)machineمع لينكس ،وتوفر منصة قوية لألجهزة
المحمولة mobile devicesمثل الهواتف phones
واألجهزة اللوحية .tablets
عبدهللا القحطاني
الوحدة الثانية
التطبيقات مفتوحة المصدر والرخص
Open Source Applications and
Licenses
عبدهللا القحطاني
أهداف االمتحان
1.2التطبيقات مفتوحة المصدر الرئيسة
• ملخص األهداف
– فهم سطح المكتب – الخوادم – تطبيقات الجوال
– فهم لغات التطوير وأدوات اإلدارة
عبدهللا القحطاني
أوجه لينكس
عبدهللا القحطاني
أدوار نظام Linux
• برنامج الخوادم Servers Software
– يعالج البيانات نيابة عن األجهزة األخرى
– مثل file servers, web servers, mail servers
• برنامج سطح المكتب Desktop Software
– تسمى ببرامج العمالء وهي أكثر تفاعل وعادة تستخدم الواجهات
الرسومية
• تطبيقات الجوال Mobile Apllications
– نوعين هاتف phoneأو جهاز لوحي tablet
• برامج التطوير Development
– وهي مثل سطح المكتب لكن بسعة أكبر للتطوير
عبدهللا القحطاني
خوادم الويب
Web Servers
• يقدم خدمة صفحات الويب الثابتة للعمالء من خالل
بروتوكول HTTP
• ممكن أيضا أن يخدم المحتوى الديناميكي بإضافة خدمات
– PHPجافا – بيثون – روبي ...الخ
• أشهر خوادم الويب هي Apache and Nginx
– %65من مواقع الويب تستخدم Apache and Nginx
عبدهللا القحطاني
خوادم البريد
Mail Servers
• وكيل نقل البريد )Mail Transfer Agents (MTA
– ينقل البريد االلكتروني بين المواقع
– مثل sendmail, postfix
– يستخدم بروتوكول SMTP
• وكيل تسليم البريد )Mail Delivery Agents (MDA
– يقوم بتخزين البريد اإللكتروني e-mailفي علبة البريد الخاصة
بالمستخدم
– مثل Procmail or custom software
• خوادم IMAP/POP
– تسمح للعميل بالحصول على البريد االلكتروني
– مثل Dovecot, Cyrus
عبدهللا القحطاني
خوادم الملفات
File Servers
• نظام ملفات الشبكة )Network File System (NFS
– وهو بروتوكول مشاركة الملفات األصلي لنظام Unix
• سامبا Samba
– يسمح ألجهزة Unixبأن تحاكي خوادم وعمالء أنظمة الويندوز
Windowsوبالتالي العمل في مجال ويندوز
• مشروع Netatalk
– يسمح ألجهزة Unixبأن تحاكي خادم ملفات ابل
عبدهللا القحطاني
البنية التحتية
Infrastructure
• ISC bind
– وهو خادم نظام أسماء المجال Domain Name System Server
– يقوم بتحويل األسماء الى عناوين
• OpenLDAP
– وهو خادم بروتوكول الوصول الخفيف إلى الدليل ) (LDAPيقوم
بتخزين معلومات المراجع Directories
• ISC DHCP
– يقوم بتهيئة األجهزة ذات العناوين المتغيرة وذلك باستخدام DHCP
عبدهللا القحطاني
قواعد البيانات
Databases
• خادم قاعدة البيانات يخزن المعلومات ويسمح أيضا
باسترجاعها واالستعالم عنها بكل سهولة
• MySQL and PostgreSQLهي أشهر خوادم قواعد
البيانات المترابطة
• SQLهي لغة تستخدم لالستعالم عن البيانات الموجودة في
قواعد البيانات المترابطة
– مثال ;SELECT * FROM users
عبدهللا القحطاني
واجهة سطح المكتب الرسومية
Graphical Desktop
• نافذة Xأو X-Windowsهي الواجهة الرسومية لنظام
لينكس
– يوفر النوافذ واألدوات األولية الرئيسة
– يعرف أيضا باسم X11أو X.org
• مدير النوافذ Window managersهو برنامج يقوم
بإضافة القوائم وإدارة النوافذ (فتح – اغالق – اخفاء) ...الخ
• بيئات سطح المكتب Desktop environmentيوفر
برامج مدراء وأدوات النافذة.
عبدهللا القحطاني
Window Managers
• برنامج مدير النافذة يحتوي على عدة تطبيقات منها
– Compiz, FVWM, Enlightenment, Metacity
• يوفر للنوافذ األساسية امكانية التحرك ،الفتح ،االغالق...الخ
• يقوم بالتبديل بين التطبيقات التي قيد التشغيل
• يمكن المستخدم من اضافة القوائم ونشر التطبيقات
عبدهللا القحطاني
Desktop Environment
• بيئات سطح المكتب المشهورة هي KDE, GNOME, Unity
• بيئة سطح المكتب تتكون من Window manager +
tools
– األدوات األساسية مثل الحاسبة ،األلعاب ،المفكرة
– مدير الملفات File manager
– أدوات سير العمل Workflow toolsمثل اختصارات البرامج
والبحث في الجهاز
عبدهللا القحطاني
التطبيقات االنتاجية والمكتبية
Office/Productivity
• LibreOfficeهو فرع من OpenOffice
• يحتوي على معالج نصوص ،جداول بيانات ،عارض
شرائح ،وأدوات رسم
• متوافق بشكل جيد مع مايكروسوفت اوفيس Microsoft
Officeمن حيث الشكل والتنسيق والمميزات
عبدهللا القحطاني
Web and Email
• جوجل كروم Chromeوفايرفوكس Firefoxهما أشهر
متصفحان مفتوحان المصدر
– هذه المتصفحات تعمل من خالل منصات مشهورة ومتنوعة
وتحظى بدعم وتطوير ممتاز
• Thunderbirdو Evolutionو Kmailهم أشهر عمالء
بريد الكتروني
– جميعها تستخدم بروتوكول POP/IMAPالسترجاع البريد
االلكتروني
عبدهللا القحطاني
أدوات وحدة التحكم
Console tools
هي الطريقة األساسية للتفاعل والعمل مع نظامShell • الشل
التشغيل ومن أنواعه
Bourne shell family –
C shell family –
Other hybrid shells such as ksh and zsh –
Text editors • محررات النصوص
Vi/vim –
Emacs –
Pico/nano –
عبدهللا القحطاني
أدوات التطوير
Development tools
• تصنف لغات البرمجة الى مجموعتين هما الترجمة
Compiledأو التفسير Interpreted
– C, C++, Java are compiled
– PHP, Perl, Ruby, Python are interpreted
• مقايضة انتاجية المبرمج مع موارد الجهاز
• حزم المكتبات المشتركة library bundles common
تستخدم لتقليل حجم الكود الالزم كتابته
عبدهللا القحطاني
رخص البرامج مفتوحة المصدر
عبدهللا القحطاني
أهداف االمتحان
1.3فهم البرامج مفتوحة المصدر وتراخيصها
• ملخص األهداف
– شرح رخص البرامج المتعددة وأوجه االختالف بينها
– معرفة المنظمات العاملة في مجال البرامج مفتوحة المصدر
عبدهللا القحطاني
رخص البرامج
Software Licenses
• مصمم ومنتج البرنامج هو الذي يملك حقوق المؤلف للبرنامج
(الحقوق الفكرية أو حقوق الملكية الفكرية)
• مصمم ومنتج البرنامج يمنح ترخيص البرنامج للناس لكي
يستخدموا البرنامج
• بعض الرخص تسلب الحقوق وبعضها تعطي الحقوق
عبدهللا القحطاني
مؤسسة البرمجيات الحرة
)Free Software Foundation (FSF
بدأت بواسطة Richard Stallmanفي عام 1985م •
أيضا تشغل مشروع جنو GNUالذي يزود كل من نظام •
لينكس وبيئات أنظمة يونكس باألدوات
رخص GPLv2و GPLv3تمكن المستخدم من تعديل •
البرامج وإعادة اصدارها
Copyleftأو الحقوق المتروكة تجبر المستخدم من توفير •
ومشاركة كود المصدر للتغيرات التي تم انجازها
عبدهللا القحطاني
رخصة GPL
GNU Public License
هي رخصة البرمجيات الحرة األكثر شعبية •
االصدارات المعدلة من البرامج التي تستخدم رخصة GPL •
يجب أن تستخدم رخصة GPL
LGPLتسمح بربط المكتبات الغير مجانية برخصة GPL •
GPLv3تمنع ”“Tivoization •
– استخدام أجهزة خاصة يبطل أحكام رخصة GPL
• المطور قد يتحمل بعض الرسوم الرمزية لتغطية تكاليف
التوزيعة
عبدهللا القحطاني
مبادرة المصدر المفتوح
Open Source Initiative
تأسست هذه المبادرة عام 1998م من قبل بروس بيرينز •
Bruce Perensوإريك ريموند )Eric Raymond (ESR
بنود الحقوق المتروكة متساهلة نوعا ما •
OSIال يمنح تراخيص فقط يصادق عليها •
تراخيص FSFمصادق عليها من OSIولكن العكس ليس •
ضروري
عبدهللا القحطاني
تراخيص البرامج الحرة المتساهلة
Permissive Free Software
• رخص OSIتفرض على المطور ان يكون كود المصدر
مفتوح ،وأن يكون قابل للتعديل وقابل العادة التوزيع وأن
يسمح ألي شخص أن يستخدم البرنامج ألي غرض
• رخص BSDو MITتسمح بأن يتم استخدم التوزيعة الجديدة
أو أن تأخذ البرامج المرخصة وإدراجها في منتجات
البرمجيات المغلقة طالما اعطيت اإلسناد الصحيح
عبدهللا القحطاني
FOSS/FLOSS
• FOSSهي برمجيات حرة مفتوحة المصدر Free and
Open Source software
• FLOSSهي البرمجيات المجانية الحرة مفتوحة المصدر
Free/Libre/Open Source Software
عبدهللا القحطاني
البرامج الغير مرخصة
Non software licensing
• الفنون والمواد المكتوبة يمكن ان ترخص أيضا
• الملكية العامة ال تحافظ على قوانين حقوق الملكية الفكرية
• منظمة Creative Commonsتملك العديد من الرخص
لتمكن العامة من استخدام البرامج تحت قيود محددة
عبدهللا القحطاني
Creative Commons
Attributionيجب ابالغ المؤلف •
Attribution ShareAlikeتعتمد على الحقوق المتروكة •
Attribution No-Derivsيمكن اعادة توزيع المحتوى لكن ال •
يمكن تغييره
Attribution NonCommercialال يستخدم في االغراض •
التجارية
يمكن دمج أكثر من رخصة مع بعضها البعض مثل •
Attribution-No-Derivs-NonCommercial
No Rights Reservedملكية عامة •
عبدهللا القحطاني
الحصول على المال من البرامج مفتوحة المصدر
Making money with Open Source
بيع الدعم Supportوالضمان warrantyللبرمجيات •
فرض رسوم على خدمة services •
العمل على الميزات في مقابل المال •
االستشارات •
اعطاء حزمة أجهزة package hardwareأو إضافة •
برامج مغلقة المصدر closed sourceلبيعها جنبا إلى
جنب مع البرمجيات الحرة free software
عبدهللا القحطاني
الوحدة الثالثة
استخدام Linux
عبدهللا القحطاني
أهداف االمتحان
1.4مهارات تكنولوجيا المعلومات واالتصاالت والعمل
مع لينكس
• الحصول على مهارات سطح المكتب
• التعرف على موجه األوامر
• معرفة استخدامات اللينكس في الصناعة ،الحوسبة السحابية،
والتقنية االفتراضية
عبدهللا القحطاني
العمل مع بيئة لينكس
عبدهللا القحطاني
الواجهة الرسومية والغير رسومية
Graphical vs. Non-Graphical
• الواجهة الرسومية يمكن استخدامها لتشغيل الخوادم – لها
نوافذ – ولها قوائم
• الواجهة الغير رسومية هي واجهة نصية فقط وتركز على
الوصول للشل
• يمكن تشغيل أكثر من واجهة غير رسومية ( )Shellsفي
الواجهة الرسومية كل منها له النافذة الخاصة به
عبدهللا القحطاني
عبدهللا القحطاني
عبدهللا القحطاني
الوصول الى موجه األوامر
Getting to a terminal
• الوصول الى موجه األوامر يكون عن طريق xtermأو
terminal
– تمكن المستخدم من اجراء عملية البحث في النظام
– البحث ان مرافق النظام ” “Utilitiesأو قوائم النظام
• يمكن فتح أكثر من محطة terminalللوصول الى سطر
األوامر مع بعضها البعض
• يمكن اجراء عمليات القص واللصق بين التطبيقات المختلفة
• الشل Shellهو وضع غير رسومي
عبدهللا القحطاني
العمل مع اللينكس
Working with Linux
• هناك الكثير من البرامج المتاحة النجاز العمل والقيام به مع
لينكس
– LibreOfficeيوفر معالج نصوص – جداول بيانات – حزم
عارض شرائح والمتوافقة مع تطبيقات مايكروسوفت
– اتصفح مواقع الويب هناك Firefoxو Chromium
– التوزيعة أو بيئة سطح المكتب توفر أدوات للبريد االلكتروني كما
توفر بعض التطبيقات مثل الحاسبة والمفكرة
عبدهللا القحطاني
أساسيات األمان في لينكس
عبدهللا القحطاني
البقاء آمن
Keeping Safe
• المحفوظات او ملفات تعريف االرتباط Cookiesهي رموز
صغيرة ترسل من قبل خادم الويب تخزن بالجهاز ومن ثم
يقوم متصفحك بإرسالها إلى الموقع األصلي مع كل طلب
• ملفات تعريف االرتباط هي أكبر منتهكي الخصوصية
– يستطيع المستخدم تعطيل ملفات تعريف االرتباط تماما
– أو يستطيع القضاء عليها في نهاية الجلسة
– تعطيل المحفوظات او ملفات تعريف االرتباط Cookiesمن
طرف ثالث
عبدهللا القحطاني
كلمات المرور
Passwords
• استخدم كلمات مرور فريدة وقوية في كل البرامج والمواقع
• برنامج مثل KeePassXيحفظ كلمات المرور الخاصة
بالمستخدم لذلك ال يحتاج لتذكرها ألكثر من مرة
• كلمات المرور القوية تكون عشوائية
– مكونة من 10خانات أو أكثر
– خليط بين الحروف الكبيرة والصغيرة
– تحتوي على رموز
عبدهللا القحطاني
حماية جهاز الحاسب
Protecting your computer
• استخدام جدار الحماية firewall
– استخدام السياسة االفتراضية default policyيكون فعال جدا
وهي ”“deny incoming; allow outgoing
– Iptablesهي مدمجة في نظام جدار الحماية لينكس
• مواكبة التحديثات
– التوزيعة يجب أن تكون قادرة على البحث عن التطويرات وتثبيتها
– التحديثات تصلح مشاكل األمان
– تحقق دائما من الجهاز أو اجعل الجهاز يقوم بذلك عنك
عبدهللا القحطاني
الوحدة الرابعة
مهارات سطر األوامر
Command Line Skills
عبدهللا القحطاني
هدف االمتحان
2.1أساسيات استخدام سطر أوامر لينكس
• ملخص األهداف
– فهم أساسيات الشل Shell
– فهم طريقة تنسيق األوامر والخيارات
– معرفة تأثيرات استخدام المتغيرات – أحرف – Globعالمات
االقتباس على األوامر
عبدهللا القحطاني
سطر األوامر أو الشل الرئيسي
عبدهللا القحطاني
واجهة سطر األوامر
The Command Line Interface
• واجهة نصية
• الوصول لها من خالل المحطة Terminal
– GUI-based terminals
– Virtual terminals
• األوامر تمرر الى الشل
• موجه الشل أو المحث
– ]Shell prompt [sysadmin@localhost:~$
عبدهللا القحطاني
مواصفات الشل
Shell Features
األمر – historyالمقدرة على استرجاع األوامر السابقة •
بشكل سريع
– Scriptingانشاء برنامج بواسطة وضع أوامر الشل في •
ملف لكي يتم تنفيذه
أمر – Aliasيستخدم لخلق اختصارات لألوامر الطويلة •
المتغيرات – تخزن المعلومات التي يمكن استخدامها لتعديل •
عمل الشل أو األوامر
عبدهللا القحطاني
فهم بناء األوامر
عبدهللا القحطاني
تصميم األوامر
Command format
• الشكل الرئيسي
– ]command [options] [arguments
• الخيارات Optionsتغير سلوك وتنفيذ األمر
• Argumentsتستخدم لتوفير معلومات اضافية لألمر مثل
اسم الملف أو اسم المستخدم
– مثال ls /etc/ppp
عبدهللا القحطاني
خيارات األمر
Command options
• تختلف بناء على األوامر
• الطريقة القديمة لكتابة الخيار optionهي –a
– يمكن جمع الخيارات مع بعضها
• Can be combined: -abc = -a -b -c
• الشكل الجديد لكتابة الخيارات المصمم من قبل GNUهو
– --all
عبدهللا القحطاني
األمر History
Command History
لعرض األوامر السابقة نستخدم األمر history •
السترجاع األوامر السابقة نستخدم ↑ up arrow •
←left arrow لتعديل أوامر سابقة نستخدم •
→ right arrow
لتنفيذ األمر السابق من جديد نستخدم األمر >!<num •
عبدهللا القحطاني
األمر History
• بعض األمثلة االضافية على االمر history
المعنى المثال
يعرض اخر خمس أوامر من قائمة
history 5
األوامر
ينفذ آخر أمر مرة أخرى !!
ينفذ األمر الخامس من األسفل في
!-5
قائمة األوامر
ينفذ آخر أمر من أوامر ls !ls
عبدهللا القحطاني
المتغيرات
Variables
عبدهللا القحطاني
متغيرات الشل
Shell Variables
• تستخدم لتخزين معلومات النظام
• الستعراض قيمة المتغيرات نستخدم األمر echo
– echo $HISTSIZE
• لتعديل القيم HISTSIZE = 500
• هذا التغيير مؤقت
• للحصول على تغيير دائم يجب عمل التغيير داخل ملف
~/.bashrc
عبدهللا القحطاني
المتغير PATH
PATH Variable
• يستخدم هذا المتغير للعثور على اماكن األوامر التي تنفذ منها
• إذا تم تثبيت برامج مخصصة على النظام الخاص بك ،قد
تحتاج إلى تعديل PATHلتسهيل تنفيذ هذه األوامر
• على سبيل المثال:
عبدهللا القحطاني
األمر Export
export Command
• يوجد نوعان من المتغيرات في الباش شل BASH Shellهما
– متغيرات محلية Local
– متغيرات بيئية environment
• المتغيرات البيئية مثل PATHو HOMEتستخدم عندما
يرغب BASHبمقاطعة تنفيذ األوامر وتنفيذ بعض المهام
• المتغيرات المحلية تستخدم عادة من قبل المستخدم ألداء
بعض المهام وعادة تكتب بالحروف الصغيرة
عبدهللا القحطاني
• لصنع متغير محلي نقوم بما يلي
‘– sysadmin@localhost:~$ variable1='Something
• لعرض قيمة المتغير المحلي نقوم بالتالي
– sysadmin@localhost:~$ echo $variable1 Something
• لعرض المتغيرات البيئية نستخدم األمر env
• لتحويل المتغير المحلي الى متغير بيئي نستخدم األمر export
• يمكن استخدام األمر exportأيضا لصنع متغير بيئي جديد مثل
'– sysadmin@localhost:~$ export variable2='Else
عبدهللا القحطاني
which أمر
which Command
يقوم بالبحث عن المكان الذي توجد به األوامرwhich • أمر
PATH وذلك عن طريق البحث في المتغير
– sysadmin@localhost:~$ which date
/bin/date
– sysadmin@localhost:~$ which cal
/usr/bin/cal
عبدهللا القحطاني
type أمر
للحصول على معلومات عن األوامرtype • يستخدم األمر
– sysadmin@localhost:~$ type which
which is hashed (/usr/bin/which)
أوBASH • يستخدم أيضا لتحديد األوامر التي تم بناؤها داخل
في شل آخر
– sysadmin@localhost:~$ type echo
echo is a shell builtin
عبدهللا القحطاني
Aliases
• تستخدم لعمل اختصارات لألوامر الطويلة
• لعرض األوامر المختصرة نستخدم األمر alias
• إلنشاء وصناعة أمر مختصر نستخدم الصيغة التالية
– alias name=command
• االختصار الذي تم انشاؤه هو تغيير مؤقت
• ليكون تغيير دائم يتم انشاء أمر aliasداخل ملف
~/.bashrc
عبدهللا القحطاني
يمكن ان نحصل على مسارtype – لألمرa • بإضافة الخيار
األمر
– sysadmin@localhost:~$ type -a echo
echo is a shell builtin
echo is /bin/echo
aliases • يستخدم أيضا لتحديد أوامر التي عمل لها
– sysadmin@localhost:~$ type ll
ll is aliased to `ls -alF'
– sysadmin@localhost:~$ type ls
ls is aliased to `ls --color=auto'
عبدهللا القحطاني
هيكلية األوامر االضافية
عبدهللا القحطاني
Globbing
• تستخدم أحرف Globلمطابقة مجموعة من الملفات موجودة
في نفس الدليل
• * يستخدم لمطابقة صفر أو أكثر من األحرف في اسم الملف
*– sysadmin@localhost:~$ echo /etc/t
/etc/terminfo /etc/timezone
• ? تستخدم لتطابق تماما حرف واحد.
???????– sysadmin@localhost:~$ echo /etc/t
/etc/terminfo /etc/timezone
عبدهللا القحطاني
• ] [ تستخدم لمطابقة قائمة أو مجموعة من الحروف بشكل
تام
– sysadmin@localhost:~$ echo /etc/[gu]*
/etc/gai.conf /etc/groff /etc/group /etc/group-
/etc/gshadow /etc/gshadow- /etc/ucf.conf
/etc/udev /etc/ufw /etc/update-motd.d
/etc/updatedb.conf
• ! تستخدم مع األقواس الستثناء عرض الملفات التي بعدها
– echo [!DP]*
عبدهللا القحطاني
التنصيص
Quoting
• “ ” Double quotesتستخدم لتعطيل معنى بعض
الحروف مثل أحرف Glob
• ‘ ’ Single quotesتستخدم لتعطيل معنى كل الحروف
– يمكن استخدام \ لتعطيل الحروف التي تليها فقط
• ` Backquotesتستخدم للسماح لألمر بان ينفذ ضمن سطر
أمر آخر
`– sysadmin@localhost:~$ echo Today is `date
Today is Mon Nov 2 03:40:04 UTC 2015
عبدهللا القحطاني
جمل التحكم
Control Statements
• الفاصلة المنقوطة ; تستخدم لفصل األوامر عن بعضها
البعض في سطر األوامر
• األحرف && تستخدم لتنفيذ األمر الثاني اذا تم تنفيذ األمر
األول بنجاح
• الحرف || تستخدم لتنفيذ األمر الثاني اذا لم يتم تنفيذ األمر
األول ولكن اذا نفذ األمر األول بنجاح فان األمر الثاني ال
ينفذ
عبدهللا القحطاني
الوحدة الخامسة
الحصول على المساعدة
Getting Help
عبدهللا القحطاني
هدف االمتحان
2.2استخدام سطر األوامر للحصول على المساعدة
• ملخص األهداف
– االستفادة من أمر manوأمر infoللحصول على مزيد من
المعلومات
عبدهللا القحطاني
man مقدمة ألمر
عبدهللا القحطاني
صفحات man
man pages
الممارسة تصنع الكمال! • صفحات الدليل manعادة
متوفرة لكل من األوامر مثلما يتم التدرب على األوامر فإن
التدرب على قراءة صفحات الدليل والعمليات والملفات
manيساعد المتدرب ليصبح
مستخدم ذو مقدرة عالية
متوفرة • صفحات man
على النظام المحلي
عبدهللا القحطاني
عرض صفحات man
Viewing man pages
• لعرض صفحات manأوال يجب الدخول على المحطة أو
الشل ثم كتابة man commandأو man file
عبدهللا القحطاني
التحكم في اظهار صفحات man
Controlling the man page display
• صفحات manسوف يتم اظهارها من قبل برنامج pagerسواء كان
النوع lessأو النوع ( moreعادة يكون ) less
• كال النوعين يستخدم hلعرض المساعدة ،المسافة للتقدم لألمام / ،لبدأ
البحث و qللخروج من الصفحة
• أوامر التحرك الخاصة بالنوع less
األمر الوظيفة األمر الوظيفة
الذهاب الى بداية
)Return (or Enter التحرك سطر لألسفل 1G
الصفحة
الذهاب الى نهاية
Space التحرك صفحة الى األسفل G
الصفحة
/ البحث h عرض صفحة المساعدة
الخروج من صفحة
n ايجاد عنصر البحث القادم q
man
عبدهللا القحطاني
أقسام صفحات الدليل man
Man page sections
• لكلمة أقسام sectionsمعنيان مهمان في صفحات man
– كل صفحة manتوزع تحت عناوين أقسام مختلفة مثل NAME,
SYNOPSIS and DESCRIPTION.
– كل صفحة manيتم تصنيفها الى تصنيف معين ومحدد مثل
• أوامر المستخدم user commands
• أشكال الملفات file formats
• ادارة النظام system administration
عبدهللا القحطاني
األقسام المشتركة لصفحات الدليل man
Common sections of a man page
الغرض Section name اسم القسم
يوضح اسم األمر ووصف مختصر جدا له NAME االسم
يشرح كيف سيتم تنفيذ األمر SYNOPSIS الصيغة أو الموجز
يوفر معلومات تفصيلية عن األمر DESCRIPTION الوصف
يسرد خيارات األمر مع وصف لطريقة استخدامها OPTIONS الخيارات
يسرد قائمة الملفات التي لها عالقة باألمر ويعرض وصف FILES الملفات
لكل ملف مثل ملفات التهيئة لهذا األمر
يعرض اسم الشخص الذي قام بإنشاء هذه الصفحة من دليل AUTHOR المؤلف
manوكيف يتم التواصل معه
REPORTING BUGSيوفر الطريقة لتقديم التقرير عن األخطاء التي تواجه مستخدم تقرير األخطاء
األمر
يوفر المعلومات الرئيسة لحقوق الملكية COPYRIGHT حقوق الملكية
يوفر المراجع والمعلومات االضافية عن هذا األمر SEE ALSO أنظر أيضا
عبدهللا القحطاني
Man pages SYNOPSIS
الصيغة أو الموجز SYNOPSISهو أحد أهم األقسام في •
صفحة دليل man
SYNOPSISيوفر وصف موجز لطريقة استخدام األمر •
األقواس المربعة مثل ] [andتستخدم لإلشارة الى عناصر •
مختارة
الشريط العامودي )|( يشير الى أو or •
عالمة ( )...تشير الى واحد أو أكثر •
عبدهللا القحطاني
البحث في صفحات الدليل man
Searching within a man page
لبدأ البحث في صفحة الدليل manنستخدم الرمز / •
نتبعها بالكلمة التي نريد البحث عنها •
نضغط enterلعرض أول كلمة مطابقة •
نضغط الحرف nلالنتقال للكلمة المطابقة التي تليها •
نضغط الحرف Nلالنتقال للكلمة المطابقة السابقة •
عبدهللا القحطاني
األقسام واألقسام
عبدهللا القحطاني
لألقسامman تصنيف صفحات
man Pages Categorized by Sections
أصناف رئيسة وهي9 هناك. تصنف الى أصناف محددةman • صفحات
التصنيف الرقم
Executable programs or shell commands برامج قابلة للتنفيذ أو أوامر الشل 1
System calls (functions provided by the kernel) )استدعاءات النظام (وظائف النواة 2
Library calls (functions within program libraries) )استدعاءات المكتبة )وظائف مكتبة البرامج 3
Special files (usually found in /dev) )/dev ملفات خاصة (عادة توجد في 4
File formats and conventions, e.g. /etc/passwd /etc/passwd صيغ واتفاقيات الملف كمثال 5
Games األلعاب 6
Miscellaneous (including macro packages and
متفرقات 7
conventions), e.g. man(7), groff(7)
System administration commands (usually only
أوامر إدارة النظام 8
for root)
Kernel routines [Non standard] )روتين النواة (غير القياسية 9
عبدهللا القحطاني
تحديد أي قسم
Determining which section
• رقم القسم في الدليل يكون موجود بين قوسين بجانب األمر
عند استعراض صفحة دليل man
عبدهللا القحطاني
البحث عن األقسام
Searching the sections
• للحصول على صفحات الدليل manالتي يكون لها نفس
االسم نستخدم الخيار –fمع أمر man
• األمر whatisمشابه لألمر man –f
عبدهللا القحطاني
Searching man pages by keyword
• أمر manيملك الخيار –kالذي يمكنه من استخدام الكلمات
الرئيسة كمصادر للبحث
• تنفيذ األمر ) man –k (keywordسوف يبحث في
كل أقسام الوصف descriptionsالخاصة بصفحات الدليل
manعن الكلمات الرئيسة المطلوبة
• األمر aproposمشابه لألمر man –k
عبدهللا القحطاني
تحديد القسم
Specifying a section
• اذا كان األمر أو الملف موجود في أكثر من قسم من أقسام
دليل manفإنه من الضروري تحديد قسم الدليل الصحيح
لعرض األمر أو الملف المناسب
• كمثال passwd ،موجود في القسم رقم 1والقسم رقم 5
لعرض كال صفحات الدليل manالخاصة بكلمة passwd
نستخدم األوامر التالية
– man 1 passwd
– man 5 passwd
عبدهللا القحطاني
استخدام األمر info
عبدهللا القحطاني
األمر info
• األمر infoيوفر الوثائق الخاصة باألوامر والملفات مثل
األمر man
• وثائق infoمنظمة داخل مستويات مختلفة ،كل واحدة منها
قد تحتوي على واحدة أو أكثر من أصغر وحدة تنظيمية
والتي تسمى node
• األمر infoسيقوم بعرض صفحات الدليل manعندما ال
توجد صفحات المعلومات info
عبدهللا القحطاني
Displaying info documentation for a
command
الخاصة بأمر ما نستخدم األمرinfo • لعرض وثائق
info command –
عبدهللا القحطاني
Moving around while viewing an info
document
• الجدول التالي يشرح أكثر المفاتيح استخداما للتنقل خالل
وثائق info
الوظيفة األمر الوظيفة األمر
االنتقال الى الرابط التشعبي التالي TAB Down arrowاالنتقال لألسفل سطر واحد
عبدهللا القحطاني
استكشاف وثائق info
Exploring info documentation
• على عكس صفحات الدليل manالتي أحيانا ليس من السهل
قراءتها ،صفحات المعلومات infoصممت للقراءة من قبل
عامة الناس
• يعتبر تنفيذ األمر infoهو المدخل لتصفح وثائق info
المتاحة
• األمر pinfoهو نسخة مطورة وملونة وسهلة االستخدام
من األمر info
عبدهللا القحطاني
الحصول على مساعدة اضافية
عبدهللا القحطاني
مصادر اضافية للمساعدة
Additional sources of help
• خيار GNUالقياسي للوثائق هو --helpوالذي يستخدم
لعرض استخدامات األمر األساسية والتي تشبه صفحات
الدليل man
• البرنامج عادة يأتي مع حزم وثائق اضافية والتي يمكن ايجاده
داخل المراجع
– /usr/doc
– /usr/share/doc
• هذه المراجع الفرعية عادة تحتوي على ملفات قراءة
READMEووثائق اضافية اخرى
عبدهللا القحطاني
ايجاد الوثائق واألوامر
Finding commands and documentation
• األمر whereisيستخدم لعرض موقع األوامر القابلة
للتنفيذ باإلضافة الى مصادرها ووثائقها اذا كانت موجودة
عبدهللا القحطاني
ايجاد أي ملف أو مرجع
Find any file or directory
• األمر locateله المقدرة على ايجاد أي ملف طالما
المستخدم يملك االذن والصالحية للوصول الى المراجع التي
تحويها وذلك بالبحث في قاعدة البيانات عن أسماء الملفات
في النظام
• يتم جدولة األمر updatedbليقوم بتحديث قاعدة بيانات
المحددة يوميا ،ولكن مدير النظام rootهو الذي يقوم بتنفيذ
األمر updatedbمباشرة ليقوم بتحديث قاعدة البيانات
المحددة
عبدهللا القحطاني
األمر locate
The locate command
• األمر locateسوف يطابق أي جزأ من اسم الملف لذلك
األمر locate readmeممكن ان يطابق الملف
المسمى abcreadme123
• الخيار –bمع األمر locateيمكن من البحث عن
basename
– locate -b readme
• الخيار –cيوفر عدد الملفات التي تم مطابقتها
– locate -c readme
عبدهللا القحطاني
الوحدة السادسة
العمل مع الملفات واألدلة
Working with Files and Directories
عبدهللا القحطاني
هدف االمتحان
2.3استخدام األدلة وسرد الملفات
• ملخص األهداف
– فهم الملفات واألدلة الظاهرة والمخفية
– الدليل الرئيسي
– استخدام المسارات المطلقة والنسبية بشكل صحيح
عبدهللا القحطاني
فهم األدلة
Understanding Directories
عبدهللا القحطاني
الملفات واألدلة
Files and Directories
الملفات تحتوي على البيانات (نصية – رسومية ...الخ) •
األدلة تخزن أسماء الملفات •
الدليل األعلى مستوى هو )AKA, root directory( / •
مثال على هيكلية األدلة •
عبدهللا القحطاني
مسار الدليل
Directory path
• هو االتجاهات الى دليل أو ملف
محدد
• المسارات المطلقة absolute
هي االتجاهات التي تنطلق من
الدليل /
• المسارات النسبية relative
هي االتجاهات التي تنطلق من
الدليل الحالي
عبدهللا القحطاني
الدليل الرئيسي
The home directory
• كل مستخدم يملك دليل رئيسي home directory
• الدليل /home/bobهو الدليل الرئيسي لمستخدم اسمه
bob
• تم وضع الدليل الرئيسي لتخزين ملفات المستخدم الخاصة به
• عادة ال يمكن للمستخدمين الوصول إلى الدليل الرئيسي
الخاص بالمستخدمين اآلخرين
• الحرف ~ يرمز للدليل الرئيسي
عبدهللا القحطاني
الدليل الحالي
The current directory
• هو الدليل الذي يكون مؤشر الشل Shellموجود فيه حاليا
• ممكن ان يتم عرض الدليل الحالي باألمر pwd
• يظهر الدليل الحالي أيضا في المحث الخاص بالشل Shell
عبدهللا القحطاني
تغيير األدلة
Changing directories
تغيير األدلة تعني االنتقال من دليل الى آخر •
نستخدم األمر cdلتغيير األدلة •
بدون argumentsيقوم األمر cdبنقل المستخدم الى •
الدليل الرئيسي الخاص به
يرمز للدليل الرئيسي الخاص بالمستخدم bobبالرمز •
~bob
عبدهللا القحطاني
المسارات المطلقة والنسبية
Absolute vs relative pathnames
• المسارات المطلقة absoluteتوفر االتجاهات من الدليل
)root (/
• المسارات النسبية relativeدائما توفر االتجاهات من الدليل
الحالي current directory
• للتراجع إلى دليل واحد أعلى من الدليل الحالي نستخدم الرمز
..مع األمر cd
– cd ..
• للتراجع إلى دليل الحالي نستخدم الرمز .مع األمر cd
– cd .
عبدهللا القحطاني
التعامل مع الملفات
Manipulating Files
عبدهللا القحطاني
هدف االمتحان
2.4انشاء ،نقل ،وحذف الملفات
• ملخص األهداف
– الحساسية لحالة األحرف
– تبسيط أحرف globوعالمات التنصيص
عبدهللا القحطاني
استعراض الملفات داخل األدلة
Listing files in a directory
• لعرض الملفات نستخدم األمر ls
• هناك عدة أنواع من الملفات وهي
الوصف النوع
هو الملف الذي ليس ملف من نوع خاص plain file ملف عادي
هو الذي يحتوي على ملفات Directory ملف دليل
هو الذي يمكن تشغيله كبرنامج executable ملف تنفيذي
هو الذي يقوم بالتأشير لملف آخر symbolic link ملف ربط
عبدهللا القحطاني
نسخ الملفات
Copying files
• يستخدم األمر cpلنسخ الملفات
– ]cp [options] [source] [destination
الغرض الخيار
عبدهللا القحطاني
انشاء الملفات
Creating files
• محررات النصوص ممكن استخدامها النشاء الملفات
• يستخدم األمر touchإلنشاء الملفات الفارغة
• األمر touchأيضا يقوم بتحديث وقت التعديل للمفات
عبدهللا القحطاني
حذف الملفات
Removing files
• األمر rmيستخدم لحذف الملفات
• حذف الملفات يكون بشكل دائم
• يستخدم الخيار –iلتجنب حذف الملفات عرضيا عند
استخدام احرف globs
• لحذف األدلة نستخدم احدى الطرق التالية
– استخدام الخيار –rمع األمر rm
– استخدام األمر rmdir
عبدهللا القحطاني
نقل الملفات
Moving files
• يستخدم األمر mvلنقل الملفات
– ]mv [options] [source] [destination
• يستخدم األمر mvأيضا إلعادة تسمية الملفات
الغرض الخيار
يستخدم لعرض مراحل النقل -v
يستخدم لالستبدال السريع للملفات -i
لتجنب استبدال الملفات overwrites -n
عبدهللا القحطاني
انشاء األدلة
Making directories
• إلنشاء األدلة نستخدم األمر mkdir
عبدهللا القحطاني
الوحدة السابعة
األرشفة والضغط
Archiving and Compression
عبدهللا القحطاني
هدف االمتحان
3.1أرشفة الملفات في سطر األوامر
• ملخص األهداف
– استخدام الضغط واألرشفة مع الملفات واألدلة
عبدهللا القحطاني
األرشفة والضغط
عبدهللا القحطاني
األرشفة ضد الضغط
Archiving vs. Compression
• األرشفة هي دمج عدة ملفات في ملف واحد
– ملفات قليلة أو عدة أدلة
عبدهللا القحطاني
استخدامات األرشفة والضغط
Uses of Archiving and Compression
• ادارة ملفات السجل log files
• مشاركة مجموعة من الملفات
– وثائق المشروع
– كود المصدر
• ضغط الملفات مفيد لجعل نقلها أكثر كفاءة
– أقل بيانات يتم ارسالها عبر االنترنت أو الشبكة
• يحافظ على ملفات تم تجميعها معا خالل وقت من الزمن
– النسخ االحتياطي
عبدهللا القحطاني
أنواع الضغط
Lossless vs Lossy Compression
Lossy Lossless
الملف المضغوط هو نفس • الملف المضغوط قد يفقد •
معلومات موجودة في الملف الملف األصلي
األصلي ال يضغط البيانات مثل lossy •
يستخدم للبيانات المراد الحفاظ • يحذف المعلومات ”الغي مهمة“ •
من الملف لكي يضغط بشكل عليها
أفضل السجالت – الوثائق – الملفات •
• الصور – الصوت – الفيديو الثنائية – ملفات التهيئة
عبدهللا القحطاني
gzip vs bzip2
bzip2 gzip
أمران bzip2و bunzip2 • هناك أمران gzipو • gunzip
Burrows- يستخدم • • يستخدم ترميز Lempel-Ziv
Wheeler block sorting • نوووع ضووغط البيانووات Lossless
نوع ضغط البيانات Lossless • ذو كفاءة عالية
أكثر كفاءة من gzipبقليل ولكن
يتطلب المزيد من CPU
يستخدم بشكل مطابق لألمر •
gzip
عبدهللا القحطاني
استخدام gzip/gunzip/bzip2/bunzip2
المعنى األمر
ازالة الملف fooوإنشاء الملف المضغوط foo.gz gzip foo
ازالة الملف المضغوط foo.gzوإنشاء الملف العادي foo gunzip foo.gz
عرض االحصائيات عن foo.gz gunzip –l foo.gz
المعنى األمر
ازالة الملف fooوإنشاء الملف المضغوط foo.bz2 bzip2 foo
ازالة الملف المضغوط foo.bz2وإنشاء الملف العادي foo bunzip2 foo.gz
غير موجود bunzip2 –l foo.gz
عبدهللا القحطاني
Tape Archive - TAR
عبدهللا القحطاني
الوحدة الثامنة
أوامر الوصل – Pipesاعادة التوجيه -
REGEX
Pipes, Redirection and REGEX
عبدهللا القحطاني
هدف االمتحان
3.2البحث واستخراج البيانات من الملفات
• ملخص األهداف
– اعادة التوجيه ووصل البيانات Piping
– التعرف على واجهة نظام التشغيل يونكس المحمولة الجزئية
Partial POSIX
عبدهللا القحطاني
سطر األوامر وإعادة التوجيه
عبدهللا القحطاني
وصل سطر األوامر
Command Line Pipes
• الحرف Pipeالذي له الرمز ( | ) يمكن أن يستخدم بين
أمرين وذلك إلرسال مخرجات األمر األول لتكون مدخالت
لألمر الثاني
– ls /etc | head
• مخرجات األمر ls /etcترسل لملف head
كمدخالت
عبدهللا القحطاني
سلسة وصل سطر األوامر
Command Line Pipelines
• أوامر متعددة يمكن أن تدمج مع بعضها لتشكل سلسلة وصل .ترتيب
األوامر المضافة إلى سلسلة الوصل يمكن أن يؤثر على المخرجات
عبدهللا القحطاني
اعادة توجيه المدخالت والمخرجات
I/O Redirection
• هناك ثالث قنوات من اعادة توجيه المدخالت والمخرجات
مرتبطة مع كل األوامر
– المدخل القياسي ) Standard Input (STDINوهو عادة يُوفر من
قبل المستخدم من خالل لوحة المفاتيح
– المخرج القياسي ) Standard Output (STDOUTوهو الناتج
الذي تم الحصول عليه عند تنفيذ األمر بشكل صحيح
• يظهر STDOUTعادة في نفس النافذة التي يتم تنفيذ األمر فيها
– الخطأ القياسي ) Standard Error (STERRوهو الناتج الذي تم
الحصول عليه عند تنفيذ األمر بشكل خاطئ
• يظهر STERRعادة في نفس النافذة التي يتم تنفيذ األمر فيها
عبدهللا القحطاني
رموز اعادة توجيه المدخالت والمخرجات
I/O Redirection Symbols
bash shell رموز اعادة التوجيه الممكنة مع
Example Description الوصف
< /path/to/file Redirect STDIN from file من الملفSTDIN اعادة توجيه
> /path/to/file Redirect STDOUT overwriting file للكتابةSTDOUT إعادة توجيه
فوق ملف
>> /path/to/file Redirect STDOUT appending file إللحاقهSTDOUT إعادة توجيه
بالملف
2> /path/to/file Redirect STDERR overwriting file للكتابة فوقSTDERR إعادة توجيه
ملف
2>> /path/to/file Redirect STDERR appending file إللحاقهSTDERR إعادة توجيه
بالملف
&> /path/to/file Redirect STDERR and STDOUT وSTDOUT إعادة توجيه
overwriting file للكتابة فوق ملفSTDERR
&>> /path/to/file Redirect STDERR and STDOUT وSTDOUT إعادة توجيه
appending file إللحاقه بالملفSTDERR
عبدهللا القحطاني
ملف جهاز العدم
The null device
• ملف جهاز العدم يُمثَّل عادة بالملف ( /dev/nullيسمى
أيضا ”)“Bit Bucket
• هذا الملف مفيد جدا في إعادة توجيه المخرجات والمدخالت
• هذا الملف يستخدم لغرضين هما
– أي مخرجات يعاد توجيهها الى الملف /dev/nullيتم
تجاهلها
– الملف /dev/nullيمكن أن يستخدم في عملية االدخال ليوفر
سلسلة من القيم الفارغة
عبدهللا القحطاني
STDIN, STDOUT, and STDERR
عبدهللا القحطاني
STDIN or 0
المدخل القياسي ( )STDINيقدم عادة من خالل لوحة المفاتيح •
ولكن يمكن إعادة توجيهه مع الرمز >
STDINيمكن أن يُقرأ بواسطة بعض البرامج للحصول على •
البيانات الخاصة به ومعالجتها
إلعالم البرنامج الذي نرغب ايقافه عن توفير البيانات بواسطة •
لوحة المفاتيح خالل STDINنكتب CTRL-D
األمر trيقرأ البيانات من STDINويترجمها من مجموعة •
حروف الى مجموعة اخرى
إلنهاء عملية طباعة البيانات -اذا استخدم األمر trمن قبل •
المستخدم لترجمة البيانات المكتوبة -نستخدم األمر CTRL-D
عبدهللا القحطاني
STDINمن لوحة المفاتيح
STDIN from keyboard
• في المثال التالي ،األمر trيقوم بتحويل أو ترجمة
الحروف الصغيرة إلى حروف كبيرة بعد أن يقوم المستخدم
بكتابة األمر والضغط على Enter
• ثم يقوم المستخدم بكتابة ” "alphaوالضغط على Enter
وأخيرا يقوم المستخدم بالضغط على CTRL-Dلإلنهاء
عبدهللا القحطاني
اعادة توجيه STDINمن ملف
Redirecting STDIN from file
• األمر trيقوم بتحويل أو ترجمة الحروف الصغيرة إلى
حروف كبيرة مع اعادة توجيه STDINمن الملف
/etc/hosts
عبدهللا القحطاني
STDOUT or 1
المخرجات القياسية ) (STDOUTهو مخرجات األمر عندما •
ينفذ بشكل صحيح
ويظهر STDOUTعادة في نفس النافذة التي يتم تنفيذ األمر •
فيها
يستخدم األمر echoلطباعة رسائل الى STDOUT •
يمكن أن يستخدم ليشرح كيف يمكن اعادة توجيه STDOUT •
كما سيأتي في الشرائح القادمة
عبدهللا القحطاني
اعادة توجيه STDOUT
Redirecting STDOUT
• في المثال التالي ،األمر echo Linux 1ينفذ والمخرجات
تظهر على STDOUT
• ومن ثم األمر echo Linux 1 > a.txtيقوم بإعادة
توجيه المخرجات الى الملف a.txt
• ثم يقوم األمر cat a.txtبإرسال محتويات الملف الى
STDOUTلذلك يتم عرض المخرجات
عبدهللا القحطاني
Appending STDOUT redirection
• استخدام سهم واحد < إلعادة التوجيه STDOUTسوف يقوم
بالكتابة على الملف المحدد وإلغاءه
• استخدام األسهم الثنائية << إلعادة التوجيه STDOUTسوف
يؤدي الى إنشاء ملف جديد أو يسمح باإلضافة في الملف الحالي
عبدهللا القحطاني
STDERR or 2
• ) Standard Error (STDERRهي مخرجات األمر بعد أن
ينفذ بشكل خاطئ
• وترسل عادة الى وحدة التحكم (المحطة) حيث يتم تنفيذ األمر
• األمر ls /fakeيؤدي الى حدوث خطأ في المخرجات
ترسل الى STDERRألن الملف /fakeغير موجود
عبدهللا القحطاني
اعادة التوجيه STDERR
Redirecting STDERR
• األمر ls /fake 2> /tmp/err.msgيؤدي
الى حدوث خطأ سيتم ارساله الى STDERRالذي يقوم بإعادة
تحويله الى الملف /tmp/err.msg
• األمر cat /tmp/err.msgيرسل محتوى الملف
الى STDOUTليقوم بعرض الملف
عبدهللا القحطاني
التخلص من STDERR
Disposing of STDERR
• األمر ls /fake 2> /dev/nullالذي يسبب
STDERRسوف يعاد توجيهه الى الملف /dev/null
للتخلص من تأثير رسالة الخطأ
• الحظ أن األمر cat /dev/nullيعرض ملف فارغ
عبدهللا القحطاني
العمل مع STDERRو STDOUT
Working with STDERR and STDOUT
findهو األمر الذي يستخدم للبحث عن ملفات النظام •
يقوم بإرسال المخرجات الى STDOUTعندما تكون •
صحيحة
يقوم بإرسال المخرجات الى STDERRعندما تكون خاطئة •
يستخدم األمر findليشرح كيف يمكن اعادة توجيه كل •
من STDOUTو STDERRكما سيأتي في الشرائح القادمة
تفاصيل أكثر عن األمر findسيتم شرحها في هذه الوحدة •
عبدهللا القحطاني
STDERR and STDOUT Example
• المثال التالي يوضح كيف يقوم األمر findبالبحث بشكل عكسي
في الدليل /etc/pkiعن أي ملف يطابق ”"*.crt
• هناك سطران من رسائل STDERRوسطران من رسائل
STDOUTتظهر في المثال التالي
عبدهللا القحطاني
عزل STDERR
Isolating STDERR
• في المثال التالي مخرجات STDOUTسوف يعاد توجيهها
الى الملف /dev/nullوبذلك مخرجات STDERR
لوحدها هي من سترسل الى نافذة المحطة
عبدهللا القحطاني
Isolating STDOUT
• في المثال التالي مخرجات STDERRسوف يعاد توجيهها
الى الملف /dev/nullوبذلك مخرجات STDOUT
لوحدها هي من سترسل الى نافذة المحطة
عبدهللا القحطاني
Redirecting Multiple Streams
Separately
• في المثال التالي مخرجات STDERRسيعاد توجيهها الى
الملف crt.errبينما مخرجات STDOUTسيعاد توجيهها
الى الملف crt.txt
عبدهللا القحطاني
Redirecting Multiple Streams
Combined
• في هذا المثال كال STDOUTو STDERRسوف يعاد
توجيههم الى نفس الملف crt.all
عبدهللا القحطاني
األمر find
find Command
عبدهللا القحطاني
البحث باستخدام األمر find
Searching with find command
• نظام الملفات يملك مئات األدلة تحوي بداخلها آالف الملفات
مما يجعل البحث عنها تحدي كبير
• األمر findهو أداة قوية قادرة على البحث في الملفات
بطرق مختلفة من ضمنها:
– االسم name
– الحجم size
– التاريخ date
– المالك ownership
عبدهللا القحطاني
صيغة األمر find
Syntax of find command
• األمر findله البناء التالي
– ]find [start_dir] [search_op] [criteria] [result
• اذا لم يتم تحديد دليل البدء ] [start_dirفإنه سيتم تحديد
الدليل الحالي كدليل البدء
• تستخدم خيارات البحث ] [search_opلتحديد كيف يمكن
للبحث أن يتم .مثل استخدام خيار االسم –nameللبحث
باستخدام االسم
عبدهللا القحطاني
)Syntax of find command (cont'd
• معايير البحث ) (criteriaهي البيانات المستخدمة مع
خيارات البحث .اذا كان خيار البحث هو االسم –nameفإن
المعيار سيكون اسم الملف الذي سيتم البحث عنه
• سيكون خيار النتيجة ) (resultاالفتراضي هو -print
حيث سيتم استخراج اسماء الملفات التي تم العثور عليها.
خيارات النتيجة األخرى ممكن أن تطبق العمليات على
الملفات التي تم العثور عليها
عبدهللا القحطاني
البحث باستخدام اسم الملف
Searching by file name
• بالنظر في األمر التالي
– ”find /etc/pki -name "*.crt
• نجد أن األمر سيبدأ البحث في الدليل /etc/pkiبشكل عكسي
• مخرجات البحث هي أي ملف اسمه يطابق المعيار ”"*.crt
(أي ملف ينتهي اسمه بكلمة ).crt
عبدهللا القحطاني
عرض تفاصيل الملف
Displaying file detail
– سوف يوفر مخرجات تشابه مخرجات األمرls • الخيار
ls –l
inode, blocks used, :• أعمدة المخرجات هي
permissions, link count, user owner, group
owner, size, date/time, file name.
عبدهللا القحطاني
البحث بحجم الملف
Searching by file size
الخيار –sizeيمكن استخدامه بواسطة األمر findللبحث عن •
الملفات بواسطة حجمها
الملفات الكبيرة يمكن تعيينها حجمها بالوحدات ...K,M,Gالخ •
استخدام +1Mيعني أن حجم الملف أكثر من واحد ميجابايت •
استخدام -1Mيعني أن حجم الملف أقل من واحد ميجابايت •
عبدهللا القحطاني
خيارات مفيدة مع أمر find
Useful options for find command
الخيار مثال المعنى
-maxdepth -maxdepth 1 البحث فقط في األدلة المحددة واألدلة المتفرعة
منها بشكل مباشر
-group -group البحث عن أي ملف مملوك لمجموعة معينة
payroll
-iname -iname hosts البحث عن الملفات باالسم بدون النظر لحالة
األحرف
-mmin -mmin -10 البحث عن الملفات التي تم التعديل عليها آخر
10دقائق أو أقل
-type -type f البحث عن الملفات االعتيادية
-user -user bob البحث عن الملفات التي يملكها المستخدم bob
عبدهللا القحطاني
األمر less
less Command
عبدهللا القحطاني
عرض الملفات مع أمر less
Viewing files with less command
• األمر lessهو أمر استدعاء pagerصمم ليعرض صفحة
واحدة فقط من البيانات في المرة الواحدة
• األمر moreهو أمر استدعاء pagerأيضا ولكنه يحمل
خصائص أقل من خصائص األمر less
• كال األمرين يسمح للمستخدم للرجوع للخلف والتقدم لألمام
مع أوامر التحرك الستعراض صفحة واحدة في المرة
الواحدة
عبدهللا القحطاني
شاشة المساعدة في less
The help screen in less
• بمجرد الدخول في برنامج lessيستطيع المستخدم عرض شاشة
المساعدة helpبالضغط على مفتاح ”“h
عبدهللا القحطاني
أوامر الحركة في less
less movement commands
• كما في شاشة المساعدة األمر lessله عدد من أوامر الحركة
وهي
المفتاح الحركة
Spacebar شاشة لألمام
b شاشة للخلف
Enter سطر لألمام
q خروج
h مساعدة
عبدهللا القحطاني
أمر البحث في less
less searching commands
• للبحث في شاشة less
– نكتب الرمز /بحيث يبدأ من المؤشر الى نهاية الملف
– نكتب الرمز ? بحيث يبدأ من المؤشر الى بداية الملف
– سجل الكلمة المراد البحث عنها ثم اضغط Enter
– اذا وجدت أكثر من عنصر مطابق فإننا نستخدم الحرف n
لالنتقال الى التالي بينما نستخدم الحرف Nلالنتقال الى
السابق
عبدهللا القحطاني
head or tail
عبدهللا القحطاني
التصفية باستخدام أمر head
Filtering with head
• أمر headيعرض افتراضيا أول 10أسطر من الملف
• الخيار –nيمكن المستخدم من عرض عدد األسطر التي
يرغب في استعراضها من األعلى
عبدهللا القحطاني
أمر headمع القيم السالبة
head with negative lines
• عادة أمر headيعرض األسطر المحددة من أعلى الملف
• استخدام الخيار –nمع القيم السالبة يحدد كم عدد األسطر
التي لن تعرض من أسفل الملف
• المثال التالي يعرض كل أسطر الملف /etc/passwd
ما عدا آخر 32سطر
عبدهللا القحطاني
التصفية باستخدام أمر tail
Filtering with tail
• أمر tailيعرض افتراضيا آخر 10أسطر من الملف
• الخيار –nيمكن المستخدم من عرض عدد األسطر التي
يرغب في استعراضها من األسفل
عبدهللا القحطاني
أمر tailمع القيم الموجبة
tail with positive lines
• اذا كان الخيار –nحدد عدد األسطر المراد عرضها مع
الزائدة +فإن األمر tailسيقوم بعرض أسطر الملف بداية
من السطر المحدد الى نهاية الملف
عبدهللا القحطاني
Following with tail
• األمر tailلديه المقدرة على مراقبة التغيرات التي تحدث في الملف
كما يستطيع طباعتها كما حدثت باستخدام الخيار –f
• مدراء النظام وبشكل دوري يتابعون ملفات السجل من أجل اكتشاف
مشاكل النظام
• المستخدم يجب أن يخرج من األمر tailعندما يكون متبوعا بالخيار
–fوذلك باستخدام CTRL-C
عبدهللا القحطاني
أمر sort
sort Command
عبدهللا القحطاني
ترتيب الملفات أو المدخالت
Sorting files or input
األمر sortيقوم بإعادة ترتيب أسطر المخرجات بناء على •
حقل واحد أو عدة حقول قام المستخدم بتحديدها
الحقول يمكن فصلها بواسطة الفراغ على الرغم من أن •
استخدام الخيار –tالذي يمكنك من تخصيص محدد
الترتيب االفتراضي هو الترتيب التصاعدي لكن يمكن •
استخدام الخيار –rلعكس الفرز أو الترتيب للحقل
الترتيب االفتراضي هو ترتيب األدلة لكن يمكن استخدام •
الخيار –nلجعل الفرز أو الترتيب من النوع الرقمي
عبدهللا القحطاني
مثال على الفرز
Example of sort
• في المثال التالي الملف /etc/passwdسوف يفرز
باستخدام :حرف كمحدد حسب الحقل الرابع عدديا ثم الحقل
الثالث عدديا في االتجاه المعاكس:
عبدهللا القحطاني
احصائيات الملف
File Statistics
عبدهللا القحطاني
احصائيات الملف مع األمر wc
File statistics with wc command
يستخدم األمر wcللحصول على ثالث احصائيات لكل •
ملف تم عمل االحصاءات عليه ()argument
افتراضيا ،األمر wcيعرض األسطر ،الكلمات والبايت •
الواردة في كل ملف
اذا كان هناك أكثر من ملف فإن األمر wcيقوم بحساب •
مجموع كل الملفات
لعرض احصاءات فردية يحدد الخيار -lلألسطر أو •
الخيار -wللكلمات أو الخيار -cللبايت
عبدهللا القحطاني
مثال على األمر wc
Example of wc command
• لتحليل عدد األسطر والكلمات والبايت في الملف
/etc/passwdوالملف /etc/passwd-
نستخدم األمر wcبالطريقة التالية
عبدهللا القحطاني
Using wc with pipes
• األمر wcعادة يستخدم مع pipesلذلك مخرجات األمر
يمكن أن تحلل
• استخدام األمر wc –lفي نهاية pipeسوف يقوم بعد كم
عدد أسطر المخرجات التي تم الحصول عليها
• كمثال ،لتحديد كم عدد الملفات واألدلة في الدليل /etc
نستطيع تنفيذ األمر ls /etc | wc -l
عبدهللا القحطاني
أمر cut
cut Command
عبدهللا القحطاني
التصفية مع أمر cut
Filtering with cut command
• اذا كان المستخدم يرغب في استخراج عمود من النص فإن
األمر cutيوفر طريقتين بسيطتين هما
– بواسطة المحدد ،حيث يكون الفراغ هو المحدد االفتراضي .الخيار
–dيمكن المستخدم من اختيار محددات أخرى كما أن الخيار –f
يساعد في اختيار الحقل المراد استخراجه
– بواسطة موضع الحرف ،الخيار –cيستخدم مع مجال من
األعمدة لكي بتم استخراجها
عبدهللا القحطاني
مثال على أمر cut
Example of cut command
• ُحدد الملف /etc/passwdبواسطة النقطتان colon
مع الحقول التالية
account:password:UID:GID:GECOS:directory:shell
• الستخراج الحقل 1باإلضافة الى المجال من الحقل 5الى الحقل 7
cut –d: -f1,5-7 /etc/passwd
عبدهللا القحطاني
أمر grep
grep Command
عبدهللا القحطاني
التصفية مع األمر grep
Filtering with grep command
• األمر grepيستخدم لتصفية المدخالت القياسية أو لتصفية
محتويات الملف لألسطر المطابقة لنمط محدد
• اذا كنت ترغب في رؤية أين يظهر النمط أو كلمة واحدة في
ملف ما فإن األمر grepهو وسيلة مفيدة لتحقيق ذلك
الغرض
عبدهللا القحطاني
الخيارات الشائعة ألمر grep
Common grep options
الخيار الغرض
--color Color the matches found تلوين العناصر المتطابقة الموجودة
-v Reverse (negate) matches عكس (السلبي) التطابق
-c Count matches عدد العناصر المتطابقة
-n Number matching lines عدد األسطر المتطابقة
-l List matching files سرد الملفات المتطابقة
-i Match case insensitive مطابقة لحالة األحرف الحساسة
-w Match pattern as a word مطابقة النمط ككلمة
عبدهللا القحطاني
التعابير االعتيادية الرئيسة
عبدهللا القحطاني
التعابير االعتيادية الرئيسة
Basic Regular Expressions
• التعابير االعتيادية الرئيسة ( )BREيمكن أن تستخدم مع أمر
grepبدون أن تتطلب استخدام أي خيار (بعكس التعبير
االعتيادي الموسع ())ERE
• أبسط التعابير االعتيادية هي فقط الحروف األبجدية أو
الرقمية التي تطابق نفسها
• الرمز \ backslashيمكن استخدامه للتخلص من معنى
حروف التعبير االعتيادي بما في ذلك الرمز \ backslash
نفسه
عبدهللا القحطاني
BRE: the . example
• الحرف )period( .يطابق بالضبط حرف واحد فقط
• المثال باألسفل يوضح استخدام أمر grepلمطابقة الحرف
’ ‘aالمتبوع بحرفين
• النتائج أظهرت أنه يقابل ''abc
عبدهللا القحطاني
BRE: the [ ] example
• الحروف ) [ ] (bracketsتستخدم لمطابقة بالضبط حرف
واحد فقط
• الحروف يمكن أن تسرد أو تعطى كمجال من الحروف
• اذا كان أول حرف في القائمة هو ) ^ (caretفإن ذلك يعني
أي حرف ليس في القائمة التي بين القوسين
عبدهللا القحطاني
BRE: the * example
• الحرف ) * (asteriskسيطابق صفر أو أكثر من الحروف
السابقة
• المطابقة "* "aليست مفيدة جدا ألنها قد تطابق صفرا من أحرف
( aمطابقة كل سطر)
• مطابقة "* "abcdستكون أكثر فائدة خصوصا عندما نرغب في
مطابقة " "abcغير متبوعة بأي حرف أو متبوعة بحروف d's
عبدهللا القحطاني
BRE: the ^ example
• الحرف ) ^ (caretعندما يظهر في بداية العينة يعني أن
عينة البحث يجب أن تظهر في أول السطر
• الحرف ^ عندما ال يكون في بداية العينة فإنه يطابق نفسه
عبدهللا القحطاني
BRE: the $ example
• الحرف ) $ (dollar signعندما يظهر في نهاية العينة فإنه
يعني أن العينة يجب أن تظهر في نهاية السطر
• الحرف $عندما ال يكون في نهاية العينة فإنه يطابق نفسه
عبدهللا القحطاني
BRE: Combining ^ and $
• جمع كال الحرفين ^ و $يسمح بنوعين خاصين من المطابقة
– ' '^$يطابق السطر الفارغ
– ' '^pattern$يطابق ما اذا كان كل السطر يحتوي على العينة
فقط
عبدهللا القحطاني
التعابير االعتيادية الموسعة
عبدهللا القحطاني
Extended Regular Expressions
• االستخدام للتعابير االعتيادية الموسعة ( )EREتتطلب استخدام
الخيار –Eعندما يستخدم أمر grep
• EREيمكن أن تجمع مع BRE
• الحروف التالية هي من نوع ERE
–?
–+
–|
عبدهللا القحطاني
ERE: the + example
• الحرف ) + (plusيقوم بمطابقة حرف أو أكثر من الحروف
السابقة
• مطابقة " "a+مفيد ألنه يمكن أن يطابق حرف أو أكثر من
حروف aبالتأكد من أن األسطر التي تملك على األقل حرف
aواحد مطابق
عبدهللا القحطاني
ERE: the ? example
• الحرف ) ? (question markسيقوم بمطابقة حرف سابق
اختياريا
• الحرف ? يستخدم لمطابقة الحروف فقط التي تظهر أحيانا
في الكلمة .المثال التالي يوضح ذلك
عبدهللا القحطاني
ERE: the | example
• الحرف ) | (vertical barسوف يعمل مثل العامل ”“or
بين اثنين من التعابير االعتيادية
• هذا العامل المتناوب مفيد ألنه قادر على مطابقة عينات
مختلفة
عبدهللا القحطاني
األمر xargs
The xargs command
• األمر xargsيدعم تنفيذ المجموعات من أوامر pipeالمعقدة
بكفاءة عالية
• هذا األمر يحاول بناء أطول سطر أوامر محتمل مع العديد من
الوسائط argumentsالمحتملة
• أيضا يحاول منع تنفيذ األمر في كل مرة لكل وسيط argument
عبدهللا القحطاني
الوحدة التاسعة
أساسيات البرمجة
Module 9
Basic Scripting
عبدهللا القحطاني
هدف االمتحان
3.3تحويل األوامر الى برنامج
• ملخص األهداف
– أساسيات تحرير النص
– أساسيات برمجة الشل
عبدهللا القحطاني
محررات النصوص
Text Editors
عبدهللا القحطاني
البرنامج النصي هي سلسلة من األوامر
A script is a sequence of commands
األوامر التي تكتب في سطر األوامر يمكن أن تبرمج نصيا •
كما يمكن أن تفرع باالعتماد على االختبارات وعلى حلقة من •
خالل المجموعات
هذا كله متاح من خالل سطر األوامر أيضا •
البرمجة هي تكرار وتناغم وحرية تتيح للمستخدم أن يقوم •
بعمل أكثر تشويق
عبدهللا القحطاني
المحررات
Editors
البرامج Scriptsهي ملفات نصية •
LibreOfficeيضيف تنسيقات تجعل البرامج غير صالحة •
لالستخدام
محررات النصوص األكثر شهرة هي nanoو vi / vim •
مقارنة بين االثنين nanoهو األكثر سهولة في االستخدام •
عبدهللا القحطاني
nano
• يكتب بالشكل المعتاد ،وتستخدم مفاتيح األسهم للتحرك داخله
• معظم األوامر (أزرار لوحة المفاتيح) هي للتحكم باإلضافة
لكتابة الحروف
• سياق األوامر الحساسة يظهر في أسفل الشاشة مثل
– للخروج من المحرر نستخدم ^X
– للبحث نستخدم ^W
– للحصول على المساعدة نستخدم ^G
عبدهللا القحطاني
shebang
shebang
عبدهللا القحطاني
!#
• يطلق على الرمز ! #المسمى )hash + bang( shebang
• يستخدم إلعالم نواة النظام kernalما هو نوع المفسر
الخاص بالشل ( )shell interpreterالذي سيستخدم لتشغيل
البرنامج
• يجب أن يكون في بداية السطر
– #!/bin/sh
– #!/usr/bin/ruby
• يتيح للمستخدم تشغيل البرنامج النصي مع ./scriptبغض
النظر عن أي شل يملكه المستخدم
عبدهللا القحطاني
العمل مع المتغيرات
عبدهللا القحطاني
المتغيرات
Variables
• هي وحدات تخزين مؤقتة للبيانات في الذاكرة
• االسناد )(no $
– ”FOO=“hello
– `CWD=`pwd
– ”BAR=“Hello $NAME
• االستخدام (نحتاج الى )$
– $FOO
– ”echo “Hello $NAME
عبدهللا القحطاني
المتغيرات الخاصة
Special Variables
المتغيرات $1..$9هي وسائط للبرنامج النصي على سبيل •
المثال
”./test.sh hello there # $1=“hello” $2=“there •
المتغير ? $هو شفرة الخروج من آخر أمر للقيام بتنفيذه •
يستخدم ” “exit 1للخروج من البرنامج النصي الحالي مع •
وجود خطأ ترميز code 1
عبدهللا القحطاني
العمل مع الشرط
عبدهللا القحطاني
Conditionals
if something; then • اذا كان ناتج الشرط 0فسيتم تنفيذ
do this جميع العمليات حتى الوصول الى
fi fi
عبدهللا القحطاني
test أمر
test command
ينمح المستخدم سهولة الوصول للمقارنة ولعواملtest • األمر
اختبار الملف
test –f /tmp/foo # test if file exists اختبر اذا الملف موجود
test ! –f /tmp/foo # test if file doesn’t exist اختبر اذا الملف غير موجود
test $A –eq 1 # is $A = 1 (numeric) ) (رقميA = 1 هل
test “$B” = “Hello” # string comparison مقارنة سلسة من الحروف
test $A –lt 10 # $A < 10? 10 أصغر منA هل
عبدهللا القحطاني
Case جملة
Case statement
case ”$GREETING" in
hello|hi) توفر طريقة مختلفةcase • جملة
echo "hello yourself"
;; إلجراء االختبارات المتعددة
goodbye)
echo "nice to have met you" بطريقة أسهل
echo "I hope to see you again"
;;
*)
echo "I didn't understand that"
esac
عبدهللا القحطاني
الحلقات
Loops
عبدهللا القحطاني
The for loop
”NAMES=“Alice Bob Charlie • تعمل حلقة forعلى مجموعة
for N in $NAMES; do ثابتة من العناصر أو حروف
”echo “Hello $N globمثل قائمة من الملفات أو
قائمة بأسماء الخوادم
done
for FILE in *; do
ls –l $FILE
done
عبدهللا القحطاني
While loops
while [ ! –f /tmp/foo ]; do • تعمل حلقات whileعن طريق
try_to_make_foo # اختبار شرط الحلقة في كل مرة
makes /tmp/foo on • تستخدم عندما يكون عدد
success الدورات غير معلوم أو يتغير
sleep 1 # wait 1 sec في كل دورة
done
عبدهللا القحطاني
الوحدة العاشرة
فهم المكونات المادية للكمبيوتر
Module 10
Understanding Computer Hardware
عبدهللا القحطاني
هدف االمتحان
4.2فهم المكونات المادية للكمبيوتر
• ملخص األهداف
– البحث في المكونات المادية للكمبيوتر
عبدهللا القحطاني
عرض معلومات وحدة المعالجة المركزية
عبدهللا القحطاني
المعالجات
Processors
وحدة المعالجة المركزية ( )CPU or Processorتقوم بتنفيذ •
القرارات والعمليات الحسابية الخاصة بنظام التشغيل
CPUمرتبط بالمكونات المادية األخرى عن طريق اللوحة •
األم
متعدد المعالجات ( )Multiprocessorتعني نظام مع أكثر •
من معالج
متعدد األنوية ( )Multi-coreتعني أكثر من معالج في رقاقة •
واحدة
عبدهللا القحطاني
)Processors (continued
• هناك نوعان من المعالجات هما
– )x86 (32 bit
– )x86_64 (64 bit
• X86اخترعت في عام 1978م بينما x86_64اخترعت في
عام 2000
• X86هو ذو امكانيات محدودة فالذاكرة تكون بحجم 4GB
كحد أقصى
• x86_64يملك دعم للبرامج محدود
عبدهللا القحطاني
عرض معلومات CPU
Viewing CPU Information
• الستعراض معلومات CPUنستخدم واحد من األوامر التالية
– arch
– lspcu
– cat /proc/cpuinfo
• الملف /proc/cpuinfoيحتوي على األعالم التي
تصف مميزات المعالج الرئيسة
عبدهللا القحطاني
معلومات النظام
System Information
عبدهللا القحطاني
اللوحات األم والنواقل
Motherboards and Buses
• المكونات المادية تتصل مع بعضها من خالل اللوحات األم أو
النواقل
• نظام المدخالت والمخرجات الرئيسي ( )BIOSهو ما
تستخدمه المكونات المادية لالتصال
• نظام ادارة BIOSوالذي يسمى ( )SMBIOSهو المعيار
الذي يحدد هياكل بناء البيانات الخاصة باالتصاالت
عبدهللا القحطاني
Motherboards and Buses (cont)
SMBIOS يعرض معلوماتdmidecode • األمر
عبدهللا القحطاني
ذاكرة RAM
• ذاكرة الوصول العشوائي ( )RAMهي المكان الذي يتم فيه
تخزين بيانات البرامج والنظام أثناء التشغيل
• الذاكرة التخيلية ( )swap spaceهي المساحة المستخدمة من
القرص الصلب كذاكرة عندما تكون ذاكرة RAMمنخفضة
• األمر freeيستطيع عرض معلومات الذاكرة المستخدمة
عبدهللا القحطاني
األجهزة الطرفية
Peripheral Devices
عبدهللا القحطاني
األجهزة الطرفية
Peripheral Devices
• االجهزة الطرفية هي األجهزة التي ال تتصل باللوحة األم
بشكل مباشر
• هناك نوعان من هذه األجهزة هما:
Peripheral Component – المكونات الطرفية المتصلة
)Interconnect (PCI
– الناقل التسلسلي العالمي )Universal Serial Bus (USB
عبدهللا القحطاني
أجهزة PCI
PCI Devices
• يستخدم األمر lspciلعرض أجهزة PCI
عبدهللا القحطاني
أجهزة USB
USB Devices
• تعد أجهزة USBأجهزة اتصال سريع ألنه يمكن اضافتها الى
النظام بينما هو يعمل
• يستخدم األمر lsusbلعرض أجهزة USB
عبدهللا القحطاني
HAL
• الطبقة التجريدية لألجهزة Hardware Abstraction Layer
) (HALتحفظ مسار كل المكونات المادية للنظام
• عملية haldالخفية تزود البرامج األخرى بهذه المعلومات
• يستخدم األمر lshalلعرض بيانات HAL
عبدهللا القحطاني
أجهزة القرص
Disk Devices
تدعى أيضا باألقراص الصلبة •
يمكن ربطها باللوحة األم مباشرة باستخدام PCIأو USB •
تجزأ الى أقسام •
هناك نوعان من األقسام •
– سجل االقالع الرئيسي )Master Boot Record (MBR
– جدول األقسام )GUID Partitioning Table (GPT
عبدهللا القحطاني
سجالت االقالع
Boot Records
عبدهللا القحطاني
MBR
• التقنية القديمة
• ما تزال تستخدم بشكل شائع
• األدوات التي تستخدم لعرض وتعديل أقسام MBR
– fdisk
– cfdisk
– sfdisk
عبدهللا القحطاني
GPT
• التقنية الحديثة
• تسمح بإنشاء أقسام أكبر حجما وأكثر عددا من أقسام MBR
• األدوات التي تستخدم لعرض وتعديل أقسام GPT
– gdisk
– cgdisk
– sgdisk
عبدهللا القحطاني
أسماء الجهاز
Device Names
مشغالت IDEتُعطى أسماء ملفات تبدأ بالحرفين hdوتخزن في •
الدليل /dev
مشغالت USBو SATAو SCSIتُعطى أسماء تبدأ بالحرفين sd •
المشغل األول يُعطى الحرف aوالثاني يُعطى الحرف bوهكذا •
مثال •
– First IDE drive: /dev/hda
– First SATA drive: /dev/sda
– Second IDE drive: /dev/hdb
عبدهللا القحطاني
سجالت األقسام
Partition Records
عبدهللا القحطاني
أسماء القسم
Partition Names
وهكذا1،2،3 • األقسام تُعطى قيم عددية مثل
• مثال
First partition of first IDE drive: /dev/hda1 –
Second partition of second SATA drive: /dev/sdb2 –
• عرض األقسام واألقراص على النظام
عبدهللا القحطاني
عرض معلومات القسم
View Partition Information
• الخيار –lمع األمر fdiskيمكن أن يستخدم لعرض
معلومات القسم
عبدهللا القحطاني
أجهزة عرض الفيديو
Video Display Devices
• ال يوجد معيار للفيديو يتطلب مشغالت خاصة لكروت الفيدو
الخاصة
• هناك نوعان من الربط
– )Video Graphics Array (VGA
– )Digital Visual Interface (DVI
• كال الشاشة وكرت الفيديو يجب أن يدعم وضوح محدد
• عادة خادم X.orgيحدد الوضوح المناسب
• ملف التهيئة هو /etc/X11/xorg.conf
عبدهللا القحطاني
الوحدة الحادية عشرة
إدارة الحزم والعمليات
Module 11
Managing Packages and Processes
عبدهللا القحطاني
هدف االمتحان
4.3أين تخزن البيانات
• ملخص األهداف
– فهم النواة والعمليات
– أدوات السجل مثل syslogو klogو dmesg
– مسارات تخزين المعلومات
عبدهللا القحطاني
العمل مع إدارة الحزم
عبدهللا القحطاني
إدارة الحزم
Package Management
• إدارة الحزم هو نظام لتركيب وتهيئة وتحديث واالستعالم عن
وحذف البرمجيات من نظام التشغيل لينكس
• أنظمة إدارة الحزم تتأكد من وظائف البرمجيات من خالل
تتبع المتطلبات السابقة أو اعتماد الحزم على بعضها البعض
• هناك العديد من أنظمة إدارة الحزم المتاحة لكن اثنين تهيمن
على المشهد في نظام التشغيل لينكس هما
– Debian Package Management
– RPM Package Management
عبدهللا القحطاني
Debian Package Management
تستخدم من قبل توزيعة Debianومشتقاتها المشهورة مثل Ubuntuو •
Mint
يتم توزيع حزمة البرامج كملف " ".debالذي يحتوي على الملفات •
والمعلومات الوصفية للحزمة
األداة ذات المستوى األقل (أمر )back-endهي dpkg •
تشمل أدوات الطرف األمامي لسطر األوامر ( )front-endما يلي •
– apt-get
– aptitude
• تشمل أدوات GUIللطرف األمامي ()front-end
– synaptic
– software-center
عبدهللا القحطاني
اضافة حزم ()Debian
)Adding Packages (Debian
• أوال التأكد من قائمة الحزم الموجودة حاليا بتنفيذ األمر
– sudo apt-cache update
• ثانيا البحث عن حزمة معينة بتنفيذ األمر
– sudo apt-cache search keyword
• ثالثا تحميل وتركيب حزمة بتنفيذ األمر
– sudo apt-get install package
• بسبب اعتماد بعض الحزم على بعضها ،إذا كان هناك رغبة
في تحميل حزمة واحدة فال بد من تحميل الحزم األخرى التي
تعتمد عليها هذه الحزمة ان وجدت
عبدهللا القحطاني
تحديث حزم )(Debian
)Updating Packages (Debian
• لتحديث حزمة واحدة ،فإنه يتم تنفيذ األمر الذي سيقوم بتثبيت
هذه الحزمة
– sudo apt-get install package
• لتحديث كافة الحزم ،سيتم تنفيذ األمر
– sudo apt-get upgrade
• المستخدمون عند تسجيلهم الدخول للنظام من خالل الواجهة
الرسومية للدخول سيالحظون اخطارات التحديث من خالل
update-manager
عبدهللا القحطاني
حذف حزم )(Debian
)Removing Packages (Debian
• اذا رغب المستخدم في ازالة احدى الحزم فانه قد ينتهي به األمر
إلى إزالة الحزم األخرى التي تعتمد عليها هذه الحزمة
• اذا كان المستخدم يرغب في ازالة كافة الملفات الخاصة بحزمة
برنامج باستثناء ملفات التهيئة فانه ينفذ األمر التالي
– sudo apt-get remove package
• اذا كان المستخدم يرغب في ازالة كافة الملفات الخاصة بحزمة
برنامج بما في ذلك ملفات التهيئة فانه ينفذ األمر التالي
– sudo apt-get --purge remove package
عبدهللا القحطاني
االستعالم عن حزم )(Debian
)Querying Packages (Debian
• للحصول على قائمة بكل الحزم المثبتة يتم تنفيذ األمر
– dpkg -l
• لسرد كل الملفات الخاصة بحزمة معينة ينفذ األمر
– dpkg -L package
• لالستعالم عن معلومات حزمة ما ومعرفة حالتها ينفذ األمر
– dpkg -s package
• لتحديد ما إذا تم توفير الملف عن طريق حزمة ما ينفذ األمر
– dpkg -S /path/to/file
عبدهللا القحطاني
ادارة حزم RPM
RPM-based Management
عبدهللا القحطاني
ادارة حزم RPM
RPM Package Management
قاعدة معايير لينكس ،وهو مشروع مؤسسة لينكس ،يتطور من •
خالل االتفاق على مجموعة من المعايير التي تزيد من التوافقية
بين أنظمة تشغيل لينكس
وفقا قاعدة معايير لينكس ،فإن معيار نظام ادارة الحزمة يسمى •
RPMأو ادارة حزمة RPM
ادارة حزمة RPMتعبر اعتماد الحزم على بعضها البعض •
والذي طور من قبل RedHat
التوزيعات المستمدة من RedHatمثل )(Centos - Fedora •
والتي ليست كذلك مثل )(SUSE - OpenSUSE - Mandriva
كلها تستخدم RPM
عبدهللا القحطاني
RPM Package Management
في المستوى المنخفض ،أداة الطرف الخلفي back-endإلدارة •
حزمة RPMهي أمر rpm
أداة الطرف األمامي front-endسطر األوامر تتضمن yumو •
up2dateوالتي تستطيع تنفيذ حلول اعتمادية الحزم على
بعضها البعض بشكل تلقائي
أدوات الطرف األمامي front-endالرسومية مثل yumexو •
gpk-applicationتبسط عملية إدارة الحزم
األوامر التي تستخدم لالستعالم عن الحزم يمكن أن يقوم بها أي •
مستخدم
األوامر التي تستخدم لتثبيت ،تحديث أو إزالة حزم النظام يجب •
أن يتم تنفيذها مع امتيازات الجذر root
عبدهللا القحطاني
اضافة وتحديث حزم RPM
)Adding/Updating Packages (RPM
• للبحث عن الحزمة المراد تحميلها يتم تنفيذ األمر
– yum search keyword
• لتحميل الحزمة والحزم المعتمدة عليها يتم تنفيذ األمر
– yum install package
• لتحميل التحديث الخاص بحزمة واحدة فقط يتم تنفيذ األمر
– yum update package
• لتحديث كل الحزم ينفذ األمر
– yum update
• اذا كانت التحديثات متوفرة عندما يكون المستخدم يستخدم واجهة الدخول
الرسومية فإنها ستظهر رسالة اعالم في منطقة االعالنات تخبره بوجود
تحديثات جديدة وذلك من خالل gpk-update-viewer
عبدهللا القحطاني
ازالة حزم RPM
)Removing Packages (RPM
• اذا كان المستخدم يرغب في ازالة حزمة باستخدام األمر
rpmفإنه قد يحتاج الى بقية الحزم يدويا وذلك بسبب اعتماد
بعض الحزم على بعضها البعض
• إلزالة حزمة والحزم المعتمدة عليها ينفذ األمر
– yum remove package
عبدهللا القحطاني
االستعالم عن حزم RPM
)Querying Packages (RPM
• بينما يمكن تنفيذ االستعالمات باستخدام األمر yumأال أن
األمر rpmسيعمل بشكل أسرع نظرا ألنه يستخدم قاعدة
البيانات المحلية عوضا عن القيام باالتصال عبر الشبكة
بمستودعات البرامج
عبدهللا القحطاني
)Querying Packages (RPM
• للحصول على قائمة بكل الحزم المثبتة ينفذ األمر
– rpm -qa
• للحصول على قائمة بالملفات المتعلقة بحزمة ما ينفذ األمر
– rpm -ql package
• لالستعالم عن معلومات حزمة معينة وحالتها ينفذ األمر
– rpm -qi package
• لتحديد ما اذا كان الملف ينتمي الى حزمة معينة ينفذ األمر
– rpm -qf /path/to/file
عبدهللا القحطاني
فهم العمليات
Understanding Processes
عبدهللا القحطاني
نواة لينكس
The Linux Kernel
عندما يشير معظم الناس إلى لينكس ،فإنهم يشيرون فعليا نظام •
التشغيل GNU/Linux
GNUتوفر المصدر المفتوح المكافئ ألكثر أوامر UNIXشيوعا •
مثل passwd – cp – ls
Linuxهو قلب نظام التشغيل ،النواة ،Kernelالتي تدير كل •
جوانب نظام التشغيل
المهام الرئيسية لنواة لينكس تشمل •
– ادارة اقالع نظام التشغيل ،العمليات ،الذاكرة ،نظام الملفات ،الشبكة
ومشغالت األجهزة
– قبول األوامر من المستخدم وإدارة العمليات التي تحمل تلك األوامر
بالوصول الى األجهزة المختلفة
عبدهللا القحطاني
الدليل /proc
The /proc directory
• الدليل /procيحتوي على نظام الملفات المستعار الذي يحتوي
على عدة أنواع من المعلومات:
– األدلة التي تملك أسماء تطابق معرف العمليات PIDفي النظام والتي
تحوي على ملفات عديدة تتضمن معلومات حول العملية
– ملفات مثل cmdline - meminfo - modulesوالتي تحوي
معلومات عن النظام
– الملفات في الدليل /proc/sysوالتي تخصص للكتابة من قبل
المستخدم rootوتستطيع القيام بالتغيير الفوري للطريقة التي تعمل بها
النواة
• لجعل التغييرات دائمة ،يتم اضافة هذه التغييرات بداخل الملف
/etc/sysctl.conf
عبدهللا القحطاني
التسلسل الهرمي للعملية
Process Hierarchy
بعد أن تنتهي النواة Kernelمن التحميل ،يبدأ تشغيل أول •
عملية (عادة )/sbin/initوتعطى المعرف PIDرقم 1
كل عملية اضافية بدأ تشغيلها تحصل على معرف PIDبشكل •
تسلسلي
عندما /sbin/initتبدأ بتشغيل عمليات أخرى فإنها •
تعتبر العملية األب parent
شغلت بواسطة عملية سابقة تسمى العمليات األخرى التي ُ •
االبن child
عبدهللا القحطاني
Process Hierarchy
• عندما يتم تشغيل النظام لفترة طويلة وكفاية ،فإنه قد يصل في
النهاية إلى قيمة PIDالقصوى ،والتي يمكن عرضها وتهيئتها
من خالل /proc/sys/kernel/pid_max
• عندما يتم استخدام أكبر قيمة ،PIDفإن النظام يعيد ويسترجع
تعيين قيم PIDالمتوفرة في الجزء السفلي من النطاق
عبدهللا القحطاني
عرض التسلسل الهرمي للعملية
Viewing the Process Hierarchy
• األمر pstreeيعرض التسلسل الهرمي للعملية مع
رسومات نصية
عبدهللا القحطاني
مثال على التسلسل الهرمي للعملية
An Example of Process Hierarchy
• بالنظر إلى العالقات بين األب واالبن والمضمنة في تنفيذ
األمر ،pstreeفإن النظرة تشابه:
init
login
bash
pstree
عبدهللا القحطاني
األمر ps
The Process (ps) Command
• افتراضيا ،األمر psسوف يعرض فقط العمليات التي تعمل
حاليا في الشل
• الخيار ps --forestسوف يعرض األسطر لإلشارة
الى عالقات اآلباء واألبناء ،يشبه األمر pstree
• األمر psيقبل ثالثة أنواع من الخيارات:
– خيارات اليونكس التقليدية والتي تُعطى مع شَرطة واحدة
– خيارات BSDوالتي تُعطى بدون أي شَرطة
– خيارات GNUوالتي تُعطى مع شرطتان
عبدهللا القحطاني
عرض جميع العمليات
Viewing All Processes
• لعرض كل العمليات ينفذ األمر ps auxأو ps –ef
• منذ أن تظهر المئات من العمليات بشكل طبيعي ،فإن وصل
pipingالمخرجات بأمر grepسيكون مفيد إليجاد
المعلومات حول عملية معينة
عبدهللا القحطاني
مراقبة النظام
عبدهللا القحطاني
األمر top
The top Command
• األمر topمفيد جدا
لمراقبة الوقت الفعلي
للعمليات ،تحميل النظام،
استخدام CPUواستخدام
الذاكرة
• افتراضيا ،األمر top
يرتب العمليات بناء على
%CPU
عبدهللا القحطاني
Controlling top
المعنى المفتاح
مساعدة )?( h
احصائيات التحميل l
احصائيات الوقت t
احصائيات استخدام الذاكرة m
نقل الحقل المرتب لليسار <
نقل الحقل المرتب لليمين >
اختيار الحقل المرتب F
اتجاه الفرز R
فرز حسب %CPU P
فرز حسب نسبة استخدام الذاكرة M
ايقاف العملية (أو ارسال اشارة) k
أولوية العمليات r
عبدهللا القحطاني
معدالت التحميل
Load Averages
• على غرار مخرجات األمر uptimeأول سطر من
مخرجات األمر topيظهر الوقت الحالي ،مقدار وقت
تشغيل النظام و ومعدالت التحميل الثالث على النظام
• الدقيقة ،الخمس دقائق و الخمسة عشرة دقيقة من معدالت
التحميل تعطي المسؤول فكرة عن الحمل الحالي وكيف تم
توجيهه خالل الفترة األخيرة
عبدهللا القحطاني
Load Averages
• الرقم المعروض لمعدالت التحميل يتناسب مع عدد أنوية
CPUفي النظام
– معدل التحميل يساوي صفر يعني أنه ال يوجد تحميل
– معدل التحميل يساوي عدد أنوية CPUيشير الى نظام محمل
بالكامل
– عدد أعلى من مجموع أنوية CPUيشير الى أن النظام تجاوز حد
التحميل
عبدهللا القحطاني
األمر free
The free Command
• األمر freeيستخدم لعرض احصائيات استخدام الذاكرة
• استخدام الخيار –sمع األمر freeيسمح بتحديد عدد الثواني
بين التحديثات
• افتراضيا ،األمر freeيعرض القيم بالبايت لكن استخدام
الخيارات –mو –gسيعرض القيم بالميغابايت والجيجابايت
$ free
total used free shared buffers cached
Mem: 510984 495280 15704 0 60436 258988
-/+ buffers/cache: 175856 335128
Swap: 1048568 0 1048568
عبدهللا القحطاني
العمل مع ملفات السجل
عبدهللا القحطاني
ملفات السجل
Log Files
المخرجات المنتجة من قبل النواة وعمليات النظام ترسل الى •
ملفات السجل
بعض العمليات(مثل خادم الويب اباتشي) ستقوم بالتسجيل •
المستقل
النواة ومعظم العمليات في الخلفية تعتمد على عمليات التسجيل •
المستقلة لتسجيل نشاطهم
عادة يتم استخدام syslogdو klogdإلى تسجيل النظام •
ونشاط النواة ،على التوالي
تسجيل العمليات األخرى يتضمن rsyslogdال ُمستخ َدم من •
قبل Centosو RedHatبينما systemd-journald
يستخدم من قبل Fedora
عبدهللا القحطاني
ملفات /var/log
/var/log Files
المحتوى الملف
والت بدأت بالعمل خالل عملية اقالعالرسائل المنتجة كخدمات ي boot.log
النظام
الت
الرسائل المنتجة بواسطة عمليات crondالمخفية للوظائف ي cron
يتم تنفيذها عىل أساس متكرر
رسائل النواة المنتجة أثناء اقالع (تمهيد) النظام dmesg
البيد
البيد المخفية لرسائل رعمليات ر الرسائل المنتجة بواسطة maillog
َ َ
ون المرسلة والمستقبلة االلكب ي
تنتم اىل ملفات
ي الت ال
وغبها من العمليات ي messagesرسائل من النواة ر
السجل األخرى / syslog
الت تحتاج اىل موافقة أو مصادقةرسائل من العمليات ي secure
Xorg.0.logرسائل من خادم النوافذ ( Xواجهة المستخدم الرسومية).
عبدهللا القحطاني
تدوير ملف السجل
Log File Rotation
• ملفات السجل يتم تدويرها لجعلها أسهل للتحليل ولمنعها من
أن تصبح كبيرة الحجم (تعبئة نظام الملفات)
• على سبيل المثال :السجل المخفي قد يوقف الكتابة في الملف
/var/log/messagesويعيد تسمية الملف الى
/var/log/messages-20131103
( 20131103هو التاريخ الحالي) ومن ثم يعود للكتابة في
الملف /var/log/messagesمرة أخرى
• بعد عدد معين من الدورات ،عادة أربعة ،يتم حذف ملف
السجل األقدم كما يتم إنشاء ملف سجل جديد.
عبدهللا القحطاني
عرض ملفات السجل
Viewing Log Files
• معظم ملفات السجل تتطلب امتيازات الجذر rootلكي يتم
الوصول إلى محتوياتها
• معظم ملفات السجل تحتوي على نص ويمكن عرضها باستخدام
أي أمر يعرض النص ،لكن البعض منها تحوي بيانات ثنائية
• باستخدام األمر fileيمكن التأكد من أن الملف يحتوي على
نص أو ال
$ sudo file /var/log/messages
/var/log/messages: ASCII English text, with very long lines
$ sudo file /var/log/btmp
/var/log/btmp: data
عبدهللا القحطاني
العمل مع dmesg
عبدهللا القحطاني
األمر dmesg
The dmesg Command
• المخزن المؤقت الحلقي للنواة هو ذاكرة تستخدم لتحتفظ بالرسائل التي
تولدها النواة
• الملف /var/log/dmesgيستخدم من قبل بعض التوزيعات
لالحتفاظ برسائل النواة التي انتجت خالل االقالع
• رسائل النواة توجد في الملف /var/log/messagesأو الملف
/var/log/syslog
أو /etc/syslog.conf • الملفان
/etc/rsyslog.confيمكن استخدامهما لتهيئة سجل رسائل
النواة كملف منفصل
• استخدام األمر dmesgلعرض محتوى المخزن المؤقت الحلقي للنواة
قد يكون مفيدا الكتشاف اخطاء المكونات المادية وإصالحها أو غيرها
من قضايا النواة ذات الصلة
عبدهللا القحطاني
خيارات dmesg
dmesg Options
المعنى الخيارات
بعد الحلقي المؤقت المخزنتنظيف -c
الطباعة
طباعة رسالة المخزن المؤقت األصلية -r
استخدم حجم المخزن المؤقت SIZEلالستعالم -s SIZE
عن المخزن المؤقت الحلقي للنواة
عبدهللا القحطاني
الوحدة الثانية عشرة
تهيئة الشبكة
Module 12
Network Configuration
عبدهللا القحطاني
هدف االمتحان
4.4كمبيوترك على الشبكة
• ملخص األهداف
– العمل مع االنترنت ،الشبكة والموجهات
– خدمة اسم المجال DNS
– تهيئة الشبكة
عبدهللا القحطاني
أساسيات الشبكة
Basic Networking
عبدهللا القحطاني
مصطلحات الشبكة الرئيسة
Basic Network terminology
المضيف – Hostهو أي جهاز يتصل مع جهاز اخر عبر •
الشبكة
الشبكة – Networkهي مجموعة من مضيفين أو أكثر •
(كمبيوترات) لها المقدرة على االتصال مع بعضها البعض
االنترنت – Internetهي شبكة متاحة للعامة والتي تربط •
الماليين من المضيفين في جميع أنحاء العالم
الشبكة الالسلكية Wi-Fi •
عبدهللا القحطاني
)Basic Network terminology (cont
• الخادم/الخدمة - Server/Serviceعندما يوفر المضيف
ميزة إلى مضيف آخر ،وتسمى هذه الميزة خدمة .على سبيل
المثال :يوفر خادم الويب خدمة صفحات الويب.
• العميل – Clientهو المضيف الذي يقوم بالوصول الى
الخادم
• الموجه - Routerويعرف بالعبّارة االفتراضية ،gateway
وهو جهاز يقوم بربط المضيفين من الشبكة األولى مع شبكة
أخرى
عبدهللا القحطاني
Basic Network terminology (cont)
عبدهللا القحطاني
مصطلحات مميزات الشبكة
Networking Features Terminology
• حزمة الشبكة – Network packetتستخدم إلرسال
اتصاالت الشبكة بين المضيفين
• عنوان – )IP address( IPعنوان برتوكول االنترنت هو
رقم فريد يُعطى للمضيفين على الشبكة
• قناع الشبكة ( – Network maskيسمى أيضا netmask
أو )maskوهو نظام رقمي يستخدم لتحديد أي عناوين IP
تعتبر في شبكة واحدة
عبدهللا القحطاني
مصطلحات مميزات الشبكة
• اسم المضيف – Hostnameأي مضيف يُعطى اسم مفهوم
للبشر ،يسمى .Hostnameأسماء المضيفين تترجم إلى
عناوين IPقبل أن يتم ارسال حزمة الشبكة عبر الشبكة.
• – DHCPالمضيفون ممكن أن يحصلوا على أسماء
مضيفين ،عناوين IPوالمعلومات األخرى المتعلقة بالشبكة
عن طريق خادم DHCP
• – DNSهو الخادم الذي يوفر خدمة تحويل عناوين IPإلى
أسماء المضيفين
عبدهللا القحطاني
مصطلحات مميزات الشبكة
• االيثرنت – Ethernetفي بيئة الشبكة السلكية ،اإليثرنت
هي الطريقة األكثر شيوعا لربط المضيفين فعليا داخل الشبكة
• – TCP/IPهو مجموعة البروتوكوالت (تذكر ،بروتوكول =
مجموعة من القواعد) التي تستخدم لتحديد كيف ينبغي على
اتصاالت الشبكة أن تنتقل بين المضيفين.
– TCP/IP = Transmission Control Protocol/Internet Protocol
عبدهللا القحطاني
عنونة IP
IP Addressing
عبدهللا القحطاني
IP addresses
يقوم المضيفون بعنونة حزم الشبكة باستخدام عنوان IP •
الخاص بجهاز الوجهة.
هناك نوعان مختلفان من عناوين IPهما IPv4و IPv6 •
في عنوان ،IPv4العنوان يتكون من أربع مجموعات كل •
مجموعة " 8بت" ( 8بت = أرقام ( )255-0على سبيل
المثال)192.168.10.120 :
في شبكة IPv6العناوين هي أكبر من ذلك بكثير ،حيث •
تتكون العناوين من 128بت على سبيل المثال
2001:0db8:85a3:0042:1000:8a2e:0370:7334
عبدهللا القحطاني
تهيئة الشبكة
عبدهللا القحطاني
تهيئة أجهزة الشبكة
Configuring Network Devices
• هناك سؤاالن عن الشبكة البد من طرحهما:
– سلكية أو السلكية؟
– DHCPأو عنوان ثابت؟
• األجهزة المكتبية عادة تستخدم الشبكات السلكية وأجهزة
الالبتوب عادة تستخدم الشبكات الالسلكية
• عادة األجهزة السلكية تستخدم عناوين ثابتة بينما األجهزة
الالسلكية تستخدم DHCP
عبدهللا القحطاني
تهيئة الشبكة باستخدام واجهة المستخدم الرسومية
Configuring the Network Using a GUI
• Click on
– System in the menu
bar, then
– Preferences and then
– Network Connections.
عبدهللا القحطاني
Configuring the Network
Using a GUI (cont)
• To modify this network
device, click on the
device name and then
click the Edit button.
عبدهللا القحطاني
Configuring the Network
Using a GUI (cont)
• If you click on the IPv4
Settings tab, you can
change key IPv4 values.
عبدهللا القحطاني
Configuring the Network
Using a GUI (cont)
• Click method to change from Manual to DHCP
عبدهللا القحطاني
تهيئة الشبكة باستخدام ملف التهيئة
Configuring the Network Using
Configuration Files
• الواجهة األساسية ملف التهيئة
– /etc/sysconfig/network-scripts/ifcfg-eth0
عبدهللا القحطاني
Configuring the Network Using
)Configuration Files (cont
• ملفات تهيئة إضافية
الغرض الملف
عبدهللا القحطاني
إعادة تشغيل الشبكة
Restarting the network
• بعد تغيير ملف تهيئة الشبكة ،يحتاج المستخدم إما إلى إعادة
تشغيل الجهاز أو تشغيل األمر التالي كمدير للنظام لجعل
التغييرات نافذة المفعول
– service network restart
عبدهللا القحطاني
مرافق (أدوات) الشبكة
Network Utilities
عبدهللا القحطاني
أدوات الشبكة
Network Tools
الغرض األمر (األداة)
ifconfigيعرض معلومات تكوين الواجهة
يعرض جدول التوجيه route
يستخدم لتحديد ما إذا كان الجهاز البعيد يمكن أن يتم
ping
االتصال به عبر الشبكة
netstatيعرض احصاءات عن الشبكة
يعرض نتائج االستعالم من خادم DNS dig
يمكن المستخدم من الدخول على الجهاز البعيد ssh
عبدهللا القحطاني
الوحدة الثالثة عشرة
أمن وحماية المستخدم والنظام
Module 13
System and User Security
عبدهللا القحطاني
هدف االمتحان
4.4أساسيات األمن وتحديد أنواع المستخدمين
• ملخص األهداف
– العمل مع المستخدم Rootوالمستخدمين القياسيين
– نظام المستخدمين
عبدهللا القحطاني
حسابات المستخدمين وكلمات المرور
عبدهللا القحطاني
حسابات المستخدمين
User accounts
• الملفات في الدليل /etcتحتوي على بيانات الحسابات
• الملف /etc/passwdيعرف بعضا من معلومات
الحساب الخاصة بحسابات المستخدمين
عبدهللا القحطاني
/etc/passwd ملف
The /etc/passwd file
يتعلق بحساب مستخدم/etc/passwd • كل سطر من ملف
الحقول من: • كل سطر يتم فصله الى حقول باستخدام عالمة
:اليسار الى اليمين هي
• name:password placeholder:user id:primary group id:comment:home
directory:shell
عبدهللا القحطاني
The /etc/passwd file
الوصف مثال الحقل
اسم الحساب root االسم Name
حقل كلمة المرور ويشير الحرف xالى ان كلمة المرور ليست كلمة المرور password
x
مخزنة في الملف الحالي ولكن في ملف /etc/shadow placeholder
كل حساب يكون له معرف )(UID 0 معرف المستخدم user id
عندما ينشئ المستخدم ملف فان الملف يكون مملوكا لمجموعة رقم مجموعة المستخدم
0
المستخدم الرئيسة ()GID الرئيسة primary group id
هذا الحقل ممكن يتضمن أن معلومة عن المستخدم بما في ذلك
root التعليقات Comment
أسم المستخدم بالكامل وأي معلومات أخرى مفيدة
الدليل الرئيسي home
هذا الحقل يحدد موقع الدليل الرئيس للمستخدم /root
directory
/bin/bashهذا هو موقع شل الدخول الخاص بالمستخدم الشل Shell
عبدهللا القحطاني
/etc/shadow ملف
The /etc/shadow file
يحوي معلومات الحساب المتعلقة/etc/shadow • ملف
بكلمات مرور المستخدمين
هي/etc/shadow • حقول ملف
name:password:lastchange:min:max:warn:inactive:expire:reserved
عبدهللا القحطاني
The /etc/shadow file
الوصف مثال الحقل
sysadminاسم الحساب الذي يطابق الموجود في الملف /etc/passwd االسم name
$6$......rl1حقل كلمة المرور الذي حوي كلمة المرور المشفرة للحساب كلمة المرور
password
هذا الحقل يحوي رقم يمثل آخر وقت تم فيه تغيير كلمة المرور 15020 اخر تغيير last
change
كلمة المرور ال يمكن تغييرها إال بعد انقضاء مدة محددة من األيام 5 الحد األدنى min
يستخدم هذا الحقل إلجبار المستخدمين على تغيير كلمات المرور الخاصة 30 الحد األقصى max
بهم على أساس منتظم
إذا تم تعيين حقل maxفان الحقل warnيقوم بإرسال رسالة تحذير 7 انذار warn
للمستخدم عندما اإلطار الزمني ماكس يقترب.
يوفر الحقل inactiveللمستخدمين فترة "سماح" تمكنهم من تغيير 60 غير نشط inactive
كلمة المرور الخاصة بهم
الحقل يمثل عدد األيام من تاريخ 1/1/1970حتى يوم انتهاء الحساب 15050 االنتهاء expire
عبدهللا القحطاني
عرض معلومات الحساب
عبدهللا القحطاني
عرض معلومات الحساب
Viewing account information
• لعرض معلومات الحساب للمستخدم الذي اسمه sysadminنستخدم
األمر grep sysadmin /etc/passwd
عبدهللا القحطاني
عرض معلومات الدخول
Viewing login information
• ليتحقق المستخدم من هويته يمكنه تنفيذ األمر id
عبدهللا القحطاني
حسابات النظام
System Accounts
عبدهللا القحطاني
حسابات النظام
System accounts
• حسابات النظام صممت لتوفر حسابات تقوم بالخدمات التي
يؤديها النظام
– تكون أرقام المعرفات UIDبين 1و 499
– تملك قيمة فارغة لحقل الشل في ملف /etc/passwd
– توضع العالمة * في حقل كلمة المرور في ملف
/etc/passwd
– معظمها ذات أهمية حاسمة لتشغيل النظام
– ال يتم حذف حساب النظام إال عندما يتم التأكد بنسبة ٪100من
عدم الحاجة إليه
عبدهللا القحطاني
مجموعات النظام
System Groups
عبدهللا القحطاني
مجموعات النظام
Group accounts
كل مستخدم يكون عضوا في مجموعة واحدة أو أكثر •
الملف /etc/passwdيعرف عضوية المجموعة •
الرئيسة للمستخدم
عضوية المجموعة االضافية للمستخدم تُعرف في الملف •
/etc/group
كال األمرين grepو getentيستخدمان لعرض •
معلومات المجموعة
عبدهللا القحطاني
الملف /etc/group
The /etc/group file
• كل مجموعة تُعرف في هذا الملف
• العالمة :تحدد حقول الملف ما يلي
group_name:password_placeholder:GID:user_list
الوصف مثال الحقل
اسم المجموعة mail اسم المجموعة group_name
حقل كلمة المرور ويشير الحرف xالى ان كلمة
كلمة المرور
المرور ليست مخزنة في الملف الحالي ولكن في x
password_placeholder
ملف /etc/gshadow
كل مجموعة يكون لها معرف فريد GID 12 معرف المجموعة GID
يحدد أعضاء المجموعة mail,postfix أعضاء المجموعة user_list
عبدهللا القحطاني
تغيير المجموعات
Changing groups
• النشاء ملف مملوك من قبل احدى المجموعات الثانوية
نستخدم األمر
newgrp group_name
يتم فتح شل جديد مع المجموعة األساسية الجديدة •
يستخدم األمر idللتحقق من المجموعة األساسية الجديدة •
يستخدم األمر exitللرجوع الى الشل السابق •
قد يتم التعطيل بسبب كلمات المرور للمجموعة •
عبدهللا القحطاني
تغيير ملكية المجموعة من ملف موجود
Changing the group ownership of an existing file
• تغيير ملكية المجموعة من ملف موجود باستخدام األمر
chgrp group_name file_name
• فقط يسمح للمستخدم بتغيير ملكية المجموعة من الملفات التي
يملكها
• يجب أيضا أن يكون عضوا في المجموعة الجديدة
عبدهللا القحطاني
العمل مع root
عبدهللا القحطاني
تسجيل الدخول بمستخدم root
Logging in as root
• تسجيل الدخول مباشرة إلى حساب rootيشكل خطرا أمنيا
• عوضا عن ذلك نستخدم األمر suأو sudo
عبدهللا القحطاني
استخدام األمر su
Using the su command
• األمر suيفتح شل جديد كمستخدم مختلف
– مثالsu user1 :
• لتسجيل الدخول كما لو كان المستخدم قد قام بتنفيذ تسجيل الدخول
للجلسة
– مثالsu - user1 :
عادة يستخدم لتشغيل األوامر كمستخدم root •
يستخدم الخيار –lلتسجيل الدخول للشل بشكل كامل •
المستخدم rootهو المستخدم االفتراضي •
للرجوع الى الشل األصلي يستخدم األمر exit •
عبدهللا القحطاني
األمر Sudo
sudo Command
عبدهللا القحطاني
استخدام األمر sudo
Using the sudo command
• األمر sudoيمكن المستخدم من تنفيذ أمر واحد كمستخدم آخر
• يجب أن يثبت من قبل برنامج التثبيت أو يدويا بعد تحميله
• يطالب المستخدمين بإدخال كلمة المرور الخاصة بهم
عبدهللا القحطاني
تجهيز األمر sudo
Setting up the sudo command
• اعدادات التكوين توجد في الملف /etc/sudoers
• يمكن أن يُعدل هذا الملف باستخدام األمر visudo
• يستخدم المحررات vi/vimافتراضيا
• لتعديل المحرر األساسي يستخدم األمر التالي
export EDITOR=gedit
• مثال الدخول لتزويد المستخدم bobبحق تشغيل األوامر مثل
المستخدم root
)Bob ALL=(ALL ALL
عبدهللا القحطاني
األوامر wو who
عبدهللا القحطاني
استخدام األمر who
Using the who command
• يعرض قائمة بأسماء المستخدمين الذين قاموا بتسجيل الدخول
حاليا على النظام
[sysadmin@localhost ~]$ who
root tty2 2013-10-11 10:00
sysadmin tty1 )2013-10-11 09:58 (:0
sysadmin pts/0 )2013-10-11 09:59 (:0.0
sysadmin pts/1 )2013-10-11 10:00 (example.com
الوصف مثال العمود
اسم المستخدم الذي سجل الدخول root اسم المستخدم username
المحطة المستخدمة للدخول tty2 المحطة terminal
تاريخ دخول المستخدم للنظام 2013-10-11 10:00 التاريخ date
عبدهللا القحطاني
w استخدام األمر
Using the w command
• يعرض معلومات المستخدم والنظام بشكل تفصيلي
[sysadmin@localhost ~]$ w
10:44:03 up 50 min, 4 users, load average: 0.78, 0.44, 0.19
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty2 - 10:00 43:44 0.01s 0.01s -bash
sysadmin tty1 :0 09:58 50:02 5.68s 0.16s id
sysadmin pts/0 :0.0 09:59 0.00s 0.14s 0.13s who
sysadmin pts/1 example.com 10:00 0.00s 0.03s 0.01s w
عبدهللا القحطاني
Using the w command
الوصف مثال العمود
اسم المستخدم الذي سجل الدخول root USER
أي محطة تم استخدامها tty2 TTY
example.comمن أين سجل المستخدم الدخول FROM
متى سجل المستخدم الدخول 10:00 @LOGIN
زمن المدة التي يكون فيها المستخدم خامل عن العمل من اخر 43:44 IDLE
أمر نفذه
مجموع زمن ( CPUبالثانية) المنفذة من قبل كل العمليات 0.01s JCPU
(البرامج) منذ تسجيل الدخول
مجموع زمن CPUللعملية الحالية فقط 0.01s PCPU
العملية التي ينفذها المستخدم حاليا -bash WHAT
عبدهللا القحطاني
الوحدة الرابعة عشرة
ادارة المستخدمين والمجموعات
Module 14
Managing Users and Groups
عبدهللا القحطاني
هدف االمتحان
5.2انشاء المستخدمين والمجموعات
• ملخص األهداف
– فهم أوامر المستخدمين والمجموعات
– انشاء معرفات للمستخدمين IDs
عبدهللا القحطاني
العمل مع المجموعات
عبدهللا القحطاني
انشاء مجموعة
Creating a Group
• السبب الرئيس إلنشاء مجموعة هو توفير وسيلة للمستخدمين
لتبادل الملفات .بعد إنشاء أو تعديل مجموعة ،يمكنك التحقق
من التغييرات عن طريق عرض الملف /etc/groupأو
تشغيل األمر getent
عبدهللا القحطاني
أمر groupadd
The groupadd Command
• األمر groupaddيستخدم إلنشاء مجموعة جديدة
• الخيار –gيستخدم لتحديد رقم (معرف) المجموعة
groupadd -g 506 research
• اذا كان الخيار –gلم يكتب فان األمر groupaddتلقائيا
سوف يوفر GIDللمجموعة الجديدة
عبدهللا القحطاني
اعتبارات معرف المجموعة
Group ID Considerations
• تجنب إنشاء معرفات المجموعة GIDsفي نفس النطاقات
الرقمية حيث يتوقع انشاء معرفات للمستخدمين IDsاذا كان
النظام يستخدم UPG
• معرفات المجموعة GIDsاألقل من 500محجوزة
لالستخدام من قبل النظام
• الخيار –rسوف يعطي المجموعة الجديدة معرف GIDأقل
من أدنى معرف مستخدم IDقياسي
عبدهللا القحطاني
اعتبارات تسمية المجموعة
Group Naming Considerations
يجب أن يكون الحرف األول من اسم المجموعة إما عالمة •
)_( underscoreأو حرف أبجدي صغير )(a-z
يسمح باستخدام 32حرف في معظم توزيعات لينكس ،لكن •
استخدام أكثر من 16حرف ممكن أن يسبب مشاكل لذلك
بعض التوزيعات قد ال تقبل أكثر من 16حرف
بعد أول حرف ،بقية الحروف يمكن ان تكون حروف أبجدية •
أو عالمة ) dash (-أو عالمة )_(underscore
آخر حرف يجب أن ال يكون عالمة الوصل )hyphen (- •
عبدهللا القحطاني
تعديل المجموعة
Modifying a Group
األمر groupmod –nيغير اسم المجموعة •
األمر groupmod –gيغير رقم المجموعة GID •
اذا تم تغيير رقم المجموعة GIDفإن جميع الملفات المرتبطة •
بهذه المجموعة سوف لن تبقى مرتبطة معها
وتسمى هذه الملفات بالملفات المعزولة ” “ orphaned •
إليجاد الملفات المعزولة ” “ orphanedنستخدم األمر •
find / -nogroup
عبدهللا القحطاني
حذف المجموعة
Deleting a Group
• يستخدم األمر groupdelلحذف المجموعة
• ممكن أن يخلق حذف المجموعة ملفات المعزولة ”
“orphaned
• المجموعات االضافية هي التي يمكن حذفها
عبدهللا القحطاني
العمل مع المستخدمين
عبدهللا القحطاني
الملف /etc/default/useradd
• الملف /etc/default/useraddيستخدم لتحديد
االعدادات االفتراضية عند انشاء حسابات المستخدمين
• يمكن االطالع على اإلعدادات االفتراضية المعدلة عن طريق
األمر useradd –D
• التعديل على هذا الملف يتطلب الدخول بحساب root
عبدهللا القحطاني
الملف /etc/default/useradd
الوصف مثال الحقل
المجموعة األساسية االفتراضية للمستخدم الجديد 100 GROUP
قاعدة الدليل االفتراضي التي بموجبها سيتم انشاء دليل رئيسي
/home HOME
جديد للمستخدم
قيمة الحقل تمثل عدد األيام بعد انتهاء صالحية كلمة المرور
-1 INACTIVE
والتي اصبح الحساب فيها معطل
تاريخ انتهاء الصالحية EXPIRE
/bin/bashاعدادات SHELLتحدد الشل االفتراضي للمستخدم SHELL
محتويات هذا الدليل سيتم نسخها الى الدليل الرئيسي الجديد
/etc/skel SKEL
للمستخدم كما سيعطى المستخدم الجديد ملكية هذه الملفات
” "mail spoolهو ملف الرسائل الذي توضع فيه الرسائل
yes CREATE_MAIL_SPOOL
الواردة
عبدهللا القحطاني
ملف /etc/login.defs
لتحديد الملف /etc/login.defsيستخدم •
االعدادات االفتراضية عند انشاء حسابات المستخدمين
يمكن االطالع على اإلعدادات االفتراضية فقط بالنظر الى •
محتويات هذا الملف
هذه االعدادات أيضا يمكن أن تعدل فقط بالتعديل على الملف •
مباشرة
التعديل على هذا الملف يتطلب الدخول بحساب root •
عبدهللا القحطاني
ملف /etc/login.defs
الوصف مثال الحقل
/var/mail/spoolالدليل الذي يحوي ملف الرسائل mail spoolالذي سيتم انشاؤه للمستخدمين MAIL_DIR
الحد األعلى من األيام الذي يستطيع المستخدم االستمرار على نفس كلمة المرور 99999 PASS_MAX_DAYS
بدون تغيير
أقل وقت يطلب من المستخدم االحتفاظ بكلمة المرور 0 PASS_MIN_DAYS
يحدد أقل عدد من الحروف تتكون منه كلمة المرور 5 PASS_MIN_LEN
يحدد أول رقم (معرف) للمستخدم UIDسوف يعطى للمستخدم العادي 500 UID_MIN
يحدد أقصى رقم (معرف) للمستخدم UIDسوف يعطى للمستخدم العادي 60000 UID_MAX
يحدد أول رقم (معرف) للمجموعة GIDسوف يعطى للمجموعة العادية 500 GID _MIN
يحدد أقصى رقم (معرف) للمجموعة GIDسوف يعطى للمجموعة العادية 60000 GID _MAX
قيمة هذا الحقل تحدد ما اذا كان الدليل الجديد الخاص بالمستخدم سيتم انشاؤه أم yes CREATE_HOME
ال
يحدد الصالحيات االفتراضية التي ستعطى لدليل المستخدم الرئيسي 077 UMASK
عبدهللا القحطاني
العمل مع معلومات الحساب
عبدهللا القحطاني
مميزات األفراد الذين يملكون حسابات منفصلة
Advantages to Individuals having Separate Accounts
عبدهللا القحطاني
اعتبارات الحساب
Account Considerations
• قبل انشاء حساب المستخدم ،يجب النظر الى القيم التي يجب أن
تعطى للعناصر التالية الخاصة بالمستخدم:
اسم المستخدم User name –
معرف المستخدم UID –
المجموعة األساسية Primary Group –
المجموعات االضافية )Supplementary group(s –
الدليل الرئيسي Home Directory –
الدليل الهيكلي Skeleton Directory –
الشل Shell –
المعلومات االضافية Comment –
عبدهللا القحطاني
األمر useradd
• األمر useraddيعطي المقدرة على انشاء حساب مستخدم جديد على
سبيل المثال:
useradd -u 1000 -c 'Jane Doe' jane
• التعديل يتم في الملفات التالية
/etc/passwd –
/etc/shadow –
/etc/group –
/etc/gshadow –
يتم انشاء •
ملف رسائل (/var/spool/mail/jane) mail spool –
دليل رئيسي للمستخدم )(/home/jane –
عبدهللا القحطاني
كلمة المرور اآلمنة
Password Security
عبدهللا القحطاني
اختيار كلمة المرور
Picking a Password
تجنب استخدام المعلومات الشخصية في كلمات المرور •
التشجيع على استخدام كلمات مرور معقدة •
التشجيع على استخدام كلمات مرور طويلة ولكن ال تكون •
طويلة جدا بحيث يصعب تذكرها
األخذ بعين االعتبار متطلبات اعادة تعيين كلمات المرور •
للمستخدمين
عبدهللا القحطاني
تعيين كلمات المرور
Setting a Password
األمر passwdيمكن المستخدم من تغيير كلمة المرور •
المستخدم rootيستطيع تغيير كلمة المرور ألي مستخدم •
passwd user_name
يمكن للمستخدم rootأن يكسر قواعد كلمات المرور باستثناء •
قاعدة ”“no empty passwords
المستخدم يستطيع تغيير كلمة المرور الخاصة به من خالل •
تشغيل األمر passwdبدون وسيط argument
المستخدم العادي ال يستطيع كسر قواعد كلمات المرور •
قواعد كلمات المرور تختلف من توزيعة الى أخرى •
عبدهللا القحطاني
األمر chage
chage Command
عبدهللا القحطاني
استخدام األمر chage
• يستخدم لتغيير اعدادات كلمة المرور للمستخدم
• الخيارات المستخدمة مع األمر chageهي
عبدهللا القحطاني
الوصف الخيار الطويل الخيار القصير
--listسرد معلومات الحساب -l
--lastday LAST_DAYتحديد موعد تغيير كلمة المرور األخيرة الى LAST_DAY -d LAST_DAY
--expiredate EXPIRE_DATE -E EXPIRE_DATEضبط الحساب لينتهي في EXPIRE_DATE
--helpعرض المساعدة الخاصة باألمر chage -h
--inactive INACTIVEضبط الحساب ليسمح بتسجيل الدخول في األيام الغير -I INACTIVE
نشطة بعد انتهاء صالحية كلمة المرور
--mindays MIN_DAYSضبط الحد األدنى من األيام قبل السماح بتغيير كلمة -m MIN_DAYS
المرور الى MIN_DAYS
--maxdays MAX_DAYSضبط الحد األدنى من األيام قبل السماح بتغيير كلمة -M MAX_DAYS
المرور الى MAX_DAYS
--warndays WARN_DAYSضبط عدد األيام قبل انتهاء صالحية كلمة المرور ليبدأ -W WARN_DAYS
عرض االنذار الى WARN_DAYS
عبدهللا القحطاني
تعديل حساب المستخدم
عبدهللا القحطاني
تعديل مستخدم
Modify a User
• المستخدم قد يحتاج إلى تسجيل الخروج لتعديل حساب
• تستخدم األوامر w ، whoأو lastلمعرفة ما اذا كان
المستخدم قد قام حاليا بتسجيل الدخول للنظام
عبدهللا القحطاني
األمر usermod
The usermod Command
• يستخدم األمر usermodلتعديل حساب المستخدم
• أهم الخيارات المستخدمة مع األمر usermodهي
عبدهللا القحطاني
الوصف الخيار
-c COMMENTيستخدم إلضافة قيم لحقل التعليقات
-d HOME_DIRيستخدم لتغيير الدليل الرئيسي للمستخدم
-e EXPIRE_DATEيستخدم لتغيير تاريخ انتهاء الصالحية لحساب المستخدم
ضبط الحساب للسماح بتسجيل الدخول في األيام الغير نشطة بعد انتهاء صالحية كلمة
-f INACTIVE
المرور
-g GROUPيستخدم لضبط المجموعة األساسية بالمجموعة GROUP
-G GROUPSيستخدم لضبط المجموعة االضافية
-aإلحاق مجموعة اضافية للمستخدم مع تلك المجموعات المحددة من قبل -G
-hيستخدم لعرض المساعدة الخاصة باألمر usermod
-l NEW_LOGINيستخدم لتغيير اسم الدخول للمستخدم
-Lيستخدم لقفل حساب المستخدم
-s SHELLيستخدم لتحديد شل الدخول الخاص بحساب المستخدم
-u NEW_UIDيستخدم لتغيير رقم معرف المستخدم الى معرف جديد UID
-Uيستخدم لفك قفل حساب المستخدم
عبدهللا القحطاني
ازالة المستخدم
Removing a User
عبدهللا القحطاني
حذف المستخدم
Delete a User
• يستخدم األمر userdelلحذف حساب المستخدم
• افتراضيا ،فقط الحساب هو من سيحذف أما الملفات الخاصة
بالمستخدم فسوف تبقى
• باستخدام الخيار –rالملفات الموجودة في الدليل الرئيسي
للمستخدم وملف الرسائل ” “mail spoolالخاص بالمستخدم
سوف يتم حذفها
عبدهللا القحطاني
الوحدة الخامسة عشرة
الملكية واألذونات
Module 15
Ownership and Permissions
عبدهللا القحطاني
هدف االمتحان
5.3ادارة أذونات الملفات وملكيتها
• ملخص األهداف
– مالك وأذونات الملفات واألدلة
عبدهللا القحطاني
الملكية
Ownership
عبدهللا القحطاني
(ls -l) عرض الملكية
Viewing Ownership (ls -l)
ls –l نستخدم األمر،• لعرض ملكية ملف عادي
[sysadmin@localhost ~]$ ls -l /etc/named.conf
-rw-r-----. 1 root named 1163 May 13 10:27 /etc/named.conf
عبدهللا القحطاني
(stat) عرض الملكية
Viewing Ownership (stat)
يمكن المستخدم من عرض معلومات عن ملكيةstat • األمر
الملفات بشكل أكثر تفصيل
[sysadmin@localhost ~]$ stat /etc/named
File: `/etc/named' user owner
عبدهللا القحطاني
ملكية الملفات
File Ownership
كل ملف يكون مملوكا لمستخدم ومجموعة •
اذا المستخدم أنشأ ملف ،فإنه هو المالك لهذا الملف •
األمر chownيستطيع تغيير ملكية الملف من مستخدم •
آلخر لكن هذا األمر ال يستخدم إال من قبل المستخدم root
على الرغم من أن معظم األوامر سوف تظهر اسم حساب •
المستخدم كمالك ،فإن نظام التشغيل في الواقع يقوم بالتعامل
مع معرف المستخدم UIDكمالك الملف.
عبدهللا القحطاني
ملكية المجموعة
Group Ownership
عند انشاء ملف ،فان المجموعة الرئيسة للمستخدم الذي أنشأ الملف •
هي المجموعة المالكة للملف
يمكن للمستخدم استخدام األمر chgrpلتغيير المجموعة المالكة •
للملف الذي يملكه المستخدم إلى مجموعة يكن فيها المستخدم عضوا
يمكن للمستخدم rootاستخدام األمر chgrpلتغيير المجموعة •
المالكة ألي ملف إلى أي مجموعة
بينما معظم األوامر سوف تظهر اسم المجموعة المالكة ،إال أن •
النظام فعليا يتتبع ملكية المجموعة مستخدما معرف المجموعة GID
عبدهللا القحطاني
الملفات المعزولة
Orphaned Files
• إذا تم حذف المستخدم ،أو تغير معرف المستخدم ،UIDفإن
معرفاتهم السابقة UIDsستظهر كمالك لتلك الملفات
• إذا تم حذف المجموعة ،أو تغير معرف المجموعة ،GIDفإن
معرفات المجموعة السابقة GIDsستظهر كمجموعة مالكة
لتلك الملفات
عبدهللا القحطاني
معلومات الهوية
Identity Information
عبدهللا القحطاني
اكتشاف الهوية
Finding Identity
• لمعرفة هوية المستخدم الحالي والمجموعات التي هو عضو
id فيها يتم استخدام األمر
[sysadmin@localhost ~]$ id
uid=500(sysadmin) gid=500(sysadmin)
groups=500(sysadmin),10001(research),10002(develo
pment)
context=unconfined_u:unconfined_r:unconfined_t:s0
-s0:c0.c1023
لنفس الغرضwhoami • أيضا يمكن استخدام األمر
عبدهللا القحطاني
عرض عضوية المجموعة
Viewing Group Membership
• لعرض اسماء المجموعات التي يكون المستخدم عضو فيها،
يستخدم األمر groups
[sysadmin@localhost ~]$ groups
sysadmin research development
• اذا تمت اضافة المستخدم الى مجموعة اثناء تسجيله الدخول،
يجب عليه أوال تسجيل الخروج ثم الدخول من جديد لكي
يستطيع االطالع على عضوية المجموعة الجديدة
عبدهللا القحطاني
تغيير ملكية الملف والمجموعة
عبدهللا القحطاني
األمر newgrp
The newgrp Command
األمر newgrpيستخدم لتغيير المجموعة األساسية الفاعلة من •
خالل فتح شل جديد مع مجموعة أساسية مختلفة
يمكن للمستخدمين استخدام األمر newgrpلتعيين المجموعة •
األساسية إلى مجموعة ينتمون إليها قبل أن ينشئوا ملفاتهم
يمكن للمستخدم العودة إلى المجموعة األساسية األصلية الخاصة •
به باستخدام األمر exit
لتغيير المجموعة األساسية للمستخدم بشكل دائم ،يتطلب من •
المستخدم rootتنفيذ األمر التالي:
usermod -g groupname username
عبدهللا القحطاني
األمر chgrp
• يمكن للمستخدم تغيير المجموعة التي تملك ملفات المستخدم
إلى مجموعة ينتمي اليها باستخدام األمر chgrp
• المستخدم rootيستطيع استخدام األمر chgrpلتغيير
المجموعة المالكة ألي ملف إلى مجموعة أخرى أو GID
• إذا تم استخدام الخيار –Rمع األمر ،chgrpسوف يكون
التأثير ممتد ،حيث يطبق على الدالئل الفرعية ومحتوياتها
عبدهللا القحطاني
األمر chown
• األمر chownيمكن أن يستخدم بواسطة المستخدم root
لتغيير المالك أو المجموعة المالكة أو كالهما
• يمكن للمستخدم العادي استخدام chownلتغيير المجموعة
المالكة للملفات ،ولكن ألن chgrpيستخدم فليس هناك
حاجة لألمر chown
• على سبيل المثال:
>chown user:group <file|directory
>chown user <file|directory
>chown :group <file|directory
عبدهللا القحطاني
األذونات
Permissions
عبدهللا القحطاني
األذونات
Permissions
• عند تنفيذ األمر ls –lفإن أول عشر حروف من كل سطر
تكون متعلقة بنوع الملف واألذونات الخاصة به
– أول حرف يحدد نوع الملف
– الحروف من 4-2هي أذونات المستخدم المالك للمف
– الحروف من 7-5هي أذونات المجموعة المالكة للملف
– الحروف من 10-8هي أذونات بقية المستخدمين أو ما يشار إليهم
أحيانا بإسم أذونات العالم .وهؤالء هم كل المستخدمين الذين ليسوا
مالك الملف أو أعضاء في مجموعة الملف.
عبدهللا القحطاني
عرض األذونات
Viewing Permissions
[root@localhost ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 4135 May 27 21:08 /etc/passwd
• بناء على مخرجات األمر السابق نجد أن أول عشرة حروف
يمكن وصفها بالشمل التالي
File User Owner Group Owner Others
Type Read Write Execute Read Write Execute Read Write Execute
- r w - r w - r - -
عبدهللا القحطاني
أنواع الملفات
)Types of Files (Review
نوع الملف الحرف
ملف اعتيادي والذي قد يكون فارغ أو يحوي بيانات نصية أو ثنائية -
ملف دليل والذي يحوي أسماء الملفات األخرى والروابط الخاصة بها d
ارتباط رمزي وهو اسم الملف الذي يشير (يؤشر) إلى ملف آخر l
ملف الكتلة ( )blockوهو الملف الذي يربط a block hardware deviceالذي يقرأ b
البيانات على شكل كتل
ملف الحرف ( )characterوهو الملف الذي يربط a character hardware device c
الذي يقرأ بايت واحد في كل مرة
ملف الوصل ( )pipeيعمل مثل رمز الوصل ( )pipeوهو الملف يمكن نتائج عملية من p
التواصل مع عملية أخرى ،حيث تستخدم مخرجات العملية األولى هي مدخالت العملية
الثانية
ملف socketيسمح لعمليتين بالتواصل مع بعضها البعض ،حيث يسمح لكلتا العمليتين إما s
بإرسال البيانات أو استقبالها
عبدهللا القحطاني
معنى األذونات
Meaning of Permissions
المعت بالنسبة للدليل المعت بالنسبة للملف األذونات
العملية تستطيع قراءة محتويات الملف ,يمكن رسد أسماء الملفات يف المجلد ولكن
غب متوفرةيعت أن المحتويات يمكن أن تعرض التفاصيل األخرى ر
وذلك ي r
وتنسخ
يمكن الكتابة يف الملفات بواسطة العملية يمكن اضافة الملفات أو حذفها من
التغيب يف الملف .الحظ الدليل .الحظ أن اإلذن wيتطلب اإلذن x
ر لذلك يمكن حفظ
w
لك يعمل بشكل صحيح أن اإلذن wيتطلب اإلذن rعىل الملفات عىل األدلة ي
لك يعمل بشكل صحيحي
الملف يمكن تنفيذه أو تشغيله كعملية أو المستخدم يستطيع استخدام األمر cd
للدخول اىل الدليل ويستطيع استخدام برنامج
الدليل يف اسم المسار للوصول اىل x
الملفات واألدلة الفرعية الموجودة يف هذا
الدليل
عبدهللا القحطاني
فهم األذونات
Understanding Permissions
• يوجد فقط مجموعة واحدة من ثالث مجموعات من األذونات
ستطبق عندما يحاول المستخدم الوصول الى الملف:
– اذا كان المستخدم هو مالك الملف ،فسيتم تطبيق أذونات المالك
(الثالث األولى) فقط
– اذا لم يكن المستخدم مالكا للملف ،ولكنه عضوا في المجموعة
المالكة للملف ،فسيتم تطبيق أذونات مجموعة المالك (الثالث
الثانية) فقط
– اذا لم يكن المستخدم مالكا للملف ،ولم يكن عضوا في المجموعة
المالكة للملف ،فسيتم تطبيق أذونات بقية المستخدمين (الثالث
االخيرة) فقط
عبدهللا القحطاني
أهمية الوصول إلى الدليل
Importance of Directory Access
سؤال :ما هو مستوى الوصول الذي يملكه bobللوصول الى
/data/abc.txt؟
ال شيء ،ألنه بدون االذن تنفيذ على الدليل /dataال توجد
وسيلة للمستخدم Bobللوصول إلى الملف /data/abc.txt
عبدهللا القحطاني
األمر chmod
chmod Command
عبدهللا القحطاني
األمر chmod
• األمر chmodيستخدم لتعيين أو تعديل األذونات
• لتغيير أذونات الملف ،يجب أن يكون المستخدم إما مالك
الملف أو المستخدم root
• هناك نوعان من التقنيات المميزة والتي تستخدم مع األمر
chmodلتغيير األذونات هما:
– رمزي (حرفي) symbolic
– رقمي numeric
عبدهللا القحطاني
االستخدام الرمزي لألمر chmod
Using chmod symbolically
• مع هذه التقنية ،المستخدم يحدد operator ، whoو what
whoتحدد من هم operatorيحدد ما whatتحدد اإلذن
الذين ستتغير أذوناتهم: إذا كانت العملية إضافة، الذي سيتم تعيينه على
إزالة أو إسناد الملف
• uمستخدم ()user • +لإلضافة ()add • rللقراءة ()reed
• gمجموعة ()gruop • -لإلزالة ()remove • wللكتابة ()write
• oالبقية ()others • = لإلسناد ( set • xللتنفيذ ()execute
• aالجميع ()everyone )exactly • -ال شيء ()nothing
عبدهللا القحطاني
أمثلة
chmod symbolic (alter) examples
• chmod u+x abc.txt
– سوف يضيف إذن التنفيذ للمستخدم مالك الملف
• chmod go-rx abc.txt
– سوف يغير/يحذف إذن القراءة والتنفيذ من المجموعة المالكة
للملف ومن بقية المستخدمين
• chmod u+wx,g=rx,o-r abc.txt
– سوف يضيف إذن الكتابة والتنفيذ لمالك الملف ،وسيسند للمجموعة
المالكة للملف إذن القراءة والتنفيذ ،وسيزيل إذن القراءة عن بقية
المستخدمين
عبدهللا القحطاني
االستخدام الرقمي لألمر chmod
Using chmod (set) numerically
• عند استخدام التقنية العددية مع األمر chmodثالث خانات
عددية سوف تستخدم لتمثيل األذونات لكل من المستخدم،
المجموعة وبقية المستخدمين
• وتسمى أيضا الطريقة الثمانية حيث تستخدم القيم الثمانية
لحساب األذونات:
– 4 = read
– 2 = write
– 1 = execute
عبدهللا القحطاني
Using chmod numerically
• من خالل الجمع بين األذونات • ،يجب تحديد كافة األذونات
التسعة (الحروف) عند استخدام مجال القيم سوف يتراوح بين
األسلوب الثماني :7-0
rwxrwxrwx = 777 – rwx = 7 –
rwxrwxr-x = 775 – rw- = 6 –
rwxr-xr-x = 755 – r-x = 5 –
rwx------ = 700 – r-- = 4 –
rw-rw-r-- = 664 – -wx = 3 –
rw-r----- = 640 – -w- = 2 –
--x = 1 –
--- = 0 –
عبدهللا القحطاني
أمثلة
chmod numeric examples
chmod numeric أمثلة النتائج بالحروف
chmod 755 abc.sh rwxr-xr-x
chmod 660 abc.txt rw-rw----
chmod 771 somedir rwxrwx--x
chmod 400 my.txt r--------
chmod 700 userdir rwx------
عبدهللا القحطاني
األمر umask
umask Command
عبدهللا القحطاني
فهم األمر umask
Understanding umask
• يتم استخدام قيمة umaskلتحديد األذونات االفتراضية التي
تم تعيينها عند إنشاء ملف جديد أو دليل جديد.
• األذونات االفتراضية يتم تحديدها عن طريق إزالة األذونات
في umaskمن أذونات الحد األقصى المسموح به في النظام
• الحد األقصى المسموح به لألذونات هو:
– الملف الجديد هو rw-rw-rw-أو 666
– الدليل الجديد هو rwxrwxrwxأو 777
عبدهللا القحطاني
User umask example
Typical user umask
الدليل الملف
Maxium Allowable Permission rwxrwxrwx 777 rw-rw-rw- 666
umask value -------w- 002 -------w- 002
Default permission rwxrwxr-x 775 rw-rw-r-- 664
عبدهللا القحطاني
Root umask example
Root user umask
الدليل الملف
Maxium Allowable Permission rwxrwxrwx 777 rw-rw-rw- 666
umask value ----w--w- 022 ----w--w- 022
Default permission rwxr-xr-x 755 rw-r--r-- 644
عبدهللا القحطاني
Private umask example
umask for privacy
الدليل الملف
Maxium Allowable Permission rwxrwxrwx 777 rw-rw-rw- 666
عبدهللا القحطاني
استخدام األمر umask
Using umask
لعرض قيمة umaskالحالي ،ينفذ األمر umaskبدون أي •
معامل argument
لتعيين umaskبالقيمة ،027يتم كتابة األمر umask 027 •
قيمة umaskالجديدة سيتم تطبيقها فقط خالل الجلسة الحالية •
عند فتح شل جديد umask ،االفتراضي سوف يكون ساري •
المفعول مرة أخرى.
لتعيين umaskافتراضي جديد ،يتم تعديل الملف ~/.bashrc •
قيمة umaskالجديدة ليس لها أي تأثير على الملفات أو األدلة •
الموجودة ،ولكن سوف يطبق على الملفات واألدلة الجديدة
عبدهللا القحطاني
الوحدة 16
األذونات الخاصة ،الروابط ومواقع الملفات
Module 16
Special Permissions, Links and File
Locations
عبدهللا القحطاني
هدف االمتحان
5.4األدلة الخاصة والملفات
• ملخص األهداف
– العمل مع ملفات النظام والمكتبات
– فهم الروابط الرقمية
عبدهللا القحطاني
setuid أذن
setuid Permission
عبدهللا القحطاني
اإلذن setuid
The setuid Permission
• يتم تعيين إذن setuidعلى بعض أدوات (مرافق) معينه للنظام بحيث
يمكن للمستخدم العادي تنفيذ البرنامج كما لو تم تشغيله من قبل
المستخدم .rootهذا يسمح للمستخدم العادي بتنفيذ مهام إدارية
مشتركة خاصة بالنظام دون الحاجة إلى الوصول المباشر إلى
الحساب .root
• هناك مثال ممتاز على إذن setuidفي العمل وهو األمر
/usr/bin/passwdعندما يقوم المستخدم بتنفيذ األمر
passwdبشكل صحيح ،فإن األمر يصبح قادرا على تحديث الملف
/etc/shadowلتعيين كلمة المرور الجديدة للمستخدم .هذا
الملف ال يمكن الوصول إليه بشكل طبيعي أال بواسطة المستخدم
.root
عبدهللا القحطاني
الملفات مع setuid
Files with setuid
• الملف الذي لديه اإلذن setuidسيتم وضع الحرف الصغير
” “sللمستخدم "المالك" في موضع التنفيذ ،يتم االشارة لكل
من setuidوموضع التنفيذ للمستخدم المالك بالتالي:
-rwsr-xr-x
• الملف الذي لديه اإلذن setuidولكنه يفتقر الى إذن التنفيذ
للمستخدم المالك ،سوف يظهر الحرف الكبير ” “Sليبين أن
اإلذن غير فعال
-rwSr-xr-x
عبدهللا القحطاني
استخدام األمر chmodمع اإلذن setuid
Using chmod with setuid
• األمر chmodيمكن أن يستخدم لتعيين أو ازالة اإلذن
،setuidسواء تم استخدام الطريقة الرقمية أو الحرفية.
• لتعيين setuidعندما يكون nnnهو وضع اإلذن األصلي:
– chmod u+s file or
– chmod 4nnn file
• إلزالة setuidعندما يكون وضع اإلذن األصلي هو 4nnn
– chmod u-s file or
– chmod 0nnn file
عبدهللا القحطاني
setgid اإلذن
setgid Permission
عبدهللا القحطاني
اإلذن setgidعلى الملف
The setgid Permission on a File
• اإلذن setgidيستخدم مع الملف مثل ما يستخدم اإلذن setuidما عدا
أنه يستخدم مع أذونات المجموعة .عندما يقوم المستخدم بتنفيذ الملف
الذي يملك اإلذن ،setgidفإن النظام يشغل األمر كما اذا كان المستخدم
عضوا في المجموعة التي تملك التنفيذ ،وعادة يمنح الوصول الى ملفات
اضافية.
• كمثال على إذن setgidعلى ملف هو األمر /usr/bin/wall
األمر wallيرسل رسائل الى محطات المستخدمين األخرى .بما أن
قابلية التنفيذ مملوكة بواسطة مجموعة ” ،“ttyفإنه عندما تقوم بتشغيل
اإلذن تقوم بمنح المستخدم الوصول الى الملفات المملوكة من قبل
مجموعة ” ،“ttyوالتي تسمح للمستخدم بكتابة رسالة الى أي ” “ttyأو
محطة على النظام.
عبدهللا القحطاني
اإلذن setgidعلى الدليل
The setgid Permission on a Directory
• يتم استخدام اإلذن setgidعلى الدليل من قبل المدراء لجعل
اإلذن أسهل للمستخدمين األعضاء في المجموعة ليصبحوا
قادرين على مشاركة الملفات مع المستخدمين األخرين في نفس
المجموعة.
• عندما يستخدم اإلذن setgidعلى الدليل ،فإن أي ملف تم انشاؤه
في ذلك الدليل يكون مملوكا بشكل آلي للمجموعة التي تملك
الدليل
• عندما يتم انشاء دليل فرعي جديد في الدليل الذي يملك ،setgid
فإن الدليل الفرعي الجديد سوف يملك اإلذن setgidوستكون
المجموعة المالكة له هي المجموعة التي تملك الدليل األب.
عبدهللا القحطاني
الملفات مع setgid
Files with setgid
• الملف الذي لديه اإلذن setuidسيتم وضع الحرف الصغير
” “sلمجموعة "المالك" في عمود التنفيذ ،يتم االشارة لكل من
setgidوموضع التنفيذ للمستخدم المالك بالتالي:
-r-xr-sr-x
• الملف الذي لديه اإلذن setgidولكنه يفتقر الى إذن التنفيذ
للمجموعة المالكة ،سوف يظهر الحرف الكبير ” “Sليبين أن
اإلذن غير فعال
-r-xr-Sr-x
عبدهللا القحطاني
استخدام األمر chmodمع اإلذن setgid
Using chmod with setgid
• األمر chmodيمكن أن يستخدم لتعيين أو ازالة اإلذن
،setgidسواء تم استخدام الطريقة الرقمية أو الحرفية.
• لتعيين setgidعندما يكون nnnهو وضع اإلذن األصلي:
– chmod g+s file or
– chmod 2nnn file
• إلزالة setgidعندما يكون وضع اإلذن األصلي هو 2nnn
– chmod g-s file or
– chmod 0nnn file
عبدهللا القحطاني
Sticky Bit العمل مع
عبدهللا القحطاني
اإلذن sticky bit
The sticky bit Permission
• اإلذن sticky bitيُستخدم لمنع األخرين من حذف الملفات التي
ال يملكونها في الدليل الذي تمت مشاركته مع األخرين
• عادة ،اذا كان المستخدم يملك اذن الكتابة على الدليل ،فإن ذلك
المستخدم يستطيع حذف أي ملف في ذلك الدليل ،بما في ذلك
الملفات التي ال يملكها المستخدم ،بغض النظر عن األذونات
الملف.
• المثال التقليدي على الدليل الذي عادة يملك اإلذن sticky bitهو
الدليل ./tmpهذا الدليل هو مقياس على كل أنظمة اللينكس
وتوفر مكان حيث جميع المستخدمين يستطيعون تخزين الملفات.
مع مجموعة ،sticky bitال يستطيع المستخدم حذف ملفات
/tmpالخاصة بالمستخدمين األخرين.
عبدهللا القحطاني
األدلة مع مجموعة sticky bit
Directories with the sticky bit set
عندما يتم تعيين إذن ،sticky bitالحرف " "tسوف يظهر في عمود •
التنفيذ لمجموعة بقية المستخدمينdrwxrwxrwt :
بعكس setuidو ،setgidعندما تستخدم األحرف الكبيرة لإلشارة على •
المشكلة التي يمكن أن تمنع تلك األذونات من العمل ،فإن ظهور الحرف
الكبير " "Tال يعني دائما أن إذن sticky bitلم يتم ضبطه بشكل
صحيحdrwxrwx—T :
اذا ما كانت مجموعة المالك أو بقية المستخدمين يملكون إذن التنفيذ ،فإنه •
من الممكن إلذن sticky bitأن يعمل ألجل تلك الحسابات.
اذا كان المستخدم المالك هو من يملك إذن التنفيذ فقط ،فإنه من المستحيل •
إلذن sticky bitأن يعمل ألجل تلك الحساباتdrwx------T :
عبدهللا القحطاني
استخدام األمر chmodمع اإلذن sticky bit
Using chmod with sticky bit
• األمر chmodيمكن أن يستخدم لتعيين أو ازالة اإلذن
sticky bitسواء تم استخدام الطريقة الرقمية أو الحرفية.
• لتعيين sticky bitعندما nnnيكون وضع اإلذن األصلي:
– chmod o+t dir or
– chmod 1nnn dir
• إلزالة sticky bitعندما يكون الوضع األصلي هو :1nnn
– chmod o-t dir or
– chmod 0nnn dir
عبدهللا القحطاني
الروابط الصلبة والرمزية
(المادية والغير مادية)
Hard and Symbolic Links
عبدهللا القحطاني
الروابط الصلبة والروابط الرمزية
Hard Links and Symbolic Links
• كال الروابط الصلبة واللينة (أيضا تسمى الرمزية) مفيد لتوفير
األسماء البديلة للملفات واألدلة
• عوضا عن الحاجة لكتابة مسار الملف الطويل والصعب مثل:
• /usr/share/doc/package/data/2013/oct
ober/10/valuable-information.txt
• ...قد يكون رابط االسم لنفس الملف بكل بساطة:
• ~/valuable.txt
• كل تقنيات الربط (الصلبة واللينة) لديه مميزات وعيوب
عبدهللا القحطاني
الروابط الصلبة ضد الروابط الرمزية
Hard Links vs. Symbolic Links
inode inode
عبدهللا القحطاني
فهم نظام الملفات
Understanding the Filesystem
• لفهم كيف تعمل الروابط ،فإنه من المفيد فهم كيف يقوم نظام
الملفات بتتبع الملفات.
• لكل ملف تم انشاؤه ،هناك كتلة واجدة من البيانات تسمى
جدول )inode table( inodeالتي تخزن المعلومات
األولية للملف مثل :األذونات ،الملكيات ،الطابع الزمني
ومؤشرات الى حيث يتم تخزين محتويات الملف
• جدول inodeيتضمن غالبا على كل المعلومات حول الملف
ما عدا اسم الملف
عبدهللا القحطاني
)Understanding the Filesystem(cont
كل جدول inodeيكون مرتبط برقم inode ( inode •
)numberفريد
األمر ls –iسوف يعرض رقم inodeلكل ملف •
الدليل يخزن أسماء جميع الملفات بداخل الدليل كما يخزن •
أرقام inodeالمرتبطة بها.
عندما يتم الوصول الى الملف ،فإن النظام يقرأ بينات الدليل •
ليجد اسم الملف ومن ثم يقوم باسترداد البيانات الخاصة به
عن طريق البحث عن كتل البيانات المشار اليها في inode
التابع لها.
عبدهللا القحطاني
مثال على الربط الصلب
Hard Link Example
بفرض أن ملف /etc/passwdيحتوي على 123 •
كرقم inode
الدليل /etcسيخزن جدول مكون من اسماء الملفات •
وارقام inodeمثل
file names inode numbers
passwd 123
shadow 175
group 144
gshadow 897
عبدهللا القحطاني
Hard Link Example(cont)
والذي هو رابط/etc/mypasswd الملف المسمى •
سوف يشار اليه ايضا/etc/passwd صلب للملف
inode 123 بالرقم
file names inode numbers
passwd 123
mypasswd 123
shadow 175
group 144
gshadow 897
عبدهللا القحطاني
الروابط الصلبة
Hard Links
• كل ملف يملك على األقل رابط صلب واحد اليه (من أجل اسم
الملف األصلي)
• الرقم الخاص بعدد الروابط يظهر بين األذونات وبين المستخدم
المالك في القائمة التفصيلية:
$ echo data > file.original
*$ ls -li file.
278772 -rw-rw-r--. 1 sysadmin sysadmin 5 Oct 25 15:42 file.original
• عدد الروابط سوف يزيد بمقدار واحد لكل رابط صلب الذي تتم
اضافته أو تنقص بمقدار واحد لكل رابط صلب الذي تتم ازالته
عبدهللا القحطاني
انشاء الروابط الصلبة
Creating Hard Links
• إلنشاء الروابط الصلبة ،األمر lnيستخدم مع أول
argumentليصبح اسم الملف موجود وثاني argument
ليصبح اسم الملف الجديد ليقوم بربطه بالملف.
$ ln file.original file.hard.1
*$ ls -li file.
278772 -rw-rw-r--. 2 sysadmin sysadmin 5 Oct 25 15:53 file.hard.1
278772 -rw-rw-r--. 2 sysadmin sysadmin 5 Oct 25 15:53 file.original
عبدهللا القحطاني
الروابط اللينة (الرمزية)
Soft Links
الروابط اللينة (الرمزية) هي ملف يشير الى اسم ملف آخر •
نوع الملف للروابط اللينة هو ”“l •
الروابط اللينة تشبه االختصارات في نظام Windows •
العديد من الروابط اللينة موجودة فعال مع النظام بما في ذلك •
/etc/grub.conf
$ ls -l /etc/grub.conf
>lrwxrwxrwx. 1 root root 22 Feb 15 2011 /etc/grub.conf -
../boot/grub/grub.conf
عبدهللا القحطاني
انشاء الروابط اللينة
Creating Soft Links
• انشاء رابط لين يتضمن استخدام األمر lnمع الخيار –s
ومع الملف الموجود كأول وسيط argumentومع اسم
الملف كثاني وسيط :argument
$ ln -s /etc/passwd mypasswd
$ ls -l mypasswd
lrwxrwxrwx. 1 sysadmin sysadmin 11 Oct 31 13:17 >mypasswd -
/etc/passwd
عبدهللا القحطاني
مقارنة الروابط الصلبة واللينة
Comparing Hard and Soft Links
• الروابط الصلبة ليس لديها أي نقطة للخطأ
– كل اسماء الملفات التي تم ربطها الى inodeستكون متكافئة
– ما دام ما يزال هناك رابط صلب واحد متبقي ،فإن الوصل الى
inodeسيبقى متاح
• الروابط اللينة يوجد لديها نقطة واحدة للخطأ
– اذا الملف األصلي تم حذفة أو تم نقله ،فإن ملف الرابط اللين سوف
لن يبقى صالحا
– يمكن ان يقال عن الرابط اللين الخاطئ بأنه ُمعَلق ”“dangling
• تعد ميزة للروابط الصلبة ()Advantage: Hard Link
عبدهللا القحطاني
مقارنة الروابط الصلبة واللينة
Comparing Hard and Soft Links
• الروابط الصلبة من الصعب رؤيتها
– الملف الذي عداد الرابط أكبر من واحد
– يمكن العثور عليه باستخدام ()find / -inum 123
• الرابط اللين من السهل رؤيته
– ملف الربط (نوع )l
– اسم الملف يؤشر على ما هو مرتبط به
• تعد ميزة للرابط اللين ()Advantage: Soft Link
عبدهللا القحطاني
مقارنة الروابط الصلبة واللينة
Comparing Hard and Soft Links
• الروابط الصلبة:
– ال يمكن ربطها بالدليل
– ال يمكن ربط الملف الموجود على جهاز واحد أو قسم الى ملف
على جهاز آخر أو قسم آخر
• الروابط اللينة
– يمكن ربطها بملف الدليل
– يمكن أن تعبر من جهاز واحد أو قسم الى اآلخر
• تعد ميزة للرابط اللين ()Advantage: Soft Link
عبدهللا القحطاني
فهم نظام الملفات
عبدهللا القحطاني
معايير التسلسل الهرمي لنظام الملفات
)Filesystem Hierarchy Standard (FHS
• FHSهو مجموعة من القواعد أو اإلرشادات التي يُنصح باتباعها من أجل
التعرف على كيفية تنظيم األدلة والملفات
• موجودة في الموقع http://www.pathname.com/fhs
• يتم تصنيف كل دليل في النظام الى:
– قابل للمشاركة على الشبكة ليستخدم من قبل أجهزة متعددة أو ال
– يوجد لديها ملفات تملك محتوى يمكن أن يتغير (متغير) أو ال يتغير (ثابت)
• لتصنيف أدلة النظام ،غالبا ما يكون من الضروري استخدام األدلة تحت المستوى
األعلى
غير قابل للمشاركة قابل للمشاركة
Not Shareable Shareable
/var/mail /var/lock متغير Variable
/opt /etc ثابت Static
عبدهللا القحطاني
معايير التسلسل الهرمي لنظام الملفات
)Filesystem Hierarchy Standard (FHS
• تحدد معايير التسلسل الهرمي لنظام الملفات أربع سالسل هرمية:
– التسلسل الهرمي ) root (/أو الدليل األعلى مستوى
• يجب أن يكون قادر على تشغيل النظام ،استرجاعه ،اعادة تشغيله أو اصالحه
• يجب أن يكون قادر على ربط ( )mountنظام الملفات مع أنظمة الملفات
األخرى
– التسلسل الهرمي /usr
• يحتوي على معظم أوامر المستخدم تحت /usr/bin
• هذا دليل ثابت يمكن أن تتم مشاركته بشكل طبيعي
– التسلسل الهرمي /usr/local
• هو المكان المخصص للبرامج المثبتة محليا
– التسلسل الهرمي /var
• يحتوي على البيانات المتغيرة
عبدهللا القحطاني
التسلسل الهرمي )root (/
عبدهللا القحطاني
التسلسل الهرمي )root (/
The root (/) hierarchy
الغرض من الدليل Purpose of Directory الدليل Directory
هو أساس الشكل العام (الهيكل) ،أو جذر نظام الملفات ،هذا الدليل يوحد /
كل األدلة بغض النظر عن ما اذا كانت أقسام محلية ،أجهزة محمولة أو
شبكة مشتركة.
هذا الدليل يحفظ الثنائيات األساسية مثل أوامر ،cp ،lsو rm؛ يجب /bin
أن تكون جزءا من نظام ملفات الجذر root
هذا الدليل يحفظ الملفات الضرورية إلقالع النظام مثل نواة Linux /boot
وملفات التهيئة المرتبطة بها.
هذا الدليل مأهول بالملفات التي تمثل المكونات المادية والملفات الخاصة /dev
األخرى ،مثل ملف /dev/nullوملف /dev/zero
هذا الدليل يحتوي على ملفات التهيئة األساسية للمضيف مثل ملف /etc
/etc/hostsوملف /etc/passwd
عبدهللا القحطاني
التسلسل الهرمي )root (/
The root (/) hierarchy
الغرض من الدليل Purpose of Directory الدليل Directory
هو المكان المخصص لألدلة األساسية للمستخدمين home /home
directories
المكتبات األساسية لدعم الملفات التنفيذية في األدلة /binو /sbin /lib
> /lib<qualمكتبات أساسية بنيت من أجل هيكلية معينة .مثل ،الدليل /lib64
للمعالجات المتوافقة مع 64 bit AMD/Intel x86
نقطة الربط من أجل ربط الوسائط المتنقلة آليا /media
نقطة الربط من أجل ربط أنظمة الملفات المؤقتة يدويا /mnt
مكان الطرف الثالث االختياري لتثبيت البرامج /opt
نظام ملفات تخيلي للنواة إلنشاء تقرير العمليات والمعلومات األخرى /proc
الدليل الرئيسي للمستخدم root /root
عبدهللا القحطاني
التسلسل الهرمي )root (/
The root (/) hierarchy
الغرض من الدليل Purpose of Directory الدليل Directory
ثنائيات النظام األساسية المستخدمة في المقام األول من قبل المستخدم /sbin
root
نظام ملفات تخيلي يقوم بحفظ المعلومات حول المكونات المادية /sys
المرتبطة بالنظام
الموقع الذي يمكنه استضافة خدمات محددة للموقع /srv
الدليل حيث يستطيع جميع المستخدمين انشاء ملفاتهم المؤقتة التي /tmp
يفترض أن تصبح جاهزة في وقت االقالع (ولكن عادة ال تكون كذلك)
التسلسل الهرمي الثاني للملفات الثانوية ليتم استخدامها من قبل عدة /usr
مستخدمين
التسلسل الهرمي /varيحتوي على الملفات التي تتغير مع مرور /var
الوقت
عبدهللا القحطاني
التسلسل الهرمي /usr
عبدهللا القحطاني
التسلسل الهرمي /usr
The /usr hierarchy
الغرض من الدليل Purpose of Directory الدليل Directory
ثنائيات للمستخدمين االعتياديين ،تستخدم عندما يكون النظام في /usr/bin
وضع متعدد المستخدمين
الملفات التي يتم تضمينها لتترجم البرامج من التوزيعة /usr/include
المكتبات التي تدعم الملفات التنفيذية في األدلة /usr/binو /usr/lib
/usr/sbin
> /usr/lib<qualمكتبات ثانوية بنيت من أجل هيكلية معينة
ثنائيات النظام التي تستخدم من قبل المدراء في وضع متعدد /usr/sbin
المستخدمين
المكان الذي تخزن به وثائق البرامج وبينات التطبيقات األخرى /usr/share
ملف مصدر الكود الخاص بترجمة النواة compiling the /usr/src
kernel
عبدهللا القحطاني
التسلسل الهرمي /usr/local
The /usr/local hierarchy
الغرض من الدليل Purpose of Directory الدليل Directory
ثنائيات البرامج المحلية للمستخدم العادي /usr/local/bin
ملفات تهيئة البرامج المحلية /usr/local/etc
/usr/local/includeالملفات التي تحتاج الى أن تُضمن بالترتيب لترجمة كود المصدر
المحلي
األدلة في التنفيذية الملفات لدعم المكتبة ملفات /usr/local/lib
/usr/local/binو /usr/local/sbin
/usr/local/libexecالبرامج التنفيذية المحلية التي تستخدم بواسطة البرامج األخرى وال
تستخدم بشكل مباشر من قبل المستخدمين
الثنائيات المحلية المستخدمة من قبل مدير النظام /usr/local/sbin
المكان الذي تخزن به البرامج المحلية لصفحات ،manصفحات /usr/local/share
المعلومات ومعلومات التطبيقات المحلية األخرى
المكان الذي يوجد به عادة كود المصدر للبرامج التي تم ترجمتها محليا /usr/local/src
عبدهللا القحطاني
التسلسل الهرمي /var
عبدهللا القحطاني
التسلسل الهرمي /var
The /var hierarchy
الغرض من الدليل Purpose of Directory الدليل Directory
/var/cacheملفات تستخدم لتخزين بيانات التطبيق بشكل مؤقت
الدليل الذي يحفظ معظم ملفات السجل /var/log
/var/lockالمكان الذي تحفظ به الملفات المغلقة ( )lockedالخاصة
بمشاركة الموارد
/var/spoolالمكان الذي يخزن به ملفات التخزين المؤقت ( )spoolالخاصة
بالطباعة والبريد
الملفات المؤقتة التي يتم حفظها عند اعادة التشغيل /var/tmp
عبدهللا القحطاني
التنظيم داخل FHS
Organizing within the FHS
• باإلضافة الى أن FHSمفيدة لفهم مفصل لتصميم األدلة
المستخدمة من قبل معظم توزيعات اللينكس ،فإن المواضيع
التالية ستصف تصميم األدلة يشكل أكثر عمومية:
– األدلة األساسية للمستخدم User home directories
– األدلة الثنائية Binary directories
– أدلة تطبيقات البرامج Software application directories
– أدلة المكتبات Library directories
– أدلة البيانات المتغيرة Variable data directories
عبدهللا القحطاني
األدلة األساسية للمستخدم
User home directories
• الدليل /homeعادة يحتوي على دليل منفصل لكل مستخدم
مع الحساب على النظام باستثناء المستخدم root
• الدليل /rootهو المكان االختياري المفضل كدليل رئيسي
للمستخدم root
• بدون تدخل السؤول ،المستخدمون يستطيعون فقط انشاء
الملفات في أدلتهم الرئيسية ،الدليل /tmpوالدليل
/var/tmp
عبدهللا القحطاني
األدلة الثنائية
Binary Directories
عبدهللا القحطاني
األدلة الثنائية للمستخدم
User Binary directories
الدالئل الثنائية تحتوي على البرامج (ليس بالضرورة فعال أن •
تكون كلها ملفات ثنائية) التي يقوم المستخدمون والمدراء بتنفيذها
لبدء العمليات أو لتشغيل التطبيقات
األدلة التي اسمها ” “binيقصد بها المستخدمون العاديون وتشمل •
/usr/bin ،/binو /usr/local/bin
تطبيقات الطرف الثالث يمكنها أن تخزن أيضا الملفات التنفيذية •
في /usr/local/application/binأو في
/opt/application/bin
المستخدمون يمكنهم أن يملكون الدليل ” “binالخاص بهم في •
دليلهم الرئيسي ،مثل /home/bob/bin
عبدهللا القحطاني
األدلة الثنائية للنظام
System Binary Directories
• أدلة النظام الثنائية تحتوي على البرامج أو التطبيقات التي
يقصد بها المسؤول (المستخدم )root
• أدلة النظام الثنائية يكون اسمها ” “sbinوتشمل ،/sbin
/usr/sbinو /usr/local/sbin
• تطبيقات الطرف الثالث االدارية يمكن تخزين ملفاتها التنفيذية
في /usr/local/application/sbinأو
في /opt/application/sbin
عبدهللا القحطاني
المتغير PATHواألدلة الثنائية
PATH and Binary Directories
من أجل أن تكون قادرا على تنفيذ األمر المضمن في أحد األدلة •
” “binأو ” “sbinعن طريق طباعة اسم األمر فقط ،فإن الدليل
الذي يحتوي على األمر يحتاج الى يتم تضمينه في قائمة
مجموعة األدلة في الموجودة في المتغير PATH
محتويات المتغير PATHيمكن عرضها باستخدام األمر echo •
$PATH
المتغير PATHيتم تخصيصه عادة عن طريق تعديل الملف •
~/.bash_profile
لتنفيذ األمر في الدليل الغير موجود في المتغير ،PATHيتم كتابة •
المسار المطلق أو النسبي مع األمر
عبدهللا القحطاني
أدلة التطبيق
Application Directories
عبدهللا القحطاني
أدلة تطبيق البرامج
Software Application Directories
• بعكس نظام ،Windowsالتطبيقات عادة ال تثبت في دليل واحد مثل
C:\Program Files
• عن طريق االستعالم عن حزمة تطبيق البرنامج ،سوف يتم سرد مواقع
الملف:
)– dpkg -L application (Debian-derived distributions
)– rpm -ql application (RPM based distributions
• ملفات البرنامج القابل للتنفيذ يمكن أن تذهب الى /usr/binاذا تم
انشاؤها من التوزيعة ،وإال فإنها قد تذهب الى
/usr/local/binأو /opt/application/bin
عبدهللا القحطاني
أدلة تطبيق البرامج
Software Application Directories
• بيانات التطبيقات يمكن أن تذهب الى األدلة الفرعية
/opt/application ،/usr/lib ،/usr/share
أو /var/lib
• الوثائق الخاصة بالتطبيق سوف تذهب بشكل طبيعي الى األدلة
الفرعية /usr/share/man ،/usr/share/docو
/usr/share/infoاذا تم انشاؤها من التوزيعة وإال فإنها
،/usr/local/share/man الى تذهب قد
،/usr/local/share/doc
/usr/local/share/infoأو الى الدليل الفرعي
/opt/application
عبدهللا القحطاني
أدلة المكتبات
Library Directories
عبدهللا القحطاني
أدلة المكتبات
Library directories
المكتبات هي ملفات تحتوي على الكود المشترك بين البرامج •
المتعددة
استخدام المكتبات يوفر مساحة في القرص والذاكرة وبالتالي •
العديد من البرامج يمكن ان تتشارك فيها وال تكون هناك
حاجة لفصل النسخ
أسماء ملفات المكتبة عادة تنتهي بالعالمة ” “.soلتدلل على •
أنها (عناصر مشتركة) ”“shared objects
من الشائع عن نظام 64 bitأنه يملك مكتبات لإلصدار 64 •
bitواالصدار 32 bit
عبدهللا القحطاني
أدلة المكتبات
Library directories
• أدلة المكتبات يكون لديها عادة مسار ينتهي في الدليل ”“lib
• المكتبات التي تدعم المكتبات األصلية الموجودة في /binأو
/sbinتوجد في /libوفي /lib64
• لدعم الملفات القابلة للتنفيذ في األدلة /usr/binو
،/usr/sbinيتم استخدام المكتبات /usr/libو
/usr/lib64
• لدعم التطبيقات التي ليست جزءا من التوزيعة ،يتم استخدام المكتبات
/usr/local/libو /opt/application/lib
عبدهللا القحطاني
أدلة البيانات المتغيرة
عبدهللا القحطاني
أدلة البيانات المتغيرة
Variable Data Directories
• الدليل /varوالعديد من أدلته الفرعية تحتوي على الملفات
التي يتغير محتواها بشكل مستمر
• اذا تم استخدام النظام كخادم بريد ،فإن األدلة /var/mail
أو /var/spool/mailستحتفظ بالرسائل
• اذا تم استخدام النظام كخادم طباعة ،فإن الدليل
/var/spool/cupsسوف يستخدم لحفظ مهام الطباعة
• باالعتماد على نشاط النظام الخاص بك وألي مستوى من
التفاصيل تم تسجيله ،فإن ملفات السجل الموجودة في الدليل
/var/logقد تخزن كميات كبيرة من البيانات.
عبدهللا القحطاني
أدلة البيانات المتغيرة
Variable Data Directories
• بينما ملفات السجل الموجودة في الدليل /var/logقد
تكون مفيدة جدا في اكتشاف المشكالت واصالحها ،اال أنها
قد تصبح هي المشكلة اذا قامت بتعبئة نظام الملفات
• امتالك الخدمات مثل اتاحة البريد والطباعة قد يكون مفيد،
ولكنه اذا تسبب في سقوط النظام فستصبح هي المشكلة
• عادة يتم ربط /varبقسم ( )partitionمنفصل كإجراء
احترازي لمنع النشاط تحت /varمن تعبئة نظام ملفات
الجذر rootومن اسقاط النظام
عبدهللا القحطاني