Solaris 시스템에서 .profile 파일이 작동하도록 하려면 어떻게 해야 합니까?
문제
이것은 이틀 동안 나를 좌절시켰고 매우 간단한 일이어야 할 것 같습니다.방금 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 쉘에는 그런 것이 하나도 없고 그것은 나를 끝없이 좌절시킵니다.
나는 이것이 간단해야 한다는 것을 알고 있지만 모든 인터넷 검색은 소용이 없습니다.누군가 나를 도와줄 수 있나요?
해결책
/etc/shells
은(는) 표준 Solaris 파일이 아니므로 해당 내용에 의존해서는 안 됩니다.
반면에, bash
기본 Solaris 10 설치의 일부입니다.이미 다음과 같이 존재해야 합니다. /bin/bash
(/usr/bin/bash
실제로는 하지만 /bin
에 대한 심볼릭 링크입니다 /usr/bin
그래도).
만약에 bash
거기에 없으면 관리자에게 설치를 요청하는 것이 좋습니다. SUNWbash
패키지에서 Solaris_10/Product
설치 미디어의 디렉터리입니다.
그런 다음 셸을 업데이트하려면 일반적인 방법은 계정에 대해 정의된 셸을 업데이트하는 것입니다.로컬인 경우 해당 필드가 마지막 필드입니다. /etc/passwd
기입.
또는 .profile 끝에 해당 해킹을 사용할 수도 있습니다.
[ ! "$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