نواصل إنجاز مهمة بالطريقة التقليدية حتى ندرك أنه يمكن القيام بها بطريقة أفضل بكثير بطريقة أخرى. في استمرار سلسلة نصائح وحيل لينكس، أنا هنا مع أربع نصائح ستساعدك في العديد من الطرق. هيا بنا!

1. من المفترض أن تقوم بإنشاء شجرة دليل طويلة/معقدة مشابهة للمعطاة أدناه. ما هو الطريقة الأكثر فعالية لتحقيق هذا؟
هيكل شجرة الدليل لتحقيقها كما هو مقترح أدناه.
$ cd /home/$USER/Desktop $ mkdir tecmint $ mkdir tecmint/etc $ mkdir tecmint/lib $ mkdir tecmint/usr $ mkdir tecmint/bin $ mkdir tecmint/tmp $ mkdir tecmint/opt $ mkdir tecmint/var $ mkdir tecmint/etc/x1 $ mkdir tecmint/usr/x2 $ mkdir tecmint/usr/x3 $ mkdir tecmint/tmp/Y1 $ mkdir tecmint/tmp/Y2 $ mkdir tecmint/tmp/Y3 $ mkdir tecmint/tmp/Y3/z
يمكن ببساطة تحقيق السيناريو أعلاه عن طريق تشغيل الأمر الواحد أدناه.
$ mkdir -p /home/$USER/Desktop/tecmint/{etc/x1,lib,usr/{x2,x3},bin,tmp/{Y1,Y2,Y3/z},opt,var}
للتحقق يمكنك استخدام الأمر tree. إذا لم يكن مثبتًا، يمكنك apt أو yum الحزمة ‘tree’.
tree‘.
$ tree tecmint

يمكننا إنشاء هيكل شجرة دليل ذو تعقيد أي باستخدام الطريقة أعلاه. لاحظ أنه ليس سوى أمر عادي ولكنه يستخدم {}
لإنشاء تسلسل للدلائل. قد يكون ذلك مفيدًا جدًا إذا استخدم من داخل سيناريو شل عند الحاجة وبشكل عام.
2. قم بإنشاء ملف (قل ملف الاختبار) على سطح المكتب (/home/$USER/Desktop) واملأه بالمحتويات أدناه.
ABC DEF GHI JKL MNO PQR STU VWX Y Z
ماذا سيفعل المستخدم العادي في هذا السيناريو؟
a. He will create the file first, preferably using touch command, as:
$ touch /home/$USER/Desktop/test
b. He will use a text editor to open the file, which may be nano, vim, or any other editor.
$ nano /home/$USER/Desktop/test
c. He will then place the above text into this file, save and exit.
لذلك بغض النظر عن الوقت الذي سيستغرقه، يحتاج على الأقل إلى 3 خطوات لتنفيذ السيناريو أعلاه.
ماذا سيفعل مستخدم لينكس ذو خبرة ذكي؟ سيكتب النص أدناه في سطر واحد في الطرفية وانتهى الأمر. لن يحتاج إلى تنفيذ كل إجراء بشكل منفصل.
cat << EOF > /home/$USER/Desktop/test ABC DEF GHI JKL MNO PQR STU VWX Y Z EOF
يمكنك استخدام الأمر ‘cat‘ للتحقق مما إذا تم إنشاء الملف ومحتواه بنجاح أم لا.
$ cat /home/avi/Desktop/test
3. نتعامل مع الأرشيفات (خاصة كرات TAR) بشكل متكرر على نظام Linux. في العديد من الحالات، يتعين علينا استخدام كرة TAR تلك في مكان آخر غير مجلد التنزيلات. ماذا نفعل في هذ scenario؟
عادةً ما نقوم باثنتين في هذا ال scenario.
a. Copy/Move the tar ball and extract it at destination, as:
$ cp firefox-37.0.2.tar.bz2 /opt/ or $ mv firefox-37.0.2.tar.bz2 /opt/
b. cd to /opt/ directory.
$ cd /opt/
c. Extract the Tarball.
# tar -jxvf firefox-37.0.2.tar.bz2
يمكننا القيام بذلك بالطريقة الأخرى.
سنقوم بفك ضغط كرة التنزيل في المكان الحالي ثم ننسخ/ننقل الأرشيف المفكك إلى الوجهة المطلوبة على النحو التالي:
$ tar -jxvf firefox-37.0.2.tar.bz2 $ cp -R firefox/ /opt/ or $ mv firefox/ /opt/
في كلتا الحالتين، يتطلب العمل خطوتين أو أكثر لإكماله. يمكن للمحترف إكمال هذه المهمة في خطوة واحدة كما يلي:
$ tar -jxvf firefox-37.0.2.tar.bz2 -C /opt/
الخيار -C يجعل الـ tar يستخرج الأرشيف في المجلد المحدد (هنا /opt/).
لا، لا يتعلق الأمر بخيار (-C) ولكن يتعلق الأمر بالعادات. اعتاد على استخدام الخيار -C مع tar. سيسهل حياتك. من الآن فصاعداً، لا تقم بنقل الأرشيف أو نسخ/نقل الملف المستخرج، فقط اترك كرة TAR في مجلد التنزيلات وقم بفك ضغطه في أي مكان تريد.
4. كيف نقوم بإنهاء عملية بالطريقة التقليدية؟
بالطريقة العامة الأكثر شيوعًا، نقوم أولاً بعرض قائمة بجميع العمليات باستخدام الأمر ps -A
ونقوم بتوجيهها إلى grep للبحث عن عملية/خدمة (مثل apache2) ببساطة على النحو التالي:
$ ps -A | grep -i apache2
المخرجات عينة
1006 ? 00:00:00 apache2 2702 ? 00:00:00 apache2 2703 ? 00:00:00 apache2 2704 ? 00:00:00 apache2 2705 ? 00:00:00 apache2 2706 ? 00:00:00 apache2 2707 ? 00:00:00 apache2
تُظهر المخرجات أعلاه جميع عمليات apache2 التي تعمل حاليًا مع PID’s الخاصة بها، يمكنك ثم استخدام هذه الـ PID’s لإيقاف تشغيل apache2 بمساعدة الأمر التالي.
# kill 1006 2702 2703 2704 2705 2706 2707
ومن ثم تحقق مما إذا كان أي عملية / خدمة بالاسم ‘apache2‘ تعمل أم لا، كما:
$ ps -A | grep -i apache2
ومع ذلك، يمكننا القيام بذلك بتنسيق أكثر فهمًا باستخدام أدوات مثل pgrep و pkill. يمكنك العثور على معلومات ذات صلة حول عملية فقط عن طريق استخدام pgrep. على سبيل المثال، إذا كنت تحتاج إلى العثور على معلومات العملية لـ apache2، يمكنك ببساطة القيام بذلك:
$ pgrep apache2
ناتج العينة
15396 15400 15401 15402 15403 15404 15405
يمكنك أيضًا عرض اسم العملية مقابل pid عن طريق التشغيل.
$ pgrep -l apache2
ناتج العينة
15396 apache2 15400 apache2 15401 apache2 15402 apache2 15403 apache2 15404 apache2 15405 apache2
لقتل عملية باستخدام pkill أمر بسيط جدًا. ما عليك سوى كتابة اسم المورد الذي تريد قتله وستنتهي المهمة. لقد كتبت مقالًا عن pkill قد ترغب في الرجوع إليه هنا: https://www.tecmint.com/how-to-kill-a-process-in-linux/.
لقتل عملية (مثل apache2) باستخدام pkill، كل ما عليك فعله هو:
# pkill apache2
يمكنك التحقق مما إذا تم قتل apache2 أم لا عن طريق تشغيل الأمر أدناه.
$ pgrep -l apache2
إذا لم يعد يظهر أي شيء يعني أنه لا يوجد عملية تعمل بالاسم apache2.
هذا كل شيء مني الآن. جميع النقاط المناقشة أعلاه ليست كافية ولكنها بالتأكيد ستساعد. نحن لا نقصد فقط إنتاج البرامج التعليمية لجعلك تتعلم شيئًا جديد في كل مرة ولكننا نريد أيضًا أن نظهر ‘كيف تكون أكثر إنتاجية في الإطار نفسه‘. قدم لنا تعليقاتك القيمة في التعليقات أدناه. تابع متصلاً. استمر في التعليق.
Source:
https://www.tecmint.com/mkdir-tar-and-kill-commands-in-linux/