Question

Cela me frustre depuis deux jours et il semble que cela devrait être une chose très simple.Je viens de créer un compte sur une machine Solaris.Sun OS 5.10 je crois.

La valeur par défaut est le shell Bourne dont je ne veux pas.j'ai fait un cat /etc/shells ce qui donne :

/bin/sh
/sbin/sh
/bin/ksh
/usr/bin/ksh

On dirait que Korn Shell est tout ce que je peux utiliser.

J'ai créé un .profile fichier et écrit :

export SHELL=/usr/bin/ksh

Puis j'ai fait un env et on dirait /bin/sh est toujours répertorié comme mon shell.Je me suis déconnecté, reconnecté et maintenant j'obtiens :

-sh: SHELL=/usr/bin/ksh: is not an identifier

J'ai essayé d'ajouter #!/usr/bin/ksh au début du .profile.Cela n'a pas fonctionné.J'ai essayé d'ajouter un point-virgule à la fin de export.Cela n'a pas fonctionné.J'ai essayé: SHELL=/bin/ksh et ça n'a pas marché non plus.

Mon objectif final est d'amener cet environnement à un point où je peux fonctionner de manière productive.Je suis habitué à BASH où j'ai des tabulations complètes, une flèche vers le haut pour l'historique, etc. et ce shell Bourne n'a rien de tout cela et cela me frustre sans fin.

Je sais que cela doit être simple, mais toutes mes recherches sur Google ne servent à rien.Est-ce que quelqu'un peut m'aider?

Était-ce utile?

La solution

/etc/shells n'est pas un fichier Solaris standard, vous ne devriez probablement pas vous fier à son contenu.

D'autre part, bash fait partie de l'installation par défaut de Solaris 10.Il devrait déjà être présent comme /bin/bash (/usr/bin/bash en fait mais /bin est un lien symbolique vers /usr/bin de toute façon).

Si bash n'est pas là, vous souhaiterez peut-être demander à l'administrateur d'installer le SUNWbash colis du Solaris_10/Product répertoire dans le support d'installation.

Ensuite, pour mettre à jour votre shell, la méthode habituelle consiste à mettre à jour le shell défini pour votre compte.S'il est local, c'est le dernier champ de votre /etc/passwd entrée.

Alternativement, vous pouvez utiliser ce hack à la fin de votre .profile :

[ ! "$BASH_VERSION" -a -x /bin/bash ] && SHELL=/bin/bash exec /bin/bash 

Autres conseils

Par ordre décroissant de préférence

  1. demandez à l'administrateur système d'installer bash et de mettre à jour /etc/shells et de mettre à jour votre shell de connexion
  2. voir si le chsh un programme est installé qui vous permettra de modifier votre propre shell de connexion
  3. demandez à l'administrateur système de changer votre shell de connexion en /usr/bin/ksh
  4. modifiez votre ~/.profile :

    if type [[ >/dev/null; then
        : # this is ksh
    else
        # not ksh
        export SHELL; SHELL=/usr/bin/ksh
        exec $SHELL
    fi
    
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top