bash 터미널의 명령을 사용하여 $PATH에 경로를 추가할 수 있다는 것을 알고 있습니다 PATH=$PATH:foo
. 또한 다음 명령을 사용하여 bash에 대한 별칭을 만들 수 있다는 것도 알고 있지만 alias a=b
bash에 대한 별칭은 전역 별칭이 아니며 일부 도구에서는 찾을 수 없다는 것을 알고 있습니다. 도구는 검색 경로 종속성의 또 다른 도구일 뿐입니다).
그렇다면 다른 명령줄 도구가 쉽게 찾을 수 있도록 경로에 다른 이름을 가진 항목을 추가하려면 어떻게 해야 합니까? 내 문제에 대해 적어도 세 가지 용도를 생각할 수 있습니다. [g++9는 기본값(대체 업데이트로 해결 가능), Python 3은 2 대신 기본값임]이지만 설치하려고 하면 주요 질문이 나타납니다.바젤리스크bazel은 tensorflow
소스 구성을 통해 빌드해야 하므로 bazel
기본 디렉토리에 설치한 정보는 다음과 같습니다 bazel
.go
~/go/bin/bazelisk
답변1
이 작업은 두 단계로 수행할 수 있습니다.
- 경로가 "별칭"을 제공하려는 디렉터리로 시작하는지 확인하세요. 예를 들어, 디렉토리
bin/
내의 디렉토리를 사용할 수 있습니다$HOME
.
export PATH=$HOME/bin:$PATH
- 다음과 같이 별칭을 해당 디렉터리에 배치합니다.심볼릭 링크. 예를 들어
python
별칭을 만들려면python3
다음을 실행합니다.
ln -s $(which python3) $HOME/bin/python
노트:
- 이렇게 할 필요는 없습니다
root
. - 이 작업을 수행할 때는 주의하세요.
ln -s /bin/cat $HOME/bin/ls
이웃과 대화하거나 차를 물고기라고 부르는 등 "이상한" 일을 하는 것은 역효과를 낳을 수 있습니다. - "별칭" 디렉터리에는 특별한 이름이 필요하지 않습니다. 우리는 여기서 새로운 개념을 고안하는 것이 아니라
$PATH
작동 원리를 직접 사용하고 있습니다. - "별칭" 디렉토리가 마지막이면 작동하지 않습니다
$PATH
. 먼저 있어야 합니다. - 잘못된 동작 : 별칭
which
을 인쇄하고, 경로 없이 내장된 쉘을 인쇄하며, 심볼릭 링크를 생성할 수 없으면 성공 시 오류 결과를 제공하고, 안정적으로 빈 문자열을 반환하고 종료 상태를 설정합니다command -v
. 쉘 스크립트가 .를 사용하거나 를 사용하여 실패하도록 허용 합니다 . 별칭과 쉘 내장 기능을 사용하면 잘못된 결과가 발생합니다.command -v
which
1
if alias=$(which python3) ; then ln -s $alias ~/bin/python ; fi
set -e; alias=$(which python3); ln -s $alias ~/bin/python
command -v