自分用の備忘録。
よく使う .sh
スクリプトを毎回 ./script.sh
と打つのが面倒なので、コマンドとして使えるようにしたときの手順まとめ。
目的
たとえばこういうスクリプト:
#!/bin/bash
echo "Hello, world!"
これをターミナルでどこからでも hello
のように呼び出せるようにしたい。
ステップ1:スクリプトに実行権限を付ける
chmod +x myscript.sh
ステップ2:パスの通ったディレクトリに配置する
1. ユーザー専用にするなら ~/.local/bin/
mkdir -p ~/.local/bin
mv myscript.sh ~/.local/bin/hello
※拡張子 .sh
は省略してOK。hello
のような短い名前が使いやすい。
2. システム全体で使うなら /usr/local/bin/
(要root)
sudo mv myscript.sh /usr/local/bin/hello
sudo chmod +x /usr/local/bin/hello
ステップ3:PATHに含まれているか確認
echo $PATH
~/.local/bin
が含まれていない場合は、以下を .bashrc
や .zshrc
に追記:
export PATH="$HOME/.local/bin:$PATH"
反映させるには:
source ~/.bashrc
ステップ4:動作確認
hello
と打って Hello, world!
が出れば成功。
補足:Python仮想環境(venv)内でも使える?
-
~/.local/bin/
や/usr/local/bin/
に入れたスクリプトは、仮想環境とは無関係に使える - 仮想環境を有効化した状態でも、PATHに通っていれば問題なく呼び出せる
- ただし
sudo
が必要なコマンドはそのまま権限が必要
よく使う例:外付けHDDのアンマウント&電源オフ
自作の safe-unmount
コマンドを使って、NTFSの外付けHDDを安全に取り外しています。
このスクリプトと、自動マウント設定については別記事にまとめています👇
Ubuntu 24.04で外付けNTFS HDDを自動マウントする方法まとめ
※ 引数対応・
--help
オプション対応・udisksctl
との組み合わせなども紹介しています。
まとめ
操作 | 方法 |
---|---|
実行可能にする | chmod +x script.sh |
コマンドとして使う |
~/.local/bin/ や /usr/local/bin/ に移動 |
PATH確認 | echo $PATH |
仮想環境でも使える | 問題なし |