λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

λ¦¬λˆ…μŠ€ 터미널 λͺ…λ Ήμ–΄ λͺ¨μŒ 총정리

by 5566 2023. 11. 19.

1. λ¦¬λˆ…μŠ€ 터미널 λͺ…λ Ήμ–΄ μ†Œκ°œ

λ¦¬λˆ…μŠ€ μš΄μ˜μ²΄μ œμ—μ„œλŠ” 터미널을 톡해 λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•˜μ—¬ λ‹€μ–‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이번 μž₯μ—μ„œλŠ” λ¦¬λˆ…μŠ€ 터미널 λͺ…령어에 λŒ€ν•΄ μ†Œκ°œν•˜κ³ , 각 λͺ…λ Ήμ–΄μ˜ κΈ°λŠ₯κ³Ό μ‚¬μš©λ²•μ„ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€. λͺ…λ Ήμ–΄λŠ” 터미널에 직접 μž…λ ₯ν•˜μ—¬ μ‹€ν–‰ν•  수 있으며, 파일 및 디렉토리 관리, ν”„λ‘œμ„ΈμŠ€ 관리, λ„€νŠΈμ›Œν¬ κ΄€λ ¨ μž‘μ—…, μ‹œμŠ€ν…œ λͺ¨λ‹ˆν„°λ§ λ“± λ‹€μ–‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ¦¬λˆ…μŠ€ 터미널 λͺ…λ Ήμ–΄λŠ” 주둜 ν…μŠ€νŠΈ 기반으둜 μž‘λ™ν•˜λ©°, μ‚¬μš©μžκ°€ μ‰˜μ— λͺ…령을 μž…λ ₯ν•˜λ©΄ 컀널이 이λ₯Ό ν•΄μ„ν•˜κ³  μ‹€ν–‰ν•©λ‹ˆλ‹€. λͺ…λ Ήμ–΄λŠ” λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜λ©°, 각각의 λͺ…λ Ήμ–΄λŠ” 곡백 문자둜 κ΅¬λΆ„ν•˜μ—¬ μž…λ ₯λ©λ‹ˆλ‹€. λͺ…λ Ήμ–΄ μž…λ ₯ ν›„ μ—”ν„°ν‚€λ₯Ό λˆ„λ₯΄λ©΄ ν•΄λ‹Ή λͺ…λ Ήμ–΄κ°€ μ‹€ν–‰λ˜λ©°, κ²°κ³Όκ°€ 터미널에 좜λ ₯λ©λ‹ˆλ‹€.

λ¦¬λˆ…μŠ€ 터미널 λͺ…λ Ήμ–΄λŠ” μ‹œμŠ€ν…œ κ΄€λ¦¬μžλ‚˜ 개발자λ₯Ό ν¬ν•¨ν•œ λͺ¨λ“  μ‚¬μš©μžλ“€μ—κ²Œ μœ μš©ν•©λ‹ˆλ‹€. 운영체제, 파일 μ‹œμŠ€ν…œ, λ„€νŠΈμ›Œν¬, ν”„λ‘œμ„ΈμŠ€ λ“±κ³Ό 같은 λ‹€μ–‘ν•œ μž‘μ—…μ„ λͺ…λ Ήμ–΄λ‘œ 직접 μˆ˜ν–‰ν•  수 있기 λ•Œλ¬Έμ—, 효율적이고 μ •κ΅ν•œ μž‘μ—…μ„ κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€. λ‹€μŒ μž₯μ—μ„œλŠ” λ¦¬λˆ…μŠ€ 터미널 λͺ…λ Ήμ–΄ 쀑 파일 및 디렉토리 관리 λͺ…λ Ήμ–΄λΆ€ν„° μžμ„Ένžˆ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

2. 파일 및 디렉토리 관리 λͺ…λ Ήμ–΄

λ¦¬λˆ…μŠ€μ—μ„œ 파일 및 디렉토리 관리 λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜λ©΄ 파일과 디렉토리λ₯Ό 생성, 볡사, 이동, μ‚­μ œ λ“± λ‹€μ–‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이번 μž₯μ—μ„œλŠ” 파일과 디렉토리λ₯Ό κ΄€λ¦¬ν•˜λŠ” λͺ…λ Ήμ–΄λ₯Ό μƒμ„Ένžˆ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

ls (리슀트)

ls λͺ…λ Ήμ–΄λŠ” ν˜„μž¬ 디렉토리에 μžˆλŠ” 파일과 λ””λ ‰ν† λ¦¬μ˜ λͺ©λ‘μ„ 좜λ ₯ν•΄μ€λ‹ˆλ‹€. 기본적으둜 각 ν•­λͺ©μ˜ μ΄λ¦„λ§Œ 좜λ ₯되며, -l μ˜΅μ…˜μ„ μΆ”κ°€ν•˜λ©΄ μžμ„Έν•œ 정보(κΆŒν•œ, μ†Œμœ μž, 크기)도 ν•¨κ»˜ 좜λ ₯λ©λ‹ˆλ‹€.

$ ls
file1.txt  file2.txt  dir1/

cd (디렉토리 λ³€κ²½)

cd λͺ…λ Ήμ–΄λŠ” ν˜„μž¬ μž‘μ—… 디렉토리λ₯Ό λ³€κ²½ν•©λ‹ˆλ‹€. cd λͺ…λ Ήμ–΄ 뒀에 μ›ν•˜λŠ” λ””λ ‰ν† λ¦¬μ˜ 경둜λ₯Ό μž…λ ₯ν•˜λ©΄ ν•΄λ‹Ή λ””λ ‰ν† λ¦¬λ‘œ 이동할 수 μžˆμŠ΅λ‹ˆλ‹€.

$ cd Documents

pwd (ν˜„μž¬ 디렉토리 좜λ ₯)

pwd λͺ…λ Ήμ–΄λŠ” ν˜„μž¬ μž‘μ—… λ””λ ‰ν† λ¦¬μ˜ 경둜λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

$ pwd
/home/user/Documents

mkdir (디렉토리 생성)

mkdir λͺ…λ Ήμ–΄λŠ” μƒˆλ‘œμš΄ 디렉토리λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. mkdir λͺ…λ Ήμ–΄ 뒀에 μƒμ„±ν•˜λ €λŠ” λ””λ ‰ν† λ¦¬μ˜ 이름을 μž…λ ₯ν•˜λ©΄ λ©λ‹ˆλ‹€.

$ mkdir new_directory

cp (파일/디렉토리 볡사)

cp λͺ…λ Ήμ–΄λŠ” νŒŒμΌμ΄λ‚˜ 디렉토리λ₯Ό λ³΅μ‚¬ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. cp λͺ…λ Ήμ–΄ 뒀에 볡사할 λŒ€μƒκ³Ό λŒ€μƒμ˜ 경둜λ₯Ό μž…λ ₯ν•΄μ•Ό ν•©λ‹ˆλ‹€.

$ cp file1.txt new_directory/file1.txt

mv (파일/디렉토리 이동 및 이름 λ³€κ²½)

mv λͺ…λ Ήμ–΄λŠ” νŒŒμΌμ΄λ‚˜ 디렉토리λ₯Ό μ΄λ™ν•˜κ±°λ‚˜ 이름을 λ³€κ²½ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. mv λͺ…λ Ήμ–΄ 뒀에 이동/λ³€κ²½ν•  λŒ€μƒκ³Ό λŒ€μƒμ˜ 경둜λ₯Ό μž…λ ₯ν•˜λ©΄ λ©λ‹ˆλ‹€.

$ mv file1.txt new_directory/file1_new.txt

rm (파일/디렉토리 μ‚­μ œ)

rm λͺ…λ Ήμ–΄λŠ” νŒŒμΌμ΄λ‚˜ 디렉토리λ₯Ό μ‚­μ œν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. rm λͺ…λ Ήμ–΄ 뒀에 μ‚­μ œν•  λŒ€μƒμ„ μž…λ ₯ν•˜λ©΄ λ©λ‹ˆλ‹€. -r μ˜΅μ…˜μ„ μΆ”κ°€ν•˜λ©΄ 디렉토리와 κ·Έ λ‚΄μš©μ„ μž¬κ·€μ μœΌλ‘œ μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ£Όμ˜ν•΄μ•Ό ν•  점은 μ‚­μ œλœ νŒŒμΌμ€ 되돌릴 수 μ—†μœΌλ―€λ‘œ μ‹ μ€‘ν•˜κ²Œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

$ rm file1.txt

μœ„μ— μ†Œκ°œν•œ λͺ…령어듀은 파일 및 디렉토리λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ κ°€μž₯ 많이 μ‚¬μš©λ˜λŠ” λͺ…λ Ήμ–΄μž…λ‹ˆλ‹€. 이 외에도 λ‹€μ–‘ν•œ λͺ…λ Ήμ–΄κ°€ μ‘΄μž¬ν•˜λ‹ˆ ν•„μš”μ— 따라 찾아보고 μ΅ν˜€λ‘λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

3. ν”„λ‘œμ„ΈμŠ€ 관리 λͺ…λ Ήμ–΄

λ¦¬λˆ…μŠ€μ—μ„œλŠ” μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€κ°€ λ™μ‹œμ— μ‹€ν–‰λ˜λ©°, μ΄λŸ¬ν•œ ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ λͺ…λ Ήμ–΄κ°€ μ œκ³΅λ©λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€ 관리 λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜λ©΄ μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€λ₯Ό ν™•μΈν•˜κ³  μ‘°μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이번 μž₯μ—μ„œλŠ” μ£Όμš” ν”„λ‘œμ„ΈμŠ€ 관리 λͺ…령어에 λŒ€ν•΄ μƒμ„Έν•˜κ²Œ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

ps (ν”„λ‘œμ„ΈμŠ€ μƒνƒœ)

ps λͺ…λ Ήμ–΄λŠ” ν˜„μž¬ μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœλ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€. κΈ°λ³Έμ μœΌλ‘œλŠ” ν˜„μž¬ μ‚¬μš©μžμ˜ ν”„λ‘œμ„ΈμŠ€λ§Œ 좜λ ₯되며, -a μ˜΅μ…˜μ„ μΆ”κ°€ν•˜λ©΄ λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

$ ps
  PID TTY          TIME CMD
 1010 pts/0    00:00:00 bash
 1152 pts/0    00:00:00 ps

$ ps -a
  PID TTY          TIME CMD
  926 ?        00:00:01 systemd
  ...

top (μ‹€μ‹œκ°„ ν”„λ‘œμ„ΈμŠ€ λͺ¨λ‹ˆν„°λ§)

top λͺ…λ Ήμ–΄λŠ” μ‹€μ‹œκ°„μœΌλ‘œ ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœ 및 μ‹œμŠ€ν…œμ˜ λ¦¬μ†ŒμŠ€ μ‚¬μš©λŸ‰μ„ λͺ¨λ‹ˆν„°λ§ν•˜λŠ” λ„κ΅¬μž…λ‹ˆλ‹€. CPU, λ©”λͺ¨λ¦¬, λ””μŠ€ν¬, λ„€νŠΈμ›Œν¬ λ“± λ‹€μ–‘ν•œ 정보λ₯Ό λ³Ό 수 있으며, qλ₯Ό 눌러 λ‚˜κ°ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

$ top

kill (ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ)

kill λͺ…λ Ήμ–΄λŠ” μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ’…λ£Œν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. kill λͺ…λ Ήμ–΄ 뒀에 μ’…λ£Œν•˜λ €λŠ” ν”„λ‘œμ„ΈμŠ€μ˜ PID(Process ID)λ₯Ό μž…λ ₯ν•˜λ©΄ ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ©λ‹ˆλ‹€.

$ kill 1234

killall (ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ)

killall λͺ…λ Ήμ–΄λŠ” ν”„λ‘œμ„ΈμŠ€ μ΄λ¦„μœΌλ‘œ μ‹€ν–‰ 쀑인 λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€λ₯Ό μ’…λ£Œν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. killall λͺ…λ Ήμ–΄ 뒀에 μ’…λ£Œν•˜λ €λŠ” ν”„λ‘œμ„ΈμŠ€μ˜ 이름을 μž…λ ₯ν•˜λ©΄ ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€λ“€μ΄ μ’…λ£Œλ©λ‹ˆλ‹€.

$ killall firefox

nice (ν”„λ‘œμ„ΈμŠ€ μš°μ„ μˆœμœ„ λ³€κ²½)

nice λͺ…λ Ήμ–΄λŠ” μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€μ˜ μš°μ„ μˆœμœ„λ₯Ό λ³€κ²½ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. μˆ«μžκ°€ μž‘μ„μˆ˜λ‘ μš°μ„ μˆœμœ„κ°€ λ†’μŠ΅λ‹ˆλ‹€. 기본적으둜 nice λͺ…λ Ήμ–΄λ₯Ό νŠΉμ • ν”„λ‘œμ„ΈμŠ€μ™€ ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€μ˜ μš°μ„ μˆœμœ„λ₯Ό λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

$ nice -n 10 command

ν”„λ‘œμ„ΈμŠ€ 관리 λͺ…λ Ήμ–΄λ₯Ό 톡해 ν˜„μž¬ μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€λ₯Ό ν™•μΈν•˜κ³  μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€ μ‚¬μš©λŸ‰μ„ λͺ¨λ‹ˆν„°λ§ν•˜κ±°λ‚˜ 였λ₯˜κ°€ μžˆλŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό μ’…λ£Œν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•„μš”μ— 따라 λ‹€μ–‘ν•œ ν”„λ‘œμ„ΈμŠ€ 관리 λͺ…λ Ήμ–΄λ₯Ό 읡히고 μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

4. λ„€νŠΈμ›Œν¬ κ΄€λ ¨ λͺ…λ Ήμ–΄

λ¦¬λˆ…μŠ€μ—μ„œλŠ” λ„€νŠΈμ›Œν¬ κ΄€λ ¨ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ λ„€νŠΈμ›Œν¬ μ—°κ²° μƒνƒœλ₯Ό ν™•μΈν•˜κ³  μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이번 μž₯μ—μ„œλŠ” λ„€νŠΈμ›Œν¬ κ΄€λ ¨ λͺ…λ Ήμ–΄λ₯Ό μƒμ„Ένžˆ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

ifconfig (μΈν„°νŽ˜μ΄μŠ€ 확인 및 μ„€μ •)

ifconfig λͺ…λ Ήμ–΄λŠ” ν˜„μž¬ μ‹œμŠ€ν…œμ— μ—°κ²°λœ λ„€νŠΈμ›Œν¬ μΈν„°νŽ˜μ΄μŠ€μ˜ μ„€μ • 정보λ₯Ό ν™•μΈν•˜κ±°λ‚˜ λ³€κ²½ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. -a μ˜΅μ…˜μ„ μΆ”κ°€ν•˜λ©΄ λͺ¨λ“  μΈν„°νŽ˜μ΄μŠ€μ˜ 정보λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.101  netmask 255.255.255.0  broadcast 192.168.0.255
        ...

$ ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.101  netmask 255.255.255.0  broadcast 192.168.0.255
        ...
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        ...

ping (호슀트 μ ‘κ·Ό 확인)

ping λͺ…λ Ήμ–΄λŠ” νŠΉμ • ν˜ΈμŠ€νŠΈμ— ICMP νŒ¨ν‚·μ„ 보내 응닡 μ—¬λΆ€λ₯Ό ν™•μΈν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. 호슀트의 IP μ£Όμ†Œλ‚˜ 도메인 이름을 μž…λ ₯ν•˜λ©΄ ν•΄λ‹Ή ν˜ΈμŠ€νŠΈμ— νŒ¨ν‚·μ„ 보내 응닡 μ‹œκ°„μ„ 좜λ ₯ν•©λ‹ˆλ‹€. Ctrl + Cλ₯Ό 눌러 μ’…λ£Œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

$ ping google.com
PING google.com (172.217.25.14) 56(84) bytes of data.
64 bytes from 172.217.25.14: icmp_seq=1 ttl=57 time=10.4 ms
...

netstat (λ„€νŠΈμ›Œν¬ μ—°κ²° μƒνƒœ 확인)

netstat λͺ…λ Ήμ–΄λŠ” ν˜„μž¬ μ‹œμŠ€ν…œμ˜ λ„€νŠΈμ›Œν¬ μ—°κ²° μƒνƒœλ₯Ό ν™•μΈν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. netstat -a λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜λ©΄ λͺ¨λ“  μ—°κ²° μƒνƒœλ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:ssh                   *:*                     LISTEN
...

traceroute (νŒ¨ν‚· 경둜 좔적)

traceroute λͺ…λ Ήμ–΄λŠ” νŠΉμ • 호슀트둜 μ—¬λŸ¬ νŒ¨ν‚·μ„ μ „μ†‘ν•˜μ—¬ κ·Έ 경둜λ₯Ό ν™•μΈν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. 호슀트의 IP μ£Όμ†Œλ‚˜ 도메인 이름을 μž…λ ₯ν•˜λ©΄ νŒ¨ν‚·μ΄ 호슀트λ₯Ό 거쳐 μ§€λ‚˜κ°€λŠ” 경둜λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

$ traceroute google.com
traceroute to google.com (172.217.25.14), 30 hops max, 60 byte packets
 1  gateway (192.168.0.1)  5.251 ms  5.144 ms  5.073 ms
 2  * * *
...

wget (μ›Ή νŽ˜μ΄μ§€ λ‹€μš΄λ‘œλ“œ)

wget λͺ…λ Ήμ–΄λŠ” 주어진 URL을 μ‚¬μš©ν•˜μ—¬ μ›Ή νŽ˜μ΄μ§€λ₯Ό λ‹€μš΄λ‘œλ“œν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. wget λͺ…λ Ήμ–΄ 뒀에 λ‹€μš΄λ‘œλ“œν•  URL을 μž…λ ₯ν•˜λ©΄ ν•΄λ‹Ή μ›Ή νŽ˜μ΄μ§€κ°€ λ‹€μš΄λ‘œλ“œλ©λ‹ˆλ‹€.

$ wget https://www.example.com/index.html

λ„€νŠΈμ›Œν¬ κ΄€λ ¨ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜λ©΄ μ‹œμŠ€ν…œμ˜ λ„€νŠΈμ›Œν¬ μ—°κ²° μƒνƒœλ₯Ό ν™•μΈν•˜κ³ , μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ„€μ •ν•˜κ±°λ‚˜ νŠΉμ • 호슀트둜 νŒ¨ν‚·μ„ 전솑할 수 μžˆμŠ΅λ‹ˆλ‹€. ν•„μš”μ— 따라 λ‹€μ–‘ν•œ λ„€νŠΈμ›Œν¬ κ΄€λ ¨ λͺ…λ Ήμ–΄λ₯Ό 읡히고 μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

5. μ‹œμŠ€ν…œ λͺ¨λ‹ˆν„°λ§ λͺ…λ Ήμ–΄

λ¦¬λˆ…μŠ€μ—μ„œλŠ” μ‹œμŠ€ν…œμ˜ μƒνƒœλ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ λͺ…λ Ήμ–΄λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 이번 μž₯μ—μ„œλŠ” μ£Όμš” μ‹œμŠ€ν…œ λͺ¨λ‹ˆν„°λ§ λͺ…령어에 λŒ€ν•΄ μƒμ„Ένžˆ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

top (μ‹€μ‹œκ°„ ν”„λ‘œμ„ΈμŠ€ λͺ¨λ‹ˆν„°λ§)

top λͺ…λ Ήμ–΄λŠ” ν˜„μž¬ μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœ 및 μ‹œμŠ€ν…œμ˜ λ¦¬μ†ŒμŠ€ μ‚¬μš©λŸ‰μ„ μ‹€μ‹œκ°„μœΌλ‘œ λͺ¨λ‹ˆν„°λ§ν•˜λŠ” λ„κ΅¬μž…λ‹ˆλ‹€. CPU, λ©”λͺ¨λ¦¬, λ””μŠ€ν¬, λ„€νŠΈμ›Œν¬ λ“± λ‹€μ–‘ν•œ 정보λ₯Ό 확인할 수 있으며, qλ₯Ό 눌러 λ‚˜κ°ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

$ top

vmstat (가상 λ©”λͺ¨λ¦¬ 및 μ‹œμŠ€ν…œ μƒνƒœ λͺ¨λ‹ˆν„°λ§)

vmstat λͺ…λ Ήμ–΄λŠ” 가상 λ©”λͺ¨λ¦¬ 및 μ‹œμŠ€ν…œμ˜ μƒνƒœλ₯Ό 좜λ ₯ν•˜μ—¬ λͺ¨λ‹ˆν„°λ§ν•˜λŠ”데 μ‚¬μš©λ©λ‹ˆλ‹€. vmstat λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λ©΄ CPU μ‚¬μš©λŸ‰, λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰, μŠ€μ™‘ μ‚¬μš©λŸ‰, λ””μŠ€ν¬ I/O 정보 등을 μ‹€μ‹œκ°„μœΌλ‘œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

$ 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 163840  32760 249356    0    0     0     0   12   22  0  0 100  0  0

iostat (λ””μŠ€ν¬ 및 I/O μƒνƒœ λͺ¨λ‹ˆν„°λ§)

iostat λͺ…λ Ήμ–΄λŠ” λ””μŠ€ν¬μ™€ I/O μž₯치의 μƒνƒœλ₯Ό 좜λ ₯ν•˜μ—¬ λͺ¨λ‹ˆν„°λ§ν•˜λŠ”데 μ‚¬μš©λ©λ‹ˆλ‹€. iostat λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λ©΄ 전체 μ‹œμŠ€ν…œμ˜ λ””μŠ€ν¬ μ‚¬μš©λŸ‰, 전체 I/O μž₯치의 ν™œλ™ μƒνƒœ, 각 λ””μŠ€ν¬μ˜ I/O μ‚¬μš©λŸ‰ 등을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

$ iostat
Linux 4.15.0-55-generic (hostname)  07/23/2021  _x86_64_  (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.09    0.00    0.08    0.03    0.00   99.81

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               2.92         0.05        59.68      63488   6720320

sar (μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€ μ‚¬μš©λŸ‰ λͺ¨λ‹ˆν„°λ§)

sar λͺ…λ Ήμ–΄λŠ” CPU, λ©”λͺ¨λ¦¬, I/O, λ„€νŠΈμ›Œν¬ λ“± μ‹œμŠ€ν…œμ˜ λ¦¬μ†ŒμŠ€ μ‚¬μš©λŸ‰μ„ λͺ¨λ‹ˆν„°λ§ν•˜λŠ”데 μ‚¬μš©λ©λ‹ˆλ‹€. νŠΉμ • μ‹œκ°„ 간격에 λŒ€ν•œ 평균 μ‚¬μš©λŸ‰μ„ λ³΄κ³ μ„œ ν˜•μ‹μœΌλ‘œ 좜λ ₯ν•˜λ©°, sar λͺ…λ Ήμ–΄ 뒀에 μ›ν•˜λŠ” μ˜΅μ…˜μ„ μΆ”κ°€ν•˜μ—¬ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

$ sar -u 1 5
Linux 4.15.0-55-generic (hostname)        07/23/2021      _x86_64_        (2 CPU)

09:21:41 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:21:42 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
09:21:43 AM     all      2.01      0.00      0.50      0.00      0.00     97.49
09:21:44 AM     all      0.50      0.00      0.50      0.50      0.00     98.50
09:21:45 AM     all      0.50      0.00      0.00      0.00      0.00     99.50
09:21:46 AM     all      0.50      0.00      0.00      0.00      0.00     99.50

Average:        all      1.01      0.00      0.20      0.10      0.00     98.60

free (λ©”λͺ¨λ¦¬ μƒνƒœ λͺ¨λ‹ˆν„°λ§)

free λͺ…λ Ήμ–΄λŠ” μ‹œμŠ€ν…œμ˜ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰κ³Ό κ°€μš© λ©”λͺ¨λ¦¬μ˜ 양을 좜λ ₯ν•˜μ—¬ λͺ¨λ‹ˆν„°λ§ν•˜λŠ”데 μ‚¬μš©λ©λ‹ˆλ‹€. free λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λ©΄ 전체 λ©”λͺ¨λ¦¬, μ‚¬μš© 쀑인 λ©”λͺ¨λ¦¬, κ°€μš©ν•œ λ©”λͺ¨λ¦¬, 버퍼 및 μΊμ‹œ λ©”λͺ¨λ¦¬ λ“±μ˜ 정보λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7.7G        7.4G        196M        1.8M        171M        7.1G
Swap:          2.0G        1.7G        312M

μ‹œμŠ€ν…œ λͺ¨λ‹ˆν„°λ§ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜λ©΄ CPU, λ©”λͺ¨λ¦¬, λ””μŠ€ν¬, λ„€νŠΈμ›Œν¬ λ“± λ‹€μ–‘ν•œ μ‹œμŠ€ν…œμ˜ μƒνƒœλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€μ˜ μ‚¬μš©λŸ‰μ„ λͺ¨λ‹ˆν„°λ§ν•˜κ³ , λ¬Έμ œκ°€ λ°œμƒν•  경우 μ μ ˆν•œ 쑰치λ₯Ό μ·¨ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•„μš”μ— 따라 λ‹€μ–‘ν•œ μ‹œμŠ€ν…œ λͺ¨λ‹ˆν„°λ§ λͺ…λ Ήμ–΄λ₯Ό 읡히고 μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

λŒ“κΈ€