Como faço para que o arquivo .profile funcione na máquina Solaris?
Pergunta
Isso está me frustrando há dois dias e parece que deveria ser uma coisa muito simples.Acabei de criar uma conta em uma máquina Solaris.Sun OS 5.10, eu acredito.
O padrão é o Bourne Shell, que eu não quero.Eu fiz um cat /etc/shells
o que resulta em:
/bin/sh
/sbin/sh
/bin/ksh
/usr/bin/ksh
Parece que o shell Korn é tudo que posso usar.
Eu criei um .profile
arquivo e escreveu:
export SHELL=/usr/bin/ksh
Então eu fiz um env
e parece /bin/sh
ainda está listado como meu shell.Saí, entrei novamente e agora recebo:
-sh: SHELL=/usr/bin/ksh: is not an identifier
Eu tentei adicionar #!/usr/bin/ksh
no início do .profile
.Isso não funcionou.Eu tentei adicionar um ponto e vírgula no final do export
.Isso não funcionou.Eu tentei: SHELL=/bin/ksh
e isso também não funcionou.
Meu objetivo final é levar esse ambiente a um ponto em que eu possa operar de forma produtiva.Estou acostumado com o BASH, onde tenho preenchimento de guias, seta para cima para histórico, etc. e esse shell Bourne não tem nada disso e isso me frustra profundamente.
Eu sei que isso deve ser simples, mas toda a minha pesquisa no Google não adiantou.Alguém pode me ajudar?
Solução
/etc/shells
não for um arquivo Solaris padrão, você provavelmente não deveria confiar em seu conteúdo.
Por outro lado, bash
faz parte da instalação padrão do Solaris 10.Já deveria estar presente como /bin/bash
(/usr/bin/bash
na verdade, mas /bin
é um link simbólico para /usr/bin
de qualquer forma).
Se bash
não estiver lá, você pode pedir ao administrador para instalar o SUNWbash
pacote do Solaris_10/Product
diretório na mídia de instalação.
Então, para atualizar seu shell, a maneira normal é atualizar o shell definido para sua conta.Se for local, esse é o último campo do seu /etc/passwd
entrada.
Alternativamente, você pode usar esse hack no final do seu .profile:
[ ! "$BASH_VERSION" -a -x /bin/bash ] && SHELL=/bin/bash exec /bin/bash
Outras dicas
Em ordem decrescente de preferência
- peça ao administrador do sistema para instalar o bash e atualizar /etc/shells e atualizar seu shell de login
- veja se o
chsh
está instalado um programa que permitirá que você altere seu próprio shell de login - peça ao administrador do sistema para alterar seu shell de login para /usr/bin/ksh
modifique seu ~/.profile:
if type [[ >/dev/null; then : # this is ksh else # not ksh export SHELL; SHELL=/usr/bin/ksh exec $SHELL fi