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?

Foi útil?

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

  1. peça ao administrador do sistema para instalar o bash e atualizar /etc/shells e atualizar seu shell de login
  2. veja se o chsh está instalado um programa que permitirá que você altere seu próprio shell de login
  3. peça ao administrador do sistema para alterar seu shell de login para /usr/bin/ksh
  4. modifique seu ~/.profile:

    if type [[ >/dev/null; then
        : # this is ksh
    else
        # not ksh
        export SHELL; SHELL=/usr/bin/ksh
        exec $SHELL
    fi
    
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top