
bash에서 가능한 모든 명령 완성 목록(명령을 입력한 다음 탭을 눌렀을 때 제공되는 목록)을 인쇄(예: stdout으로)할 수 있는 좋은 방법이 있습니까?
편집: 지금 다시 읽어보니 내용이 명확하지 않은 것 같습니다. 수동으로 완료하는 방법을 알고 있습니다. 프로그래밍 방식으로 수행하고 싶습니다.
답변1
bash에는 정확히 이를 수행하는 기능이 없습니다. 프로그래밍 가능한 완성은 커서 위치와 같은 다양한 매개변수에 크게 의존합니다.
eval $(complete -p 'git' | sed s/^complete/compgen/)
것 같다작동하지만 매우 취약합니다.
답변2
두 번 누르세요 TAB. 대부분의 BASH와 유사한 쉘은 주어진 하위 문자열에 대해 일치하는 모든 자동 완성 옵션을 나열합니다.
예를 들어
root@host$apt-get up
TAB이 명령을 두 번 누르면 Update
및Upgrade
답변3
패키지가 설치되어 있는지 확인하십시오 bash-completion
. 설치 유형에 따라 또는 으로 가져오지 않는 한 기본적으로 포함되거나 포함되지 않을 수 yum
있습니다 apt
. 설치 후에는 로그아웃했다가 다시 로그인하거나 리소스를 확보해야 .bashrc
사용할 수 있습니다.
@Amazed는 그것을 사용하는 방법에 대해 정확히 알고 있습니다.
답변4
당신이 요구하는 것은 기본적으로 주어진 문자열로 시작하는 모든 명령의 목록이라고 생각합니다. 시스템의 모든 실행 파일 목록을 가져와서 grep을 통해 실행하면 됩니다.