Linuxで「シェル組み込みコマンド(ビルトインコマンド)を一時的に無効化したい」と思ったことはありませんか?
そんなときに利用するのがenableコマンドです。
enableコマンドを使うと、Bashに組み込まれているビルトインコマンドを一覧表示したり、有効・無効を切り替えたりできます。
通常のLinux操作では利用頻度は高くありませんが、シェルの動作確認や高度なカスタマイズ、学習用途で役立つコマンドです。
この記事では、enableコマンドの基本的な使い方から、ビルトインコマンドの一覧表示、有効・無効の切り替え方法、builtinコマンドとの違いまで初心者向けに分かりやすく解説します。
enableコマンドとは
enableは、Bashのシェル組み込みコマンド(ビルトインコマンド)の有効・無効を管理するためのシェル組み込みコマンドです。
ビルトインコマンドの一覧表示や、特定のビルトインを一時的に無効化・再有効化できます。
enableコマンドの基本構文
enable [オプション] [ビルトイン名]
オプションを指定しない場合は、利用可能なビルトインコマンドの一覧を表示します。
enable
ビルトインコマンド一覧を表示する
現在利用できるビルトインコマンドを確認するには、次のように実行します。
enable
実行すると、cdやecho、pwdなどのビルトインコマンド一覧が表示されます。
ビルトインコマンドを無効化する
-nオプションを指定すると、対象のビルトインコマンドを無効化できます。
enable -n test
これにより、Bashのビルトイン版testは一時的に無効になります。
ビルトインコマンドを再度有効化する
無効化したビルトインコマンドは、再びenableを実行することで有効化できます。
enable test
元どおりビルトインコマンドとして利用できるようになります。
-aオプション
-aオプションを指定すると、有効・無効の状態も含めて一覧表示できます。
enable -a
どのビルトインコマンドが無効になっているか確認したい場合に便利です。
-pオプション
-pオプションでは、再利用しやすい形式でビルトインコマンド一覧を表示します。
enable -p
現在の設定内容を確認したり、シェルスクリプトへ反映したりする際に役立ちます。
builtinコマンドとの違い
| コマンド | 用途 |
|---|---|
enable |
ビルトインコマンドの有効・無効を管理する |
builtin |
ビルトインコマンドを直接実行する |
enableは管理、builtinは実行という役割の違いがあります。
enableとtypeの違い
| コマンド | 役割 |
|---|---|
enable |
ビルトインコマンドの有効・無効を管理する |
type |
コマンドの種類を確認する |
typeコマンドはコマンドの種類を調査するためのコマンドであり、有効・無効を変更することはできません。
無効化したビルトインコマンドの動作
ビルトインコマンドを無効化すると、同名の外部コマンドが存在する場合は、そちらが実行されます。
例えば、testを無効化した場合は、PATH上に存在する外部コマンドのtestが利用されます。
enable -n test
type test
実行環境によっては、外部コマンドのパスが表示されます。
ビルトインコマンドを確認する
ビルトインコマンドかどうかは、typeコマンドで確認できます。
type echo
実行例
echo is a shell builtin
無効化前後の動作を確認したい場合にも便利です。
シェルスクリプトで利用する場面
通常のシェルスクリプトでenableコマンドを利用する機会は多くありません。
主にシェルの動作検証やデバッグ、学習用途、特殊な環境構築などで利用されます。
enableが利用できるシェル
enableはBashのシェル組み込みコマンドです。
そのため、すべてのシェルで同じように利用できるわけではありません。
現在利用しているシェルは、次のコマンドで確認できます。
echo $SHELL
よくあるエラー・注意点
enable: ○○: not a shell builtin と表示される
指定したコマンドはビルトインコマンドではありません。
typeコマンドで種類を確認してください。
type grep
無効化しても動作が変わらない
同名の外部コマンドが存在する場合は、その外部コマンドが実行されます。
typeコマンドで実際に実行されるコマンドを確認しましょう。
新しいターミナルでは元に戻っている
enableによる設定変更は、現在のシェルだけに適用されます。
新しいシェルを起動すると、通常はビルトインコマンドが再び有効になります。
enableは外部コマンドですか?
いいえ。
enableはBashに組み込まれているシェル組み込みコマンド(ビルトインコマンド)です。
よくある質問
enableコマンドは何をするコマンドですか?
Bashのビルトインコマンドの有効・無効を管理するためのコマンドです。
builtinとの違いは何ですか?
builtinはビルトインコマンドを直接実行するためのコマンドです。
enableはビルトインコマンドの有効・無効を切り替えます。
外部コマンドにも利用できますか?
いいえ。
ビルトインコマンドだけが対象です。
普段のLinux操作でも使いますか?
通常は利用頻度が高くありません。
シェルの検証やデバッグ、学習用途で利用されることが多いコマンドです。
enableはビルトインコマンドですか?
はい。
Bashへ組み込まれているシェル組み込みコマンドです。
まとめ
enableコマンドは、Linux(Bash)でビルトインコマンドの有効・無効を管理するためのシェル組み込みコマンドです。
特に次のコマンドは覚えておくと便利です。
| コマンド | 用途 |
|---|---|
enable |
ビルトインコマンド一覧を表示する |
enable -a |
有効・無効の状態を一覧表示する |
enable -p |
設定を再利用しやすい形式で表示する |
enable -n test |
ビルトインコマンドを無効化する |
enable test |
ビルトインコマンドを再度有効化する |
type echo |
ビルトインかどうか確認する |
LinuxでBashを深く理解するには、「typeで種類を確認 → enableで有効・無効を切り替える → builtinでビルトインを直接実行する」という流れを覚えておくと、シェルの仕組みや動作をより深く理解できるようになります。



コメント