2025. 3. 2. 13:00ㆍLinux*security/시스템운영
이 세 가지 명령어는 텍스트를 검색, 변환, 처리하는 데 자주 사용된다.
1. grep (Global Regular Expression Print)
grep은 파일 또는 표준 입력에서 특정 문자열이나 패턴을 검색하는 명령어이다.
기본 사용법
grep "검색어" 파일명
예제
grep "error" logfile.txt
→ logfile.txt에서 "error"가 포함된 모든 줄을 출력
주요 옵션
- -i : 대소문자 구분 없이 검색
- -v : 패턴에 일치하지 않는 줄을 출력
- -r : 하위 디렉터리까지 검색
- -n : 줄 번호 출력
- -o : 일치하는 문자열만 출력
응용 예제
ps aux | grep apache
→ 실행 중인 프로세스에서 "apache" 관련 프로세스를 찾기
grep -E "error|fail|warn" logfile.txt
→ "error", "fail", "warn" 단어 중 하나라도 포함된 줄 출력 (-E 옵션으로 여러 패턴 검색 가능)
2. sed (Stream Editor)
sed는 파일의 내용을 변경하거나 특정 패턴을 찾아 대체하는 데 사용하는 스트림 편집기이다.
기본 사용법
sed 's/기존문자/새문자/' 파일명
- s : 문자열 치환 (substitute)
- /기존문자/새문자/ : 특정 문자열을 새 문자열로 변경
예제
sed 's/apple/banana/' fruits.txt
→ fruits.txt에서 첫 번째 "apple"을 "banana"로 변경 (한 줄에서 첫 번째 항목만 변경)
sed 's/apple/banana/g' fruits.txt
→ 모든 "apple"을 "banana"로 변경 (g: global)
주요 옵션
- -i : 원본 파일을 직접 수정
- -n : 출력 억제 (출력하려면 p 추가)
- d : 특정 패턴이 포함된 줄 삭제
응용 예제
sed '/^#/d' config.txt
→ config.txt에서 주석(#으로 시작하는 줄) 제거
echo "123-456-7890" | sed 's/-//g'
→ 전화번호에서 - 제거하여 1234567890 출력
3. awk (Aho, Weinberger, Kernighan)
awk는 컬럼 단위로 데이터를 처리하는 강력한 텍스트 프로세싱 도구이다.
기본 사용법
awk '{print $1, $3}' 파일명
→ 첫 번째($1)와 세 번째($3) 컬럼 출력
예제
echo "apple banana cherry" | awk '{print $2}'
→ banana 출력 (두 번째 단어 선택)
awk -F ':' '{print $1, $3}' /etc/passwd
→ /etc/passwd 파일에서 :을 구분자로 사용하여 첫 번째(사용자명)와 세 번째(UID) 컬럼 출력
주요 기능
- -F : 필드 구분자 지정
- NR : 줄 번호 (Number of Record)
- NF : 필드 개수 (Number of Fields)
- if, for, while 문을 활용한 프로그래밍 가능
응용 예제
awk '$3 > 1000 {print $1, $3}' /etc/passwd
→ 세 번째 컬럼 값(UID)이 1000보다 큰 경우만 출력
ps aux | awk '$3 > 5 {print $1, $3, $11}'
→ CPU 사용률($3)이 5% 이상인 프로세스의 사용자명, CPU 사용률, 명령어 출력
grep | 문자열 검색 |
sed | 문자열 치환 및 삭제 |
awk | 컬럼 기반 데이터 처리 |
ps aux | grep apache | awk '{print $2, $3, $11}'
→ apache 관련 프로세스의 PID, CPU 사용률, 명령 출력
'Linux*security > 시스템운영' 카테고리의 다른 글
chsh 명령어를 사용하여 로그인 셸 변경하기 (0) | 2025.03.03 |
---|---|
ubuntu 사용자 추가 권한 부여 (0) | 2025.03.03 |
vmdk 파일 md5 변환 (0) | 2025.02.27 |
Symbolic Link, Soft Link (0) | 2025.02.27 |
리눅스 시스템 관리 명령어 | 디스크 진단 네트워크 CPU (1) | 2025.02.26 |