Bagaimana cara beralih dari shell yang tidak dikenal ke bash?

Saya terkejut bahwa saya tidak menemukan pertanyaan ini di situs. Jadi, hari ini $ muncul setelah saya login sebagai pengguna baru. Hal ini tidak terduga karena prompt pengguna utama saya dimulai dengan username@computername:~$.

Jadi, bagaimana saya beralih dari shell lain ini ke bash?

Larutan

Dengan asumsi shell yang tidak dikenal mendukung menjalankan perintah absolut, Anda bisa mencobanya: /bin/bash

Untuk mengubah shell default, saya akan menggunakan chsh(1). Contoh penggunaan: chsh -s /bin/bash $USER

Komentar (3)

Anda mengetikkan bash. Jika anda ingin ini menjadi permanen, ubahlah shell default ke /bin/bash dengan mengedit /etc/passwd.

Berikut ini beberapa cuplikan dari /etc/passwd saya:

avahi:x:84:84:Avahi daemon:/:/bin/false
xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh
postgres:x:88:88::/var/lib/postgres:/bin/zsh
bob:x:1001:1001::/home/bob:/bin/bash
usbmux:x:140:140:usbmux user:/:/sbin/nologin

Kolom terakhir berisi shell, memodifikasi kolom setelah kolom terakhir : menjadi shell yang valid atau tidak valid akan bekerja. /bin/false dan /sbin/nologin keduanya berarti pengguna tidak memiliki shell login yang sebenarnya, meskipun jika pam tidak diatur dengan benar, ini tidak berarti mereka tidak bisa login (saya melaporkan bug tentang hal ini di Arch Linux, karena Anda dapat login secara grafis tanpa memiliki shell login). /bin/bash dan /bin/zsh adalah shell yang valid, lihat /etc/shells untuk daftar shell yang valid pada sistem Anda. Ini /etc/shells saya jika Anda tertarik.

/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash

Ya, Anda dapat menggunakan chsh atau usermod untuk melakukan hal yang sama, harap diingat bahwa ini hanyalah file teks terstruktur, dan TIMTOWTDI.

Komentar (3)

Jika chsh atau mengedit konfigurasi secara manual tidak akan berhasil, tetapi skrip ~/.profile dieksekusi saat login, tambahkan baris ini:

exec /bin/bash --login
Komentar (3)