Você pode determinar seu shell padrão com o seguinte comando:
grep -- "$LOGNAME" /etc/passwd | awk -F":" '{print $7}'
Na minha máquina, sh
é um link para dash
, tente:
ls -l "$(which sh)"
Estou usando o Centos 6 e depois de ler sobre diferentes shells e dash implementasion como sh replacement no Debian, Ubuntu e Fedora, resolvi substituir sh com dash como o shell de script em Centos.
Eu não tenho ideia de como ver se isso já está feito, porque tenho sh e dash no meu sistema, então como eu sei qual é o shell de script padrão?
O "script shell" não é o shell de login. É o que quer que esteja rodando como /bin/sh
. Observe que muitos derivados de shell Bourne (por exemplo, sh
s como bash e dash, e provavelmente também os shell com aparência de shell Korn) se comportam de maneira diferente quando chamados como sh
No Centos (e sempre em outros linuxes & unices) você pode saber qual é o shell que você está usando fazendo estes comandos:
$ id
uid=501(john1) gid=1000(groupname1) ....
que informa que você está usando o usuário john1
e, em seguida:
$ grep john1 /etc/passwd
john1:x:501:1000:john1,,,:/home/john1:/bin/bash
a última string afther /
informa qual é o seu shell de login (neste exemplo é '/ bin / bash')
Para alterar seu shell de login, você pode editar (como usuário root
) essa string em passwd
, mas tenha cuidado para não alterar nada mais.
Se você tem uma interface gráfica instalada (como o GNOME ou o KDE), existem outras ferramentas gráficas para alterar essas configurações.
a melhor maneira de mudar é usar usermod no Centos
usermod -s /bin/bash username