๐ก ๋ณธ ๋ฌธ์๋ '์์ฃผ ์ฌ์ฉ๋๋ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด'์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
์ฒ์์๋ Linux ๋ช ๋ น ์ค ์์ฃผ ์ฌ์ฉ๋๋ '๋ฆฌ๋ ์ค ๋ช ๋ น์ด Best 50 ์ ๋ฆฌ'๋ก ๊ธฐํํ์์ผ๋ ์ ๋ฆฌํ๋ค๋ณด๋ ์ ์ฉํ ๋ช ๋ น์ด๊ฐ ๋ง์ ์ค๋ฌด์์ ์ฌ์ฉ๋๋ ๋ช ๋ น์ด๋ค์ ์ถ๊ฐํ์์ต๋๋ค. ์ด๋ณด์, ์ ๋ฌธ๊ฐ์ ๊ด๊ณ์์ด ๋ค์ํ ํฐ๋ฏธ๋ ๋ช ๋ น์ ๋ง์คํฐํ๋ ๊ฒ์ ํ์์ด๊ธฐ์ ํ์ํ ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
1. ํ์ผ ์์คํ ํ์์ ์ํ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
01. pwd
Print Work Directory์ ์ฝ์๋ก ํ์ฌ ์์ ์ค์ธ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ณด์ฌ์ค๋ค.
% pwd
/Users/choiseongjun
02. ls
list segments์ ์ฝ์๋ก ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ฉฐ, ํน์ ๋๋ ํฐ๋ฆฌ์ ํน์ ํ์ผ์ ๋ด์ฉ๋ ์ ๊ณตํ๋ค.
% ls
CMakeLists.txt README.md build gtest include src
% ls -a
. .DS_Store .gitignore README.md gtest src
.. .git CMakeLists.txt build include
% ls -al
total 48
drwxr-xr-x. 3 root root 101 8์ 18 14:47 .
drwxr-xr-x. 9 root root 96 8์ 17 14:26 ..
-rw-r--r--. 1 root root 65940890076 8์ 17 19:29 MbrReceiver_2022-08-17
-rw-r--r--. 1 root root 1662 8์ 18 10:39 MbrReceiver_2022-08-18
-rw-r--r--. 1 root root 10794129 8์ 18 17:17 MbrReceiver_log
drwxrwxrwx. 3 mbd root 4096 8์ 17 16:29 logs
% ls -hl
-rw-r--r--. 1 root root 62G 8์ 17 19:29 MbrReceiver_2022-08-17
-rw-r--r--. 1 root root 1.7K 8์ 18 10:39 MbrReceiver_2022-08-18
-rw-r--r--. 1 root root 11M 8์ 18 17:19 MbrReceiver_log
drwxrwxrwx. 3 mbd root 4.0K 8์ 17 16:29 logs
- -al: byte ๋จ์๋ก ํ์ผ ํฌ๊ธฐ ํ์ธ ๊ฐ๋ฅํ๋ค.
- -h: human readableํ๊ฒ ํ์ธํ ์ ์๋ค.
03. cd
Change Directory์ ์ฝ์๋ก ์๋๊ฒฝ๋ก๋ก ์ง์ ํ๋ฉฐ ํ์ฌ ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ผ์ ์ฐพ์ผ๋ฉฐ, ์ ๋๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ฉด ์ ๋ ๊ฒฝ๋ก๋ก ์ด๋ํ ์ ์๋ค.
% cd build/
% cd ..
04. mkdir
MaKe DIRrctory์ ์ฝ์๋ก ์ ํด๋๋ฅผ ๋ง๋ค ์ ์๋ค. ๋จ, ๊ถํ์ ๊ฐ์ง๊ณ ์์ง ์๋ค๋ฉด ํด๋๋ฅผ ์์ฑํ ์ ์๋ค. -p์ต์ ์ ์ฃผ์ด ํน์ ์์น๊น์ง ์๋ ํด๋๋ฅผ ์๋์ผ๋ก ์์ฑ๊ฐ๋ฅํ๋ค.
% ls
CMakeLists.txt README.md build gtest include src
% mkdir choi
% ls
CMakeLists.txt README.md build choi gtest include src
% mkdir -p choi/seong/jun/
05. rmdir
ReMove DIRtory์ ์ฝ์๋ก ๋น ๋๋ ํฐ๋ฆฌ๋ฅผ ์ญ์ ํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด์ด๋ค. ์ญ์ ํ๋ ค๋ ๋๋ ํฐ๋ฆฌ๊ฐ ๋น์ด์์ง ์์ ๊ฒฝ์ฐ์๋ ์ญ์ ํ ์ ์์ผ๋ฉฐ, rm -rf ๋ช ๋ น์ด๋ก ์ญ์ ํ ์ ์๋ค.
% pwd
/Users/choiseongjun/choi/seong
% rmdir jun/
cd ../../
% rmdir choi/
rmdir: seong/: Directory not empty
% rm -rf choi/
06. lsblk
์ฌ์ฉ ๊ฐ๋ฅํ ๋ธ๋ก ์ฅ์น๋ฅผ ๋์ดํด์ผ ํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค. ๋ธ๋ก ์ฅ์น์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ํ๋ด๋ฉฐ ์ ๋ฌธ ์ฌ์ฉ์๊ฐ ๋ง์ด ์ฌ์ฉํ๋ค.
07. mount
Window์ ๋ฌ๋ฆฌ SD ์นด๋ ๋๋ USB๋ฅผ ์ฐ๊ฒฐํ ๋๋ง๋ค ๋ฐฐํฌํ์ด ์ฒ์์ ์ง์ ํ์๋์ง ์์ ๊ฐ๋ฅ์ฑ์ด ์๋ค. mount ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ์ฌ ๊ธฐ์กด ํ์ผ ์์คํ ์ผ๋ก ๋ง์ดํธ ํด์ผ ํ๋ค.
% mount
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk3s6 on /System/Volumes/VM (apfs, local, noexec, journaled, noatime, nobrowse)
/dev/disk3s2 on /System/Volumes/Preboot (apfs, local, journaled, nobrowse)
/dev/disk3s4 on /System/Volumes/Update (apfs, local, journaled, nobrowse)
/dev/disk1s2 on /System/Volumes/xarts (apfs, local, noexec, journaled, noatime, nobrowse)
/dev/disk1s1 on /System/Volumes/iSCPreboot (apfs, local, journaled, nobrowse)
/dev/disk1s3 on /System/Volumes/Hardware (apfs, local, journaled, nobrowse)
/dev/disk3s5 on /System/Volumes/Data (apfs, local, journaled, nobrowse, protect)
map auto_home on /System/Volumes/Data/home (autofs, automounted, nobrowse)
08. df
disk free์ ์ฝ์๋ก, ํ์ผ ์์คํ ์ ๋์คํฌ ๊ณต๊ฐ์ ๋ํ ํ์ ์ ๋ณด๋ฅผ ํ์ํ๋ค. ์์คํ ๊ด๋ฆฌ์๊ฐ ์ค์๊ฐ ์๋ฒ ๋๋ ๋คํธ์ํฌ ์งํฅ ์์คํ ์ ๋ชจ๋ํฐ๋งํ๊ณ ๋ถ์ํ๋ ๋ฐ ํ์ฉํ๋ค.
% df
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk3s1s1 478724992 43226360 62413584 41% 553788 2393071172 0% /
devfs 412 412 0 100% 714 0 100% /dev
/dev/disk3s6 478724992 10486128 62413584 15% 5 2393624955 0% /System/Volumes/VM
/dev/disk3s2 478724992 732128 62413584 2% 780 2393624180 0% /System/Volumes/Preboot
/dev/disk3s4 478724992 1207104 62413584 2% 213 2393624747 0% /System/Volumes/Update
/dev/disk1s2 1024000 12328 985960 2% 3 5119997 0% /System/Volumes/xarts
/dev/disk1s1 1024000 15208 985960 2% 28 5119972 0% /System/Volumes/iSCPreboot
/dev/disk1s3 1024000 784 985960 1% 33 5119967 0% /System/Volumes/Hardware
/dev/disk3s5 478724992 356840712 62413584 86% 1894527 2391730433 0% /System/Volumes/Data
map auto_home 0 0 0 100% 0 0 100% /System/Volumes/Data/home
- -h: human readableํ๊ฒ ๋ณผ ์ ์๋ค.
+ du
Disk Usage์ ์ฝ์๋ก, ๋ฆฌ๋ ์ค ๊ณ์ด ์๋ฒ์ ๋์คํฌ ์ฌ์ฉ๋ฅ ์ ํ์ํ๋ค.
% du -h /home/sjchoi
8.0K /home/sjchoi/.vscode
28K /home/sjchoi/.local/share/CMakeTools
28K /home/sjchoi/.local/share
28K /home/sjchoi/.local
9.2G /home/sjchoi
# ํ์ผ ์ฉ๋์์ผ๋ก ์ ๋ ฌ ํ human readableํ๊ฒ ๋ณด๊ธฐ
$ du -sh /* | sort -rh
- -s ์ต์ ์ผ๋ก ์ซ์๋ฅผ ์ซ์์ฐจ๋ผ ์ฝ๋๋ค.
- -h ์ต์ ์ผ๋ก human readableํ๊ฒ ๋ณผ ์ ์๋ค.
+ tree
tree ๋ ํด๋์ ํ์ ๊ตฌ์กฐ๋ฅผ ๊ณ์ธต์ ์ผ๋ก ํ์ํด ์ฃผ๋ ์ ํธ๋ฆฌํฐ๋ก ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ๋๋ต์ ์ผ๋ก ํ์ ํ ๋ ์ ์ฉํ๋ค.
$ tree -L 1 -d N /
/
|-- bin -> usr/bin
|-- boot
|-- dev
|-- etc
|-- home
|-- lib -> usr/lib
|-- opt
...
- -L(Level) ์ต์ ๋ค์ depth ๊ฐ์ ์ฃผ์ด ์ ํ์ ๋ ์ ์๋ค.
- -d ์ต์ ์ผ๋ก directory๋ง ํ์ธ ๊ฐ๋ฅํ๋ค.
- -N ์ต์
์ผ๋ก ํ๊ธ๋ช
ํด๋๋ ํ์ธ๊ฐ๋ฅํ๋ค.
- tree๋ ascii ๊ฐ ์๋ ๋ฌธ์๋ \332 ๊ฐ์ด 8์ง์๊ฐ ์ธ์ฝ๋ฉํด์ ํ์ํ๋ฏ๋ก ํ๊ธ์ด ๊นจ์ ธ ๋ณด์ธ๋ค.
+ pstree
pstree ๋ ํ๋ก์ธ์ค๋ฅผ ๊ณ์ธต์ ์ผ๋ก ํ์ํด ์ฃผ๋ ์ ํธ๋ฆฌํฐ๋ก ๋๋ต์ ์ผ๋ก ํ์ ํ ๋ ์ ์ฉํ๋ค.
$ pstree
systemdโโฌโModemManagerโโโ2*[{ModemManager}]
โโNetworkManagerโโโ2*[{NetworkManager}]
โโaccounts-daemonโโโ2*[{accounts-daemon}]
โโacpid
โโat-spi-bus-launโโฌโdbus-daemon
...
2. ์์คํ ์กฐ์์ ์ํ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
09. uname
์ด๋ฆ, ๋ฒ์ ๋ฐ ๊ธฐํ ์์คํ ํน์ ์ธ๋ถ ์ฌํญ๊ณผ ๊ฐ์ ์์คํ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํด ์ฌ์ฉํ๋ค. OS ๋ฐ ์ปค๋ ๋ฒ์ ์ ๋น ๋ฅด๊ฒ ํ์ธ ๊ฐ๋ฅํ๋ค.
% uname -a
Linux mbd-sym 5.15.0-48-generic #54~20.04.1-Ubuntu SMP Thu Sep 1 16:17:26 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
- [Linux] : ์ปค๋ ๋ช
- [mbd-sym] : ํธ์คํธ ๋ช
- [5.15.0-48-generic] : ์ปค๋ ๋ฆด๋ฆฌ์ฆ ์ ๋ณด
- [#54~20.04.1-Ubuntu SMP Thu Sep 1 16:17:26 UTC 2022] : ์ปค๋ ๋ฒ์
- [x86_64] : ๋จธ์ ํ๋์จ์ด ์ด๋ฆ
- [x86_64] : ํ๋ก์ธ์ ์ข ๋ฅ
- [x86_64] : ํ๋์จ์ด ํ๋ซํผ
- [GNU/Linux] : ์ด์์ฒด์
10. ps
ํ์ฌ ์์คํ ์์ ์คํ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์๊ฐํํ๋ค. ๋ฆฌ์์ค๋ฅผ ๋ถ์ํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํ๋ฉฐ, ํฐ๋ฏธ๋๋ก ๊ธฐ๋ณธ์ ์ธ ์์คํ ํ๋ก์ธ์ค๋ฅผ ์กฐ์ํ ์ ์๋ค.
% ps
PID TTY TIME CMD
32974 ttys000 0:00.07 /bin/zsh -l
816 ttys005 0:00.04 -zsh
827 ttys007 0:00.18 -zsh
3576 ttys008 0:00.04 /bin/zsh -l
5603 ttys010 0:00.43 -zsh
- -e ์ปค๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ธํ ๋ชจ๋ ํ๋ก์ธ์ค๋ฅผ ์ถ๋ ฅ
- -f ์ถ๋ ฅ์ ํ ํฌ๋งท์ผ๋ก ํ๊ธฐ (์ ๋์ค ์คํ์ผ) UID, PID , PPID ๋ฑ์ด ํจ๊ป ํ์
- -l (System V) ์ถ๋ ฅ์ ๊ธด ํฌ๋งท์ผ๋ก ํ๊ธฐ. ํ๋ก์ธ์ค์ ์ ๋ณด๋ฅผ ๊ธธ๊ฒ ๋ณด์ฌ์ฃผ๋ ์ต์ ์ผ๋ก ์ฐ์ ์์์ ๊ด๋ จ๋ PRI ๊ฐ๊ณผ NI ๊ฐ ํ์ธ.
11. kill
์์ ์ ํ์ผ๋ก ์ธํด ๋ฉ์ถ ํ๋ก์ธ์ค๋ฅผ ์ค์งํ๋ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ด๋ค.
$ kill -9 <PID>
- -l ์ต์ ์ผ๋ก kill ๋ช ๋ น์ ์ฌ์ฉ๊ฐ๋ฅํ signal์ ํ์ธํ ์ ์๋ค.
- -9 ์ต์ ์ผ๋ก ํน์ PID ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ์ข ๋ฃํ ์ ์๋ค.
12. service
- ์์คํ ์ ์ฒด ์๋น์ค๋ฅผ ํธ์ถํ๊ธฐ ์ํ ๋ช ๋ น์ด๋ค.
- ํฐ๋ฏธ๋ ์ฐฝ์์ ์ง์ System V init ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ธฐ ์ํด ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
13. batch
- ์์คํ ์๋น์ค๋ฅผ ์คํํ๋ ๋๊ตฌ์ด๋ค.
- ๋ํ, ์๋ํ ์ด ์คํฌ๋ฆฝํธ ์์ฑ์ ์ํ ๋ช ๋ น์ด ์ค ํ๋๋ก ์์ฐ์ฑ์ ํฅ์ํ ์ ์๋ค.
14. shutdown
- halt, init๊ณผ ํจ๊ป ์์คํ ์ ์ข ๋ฃํ๋ ๋ช ๋ น์ด ์ค ํ๋์ด๋ค.
- shutdown์ ํ์ฌ ์ ์ ์ค์ธ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์์คํ ์ด ์ข ๋ฅ ๋๋ค๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ์ ์๋ค.
- shutdown -h now๋ฅผ ์ฌ์ฉํ๋ฉด ์์คํ ์ ์ฆ์ ์ข ๋ฃํ ์ ์๋ค.
+ top
process๋ค์ ์๊ฐํํ๋ ์ ํต์ ์ธ ๋ช ๋ น์ผ๋ก ์์คํ ํ๋ก์ธ์ค๋ค์ CPU/Memory ์ ์ ์จ์ ์ค์๊ฐ์ผ๋ก ๋ณผ ์ ์๋ค.
% Cpu(s)
- [us] : ์ฌ์ฉ์๊ฐ ์ฌ์ฉ์ค์ธ ์ฌ์ฉ๋ฅ
- [sy] : ์์คํ ์ด ์ฌ์ฉ์ค์ธ ์ฌ์ฉ๋ฅ
- [ni] : ํ๋ก์ธ์ค ์ฐ์ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ๋๋ ์ฌ์ฉ๋ฅ (์ฌ์ฉ์ ๊ณต๊ฐ์์ ์ฌ์ฉ๋จ)
- [id] : ์๋ฌด ์ผ๋ ํ์ง ์๋ ์ฌ์ ๋ฅ
- [wa] : ์ ์ถ๋ ฅ์ ๊ธฐ๋ค๋ฆฌ๋ ํ๋ก์ธ์ค ์ฌ์ฉ๋ฅ
- [hi] : ํ๋์จ์ด ์ธํฐ๋ฝํธ ์ฌ์ฉ๋ฅ
- [si] : ์ํํธ์จ์ด ์ธํฐ๋ฝํธ ์ฌ์ฉ๋ฅ
- [st] : ๊ฐ์ํ ํ๊ฒฝ์์ ์์ค๋ฅ
PROCESS
- [PID] : ํ๋ก์ธ์ค ID
- [USER] : ํ๋ก์ธ์ค๋ฅผ ์คํ์ํจ ์ฌ์ฉ์ ID
- [PR] : ํ๋ก์ธ์ค์ ์ฐ์ ์์
- [NI] : NICE ๊ฐ, ๋ง์ด๋์ค๋ฅผ ๊ฐ์ง๋ ๊ฐ์ด ์ฐ์ ์์๊ฐ ๋์
- [VIRT] : ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ฉ๋(SWAP+RES)
- [RES] : ํ์ฌ ํ์ด์ง๊ฐ ์์ฃผํ๊ณ ์๋ ํฌ๊ธฐ
- [SHR] : ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ค ์ฌ์ฉ์ค์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ธํ ์์ฌ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ
- [S] : ํ๋ก์ธ์ค์ ์ํ
- [%CPU] : ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๋ CPU์ ์ฌ์ฉ๋ฅ
- [%MEM] : ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ฉ๋ฅ
- [TIME+] : ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ฌ์ฉํ ์๊ฐ
- [COMMAND] : ์คํ๋ ๋ช ๋ น์ด
+ htop
top ๋ช ๋ น์ ํฅ์๋ ๋ฒ์ (์ฌ์ฉ์ ์นํ์ )์ด๋ฉฐ, ๋ค์ํ ๋ฆฌ๋ ์ค ๋ฐฐํฌํ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ์ง ์์ ์ ์๊ธฐ์ ์ค์นํ์ฌ ์ฌ์ฉํด์ผ ํ๋ค.
- ์ํ/์์ง์ ์คํฌ๋กค์ด๊ฐ๋ฅํ๋ฉฐ ๋ง์ฐ์ค๋ฅผ ์ง์ํ๋ค.
- f5๋ฅผ ๋๋ฅด๋ฉด ํ๋ก์ธ์ค๋ค์ tree ๊ตฌ์กฐ๋ก ํ์ธํ ์ ์๋ค.
+ free: ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ํฐ๋ง
๋ฉ๋ชจ๋ฆฌ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. -t ์ต์ ์ผ๋ก Memory์ Swap์ ๋ํ ๊ฐ์ ์ด ํฉ์ ํ์ธํ ์ ์์ต๋๋ค.
- [MEM] : ์ค์ ๋ฉ๋ชจ๋ฆฌ
- [Swap] : ์ผ์ข ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ
- [Buffers] : ์ผ๋ถ ํ๋ก์ธ์ค์ ์ํด ๋ฐ์ํ ์์ ๋ฉ๋ชจ๋ฆฌ
- [Cached] : ๊ธฐ์กด์ ์คํ๋ ํ๋ก๊ทธ๋จ๋ค์ด ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ๋ก ์คํ ์ค์ด๊ฑฐ๋ ์๋ก ์์๋ ํ๋ก๊ทธ๋จ๋ค์ด ํ์ํ ๋ ๋น ๋ฅด๊ฒ ์ฌ ์ฌ์ฉํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
+ vmstat: ์์คํ ์ ๋ณด ๋ชจ๋ํฐ๋ง
์์คํ ์์ , ํ๋์จ์ด ๋ฐ ์์คํ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ, ํ์ด์ง, ๋ธ๋ก์ฅ์น์ I/O, CPU์ํ ๋ฑ์ ๋ณผ ์ ์์ผ๋ฉฐ, -s ์ต์ ์ ์ฃผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ํต๊ณ ํญ๋ชฉ๋ค์ ํ์ธํ ์ ์์ต๋๋ค.
procs
- [r] : CPU์์ ๋๊ธฐ์ค์ธ ํ๋ก์ธ์ค์ ์๋ฅผ ์๋ฏธํ๋ค. r์ ๊ฐ์๊ฐ CPU์ ๊ฐ์์ 2๋ฐฐ๋ฅผ ๋๋๋ค๋ฉด CPU์ ์ฑ๋ฅ์ ์ฌ๋ ค์ฃผ์ด์ผ ํฉ๋๋ค.
- [b] : ์ธํฐ๋ฝํธ๊ฐ ๋ถ๊ฐ๋ฅํ sleep ์ํ์ ์๋ ํ๋ก์ธ์ค์ ์ (I/O ์ฒ๋ฆฌ๋ฅผ ํ๋ ๋์ ๋ธ๋ก ์ฒ๋ฆฌ๋ ํ๋ก์ธ์ค)์ด๋ค. b์ ์์น๊ฐ ๋์ ๊ฒฝ์ฐ๋ผ๋ฉด CPU๊ฐ ๊ณ์ ๋๊ธฐ์ํ๋ก ์๋ค๋ ์๋ฏธ์ด๋ฏ๋ก ๋์คํฌ I/O๋ฅผ ํ์ธํด ๋ณผ ํ์๊ฐ ์์ต๋๋ค.
Swap(KB/s)
- [si(swap in)] : ๋์คํฌ swap ๊ณต๊ฐ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ๋ก ํธ์ถํ๋ ์์ ์๋ฏธํฉ๋๋ค. ์ฌ์ฉ๋๊ณ ์๋ swap ๋์คํฌ๊ฐ ํด์ ๋๋ ์(per sec)์ ๋๋ค.
- [so(swap out)] : ๋ฉ๋ชจ๋ฆฌ์์ ๋์คํฌ๋ก ๋ณด๋ด๋ ๋ฐ์ดํฐ์ ์์ ์๋ฏธํฉ๋๋ค. ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ ๋์คํฌ๋ก๋ถํฐ ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ ์(per sec)์ ๋๋ค. swap out์ด ์ง์์ ์ผ๋ก ๋ฐ์ํ๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ ์์ฌํด ๋ณผ ์ ์์ต๋๋ค. swap out๊ฐ์ด ์ฆ๊ฐํ๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๋ค๋ ์๋ฏธ์ด๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ ค์ผ ํฉ๋๋ค. Swap out๊ฐ์ 0์ ๊ฐ๊น์์ผ ์ข๊ณ ์ด๋น 10๋ธ๋ญ ์ดํ๊ฐ ์ข์ต๋๋ค. swapํ๋์ ๊ฐ์ด ๋๋ค๊ณ ํด๋ free ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ ๊ฐ ์๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๊ฒ์ ์๋๋๋ค.
+ iostat: CPU, ๋์คํฌ ์ ์ถ๋ ฅ ์ํ ๋ชจ๋ํฐ๋ง
ํ๊ท CPU๋ถํ ์ ๋์คํฌ I/O์ ์ธ๋ถ์ ์ธ ๋ด์ฉ์ ํ์ธ ํ ์ ์์ผ๋ฉฐ, -x ์ต์ ์ ์ฌ์ฉํ๋ฉด ๋ ์์ธํ ๋ด์ญ์ ๋ณผ ์ ์์ต๋๋ค.
- [tps] : ๋๋ฐ์ด์ค์ ์ด๋น ์ ์ก ์์ฒญ ๊ฑด์
- [kB_read/s] : ๋๋ฐ์ด์ค์์ ์ด๋น ์ฝ์ ๋ฐ์ดํฐ ๋ธ๋ก ๋จ์
- [kB_wrtn/s] : ๋๋ฐ์ด์ค์์ ์ด๋น ์ด ๋ฐ์ดํฐ ๋ธ๋ก ๋จ์
- [kB_read] : ๋๋ฐ์ด์ค์์ ์ง์ ํ ๊ฐ๊ฒฉ ๋์ ์ฝ์ ๋ธ๋ก ์
- [kB_wrtn] : ๋๋ฐ์ด์ค์์ ์ง์ ํ ๊ฐ๊ฒฉ ๋์ ์ด ์ ์ฒด ๋ธ๋ก ์
3. ํ์ผ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
15. touch
์ ํจํ ๋น ํ์ผ์ ์์ฑํ๊ธฐ ์ํ ๋ช ๋ น์ด์ด๋ค. ํฐ๋ฏธ๋ ์ด๋ ์ค์ ํ์ผ์ ์์ฑํ๊ณ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ํ์ผ์ ์ฑ์ธ ์ ์๋ค.
% touch choi.cpp
% ls
CMakeLists.txt build gtest src README.md choi.cpp include
16. cat
concatnate์ ์ฝ์๋ก ์ฌ๋ฌ ํ์ผ์ ์ฐ๊ฒฐํ๊ธฐ ์ํด ๊ณ ์๋์์ผ๋, ํฐ๋ฏธ๋์์ ํ์ผ ๋ด์ฉ์ ๋ณด๋ ๋ฐ ์ฌ์ฉํ๋ค. ๋ํ ํ์ผ ๋ด์ฉ ์ถ๋ ฅ์ ๋ค๋ฅธ ๋ช ๋ นํ ๋๊ตฌ๋ ํ์ผ๋ก ๋ฆฌ๋๋ ์ ํ๋ ๋ฐ ์ฌ์ฉํ๋ค.
% nano choi.cpp
seongjun
% cat choi.cpp
seongjun
17. head
์ง์ ํ์ผ ๋๋ ํ์ดํ ๋ ๋ฐ์ดํฐ์ ์์์ ๋ณผ ์ ์์ผ๋ฉฐ, ํ์ผ์ ์ฒซ ๋ฒ์งธ ํ์ ๊ธฐ์ค์ผ๋ก ์ง์ ํ ํ๊น์ง์ ํ์ผ ๋ด์ฉ ์ผ๋ถ๋ฅผ ์ถ๋ ฅํ๋ค. ๊ธฐ๋ณธ ๊ฐ์ผ๋ก ์ฒซ 10์ค์ ์ถ๋ ฅํด ์ค๋ค.
18. tail
ํ์ผ์ ๋ง์ง๋ง ํ์ ๊ธฐ์ค์ผ๋ก ์ง์ ํ ํ๊น์ง์ ํ์ผ ๋ด์ฉ ์ผ๋ถ๋ฅผ ์ถ๋ ฅํ๋ค. ๊ธฐ๋ณธ ๊ฐ์ผ๋ก ๋ง์ง๋ง 10์ค์ ์ถ๋ ฅํด ์ค๋ค.
$ tail -f /opt/logs/auditLog.txt
- -f <ํ์ผ๋ช >: ํด๋น ํ์ผ์ ์ค์๊ฐ ๋ณ๊ฒฝ์ฌํญ์ ๋ชจ๋ํฐ๋ง ํ ์ ์๋ค.
19. cp
copy์ ์ฝ์๋ก ์์คํ ์์ ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ํ ํด๋์์ ๋ค๋ฅธ ํด๋๋ก ๋ณต์ฌํ๋๋ก ์ง์ํ๋ค. ์ถ๊ฐ๋ก, scp๋ฅผ ์ด์ฉํ๋ฉด ssh ์๊ฒฉ ์ ์ ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ์๊ฒฉ์ง์ ์๋ ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ์กํ ์ ์๋ค.
% cp README.md include/
% ls
CMakeLists.txt README.md build gtest include src
% cd include
% ls
README.md crypto_types.hpp key_db.hpp runnable.hpp
ZoneDetect dir_man.hpp license.hpp
+ cp -R <dir>
๋ชจ๋ ํ์ผ ๋ฐ ์๋ธ๋๋ ํ ๋ฆฌ๋ฅผ ํฌํจํ์ฌ ํ๋์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ์ ๋ณต์ฌํ ์ ์๋ค.
$ cp -R ./checkpoints/* ./nerf/checkpoints/
20. mv
move์ ์ฝ์๋ก ํ๋ ๋๋ ์ฌ๋ฌ ํ์ผ์ ์์น๋ฅผ ๋ณ๊ฒฝํ๋ค. -f ์ต์ ์ ์ด์ฉํ์ฌ ํฐ ํ์ผ์ ์ ์กํ ์ ์๋ค.
% mv README.md include/
% ls
CMakeLists.txt build gtest include src
% cd include
% ls
README.md crypto_types.hpp key_db.hpp runnable.hpp
ZoneDetect dir_man.hpp license.hpp
21. comm
๋ ๊ฐ์ ํ์ผ์ ๊ณตํต ํ๊ณผ ๊ตฌ๋ณ๋๋ ํ์ผ๋ก ๋น๊ตํ ์ ์๋ค.
$ comm [์ต์
] [ํ์ผ 1] [ํ์ผ 2]
- -1: ๋ ๊ฐ๋ฅผ ๋น๊ตํ๋ ํ์ผ 1์๋ง ์๋ ๊ฒ์ ์ถ๋ ฅํ์ง ์์
- -2: ๋๊ฐ๋ฅผ ๋น๊ตํ๋ ํ์ผ 2์๋ง ์๋ ๊ฒ์ ์ถ๋ ฅํ์ง ์์
- -3: ๋๊ฐ๋ฅผ ๋น๊ตํ์ฌ ํ์ผ 1๊ณผ ํ์ผ 2์ ๋ชจ๋ ์กด์ฌํ๋ ๋ผ์ธ์ ์ถ๋ ฅํ์ง ์์
22. less
cat๊ณผ ๋ฌ๋ฆฌ ํฐ๋ฏธ๋ ์ธ์ ์ ๋ฐฉํดํ์ง ์์ผ๋ฉด์ ํ์ผ ๋ด์์ ์๋ฐฉํฅ์ผ๋ก ํ์ ๊ฐ๋ฅํ๋ค.
23. ln
๋์คํฌ ๊ณต๊ฐ์ ํน์ ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ์ ๋ํ ์ฌ๋ฒ๋ฆญ ๋งํฌ์ ์ฌ๋ฌ ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ ์๋ค.
24. cmp
๋ ํ์ผ์ ๋น๊ตํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ค ์ถ๋ ฅ ์คํธ๋ฆผ์ ์ธ์ํ๋ค.
+ diff
the difference between both the command is that 'cmp' is used to find the difference between files whereas 'diff' is used to find the difference between directories.
To check the differences between the data of two files cmp command is used. But it displays only the first difference.
Syn: $ cmp file1 file2
To display all the differences between the files diff command is used.
Syn: $ diff file1 file2
25. dd
ํ์ผ์ ํ ์ ํ์์ ๋ค๋ฅธ ์ ํ์ผ๋ก ๋ณต์ฌ ๋ฐ ๋ณํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ๋ถํ ์ด ๊ฐ๋ฅํ USB ์คํฑ์ ๋ง๋ค ๋ ์ข ์ข ์ฌ์ฉํ๋ค.
26. alias
ํ ๋ฌธ์์ด์ ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋จ์ด๋ฅผ ๋ฐ๊ฟ ์ ์๋ ๋ช ๋ น์ด์ด๋ค. ์์ ์ฌ์ฉ์ ์ ์ํ๊ณ ํ๊ฒฝ ๋ณ์๋ฅผ ์กฐ์ํ ์ ์๋ ์ต์์ ํฐ๋ฏธ๋ ๋ช ๋ น ์ค ํ๋์ด๋ค.
% alias ~='cd ~'
% ~
4. ์ง๋ฃจํ ๋ ํ์ํ ์ ์๋ ์ฌ๋ฏธ์๋ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
27. cal
calender์ ์ฝ์๋ก ๋ฌ๋ ฅ์ ASCII ํ ์คํธ ํ์์ผ๋ก ํ์ํ๋ ๊ธฐ๋ฅ์ด๋ค.
% cal
6์ 2022
์ผ ์ ํ ์ ๋ชฉ ๊ธ ํ
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
- ์ง์ ๋ ์ ๋ณด๋ฅผ ํฐ๋ฏธ๋์ ๋ฐ๋ก ๊ฐ์ ธ์ค๋ ค๋ฉด ์ ๋ฐ ์ฐ๋์ ๊ฐ์ ์ต์ ์ ์ถ๊ฐํ๋ฉด ๋๋ค.
28. fortune
๋งค๋ฒ ๋ค๋ฅธ ๋ ์ฐฝ์ ์ด๊ณ ์ด๋ฆฌ์์? ๊ตฌ์ ์ ๋ณด์ฌ์ค๋ค. sudo apt install fortune-mod๋ก ์ค์น ํ ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
$ fortune
Keep it short for pithy sake.
$ fortune
A visit to a strange place will bring fresh work.
29. history
ํฐ๋ฏธ๋ ์ธ์ ์ bash ๊ธฐ๋ก ํ์ธํ ์ ์๋ค.
$ history
1 man
2 man shutdown
3 ls
4 code
30. yes
์ฃผ์ด์ง ๋ฌธ์์ด์ Ctrl + Cํค๋ก ๋ฉ์ถ ๋๊น์ง ๊ณ์ ๋ฐ๋ณตํด์ ์ถ๋ ฅํ๋ค. CPU ๋ฑ ์์คํ ์ฑ๋ฅ ํ ์คํธ์ ํ์ฉํ ์ ์๋ค.
$ yes "string"
string
string
string^C
31. banner
์์ ๋ง์ ๋ง์ถค ๋ฐฐ๋๋ฅผ ๋ง๋ค ์ ์๋ ๋ช ๋ น์ด์ด๋ค.
32. rev
์ ๋ ฅ ํ ์คํธ๋ฅผ ๊ฐ์ ธ ์์ ๊ฐ ๋ฌธ์๋ฅผ ๋ฐ๋๋ก ํ์ค ์ถ๋ ฅํ๋ค.
5. ๋คํธ์ํฌ ๊ด๋ฆฌ์์๊ฒ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
33. wget
๋คํธ์ํฌ ๊ด๋ฆฌ์๊ฐ ํฐ๋ฏธ๋์์ ๋ฐ๋ก ์น์์ ํ์ผ์ ๋ค์ด๋ก๋ํ๋ ๋ฐ ํ์ฉ๊ฐ๋ฅํ๋ค. ์คํฌ๋ฆฝํธ๋ ํฌ๋ก ์์ ์ ์ฌ์ฉ๋ ์ ์๋ ์์ ์ค ํ๋๋ก, HTTP, HTTPS, FTP ์ธํฐ๋ท ํ๋กํ ์ฝ์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
34. iptables
์์คํ ๊ด๋ฆฌ์๊ฐ ํน์ ํธ์คํธ ์์คํ ์์ ๋ค์ด์ค๊ณ ๋๊ฐ๋ ์ธํฐ๋ท ํธ๋ํฝ์ ์ ์ดํ ์ ์๋ ํฐ๋ฏธ๋ ์ ํธ๋ฆฌํฐ๋ฅผ ํธ์ถํ๋ค. sysadmins๋ ์ ๊ธฐ ํธ๋ํฝ์ ์ ์ํ๊ณ ์์ฌ์ค๋ฝ๊ฑฐ๋ ์ ๋ขฐํ ์ ์๋ ๋คํธ์ํฌ ์์ฒญ์ ๋ธ๋๋ฆฌ์คํธ์ ์ฌ๋ฆฌ๋ ๋ฐ ์ฌ์ฉํ๋ ๋ช ๋ น์ด์ด๋ค.
35. traceroute
๋คํธ์ํฌ ํจํท์ด ํ ์์คํ ์์ ๋ค๋ฅธ ์์คํ ์ผ๋ก ์ด๋ํ๋ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ์ฌ๋ฌ ๊ฐ์ง ์ ํดํ ์นจ์ ์๋ก๋ถํฐ ์ปดํจํฐ๋ฅผ ๋ณดํธํ ์ ์๋ค.
36. cURL
๋คํธ์ํฌ๋ฅผ ํตํด ํ์ผ์ ์ ์กํ์ฌ ์๋ก์ด Linux ์์คํ ์ฌ์ฉ์๋ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค. ์ฌ์ฉ์ ๊ฐ์ ์์ด ์๋ํ๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ๋คํธ์ํฌ ๊ด๋ จ ์ ์คํฌ๋ฆฝํธ์ ์ฌ์ฉํ๋ค.
+ ifconfig
์์คํ ์ ์ค์ ๋ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ์ํ๋ฅผ ํ์ธ ๋ฐ ๋ณ๊ฒฝํ ์ ์๋ค.
- [eth0, eth1] : ํํ ๋ ์นด๋๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ ์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๋๋ค. eth0, eth1๊ฐ ๋ ์์ ๊ฒฝ์ฐ ๋ ์นด๋๊ฐ 2๊ฐ์๋ ๊ฒฝ์ฐ์ ๋๋ค.
- [lo] : ๋ฃจํ ๋ฐฑ ์ธํฐํ์ด์ค๋ก ์๊ธฐ์์ ๊ณผ ํต์ ํ๋๋ฐ ์ฌ์ฉํ๋ ๊ฐ์ ์ฅ์น์ ๋๋ค. IP๊ฐ 127.0.0.1 ์ ๋๋ค. IP์ฃผ์๋ ์๋ฒ์ ํ๋์ฉ ๋ถ์ฌ๋๋ ๊ฒ์ด ์๋๋ผ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ํ ๋น๋๊ธฐ ๋๋ฌธ์ ๊ฐ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ง๋ค ๋ค๋ฅธ IP์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- [HWaddr] : ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ํ๋์จ์ด ์ฃผ์(MAC Address)
- [inetaddr] : ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ํ ๋น๋ IP ์ฃผ์
- [Bcast] : ๋ธ๋ก๋์บ์คํธ ์ฃผ์
- [Mask] : ๋ท๋ง์คํฌ
- [MTU] : ๋คํธ์ํฌ ์ต๋ ์ ์ก ๋จ์(Maxium Transfer Unit)
- [RX packets] : ๋ฐ์ ํจํท ์ ๋ณด
- [TX packets] : ๋ณด๋ธ ํจํท ์ ๋ณด
- [collision] : ์ถฉ๋๋ ํจํท ์
- [Interrupt] : ๋คํธ์ํฌ ์ธํฐํ์ด์ค๊ฐ ์ฌ์ฉํ๋ ์ธํฐ๋ฝํธ ๋ฒํธ
- ์ถ๊ฐ๋ก, Ifconfig ๋ช
๋ น์ด๋ก๋ private ip๋ฐ์ ํ์ธ๋์ง ์์ต๋๋ค. ๊ณต์ธ ์์ดํผ(Public IP)๋ฅผ ์๊ณ ์ถ๋ค๋ฉด Curl์ ์ค์น ํ์ ํ์ธํ๋ฉด ๋ฉ๋๋ค.
- $ curl ifconfig.me
+ netstat
๋คํธ์ํฌ ์ ์, ๋ผ์ฐํ ํ ์ด๋ธ, ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ํต๊ณ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋๊ตฌ์ด๋ค.
netstat -natp | grep 8994
- option :
-l (listen) : ์ฐ๊ฒฐ ๊ฐ๋ฅํ ์ํ
-n (number port) : ํฌํธ ๋๋ฒ
-t (tcp) : tcp
-u (udp) : udp
-p : ํ๋ก๊ทธ๋จ ์ด๋ฆ / PID
-a : ๋ชจ๋
-i : ์ด๋๋ท ์นด๋๋ณ ์ ์/์๋ฌ/๋๋ ์ก์์ ํจํท ์ ํ์ธ
-r : ๋ผ์ฐํ ํ ์ด๋ธ
-s : ๋คํธ์ํฌ ํต๊ณ
+ ping
Paket Internet Groper์ ์ฝ์ด์ด๋ฉฐ, ์ปดํจํฐ ๋คํธ์ํฌ ์ํ๋ฅผ ์ ๊ฒ, ์ง๋จํ๋ ๋ช ๋ น์ด๋ค.
ping 127.0.0.1
- ํจํท(packet, ๋คํธ์ํฌ ์ต์ ์ ์ก๋จ์)์ ๋ณด๋ธํ(ICMP echo request) ๋์ ์ปดํจํฐ๊ฐ ์ด์ ๋ํด ์๋ตํ๋ ๋ฉ์์ง(ICMP echo reply)๋ฅผ ๋ณด๋ด๋ฉด ์ด๋ฅผ ์์ ํ์ฌ ๋ถ์ํ๋ค.
+ tcping
tcp ์๋น์ค์ ๋ํ ์๋ต ์ ๋ฌด๋ฅผ ์ฒดํฌํ ์ ์์ผ๋ฉฐ, ํฌํธ๊น์ง ํ์ฉํ์ฌ ํ์ธํ ์ ์๋ค.
tcping -t 192.168.0.1 8080
- ์์ ์์๋ 192.168.0.1 ip์ 8080/tcp ํฌํธ๊ฐ ์ด๋ ค์๋์ง๋ฅผ ํ์ธํ๋ค.
- ์ด๋ ค์์ ๊ฒฝ์ฐ, Port is Open์ด๋ผ๋ ์๋ต์ ์์ ํ๋ค.
- ๋ซํ์์ ๊ฒฝ์ฐ, No Response๋ผ๋ ์๋ต์ ์์ ํ๋ค.
- ์ถ๊ฐ๋ก, telnet <IP> <port>์ ์ด์ฉํด์๋ ํด๋น IP:Port๊ฐ ์ด๋ ค์๋์ง ํ์ธํ ์ ์๋ค.
+ arp
arp(Address Resolutioin Protocol)์ IP ์ฃผ์๋ฅผ MAC ์ฃผ์๋ก ํ์ด์ฃผ๋ ํ๋กํ ์ฝ๋ก ์์คํ ๋ผ๋ฆฌ ํต์ ํ๊ธฐ ์ํด์ ์๋๋ฐฉ์ MAC ์ฃผ์๋ฅผ ์๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฐ๊ฒฐํ๊ณ ์ ํ๋ ip์ ์ ํธ๋ฅผ ๋ณด๋ด์ MAC ์ฃผ์๋ฅผ ๋ฐ์์จ๋ค.
$ arp -an
? (172.31.0.2) at 02:42:ac:1f:00:02 [ether] on br-30b998c1d9fc
? (172.31.0.3) at 02:42:ac:1f:00:03 [ether] on br-30b998c1d9fc
? (172.19.0.70) at 02:42:ac:13:00:46 [ether] on br-c8c26b9ab3b8
? (192.168.16.1) at 00:10:f3:9c:c0:c8 [ether] on eno1
...
- -a: Use alternate BSD style output format (with no fixed columns).
- -e: Use default Linux style output format (with fixed columns).
- -d [host]: ์ง์ ํ ํธ์คํธ๋ฅผ ๋ชฉ๋ก์์ ์ญ์
- -s [host MAC address]: ํธ์คํธ์ MAC ์ฃผ์(ํ๋์จ์ด ์ฃผ์)๋ฅผ ์ถ๊ฐ
- -f [file name]: ํ์ผ์ ์๋ ๋ชฉ๋ก์ ์ถ๊ฐ
- -n: shows numerical addresses instead of trying to determine symbolic host, port or user names.
6. Linux ๋ช ๋ น์ด ๊ฒ์ ๋ฐ ์ ๊ท ํํ์
37. find
ํฐ๋ฏธ๋์์ ํ์ผ์ ๊ฒ์ํ๋๋ฐ ์ฌ์ฉํ๋ฉฐ ํ์ผ ๊ถํ, ์์ ๊ถ, ์์ ๋ ์ง, ํฌ๊ธฐ ๋ฑ๊ณผ ๊ฐ์ ํน์ ๊ธฐ์ค์ ๋ฐ๋ผ ํ์ผ์ ๊ฒ์ํ ์ ์๋ค.
38. which
๊ฒ์ํ๋ ค๋ ๋ชจ๋ ํ์ผ์ด ์คํํ์ผ์ธ ๊ฒฝ์ฐ ์ ์ฉํ๋ฉฐ ํน์ ๋งค๊ฐ ๋ณ์๋ฅผ ์ทจํ์ฌ $PATH ์์คํ ํ๊ฒฝ ๋ณ์์์ ์ด์ง ํ์ผ์ ํจ๊ณผ์ ์ผ๋ก ๊ฒ์ํ๋ค.
$ which python
/home/sjchoi/miniconda3/bin/python
39. locate
Linux์์ ํน์ ํ์ผ์ ์์น๋ฅผ ๋ชจ๋ฅผ ๋ ํ์ฉํ ์ ์๋ ๋ช ๋ น์ด์ด๋ฉฐ, sudo apt install mlocate๋ก ์ค์น ํ ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
40. grep
๋๋์ ํ ์คํธ ํ์ผ์์ ํจํด์ ๊ฒ์ํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด์ด๋ฉฐ, ์ฐพ๊ณ ์ ํ๋ ํจํด์ ์ ๋ ฅ๋ฐ์ ํน์ ํจํด์ ๋ํด ์ง์ ๋ ํ์ผ์ ๊ฒ์ํ๋ค. ๋ณดํต '|' ๋ค์ ๋ค์์ ๋ช ๋ น์ ์ฃผ์ด ํน์ ๋ช ๋ น ๋ด ๊ฒ์ํ ๋ ์ฌ์ฉํ๋ค.
$ ps -elf | grep Receiver
$ netstat -natp | grep 8080
41. sed
์ง์ ๋ ๋ถ๋ถ์ ๊ต์ฒดํ์ฌ ํ์ผ ๋๋ ์คํธ๋ฆผ์ ๊ฐ ์ค์ ์กฐ์ํ๋๋ฐ ์ฌ์ฉํ๋ค. ๋ง์ ์์ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ณ ์ด๋ ์ค์๋ ๋ณ๊ฒฝํด์ผํ๋ ์ฌ๋๋ค์ด ๋ง์ด ์ฌ์ฉํ๋ค.
7. I/O ๋ฐ ์์ ๊ถ์ ๋ค๋ฃจ๋ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
42. clear
ํฐ๋ฏธ๋ ํ๋ฉด์ ์ง์ฐ๋ ๋ฐ ์ฌ์ฉํ๋ค.
43. echo
ํฐ๋ฏธ๋ ์ฝ์์ ํน์ ํ ์คํธ๋ฅผ ์ถ๋ ฅํ๋ ๋ฐ ์ฌ์ฉํ๋ค. '>>' ์ ๊ฐ์ ํ์์ ์ด์ฉํ์ฌ ํน์ ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ธฐ ์ํด ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
echo "hello world" >> test.txt
44. sort
์ฌ์ ์ ๋๋ ์ญ์์ผ๋ก ํ์ผ์ ์ ๋ ฌํด์ผ ํ ๋๋ง๋ค ์ฌ์ฉ๊ฐ๋ฅํ๋ค. ๋ณดํต '|' ๋ค์ ๋ค์์ ๋ช ๋ น์ ์ฃผ์ด ํน์ ๋ช ๋ น ๋ด ๊ฒ์ํ ๋ ์ฌ์ฉํ๋ค.
$ du -sh ./* | sort -h
- -h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)
- -n, --numeric-sort compare according to string numerical value
45. sudo
super user์ ์ฝ์๋ก ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ ๋ฎ์ ์์ค์ ๊ถํ์ด ํ์ํ ํ์ผ์ ์ก์ธ์คํ๊ณ ์์ ํ ์ ์๋ค. ์ข ์ข ์ด ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ผ๋ฐ ์ฌ์ฉ์ ๊ณ์ ์์ ๋ฃจํธ์ ์ก์ธ์คํ ์ ์๋ค.
46. chmod
์์คํ ํ์ผ ๋๋ ๊ฐ์ฒด์ ์ก์ธ์ค ๊ถํ(r: read, w: write, x: execute)์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์์ ํ๋๋ฐ ์ฌ์ฉํ๋ค. ํน์ ์ฌ์ฉ์(u: Owner, g: Group, a: All users, o: Others)์ ๋ฐ๋ฅธ ํ์ผ ๊ถํ ๋ณ๊ฒฝ์ ๋ฐ๋ผ ๋ค์ํ ๋งค๊ฒ๋ณ์๋ฅผ ์ค ์ ์๋ค.
// Owner, Group, All user์ ๋ชจ๋ ๊ถํ์ ๋ถ์ฌ(7: 111(2), ์ฝ๊ธฐ ์ฐ๊ธฐ ์คํ ๊ถํ์ ๋ชจ๋ ๋ถ์ฌ)
chmod 777 python.py
// Group(g)์ ์ฐ๊ธฐ(w) ๊ถํ์ ๋ถ์ฌ
chmod g+w python.py
// Owner(o), Group(g)์ ์ฐ๊ธฐ(w) ๊ถํ์ ์ญ์
chmod og-w python.py
์ถ๊ฐ์ ์ธ ๊ถํ ๊ด๋ จ ๋ด์ฉ์ ์์ด์๋ [Linux] chmod ํ์ผ ๊ถํ ๋ฐ ํน์ ๊ถํ ์ค์ ์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
47. chown
chmod์ ์ ์ฌํ๋ฉฐ, ์ฌ์ฉ์๊ฐ ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ์ ์์ ์ฃผ๋ ๊ทธ๋ฃน์ ๋ณ๊ฒฝํ ์ ์๋ค. ๋ช ๋ น์ ์คํํ๊ณ ๋๋ฉด ํ์ผ์ ๋ํ ์ด์ ์์ ์ฃผ๋ ํด๋น ํ์ผ์ ์ด ๋ช ๋ น์ ๋ค์ ์คํํ ์ ์๋ค. chmod ๋๋ chown ๋ชจ๋ ๋ฃจํธ ๊ถํ์ด ํ์ํ๋ค.
+ umask
์์ผ๋ก ๋ง๋ค์ด์ง ํ์ผ์ ์ํฅ์ ๋ฏธ์น๋ ๋ช ๋ น์ผ๋ก ์ง์ ํ 8์ง์๋ ์๋ก ๋ง๋ค์ด์ง ํ์ผ์์ ์ ๊ฑฐ๋ ๊ถํ์ ๋ช ์
$ umask 111
$ touch test.txt
$ ll | grep test
-rw-rw-rw-. 1 sjchoi sjchoi 0 11์ 2 09:49 test.txt
8. ์ผ์์ ์ธ ์ฌ์ฉ์ ์ํ ๊ธฐํ ๋ช ๋ น์ด
48. man
man ๋ช ๋ น์ manual์ ๋ํ๋ด๋ฉฐ, ์ฌ์ฉ์๊ฐ ์ง์ ์ฌ์ฉํ ์ ์๋ ์ ์ฉํ Linux ๋ช ๋ น์ด๋ค. ์ด ๋ช ๋ น ๋ค์์ผ๋ก ๋ค๋ฅธ ๋ช ๋ น์ ๋ฃ์ผ๋ฉด, ํด๋น ๋ช ๋ น์ ๋งค๋ด์ผ ๋๋ ์ค๋ช ์ ํ์ด์ง๋ฅผ ๋์ดํ๋ค.
49. tar
ํ์ผ์ ์์นด์ด๋ธํ๊ณ ์ถ์ถํ๋๋ฐ ์ฌ์ฉ๋๋ฉฐ, ํ์ผ์ ์์ถํ๋๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ช ๋ น์ด๋ค.
# tar๋ก ์์ถํ๊ธฐ
$ tar -cvf [ํ์ผ๋ช
.tar] [ํด๋๋ช
]
# tar ์์ถ ํ๊ธฐ
$ tar -xvf [ํ์ผ๋ช
.tar]
# tar.gz๋ก ์์ถํ๊ธฐ
$ tar -zcvf [ํ์ผ๋ช
.tar.gz] [ํด๋๋ช
]
# tar.gz ์์ถ ํ๊ธฐ
$ tar -zxvf [ํ์ผ๋ช
.tar.gz]
50. whatis
์ฌ์ฉ์๊ฐ ์ ๊ณตํ ๊ฐ๋จํ ์ค๋ช ์ผ๋ก ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ธํธ๋ฅผ ์ํํ๋ฉฐ ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ช ๋ น๊ณผ ์ผ์นํ๋ ์์คํ ๋ช ๋ น์ ์ธ์ํ๋ค.
์ฐธ๊ณ
- linux command: https://www.xmind.app/m/WwtB/
- [Blog] ๋ฆฌ๋ ์ค ๋ช ๋ น์ด ๋ชจ์ BEST 50 ์ด๋ณด์ ๋ฐ ์ ๋ฌธ๊ฐ์ฉ: https://dora-guide.com/linux-commands/
- [Blog] ๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ ์์คํ ๋ชจ๋ํฐ๋งํ๊ธฐ: https://www.whatap.io/ko/blog/10/