Как мне заставить файл .profile работать на машине Solaris?
Вопрос
Это расстраивает меня уже два дня, и кажется, что это должно быть очень просто.Я только что создал учетную запись на машине 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
Другие советы
В порядке убывания предпочтения
- попросите системного администратора установить bash, обновить /etc/shells и обновить оболочку входа в систему.
- посмотреть, есть ли
chsh
установлена программа, которая позволит вам изменить собственную оболочку входа в систему - попросите системного администратора изменить оболочку входа в систему на /usr/bin/ksh
измените ваш ~/.profile:
if type [[ >/dev/null; then : # this is ksh else # not ksh export SHELL; SHELL=/usr/bin/ksh exec $SHELL fi