有時候我們在網路上找到的程式是binary檔而不是osx上常見的dmg,這時候就要將其移動到系統當中的一個特定地點 /usr/local/bin,osx/linux只會從這些資料夾查看可以使用的程式。
安裝方法:
將下載來的binary檔案移動到
/usr/local/bin 即可在terminal中使用其指令。
可以使用 mv 或者 cp 這兩個指令
用法:
mv [source] [destination]
cp [source] [destination]
說明:
When you type commands like
ngrok
in the terminal, Macs (and other Unix OSs) look for these programs in the folders specified in your
PATH
. The
PATH
is a list of folders that's specified by each user. To check your path, open the terminal and type:
echo $PATH
.
You'll see output that looks something like:
/usr/local/bin:/usr/bin:/bin
. This is a
:
separated list of folders.
So when you type
ngrok
in the terminal, your Mac will look for this executable in the following folders:
/usr/local/bin
,
/usr/bin/
and
/bin
.
像我目前如果在terminal中輸入 echo $PATH 則會出現:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Library/TeX/texbin
代表這些地方都有存放可在terminal中執行指令的程式
各個path的比較:
/bin
(and /sbin
) were intended for programs that needed to be on a small /
partition before the larger /usr
, etc. partitions were mounted. These days, it mostly serves as a standard location for key programs like /bin/sh
, although the original intent may still be relevant for e.g. installations on small embedded devices.
/sbin
, as distinct from /bin
, is for system management programs (not normally used by ordinary users) needed before /usr
is mounted.
/usr/bin
is for distribution-managed normal user programs.
- There is a
/usr/sbin
with the same relationship to /usr/bin
as /sbin
has to /bin
.
/usr/local/bin
is for normal user programs not managed by the distribution package manager, e.g. locally compiled packages. You should not install them into /usr/bin
because future distribution upgrades may modify or delete them without warning.
/usr/local/sbin
, as you can probably guess at this point, is to /usr/local/bin
as /usr/sbin
to /usr/bin
.
In addition, there is also /opt
which is for monolithic
non-distribution packages, although before they were properly integrated
various distributions put Gnome and KDE there. Generally you should
reserve it for large, poorly behaved third party packages such as
Oracle.
參考資料:
https://stackoverflow.com/questions/30188582/ngrok-command-not-found
https://unix.stackexchange.com/questions/8656/usr-bin-vs-usr-local-bin-on-linux
https://linux.die.net/man/7/hier