배쉬 완료 및 grep

배쉬 완료 및 grep

Debian Squeeze에 프로그램( iftop)을 설치했는데 며칠 전에 이름을 잊어버렸어요. 내가 이 프로그램에 대해 아는 것은 다음과 같습니다.

1) 이라고 한다*top

2) 를 사용하여 찾을 수 있습니다 bash-completions.

내가 원했던 grep모든 옵션 bash-completion. 내가 무엇을 해야 하는지 아시나요?

답변1

compgen가능한 완성 목록을 얻으려면 내장 함수를 사용하십시오 .

compgen -c | grep top

명령, 별칭, 함수 등 다양한 유형의 완성을 요청할 수 있습니다 . 자세한 내용은 을 참조 -c하세요 .-A commandsman bash

답변2

확실히 사용하기 좋은 것 같아요 compgen. 또는 POSIX 셸에서 작동하며 다음을 사용하여 명령을 확인할 수 있습니다 $PATH.

(IFS=:; set -f; ls -- $PATH | grep top$)

그리고 zsh:

type -m '*top'

whatis 데이터베이스를 쿼리할 수도 있습니다.

man -ks1:8 top$

답변3

비록 당신은 할 수 있지만완성시스템에서 알아보세요, 이는 가장 확실한 접근 방식이 아닙니다.

/usr/binpackges에 의해 설치된 거의 모든 프로그램이 포함되어 있으므로 이름이 다음으로 끝나는 프로그램을 나열할 수 있습니다 ./usr/bintop

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

그러면 정렬된 후보자 목록이 출력됩니다.

관련 정보