ifconfig : 'ifconfig' 명령은 '/sbin/ifconfig'에서 사용할 수 있습니다.

ifconfig : 'ifconfig' 명령은 '/sbin/ifconfig'에서 사용할 수 있습니다.

내 질문은 다른 공개와 관련이 있습니다.질문. 내 echo $PATH는 다음과 같은 출력을 제공합니다.

/home/sahil/.rvm/gems/ruby-1.9.3-p125/bin:/home/sahil/.rvm/gems/ruby-1.9.3-p125@global/bin:/home/sahil/.rvm/rubies/ruby-1.9.3-p125/bin:/home/sahil/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/sahil/.rvm/bin{}:/home/android-sdks/{}:/home/android-sdks/platform-tools/{}:/home/android-sdks/tools/{}:/home/sahil/android-sdks/tools{}:/home/sahil/android-sdks/tools:/home/sahil/android-sdks/platform-tools/

하지만 달리는 중

ifconfig 

나에게 다음과 같은 결과를 제공합니다

Command 'ifconfig' is available in '/sbin/ifconfig'
The command could not be located because '/sbin' is not included in the PATH environment variable.
This is most likely caused by the lack of administrative privileges associated with your user account.
ifconfig: command not found

다른 질문에 주어진 것처럼 명령을 실행 한 후

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

그것은 작동한다ifconfig하지만 Ruby Rails 또는 rvm의 다른 명령은 차단합니다.

이 문제를 해결하는 방법에 대한 도움을 구합니다. 또한 왜 이런 일이 발생합니까?

답변1

아래 명령을 시도해 보세요

export PATH=$PATH:/usr/sbin

또는 (모든 경로를 설정하려는 경우)

export PATH=$PATH:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/bin:/usr/games

답변2

원본 $PATH(게시한 줄은 읽기가 쉽지 않음):

/home/sahil/.rvm/gems/ruby-1.9.3-p125/bin:
/home/sahil/.rvm/gems/ruby-1.9.3-p125@global/bin:
/home/sahil/.rvm/rubies/ruby-1.9.3-p125/bin:/home/sahil/.rvm/bin:
/usr/local/bin:/usr/bin:/bin:/usr/games:
/home/sahil/.rvm/bin{}:
/home/android-sdks/{}:
/home/android-sdks/platform-tools/{}:
/home/android-sdks/tools/{}:
/home/sahil/android-sdks/tools{}:
/home/sahil/android-sdks/tools:
/home/sahil/android-sdks/platform-tools/

당신은 /usr/local/bin, /usr/bin및 을 가지고 있습니다 /bin. 이미 알고 있듯이 ifconfig안에 있습니다 /sbin.

따라서 해당 경로가 설정된 곳에 /sbin.

보다루비젬이를 수행하는 방법에 대한 문서.

답변3

/sbin은 일반적으로 경로의 일부입니다. Fedora와 같은 다른 배포판에는 일반 사용자를 위한 PATH가 없지만 Ubuntu는 항상 그렇습니다. /etc/environment 파일을 확인하고 해당 파일이 유효한지, 경로에 /sbin이 추가되었는지 확인하는 것이 좋습니다. 내가 달릴 때고양이 /etc/환경, 다음과 같은 결과가 나타납니다.

adnan@adnan-laptop:~$ cat /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

보시다시피/sbin이미 PATH 환경 변수의 일부입니다. 파일의 내용이 동일한 경우 해당 권한을 확인하고 그렇지 않으면 이 파일의 PATH에 /sbin을 추가하십시오. 나에게 권한은 다음과 같습니다.

adnan@adnan-laptop:~$ ls -l /etc/environment 
-rw-r--r-- 1 root root 79 2009-10-29 01:55 /etc/environment

답변4

변수 는 무엇입니까 PATH?

PATH디렉토리 경로 목록입니다. 사용자가 전체 경로를 제공하지 않고 명령을 입력하면 이 목록을 검사하여 해당 명령으로 연결되는 경로가 포함되어 있는지 확인합니다. 이 변수의 경로 순서는 명령이 검색되는 순서를 나타냅니다. 여러 디렉터리에 동일한 이름의 프로그램이 있는 경우 목록 시작 부분(왼쪽)에 가장 가까운 폴더에 있는 프로그램이 검색됩니다. 실행.

Ruby Rails 및 rvm에서 다른 명령이 차단된 이유는 다음을 실행했기 때문입니다.

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

PATH그 결과포함되어 있지 않다해당 프로그램의 폴더, 즉:

/home/sahil/.rvm/gems/ruby-1.9.3-p125/bin:/home/sahil/.rvm/gems/ruby-1.9.3-p125@global/bin:/home/sahil/.rvm/rubies/ruby-1.9.3-p125/bin:/home/sahil/.rvm/bin

대신 당신이 해야 할 일은 /sbin당신 자신의 에 추가하는 것입니다 PATH.

/sbin추가 하는 방법PATH

기본적으로 항상 환경에 있으므로 PATH내보낼 필요가 없으며 디렉토리만 추가하면 됩니다 /sbin. 그렇게하려면 bash에서 실행할 수 있습니다

PATH="$PATH:/sbin"

이제 경로는 다음과 같아야 합니다.

/home/sahil/.rvm/gems/ruby-1.9.3-p125/bin:/home/sahil/.rvm/gems/ruby-1.9.3-p125@global/bin:/home/sahil/.rvm/rubies/ruby-1.9.3-p125/bin:/home/sahil/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/sahil/.rvm/bin{}:/home/android-sdks/{}:/home/android-sdks/platform-tools/{}:/home/android-sdks/tools/{}:/home/sahil/android-sdks/tools{}:/home/sahil/android-sdks/tools:/home/sahil/android-sdks/platform-tools/:/sbin

하지만 이 변경 사항은 영구적이지 않습니다. 일단 닫으면 현재 세션이 PATH이전 값으로 다시 로드됩니다. 영구적으로 적용하려면 이 변경 사항을 ~/.profile파일에 추가해야 합니다. 이를 수행하는 한 가지 방법은 다음과 같습니다.

echo 'PATH="$PATH:/sbin"' >> ~/.profile

이제 현재 셸에서 "~/.profile"의 내용을 실행하기만 하면 됩니다.

source ~/.profile

이제 시작할 준비가 되었습니다. 현재 쉘뿐만 아니라 향후 모든 세션에도 PATH해당 디렉토리가 포함됩니다.

~/.bashrc 대신 ~/.profile을 사용한 이유는 무엇입니까?

이 개념은 다음과 같은 경우에 유용할 수 있습니다.

  • ~/.profile로그인할 때 시작하려는 프로그램(그래픽 프로그램이 아닌 경우 다른 파일에 저장됨) 및
    환경 변수 정의와 같이 전체 세션에 적용되는 항목을 저장하는 장소입니다.

  • ~/.bashrc별칭 및 함수 정의, 셸 옵션, 프롬프트 설정 등 bash 자체에만 적용되는 항목을 넣는 곳입니다. (여기에 키 바인딩을 넣을 수도 있지만 bash의 경우 일반적으로 ~/.inputrc에 들어갑니다.)

여기서는 이 주제에 대한 추가 정보를 얻을 수 없습니다.

/sbin당신은 당신의 에 있어야합니까 PATH?

여기서는 매우 생산적인 토론이 아닐 수 있기 때문에 기본적으로 /sbin포함되어야 하는지 여부 에 대해서는 여기서 논의하지 않겠습니다 . PATH내가 갖고 있으니 원하시면 가져가셔도 됩니다. 당신의 전화.

관련 정보