このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:シェルスクリプトの自分専用の配置場所を作る

シェルスクリプトの自分専用の配置場所を作る
シェルスクリプトを作成し、それを独自のコマンドとして手軽に実行できるようにすることは、日々の作業効率を大幅に向上させます。ここでは、自分専用のシェルスクリプト置き場を作成し、どのディレクトリからでもスクリプトをコマンドのように実行できるように設定する方法を詳しく解説します。

シェルスクリプトを独自コマンドとして利用する
通常、シェルスクリプトを実行する際には、スクリプトの場所を指定する必要があります。しかし、システムのコマンドのように、ファイル名だけでスクリプトを実行できれば、作業がよりスムーズになります。
システムのコマンドが配置されているディレクトリ
一般的なコマンドは以下のディレクトリに配置されています。
/bin
/usr/bin
/usr/local/bin
しかし、これらのディレクトリにファイルを配置するには管理者権限が必要であり、システムの安全性や管理上の理由から、自分専用のスクリプトをこれらのディレクトリに置くのは避けた方が良いです。
そこで、自分のホームディレクトリ内にスクリプトを置く専用のディレクトリを作成し、それをコマンド検索パスに追加する方法を取ります。
手順概要
~/bin
ディレクトリの作成- シェルスクリプトの作成と配置
- 実行権限の付与
- 環境変数
PATH
に~/bin
を追加 - 設定の反映
- 動作確認
以下、各ステップを詳細に解説します。
ステップ1:~/bin
ディレクトリの作成
~/bin
は、自分専用の実行ファイルを置くためのディレクトリとして慣習的に使用されます。
user01@ubuntu:~$ mkdir ~/bin
解説
mkdir ~/bin
:ホームディレクトリ(~
)にbin
というディレクトリを作成します。~
(チルダ)は、現在のユーザーのホームディレクトリを指します。例えば、ユーザー名がuser01
の場合、~
は/home/user01
を意味します。
~
(チルダ)の意味
- ホームディレクトリの省略表記として使用されます。
- コマンドラインで
~
を使用すると、常に自分のホームディレクトリを指すため、スクリプトやコマンドをユーザー固有の場所で扱う際に便利です。
ステップ2:シェルスクリプトの作成と配置
シェルスクリプトの作成
例として、ホームディレクトリのディスク使用量を表示する disksize.sh
というシェルスクリプトを作成します。
user01@ubuntu:~$ nano disksize.sh
disksize.sh
の内容
#!/bin/bash
du -h ~ | tail -n 1
解説
#!/bin/bash
:このスクリプトがbash
シェルで実行されることを指定するシェバン行です。du -h ~
:ホームディレクトリのディスク使用量を人間に読みやすい形式で表示します。| tail -n 1
:出力の最後の行(ホームディレクトリの合計使用量)だけを表示します。
スクリプトの配置
作成したスクリプトを ~/bin
ディレクトリに移動します。
user01@ubuntu:~$ mv disksize.sh ~/bin
解説
mv disksize.sh ~/bin/
:現在のディレクトリにあるdisksize.sh
を~/bin/
に移動します。
ステップ3:実行権限の付与
スクリプトを実行可能にするために、実行権限を付与します。
user01@ubuntu:~$ chmod +x ~/bin/disksize.sh
解説
chmod +x ~/bin/disksize.sh
:disksize.sh
に実行権限を追加します。
ステップ4:環境変数 PATH
に ~/bin
を追加
シェルはコマンドを実行する際、環境変数 PATH
に指定されたディレクトリを検索します。~/bin
を PATH
に追加することで、disksize.sh
をどのディレクトリからでもファイル名だけで実行できるようになります。
現在の PATH
の確認
user01@ubuntu:~$ echo $PATH
出力例
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
/usr/games:/usr/local/games:/snap/bin:/snap/bin
解説
echo $PATH
:現在のPATH
の内容を表示します。
.bashrc
ファイルの編集
~/.bashrc
ファイルに ~/bin
を追加する設定を追記します。
user01@ubuntu:~$ nano ~/.bashrc
ファイルの末尾に以下の行を追加します。
export PATH="$PATH:~/bin"
解説
export PATH="$PATH:~/bin"
:既存のPATH
の末尾に~/bin
を追加し、環境変数PATH
を更新します。
PATH
の設定内容の説明
$PATH
:現在のPATH
の値。:
(コロン):ディレクトリを区切るセパレータ。~/bin
:~/bin
ホームディレクトリの絶対パス。
ポイント
- この設定により、
~/bin
に配置したスクリプトをコマンドのように実行できます。
ステップ5:設定の反映
~/.bashrc
の変更を現在のシェルに反映させます。
user01@ubuntu:~$ source ~/.bashrc
解説
source ~/.bashrc
:~/.bashrc
ファイルを再読み込みし、設定を現在のシェルに適用します。- これにより、再ログインせずに設定を反映できます。
ステップ6:動作確認
新しい PATH
の確認
user01@ubuntu:~$ echo $PATH
出力例
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
/usr/games:/usr/local/games:/snap/bin:/snap/bin:~/bin
解説
~/bin
がPATH
に追加されていることが確認できます。
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
↓
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:~/bin
スクリプトの実行
カレントディレクトリに関係なく、disksize.sh
を実行します。
user01@ubuntu:~$ disksize.sh
出力例
17M /home/user01
解説
disksize.sh
と入力するだけでスクリプトが実行されました。PATH
に~/bin
が含まれているため、シェルがdisksize.sh
を見つけて実行します。
まとめ
~/bin
ディレクトリを作成し、自分専用のシェルスクリプト置き場を準備しました。- シェルスクリプトに実行権限を付与し、
~/bin
に配置しました。 - 環境変数
PATH
に~/bin
を追加することで、スクリプトをファイル名だけで実行できるように設定しました。 source ~/.bashrc
コマンドで設定を反映し、再ログインせずにすぐに利用可能にしました。- コマンドのようにシェルスクリプトを実行できるようになり、作業効率が向上しました。
これで、自分専用のシェルスクリプト置き場が完成し、独自のコマンドを作成・管理する環境が整いました。これから作成するシェルスクリプトを ~/bin
に配置することで、システム全体に影響を与えることなく、便利なコマンドを追加していくことができます。