SSH를 사용하여 전체 Ubuntu 시스템에서 단어 검색

SSH를 사용하여 전체 Ubuntu 시스템에서 단어 검색

SSH를 사용하여 전체 Ubuntu 컴퓨터의 모든 파일에서 특정 단어를 검색하려면 어떻게 해야 합니까?

노트:SSH 세션을 실행하기 위해 Windows 프로그램 PuTTY를 사용하고 있지만 일단 연결되면 일반 bash 세션이 있습니다.

다음과 같은이 답변UL.SE에서는 다음 bash 명령을 사용했습니다.

find / -xdev -type f -print0 | xargs -0 grep -H "search for this text"

하지만 이 명령은 접근이 거부되거나 일치하는 항목이 없더라도 출력을 반환하며, PuTTY는 볼 수 있는 세션 기록을 제한하기 때문에 모든 결과를 볼 수는 없습니다.

저는 캡처 플래그 챌린지를 수행 중입니다. SSH를 통해 Linux 시스템에 연결해야 하며 전체 시스템의 모든 파일에서 "플래그" 문자열을 검색하고 싶습니다. bash와 그 명령에 대한 나의 지식은 매우 제한적입니다.

답변1

2> /dev/null오류를 숨기려면 명령에 추가하세요 . 이를 stderr 리디렉션이라고 합니다. 따라서 특정 명령의 경우 다음과 같습니다.

find / -xdev -type f -print0 | xargs -0 grep -H "search for this text" 2> /dev/null

그러나 이것은 매우 깁니다. 당신은 또한 수:

grep -rw "flag"

~에서grep(1):

       -r, --recursive
              Read all files under each directory, recursively, 
              following symbolic links only if they are on the 
              command line. Note that if no file operand is given, 
              grep searches the working directory.  This is 
              equivalent to the -d recurse option.

       -w, --word-regexp
              Select only those lines containing matches that form 
              whole words. The test is that the matching substring 
              must either be at the beginning of the line or preceded 
              by a non-word constituent character.  Similarly, it 
              must be either at the end of the line or followed by a 
              non-word constituent character.  Word-constituent 
              characters are letters, digits, and the underscore. 
              This option has no effect if -x is also specified.

현재 디렉토리의 모든 파일에서 "flag"라는 단어를 찾습니다. 따라서 전체 머신을 검색하려면 에서 이 명령을 실행하세요 /. 대소문자를 구분하지 않으려면 를 추가하세요 -i. 이것의 또 다른 장점은 flagged유사한 단어를 찾을 수 없다는 것입니다.

이 모든 메시지를 grep -rw "flag" 2> /dev/null필터링 하려면Permission denied

관련 정보