유닉스에게 "x 유사한" 말을 해달라고 요청하세요

유닉스에게 "x 유사한" 말을 해달라고 요청하세요

터미널에서 뭔가를 하면 틀리게 입력하고, 의도치 않게 뭔가를 입력하는 경우가 많습니다.

간단한 예를 입력하면 int다음과 같이 표시됩니다.Command 'int' not found, but there are 18 similar ones.

나에 대해 말하는 게 아니야필요이 18개의 유사한 명령을 알고 싶은데, 이 "유사한 18개"가 무엇인지 알 수 있는 방법이 있나요? 터미널이든 다른 곳이든.

답변1

우분투에서 이런 일이 발생하면,askubuntu.com이는 bash가 /usr/lib/command-not-foundPython을 사용하는 모듈을 사용한다는 의미입니다 CommandNotFound.

/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.pyCommandNotFound.py 파일의 178번째 줄에서 시작하는 "그러나 유사한 X가 있습니다"를 담당하는 정확한 줄을 볼 수 있습니다.

if len(mispell_packages)+len(mispell_snaps) > max_alt:
    print("", file=self.output_fd)
    print(_("Command '%s' not found, but there are %s similar ones.") % (word, len(mispell_packages)), file=self.output_fd)
    print("", file=self.output_fd)
    self.output_fd.flush()
    return

CommandNotFound.py가 유사한 명령 목록을 반환하도록 하는 스위치, 플래그 또는 옵션이 없기 때문에 이러한 패키지가 무엇인지 정말로 알고 싶다면 Python 파일의 이 부분을 편집하고 두 줄을 추가하여 인쇄할 수 있습니다. 배열의 요소 수뿐만 아니라 비슷한 명령 배열이 포함된 콘텐츠도 마찬가지입니다. 추가된 행은 이 코드 섹션의 4행과 5행입니다.

if len(mispell_packages)+len(mispell_snaps) > max_alt:
    print("", file=self.output_fd)
    print(_("Command '%s' not found, but there are %s similar ones.") % (word, len(mispell_packages)), file=self.output_fd)
    for x in range(len(mispell_packaged)):
        print(mispell_packages[x])
    print("", file=self.output_fd)
    self.output_fd.flush()
    return

이제 저장하고 /usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py(루트로 편집해야 함) 를 입력하면 int다음을 얻을 수 있습니다.

Command 'int' not found, but there are 18 similar ones.
('itd, 'ncl-ncarg', 'universe', '')
('ant, 'ant', 'universe', '')
('inl, 'ioport', 'universe', '')
('inw, 'ioport', 'universe', '')
('tint, 'tint', 'universe', '')
('inc, 'mailutils-mh', 'universe', '')
('inc, 'mmh', 'universe', '')
('inc, 'nmh', 'universe', '')
('nit, 'python-nevow', 'universe', '')
('init, 'systemd-sysv', 'main', '')
('itv, 'python-invoke', 'universe', '')
('itv, 'python3-invoke', 'universe', '')
('cnt, 'open-infrastructure-container-tools', 'universe', '')
('inb, 'ioport', 'universe', '')
('ent, 'ent', 'universe', '')
('ink, 'ink', 'universe', '')
('iyt, 'python3-yt', 'universe', '')
('iat, 'iat', 'universe', '')

목록에는 유사한 명령 이름(itd, and, inl, inw, Tint)과 이 명령을 제공하는 패키지(ncl-ncarg, ant, ioport) 및 해당 명령이 제공되는 저장소(우주, 메인).

궁금증이 해소되셨기를 바랍니다 :) 솔직히 저도 님의 글을 읽고 궁금해졌습니다.

관련 정보