비슷한 명령을 나열하는 방법이 있습니까?


7

명령 이름을 잘못 쓰면 bash는 종종 다음을 수행합니다.

septi@norbert:~$ good
No command 'good' found, did you mean:
 Command 'gold' from package 'binutils' (main)
 Command 'gmod' from package 'gmod' (universe)
 Command 'goo' from package 'goo' (universe)
 Command 'god' from package 'god' (universe)
 Command 'geod' from package 'proj-bin' (universe)
 Command 'gord' from package 'scotch' (universe)
good: command not found

또는 때로는 이렇게합니다.

septi@norbert:~$ nftp
No command 'nftp' found, but there are 23 similar ones
nftp: command not found

bash 에게이 23 가지 유사한 명령을 보여달라고 요청할 수있는 방법이 있습니까? ftp예를 들어 응용 프로그램을 실행하는 대신 아직 설치되지 않은 명령을 포함하여 유사한 명령을 표시하는 방법이 있습니까?

답변:


7

Bash는 /usr/lib/command-not-found비슷한 명령 을 찾기 위해 명령 을 사용 합니다. 이것은 차례로 파이썬 CommandNotFound모듈 을 사용 합니다.

터미널 ( stderr이 경우)에 표시되는 출력 도이 모듈에서 생성됩니다. 이 모듈의 위치는 /usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.pyUbuntu 14.04 이상입니다. CommandNotFound.print_spelling_suggestion(self, word, min_len=3, max_len=15)138 행 의 기능 에서 유사한 명령 수에는 기본 제한이 설정되어 있습니다. max_len값을 30 으로 수정 (이 파일 사용 sudo nano또는 gksudo gedit편집) 할 수 있습니다.


2
우분투 18.04에서는 이제 max_alt대신에 max_len있습니다. 수정 을 15위해 동일한 변경 30사항이 있습니다. =)
Terrance

3

23 개의 "유사한"명령이 'goo', 'god'및 'gord'보다 많이 사용되지 않을 가능성이 큽니다. 대부분의 bash'ers가 물건을 찾기 위해 사용하는 작은 트릭은 검색이 이름이 아닌 내용 기반이기 때문에 맨 페이지를 사용하는 것입니다. 예를 들어

man -k ftp

가능성이 높거나 의심스러운 명령을 찾으면 -k 스위치를 삭제하여 매뉴얼 페이지를보십시오.

man sftp

man 자신의 매뉴얼 페이지가 있습니다 :

man man

이제 새로운 프로그램이나 응용 프로그램을 설치할 때마다 맨 페이지를 설치하는 이유가 무엇인지 알게되었습니다.

아, 네, 또는 당신은 설치하지 않은 맨 페이지를 검색하려면 아직 당신과 같은 많은 온라인 남자 사이트 중 하나 같아서 이것 .


-1
python3  -m pdb /usr/lib/command-not-found xdiff
import CommandNotFound
b CommandNotFound.CommandNotFound.print_spelling_suggestion
r
max_len = 30
c

No command 'xdiff' found, did you mean:
 Command 'rdiff' from package 'rdiff' (universe)
 Command 'xzdiff' from package 'xz-utils' (main)
 Command 'idiff' from package 'openimageio-tools' (universe)
 Command 'hdiff' from package 'hdf4-tools' (universe)
 Command 'pdiff' from package 'a2ps' (universe)
 Command 'xxdiff' from package 'xxdiff' (universe)
 Command 'adiff' from package 'atool' (universe)
 Command 'wdiff' from package 'wdiff' (main)
 Command 'xbiff' from package 'x11-apps' (main)
 Command 'zdiff' from package 'zutils' (universe)
 Command 'zdiff' from package 'gzip' (main)
 Command 'diff' from package 'diffutils' (main)
 Command 'cdiff' from package 'colordiff' (universe)
 Command 'vdiff' from package 'atfs' (universe)
 Command 'sdiff' from package 'diffutils' (main)
 Command 'ndiff' from package 'ndiff' (main)
xdiff: command not found

www.creative-telcom-solutions.de에서


2
우분투에 오신 것을 환영합니다 ! :-) 여기서 무엇을하려고하는지 조금 불명확합니다. 이것은 새로운 질문입니까? 그런 다음 새 질문하기를 클릭하십시오 . :-) 만약 이것이 다른 사람들에게 그것이 효과가 있다는 것을 알리기위한 의견이라면, 그렇게 할 필요가 없습니다. 조금 더 명성을 얻으면 질문 에 찬성 할 수 있습니다 . :-) 이것이 완전히 다른 것이라면 답변을 편집 하고 조금 정교하게 작성하십시오. 그렇지 않으면 시스템은 명확하지 않은 것으로 자동적으로이 답변을 삭제합니다.
Fabby

사용법을 알려주기 위해 답변을 조금 더 자세히 설명해 주시겠습니까? BTW @Fabby 시스템은 게시 된 질문이 자동으로 삭제되거나 사용자가 삭제되고 게시물의 점수가 음수가 아닌 한, 답변을 자동으로 삭제하지 않습니다.
잔나
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.