Saya terkejut bahwa saya belum menemukan pertanyaan ini di situs. Jadi, hari ini $
muncul setelah saya masuk sebagai pengguna baru. Ini tidak terduga karena permintaan pengguna utama saya dimulai dengan username@computername:~$
.
Jadi, bagaimana cara saya beralih dari shell lain ke bash?
$
munculusername@computername:~$
bukan berarti itu bukan bash. Pemformatan yang tepat dari prompt diatur oleh variabel PS1, yang dapat diatur atau disesuaikan secara berbeda untuk pengguna yang berbeda.echo $SHELL
untuk mencari tahu apa shell Anda saat ini./bin/sh
sering tidak berarti banyak yang biasanya merupakan symlink ke hal lain. Saya mengetikls -l /bin/sh
untuk melihat apa itu symlink. Dalam beberapa kasus menjadi symlink ke sesuatu mengubah perilakunya, saya tidak berpikir bash seperti itu.bash
sebagai/bin/sh
menonaktifkan banyak fitur bash (masuk ke mode kepatuhan POSIX).Jawaban:
Dengan asumsi shell yang tidak dikenal mendukung menjalankan perintah absolut, Anda dapat mencoba:
/bin/bash
Untuk mengubah shell default, saya akan menggunakan
chsh(1)
. Penggunaan sampel:chsh -s /bin/bash $USER
sumber
/etc/passwd
chsh(1)
hanya akan memungkinkan untuk mengubah ke shell yang terdaftar di/etc/shells
(dan tersedia, mungkin).chsh -l
daftar alternatif. Hati-hati, beberapa (sepertinologin
) didefinisikan untuk akun yang tidak boleh digunakan untuk login (cara yang bagus untuk mengunci diri sendiri), mungkin ada penambahan lokal untuk penggunaan khusus.Anda mengetik
bash
. Jika Anda ingin ini menjadi permanen, ganti shell default/bin/bash
dengan mengedit/etc/passwd
.Berikut beberapa cuplikan dari saya
/etc/passwd
:Bidang terakhir berisi shell, Memodifikasi bidang setelah yang terakhir
:
ke shell yang valid atau tidak valid akan berfungsi./bin/false
dan/sbin/nologin
keduanya berarti pengguna tidak memiliki shell login asli, meskipun jika pam tidak diatur dengan benar ini tidak berarti mereka tidak bisa login (saya melaporkan bug tentang ini di Arch Linux, karena Anda dapat login secara grafis tanpa harus shell login)./bin/bash
dan/bin/zsh
keduanya adalah shell yang valid, lihat/etc/shells
daftar shell yang valid pada sistem Anda. Inilah saya/etc/shells
jika Anda tertarik.Ya, Anda dapat menggunakan
chsh
atauusermod
melakukan hal yang sama, harap diingat ini hanya file teks terstruktur, dan TIMTOWTDI.sumber
chsh
alih-alih mengedit secara manualpasswd
/etc/passwd
Saya tidak merasa ingin mendaftar, karena saya selalu melakukannya secara manual. chsh dan usermod bisa melakukannya.Jika chsh atau mengedit konfigurasi secara manual tidak akan berfungsi, tetapi skrip ~ / .profile dijalankan saat login, tambahkan baris ini:
sumber
touch ~/.bash_profile
atau jika bash akan mengeksekusi dirinya sendiri dalam satu loop: bash mengambil~/.profile
dalam kasus~/.bash_profile
tidak ada.