# ๐Ÿ“ [macOS / Linux] 1. ํ„ฐ๋ฏธ๋„ ๊ด€๋ฆฌ & ํŒŒ์ผ ์œ ํ‹ธ๋ฆฌํ‹ฐ [โฌ…๏ธ ๋ฉ”์ธ README๋กœ ๋Œ์•„๊ฐ€๊ธฐ](../README.md) | [๐Ÿ’ป Windows ๊ฐ€์ด๋“œ ๋ณด๊ธฐ](./WIN-01-TERMINAL-FILE.md) --- ## โšก ๋น ๋ฅธ ์›ํด๋ฆญ ์„ค์น˜ (Bash) ```bash # 1.1. tmux (ํ„ฐ๋ฏธ๋„ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์„œ + ์ปค์Šคํ…€ .tmux.conf) curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-tmux.sh?ref_type=heads" | bash # 1.2. rmux (Rust ๊ธฐ๋ฐ˜ ์ฐจ์„ธ๋Œ€ ํ„ฐ๋ฏธ๋„ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์„œ) curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-rmux.sh?ref_type=heads" | bash # 1.3. Helix (๋ชจ๋‹ฌ ํ„ฐ๋ฏธ๋„ ํ…์ŠคํŠธ ์—๋””ํ„ฐ + ๋Ÿฐํƒ€์ž„) curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-helix.sh?ref_type=heads" | bash # 1.4. superfile (ํ„ฐ๋ฏธ๋„ ๊ธฐ๋ฐ˜ ๋“€์–ผ ํŒจ๋„ ํŒŒ์ผ ๊ด€๋ฆฌ์ž) curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-superfile.sh?ref_type=heads" | bash # 1.5. dua (์ดˆ๊ณ ์† ๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰ ๋ถ„์„๊ธฐ) curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-dua.sh?ref_type=heads" | bash ``` --- ## ๐Ÿ“– ๋„๊ตฌ๋ณ„ ์ƒ์„ธ ์‚ฌ์šฉ๋ฒ• ๋ฐ ๋‹จ์ถ•ํ‚ค ### 1.1. [tmux](https://github.com/tmux/tmux) ํ„ฐ๋ฏธ๋„ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์„œ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ„ฐ๋ฏธ๋„ ์ฐฝ ๋‚ด์—์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์„ธ์…˜์„ ์œ ์ง€ํ•˜๊ณ  ์ž์œ ๋กญ๊ฒŒ ๋ถ„ํ• (ํŒจ๋„)ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * **์„ค์น˜ ๋ช…๋ น:** ```bash curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-tmux.sh?ref_type=heads" | bash ``` * **์ฃผ์š” ํŠน์ง•:** * **์„ธ์…˜ ๊ด€๋ฆฌ** โ€” ์„ธ์…˜์„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ๋ณด์กด ๋ฐ ํ•„์š” ์‹œ ์žฌ์ ‘์† * **ํ™”๋ฉด ๋ถ„ํ• ** โ€” ํ„ฐ๋ฏธ๋„ ํ™”๋ฉด ์ˆ˜ํ‰/์ˆ˜์ง ๋ถ„ํ•  ๋ฐ ๋™์‹œ ์ž‘์—… * **Vim ์Šคํƒ€์ผ ์กฐ์ž‘** โ€” h/j/k/l ๋ฐฉํ–ฅํ‚ค๋ฅผ ํ†ตํ•ด ์ง๊ด€์ ์œผ๋กœ ํŒจ๋„ ์ด๋™ ๊ฐ€๋Šฅ ```bash tmux # ์ƒˆ ์„ธ์…˜ ๊ฐ€๋™ tmux new -s # ์ด๋ฆ„ ์ง€์ • ์„ธ์…˜ ์‹œ์ž‘ tmux attach -t # ํŠน์ • ์„ธ์…˜ ๋‹ค์‹œ ์—ฐ๊ฒฐ tmux ls # ๊ฐ€๋™ ์ค‘์ธ ์„ธ์…˜ ๋ชฉ๋ก ๋ณด๊ธฐ ``` | ๋‹จ์ถ•ํ‚ค | ๋™์ž‘ | | :--- | :--- | | `Ctrl-a` | Prefix key (๊ธฐ๋ณธ ๋‹จ์ถ•ํ‚ค Ctrl-b์—์„œ ๋ณ€๊ฒฝ๋จ) | | `Prefix \|` | ํ™”๋ฉด ์ˆ˜ํ‰(์ขŒ์šฐ) ๋ถ„ํ•  | | `Prefix -` | ํ™”๋ฉด ์ˆ˜์ง(์œ„์•„๋ž˜) ๋ถ„ํ•  | | `Prefix h/j/k/l` | ํŒจ๋„ ๊ฐ„ ์ด๋™ (Vim ์Šคํƒ€์ผ) | | `Prefix r` | `.tmux.conf` ์„ค์ • ํŒŒ์ผ ์ฆ‰์‹œ ๋ฆฌ๋กœ๋“œ | | `Prefix Space` | ํ™œ์„ฑํ™”๋œ ํŒจ๋„ ๋ ˆ์ด์•„์›ƒ ๋ณ€๊ฒฝ | | `Prefix o` | ํ™œ์„ฑํ™”๋œ ํŒจ๋„ ํšŒ์ „ ์ „ํ™˜ | | `Prefix ,` | ํ˜„์žฌ ์ฐฝ์˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ | | `Prefix &` | ํ˜„์žฌ ํ™œ์„ฑํ™”๋œ ์ฐฝ ์™„์ „ํžˆ ๋‹ซ๊ธฐ | > ๐Ÿ’ก `install-tmux.sh` ์Šคํฌ๋ฆฝํŠธ๋Š” ์ตœ์ ํ™”๋œ ์ปค์Šคํ…€ `.tmux.conf` ํŒŒ์ผ์„ ์‚ฌ์šฉ์ž ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. (๊ธฐ์กด ์„ค์ • ํŒŒ์ผ์ด ์žˆ๋‹ค๋ฉด `.tmux.conf.bak.*`๋กœ ์ž๋™ ๋ฐฑ์—…๋ฉ๋‹ˆ๋‹ค.) --- ### 1.2. [rmux](https://rmux.io) tmux์˜ ๊ฐ•๋ ฅํ•˜๊ณ  ํ˜„๋Œ€์ ์ธ ๋Œ€์•ˆ์œผ๋กœ ์„ค๊ณ„๋œ Rust ๊ธฐ๋ฐ˜ ํ„ฐ๋ฏธ๋„ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์„œ์ž…๋‹ˆ๋‹ค. ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ฐ๋ชฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‰˜ ์„ธ์…˜์„ ์ง€์†์ ์œผ๋กœ ์œ ์ง€ํ•˜๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ„ฐ๋ฏธ๋„์„ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์…ฐ์–ด(Web Share) ๊ธฐ๋Šฅ๊ณผ ์ „์šฉ Rust SDK๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. * **์„ค์น˜ ๋ช…๋ น:** ```bash curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-rmux.sh?ref_type=heads" | bash ``` * **์ฃผ์š” ํŠน์ง•:** * **tmux ํ˜ธํ™˜์„ฑ** โ€” ๊ธฐ์กด tmux ๋ช…๋ น์–ด ์ฒด๊ณ„๋ฅผ ์ƒ๋‹น ๋ถ€๋ถ„ ๊ทธ๋Œ€๋กœ ์ง€์›ํ•˜์—ฌ ์™„๋ฒฝํ•˜๊ฒŒ ํ˜ธํ™˜ ์ž‘๋™ * **Rust ๊ธฐ๋ฐ˜ ๊ณ ์„ฑ๋Šฅ** โ€” ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๋ฉฐ Rust ๊ธฐ๋ฐ˜์œผ๋กœ ์˜ค๋™์ž‘์ด ๊ทนํžˆ ์ ์Œ * **์›น ์…ฐ์–ด ๊ธฐ๋Šฅ ๋‚ด์žฅ** โ€” ์ถ”๊ฐ€์ ์ธ ํˆด ์„ค์น˜ ์—†์ด ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์„ ๋ธŒ๋ผ์šฐ์ €์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ณต์œ  ๊ฐ€๋Šฅ ```bash rmux # ์ƒˆ ์„ธ์…˜ ๊ฐ€๋™ rmux attach # ๋งˆ์ง€๋ง‰ ์„ธ์…˜ ๋‹ค์‹œ ์—ฐ๊ฒฐ rmux list-sessions # ์„ธ์…˜ ๋ชฉ๋ก ๋ณด๊ธฐ ``` | ๋‹จ์ถ•ํ‚ค | ๋™์ž‘ | | :--- | :--- | | `Ctrl-b` | Prefix key (๊ธฐ๋ณธ๊ฐ’) | | `Prefix %` | ํ™”๋ฉด ์ˆ˜ํ‰(์ขŒ์šฐ) ๋ถ„ํ•  | | `Prefix "` | ํ™”๋ฉด ์ˆ˜์ง(์œ„์•„๋ž˜) ๋ถ„ํ•  | | `Prefix d` | ํ˜„์žฌ ์„ธ์…˜์—์„œ ์ดํƒˆ (Detach) | | `Prefix o` | ๋‹ค์Œ ํŒจ๋„๋กœ ํฌ์ปค์Šค ์ด๋™ | | `Prefix x` | ํ˜„์žฌ ํ™œ์„ฑํ™”๋œ ํŒจ๋„ ์™„์ „ํžˆ ๋‹ซ๊ธฐ | --- ### 1.3. [Helix](https://github.com/helix-editor/helix) ํ„ฐ๋ฏธ๋„ ํ™˜๊ฒฝ์—์„œ ํ˜„๋Œ€์ ์ธ ์‚ฌ์šฉ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋‹ฌ(Modal) ํ…์ŠคํŠธ ์—๋””ํ„ฐ์ž…๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ • ์—†์ด๋„ LSP(Language Server Protocol), ๊ตฌ๋ฌธ ํŠธ๋ฆฌ ํŒŒ์„œ(Tree-sitter) ๋ฐ ์ˆ˜๋ คํ•œ ๋””์ž์ธ ํ…Œ๋งˆ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. * **์„ค์น˜ ๋ช…๋ น:** ```bash curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-helix.sh?ref_type=heads" | bash ``` * **์ฃผ์š” ํŠน์ง•:** * **LSP ๊ธฐ๋ณธ ๋‚ด์žฅ** โ€” ์ž๋™ ์™„์„ฑ, ์ •์˜ ์ด๋™, ํƒ€์ž… ํžŒํŠธ ๋“ฑ IDE๊ธ‰ ๊ฐœ๋ฐœ ์ง€์› * **Tree-sitter ๊ตฌ๋ฌธ ๋ถ„์„** โ€” ์‹ค์‹œ๊ฐ„ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ†ตํ•œ ์™„๋ฒฝํ•œ ์ƒ‰์ƒ ํ•˜์ด๋ผ์ดํŒ… ๋ฐ ์Šค๋งˆํŠธ ์˜์—ญ ํƒ์ƒ‰ * **๋ชจ๋‹ฌ ํŽธ์ง‘ ๋ชจ๋“œ** โ€” Vim๊ณผ ์œ ์‚ฌํ•˜๋ฉด์„œ๋„ ๋” ํ˜„๋Œ€์ ์ธ ๋‹ค์ค‘ ์ปค์„œ ๋ฐ ํ…์ŠคํŠธ ๊ฐ์ฒด ํŽธ์ง‘ ์ง€์› ```bash hx # ์‹คํ–‰ ๋ช…๋ น์–ด ``` | ๋‹จ์ถ•ํ‚ค | ๋™์ž‘ | | :--- | :--- | | `i` | Insert ๋ชจ๋“œ ์ง„์ž… | | `Esc` | Normal ๋ชจ๋“œ ๋ณต๊ท€ | | `d` | ํ˜„์žฌ ์„ ํƒ ์˜์—ญ ์‚ญ์ œ (์ง€์šฐ๊ธฐ) | | `y` | ํ˜„์žฌ ์„ ํƒ ์˜์—ญ ๋ณต์‚ฌ (Yank) | | `p` | ๋ณต์‚ฌํ•œ ํ…์ŠคํŠธ ๋ถ™์—ฌ๋„ฃ๊ธฐ (Paste) | | `w` / `b` | ๋‹ค์Œ ๋‹จ์–ด / ์ด์ „ ๋‹จ์–ด๋กœ ์ด๋™ | | `u` / `U` | ์ž‘์—… ์ทจ์†Œ (Undo) / ๋‹ค์‹œ ์‹คํ–‰ (Redo) | | `Space f` | ์ „์—ญ ํŒŒ์ผ ์ฐพ๊ธฐ (File picker) | | `Space /` | ํ˜„์žฌ ๋ฒ„ํผ ์ „์—ญ ๊ฒ€์ƒ‰ | | `:w` / `:q` | ํŒŒ์ผ ์ €์žฅ / ์—๋””ํ„ฐ ์ข…๋ฃŒ | > ๐Ÿ’ก **์„ค์น˜ ๊ตฌ์„ฑ ํŒ:** `install-helix.sh`๋Š” ์‹คํ–‰ ๋ฐ”์ด๋„ˆ๋ฆฌ(`~/.local/bin/hx`)๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์–ธ์–ด๋ณ„ ๊ตฌ๋ฌธ ๋ฐ ํ…Œ๋งˆ ํŒŒ์ผ์ด ๋ชจ์ธ ๋Ÿฐํƒ€์ž„ ํด๋”๋ฅผ `~/.config/helix/runtime` ๊ฒฝ๋กœ์— ์ž๋™ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. --- ### 1.4. [superfile](https://github.com/yorukot/superfile) ์ˆ˜๋ คํ•˜๊ณ  ๋ฏธ๋ คํ•œ ๋””์ž์ธ์„ ์„ ์‚ฌํ•˜๋Š” ๊ณ ๊ธฐ๋Šฅ ํ„ฐ๋ฏธ๋„ ํŒŒ์ผ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค. * **์„ค์น˜ ๋ช…๋ น:** ```bash curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-superfile.sh?ref_type=heads" | bash ``` * **์ฃผ์š” ํŠน์ง•:** * **๋“€์–ผ ํŒจ๋„** โ€” ๋Œ€์นญํ˜• ๋ ˆ์ด์•„์›ƒ์œผ๋กœ ์ง๊ด€์ ์ธ ๋””๋ ‰ํ† ๋ฆฌ ๊ฐ„ ํŒŒ์ผ ์กฐ์ž‘ * **Vim ํ‚ค๋ฐ”์ธ๋”ฉ** โ€” h/j/k/l ํƒ์ƒ‰ ํ‚ค ๋ฐ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ ์ง๊ด€์  ์กฐ์ž‘ * **์‹œ๊ฐ์  ๋ฏธ๋ฆฌ๋ณด๊ธฐ** โ€” ํŒŒ์ผ์˜ ์ฝ”๋“œ ํ•˜์ด๋ผ์ดํŒ… ๋ฐ ํ…์ŠคํŠธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํƒ‘์žฌ ```bash spf # ์‹คํ–‰ ๋ช…๋ น์–ด (superfile์ด ์•„๋‹Œ spf๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค) ``` | ๋‹จ์ถ•ํ‚ค | ๋™์ž‘ | | :--- | :--- | | `q` | ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ | | `h` `j` `k` `l` | ์ขŒ / ํ•˜ / ์ƒ / ์šฐ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™ | | `Enter` | ๋””๋ ‰ํ† ๋ฆฌ ์ง„์ž… ๋ฐ ๋Œ€์ƒ ํŒŒ์ผ ์—ด๊ธฐ | | `y` | Yank (ํด๋ฆฝ๋ณด๋“œ์— ํŒŒ์ผ ๋ณต์‚ฌ) | | `d` | Delete (๋Œ€์ƒ ํŒŒ์ผ ์‚ญ์ œ) | | `r` | Rename (์ด๋ฆ„ ๋ณ€๊ฒฝ) | | `/` | ์‹ค์‹œ๊ฐ„ ๋น ๋ฅธ ๊ฒ€์ƒ‰ | | `Tab` | ๋“€์–ผ ํŒจ๋„ ํฌ์ปค์Šค ์Šค์™‘ | > ๐Ÿ’ก **์ค‘์š”:** ํ„ฐ๋ฏธ๋„ ์•„์ด์ฝ˜์ด ๊นจ์ ธ ๋ณด์ผ ๊ฒฝ์šฐ ํ„ฐ๋ฏธ๋„ ํฐํŠธ๋ฅผ **Nerd Font** ๊ณ„์—ด๋กœ ์„ค์ •ํ•ด ์ฃผ์„ธ์š”. > ๐Ÿ’ก **macOS iTerm2 ํ•œ๊ธ€ ๊นจ์ง ํŒ:** `Settings` > `Profile` > `Text` > `Normalization`์—์„œ **NFC** ์˜ต์…˜์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์ •์ƒ ํ‘œ๊ธฐ๋ฉ๋‹ˆ๋‹ค. --- ### 1.5. [dua](https://github.com/byron/dua-cli) SSD์™€ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์„ ์ตœ๋Œ€๋กœ ํ™œ์šฉํ•˜์—ฌ ์œ ์‹ค๋œ ์šฉ๋Ÿ‰์„ ์ถ”์ ํ•˜๋Š” ๋ณ‘๋ ฌ ์Šค์บ” ๋ฐฉ์‹์˜ ์ดˆ๊ณ ์† ๋””์Šคํฌ ๋ถ„์„ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. * **์„ค์น˜ ๋ช…๋ น:** ```bash curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-dua.sh?ref_type=heads" | bash ``` ```bash dua # ํ˜„์žฌ ์œ„์น˜ ์‚ฌ์šฉ๋Ÿ‰ ๊ฒ€์‚ฌ dua /path/to/dir # ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ ์ง€์ • ๊ฒ€์‚ฌ dua i # ๋Œ€ํ™”ํ˜•(Interactive) TUI ๋ชจ๋“œ ๊ตฌ๋™ ``` | ๋‹จ์ถ•ํ‚ค | ๋™์ž‘ | | :--- | :--- | | `โ†‘` `โ†“` ๋˜๋Š” `j` `k` | ๋””๋ ‰ํ† ๋ฆฌ ํŠธ๋ฆฌ ์œ„/์•„๋ž˜ ์ด๋™ | | `?` | ๋‹จ์ถ•ํ‚ค ๋„์›€๋ง ํŒ์—… | | `d` | ์„ ํƒํ•œ ๋””๋ ‰ํ† ๋ฆฌ/ํŒŒ์ผ ์ฆ‰์‹œ ์˜๊ตฌ ์‚ญ์ œ | | `q` / `Esc` | ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ | --- [โฌ…๏ธ ๋ฉ”์ธ README๋กœ ๋Œ์•„๊ฐ€๊ธฐ](../README.md) | [๋‹ค์Œ ์นดํ…Œ๊ณ ๋ฆฌ: 2. ์‹œ์Šคํ…œ & ์ปจํ…Œ์ด๋„ˆ DevOps โžก๏ธ](./UNIX-02-SYSTEM-DEVOPS.md)