별칭 설정이 실행 가능한 링크를 덮어쓰는 이유는 무엇입니까?

별칭 설정이 실행 가능한 링크를 덮어쓰는 이유는 무엇입니까?

.bashrc링크를 덮어쓰도록 항목을 추가하는 이유가 무엇인지 궁금합니다 . 예를 들어, 테스트 시스템에서 Java를 설치 한 apt-get install openjdk-7-jre다음 . bash에서 실행했을 때 에 있는 java를 실행하는 대신 에코가 발생하는 것을 발견했습니다 . 나는 또한 이것이 , 및 에서 발생한다는 것을 발견했습니다 . 그럼 왜 이런 일이 일어나는 걸까요?.bashrcalias java="echo Java!"javaJava!/usr/bin/javapsshscreen

답변1

그것이 Bash가 작동하는 방식이기 때문입니다. 매뉴얼에 있습니다. 입력을 명령과 일치시키려고 할 때 별칭의 우선 순위가 더 높습니다.

별칭의 일반적인 용도는 명령을 재정의하는 것입니다. 예를 들어:

alias java="\java -Xmx=1G"

위 별칭은 Java 프로세스에 사용 가능한 기본 최대 메모리 양을 256MiB에서 1GiB로 늘립니다. 그러나 이것이 유용한 효과를 낼 수 있는 유일한 방법은 를 입력할 때 java명령이 아닌 별칭을 실행하는 것입니다.

관련 정보