Come passare da csh a bash come shell predefinita


34

Ho cshcome shell predefinita, come mostrato da echo $SHELL. Voglio passare a bashcome shell predefinita. Ho provato inutilmente i seguenti approcci:

  1. Con chshottengo:

    chsh: can only change local entries; use ypchsh instead.
  2. Con ypchshottengo:

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

Ho solo .chsrcnella mia directory home e non riesco a trovare alcun .profilefile in /etc. Come posso cambiare la mia shell predefinita in bash?


4
Potrebbe essere utile sapere su quale tipo di unix sei.
enzotib,

Risposte:


44
  1. Assicurati di aver bashinstallato.

  2. Scopri la posizione di bash:

    which bash

    o

    whereis bash

    Di seguito, suppongo che la posizione sia /bin/bash.

    a) Se disponi dei diritti amministrativi, esegui come root:

    usermod -s /bin/bash YOUR_USERNAME

    (sostituendo YOUR_USERNAMEcon il tuo nome utente).

    b) Se non si dispone di adm. diritti, è ancora possibile eseguire bash --loginal momento del login, inserendo la riga seguente alla fine del proprio .cshrco .profile(nella propria directory home):

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

2b. Controlla se bashè elencato /etc/shellscon il percorso corretto.
arte

@manatwork Sarebbe rilevante per 2a , non per 2b. E utile solo in una configurazione di sistema strana / rotta per determinare perché la soluzione non ha funzionato.
rozcietrzewiacz,

1
1. SHELL = / bin / bash dà un comando non trovato errore. 2. La tua soluzione mi fornisce una shell bash come prompt. Ma non cambia la mia shell di accesso. Grazie per l'aiuto però.
Sumod,

1
Ecco cosa ho fatto per risolverlo. 1. exec / bin / bash --login nel file .cshrc 2. imposta SHELL = / bin / bash e poi esporta SHELL nel file / etc / profile. Grazie.
Sumod,

2
Ah, scusa, intendevo essere la prima riga export SHELL=/bin/bash. In realtà c'è un modo migliore di quello - vedi aggiornamento.
rozcietrzewiacz,

13

Contatta l'amministratore di sistema. Ha sbagliato le cose. Se sei l'amministratore di sistema , hai impostato le cose in modo errato.

Il messaggio di errore sembra piuttosto semplice. Non hai yppasswdeseguito su dcsun2. Dovrebbe essere.

Ma facendo una rapida ricerca su Google si ottiene questo risultato che indica che si otterrà questo errore se yppasswdè in esecuzione sia sul client che sul server. In questo caso disattivarlo sul client.


Se sei bloccato con csh come shell di accesso, puoi comunque farlo invocare bash quando accedi. Inserisci i seguenti comandi nel tuo ~/.login(vedi anche Modifica della shell predefinita senza privilegi di amministratore o chsh ):

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

Sostituire /usr/local/bin/bashcon il percorso corretto, se necessario. Se tutto funziona, rimuovi sleep 2(che mette un ritardo durante il quale puoi premere Ctrl+Cper passare a un prompt csh, nel caso qualcosa vada storto).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.