مرحبًا بكم في الجزء الثالث (والنهاية) من وحدة أساسيات Linux. حتى الآن ، طوال السلسلة ، كنت قد تدربت على بعض المفاهيم الأساسية واستخدمت بعض الأوامر المهمة. ستعرض هذه الغرفة بعض الأدوات المساعدة والتطبيقات المفيدة التي من المحتمل أن تستخدمها يومًا بعد يوم. ستعمل أيضًا على تطوير مهاراتك في Linux-fu من خلال التعرف على الأتمتة وإدارة الحزم وتسجيل الخدمة / التطبيق.
طوال السلسلة حتى الآن ، قمنا فقط بتخزين النص في الملفات باستخدام مجموعة من echo
الأوامر ومشغلي الأنابيب ( >
و >>
). هذه ليست طريقة فعالة للتعامل مع البيانات عند العمل مع ملفات ذات خطوط وأنواع متعددة!
تقديم محررات النصوص الطرفية
هناك عدد قليل من الخيارات التي يمكنك استخدامها ، وكلها مع مجموعة متنوعة من الود والفائدة. ستقدم لك هذه المهمة ، nano
ولكن ستظهر لك أيضًا بديلًا باسم VIM
nano
من السهل أن تبدأ مع Nano! لإنشاء ملف أو تحريره باستخدام nano ، نستخدم ببساطة nano filename
- استبدال "filename" باسم الملف الذي ترغب في تحريره.
tryhackme@linux3:/tmp# nano myfile GNU nano 4.8 myfile
^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify ^C Cur Pos M-U Undo M-A Mark Text
^X Exit ^R Read File ^\ Replace ^U Paste Text ^T To Spell ^_ Go To Line M-E Redo M-6 Copy Text
بمجرد الضغط على Enter لتنفيذ الأمر ، nano
سيبدأ! حيث يمكننا البدء في إدخال نصنا أو تعديله. يمكنك التنقل في كل سطر باستخدام مفتاحي الأسهم "لأعلى" و "لأسفل" أو بدء سطر جديد باستخدام مفتاح "Enter" في لوحة المفاتيح.
tryhackme@linux3:/tmp# nano myfile GNU nano 4.8 myfile Modified
Hello TryHackMe
I can write things into "myfile"
^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify ^C Cur Pos M-U Undo M-A Mark Text
^X Exit ^R Read File ^\ Replace ^U Paste Text ^T To Spell ^_ Go To Line M-E Redo M-6 Copy Text
يحتوي Nano على بعض الميزات التي يسهل تذكرها وتغطي معظم الأشياء العامة التي تريدها من محرر النصوص ، بما في ذلك:
- البحث عن نص
- النسخ واللصق
- القفز إلى رقم السطر
- معرفة رقم السطر الذي تستخدمه
يمكنك استخدام ميزات nano هذه بالضغط على مفتاح " Ctrl " (الذي يتم تمثيله على أنه ^
في Linux) والحرف المقابل. على سبيل المثال ، للخروج ، نود الضغط على " Ctrl " و " X " للخروج من Nano.
vim
VIM هو محرر نصوص أكثر تقدمًا. بينما لا يُتوقع منك معرفة جميع الميزات المتقدمة ، فمن المفيد ذكرها لتعزيز مهاراتك في Linux.
تتضمن بعض فوائد VIM ، على الرغم من أنها تستغرق وقتًا أطول للتعرف عليها ، ما يلي:
- قابلة للتخصيص - يمكنك تعديل اختصارات لوحة المفاتيح لتكون من اختيارك
- تمييز بناء الجملة - هذا مفيد إذا كنت تكتب أو تحتفظ برمز ، مما يجعلها خيارًا شائعًا لمطوري البرامج
- يعمل VIM على جميع المحطات الطرفية حيث قد لا يتم تثبيت nano
- هناك الكثير من الموارد والبرامج التعليمية والأنواع المتاحة لك راجع الصفحة الرئيسية .
تحميل الملفات
الميزة الأساسية للحوسبة هي القدرة على نقل الملفات. على سبيل المثال ، قد ترغب في تنزيل برنامج أو برنامج نصي أو حتى صورة. لحسن الحظ ، هناك عدة طرق يمكننا من خلالها استرداد هذه الملفات.
سنقوم بتغطية استخدام wget
. يتيح لنا هذا الأمر تنزيل الملفات من الويب عبر HTTP - كما لو كنت تصل إلى الملف في متصفحك. نحتاج ببساطة إلى توفير عنوان المورد الذي نرغب في تنزيله. على سبيل المثال ، إذا أردت تنزيل ملف باسم "myfile.txt" على جهازي ، بافتراض أنني كنت أعرف عنوان الويب الخاص به - فسيبدو مثل هذا:
wget https://assets.tryhackme.com/additional/linux-fundamentals/part3/myfile.txt
نقل الملفات من مضيفك - SCP (SSH)
النسخ الآمنة ، أو SCP ، هي مجرد وسيلة لنسخ الملفات بأمان. بخلاف الأمر cp العادي ، يتيح لك هذا الأمر نقل الملفات بين جهازي كمبيوتر باستخدام بروتوكول SSH لتوفير كل من المصادقة والتشفير.
من خلال العمل على نموذج من SOURCE و DESTINATION ، يتيح لك SCP:
- انسخ الملفات والأدلة من نظامك الحالي إلى نظام بعيد
- انسخ الملفات والأدلة من نظام بعيد إلى نظامك الحالي
شريطة أن نعرف أسماء المستخدمين وكلمات المرور لمستخدم على نظامك الحالي ومستخدم على النظام البعيد. على سبيل المثال ، دعنا ننسخ ملفًا نموذجيًا من أجهزتنا إلى جهاز بعيد ، والذي قمت بوضعه بدقة في الجدول أدناه:
عامل | قيمة |
عنوان IP للنظام البعيد | 192.168.1.30 |
مستخدم على نظام التحكم عن بعد | ubuntu |
اسم الملف على النظام المحلي | important.txt |
الاسم الذي نرغب في تخزين الملف به على النظام البعيد | transferred.txt |
العمليات هي البرامج التي تعمل على جهازك. تتم إدارتها بواسطة kernel ، حيث سيكون لكل عملية معرف مرتبط بها ، يُعرف أيضًا باسم PID الخاص بها. يزداد PID للترتيب الذي تبدأ به العملية. أي أن العملية 60 سيكون لها PID 60.
عمليات المشاهدة
يمكننا استخدام ps
الأمر الصديق لتوفير قائمة بالعمليات الجارية كجلسة مستخدم لدينا وبعض المعلومات الإضافية مثل رمز الحالة الخاص به ، والجلسة التي تقوم بتشغيله ، ومقدار وقت استخدام وحدة المعالجة المركزية التي تستخدمها ، واسم البرنامج الفعلي أو الأمر الذي يتم تنفيذه:
لاحظ كيف في لقطة الشاشة أعلاه ، أن العملية الثانية ps لها معرف PID قدره 204 ، ثم في الأمر أدناه ، يتم زيادة هذا إلى 205.
لرؤية العمليات التي يديرها مستخدمون آخرون وتلك التي لا تعمل من جلسة (أي عمليات النظام) ، نحتاج إلى توفير مساعدة للأمر مثلps
ذلك:ps aux
لاحظ أنه يمكننا رؤية إجمالي 5 عمليات - لاحظ كيف لدينا الآن "جذر" و "كمناتيك"
أمر آخر مفيد للغاية هو الأمر العلوي ؛ يمنحك الجزء العلوي إحصائيات في الوقت الفعلي حول العمليات التي يتم تشغيلها على نظامك بدلاً من العرض لمرة واحدة. سيتم تحديث هذه الإحصائيات كل 10 ثوانٍ ، ولكن سيتم تحديثها أيضًا عند استخدام مفاتيح الأسهم لتصفح الصفوف المختلفة. أمر رائع آخر لاكتساب نظرة ثاقبة لنظامك هو عبر top
الأمر
إدارة العمليات
يمكنك إرسال إشارات تنهي العمليات ؛ هناك مجموعة متنوعة من أنواع الإشارات التي ترتبط بالضبط بكيفية تعامل النواة مع العملية "بشكل نظيف". لقتل أمر ، يمكننا استخدام kill
الأمر المسمى بشكل مناسب و PID المرتبط به الذي نرغب في قتله. على سبيل المثال ، لقتل PID 1337 ، سنستخدمه kill 1337
.
فيما يلي بعض الإشارات التي يمكننا إرسالها إلى عملية ما عند قتلها:
- SIGTERM - اقتل العملية ، لكن اسمح لها بالقيام ببعض مهام التنظيف مسبقًا
- SIGKILL - اقتل العملية - لا يقوم بأي تنظيف بعد الحقيقة
- SIGSTOP - إيقاف / تعليق العملية
كيف تبدأ العمليات؟
لنبدأ بالحديث عن مساحات الأسماء. يستخدم نظام التشغيل (OS) مساحات الأسماء لتقسيم الموارد المتاحة على الكمبيوتر في النهاية إلى العمليات (مثل وحدة المعالجة المركزية وذاكرة الوصول العشوائي والأولوية). فكر في الأمر على أنه تقسيم جهاز الكمبيوتر الخاص بك إلى شرائح - على غرار الكعكة. ستتمتع العمليات داخل هذه الشريحة بإمكانية الوصول إلى قدر معين من قوة الحوسبة ، ومع ذلك ، سيكون جزءًا صغيرًا مما هو متاح بالفعل لكل عملية بشكل عام.
تعتبر مساحات الأسماء رائعة للأمان لأنها طريقة لعزل العمليات عن أخرى - فقط تلك الموجودة في نفس مساحة الاسم ستكون قادرة على رؤية بعضها البعض.
تحدثنا سابقًا عن كيفية عمل PID ، وهنا يأتي دوره. العملية بمعرف 0 هي عملية تبدأ عندما يقوم النظام بالتمهيد. هذه العملية هي عملية بدء النظام على Ubuntu ، مثل systemd ، والتي تُستخدم لتوفير طريقة لإدارة عمليات المستخدم وتقع بين نظام التشغيل والمستخدم.
على سبيل المثال ، بمجرد بدء تشغيل النظام وتهيئته ، يعد systemd أحد العمليات الأولى التي بدأت. سيبدأ أي برنامج أو جزء من البرنامج نرغب في بدء تشغيله بما يُعرف بالعملية الفرعية للنظام د . هذا يعني أنه يتم التحكم فيه بواسطة systemd ، ولكن سيتم تشغيله كعملية خاصة به (على الرغم من مشاركة الموارد من systemd ) لتسهيل التعرف عليه وإعجاباته.
بدء العمليات / الخدمات في التمهيد
يمكن بدء تشغيل بعض التطبيقات في تمهيد النظام الذي نملكه. على سبيل المثال ، خوادم الويب أو خوادم قواعد البيانات أو خوادم نقل الملفات. غالبًا ما يكون هذا البرنامج حرجًا وغالبًا ما يُطلب من المسؤولين البدء أثناء تمهيد النظام.
في هذا المثال ، سنخبر خادم الويب apache ببدء تشغيل apache يدويًا ثم إخبار النظام بتشغيل apache2 عند التمهيد.
أدخل استخدام systemctl
- هذا الأمر يسمح لنا بالتفاعل مع عملية systemd / daemon. متابعة مع مثالنا ، يعد systemctl أمرًا سهل الاستخدام يأخذ التنسيق التالي:systemctl [option] [service]
على سبيل المثال ، لإخبار apache ببدء التشغيل ، سنستخدم systemctl start apache2
. يبدو بسيطا بما فيه الكفاية ، أليس كذلك؟ نفس الشيء إذا أردنا إيقاف apache ، فسنقوم فقط باستبدالها [option]
بـ stop (بدلاً من البدء كما قدمنا)
يمكننا عمل أربعة خيارات من خلال systemctl
:
- بداية
- قف
- يُمكَِن
- تعطيل
مقدمة في الخلفية والتقدم في Linux
يمكن تشغيل العمليات في حالتين: في الخلفية وفي المقدمة. على سبيل المثال ، الأوامر التي تقوم بتشغيلها في جهازك الطرفي مثل "echo" أو أشياء من هذا النوع ستعمل في مقدمة جهازك لأنه الأمر الوحيد الذي لم يُطلب منك تشغيله في الخلفية. يعد "Echo" مثالًا رائعًا لأن إخراج الصدى سيعود إليك في المقدمة ، لكنه لن يكون في الخلفية - خذ لقطة الشاشة أدناه ، على سبيل المثال.
نحن هنا قيد التشغيل echo "Hi THM"
، حيث نتوقع أن يتم إرجاع الإخراج إلينا كما هو الحال في البداية. ولكن بعد إضافة &
عامل التشغيل إلى الأمر ، فإننا بدلاً من ذلك نعطي فقط معرف عملية الصدى بدلاً من الإخراج الفعلي - لأنه يعمل في الخلفية.
يعد هذا أمرًا رائعًا لأوامر مثل نسخ الملفات لأنه يعني أنه يمكننا تشغيل الأمر في الخلفية والمتابعة مع أي أوامر أخرى نرغب في تنفيذها (دون الحاجة إلى الانتظار حتى تنتهي نسخة الملف أولاً)
يمكننا أن نفعل الشيء نفسه تمامًا عند تنفيذ أشياء مثل البرامج النصية - بدلاً من الاعتماد على عامل التشغيل & ، يمكننا استخدام Ctrl + Z
لوحة المفاتيح لدينا في خلفية العملية. إنها أيضًا طريقة فعالة "لإيقاف" تنفيذ نص أو أمر كما في المثال أدناه:
سيستمر هذا النص في التكرار "سيستمر هذا في التكرار حتى أتوقف!" حتى أتوقف أو أعلق العملية. باستخدام Ctrl + Z
(كما هو موضح بواسطة T ^ Z ). الآن لم تعد محطتنا ممتلئة بالرسائل - حتى نضعها في المقدمة ، والتي سنناقشها أدناه.
مقدمة عملية
الآن بعد أن أصبح لدينا عملية تعمل في الخلفية ، على سبيل المثال ، البرنامج النصي الخاص بنا "background.sh" والذي يمكن تأكيده باستخدام ps aux
الأمر ، يمكننا الرجوع إلى الخلف وإعادة هذه العملية إلى المقدمة للتفاعل معها.
مع خلفية العملية الخاصة بنا باستخدام أي من المشغل Ctrl + Z
أو &
المشغل ، يمكننا استخدام fg
هذا لإعادة التركيز كما هو موضح أدناه ، حيث يمكننا رؤية fg
الأمر قيد الاستخدام لإعادة عملية الخلفية إلى الاستخدام على الجهاز ، حيث يكون إخراج البرنامج النصي هو عاد الآن إلينا.
قد يرغب المستخدمون في جدولة إجراء أو مهمة معينة لتحدث بعد تمهيد النظام. خذ ، على سبيل المثال ، تشغيل الأوامر أو نسخ الملفات احتياطيًا أو تشغيل البرامج المفضلة لديك ، مثل Spotify أو Google Chrome.
سنتحدث عن cron
العملية ، ولكن بشكل أكثر تحديدًا ، كيف يمكننا التفاعل معها من خلال استخدام crontabs
. Crontab هي إحدى العمليات التي بدأت أثناء التمهيد ، وهي مسؤولة عن تسهيل وإدارة وظائف cron.
يعد crontab ببساطة ملفًا خاصًا بتنسيق تتعرف عليه cron
العملية لتنفيذ كل سطر خطوة بخطوة. تتطلب Crontabs 6 قيم محددة:
قيمة | وصف |
MIN | ما دقيقة للتنفيذ في |
HOUR | في أي ساعة للتنفيذ |
DOM | في أي يوم من الشهر يتم التنفيذ في |
MON | في أي شهر من السنة يتم التنفيذ في |
DOW | في أي يوم من أيام الأسبوع يتم التنفيذ فيه |
CMD | الأمر الفعلي الذي سيتم تنفيذه. |
تقديم حزم وإعادة شراء البرامج
عندما يرغب المطورون في تقديم برنامج إلى المجتمع ، فإنهم سيرسلونه إلى مستودع "مناسب". في حالة الموافقة ، سيتم إطلاق برامجهم وأدواتهم في البرية. تبرز هنا اثنتان من أكثر ميزات Linux استردادًا للقيمة: إمكانية وصول المستخدم وميزة الأدوات مفتوحة المصدر.
عند استخدام ls
الأمر على جهاز Ubuntu 20.04 Linux ، تعمل هذه الملفات كبوابة / سجل.
بينما سيحتفظ بائعو أنظمة التشغيل بمستودعاتهم الخاصة ، يمكنك أيضًا إضافة مستودعات المجتمع إلى قائمتك! هذا يسمح لك بتوسيع إمكانيات نظام التشغيل الخاص بك. يمكن إضافة مستودعات إضافية باستخدام add-apt-repository
الأمر أو بإدراج مزود آخر! على سبيل المثال ، سيكون لدى بعض البائعين مستودع أقرب إلى موقعهم الجغرافي.
إدارة مستودعاتك (إضافة وحذف)
عادةً ما نستخدم الأمر apt لتثبيت البرنامج على نظام Ubuntu الخاص بنا. يعد apt
الأمر جزءًا من برنامج إدارة الحزم المسمى أيضًا apt. يحتوي Apt على مجموعة كاملة من الأدوات التي تتيح لنا إدارة حزم ومصادر برامجنا ، وتثبيت البرامج أو إزالتها في نفس الوقت.
دعنا نتجول في إضافة وإزالة مستودع باستخدام add-apt-repository
الأمر الذي أوضحناه أعلاه. بينما يمكنك تثبيت البرامج من خلال استخدام مثبتات الحزم dpkg
، مثل فوائد apt تعني أنه كلما قمنا بتحديث نظامنا - يتم أيضًا فحص المستودع الذي يحتوي على أجزاء من البرامج التي نضيفها بحثًا عن التحديثات.
في هذا المثال ، سنضيف محرر النصوص Sublime Text إلى جهاز Ubuntu الخاص بنا كمستودع لأنه ليس جزءًا من مستودعات Ubuntu الافتراضية. عند إضافة برنامج ، يتم ضمان سلامة ما نقوم بتنزيله من خلال استخدام ما يسمى مفاتيح GPG (Gnu Privacy Guard). هذه المفاتيح هي في الأساس فحص أمان من المطورين قائلين ، "هذا برنامجنا". إذا كانت المفاتيح لا تتوافق مع ما يثق به نظامك وما يستخدمه المطورون ، فلن يتم تنزيل البرنامج.
لذا ، للبدء ، نحتاج إلى إضافة مفتاح GPG لمطوري Sublime Text 3. (لاحظ أن مثيلات TryHackMe ليس لديها وصول إلى الإنترنت ، لذلك لا نتوقع منك إضافة هذا إلى الجهاز الذي تنشره ، لأنه ستفشل.)
1. لنقم بتنزيل مفتاح GPG ونستخدم مفتاح apt للثقة به: wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
2. الآن بعد أن أضفنا هذا المفتاح إلى قائمتنا الموثوقة ، يمكننا الآن إضافة مستودع Sublime Text 3 إلى قائمة المصادر الملائمة. من الممارسات الجيدة أن يكون لديك ملف منفصل لكل مستودع مجتمع / طرف ثالث نضيفه.
2.1. دعنا ننشئ ملفًا باسم sublime-text.list في /etc/apt/sources.list.d وأدخل معلومات المستودع كما يلي:
2.2. والآن استخدم Nano أو محرر نصوص من اختيارك لإضافة مستودع Sublime Text 3 وحفظه في هذا الملف الذي تم إنشاؤه حديثًا:
2.3 بعد أن أضفنا هذا الإدخال ، نحتاج إلى تحديث apt للتعرف على هذا الإدخال الجديد - يتم ذلك باستخدام apt update
الأمر
2.4 بمجرد التحديث بنجاح ، يمكننا الآن المضي قدمًا في تثبيت البرنامج الذي وثقنا به وإضافته إلى apt باستخدام apt install sublime-text
إزالة الحزم سهلة مثل عكسها. تتم هذه العملية باستخدام add-apt-repository --remove ppa:PPA_Name/ppa
الأمر أو عن طريق حذف الملف الذي قمنا بإنجازه مسبقًا يدويًا. بمجرد إزالتها ، يمكننا فقط استخدام apt remove [software-name-here]
ieapt remove sublime-text
لقد تطرقنا بإيجاز إلى ملفات السجل وأين يمكن العثور عليها في أساسيات Linux الجزء 1. ومع ذلك ، فلنلخص سريعًا. تحتوي هذه الملفات والمجلدات الموجودة في دليل / var / log على معلومات تسجيل للتطبيقات والخدمات التي تعمل على نظامك. أصبح نظام التشغيل (OS) جيدًا جدًا في إدارة هذه السجلات تلقائيًا في عملية تُعرف باسم "التدوير".
لقد أبرزت بعض السجلات من ثلاث خدمات تعمل على جهاز Ubuntu:
- خادم ويب Apache2
- سجلات خدمة fail2ban ، والتي تُستخدم لمراقبة القوات الغاشمة التي حاولت ، على سبيل المثال
- خدمة UFW المستخدمة كجدار حماية
تُعد هذه الخدمات والسجلات طريقة رائعة لمراقبة صحة نظامك وحمايته. ليس ذلك فحسب ، بل إن سجلات الخدمات مثل خادم الويب تحتوي على معلومات حول كل طلب - مما يسمح للمطورين أو المسؤولين بتشخيص مشكلات الأداء أو التحقيق في نشاط الدخيل. على سبيل المثال ، هناك نوعان من ملفات السجل أدناه ذات أهمية:
- سجل الوصول
- سجل الخطأ
هناك بالطبع سجلات تخزن معلومات حول كيفية تشغيل نظام التشغيل نفسه والإجراءات التي يقوم بها المستخدمون ، مثل محاولات المصادقة.
مرحبًا بك في نهاية وحدة أساسيات Linux. ستتحسن إلمامك بـ Linux عندما تتفاعل معه بمرور الوقت. لدى Linux القدرة على القيام بأشياء قوية جدًا بسهولة نسبية (كما كنت قد اكتشفت خلال هذه الوحدة)
للتلخيص ، قدمت لك هذه الغرفة الموضوعات التالية:
- استخدام محررات النصوص الطرفية
- أدوات مساعدة عامة مثل تنزيل المحتويات وتقديمها باستخدام خادم ويب python
- نظرة على العمليات
- صيانة وأتمتة نظامك باستخدام crontabs وإدارة الحزم ومراجعة السجلات
تعليقات: (0) إضافة تعليق