.bash_profile의 별칭이 작동하지 않습니다.

.bash_profile의 별칭이 작동하지 않습니다.

디렉토리 변경을 쉽게하기 위해 .bash_login에 별칭으로 일부 cd 어쩌구 저쩌구 명령을 추가했습니다. 잘 작동했습니다. 갑자기 거기에 별칭이 하나도 작동하지 않지만. 명령을 찾을 수 없다고 말합니다. 왜 모든 것인지에 대한 단서가 없습니다. 갑자기 작동이 중지됩니다. 제안 사항이 있나요?(시스템을 재부팅했습니다.)

사과드립니다. 사실 .bash_login을 쓰려고 했는데요.

답변1

별칭은 내보내지지 않습니다. 즉, 하나의 쉘에 정의된 별칭은 하위 쉘이 상속한 환경의 일부가 아닙니다. 따라서 별칭을 정의하는 가장 좋은 장소는 ~/.bash_profile 또는 ~/.profile이 아닌 ~/.bashrc에 있습니다. 첫 번째는 모든 대화형 쉘에서 제공되고 후자 두 개는 로그인 쉘에서만 제공됩니다. .

답변2

셸에서 명령 을 사용하여 alias실제로 생성되었는지 여부를 확인하세요. 그리고 혹시 Mac Terminal.app 프로그램만 사용하고 계시나요? 옵션 어딘가에는 로그인 셸을 사용하도록 구성할 수 있는 설정이 있어야 합니다. 이것이 .bash_profile 파일의 소스가 되는 방식입니다.

답변3

.bash_profile 파일은 실행 시 쉘에서 읽히지 않을 수 있습니다. 많은 배포판의 기본 .bashrc에는 다음과 같은 내용이 있습니다.

if [ -f ~/.bash_profile ]; then
        . ~/.bash_profile
fi

별칭만 사용하는 경우 파일 이름을 ~/.bash_aliases로 지정하는 것이 좋습니다.

if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
fi

그것이 하는 일은 파일이 존재하는지 확인하고, 그렇다면 그 안에 있는 명령을 실행하는 것입니다. 귀하의 경우 별칭 명령. 이를 .bashrc에 넣으면 문제가 해결됩니다.

편집: 실제로는 그보다 조금 더 복잡합니다. 내 솔루션은 작동하지만 읽어볼 가치가 있습니다..bash_profile 대 .bashrc

PS *nix 시스템의 문제를 해결하기 위해 재부팅이 필요한 경우는 거의 없습니다. 로그 아웃 및 로그인은 최대입니다.

답변4

디렉토리 변경을 더 쉽게 만들고 싶다면 다음을 살펴보세요 $CDPATH.

CDPATH The search path for the cd command.  This is a colon-separated list of
       directories in  which  the shell looks for destination directories
       specified by the cd command. A sample value is ".:~:/usr".

위의 예를 사용하여 프로필에 다음을 추가합니다.

CDPATH=.:~:/usr

그러면 어떤 디렉토리에 있든 ~또는 의 하위 디렉토리에 쉽게 접근할 수 있습니다 /usr.

$ pwd
/var/log
$ cd bin
$ pwd
/usr/bin

관련 정보