Cara mengubah dari csh ke bash sebagai shell default


34

Saya telah cshsebagai shell default saya, seperti yang ditunjukkan oleh echo $SHELL. Saya ingin beralih ke bashshell default saya. Saya mencoba pendekatan berikut tanpa hasil:

  1. Dengan chshsaya dapatkan:

    chsh: can only change local entries; use ypchsh instead.
  2. Dengan ypchshsaya dapatkan:

    ypchsh: yppasswdd not running on NIS master host ("dcsun2").

Saya hanya punya .chsrcdi direktori home saya dan saya tidak dapat menemukan .profilefile di dalamnya /etc. Bagaimana saya bisa mengganti shell default saya bash?


4
Mungkin berguna untuk mengetahui jenis unix Anda.
enzotib

Jawaban:


44
  1. Pastikan Anda sudah bashmenginstal.

  2. Pelajari lokasi bash:

    which bash

    atau

    whereis bash

    Di bawah, saya akan berasumsi lokasinya /bin/bash.

    a) Jika Anda memiliki hak administratif, jalankan saja sebagai root:

    usermod -s /bin/bash YOUR_USERNAME

    (ganti YOUR_USERNAMEdengan nama pengguna Anda).

    b) Jika Anda tidak memiliki adm. hak, Anda masih bisa berjalan bash --loginsaat login, dengan meletakkan baris di bawah ini di akhir Anda .cshrcatau .profile(di direktori home Anda):

    setenv SHELL /bin/bash
    exec /bin/bash --login

2b. Periksa apakah bashdisebutkan /etc/shellsdengan jalur yang benar.
manatwork

@manatwork Itu relevan untuk 2a , bukan 2b. Dan hanya berguna dalam pengaturan sistem yang aneh / rusak untuk menentukan mengapa solusi tidak bekerja.
rozcietrzewiacz

1
1. SHELL = / bin / bash memberikan perintah tidak ditemukan kesalahan. 2. Solusi Anda memberi saya bash shell sebagai prompt. Tetapi itu tidak mengubah shell login saya. Terima kasih atas bantuannya.
Sumod

1
Inilah yang saya lakukan untuk menyelesaikan ini. 1. exec / bin / bash - login di file .cshrc 2. atur SHELL = / bin / bash dan kemudian ekspor SHELL di file / etc / profile. Terima kasih.
Sumod

2
Ah, maaf - maksud saya baris pertama export SHELL=/bin/bash. Sebenarnya ada cara yang lebih baik dari itu - lihat pembaruan.
rozcietrzewiacz

13

Hubungi administrator sistem Anda. Dia salah mengatur segalanya. Jika Anda adalah administrator sistem Anda, maka Anda salah mengaturnya.

Pesan kesalahan terlihat cukup lurus ke depan. Anda tidak harus yppasswdberjalan di dcsun2. Harus.

Tetapi melakukan pencarian google cepat muncul dengan hasil ini yang menunjukkan bahwa Anda akan mendapatkan kesalahan ini jika yppasswdberjalan pada klien dan server. Dalam hal ini matikan pada klien.


Jika Anda terjebak dengan csh sebagai shell login Anda, Anda masih dapat membuatnya bash ketika Anda login. Masukkan perintah berikut di Anda ~/.login(lihat juga Mengubah shell default tanpa chsh atau hak istimewa administrator ):

sleep 2
if (-x /usr/local/bin/bash) then
  exec /usr/local/bin/bash -l
endif

Ganti /usr/local/bin/bashdengan jalur yang tepat jika perlu. Jika semuanya berfungsi, hapus sleep 2(yang menyebabkan penundaan di mana Anda dapat menekan Ctrl+Cuntuk turun ke prompt csh, jika terjadi kesalahan).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.