무엇입니까 $PATH
?
나만 사용할 수있는 명령 / 프로그램을 어떻게 가질 수 있습니까? 이전에 언급 된
이 경로를 보았지만 사용 된 경로 ~/bin
는 무엇이며 어떻게 사용합니까?
무엇입니까 $PATH
?
나만 사용할 수있는 명령 / 프로그램을 어떻게 가질 수 있습니까? 이전에 언급 된
이 경로를 보았지만 사용 된 경로 ~/bin
는 무엇이며 어떻게 사용합니까?
답변:
$ PATH는 명령을 조회하는 데 사용되는 환경 변수입니다. ~는 홈 디렉토리이므로 ~ / bin은 / home / user / bin입니다. 일반 디렉토리입니다.
예를 들어, 쉘에서 "ls"를 실행하면 실제로 / bin / ls 프로그램이 실행됩니다. 정확한 위치는 시스템 구성에 따라 다를 수 있습니다. 이는 / bin이 $ PATH에 있기 때문에 발생합니다.
경로를보고 특정 명령이있는 위치를 찾으려면 다음을 수행하십시오.
$ echo $PATH
/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...
$ which ls # searches $PATH for an executable named "ls"
/bin/ls
$ ls # runs /bin/ls
bin desktop documents downloads examples.desktop music pictures ...
$ /bin/ls # can also run directly
bin desktop documents downloads examples.desktop music pictures ...
자신의 개인 bin 디렉토리를 가지려면 경로에 디렉토리 만 추가하면됩니다. ~ / .profile (숨겨진 파일)을 편집하여 아래 행을 포함 시켜서 수행하십시오. 행이 주석 처리 된 경우 주석 처리를 제거하면됩니다. 그들이 이미 있다면, 모든 준비가 된 것입니다!
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ]; then
PATH="$HOME/bin:$PATH"
fi
이제 ~ / bin 디렉토리를 작성해야합니다. .profile은 로그인시 실행되고 ~ / bin이 존재하는 경우에만 ~ / bin을 추가하므로 업데이트 된 PATH를 보려면 다시 로그인해야합니다.
테스트 해보자.
$ ln -s $(which ls) ~/bin/my-ls # symlink
$ which my-ls
/home/user/bin/my-ls
$ my-ls -l ~/bin/my-ls
lrwxrwxrwx 1 user user 7 2010-10-27 18:56 my-ls -> /bin/ls
$ my-ls # lookup through $PATH
bin desktop documents downloads examples.desktop music pictures ...
$ ~/bin/my-ls # doesn't use $PATH to lookup
bin desktop documents downloads examples.desktop music pictures ...
type
실제 명령이 쉘에서 어떻게 해결되는지 확인하는 데 사용 하는 것이 더 유용합니다 . 예 : : 다른 것들을보고 which echo
하고 '/ bin / echo'를 반환하지만 'type'은 쉘 내장 파일을 반환합니다. 쉘은 '/ bin'의 파일보다 선호합니다. type echo
which
which
대체 type
되거나 command
대화식으로 바뀌는 것이 더 좋으며 스크립트에서는 완전히 쓸모가 없습니다.
$HOME
변수 $PATH
가 작동하지 않는 것입니다. 즉, ~
대신 부호 를 사용해야 합니다.
에 대해서는 ~/bin
사용자 만 사용할 수 및 명령 / 프로그램
최신 Ubuntu 버전에는 ~/bin
디렉토리가 $PATH
있지만 ~/bin
디렉토리가 존재하는 경우에만 포함됩니다 .
존재하지 않는 경우 :
~/.profile
다음 스탠자가 포함되어 있는지 확인하십시오 (기본값은 ~/.profile
이미 있음).
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
~/bin
디렉토리를 작성하십시오 .
mkdir -p ~/bin
컴퓨터를 재부팅하거나 bash를 강제로 다시 읽습니다 ~/.profile
.
exec -l bash
exec -l bash
"팁 주셔서 감사합니다 . 뭐라고합니까 -l
플래그는 무엇입니까? 에 설명이 없습니다 man exec
.
exec -l
bash를 로그인 쉘로 실행합니다 [ wiki.bash-hackers.org/commands/builtin/exec] . 즉, 그것은에 bash는 강제로 재 읽기 /etc/profile
와 ~/.profile
. 그냥 실행 exec bash
하면 다시 읽습니다 ~/.bashrc
.