[Linux] ls, ps, find, grep, awk 명령
파일, 디렉토리의 크기
ls 옵션
-h, --human-readable: with -l and -s, print sizes like 1K 234M 2G etc.
1 | ls -lh /home |
파일, 디렉토리 전체 날짜
1 | ls --time-style=long-iso -al |
오늘 생성한 파일
1 | # ls -al --time-style=+%D | grep `date +%D` |
ps 명령
p는 사용자의 프로세스 PID, 명령어 등을 알 수 있다.
ps 명령어 출력 항목
| 이름 | 설명 |
|---|---|
| USER (BSD) UID (System V) |
프로세스 소유자의 이름 |
| PID | 프로세스의 식별 번호 |
| PPID | 부모 프로세스의 PID |
| %CPU | CPU 사용 비율의 추정치 (BSD) |
| %MEM | Memory 사용 비율의 추정치(BSD) |
| VSZ | K 단위 또는 페이지 단위의 가상 메모리 사용량 |
| RSS | 실제 메모리 사용량 |
| TTY | 프로세스와 연결된 터미널 |
| S (System V) STAT (BSD) |
현재 프로세스의 상태 코드 |
| TIME | 총 CPU 사용 시간 |
| COMMAND | 프로세스의 실행 명령행 |
| STIME | 프로세스가 시작된 시간 혹은 날짜 |
| C (System V) CP (BSD) |
짧은 기간 동안의 CPU 사용률 |
| F | 플래그 |
| PRI | 실제 실행 우선순위 |
| NI | nice 우선순위 번호 |
ps 명령 옵션:
| 옵션 | 설명 |
|---|---|
| -A | 모든 프로세스를 출력 |
| a (BSD) | 터미널과 연관된 프로세스를 출력, x 옵션과 같이 사용하여 모든 프로세스를 출력할 때 사용 |
| -a | 세션 리더를 제외하고 데몬 프로세스처럼 터미널에 종속되지 않은 모든 프로세스를 출력 |
| -e | 커널 프로세스를 제외한 모든 프로세스를 출력 |
| -f | 출력을 풀 포맷으로 표기 (유닉스 스타일). UID, PID , PPID 등이 함께 표시 |
| -l(System V) l (BSD) |
출력을 긴 포맷으로 표기. 프로세스의 정보를 길게 보여주는 옵션으로 우선순위와 관련된 PRI 값과 NI 값을 확인 |
| -o | 출력 포맷을 지정 |
| -M | 64비트 프로세스들을 출력 |
| -m | 프로세스뿐만 아니라 커널 스레드도 출력 |
| -p | 특정 PID를 지정하여 출력 |
| -r | 현재 실행 중인 프로세스 출력 |
| u (BSD) | 프로세스의 소유자를 기준으로 출력 |
| -u [사용자] | 특정 사용자의 프로세스 정보를 출력, 사용자를 지정하지 않는다면 현재 사용자 기준으로 출력 |
| x (BSD) | 데몬 프로세스처럼 터미널에 종속되지 않은 프로세스를 출력 |
| -x | 로그인 상태에 있는 동안 아직 완료되지 않은 프로세스를 출력. *유닉스 시스템은 사용자가 로그아웃한 뒤에도 임의의 프로세서가 계속 동작 가능 -> 해당 프로세서는 자신이 실행시킨 쉘이 없어도 계속 자신의 일을 수행하는 데 이 프로세스는 해당 옵션 없이는 확인이 불가능 |
모든 프로세스
프로세스 정보를 컬럼 UID PID PPID C STIME TTY TIME CMD 를 표시한다.
- System V:
-ef - BSD :
aux
System V 계열 옵션을 사용한 모든 프로세스 보기
1 | $ ps -ef |
BSD 계열 옵션을 사용한 모든 프로세스 보기
1 | :~$ ps aux | more |
프로세스의 긴 정보
-el: 모든 프로세스를 긴 정보 형식으로 출력: 한 F, S, PRI, NI 등 출력.
1 | ~$ ps -el |more |
tty 정보
ps -t [tty 명] : 해당 tty의 프로세스 출력
tty는 로그인 사용자 사용하는 시스템 터미널의 번호이다. 보통 로그인시 tty 에 접속되어 로그인 쉘이 가동되어 터미널에 접속하게 되고 가상의 pseudo terminal 번호를 사용한다.
다음은 pts 3번에 접속한 결과
1 | $ tty |
해당 3번 터미널의 프로세스를 출력
1 | $ ps -t 3 |
PID
ps -p PID : 해당 PID의 프로세스 정보를 출력
1 | $ ps -p 517366 |
사용자 아이디
`ps -u [사용자명]: 사용자 아이디에 해당하는 프로세스 정보를 출력
1 | $ ps -u root |
Filtering
grep, awk, cut 등 명령과 조합해 사용
grep
grep : 특정 문자열 찾는 명령어
1 | [ grep 주요 옵션 ] |
특정 파일내에서 특정 단어 찾기
1 | grep "찾을 문자열" FileName |
ps 명령에서 특정 문자열 찾기
1 | ps -ef |grep python |
BSD 형식의 ps 명령 결과에서 찾기
1 | ps aux | grep python |
grep 명령어는 로그에서 특정 문자열로 검색할때 자주 사용하기도함
단어의 대소문자 구분없이 단어찾기
1 | grep -i "찾을 문자열" FileName |
몇번째 줄에 단어가 포함되어 있는지 찾기
1 | grep -n "찾을 문자열" FileName |
cut 명령령
AWK
1 | ps -u qkboo -f | grep python | awk '{print $2, $9}' |
파일 이름, 크기만 나오게 awk 사용
1 | ls -lh / | awk -v OFS='\t' '{print $5, $9} |
[Linux] ls, ps, find, grep, awk 명령
https://thinkbee.github.io/linux-ls_find_ps_grep-92037ea2efea/