Как мне заставить файл .profile работать на машине Solaris?

StackOverflow https://stackoverflow.com//questions/22078816

  •  24-12-2019
  •  | 
  •  

Вопрос

Это расстраивает меня уже два дня, и кажется, что это должно быть очень просто.Я только что создал учетную запись на машине Solaris.Кажется, Sun OS 5.10.

По умолчанию используется оболочка Bourne, которая мне не нужна.я сделал cat /etc/shells что приводит к:

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

Похоже, оболочка Korn — это все, что я могу использовать.

Я создал .profile файл и написал:

export SHELL=/usr/bin/ksh

Затем я сделал env и это похоже /bin/sh все еще указан как моя оболочка.Я вышел из системы, снова вошел в систему и теперь получаю:

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

Я попробовал добавить #!/usr/bin/ksh в начале .profile.Это не сработало.Я попробовал добавить точку с запятой в конце export.Это не сработало.Я пробовал: SHELL=/bin/ksh и это тоже не сработало.

Моя конечная цель — довести эту среду до такой степени, что я смогу работать продуктивно.Я привык к BASH, где у меня есть табуляция, стрелка вверх для истории и т. д., а в этой оболочке Bourne ничего из этого нет, и это меня бесконечно расстраивает.

Я знаю, что это должно быть просто, но все мои поиски в Google бесполезны.Кто-нибудь может мне помочь?

Это было полезно?

Решение

/etc/shells это не стандартный файл Solaris, вам, вероятно, не стоит полагаться на его содержимое.

С другой стороны, bash является частью установки Solaris 10 по умолчанию.Он уже должен присутствовать в виде /bin/bash (/usr/bin/bash на самом деле, но /bin является символической ссылкой на /usr/bin во всяком случае).

Если bash если его там нет, возможно, вы захотите попросить администратора установить SUNWbash посылка из Solaris_10/Product каталог на установочном носителе.

Затем, чтобы обновить вашу оболочку, обычным способом является обновление оболочки, определенной для вашей учетной записи.Если оно локальное, это последнее поле в вашем /etc/passwd вход.

В качестве альтернативы, вы можете использовать этот хак в конце вашего профиля .:

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

Другие советы

В порядке убывания предпочтения

  1. попросите системного администратора установить bash, обновить /etc/shells и обновить оболочку входа в систему.
  2. посмотреть, есть ли chsh установлена ​​программа, которая позволит вам изменить собственную оболочку входа в систему
  3. попросите системного администратора изменить оболочку входа в систему на /usr/bin/ksh
  4. измените ваш ~/.profile:

    if type [[ >/dev/null; then
        : # this is ksh
    else
        # not ksh
        export SHELL; SHELL=/usr/bin/ksh
        exec $SHELL
    fi
    
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top