์ ๋์ค/๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ฅผ ๋์ฒดํ๋ ๋ชจ๋ ์ปค๋งจ๋๋ผ์ธ(Modern Unix/Linux Command line)
๊ฐ์
Unix/Linux ๋ CLI(command line interface)๋ ์ต์ํด์ง๊ธฐ ์ด๋ ต์ง๋ง ์ ํ์ฉํ๋ฉด ์์ฐ์ฑ์ด ๋์์ง๊ณ pipe ๋ฅผ ํ์ฉํ์ฌ ์ฌ๋ฌ ์ ํธ๋ฆฌํฐ๋ฅผ ์ฐ๊ฒฐํ๋ฉด ๋ฐ๋ณต ์์ ๋จ์ถ, ์๋ํ๋ ๊ฐ๋ฅํด์ง๋๋ค.
์ฌ๋ฌ ์ฅ์ ์ด ์์ง๋ง ์ ํต์ ์ธ ์ ๋์ค/๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ค์ ์์ฑ๋์ง 40๋ ์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ ํ์ฌ ์ปดํจํ ํ๊ฒฝ๊ณผ ๋ง์ง ์๊ณ ๋ฐฐ์ฐ๊ณ ์ตํ๋๋ฐ ์๊ฐ์ด ๋๋ฌด ๋ง์ด ๊ฑธ๋ฆฌ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์๋ก์ด ๋ช ๋ น์ด๋ค์ด ๋ง์ด ์์ฑ๋๊ณ ์ฌ์ฉ๋์ด์ง๊ณ ์์ง๋ง ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ฐฐํฌํ์ ๊ธฐ๋ณธ ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ๊ฐ ๋ง๊ณ ์๋ฃ๋ค๋ ์์ ๋ช ๋ น์ด๋ฅผ ์์ฃผ๋ก ๋์ด ์์ด์ ํน๋ณํ ์ ๊ฒฝ์ฐ์ง ์์ผ๋ฉด ์ ๊ทผ์ด ์ด๋ ต์ต๋๋ค.
๋ง์นจ github์ "modern unix" ๋ผ๋ ์ ์ฅ์์ ์ด๋ฐ ๋ช ๋ น์ด๋ฅผ ์ ๋ฆฌํด ๋์๊ธธ๋ ์ด๋ฅผ ์ฐธ๊ณ ํด์ ์์ ๋ช ๋ น์ด๋ฅผ ๋์ฒดํ๋ ์๋ก์ด ๋ช ๋ น์ด๋ฅผ ์๊ฐํด ๋ด ๋๋ค.
์ ์ฅ์๋ฅผ ๋ณด๋ ์ ๋ ๋ชจ๋ฅด๋ ๋ช ๋ น์ด๊ฐ ๋ง์ด ์๊ณ rust ๋ก ์์ฑํ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค๋ ๊ณตํต์ ์ด ์์ต๋๋ค.
์๋ก์ด ๋ช ๋ น์ด๋ ์ง๊ด์ ์ด๊ณ ์๋๋ ๋น ๋ฅด๊ณ ๊ผญ ํ์ํ ๊ธฐ๋ฅ๋ง ์ ๊ณตํด์ ์ตํ๊ธฐ ์ฌ์ด ๋ฑ ์ฌ๋ฌ๊ฐ์ง ์ฅ์ ์ด ์์ง๋ง ๋ฐฐํฌํ์ ๊ธฐ๋ณธ ํฌํจ๋์ง ์๋๋ค๋ฉด ๋๋ฆฌ ํ์ฐ๋๊ธฐ๋ ์ด๋ ค์ธ ๋ฏ ํฉ๋๋ค.
์ ๋ ์์ผ๋ก ๋๋๋ก์ด๋ฉด ls ๋์ exa ๋ฅผ find ๋์ fd ๋ฅผ ์ฌ์ฉํ๋ ๋ฑ ์๋ก์ด ๋ช ๋ น์ด๋ฅผ ์ฐ๋๋ก ๋ ธ๋ ฅํ ์์ ์ด์ง๋ง ์ ๊ฐ ๊ด๋ฆฌ ๊ฐ๋ฅํ ์๋ฒ๊ฐ ์๋๋ผ๋ฉด ์๋ก์ด ๋ช ๋ น ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ๊ธฐ์กด์ ์ฌ์ฉํ๋ ๋ช ๋ น์ด๋ค๋ ๋ฒ๋ฆด์๋ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์ง๋ง ์์ฃผ ์ฐ์ง ์๋๋ฐ ์ฌ์ฉ์ด ๋ณต์กํ ๋ช ๋ น์ด(์: sed ๋ awk ๋ก ํจํด ์ฒ๋ฆฌ๋ฑ) ๋ฑ์ ์ฌ์ฉ๋๋ง๋ค ๋งค๋ด์ผ์ ์ฐพ์๋ณด๊ฒ ๋๋ฏ๋ก ์ด๋ฐ ๊ฑด ์๋ก์ด ๋ช ๋ น์ด๋ฅผ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํ ์์ ์ ๋๋ค.
ํจํค์ง ๋ถ๋ฅ๋ ์ ๊ฐ ์์๋ก ํ์ต๋๋ค.
ํจํค์ง๋ฅผ ์ผ๊ด ์ค์นํ๋ ค๋ฉด rust ์ golang ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ์ค์นํ๊ณ ๋ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ฉด ๋ฉ๋๋ค.
wget https://raw.githubusercontent.com/lesstif/modern-linux-command-installer/main/modern-command-install.sh bash modern-command-install.sh
OSX ์์๋ brew ๋ก ์ค์นํ๋๊ฒ ํธ๋ฆฌํฉ๋๋ค.
echo "bat exa delta dust duf broot mcfly jq bottom procs gping httpie tldr" > modern-unix-cmd.txt brew install $(cat modern-unix-cmd.txt)
Core utils
GNU core utils ํจํค์ง์ ์๋ ๋ช ๋ น์ด๋ค์ ๋์ฒดํ๋ ์ปค๋งจ๋์ ๋๋ค.
cat → bat(๐ฆ)
bat ์ cat ์ ๋์ฒดํ๋ ๋ช ๋ น์ด
ls → exa
exa ๋ ์ฌ์ฉ์ด ์ฝ๊ณ ๋ ๋์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ls ๋์ฒด ๋ช ๋ น์ด.
ls → lsd
lsd ๋ ls ๋ฅผ ๋์ฒดํ๋ ์ปค๋งจ๋๋ก ์์ ์๋ exa ๋ฅผ ๋ ์ถ์ฒํฉ๋๋ค.
more/less/diff → delta
delta ์ปค๋งจ๋ ๋ pager ์ธ more/less ์ปค๋งจ๋ ์ ํ์ผ๊ฐ ์ฐจ์ด์ ์ ํ์ํ๋ diff ๋ฅผ ๋์ฒดํ๋ ๋ช ๋ น์ด์ ๋๋ค.
du → dust(๐ฝ)
dust(du + rust) ๋ du(disk usage) ๋ช ๋ น์ด ๋์ฒด
du → duf(๐ฝ)
duf ๋ df
๋ณด๋ค ๋ ๋์ ๋์ฒด์ .
๊ฒ์
tree(๐ฒ) → broot
tree ๋ช ๋ น์ ๋์ฒดํ๋ broot ์ ์ฅ์
find → fd(๐)
fd ๋ ๋น ๋ฅด๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ด find ๋ช ๋ น ๋์ฒด์
ack → ag
ack-grep ์ ๋์ฒดํ ์ ์๋ ๋น ๋ฅธ ์ฝ๋ ๊ฒ์ ๋๊ตฌ ag(silver searcher) ์ฐธ๊ณ
grep → ripgrep
grep ์ ๋์ฒดํ ์ ์๋ ๋น ๋ฅธ ๋ฌธ์์ด ๊ฒ์๊ธฐ - ripgrep ์ฐธ๊ณ
fzf
A general purpose command-line fuzzy finder.
text processing
history → mcfly
readline ์ history ๋ช ๋ น์ด๋ฅผ ๋์ฒดํ๋ mcfly ๋ช ๋ น์ด
cut, awk → choose
cut ๋ช ๋ น๊ณผ awk ๋ช ๋ น์ด ๋์ฒดํ๋ choose ์ ์ฅ์
sed → jq
json ๋ฐ์ดํ๋ฅผ sed ๋ก ์ฒ๋ฆฌํ์ง ๋ง๊ณ jq ๋ช ๋ น์ด ์ฌ์ฉ
sed → sd
sd๋ ์ฐพ๊ธฐ/๋ฐ๊พธ๊ธฐ์ sed ๋์ ์ฌ์ฉํ ์ ์๋ ์ง๊ด์ ์ธ ๋ช ๋ น์ด
Process & System
bottom
bottom์ process ๋ system ๋ชจ๋ํฐ๋ง ๋๊ตฌ
glances
glances์ top/htop ์ ๋์ฒด์
gtop
gtop์ ํฐ๋ฏธ๋์ฉ ์์คํ ๋ชจ๋ํฐ๋ง ๋๊ตฌ
time → hyperfine
hyperfine์ ์ปค๋งจ๋๋ผ์ธ์์ ๋ช ๋ น์ด์ ์ฑ๋ฅ์ ์ธก์ ํ ์ ์๋ ๋๊ตฌ.
ps→ procs
procs์ ํ๋ก์ธ์ค ์ํ๋ฅผ ๋ณด๋ /wiki/spaces/LPT/pages/887554398 ๋ช ๋ น์ด์ ๋์ฒด์
Network
ping→ gping
gping์ ์๋ ํธ์คํธ๊ฐ ์ด์์๋์ง ICMP ํจํท์ ๋ณด๋ผ์ ์๋ ๋ช ๋ น์ด๋ก graph ์ ๊ณต
dig → dog(๐)
dog ๋ ์ฌ์ฉํ๊ธฐ ์ฌ์ด dig ๋์ฒด์
curl → httpie
httpie ๋ curl์ฒ๋ผ ์ปค๋งจ๋์์ HTTP ์์ฒญ์ ์ํํ ์ ์๋ ๋ช ๋ น์ด
curl → curlie
curlie ๋ httpie ๋ ์ข์ง๋ง curl ์ ์๋ ๊ธฐ๋ฅ๋๋ฌธ์ ๊บผ๋ ค์ง๋ ์ฌ์ฉ์๋ฅผ ์ํ curl wrppaer๋ก httpie ์ ์ ์ฌํ ์ฌ์ฉ๋ฒ ์ ๊ณต
xh
xh ๋ ์ฑ๋ฅ์ ์ง์คํ HTTP ์์ฒญ์ ๋ณด๋ด๋ ๋๊ตฌ๋ก httpie ์ ์ข์ ๋์์ธ์ ์ฐธ๊ณ
๊ทธ์ธ
cheat
cheat๋ ๋ํํ์ผ๋ก cheat sheet ๋ฅผ ๋ง๋ค์ ์๋ ๋ช ๋ น์ด
tldr
tldr์ man ์ ๋ณด์์ฌ๋ก ๋ช ๋ น์ด๋ค์ ์ฃผ์ ์ฌ์ฉ๋ฒ์ ๊ฐ๋ตํ๊ฒ ์ ๊ณต
cd ->zoxide
zoxide ๋ cd ๋์ฒด์