Jika Anda tidak dapat berlari chsh
karena Anda tidak memiliki hak admin, bicaralah dengan seseorang yang punya .
Kemungkinan besar Anda tidak dapat menggunakan chsh
sebagai non-root karena sistem yang Anda gunakan dikonfigurasi sehingga chsh
tidak akan berfungsi, misalnya karena sistem menggunakan NIS atau LDAP daripada hanya /etc/passwd
file. Atau mungkin administrator sistem Anda hanya ingin mempertahankan kontrol.
Prosedur untuk mengganti shell Anda tergantung pada kebijakan organisasi Anda. Mungkin ada perintah lokal yang melakukan apa yang chsh
biasanya dilakukan. Atau Anda mungkin perlu mengirimkan tiket dukungan meminta perubahan shell.
Sebagian besar jawaban lain baik, tetapi jika administrator Anda cukup responsif, Anda mungkin tidak ingin repot-repot meretas skrip startup Anda. Saya mungkin baru saja memohon zsh -l
secara manual setelah masuk hingga administrator dapat memperbarui akun saya.
Hal lain yang perlu diingat: Kadang-kadang shell yang berbeda dapat menggunakan file startup yang sama. Misalnya, sh
dan bash
dapat baik mengeksekusi $HOME/.profile
, dan csh
dan tcsh
keduanya dapat mengeksekusi $HOME/.login
dan $HOME/.cshrc
(meskipun file startup shell khusus seperti .bashrc
, .bash_profile
, dan .tcshrc
dapat menimpa mereka). Jika shell default /bin/csh
Anda dan Anda ingin menggunakan /bin/tcsh
, memperbarui Anda .login
untuk memohon /bin/tcsh -l
dapat membuat loop tak terbatas. zsh
tidak terjadi untuk menjalankan bash
file startup khusus, jadi itu bukan masalah bagi Anda.
Kebanyakan kerang set variabel yang mengidentifikasi shell Anda menjalankan ( $BASH_VERSION
, $tcsh
, $ZSH_VERSION
). Jika Anda akan menulis kode startup untuk memohon shell pilihan Anda, itu bukan ide yang buruk untuk menyertakannya di if
sehingga dijalankan hanya jika Anda belum menjalankan shell itu. Menggunakan kode dari jawaban konsolebox :
if [ "${ZSH_VERSION:-unset}" = "unset" ] ; then
export SHELL=/bin/zsh
exec /bin/zsh -l
fi
(Komplikasi tambahan dari pemeriksaan "${ZSH_VERSION:-unset}"
daripada hanya "$ZSH_VERSION"
memungkinkan untuk kemungkinan yang telah Anda lakukan set -o unset
, opsi yang menyebabkan referensi ke variabel yang tidak ditentukan menjadi kesalahan.)
zsh
pada.bashrc
file. Logout dan login dan selesai!