2010-05-22 24 views
20

Im utilizzando KUbuntu 10.04 (Lucid Lynx). Ho installato zsh e schermo. Ho impostato zsh come shell predefinita, impostando Comando su zsh in Impostazioni-> Modifica profilo corrente del terminale. Ma quando lancio schermata, viene caricata la shell bash. Se faccio funzionare l'ordine zsh, quindi zsh si avvia ma viene visualizzato il seguente messaggio:Caricamento di zsh come shell predefinita nella schermata di GNU

"/home/joel/.zshrc:36: Can't add module parameter `mapfile': parameter already exists" 

Inoltre, zsh viene invocata solo per l'istanza schermata corrente e devo richiamare di nuovo manualmente per altre istanze. Quindi, esiste un modo per rendere lo screen load zsh di default e invocarlo automaticamente per ogni istanza?

Thank You

+5

Appartiene a superuser.com –

+2

Si prega di pubblicare i contenuti di ~ ~/.zshrc'. –

+0

o prova a cancellare il tuo '~/.zshrc' – rampion

risposta

8

Prima di individuare dove è zsh così:

$ whereis zsh 

secondo guscio cambiamento per l'utente corrente:

$ chsh -s /path/to/zsh joel 

E zsh sarà shell di default per l'utente joel dopo il relogin.

+0

Grazie per la risposta. whereis zsh fornisce sh:/bin/zsh/usr/bin/zsh/etc/zsh/usr/lib/zsh/usr/share/zsh /usr/share/man/man1/zsh.1.gz. Ma quando faccio chsh -s {/ bin/zsh} joel, chiede la password e poi ottengo il messaggio "chsh: {/ bin/zsh} è una shell non valida." – joel

+1

* chsh -s/bin/zsh joel * - questo è quello che ti serve! :) – mosg

+0

Oops..urio, grazie ha funzionato! :). Ma ottengo ancora il messaggio "Impossibile aggiungere il parametro module mapfile: il parametro esiste già" quando lancio la schermata. Un modo per sistemarlo? – joel

47

Se si desidera rendere la shell predefinita solo per le sessioni dello schermo, è sufficiente aggiungere questa riga al file ~/.screenrc.

shell "/usr/bin/zsh" 
+3

Penso che sia anche utile sapere che '~/.screenrc' non esiste finché non viene creato da tu. Ho dovuto creare il file e inserire 'shell"/usr/bin/zsh "' affinché funzioni. [Link] (https://ubuntuforums.org/showthread.php?t=1661612) – Slothworks

2

ho avuto un problema simile a te, tranne che nel mio caso ho cambiato il Vim shell utilizza, specificando set shell=zsh\ --login in .vimrc. Ogni volta che ho lasciato cadere in un guscio tramite: sh zsh avrebbe piagnucolare con lo stesso errore:

Can't add module parameter `mapfile': parameter already exists 

ho chiesto su #vim e #zsh su freenode. Si scopre che se si esegue zsh di nuovo all'interno di una sessione zsh, si vedrà lo stesso errore, e la correzione suggerita è di aggiungere semplicemente &>/dev/null al vostro file .zshrc in questo modo: modulo mapfile

zmodload -ap zsh/mapfile mapfile &>/dev/null 

La zsh crea un pseudo-variabile che mappa i nomi dei file nei loro contenuti ed è necessario solo se si hanno script che effettivamente usano $ mapfile.

Sembra essere facoltativo, ma è stato osservato che il parametro autoload c'è modo che viene caricato quando richiesto, quindi non ci dovrebbe essere nessun danno nel mantenere gli addebiti di linea e tubazioni a/dev/null

Problemi correlati