Skip to content

Instantly share code, notes, and snippets.

@hongsw
Created March 27, 2025 09:06
Show Gist options
  • Save hongsw/986f558bb656209de1c1baad103a5c58 to your computer and use it in GitHub Desktop.
Save hongsw/986f558bb656209de1c1baad103a5c58 to your computer and use it in GitHub Desktop.

๐Ÿงญ ๋ฏธ์…˜: ์‹คํ–‰ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ PATH์— ์ถ”๊ฐ€ํ•˜๋ผ

๐ŸŽฏ ๋ชฉํ‘œ

  • ํŠน์ • ์‹คํ–‰ํŒŒ์ผ(์˜ˆ: mytool)์„ ์–ด๋””์„œ๋“  ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.

๐Ÿงฑ ์‚ฌ์ „ ๊ฐœ๋… (ํžŒํŠธ๋งŒ ์ œ๊ณต)

  • PATH๋ž€?
    echo $PATH ๋ช…๋ น์–ด๋กœ ํ™•์ธ ๊ฐ€๋Šฅ.
    ํ„ฐ๋ฏธ๋„์ด ์‹คํ–‰ํŒŒ์ผ์„ ์ฐพ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์ด๋‹ค.

  • ์‰˜ ์ดˆ๊ธฐํ™” ํŒŒ์ผ์ด๋ž€?
    ๋กœ๊ทธ์ธ ์‹œ ์‹คํ–‰๋˜๋Š” ์„ค์ • ํŒŒ์ผ.
    .zshrc, .zprofile์€ ๊ฐ๊ฐ ๋‹ค๋ฅธ ํƒ€์ด๋ฐ์— ์‹คํ–‰๋จ.

  • ์‹คํ–‰ํŒŒ์ผ์ด๋ž€?
    chmod +x๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“  ์Šคํฌ๋ฆฝํŠธ๋‚˜ ๋ฐ”์ด๋„ˆ๋ฆฌ.


๐Ÿงช ์‹ค์Šต ๋ฏธ์…˜

  1. ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์— mytool.sh ๋ผ๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด๋ผ.
    โ†’ ๋‚ด์šฉ: echo "MyTool Activated!"

  2. mytool.sh ํŒŒ์ผ์„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ฐ”๊ฟ”๋ผ.
    ํžŒํŠธ: chmod

  3. PATH์— mytool.sh๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด๋ผ.
    ํžŒํŠธ: .zprofile ๋˜๋Š” .zshrc

  4. ํ„ฐ๋ฏธ๋„์„ ๋‹ค์‹œ ์—ด๊ณ , mytool.sh๋ฅผ ๋””๋ ‰ํ† ๋ฆฌ ์—†์ด ์‹คํ–‰ํ•˜๋ผ.
    ๊ธฐ๋Œ€ ๊ฒฐ๊ณผ: MyTool Activated!


๐Ÿ” ํ™•์ธํ•  ๋ช…๋ น์–ด ํžŒํŠธ

  • echo $PATH
  • nano ~/.zprofile ๋˜๋Š” vim ~/.zshrc
  • source ~/.zprofile ๋˜๋Š” exec zsh
  • chmod +x
  • which, type, command -v

๐Ÿšจ ์ฃผ์˜์‚ฌํ•ญ

  • ํŒŒ์ผ์— ๊ณต๋ฐฑ/์˜คํƒ€ ๊ธˆ์ง€
  • export PATH=... ์ž‘์„ฑ ์‹œ ๊ธฐ์กด $PATH ์œ ์ง€ํ•  ๊ฒƒ
  • .zshrc์™€ .zprofile์˜ ์ฐจ์ด๋„ ์ฐพ์•„๋ณผ ๊ฒƒ (ํžŒํŠธ: ๋กœ๊ทธ์ธ/์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ)

โœ… ์‹คํ–‰ ์ „ ๋ช…๋ น์–ด ํ™•์ธ ๋ฐฉ๋ฒ•

๋ช…๋ น์–ด ์„ค๋ช… ํ™•์ธ ๋ฐฉ๋ฒ•
type ๋ช…๋ น์–ด ์…ธ์ด ํ•ด์„ํ•˜๋Š” ๋ฐฉ์‹ ํ™•์ธ type echo, type mytool.sh
which ๋ช…๋ น์–ด ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ ๋ฐ˜ํ™˜ which ls, which python
command -v ๋ช…๋ น์–ด ์–ด๋А ๋ช…๋ น์ธ์ง€ ๋ฐ˜ํ™˜ (which ๋Œ€์ฒด) command -v grep

์˜ˆ์‹œ:

type mytool.sh
which mytool.sh
command -v mytool.sh

โ†’ ๊ฒฐ๊ณผ๊ฐ€ ์—†๋‹ค๋ฉด PATH์— ์—†์Œ.


๐Ÿงฉ PATH ์ถ”๊ฐ€ ์ „ ์ฒดํฌํ•  ๋ช…๋ น์–ด ๋ฆฌ์ŠคํŠธ

  1. ํŒŒ์ผ ์กด์žฌ ์—ฌ๋ถ€
ls ~/tools/mytool.sh
  1. ์‹คํ–‰ ๊ถŒํ•œ ํ™•์ธ
ls -l ~/tools/mytool.sh
# ๋˜๋Š”
test -x ~/tools/mytool.sh && echo "์‹คํ–‰ ๊ฐ€๋Šฅ"
  1. ํ˜„์žฌ PATH ํ™•์ธ
echo $PATH
  1. ์ถ”๊ฐ€ํ•  ๋””๋ ‰ํ† ๋ฆฌ ํ™•์ธ
# ์˜ˆ์‹œ ๋””๋ ‰ํ† ๋ฆฌ
echo $HOME/tools
  1. ๋ช…๋ น์–ด ์ธ์‹ ์—ฌ๋ถ€
command -v mytool.sh

โœ… ์˜ˆ๋น„ ์ ๊ฒ€ ํ›„ .zprofile ์ž‘์„ฑ ์˜ˆ์‹œ

export PATH="$HOME/tools:$PATH"

์ ์šฉ:

source ~/.zprofile

๐Ÿ”Ž ๋ช…๋ น์–ด ํŒŒ์•…์šฉ ๊ธฐ๋ณธ ๋„๊ตฌ ์š”์•ฝ

๋ช…๋ น์–ด ์šฉ๋„ ์˜ˆ์‹œ
type ์…ธ์ด ํ•ด์„ํ•˜๋Š” ๋ฐฉ์‹ ํ™•์ธ type ls โ†’ builtin์ธ์ง€ ํ™•์ธ
which ์‹คํ–‰ํŒŒ์ผ์˜ ๊ฒฝ๋กœ ํ™•์ธ (PATH ๊ธฐ์ค€) which python โ†’ /usr/bin/python
command -v which ๋Œ€์ฒด์šฉ, POSIX ํ˜ธํ™˜ ์šฐ์ˆ˜ command -v node
whereis ์‹คํ–‰ํŒŒ์ผ + ๋ฌธ์„œ + ์†Œ์Šค ์œ„์น˜ ๊ฒ€์ƒ‰ whereis gcc
man ๋ฉ”๋‰ด์–ผ ํŽ˜์ด์ง€ ์—ด๊ธฐ man grep, man 1 ls
help ์…ธ ๋‚ด์žฅ ๋ช…๋ น์–ด ๋„์›€๋ง (bash ๊ธฐ์ค€) help cd
--help ๋ช…๋ น์–ด์— ๋ถ™์ด๋Š” ๊ฐ„๋‹จ ์‚ฌ์šฉ๋ฒ• ๋ณด๊ธฐ ls --help

๐Ÿ“Œ ํ•™์Šต ํ๋ฆ„ ์ถ”์ฒœ

  1. ๋ช…๋ น์–ด ๋ณด์ด๋ฉด โ†’ type ์œผ๋กœ ํ™•์ธ
  2. ๊ฒฝ๋กœ ํ•„์š”ํ•˜๋ฉด โ†’ which, command -v
  3. ๋ฌด์Šจ ๋ช…๋ น์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์œผ๋ฉด โ†’ man, --help
  4. ์…ธ ์ „์šฉ์ด๋ฉด โ†’ help ๋กœ ํ™•์ธ

๐ŸŽฏ ์˜ˆ์ œ

type echo         # builtin์ธ์ง€ ํ™•์ธ
which echo        # ์™ธ๋ถ€ ๋ช…๋ น ๊ฒฝ๋กœ
man echo          # ์ƒ์„ธ ์„ค๋ช…
echo --help       # ๋น ๋ฅธ ์˜ต์…˜ ์„ค๋ช…
@hongsw
Copy link
Author

hongsw commented Apr 1, 2025

asdf 0.16 ๋ฒ„์ „์—์„œ npm ๊ธ€๋กœ๋ฒŒ ํŒจํ‚ค์ง€ ์‹คํ–‰ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

  1. asdf reshim ์‹คํ–‰:

    • ์ „์—ญ ํŒจํ‚ค์ง€ ์„ค์น˜ ํ›„ asdf reshim nodejs ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์…ˆ์„ ์žฌ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. $PATH ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ™•์ธ:

    • echo $PATH ๋ช…๋ น์–ด๋กœ ํ˜„์žฌ ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜๊ณ , $(asdf where nodejs)/bin์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    • ํ•„์š” ์‹œ, ์…ธ ์„ค์ • ํŒŒ์ผ(~/.bashrc ๋˜๋Š” ~/.zshrc)์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ ์šฉํ•ฉ๋‹ˆ๋‹ค
      export PATH="$(asdf where nodejs)/bin:$PATH"
  3. npm๊ณผ node์˜ ๊ฒฝ๋กœ ํ™•์ธ:

    • which npm๊ณผ which node ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์˜: asdf 0.16 ๋ฒ„์ „์€ ์ด์ „ ๋ฒ„์ „๊ณผ ์ฐจ์ด๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ, ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์„ค์ •์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์ง€์›์ด ํ•„์š”ํ•˜์‹œ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment