كيفية تغيير Shell الافتراضي الخاص بك على Linux باستخدام chsh

نشرت: 2022-01-29
موجه قذيفة منمنمة على نظام كمبيوتر محمول Linux على غرار Ubuntu.
فاطماواتي أحمد زينوري / شاترستوك

Bash ليس هو قشرة Linux الوحيدة. من السهل تجربة الأصداف الأخرى ، مثل Zsh ، والتي تحظى بشعبية كبيرة. عندما تعثر على واحد يعجبك ، استخدم الأمر chsh لجعله غلافك الافتراضي. سنوضح لك كيف.

لماذا شل مهمة

الغلاف يقع بينك وبين نظام التشغيل. يوفر البيئة داخل نافذة طرفية تسمح لك بكتابة الأوامر وتشغيل البرامج. تتحقق الصدفة من مدخلاتك وتكتشف ما تريده. إذا كان بإمكانها تنفيذ العطاءات بنفسها ، فإنها تقوم بذلك. إذا احتاج إلى مساعدة خارجية ، فإنه يبحث في المسار ويجد البرامج التي يمكنها القيام بكل ما تطلبه.

هناك العديد من القذائف المختلفة المتاحة على Linux. تسمح لك جميعها بأداء نفس المهام الأساسية: استكشاف نظام الملفات ، والعمل مع الملفات ، وتشغيل البرامج ، وتشغيل البرامج النصية. ومع ذلك ، فإن كل منهم يؤدي هذه المهام بطريقته الخاصة ، وله ميزاته وخصوصياته الخاصة.

تميل الأصداف إلى التصميم من قبل الأشخاص الذين يريدون أن تتصرف الأشياء بطريقة معينة. إذا كان تفكيرك يتماشى مع ذلك المصمم ، فقد تكون هذه الصدفة مناسبة لك. بالإضافة إلى ذلك ، فإن تجربة قشرة جديدة على Linux أمر سهل.

في معظم توزيعات Linux ، بما في ذلك Ubuntu ، الصدفة الافتراضية هي bash . إنها تقوم بعمل رائع وهي قادرة للغاية. ومع ذلك ، قد توفر قشرة أخرى فرقًا في توفير الوقت من شأنه أن يكون له تأثير كبير على سير عملك. لن تعرف أبدًا ما إذا كنت لا تنظر!

ذات صلة: ما هو ZSH ، ولماذا يجب استخدامه بدلاً من Bash؟

دلو من القذائف

لقد غطينا قذائف Linux المختلفة من قبل ، ولكن إليك مقدمة سريعة لأكثرها شيوعًا:

  • bash: غلاف Bourne مرة أخرى هو الافتراضي في العديد من التوزيعات.
  • rbash: توفر قذيفة bash المقيدة هذه الحد الأدنى من الوظائف للشخص أو البرنامج النصي الذي يعمل فيه.
  • الرماد: قشرة المكيست هي نسخة أخف من الباش.
  • شرطة: إن Debian Alquist Shell هو البرنامج النصي الافتراضي للصدفة في Ubuntu. بينما bash هو تسجيل الدخول الافتراضي والصدفة التفاعلية ، يتم استخدام dash لتشغيل عمليات النظام لأنها أخف بكثير من bash .
  • zsh: قذيفة Z هي طريقة حديثة لعائلة bash من القذائف. يقدم تحسينات رائعة ، مثل التدقيق الإملائي للأوامر والتصحيحات المقترحة.
  • الأسماك: تمت كتابة هذه القشرة التفاعلية الودودة من الصفر ولم يتم اشتقاقها من أي من عائلات الصدفة الأخرى. الغرض منه هو أن يكون سهل الاستخدام. من بين العديد من الامتيازات الأخرى ، تقدم الأسماك اقتراحات للأوامر بناءً على سجلك ومحتويات المجلد الحالي ، على غرار النص التنبؤي.
  • ksh: يوفر KornShell لغة برمجة نصية قوية بشكل خاص.

ذات صلة: ما الفرق بين Bash و Zsh و Linux Shells الأخرى؟

قائمة الأصداف المثبتة

لمعرفة الأصداف المثبتة على جهاز الكمبيوتر الخاص بك ، استخدم هذا الأمر. إنه يسرد ببساطة محتويات ملف /etc/shells :

 قطة / الخ / قذائف 

لقد ذكرنا bash و dash و rbash ، لكن ما هو sh ؟

sh هي قوقعة طومسون ، المكتوبة في عام 1971 بواسطة كين طومسون من مختبرات بيل الشهرة. لم يعد يتم صيانته ولطالما حلت محله القذائف الحديثة. يتم تضمينه فقط للحفاظ على التوافق مع البرامج النصية القديمة التي لا تزال تحتوي على ما يلي باعتباره السطر الأول:

 #! / بن / ش

يوجه هذا النظام إلى استخدام sh shell لتنفيذ البرنامج النصي. هل لديك حقًا تلك القشرة القديمة على جهازك ، وهل يتم استخدامها لتشغيل البرامج النصية الخاصة بك؟ الأمر which سيخبرنا بالبرنامج الذي يتم تشغيله بالفعل عند كتابة الأمر.

دعنا نرى ما يتم تشغيله عند كتابة sh :

 الذي ش

يبدو أن هذا البحث عن ثنائي. إذا حفرنا أعمق قليلاً ، فسنرى أنه رابط رمزي يشير في الواقع إلى dash ، الغلاف خفيف الوزن المستخدم لتنفيذ البرامج النصية:

 ls -l / بن / ش 

هذه طريقة أنيقة وخفيفة الوزن لتوفير شبكة أمان للنصوص التي تتوقع العثور على sh في الأنظمة الحديثة.

تثبيت قذيفة أخرى

دعنا نثبّت قشرة fish ونضعها كإعداد افتراضي dave . في Ubuntu ، نكتب الأمر التالي:

 sudo apt-get install fish 

في pacman ، استخدم Pacman:

 sudo pacman -Sy fish 

في Fedora ، اكتب ما يلي:

 sudo dnf تثبيت الأسماك 

الإعلانات

عند اكتمال التثبيت ، يمكنك التحقق من الأصداف المثبتة مرة أخرى:

 قطة / الخ / قذائف 

يظهر غلافنا الجديد كـ /usr/bin/fish . لاحظ هذا المسار - ستحتاج إليه قريبًا.

متغير البيئة شل $

يحمل متغير البيئة $SHELL اسم قوقعتك الحالية. يمكننا التحقق من أيهما تم ضبطه باستخدام echo :

 صدى $ شل

لنبدأ قشرة fish :

 السمكة

الآن ، دعنا نتحقق مرة أخرى مما يقوله متغير البيئة $SHELL :

 صدى $ شل 

في المرة الأولى التي نستخدم فيها echo $SHELL ، نكون في غلاف bash . متغير البيئة يحمل المسار إلى ملف bash القابل للتنفيذ ، /bin/bash .

الإعلانات

عندما نطلق قذيفة fish ، نحصل على رسالة ترحيب ودية ويتغير موجه الأوامر. ما قد يكون مفاجئًا هو أن بيئة $SHELL لا تزال تمسك بالمسار إلى ملف bash القابل للتنفيذ ، /bin/bash . لا بأس - هذا طبيعي.

عندما تقوم بتشغيل shell جديد (أو أي برنامج آخر) ، فإنه يرث بيئة الصدفة الأصل. لذلك ، ترث قشرة fish متغيرات البيئة العالمية والمصدرة من قذيفة bash . نظرًا لعدم تغيير القيمة في متغير البيئة $SHELL ، فإن لها نفس القيمة في قشرة fish التي كانت موجودة في bash shell.

نحن نشغل fish مثل أي برنامج آخر. يمكننا أيضًا استخدام exit للخروج من قوقعة fish . يتم إغلاقه مثل أي برنامج آخر ، ونعود إلى bash shell.

يعد هذا أمرًا رائعًا لتجربة أصداف جديدة ، ومعرفة ما يمكنهم فعله ، وما إذا كنت تتماشى معهم. يمكنك الاستكشاف قبل القيام بالقفزة واعتماد واحدة كصدفة لك.

إذا قررت أن تجعل fish - أو أي قشرة أخرى - هو الخيار الافتراضي ، فستحتاج إلى استخدام الأمر chsh .

الأمر chsh

يسمح لك الأمر chsh بتغيير قشرتك الافتراضية. الحيلة هي أن تدرك أنها تسمح لك بتغيير كل من تسجيل الدخول الافتراضي والأصداف التفاعلية الافتراضية. قد ترغب في تغيير أحدهما أو الآخر أو كليهما.

الإعلانات

عندما تقوم بتسجيل الدخول للحصول على موجه الأوامر ، فإنك تستخدم shell الذي تم تكوينه ليكون غلاف تسجيل الدخول الخاص بك. عندما تقوم بتسجيل الدخول بالفعل وفتح نافذة طرفية ، فإنك تستخدم shell الذي تم تكوينه ليكون غلافك التفاعلي. يمكن أن تكون هذه القذائف متشابهة أو مختلفة.

لتعيين غلاف تسجيل الدخول الخاص بك ، استخدم chsh بدون معلمات:

 chsh 

ستتم مطالبتك بكلمة المرور الخاصة بك. بعد ذلك ، يجب عليك كتابة المسار إلى الغلاف الجديد والضغط على Enter.

إذا أجرينا اتصالاً عن بُعد بهذا الكمبيوتر التجريبي من كمبيوتر آخر ، فسنجد أنفسنا في صدفة fish بمجرد تسجيل الدخول.

لتغيير الصدفة التفاعلية ، استخدم chsh مع خيار -s (shell). مرر المسار إلى الغلاف الجديد في سطر الأوامر:

 chsh -s / usr / bin / fish 

ستتم مطالبتك بكلمة المرور الخاصة بك وإعادتك إلى موجه الأوامر الخاص بالصدفة الحالية. تحتاج إلى تسجيل الخروج والعودة إلى أن يسري التغيير. عندما تفعل ذلك ، سترى التحية وموجه أوامر shell fish .

الإعلانات

متغير البيئة $SHELL يحمل الآن المسار إلى الغلاف الافتراضي الجديد:

 صدى $ شل 

تغيير Shell لحساب مستخدم آخر

إذا كان لديك امتيازات الجذر ويمكنك استخدام sudo ، فيمكنك تغيير أصداف حسابات المستخدمين الأخرى. الأمر هو نفسه كما كان من قبل ، مع إضافة اسم المستخدم لهذا الشخص إلى سطر الأوامر:

 sudo chsh -s / usr / bin / fish mary 

عندما تقوم mary بتسجيل الدخول بعد ذلك ، سترى الغلاف الجديد عندما تفتح نافذة طرفية.

كل شخص لديه مفضل

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

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

ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين