استخدام Terminal لتشغيل التطبيقات يوفر سرعة وتحكماً أكبر مقارنة بالطرق التقليدية عبر القوائم أو الاختصارات. بمجرد معرفة الأوامر الصحيحة، يمكنك فتح أي برنامج مباشرة دون الحاجة للتنقل بين النوافذ أو البحث في شريط المهام. هذه الميزة تمنحك مرونة أكبر وتختصر الكثير من الوقت، خاصة إذا كنت تعتمد على أكثر من تطبيق في عملك اليومي.
ربما شغّلتَ تطبيقًا من نافذة الطرفية في وقتٍ ما، ولكن هل لاحظتَ أنه يُبقي نافذة الطرفية مشغولة حتى تُغلقها؟ قد يكون هذا مُزعجًا للغاية. مع ذلك، من المُفيد أحيانًا تشغيل التطبيقات بهذه الطريقة – سأشرح كيف أفعل ذلك بفعالية.
يستخدم بعض الأشخاص القوائم، بينما يستخدم آخرون مُشغّلات التطبيقات – أنا شخصيًا أُشغّل جميع التطبيقات، مثل فايرفوكس، من نافذة الطرفية. تعود هذه العادة إلى أيامي الأولى في استخدام لينكس (قبل حوالي 15 عامًا)، عندما لم أكن أعرف كيفية إنشاء اختصارات. مع مرور الوقت، اعتدتُ على تشغيل التطبيقات بهذه الطريقة، ولأن نافذة الطرفية مفتوحة دائمًا، فإن الأمر يبدو منطقيًا. بالإضافة إلى ذلك، أنا كسول جدًا لإعداد مُشغّل التطبيقات وصيانته. باستخدام نافذة الطرفية، يُمكنني البحث بشكل مُبهم في تطبيقاتي مثل مُشغّل التطبيقات، ولكن مع ميزة إضافية وهي تعديل الأوامر قبل تشغيلها.
أولًا، فهم Nohup وعامل الخلفية
عند فتح تطبيق من نافذة الطرفية ثم إغلاقها، غالبًا ما يُغلق التطبيق أيضًا – وهو ما قد لا تُريده. في Linux، عندما يبدأ أحد التطبيقات تطبيقًا آخر، فإنه يتفرع من العملية، وبالتالي يصبح التطبيق الأصلي هو التطبيق الرئيسي.
عند إنهاء العملية الرئيسية، عادةً ما تُغلق جميع عملياتها الفرعية. يمكنك تجربة ذلك بنفسك: اكتب الأمر التالي في نافذة الأوامر، وانتظر حتى تبدأ العملية، ثم أغلق نافذة الأوامر.
firefox
للحفاظ على استمرارية عمل العمليات الفرعية بعد إغلاق الطرفية، سنستخدم أداةً مجرّبةً تُسمى nohup.
Nohup
يُجبر أمر nohup العملية على تجاهل إشارة إنهاء المكالمة (SIGHUP)، مما يسمح لها بمواصلة العمل حتى بعد تسجيل خروج المستخدم أو انتهاء جلسة الطرفية.
بعد أن أصبح لدينا الآن طريقةٌ للحفاظ على استمرارية عمل العملية بعد إغلاق الطرفية، تجدر الإشارة إلى أن nohup سيكتب المخرجات تلقائيًا في ملف nohup.out في المجلد الحالي. ما لم تكن ترغب في توزيع هذه الملفات في نظام الملفات، فستحتاج إلى معالجة هذا السلوك. يمكنك إما تجاهل جميع المخرجات أو إعادة توجيهها إلى ملف مُحدد للتسجيل.
لتجاهل جميع المخرجات، ببساطة أعد توجيهها إلى /dev/null، الذي يعمل بمثابة ثقب أسود للبيانات غير المرغوب فيها:
nohup firefox &>/dev/null
الآن، إذا أغلقت الطرفية، سيستمر فايرفوكس في العمل. مع ذلك، يُرسل هذا الإعداد جميع السجلات إلى الفراغ. بدلاً من ذلك، يمكنك إعادة توجيه المخرجات إلى ملف سجل:
nohup firefox &>/tmp/firefox.log
الآن، إذا كانت هناك مشكلة في فايرفوكس، يمكنك قراءة ملف السجل.
عامل الخلفية
عند تشغيل Nohup مع فايرفوكس، فإنه يتولى سطر الأوامر، مما يعني أنه لا يمكنك تشغيل أوامر أخرى. هذا ليس الحل الأمثل إذا كنت ترغب في استخدام نفس نافذة الأوامر لأشياء أخرى. وهنا يأتي دور عامل الخلفية.
عامل الخلفية هو ببساطة علامة “و” توضع في نهاية الأمر، مما يسمح لك بمواصلة استخدام نافذة الأوامر أثناء تشغيل التطبيق. جرّبه:
firefox &
إذا أغلقت نافذة الطرفية الآن، ستلاحظ أنها تُغلق التطبيق أيضًا. هذا لأنه، بينما يضع مُشغّل الخلفية تطبيقك في الخلفية، فإنه لا يزال يُطيع إشارة SIGHUP، لذا فإن إغلاق نافذة الطرفية يُوقف العملية. لهذا السبب نستخدم Nohup أيضًا.
من الميزات المفيدة لعامل الخلفية إمكانية إعادة عملية إلى المقدمة. بعد إرسال Firefox إلى الخلفية، اكتب fg لإعادتها إلى المقدمة مرة أخرى.
استخدام Nohup مع عامل الخلفية
باستخدام Nohup مع عامل الخلفية، يعمل تطبيقك بالكامل في الخلفية، مما يُتيح لك مواصلة العمل في نافذة الطرفية أو حتى إغلاقها، وستستمر عمليتك في العمل دون انقطاع.
nohup firefox &>/tmp/firefox.log &
استخدم أسماءً مستعارةً سهلة الحفظ
يعمل اسم shell المستعار كاسمٍ مستعارٍ للأوامر. على سبيل المثال، يمكنك تعيين الحرف f لتشغيل فايرفوكس، ما عليك سوى كتابة f في الطرفية لفتحه. إذا كنت جديدًا على هذا، فننصحك بقراءة منشورنا حول كيفية إنشاء أسماء shell المستعارة.
في عالم تخصيص shell، من الشائع استخدام أسماء مستعارة سهلة الحفظ – وهي مجموعات قصيرة وسهلة الحفظ من الأحرف تمثل أوامر أطول. على سبيل المثال، يمكنك إنشاء اختصارات فايرفوكس لتشغيل المتصفح باستخدام وسيطات محددة:
alias ffaa="firefox about:about"
alias ffac="firefox about:config"
alias ffnt="firefox --new-tab"
alias ffp="firefox --profile"
alias ffsm="firefox --safe-mode"
بترتيب الأسماء المستعارة أبجديًا، يسهل عليك معرفة الأسماء المستعارة المستخدمة بالفعل.
ملاحظة
قد تحتاج إلى استخدام Nohup وعامل الخلفية لتشغيل فايرفوكس.
استخدم سجلّ الواجهات الضبابية
أكثر أدوات الواجهات فائدةً التي ستثبّتها على الإطلاق هي أداة السجلّ الضبابي. Atuin تطبيقٌ يقوم بذلك تمامًا، ويعمل في أي مكان. أنا شخصيًا أستخدم zsh-fzf-history-search، وهو إضافة Zsh، لكنّهما متطابقان تقريبًا.
إذا كنت تقضي وقتًا طويلًا في كتابة أمر طويل، فمن المنطقي أن يكون لديك طريقة سريعة لتنفيذه مرة أخرى. غالبًا ما أقضي دقيقة أو دقيقتين في إنشاء أمر معقد، ثم أستخدم سجلّ الشل الضبابي لتشغيله مئات المرات على مدار أشهر أو حتى سنوات.
إذا استفدت شيئًا واحدًا فقط: استخدم إضافة أو تطبيقًا لسجلّ الشل الضبابي. أنصحك باستخدام Atuin. إذا كنت مهتمًا، فلدينا مقدمة عن Atuin.
ملف أوامر مسطح
الفكرة وراء سجلّ الشل الضبابي بسيطة: فهو يجمع سجلّ الشل، ويزيل بعض التفاصيل غير الضرورية، ويرسل النتيجة إلى برنامج يُسمى FZF. سنفعل شيئًا مشابهًا، باستثناء أننا سنستخدم FZF لاختيار أوامرنا من ملف نصي عادي لنتمكن من تنفيذها.
صُمّم FZF لمساعدتك على تحديد العناصر بسرعة من قوائم طويلة. إنها أداة أساسية وجزء من أي مجموعة أدوات شل متقدمة، وإذا كنت ترغب في تحسين مهاراتك في استخدام الطرفية، فإنني أوصي بشدة بتعلم كيفية استخدامها. FZF سهل الاستخدام، ويتضمن العديد من الميزات المتقدمة للمستخدمين الأكثر خبرة.
فيما يلي مثال بسيط يوضح كيفية استخدام FZF للبحث عبر أسطر نصية متعددة:
echo "foo\nbar" | fzf