- Linux Command – cd, dirname, basename, id, uname, cpuinfo, meminfo, locale, ps, kill, top
- Linux Command – touch, mkdir, rm, cp, mv, du, df
커서 이동
맨앞으로 : Ctrl+a, 맨뒤로 : Crtl+e
pwd : 현재 디렉터리 확인
$ pwd /home/ubuntu
cd : 디렉터리 이동
# 계정의 home 디렉터리로 이동 $) cd or cd ~ # 루트 디렉터리로 이동 $) cd / # 이전 디렉터리로 이동 $) cd - # 상위 디렉터리로 이동 $) cd .. # hellodir 디렉터리로 이동 $) cd /hellodir
dirname : 디렉터리 이름 구하기
$ dirname /var/log/nginx/access.log /var/log/nginx
basename : 파일 이름 구하기
$ basename /var/log/nginx/access.log access.log $ basename /var/log/nginx/access.log .log access
id : 현재 로그인한 id 정보를 확인
$ id uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),109(netdev),110(lxd)
uname -a : 서버의 OS 정보를 출력
$ uname -a Linux ip-172-26-11-44 4.4.0-1079-aws #89-Ubuntu SMP Tue Mar 26 15:25:52 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
cat /proc/cpuinfo : 서버의 CPU 정보를 출력
$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 63 model name : Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz stepping : 2 microcode : 0x41 cpu MHz : 2400.072 cache size : 30720 KB
cat /proc/meminfo : 서버의 Memory 정보를 출력
$ cat /proc/meminfo MemTotal: 498372 kB MemFree: 17220 kB MemAvailable: 90228 kB Buffers: 21324 kB Cached: 150520 kB SwapCached: 0 kB Active: 388416 kB Inactive: 27688 kB Active(anon): 344528 kB Inactive(anon): 6176 kB Active(file): 43888 kB Inactive(file): 21512 kB
locale : 지역 정보 조회
$ locale LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8"
ps – 실행중인 프로세스 목록 조회
옵션
옵션 | 내용 |
-a | 전체사용자 프로세스 출력 |
-e | 모든 프로세스 상태 출력 |
-r | 실행중인 프로세스 상태 출력 |
-u | 각 프로세스 사용자 및 사용시간 출력 |
-x | 제어 터미널이 없는 프로세스 출력 |
-l | 긴 포맷(자세한 내용)으로 표시 |
-f | 풀 포맷(모든 컬럼내용)으로 표시 |
필드별 항목
- USER – 프로세스 사용자
- PID – 프로세스 ID
- PPID – 부모 프로세스 ID
- %CPU – CPU 사용률
- %MEM – 메모리 사용률
- VSZ – 가상 메모리 사용량
- RSS – 실제 메모리 사용량
- TTY – Teletype. 프로세스가 수행되고 있는 제어 터미널. ‘?’는 제어 터미널에 연결되어있지 않음을 나타냄
- STAT – 프로세스 상태( R : 실행 또는 실행대 / S : 수면 / I : 휴식 / T : 정지 / Z : 좀비프로세스 / D : 디스크 대기)
- START, TIME – 프로세스가 시작된 시간
- CMD(Command) – 실행된 프로세스명
ps -ef
UID PID PPID C STIME TTY TIME CMD root 1 0 0 Apr07 ? 00:00:50 /lib/systemd/systemd --system --deserialize 25 root 2 0 0 Apr07 ? 00:00:00 [kthreadd] root 3 2 0 Apr07 ? 00:00:08 [ksoftirqd/0] root 5 2 0 Apr07 ? 00:00:00 [kworker/0:0H] root 7 2 0 Apr07 ? 00:00:09 [rcu_sched] root 8 2 0 Apr07 ? 00:00:00 [rcu_bh] root 9 2 0 Apr07 ? 00:00:00 [migration/0] root 10 2 0 Apr07 ? 00:00:07 [watchdog/0] root 11 2 0 Apr07 ? 00:00:00 [kdevtmpfs] root 12 2 0 Apr07 ? 00:00:00 [netns] root 13 2 0 Apr07 ? 00:00:00 [perf]
ps -aux
$ ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 1.0 185332 5076 ? Ss Apr07 0:50 /lib/systemd/systemd --system --de root 2 0.0 0.0 0 0 ? S Apr07 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Apr07 0:08 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< Apr07 0:00 [kworker/0:0H] root 7 0.0 0.0 0 0 ? S Apr07 0:09 [rcu_sched] root 8 0.0 0.0 0 0 ? S Apr07 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S Apr07 0:00 [migration/0] root 10 0.0 0.0 0 0 ? S Apr07 0:07 [watchdog/0] root 11 0.0 0.0 0 0 ? S Apr07 0:00 [kdevtmpfs]
프로세스 명으로 PID 알아내기
ps -ef | grep 프로세스명 | grep -v grep
$ ps -ef | grep httpd | grep -v grep root 23969 1 0 Apr20 ? 00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; www-data 23970 23969 0 Apr20 ? 00:00:37 nginx: worker process
프로세스 cpu 사용률 확인
$ ps -C nginx -o user,pid,pcpu,pmem,vsize,size,etime,comm USER PID %CPU %MEM VSZ SIZE ELAPSED COMMAND root 23969 0.0 0.3 179612 2076 7-20:54:40 nginx www-data 23970 0.0 1.3 180596 3060 7-20:54:40 nginx
PID로 프로세스 이름 알아내기
cat /proc/프로세스아이디/status | grep Name
$ cat /proc/23969/status | grep Name Name: nginx
kill – 프로세스 종료
시그널 종류
$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
kill -15 pid : Terminate의 약자로 정상 종료 시그널 요청
kill -9 pid : 강제 종료 요청. kill -15로 몇번해도 죽지 않는 경우 사용.
kill -1 pid : 해당 pid 프로세스를 재시작.
top – 프로세스 목록을 CPU 사용률이 높은 것부터 출력
필드별 항목
- PID : 프로세스 ID (PID)
- USER : 프로세스를 실행시킨 사용자 ID
- PRI : 프로세스의 우선순위 (priority)
- NI : NICE 값. 일의 nice value값이다. 마이너스를 가지는 nice value는 우선순위가 높음.
- VIRT : 가상 메모리의 사용량(SWAP+RES)
- RES : 현재 페이지가 상주하고 있는 크기(Resident Size)
- SHR : 분할된 페이지, 프로세스에 의해 사용된 메모리를 나눈 메모리의 총합.
- S : 프로세스의 상태 [ S(sleeping), R(running), W(swapped out process), Z(zombies) ]
- %CPU : 프로세스가 사용하는 CPU의 사용율
- %MEM : 프로세스가 사용하는 메모리의 사용율
- TIME+ : 프로세스 시작된 이후 경과된 총 시간
- COMMAND : 실행된 명령어
- Load average (로드 애버리지) : 세 개의 숫자는 각각 1분, 5분, 15분 간의 평균 실행/대기 중인 프로세스의 수를 나타냄. uptime 명령어로도 확인할 수 있으며, 시스템 부하를 모니터링 할 수 있다. 숫자가 높을 수록 시스템에 부하가 있다는 것이다. load average 값은 CPU의 코어 수를 같이 확인해야 하며, 코어 수 보다 적으면 문제가 없다.
$ top top - 13:53:04 up 20 days, 13:54, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 110 total, 1 running, 109 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.6 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 498372 total, 13396 free, 237284 used, 247692 buff/cache KiB Swap: 0 total, 0 free, 0 used. 157444 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 185332 5072 3188 S 0.0 1.0 0:50.83 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:08.18 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root 20 0 0 0 0 S 0.0 0.0 0:09.68 rcu_sched 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 10 root rt 0 0 0 0 S 0.0 0.0 0:07.47 watchdog/0 11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
top 실행후 옵션
- shift + t : 실행된 시간이 큰 순서로 정렬
- shift + m : 메모리 사용량이 큰 순서로 정렬
- shift + p : cpu 사용량이 큰 순서로 정렬
- shift + b : 상단의 uptime 및 기타 정보값을 블럭 선택해 표시
- k : Process 종료 – k 입력 후 종료할 PID를 입력하고 signal을 입력하라 표시되면 9를 넣어준다.
- c : 명령 인자 표시 / 비표시
- l : uptime line(첫번째 행)을 표시 / 비표시
- space bar : Refresh
- u : 입력한 유저 소유의 Process만 표시 .which user유저를 입력하라 표시될때 User를 입력. blank(공백) 입력시 모두 표시
- f : 화면에 표시될 프로세스 관련 항목 설정
- i : idle 또는 좀비 상태의 프로세스는 표시 되지 않음
- z : 출력 색상 변경
- d [sec] : 설정된 초단위로 Refresh
- c : command뒤에 인자값 표시
- q : top 종료