Solaris 시스템에서 .profile 파일이 작동하도록 하려면 어떻게 해야 합니까?

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 쉘에는 그런 것이 하나도 없고 그것은 나를 끝없이 좌절시킵니다.

나는 이것이 간단해야 한다는 것을 알고 있지만 모든 인터넷 검색은 소용이 없습니다.누군가 나를 도와줄 수 있나요?

도움이 되었습니까?

해결책

/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 

다른 팁

선호도 내림차순

  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