Debian Squeeze에 프로그램( iftop
)을 설치했는데 며칠 전에 이름을 잊어버렸어요. 내가 이 프로그램에 대해 아는 것은 다음과 같습니다.
1) 이라고 한다*top
2) 를 사용하여 찾을 수 있습니다 bash-completions
.
내가 원했던 grep
모든 옵션 bash-completion
. 내가 무엇을 해야 하는지 아시나요?
답변1
compgen
가능한 완성 목록을 얻으려면 내장 함수를 사용하십시오 .
compgen -c | grep top
명령, 별칭, 함수 등 다양한 유형의 완성을 요청할 수 있습니다 . 자세한 내용은 을 참조 -c
하세요 .-A commands
man bash
답변2
확실히 사용하기 좋은 것 같아요 compgen
. 또는 POSIX 셸에서 작동하며 다음을 사용하여 명령을 확인할 수 있습니다 $PATH
.
(IFS=:; set -f; ls -- $PATH | grep top$)
그리고 zsh
:
type -m '*top'
whatis 데이터베이스를 쿼리할 수도 있습니다.
man -ks1:8 top$
답변3
비록 당신은 할 수 있지만완성시스템에서 알아보세요, 이는 가장 확실한 접근 방식이 아닙니다.
/usr/bin
packges에 의해 설치된 거의 모든 프로그램이 포함되어 있으므로 이름이 다음으로 끝나는 프로그램을 나열할 수 있습니다 ./usr/bin
top
echo /usr/bin/*top
inode 변경 시간별로 파일을 나열할 수 있습니다. 설치된 프로그램의 수정 시간은 일반적으로 컴파일 시간입니다. 왜냐하면 보관 및 설치 도구는 수정 시간을 데이터와 함께 복사하기 때문입니다. 그러나 파일의 inode 변경 시간은 가져오거나 복사되는 것을 포함하여 마지막으로 발생한 시간입니다. 실제로 수정 시간이 변경되면 inode 변경 시간이 재설정됩니다. 이 프로그램은 최근에 설치했으므로 다음 명령으로 표시되는 마지막 프로그램 중 하나입니다.
ls -lctr /usr/bin/*top
r
아래쪽이 아닌 위쪽에서 보려면 이 옵션을 제거하세요.
설치된 프로그램의 로그도 볼 수 있습니다. 그들은 위치하고 있습니다 /var/log/history.log
.
답변4
셸 기능을 사용하여 PATH 및 바이너리가 포함되어 있지만 PATH에 없는 알려진 디렉터리를 검색할 수 있습니다. 예:
findprogram() {
ls $(echo $PATH:/sbin:/usr/sbin | sed "s/:/\ /g") | grep "$1" | sort --unique
}
용법:
findprogram top
그러면 정렬된 후보자 목록이 출력됩니다.