سؤال كيف يمكنني جعل Bash shell الافتراضي الخاص بي على Ubuntu؟


انا املك .bash_profile في دليل منزلي ، ولكن لا يتم تشغيله عند تسجيل الدخول. إذا قمت بما يلي ، فإن الأمور تبدو كما أتوقع:

ssh myhost
bash
source ~/.bash_profile

ولكن عادة ما يحدث كل ذلك عند تسجيل الدخول. أفكار؟


80
2017-09-25 12:03


الأصل


تأكد أيضا من أنك لا تملك ~/.profile أو ~/.bash_login، حيث أن مصدرًا واحدًا فقط من الثلاثة. (لقد نسيت الترتيب بالضبط.) - grawity
لماذا لديك سؤال مختلف في العنوان وآخر مختلف في جسد منشورك؟ - pabouk


الأجوبة:


استعمال:

chsh

أدخل كلمة المرور وحدد المسار إلى الصدفة التي تريد استخدامها.

لباش من شأنه أن يكون /bin/bash. ل Zsh من شأنه أن يكون /usr/bin/zsh.


142
2017-09-25 12:08



إجراء 1+ - غير متأكد من سبب قرار OP أن تعديل ملف كلمة المرور كان خيارًا أفضل ، ولكن هذا هو أفضل إجابة - kdgregory
نعم اعتدت على ذلك ، هذه هي الطريقة القياسية. - John T
وعلى أوبونتو المسار إلى الصدف الذي تريد استخدامه هو ... / بن / باش (و / بن / ش ليس هو نفسه) - Harry Wood
أو يمكنك استخدامها sudo chsh -s /bin/bash username - Oleg Vaskevich
يجب تسجيل الخروج وتسجيل الدخول مرة أخرى لمشاهدة هذا التغيير. - Neil Traft


على رأس الإجابة أكيرا ، يمكنك أيضا تحرير الخاص بك / الخ / باسود ملف لتحديد shell الافتراضي الخاص بك.

ستجد خطًا مثل هذا المثال:

john:x:1000:1000:john,,,:/home/john:/bin/sh

يتم تحديد shell في النهاية.


34
2017-09-25 12:09



من الأفضل استخدام الأمر 'chsh' كما اقترحه akira - فرصة أقل لربط شيء ما بالخطأ. - Lars Haugseth
ناهيك عن 'chsh' متاح عندما لا يمكنك الكتابة إلى / etc / passwd - quack quixote
ولكن إذا كان لديك حتى الوصول إلى تعديل /etc/passwd وأنت حذر ، إن إجابة جون تستفيد من الأدوات التي يوفرها النظام. - AJP
يجب تسجيل الخروج وتسجيل الدخول مرة أخرى لمشاهدة هذا التغيير. - Neil Traft
إذا كنت تقوم بتشغيل خادم دون كلمات مرور مستخدم - توفير الوصول فقط من خلال مفاتيح ssh العامة / الخاصة ... فإنه أيضا يجعل الكثير من المعنى. يتطلب chsh كلمة مرور. - Keith John Hutchison


يمكنك التحقق من برنامج المحطة. قد يكون قد تم توصيفه لتشغيل / bin / sh بدلاً من / bin / bash

Bash ينفذ .bash_profile فقط لجلسات تسجيل الدخول. يتم تنفيذ .bashrc لجميع الجلسات ، وليس جلسات تسجيل الدخول فقط. حاول تحديد المصادر .bash_profile من .bashrc (تجنب التبعية الدائرية!) أو تكوين برنامجك الطرفي لتشغيل / bin / bash -l كبرنامج shell.


2
2017-09-25 12:14



برنامج المحطة لا علاقة له بالمشكلة لأنه sshd على الجهاز البعيد ، الذي يولد shell الجديد. - akira


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


2
2018-06-01 11:40





تمكين bash:

$ /bin/bash

تغيير shell للمستخدم:

$ sudo usermod -s /bin/bash username

أين:

  -s, --shell SHELL             new login shell for the user account

0
2018-01-25 18:44



(1) ماذا تقصد ب "تمكين bash"؟ (2) يريد المستخدم تغييره ملك له قذيفة تسجيل الدخول على نظام بعيد. لماذا تفترض أنه لديه sudo الوصول على هذا النظام؟ لماذا تقدم تعليمات من حيث تغيير shell تسجيل دخول مستخدم آخر؟ - G-Man


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

إذا كنت تحاول تشغيل محطة واجهة المستخدم الرسومية ، قل gnome-terminal قد تتوقع أن تقوم shell بقراءة ملفات بدء تشغيل bash. ومع ذلك ، لا يحدث هذا على نظام Ubuntu وربما أنظمة أخرى بشكل افتراضي.

الطريقة التي قمت بإصلاحها على Ubuntu هي تحرير تفضيلات gnome-terminal ، وتعيين أمر بدء التشغيل ليكون bash -l. -l هو اختصار ل --login. هذا يخبر باش لبدء التشغيل كما قذيفة تسجيل الدخول ، مما يؤدي إلى تحميل البرامج النصية بدء التشغيل كما تحصل عليه عند تسجيل الدخول عبر ssh.

أنا متأكد من أن هناك مبررًا جيدًا لهذا الأمر كما هو ، لكنني وجدت أنه أمر مثير للدهشة وأكثر من مزعج بعض الشيء لأنني أشارك الملفات الشخصية نفسها عبر أنظمة linux و cywgin و macos.


0
2017-09-15 19:37