[DevTools] ๊ฐ๋ฐ์ ์นํ์ ์ธ ํฐ๋ฏธ๋ LS — PLS
pls๋ ๊ฐ๋ฐ์ ์นํ์ ์ธ ๊ธฐ๋ฅ์ ๊ฐ์ง ์ด์๊ณ  ๊ฐ๋ ฅํ ํฐ๋ฏธ๋ ls ํด์ด๋ค. pls์์ p๋ ์๋ ์๋ฏธ๋ฅผ ํฌํจํ๋ค.
- Pretty (the output from 
plssurely looks better) - Powerful (
plshas lots of features and endless customisation) - Programmer (
plsis geared towards developers) - Professional (
plscan be extensively tweaked by the pros) - Python (
plsis written in Python!) 
์ฌ์ด ์ฌ์ฉ๋ฒ, ํด๋/ํ์ผ ์์ด์ฝ ํ์, ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ณ ํ์ผ๋ช
 ์์ ๊ตฌ๋ถ(*.js ํ์ผ ๋
ธ๋ฝ์์ผ๋ก ํ์ ๋ฑ), ์ค์ ํ์ผ์ ๊ตต๊ฒ ํน์ ๋ฐ์ค๋ก ํ์, ์ค์ํ์ง ์์ ํ์ผ์ ํ๋ฆฌ๊ฒ ํ์, Git status ํ์ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋ฌด์๋ณด๋ค ํ์ผ/ํด๋ ๋ชฉ๋ก์ ๋ ์ง๊ด์ ์ด๊ณ ์ด์๊ฒ ํ์ํ๋ ์ ์ด ๋ง์์ ๋ ๋ค. ์ถํ์ ํ์ ํด๋๋ฅผ ํธ๋ฆฌ ๋ชฉ๋ก์ผ๋ก ๋ณผ ์ ์๋ ๊ธฐ๋ฅ๋ ์ง์ํ๋ค๊ณ ํ๋ค(๋ค๋ฅธ ls ๋๊ตฌ์ธ lsd์์ ์ด๋ฏธ ์ง์ํ๊ณ ์๋ค)

์ค์น
pls๋ pip ํน์ pipx๋ก ์ค์นํ ์ ์๋ค. pip๋ก ์ค์นํ๋ฉด ๊ธ๋ก๋ฒ ๋ค์์คํ์ด์ค์ ์ฌ๋ฌ ํจํค์ง๊ฐ ์ค์น๋๊ธฐ ๋๋ฌธ์ ๊ณต์ ๋ฌธ์์์ pipx๋ก ์ค์นํ๋๊ฑธ ๊ถ์ฅํ๊ณ ์๋ค.
brew install pipx # pipx ์ค์น
pipx install pls # pls ์ค์น
pipx upgrade pls # pls ์
๋ฐ์ดํธ
pipx uninstall pls # pls ์ญ์ 
pls์์ ์์ด์ฝ์ ํ์ํ๊ธฐ ์ํด Nerd Font๋ฅผ ์ค์นํด์ผ ๋๋ค(์ฐธ๊ณ ๋ก lsd๋ Nerd Font๋ฅผ ์ฌ์ฉํ๋ค). brew๋ฅผ ์ฌ์ฉํ๋ค๋ฉด brew์ ํ์ฅ ๋ฒ์ ์ธ cask๋ฅผ ์ด์ฉํด ์ํ๋ ํฐํธ๋ฅผ ์ค์นํ ์ ์๋ค.
# (ํ์) cask-fonts ์ค์น
brew tap homebrew/cask-fonts
# (์ ํ1) Hack Nerd ํฐํธ (์ถ์ฒ)
brew install --cask font-hack-nerd-font 
# (์ ํ2) JetBrains Mono ํฐํธ (์ถ์ฒ)
brew install --cask font-jetbrains-mono-nerd-font 
# (์ ํ3) ๋ค๋ฅธ Nerd Font ์ค์น์ ์ผ๋ฐฅ ์ผ์ด์ค๋ก ํฐํธ ์ด๋ฆ ์
๋ ฅ
brew install --cask font-์ผ๋ฐฅ-์ผ์ด์ค-ํฐํธ-์ด๋ฆ-font
์ฌ์ฉ ๋ฐฉ๋ฒ
pls์์ ์ ๊ณตํ๋ ๋ช
๋ น์ด ํ๋๊ทธ ๋ชฉ๋ก์ pls -h๋ฅผ ์
๋ ฅํ๋ฉด ๋ณผ ์ ์๋ค. Importance, Sorting, Collapse ๋ฑ ๋ค์ํ ์ต์
์ ์ง์ํ๋ค. Nerd ์์ด์ฝ ๋์  ์ด๋ชจ์ง๋ฅผ ํ์ํ๊ฑฐ๋ ์์ ์๋ณด์ด๋๋ก ํ  ์๋ ์๋ค. ๊ฐ ํ๋๊ทธ์ ๋ํ ์์ธํ ์ค๋ช
์ ๊ณต์ ๋ฌธ์์์๋ ํ์ธํ  ์ ์๋๋ฐ, GitHub Readme๊ฐ ์๋ ๋ณ๋ ํ์ด์ง์์ ์ ๊ณตํ๋ค. ๊ฐ๋
์ฑ์ด ์ ๋ง ์ข๋ค ๐

Importance
์ค์๋ ๊ธฐ์ค(์๊ณ๊ฐ) ์ค์  / ๊ธฐ๋ณธ๊ฐ
0
pls -a 1 # ์ค์๋ ๊ธฐ์ค 1๋ก ์ค์ 
pls๋ ์ค์ ํ ์ค์๋๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ผ ํ์ ๋ฐฉ๋ฒ์ ์ด 5๋จ๊ณ๋ก ๋ถ๋ฅํ๋ค. ์จ๊น ํ์ผ์ ํ์ํ๊ณ  ์ถ๋ค๋ฉด ์ค์๋ ๊ธฐ์ค์ 1๋ก ์ค์ ํ๋ค. (์ค์๋ -2 ํ์ผ์ ์จ๊น → ํ๋ฆฌ๊ฒ, ์ค์๋ -1 ํ์ผ์ ํ๋ฆฌ๊ฒ → ์ผ๋ฐ ํ์ผ, …)
| Level (์๊ณ๊ฐ) | Significance (์ค์๋) | Appearance (ํ์ ๋ฐฉ์) | 
| -2 | Least important (๊ฐ์ฅ ๋ ์ค์) | |
| -1 | Lower importance (๋ ์ค์) | Dimmed (ํ๋ฆฌ๊ฒ ํ์) | 
| 0 | Neutral importance (์ผ๋ฐ) | Normal | 
| +1 | Higher importance (์ค์) | Bold | 
| +2 | Most important (๊ฐ์ฅ ์ค์) | Underline | 
๐ก ์ค์๋ ํ๋ณ ๊ธฐ์ค
- ํ์ผ ์ด๋ฆ์ 
.์จ์ ์ด ๋ค์ด๊ฐ๋์ง ์ฌ๋ถ - ์ฐ๊ฒฐ๋ ํ์ผ ์คํ(Spec)์ด ์๋์ง ์ฌ๋ถ
 
Collapse
ํน์  ํ์ผ์ ์ํด ์๋ ์์ฑ๋ ํ์ ํ์ผ(collapsed file)์ ์ด๋ป๊ฒ ํ์ํ ์ง ์ง์  / ๊ธฐ๋ณธ๊ฐ
0
pls -c 0 # collapse ๊ธฐ๋ฅ ํด์ (๊ธฐ๋ณธ๊ฐ)
pls -c 1 # collapsed file์ ๋ถ๋ชจ ํ์ผ ์๋์ชฝ์ ์ค์ฒฉ ๊ตฌ์กฐ๋ก ํ์
pls -c 2 # collapsed file ์จ๊ธฐ๊ธฐ

Details
์ด๋ค ์ธ๋ถ ํญ๋ชฉ์ ํ์ํ ์ง ์ง์  / ๊ธฐ๋ณธ๊ฐ
none
๐ก Git Status ํญ๋ชฉ์ Git Repo ํด๋ ์์์๋ง ํ์๋๋ค. ๋ํ ์์คํ ์ Git์ด ์ค์น๋์ด ์์ด์ผ ํ๋ค.
pls -d none # ์ธ๋ถ ํญ๋ชฉ ํ์ ์ํจ (๊ธฐ๋ณธ๊ฐ)
pls -d std # ํ์ค ์ธ๋ถ ํญ๋ชฉ ํ์ (ํ์
/๊ถํ/์ ์ /๊ทธ๋ฃน)
pls -d std -d mtime # ํ์ค ์ธ๋ถ ํญ๋ชฉ ๋ฐ ์์  ์๊ฐ ํ์
pls -d size -u decimal # ํ์ผ/ํด๋ ์ฌ์ด์ฆ๋ฅผ 10์ง์ ๋จ์๋ก ํ์
pls -d all # ๋ชจ๋  ์ธ๋ถ ํญ๋ชฉ ํ์
| Standard | Key | Meaning | Note | 
| inode | inode | ์๋์ฐ ๋ฏธ์ง์ | |
| links | ํด๋น ํ์ผ์ ๊ฐ๋ฆฌํค๋ Link ๊ฐ์ | ์๋์ฐ ๋ฏธ์ง์ | |
| โ | type | ํ์
 ๋ฌธ์์ด (l, d, -, p, s, c, b) | 
|
| โ | perms | Permissions | |
| โ | user | Owner user | ์๋์ฐ ๋ฏธ์ง์ | 
| โ | group | Owner group | ์๋์ฐ ๋ฏธ์ง์ | 
| size | Size | ||
| btime | Created at | macOS ์ ์ฉ | |
| ctime | Created/Changed at | ||
| mtime | Modified at | ||
| atime | Accessed at | ||
| git | Git status | Git ๋ ํฌ์งํ ๋ฆฌ ์์์๋ง ํ์ | 
yml ํ์ผ ์ค์ 
๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฉํ๊ณ  ์ถ์ pls ์ต์
์ .pls.yml ํ์ผ์ ๋ฏธ๋ฆฌ ์ง์ ํ  ์ ์๋ค. .pls.yml ํ์ผ์ ์ฌ์ฉ์ ํ ๋๋ ํ ๋ฆฌ(~)์ ๋ง๋ค๋ฉด ํ์ฌ ์ปดํจํฐ์ ๋ก๊ทธ์ธํ ์ ์  ๋ ๋ฒจ ๋จ์์ ์ ์ฉ๋๊ณ , ํน์  ํ๋ก์ ํธ ํด๋์ ๋ง๋ค๋ฉด ํ๋ก์ ํธ ๋จ์๋ก ์ ์ฉ๋๋ค.
โถ ์์ด์ฝ ๋ณ๊ฒฝ์ Nerd Font Cheat Sheet์์ ์ํ๋ ์์ด์ฝ์ Hex ๊ฐ์ ๋ณต์ฌํ ํ ์์ \u๋ฅผ ๋ถ์ฌ์ค๋ค. (e.g. f092 → \uf092)
- ํฐ๋ฏธ๋์ ์์ด์ฝ์ด ์ ํ์๋๋์ง ํ์ธํ๋ ค๋ฉด 
echo "\uf092"ํํ๋ก ์ ๋ ฅํด๋ณธ๋ค. - Material Design Icon(MDI) ์ฝ๋ ํฌ์ธํธ๊ฐ ์
๋ฐ์ดํธ ๋ผ์ 
nf-md-*nf-mdi-*ํด๋์ค ์ด๋ฆ์ ๊ฐ์ง ์์ด์ฝ์ ๊นจ์ ธ์ ๋์จ๋ค. ๊ธฐ๋ณธ๊ฐ ์์ด์ฝ์คnf-mdi-git๊ฐ์ ์์ด์ฝ์ ๋ค๋ฅธ๊ฑธ๋ก ๊ต์ฒดํด์ผ ํ๋ค. 
โท pls ์์ฒด์ ์ผ๋ก Schema validation์ ์ ๊ณตํ๊ณ  ์๋ค. ์ด๋ฅผ ์ด์ฉํ๋ฉด .pls.yml ํ์ผ ์์  ์ ์ค์๋ฅผ ๋ฐฉ์งํ  ์ ์๋ค. VSCode๋ฅผ ์ฌ์ฉํ๋ค๋ฉด YAML ๋ถ๊ฐ๊ธฐ๋ฅ์ ์ค์นํ๊ณ  VSCode ์ค์  ํ์ผ์ ์๋ ๋ด์ฉ์ ์ถ๊ฐํ๋ค.
{
  // VSCode - settings.json
  "yaml.schemas": {
    "https://raw.githubusercontent.com/dhruvkb/pls/main/src/pls/data/schema/pls_config.yml": [
      ".pls.yml"
    ]
  }
}

โธ xml, iml, log ํ์ฅ์์ฒ๋ผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ ๋ ์์ด์ฝ์ด ์๋ ํ์ผ์ ์ง์  ์ถ๊ฐํด์ผ ํ๋ค.
๐ก ์ด๋ค ์์ด์ฝ์ผ๋ก ์ง์ ํ ์ง ๊ณ ๋ฏผ๋๋ค๋ฉด lsd ์์ด์ฝ ๋งคํ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ๋ฉด ์ข๋ค.
โน ์ฌ๋ณผ๋ฆญ ๋งํฌ(symlink), ํด๋(dir), ์ผ๋ฐ ํ์ผ(file) ๋ฑ์ constants ํ๋กํผํฐ์์ ์ค์ ํ ์ ์๋ค.


Alias ์ค์ 
# ls๋ฅผ pls ํ๋ฌ๊ทธ์ธ์ผ๋ก ๋ฐ์ธ๋ฉ ๋ฐ ์จ๊น ํ์ผ ํ์ ์ํจ
alias ls="pls -a 0" 
# l์ pls ํ๋ฌ๊ทธ์ธ์ผ๋ก ๋ฐ์ธ๋ฉ ๋ฐ ๋ช
์ํ ์ธ๋ถ ํญ๋ชฉ ํ์(std/git/size/mtime/links)
alias l="pls -d std -d git -d size -d mtime -d links" 
# la๋ฅผ pls ํ๋ฌ๊ทธ์ธ์ผ๋ก ๋ฐ์ธ๋ฉ ๋ฐ ๋ชจ๋  ์ธ๋ถ ํญ๋ชฉ ํ์
alias la="pls -d all"'๐ช Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
- 
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
 - 
์นด์นด์คํก
์นด์นด์คํก
 - 
๋ผ์ธ
๋ผ์ธ
 - 
ํธ์ํฐ
ํธ์ํฐ
 - 
Facebook
Facebook
 - 
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
 - 
๋ฐด๋
๋ฐด๋
 - 
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
 - 
Pocket
Pocket
 - 
Evernote
Evernote
 
๋ค๋ฅธ ๊ธ
- 
[React] ๋ฆฌ์กํธ Render Props ํจํด 2๊ฐ์ง ์ฌ์ฉ ๋ฐฉ๋ฒ
[React] ๋ฆฌ์กํธ Render Props ํจํด 2๊ฐ์ง ์ฌ์ฉ ๋ฐฉ๋ฒ
2024.05.11 - 
[TS] ํ์ ์คํฌ๋ฆฝํธ ํ์ ๊ฐ๋ is / asserts ํค์๋ ์ฐจ์ด์ 
[TS] ํ์ ์คํฌ๋ฆฝํธ ํ์ ๊ฐ๋ is / asserts ํค์๋ ์ฐจ์ด์ 
2024.05.10 - 
[HTML/CSS] ํผ์นจ/์ ํ Transition ํจ๊ณผ์ ์์ ์จ๊น ๋ฐฉ์ ์ฐจ์ด์ 
[HTML/CSS] ํผ์นจ/์ ํ Transition ํจ๊ณผ์ ์์ ์จ๊น ๋ฐฉ์ ์ฐจ์ด์ 
2024.05.10 - 
[HTML/CSS] ๊ตฌ๊ธ ํฐํธ ์ฌ์ฉ ๋ฐฉ๋ฒ / CSS์์ ์นํฐํธ ์ฌ์ฉํ๊ธฐ
[HTML/CSS] ๊ตฌ๊ธ ํฐํธ ์ฌ์ฉ ๋ฐฉ๋ฒ / CSS์์ ์นํฐํธ ์ฌ์ฉํ๊ธฐ
2024.05.10