AIX(Korn 쉘, .profile)에서 별명이 작동하지 않는 이유는 무엇입니까?

AIX(Korn 쉘, .profile)에서 별명이 작동하지 않는 이유는 무엇입니까?

내 홈 디렉터리에 다음 파일이 있습니다.

drwxr-xr-x    3 meuser staff           256 Oct 12 13:11 .
drwxr-xr-x  102 bin      bin            4096 Sep 30 12:28 ..
-rw-------    1 meuser staff          5349 Oct 11 20:44 .bash_history
-rwx------    1 meuser staff           466 Jun 26 22:12 .profile
-rw-------    1 meuser staff          7074 Oct 12 13:11 .sh_history
drwx------    2 meuser staff           256 Aug 16 15:28 .ssh

내 기본 쉘은 Korn 쉘입니다. 다음과 같이 별칭을 넣으려고 할 때 .profile:

alias l='ls -lrt'

다시 로그인한 후 실행을 시도했습니다.

$ l
ksh: l:  not found.

이 별칭을 작동시키는 방법은 무엇입니까?

답변1

.profile로그인 시에만 읽혀집니다. 이후 수정 사항은 현재 환경에 영향을 주지 않습니다. .profile다음 방법으로 다시 로드해야 합니다 .

  • 파일 소싱: . .profile(영향을 줍니다.현재의껍질, 아니모두껍질)
  • su -l <user>(새 로그인)
  • 로그아웃 + 로그인

답변2

작동합니다.

내 .profile에서 볼 수 있는 유일한 차이점은 큰따옴표입니다.

alias l="ls -l"

이 라인은 ksh를 쉘로 사용하는 AIX에서 작동합니다.

연결 해제 및 재연결과 관련하여... 기본 셸이 ksh인지 확실합니까? /etc/passwd에서 사용자를 확인하세요.

답변3

이것은 .profile쉘 구성 파일이 아니라 로그인 세션입니다.설정 파일. 로그인 시 시작된 쉘에서만 읽을 수 있으며 로그인 세션 내에서 시작된 다른 대화형 쉘에서는 읽을 수 없습니다.

ksh자체에는 전용 사용자 정의 파일이 없지만 $ENV변수를 대화형 셸 세션에 대한 사용자 정의 파일의 경로로 처리합니다.

그래서 다음과 같은 것을 추가할 것입니다:

ENV="$HOME/.kshrc" export ENV

당신 ~/.profile과:

alias 'l=ls -lrt'

너의 ~에게 ~/.kshrc.

변경 사항은 다음 로그인 시에만 적용됩니다.

답변4

별칭은 Korn Shell을 사용하는 AIX에서 작동합니다.

다음과 같은 명령 끝에 몇 가지 명령을 입력하세요 /etc/profile.

export PS1="`hostname`# "
alias ll="/usr/bin/ls -lF $*"
alias h="history 50"

환경 내에 이러한 변수를 설정하려면 다음을 실행하십시오.

. /etc/profile

관련 정보