linux command (cat, find, grep)
cat, find, grep 관련 linux 명령어 정리
cat
cat /etc/passwd | grep sh
이 명령어는 리눅스 커맨드 라인에서 실행할 수 있으며, 다음과 같은 작업을 수행합니다:
cat /etc/passwd
명령어를 실행하여 /etc/passwd
파일의 내용을 출력합니다. 이 파일은 사용자 계정 정보를 포함하고 있습니다.
|
기호를 사용하여 이전 명령어의 출력을 다음 명령어로 보냅니다.
grep sh
명령어를 실행하여 이전 명령어의 출력에서 “sh”를 포함하는 모든 행을 필터링합니다. “sh”는 셸을 나타내는 약어이므로, 이 명령어는 셸을 사용하는 모든 사용자 계정 정보를 출력합니다.
따라서 이 명령어는 셸을 사용하는 모든 사용자 계정 정보를 출력하는데 사용됩니다.
find
find / -name "aaa.txt" 2> /dev/null
이 명령어는 다음과 같이 해석할 수 있습니다.
find
: 파일 시스템에서 파일을 찾는 유틸리티입니다.
/
: 시작 디렉토리입니다. 이 경우 파일 시스템의 루트 디렉토리를 의미합니다.
-name "aaa.txt"
: 이름이 “aaa.txt”인 파일을 찾습니다.
2> /dev/null
: 표준 오류 출력(STDERR)을 /dev/null
로 리다이렉션합니다. 즉, 오류 메시지는 표시하지 않습니다.
따라서 이 명령어는 파일 시스템에서 이름이 “aaa.txt”인 파일을 찾고, 오류 메시지를 표시하지 않습니다.
숫자 2는 표준 오류 출력 (STDERR)을 나타내는 파일 디스크립터입니다. 리눅스/유닉스에서, 모든 입출력은 파일 디스크립터를 통해 이루어집니다. 보통 표준 출력 (STDOUT)은 파일 디스크립터 1을 사용하고, 표준 오류 출력 (STDERR)은 파일 디스크립터 2를 사용합니다.
따라서 2> /dev/null
은 “표준 오류 출력을 /dev/null
로 리다이렉션하라”는 의미입니다.
/dev/null
은 아무것도 버리는 특수한 파일로, 여기로 출력을 리다이렉션하면 출력이 사라지게 됩니다. 따라서 2> /dev/null
은 오류 메시지를 표시하지 않는 효과를 낼 수 있습니다.
grep
grep -r aaa{
이 명령어는 현재 디렉토리와 하위 디렉토리의 모든 파일에서 aaa{
문자열을 찾아 출력하는 기능을 수행합니다.
여기서 grep
은 검색을 수행하는 명령어이며, -r
옵션은 현재 디렉토리와 하위 디렉토리를 재귀적으로 검색하도록 지시합니다.
aaa{
은 검색할 문자열로, 중괄호({}
)는 일반적으로 정규 표현식을 사용할 때 사용됩니다.
결과적으로 이 명령은 aaa{
문자열이 포함된 모든 파일의 파일 이름과 해당 문자열이 나타난 줄을 출력합니다.
scp
scp /usr/share/linpeas.sh jan@10.10.169.207:/dev/shm
- /usr/share/linpeas.sh: 로컬 시스템에서 복사하려는 파일의 경로입니다.
이 명령어에서는 /usr/share/linpeas.sh 파일을 복사하려고 합니다.
- jan@10.10.169.207:/dev/shm: 원격 시스템과 대상 경로를 지정하는 부분입니다.
jan은 원격 시스템에 접근하기 위한 사용자 이름이며, 10.10.169.207은 원격 시스템의 IP 주소입니다.
:/dev/shm은 복사한 파일을 원격 시스템의 /dev/shm 디렉토리에 저장하려고 함을 의미합니다.
따라서, 주어진 명령어는 로컬 시스템의 /usr/share/linpeas.sh 파일을 jan 사용자가 접근할 수 있는 10.10.169.207 원격 시스템의 /dev/shm 디렉토리로 복사하라는 의미입니다.