it-swarm-eu.dev

Come posso rendere Bash my default Shell su Ubuntu?

Ho un .bash_profile nella mia home directory, ma non viene eseguito sul login. Se faccio quanto segue, allora le cose sembrano essere come mi aspetto:

ssh myhost
bash
source ~/.bash_profile

Ma normalmente tutto accade al login. Pensieri?

90
James A. Rosen

Uso:

chsh

Immettere la password e indicare il percorso della Shell che si desidera utilizzare.

Per Bash sarebbe /bin/bash. Per Zsh questo sarebbe /usr/bin/zsh.

155
akira

Oltre alla risposta di Akira, puoi anche modificare il tuo /etc/passwd file per specificare la Shell predefinita.

Troverai una riga come questo esempio:

john:x:1000:1000:john,,,:/home/john:/bin/sh

La Shell è specificata alla fine.

35
John T

Abilita bash:

$ /bin/bash

Cambia shell per l'utente:

$ Sudo usermod -s /bin/bash username

dove:

  -s, --Shell SHELL             new login Shell for the user account
2
Umanshield

Un'alternativa è rinominare lo script di avvio in .profile. Questo file è stato generato dalla maggior parte di shell Unix .

2
mathk

Potresti controllare il tuo programma terminale. Potrebbe essere configurato per eseguire/bin/sh piuttosto che/bin/bash

Bash esegue .bash_profile solo per le sessioni di accesso. .bashrc viene eseguito per tutte le sessioni bash, non solo per le sessioni di accesso. Prova a cercare .bash_profile da .bashrc (evita dipendenze circolari!) O configura il tuo programma terminale per eseguire/bin/bash -l come programma Shell.

Non ci sono abbastanza informazioni nella tua domanda che posso dire per certo, ma ho già riscontrato lo stesso problema. Supponendo che tu abbia già impostato/bin/bash nella tua password, potrebbe essere il modo in cui il tuo terminale verrà lanciato.

Se stai provando ad avviare un terminale GUI, ad esempio gnome-terminal potresti aspettarti che la Shell legga i tuoi file di avvio bash. Tuttavia, questo non accade su Ubuntu e forse su altri sistemi per impostazione predefinita.

Il modo in cui l'ho risolto su Ubuntu è quello di modificare le preferenze di gnome-terminal e impostare il comando di avvio su bash -l. -l è l'abbreviazione di --login. Questo dice bash all'avvio come Shell di accesso, il che gli fa caricare gli script di avvio appena si accede tramite ssh.

Sono sicuro che ci sia una buona logica perché questo sia così com'è, ma l'ho trovato sorprendente e un po 'fastidioso visto che condivido gli stessi profili su sistemi Linux, cywgin e macos.

0
edk750