
프로그램을 실행하려고 하는데redis-cli
$ ls -lh /usr/local/bin/ | grep redis
-rwxr-xr-x 1 root root 4.2M Mar 24 19:49 redis-cli
-rwxr-xr-x 1 root root 5.6M Mar 24 19:49 redis-server
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
프로그램이 redis-cli
디렉터리에 있고 /usr/local/bin
해당 디렉터리가 내 경로 변수에 있는 경우 다음 오류가 발생하는 이유는 무엇입니까?
$ redis-cli
-bash: /usr/bin/redis-cli: No such file or directory
편집하다
$ /usr/local/bin/redis-cli
redis 127.0.0.1:6379>
$ redis-cli
-bash: /usr/bin/redis-cli: No such file or directory
$ file /usr/local/bin/redis-cli
/usr/local/bin/redis-cli: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x3715af7983c534d902d8dc627f9b0f1b4c8b8e80, not stripped
답변1
현재는 삭제된 /usr/bin/redis-cli에 redis-cli가 있었을 가능성이 있습니다.
Bash는 업데이트되지 않은 경로에서 실행 파일의 내부 해시를 유지합니다. 이 문제가 다시 발생하면 다시 해시하면 작동합니다.
hash redis-cli
답변2
해당 이름을 가진 별칭이나 셸 함수가 있는 것 같습니다. 나는 둘 다 $PATH를 우회하고 'which'에서 숨겨질 것이라고 믿습니다.
별칭을 확인하려면 다음 안내를 따르세요.
alias redis-cli
별칭을 찾은 경우 삭제하려면 다음 안내를 따르세요.
unalias redis-cli
기능을 확인하려면:
declare -f redis-cli
함수를 찾은 경우 삭제하려면 다음 안내를 따르세요.
unset -f redis-cli
이들 중 하나가 문제인 것으로 판명되면 해당 명령은 해당 터미널 세션이 끝날 때까지만 도움이 되며 다음에 다시 실행해야 합니다. .bashrc 및 .profile을 확인하여 redis-cli를 언급하는 악성 명령이 있는지 확인하세요. 그래도 작동하지 않으면 /etc 어딘가에 있을 수 있습니다.
grep redis-cli /etc