Linux에서 파일을 실행하려고 하면 항상 ./executablefile
.executablefile
하지만 명령을 찾을 수 없으면 파일을 실행하고 싶습니다(명령이 우선순위임). 가이드를 통해 조정했는데 명령어를 작성했는데 찾을 수 없으면 pacman
데이터베이스에서 검색해서 해당 명령어가 어떤 패키지에 있는지 알려줘서 명령어가 나오면 뭔가 할 수 있다는 걸 알 수 있어요 command not found
.
이를 수행할 수 있는 좋은 방법이 있습니까?
답변1
가장 간단하지만 종종 금기시되는 방법은 ./
다음과 같이 쉘 시작 스크립트 끝에 환경 변수를 추가하는 것입니다(bash/sh 변형).PATH
export PATH=$PATH:./
이렇게 하면 쉘이 로컬 디렉토리에서 명령을 찾기 전에 먼저 모든 공통 디렉토리를 시도하게 됩니다.
참고: 사용에 따른 책임은 사용자 본인에게 있으며 절대로 루트로 수행하지 마십시오.
답변2
나는 그것을 사용하고 있습니다 command-not-found version: 0.2.44
. 명령을 찾을 수 없으면 이름이 지정된 함수가 실행되고 command_not_found_handle()
유사한 명령 목록이 제공됩니다.
다음과 같이 함수를 작성합니다(단지 터미널에 복사하여 붙여넣으면 됩니다. 영구적이지 않습니다).
command_not_found_handle ()
{
if [ -x $1 ]; then
echo "executing ./$1"
./$1
return $?;
fi
if [ -x /usr/lib/command-not-found ]; then
/usr/bin/python /usr/lib/command-not-found -- "$1";
return $?;
else
if [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/bin/python /usr/share/command-not-found/command-not-found -- "$1";
return $?;
else
printf "%s: command not found\n" "$1" 1>&2;
return 127;
fi;
fi
}
처음 몇 줄을 편집했습니다. 예를 들어, now를 입력했는데 foobar
명령을 찾을 수 없으면 현재 폴더에서 이름이 이라는 파일이 존재하는지 확인하고 foobar
, 파일이 실행 가능한 경우( -x
) 해당 파일이 실행됩니다( ./$1
). echo
필요한 경우 이 줄을 삭제할 수 있습니다.
영구적으로 만들기 위해:
이 함수는 일반적으로 파일에 정의됩니다 /etc/bash.bashrc
. 이 기능을 파일에 추가할 수 있습니다 ~/.bashrc
. 여기서는 의 섹션을 다룹니다 /etc/bash.bashrc
.
답변3
파일을 /usr/bin에 넣은 다음 이름을 입력하여 실행하세요. 탭 완성도 거기에서 작동합니다