Jika Anda tidak dapat berlari chshkarena Anda tidak memiliki hak admin, bicaralah dengan seseorang yang punya .
Kemungkinan besar Anda tidak dapat menggunakan chshsebagai non-root karena sistem yang Anda gunakan dikonfigurasi sehingga chshtidak akan berfungsi, misalnya karena sistem menggunakan NIS atau LDAP daripada hanya /etc/passwdfile. 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 chshbiasanya 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 -lsecara 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, shdan bashdapat baik mengeksekusi $HOME/.profile, dan cshdan tcshkeduanya dapat mengeksekusi $HOME/.logindan $HOME/.cshrc(meskipun file startup shell khusus seperti .bashrc, .bash_profile, dan .tcshrcdapat menimpa mereka). Jika shell default /bin/cshAnda dan Anda ingin menggunakan /bin/tcsh, memperbarui Anda .loginuntuk memohon /bin/tcsh -ldapat membuat loop tak terbatas. zshtidak terjadi untuk menjalankan bashfile 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 ifsehingga 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.)
zshpada.bashrcfile. Logout dan login dan selesai!