which ๋ช ๋ น์ด๋ ๋ฆฌ๋ ์ค์์ ์คํ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ํต์ฌ ๋๊ตฌ์ ๋๋ค. PATH ๊ฒ์ ์๋ฆฌ, whereis/type ์ฐจ์ด, ๊ฐ๋ฐ์·์๋ฒ ๋๋ ์ค์ ์์ ๊น์ง ์๋ฒฝํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.
๋ฆฌ๋
์ค์์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ฉด “์ด๋ค ์คํ ํ์ผ์ด ์ค์ ๋ก ํธ์ถ๋๋์ง” ๊ถ๊ธํ๋ ์ , ๋๊ตฌ๋ ํ ๋ฒ์ฏค ์์ผ์ค ๊ฒ๋๋ค.
ls, grep, python, gcc์ฒ๋ผ ๋งค์ผ ์ฌ์ฉํ๋ ๋ช
๋ น์ด๋ ์ค์ ๊ฒฝ๋ก๋ฅผ ๋ฐ์ ธ๋ณด๋ฉด ์๋ก ๋ค๋ฅธ ์์น์ ํ์ผ์ผ ์ ์๊ณ , ์ฌ์ง์ด alias๊ฐ ๊ฐ์
ํ๋ฉด ์ ํ ๋ค๋ฅธ ๋์์ ํ ๋๋ ์์ฃ .
ํนํ ๋ค์ ๊ฐ์ ์ํฉ์ ๊ฐ๋ฐ์๊ฐ ์์ฃผ ๋ง์ฃผ์น๋ ์ฅ๋ฉด์ ๋๋ค:
- Python์ด ์ฌ๋ฌ ๊ฐ ์ค์น๋์ด ์ด๋ค ๋ฒ์ ์ด ์คํ๋๋์ง ๋ชจ๋ฅด๊ฒ ๋ค
- cross-compiler๋ฅผ ์ค์ ํ๋๋ฐ gcc๊ฐ ๋ค๋ฅธ ์ปดํ์ผ๋ฌ๋ฅผ ๊ฐ๋ฆฌํจ๋ค
- PATH๋ฅผ ์๋ก ๋ฃ์๋๋ฐ ๋ช ๋ น์ด๊ฐ ์ ์ฉ๋์ง ์๋๋ค
- BusyBox(OpenWrt) ํ๊ฒฝ์์ ์ด๋ค ํ์ผ์ด ์ค์ ๋ฐ์ด๋๋ฆฌ์ธ์ง ํ์ธํ๊ณ ์ถ๋ค
- alias ๋๋ฌธ์ ๋ช ๋ น์ด๊ฐ ์์๊ณผ ๋ค๋ฅด๊ฒ ์คํ๋๋ค
์ด๋ฐ ๋ฌธ์ ์ ์ค์ฌ์๋ PATH์ which๊ฐ ์์ต๋๋ค.
1. which ๋ช ๋ น์ด, ํ ์ค๋ก ์์ฝ
โ which๋?
๋ฆฌ๋ ์ค์์ ๋ช ๋ น์ด ์ด๋ฆ์ ์ ๋ ฅํ๋ฉด, PATH ํ๊ฒฝ๋ณ์์ ๋ฐ๋ผ ํด๋น ๋ช ๋ น์ด๊ฐ ์กด์ฌํ๋ ์คํ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ฐพ์์ฃผ๋ ๋๊ตฌ.
์๋ฅผ ๋ค์ด,
which ls
๋ผ๊ณ ์ ๋ ฅํ๋ฉด,
/usr/bin/ls
์ฒ๋ผ ์ค์ ํ์ผ์ ์์น๋ฅผ ์๋ ค์ค๋ค.
์ธ๋ป ๋จ์ํด ๋ณด์ด์ง๋ง ์ค์ ๋ก๋ ์์คํ
์ ๊ฒ์ ์์๋ฅผ ์ดํดํ๋ ๋ฐ ์ง๊ฒฐ๋ฉ๋๋ค.
2. which๊ฐ ๋์ํ๋ ๋ฐฉ์
๋ฆฌ๋ ์ค ์์ ๋ค์ ์์๋ก ๋ช ๋ น์ ํด์ํฉ๋๋ค.
- alias ํ์ธ
- shell builtin์ธ์ง ํ์ธ
- $PATH์ ๋ฑ๋ก๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ์์์๋ถํฐ ๊ฒ์
- ์ฒ์ ๋ฐ๊ฒฌ๋ ์คํ ํ์ผ์ ์ฌ์ฉ
which๋ ์ด ์ค 3๋ฒ๋ง ์ํํ๊ธฐ ๋๋ฌธ์ alias๋ builtin์ ๋ชจ๋ฅธ๋ค๋ ์ ์ ๊ผญ ๊ธฐ์ตํด์ผ ํฉ๋๋ค.

3. which ๋ช ๋ น์ด ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
which <๋ช
๋ น์ด>
๊ฐ์ฅ ๋จ์ํ ํํ๋ค.
์
which ls
์ถ๋ ฅ:
/usr/bin/ls
๋๋:
which grep
/usr/bin/grep
์ฌ๋ฌ ๊ฐ๋ฅผ ๋์์ ์กฐํ๋ ๊ฐ๋ฅํ๋ค:
which ls grep sed awk
4. PATH์ ๋ฐ๋ผ which ์ถ๋ ฅ์ด ๋ฌ๋ผ์ง๋ ์ด์
PATH๋ ๋ช ๋ น์ด ๊ฒ์์ ์ฌ์ฉ๋๋ ๋๋ ํฐ๋ฆฌ ๋ชฉ๋ก์ ๋๋ค:
echo $PATH
์์:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
์์ ๊ฐ์ฅ ์์ ์๋ ๋๋ ํฐ๋ฆฌ๋ถํฐ ๊ฒ์ํ๋ฏ๋ก,
PATH์ ์์ = ์คํ ์ฐ์ ์์๊ฐ ๋๋ค.
์์:
export PATH=/opt/custom/bin:$PATH
which python
๋ง์ฝ /opt/custom/bin ์์ python์ด ์๋ค๋ฉด, which๋ ๊ทธ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ฅ ๋จผ์ ์ถ๋ ฅํ๋ค.
๐ก TIP
PATH ๋ฌธ์ ๋ก which๊ฐ “์๋ฌด ๊ฒ๋ ์ฐพ์ง ๋ชปํ๋” ๊ฒฝ์ฐ๋ PATH ๋ชฉ๋ก์ด ์ค์ ๋ก ์กด์ฌํ์ง ์๋ ๋๋ ํฐ๋ฆฌ๋ง ํฌํจํ๊ฑฐ๋ ์คํ๊ฐ ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ ๋๋ค.
โ PATH๋ฅผ ์๋ชป ์์ ํ ๊ฒฝ์ฐ
PATH๊ฐ ๊นจ์ ธ์ which๊ฐ ์๋ฌด ๊ฒ๋ ์ฐพ์ง ๋ชปํ ์๋ ์๋ค:
bash: ls: command not found
which ls # ์ถ๋ ฅ ์์
์ด๋๋ PATH๋ฅผ ๋ณต๊ตฌํ๋ฉด ๋๋ค:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
5. ๊ธฐ์ด ์์ : ํ์ ๋ช ๋ น์ด๋ค์ ์์น ํ์ธ
1) ํ์ผ ์กฐ์ ๋ช ๋ น์ด
which cp
/usr/bin/cp
which mv
/usr/bin/mv
which rm
/usr/bin/rm
๋๋ถ๋ถ /usr/bin ๋๋ /bin์ ์กด์ฌํ๋ค.
2) ๊ฒ์ ๊ด๋ จ
which grep
/usr/bin/grep
3) ๋คํธ์ํฌ ๋๊ตฌ
which curl
/usr/bin/curl
which wget
/usr/bin/wget
4) ์์คํ ๋ถ์
which top
/usr/bin/top
which ps
/bin/ps
6. ๊ณ ๊ธ ์์ : ์ฌ๋ฌ ๋ฒ์ ์ด ๊ณต์กดํ ๋ which
C ๊ฐ๋ฐ์·ํ์ด์ฌ ๊ฐ๋ฐ์·๋น๋ ์์คํ
์์ง๋์ด๊ฐ
๊ฐ์ฅ ๋ง์ด ๊ฒช๋ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ๋ค.
1) Python ๋ฒ์ ์ถฉ๋
which python
/usr/bin/python
which python3
/usr/bin/python3
๋น์ฐํด ๋ณด์ด์ง๋ง, ์๋์ ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค:
/home/user/.local/bin/python
๊ฐ ์ฒ์์ ์์นํ์ฌ ์๋ชป๋ ๋ฒ์ ์ ์คํํ ์ ์๋ค.
2) gcc vs cross-compiler
์๋ฒ ๋๋ ํ๊ฒฝ์์ ๋ง์ด ๋ณธ๋ค:
which gcc
/usr/bin/gcc
which arm-linux-gcc
/opt/toolchain/bin/arm-linux-gcc
๋ฌธ์ ๋ PATH ์ฐ์ ์์๊ฐ ์๋ชป๋์ด “gcc”๊ฐ ์๋ชป๋ ์ปดํ์ผ๋ฌ๋ฅผ ๊ฐ๋ฆฌํฌ ๋๋ค.
์ด๋ด ๋:
type -a gcc
๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ํ์ธํ ์ ์๋ค.
3) alias๊ฐ ์กด์ฌํ ๋ which๊ฐ ์์ ์๋ ์๋ค
์:
alias ls='ls --color=auto'
which ls
/usr/bin/ls
which๋ alias๋ฅผ ์์ง ๋ชปํ๋ค.
์ด๋ด ๋ type์ ์ฌ์ฉํด์ผ ํ๋ค:
type ls
ls is aliased to `ls --color=auto'
์ด ์ฐจ์ด๋ ์๋ ์ฑํฐ์์ ๋ ์์ธํ ์ค๋ช ํ๋ค.
7. which vs whereis vs type
์ด ์ธ ๋ช
๋ น์ด๋ฅผ ํท๊ฐ๋ฆฌ๋ ์ฌ๋๋ค์ด ๋ง๋ค.
ํ ๋ฒ์ ์ ๋ฆฌํด๋ณด์.

์์ฝํ๋ฉด ์๋ ํ์ ๊ฐ๋ค.
| ๋ช ๋ น์ด | ๊ธฐ๋ฅ | alias ํ์ธ | builtin ํ์ธ | PATH ๊ธฐ๋ฐ | binary ์์น |
| which | PATH์์ ์คํ ํ์ผ ๊ฒ์ | โ | โ | โ | โ |
| whereis | binary / manpage / source ๋ชจ๋ ๊ฒ์ | โ | โ | ๋ถ๋ถ | โ(ํ์ฅ) |
| type | alias, builtin, function, file ๋ชจ๋ ํ์ธ | โ | โ | โ | โ |
โ ์ธ์ ๋ฌด์์ ์ธ๊น?
๐น which
- ๊ธฐ๋ณธ PATH ์์์ ์คํ ํ์ผ๋ง ์ฐพ๊ณ ์ถ์ ๋
- ๊ฐ์ฅ ๋ง์ด ์ฐ๋ CLI ๋๊ตฌ
๐น whereis
- man ํ์ผ ์์น๊น์ง ํฌํจํด ํจํค์ง ๊ตฌ์กฐ ์ ์ฒด๋ฅผ ๋ณด๊ณ ์ถ์ ๋
- ๋ฐ์ด๋๋ฆฌ๊ฐ ์ด๋ ์ค์น๋๋์ง ๊ตฌ์กฐ ํ์ ์ด ํ์ํ ๋
๐น type
- alias/builtin ๋๋ฌธ์ธ์ง ํ์ธํ ๋
- ์ ๋ด๋ถ ๋์์ ์ฒดํฌํ ๋
- ๋๋ฒ๊น ์ ๊ฐ์ฅ ์ค์ํ ๋๊ตฌ
8. which๊ฐ ์๋ํ์ง ์์ ๋ ๋ฐ์ํ๋ ๋ฌธ์
โ PATH ๋ฌธ์
PATH๊ฐ ์์๋๋ฉด which๋ ์ฐพ์ง ๋ชปํ๋ค.
which ls
# ์๋ฌด ์ถ๋ ฅ ์์
โ ์คํ ๊ถํ ๋ฌธ์
ํ์ผ์ ์์ง๋ง ์คํ ๊ถํ์ด ์์ผ๋ฉด which๋ ์ถ๋ ฅํ์ง๋ง ์คํ ์์ฒด๋ ์ ๋จ.
โ ์บ์ ๋ฌธ์
์์ด ์ด๋ฏธ alias ๋ก์ง์ ๊ฐ๊ณ ์์ด ์๋์ ๋ค๋ฅด๊ฒ ๋์ํ ์ ์์.
9. ์๋ฒ ๋๋·OpenWrt ํ๊ฒฝ์์์ which
OpenWrt์ ๊ฐ์ BusyBox ์์คํ ์์๋ which๊ฐ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- BusyBox ๋ด์ฅ which → ์ผ๋ฐ which๋ณด๋ค ๊ธฐ๋ฅ ์ ํ
- PATH๊ฐ ์ข์ ํน์ ๋ช ๋ น์ ๋ชป ์ฐพ๋ ๊ฒฝ์ฐ ์์
- ๋ง์ ๋ช ๋ น์ด BusyBox ์ฌ๋ณผ๋ฆญ ๋งํฌ ํํ
์:
root@OpenWrt:/# which ls
/bin/ls
์ง๋ง ๋ด๋ถ์ ์ผ๋ก๋ BusyBox ๋งํฌ ํ์ผ์ผ ์ ์๋ค:
ls -> /bin/busybox
์ด๋๋:
ls -l /bin/ls
๐ ์ค์ ํ
๋น๋ ํ๊ฒฝ์์ cross-compiler๊ฐ ์ ์กํ๋์ง ํ์ธํ ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค.
10. which + grep ์กฐํฉ
1) ํน์ PATH๋ง ๊ฒ์ํ๊ณ ์ถ์ ๋
echo $PATH | tr ':' '\n' | grep local
2) Python ๊ฐ์ํ๊ฒฝ ํ์ธ
which python
/home/user/venv/bin/python
3) ์ปค์คํ ์ปดํ์ผ๋ฌ ํ์ธ
which arm-linux-gcc
11. which ๋ช ๋ น์ด FAQ
Q1. which์ whereis ์ฐจ์ด๋?
- which๋ PATH ๊ธฐ๋ฐ
- whereis๋ ์ ์ฒด ์์คํ ๊ฒ์
Q2. which python์ด ๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ๊ฐ๋ฆฌํฌ ๋ ํด๊ฒฐ๋ฒ?
- PATH ์ฐ์ ์์ ์กฐ์
- alias ์ ๊ฑฐ
- ๊ฐ์ํ๊ฒฝ ์ง์ ์ฌ๋ถ ์ ๊ฒ
Q3. Windows์ where์ ๊ฐ๋?
๋น์ทํ์ง๋ง ์์ ํ ๋์ผํ์ง ์๋ค.
์๋์ฐ์ where๋ ๋ ๊ด๋ฒ์ํ ๊ฒ์์ ์ํํ๋ค.
Q4. PATH ์ฐ์ ์์ ๋ณด๋ ๋ฒ?
echo $PATH
Q5. alias๋ which๋ก ์ฐพ์ ์ ์๋?
๋ชป ์ฐพ๋๋ค.
๋ฐ๋์:
type ๋ช
๋ น์ด
์ฌ์ฉ.
12. which ๋ช ๋ น์ด๊ฐ ์ฃผ๋ ์ค์ ์ ์ธ ๊ฐ์น
๊ฐ๋ฐ·์ด์·์๋ฒ ๋๋ ๋ชจ๋์์ which๋ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ํต์ฌ ์ญํ ์ ํฉ๋๋ค.
- ์ด๋ค ๋ช ๋ น์ด ์ค์ ์คํ๋๋์ง ์ฆ์ ํ์ธ
- PATH ๋ฌธ์ ๋น ๋ฅด๊ฒ ์ง๋จ
- OpenWrt·BusyBox ํ๊ฒฝ์์ ๋ฐ์ด๋๋ฆฌ ์ค์ฒด ํ์ธ
- cross-compiler ์ถฉ๋ ํด๊ฒฐ
- alias/builtin ํผ๋ ์ ๊ฑฐ
“๋ช ๋ น์ด ์ด๋์์ ์ค๋์ง ์๋ฉด, ๋ฌธ์ ์ ์ ๋ฐ์ ์ด๋ฏธ ํด๊ฒฐ๋ ๊ฒ์ด๋ค.”
์ด์ ๊ธ ๋ณด๊ธฐ
[Linux] ๋ฆฌ๋ ์ค echo ๋ช ๋ น์ด ์ค์ ๊ฐ์ด๋: ๋ฌธ์์ด ์ถ๋ ฅ๋ถํฐ ์คํฌ๋ฆฝํธ ์๋ํ๊น์ง ๐