본문 바로가기

오늘의 공부/Linux shell scripting

[책읽기]초보해커를 위한 칼리리눅스 #3(1장 리눅스 기본명령:검색(which, whereis ,locate 명령어))

 

 

[locate를 이용한 검색]

이 명령어는 전체 파일 시스템을 살펴보고 해당 단어의 모든 항목을 찾는다.

 

 

locate nmap이라고 치고 찾을려고 하니

찾을수 없다는 오류가 떠서 왜 그런가하고 찾아보니

 

[gpt의 답변]

locate 명령어는 파일 시스템에 있는 파일들의 위치를 빠르게 찾기 위해 mlocate.db라는 데이터베이스를 사용합니다.

위의 오류 메시지는 mlocate.db 데이터베이스 파일이 없어서 발생한 것으로 보입니다.

mlocate.db는 일반적으로 updatedb 명령어를 통해 생성 및 업데이트 됩니다. 

해당 데이터베이스 파일이 없거나 최근에 시스템에 많은 변경이 있었다면, 데이터베이스를 업데이트하는 것이 좋습니다.

 

sudo updatedb

 

라고 입력하니 이번에는 

 

sudo: setrlimit(RLIMIT_CORE): Operation not permitted

라는 오류가 떴다.

 

 

오류는 특정 시스템 환경에서 sudo를 실행할 때 발생할 수 있습니다. 이 오류는 core dump 크기 제한을 설정하려고 할 때 발생합니다. 이는 시스템 설정, 컨테이너 또는 가상화 환경의 제한으로 인해 발생할 수 있다고 합니다

(locate 명령어를 쓰는데는 지장이 없습니다)

 

어쨋든 다시 locate 명령어를 써서 nmap을 찾아보면

 

nmap이 들어간 디렉토리는 다 출력이 됩니다

그리고 너무 많은정보가 나옵니다. 일반적으로 locate는 하루에 한번만 업데이트 되는 데이터베이스를 사용하므로

시간이 오래걸릴 수 있습니다.

 


[whereis로 바이너리 찾기]

바이너리 파일을 찾으려면 whereis 명령을 사용하여 위치를 찾을 수 있습니다.

또한 메뉴얼 페이지도 반환합니다.

*usr/share/man 이 경로가 메뉴얼 경로입니다.

 

 


[which로 PATH 변수에서 바이너리 찾기]

 

which는 구체적입니다.path변수를 참조해서 찾는 방식입니다.