[Linux] 자주쓰는 명령어
- -
오늘은 Linux를 이용하면서 자주쓰는 명령어들을 정리해보려고 합니다.
Linux
# free
: 시스템 메모리 사용량에 대한 자세한 보고서를 얻을 수 있는
ubuntu@ip-172-31-12-184:~$ free
total used free shared buff/cache available
Mem: 1002052 231188 157312 14704 613552 570996
Swap: 0 0 0
total → 응용 프로그램에서 사용할 수 있는 총 메모리양
used → 사용된 메모리
free → 여유 / 사용하지 않은 메모리
shared → 의미가 없음
buff/cache → 커널 버퍼와 페이지 캐시 및 슬랩에서 사용하는 결합된 메모리
available → 스와핑 없이 새 응용 프로그램을 시작하는데 사용할 수 있는 메모리 양의 추정치
# vmstat
: 가상 메모리 통계 리포트
root@ip-172-31-12-184:~# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 154776 53768 559812 0 0 2 7 4 1 0 0 100 0 0
vmstat [옵션][지연][카운트]
-a : 시스템의 활성 및 비활성 메모리 제공
-f : 부팅 이후의 포크 수를 제공
-s : 다양한 메모리 통계와 CPU 및 IO 이벤트 카운터를 표시
-d : 다양한 디스크에 대한 읽기/쓰기 통계
-f : 모든 업데이트에 대한 타임스태프 정보를 제공
# netstat
: 네트워크 연결상태, 라우팅 테이블, 인터페이스 상태 & 통계 정보 등을 보여주는 명령어
netstat [옵션]
netstat -nap : 연결을 기다리는 목록과 프로그램을 출력
netstat -an | grep 포트번호 : 특정 포트가 사용 중에 있는지 확인
netstat -nlpt : TCP listening 상태의 포트와 프로그램을 출력
# ps
: 현재 실행중인 프로세스 목록과 상태를 보여주는 명령어
root@ip-172-31-12-184:~# ps
PID TTY TIME CMD
836620 pts/1 00:00:00 su
836622 pts/1 00:00:00 bash
836653 pts/1 00:00:00 ps
$ ps [option]
-A : 모든 프로세스를 출력
a : 터미널과 연관된 프로세스를 출력하는 옵션이다. 보통 x옵션과 연계하여 모든 프로세스를 출력할 때 사용
-a : 세션 리더를 제외하고 데몬 프로세스처럼 터미널에 종속되지 않은 모든 프로세스를 출력
-e : 커널 프로세스를 제외한 모든 프로세스를 출력
-l : 프로세스의 정보를 길게 보여주는 옵션으로 우선순위와 관련된 PRI와 NI 값을 확인
-o : 출력 포맷을 지정하는 옵션으로 값으로는, pid, tty, time, cmd 등을 지정할 수 있음
-M : 64비트 프로세스들을 보여준다.
-m : 프로세스들 뿐만 아니라 커널 스레드들도 보여준다.
-p : 특정 PID를 지정할 때 사용
-r : 현재 실행 중인 프로세서를 보여줌
u : 프로세스의 소유자를 기준으로 출력 (ps ax만 하면 USER 기준의 정보가 안뜸, aux 이렇게 같이 대게 사용)
-u : 특정 사용자의 프로세스 정보를 확인할 때 사용, 사용자를 지정하지 않으면 현재 사용자를 기준으로 정보를 출력
x : 데몬 프로세스처럼 터미널에 종속되지 않은 프로세스를 출력. 보통 a옵션과 결합하여 모든 프로세스를 출력할 때 사용
-x : 로그인 상태에 있는 동안 아직 완료되지 않은 프로세스들을 보여줌.
ps ax : 시스템에 동작중인 모든 프로세스를 보고 싶을 때 사용 (BSD 포맷으로 출력)
ps aux: 시스템에 동작중인 모든 프로세스를 소유자 정보와 함게 다양한 정볼르 출력
ps -ef | more : 'ps-ef'는 System V 계열 옵션으로 'ps aux'처럼 시스템에 동작중인 모든 프로세스를 full format으로 출력. more명령어를 추가해서 한 페이지씩 화면에 출력되도록 조정
ps -el | head : 긴 포맷으로 출력하고 싶을 경우 -l 옵션을 사용
# df
: 리눅스 시스템 전체의 (마운트 된) 디스크 사용량을 확인할 수 있는 명령어
파일시스템, 디스크 크기, 사용량, 여유공간, 사용률, 마운트 지점 순
USB메모리나 SD카드의 저장공간도 여기서 확인이 가능
root@ip-172-31-12-184:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 8065444 3619420 4429640 45% /
devtmpfs 495236 0 495236 0% /dev
tmpfs 501024 0 501024 0% /dev/shm
tmpfs 100208 828 99380 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 501024 0 501024 0% /sys/fs/cgroup
/dev/loop0 34176 34176 0 100% /snap/amazon-ssm-agent/3552
/dev/loop4 56832 56832 0 100% /snap/core18/2128
/dev/loop6 25600 25600 0 100% /snap/amazon-ssm-agent/4046
/dev/loop7 72064 72064 0 100% /snap/lxd/21029
/dev/loop3 63360 63360 0 100% /snap/core20/1081
/dev/loop9 68864 68864 0 100% /snap/lxd/21545
/dev/loop5 63360 63360 0 100% /snap/core20/1169
/dev/loop10 33280 33280 0 100% /snap/snapd/13270
/dev/loop11 33280 33280 0 100% /snap/snapd/13640
/dev/loop2 56832 56832 0 100% /snap/core18/2246
tmpfs 100204 0 100204 0% /run/user/1000
df [옵션]
-h : Mega, Giga 단위로 디스크 공간을 확인할 수 있음
# du
: df 가 시스템 전체의 디스크 공간을 확인하는 명령어라면, du는 특정 디렉토리를 기준으로 디스크 사용량을 확인
root@ip-172-31-12-184:~# du
7104 ./.cache/composer/repo/https---repo.packagist.org
7108 ./.cache/composer/repo
44 ./.cache/composer/files/brick/math
48 ./.cache/composer/files/brick
40 ./.cache/composer/files/nunomaduro/collision
44 ./.cache/composer/files/nunomaduro
20 ./.cache/composer/files/league/config
20 ./.cache/composer/files/league/mime-type-detection
52 ./.cache/composer/files/league/flysystem
304 ./.cache/composer/files/league/commonmark
400 ./.cache/composer/files/league
68 ./.cache/composer/files/guzzlehttp/psr7
116 ./.cache/composer/files/guzzlehttp/guzzle
32 ./.cache/composer/files/guzzlehttp/promises
220 ./.cache/composer/files/guzzlehttp
16 ./.cache/composer/files/tijsverkoyen/css-to-inline-styles
20 ./.cache/composer/files/tijsverkoyen
20 ./.cache/composer/files/phpoption/phpoption
24 ./.cache/composer/files/phpoption
...
du [옵션]
du -h /home : 특정 디렉토리(home) 지정
du -sh /home : -s 옵션을 사용하면 요약된 정보를 출력
# w
: 서버의 간단한 정보와 사용자들의 정보를 함께 출력
root@ip-172-31-12-184:~# w
11:52:41 up 74 days, 22:19, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ubuntu pts/0 115.93.103.92 09:13 0.00s 0.07s 0.01s sshd: ubuntu [p
# 현재시스템에 접속한 사용자 보기
who -s : who랑 같음
who -m : 현재 접속한 사용자의 정보만 출력
who -H : 결과로 출력되는 필드의 제목을 함께 출력
who -u : 현재 시스템에 접속한 사용자들이 로그인한채로 아무런 작업을 하지 않고 얼마나 있었는가를 "idle time"으로 출력
who -a : 모든 정보 출력
who -b : 시스템이 마지막으로 언제 부팅하였는가를 확인
users : 현재 시스템에 접속한 사용자들의 계정명만을 확인하는 명령어
root@ip-172-31-12-184:~# who
ubuntu pts/0 2021-11-03 09:13 (115.93.103.92)
ubuntu pts/1 2021-11-03 13:14 (115.93.103.92)
root@ip-172-31-12-184:~# who -s
ubuntu pts/0 2021-11-03 09:13 (115.93.103.92)
ubuntu pts/1 2021-11-03 13:14 (115.93.103.92)
root@ip-172-31-12-184:~# who -m
ubuntu pts/1 2021-11-03 13:14 (115.93.103.92)
root@ip-172-31-12-184:~# who -H
NAME LINE TIME COMMENT
ubuntu pts/0 2021-11-03 09:13 (115.93.103.92)
ubuntu pts/1 2021-11-03 13:14 (115.93.103.92)
root@ip-172-31-12-184:~# who -u
ubuntu pts/0 2021-11-03 09:13 01:56 834565 (115.93.103.92)
ubuntu pts/1 2021-11-03 13:14 . 836314 (115.93.103.92)
root@ip-172-31-12-184:~# who -a
system boot 2021-08-20 13:33
LOGIN ttyS0 2021-08-20 13:33 583 id=tyS0
LOGIN tty1 2021-08-20 13:33 607 id=tty1
run-level 5 2021-08-20 13:33
ubuntu - pts/0 2021-11-03 09:13 01:56 834565 (115.93.103.92)
ubuntu - pts/1 2021-11-03 13:14 . 836314 (115.93.103.92)
pts/2 2021-10-29 16:57 802682 id=ts/2 term=0 exit=0
root@ip-172-31-12-184:~# who -b
system boot 2021-08-20 13:33
root@ip-172-31-12-184:~# users
ubuntu ubuntu
# Linux ubuntu timezone 변경
root@ip-172-31-12-184:~# date
Wed Nov 3 00:32:01 UTC 2021
root@ip-172-31-12-184:~# timedatectl
Local time: Wed 2021-11-03 00:32:07 UTC
Universal time: Wed 2021-11-03 00:32:07 UTC
RTC time: Wed 2021-11-03 00:32:08
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
root@ip-172-31-12-184:~# timedatectl list-timezones | grep Seoul
Asia/Seoul
root@ip-172-31-12-184:~# sudo timedatectl set-timezone Asia/Seoul
root@ip-172-31-12-184:~# timedatectl
Local time: Wed 2021-11-03 09:33:54 KST
Universal time: Wed 2021-11-03 00:33:54 UTC
RTC time: Wed 2021-11-03 00:33:56
Time zone: Asia/Seoul (KST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
root@ip-172-31-12-184:~# date
Wed Nov 3 09:33:58 KST 2021
부족한 부분이 있다면 댓글로 남겨주세요 : )
소중한 공감 감사합니다