連載
» 2018年07月19日 05時00分 公開

Linux基本コマンドTips(224):【 enable 】コマンド――ビルトインコマンドの有効/無効を切り替える

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ビルトインコマンドの有効/無効を切り替える「enable」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回はbashのビルトインコマンド(内部コマンド、シェルコマンド)の有効/無効を切り替える「enable」コマンドです。

enableコマンドとは?

 「enable」は、bashのビルトインコマンドを無効にしたり、有効に戻したりするコマンドです。ビルトインコマンドと同名の実行可能ファイルを起動したい場合などに使います。

 enable自身もbashのビルトインコマンドです。



enableコマンドの書式

enable [オプション] [コマンド名...]

※[ ]は省略可能な引数を示しています





enableの主なオプション

短いオプション 意味
-a 全てのビルトインコマンドについて有効(enable)か無効(enable -n)かを表示する
-n コマンド名 指定したコマンドを無効にする(コマンド名を指定しなかった場合は無効になっているコマンドを一覧表示)
-p 有効なビルトインコマンド一覧を表示する
-s POSIXで定義されているビルトインコマンドだけを表示する


ビルトインコマンドを無効にする

 「enable -n コマンド名」で指定したビルトインコマンドを無効にします。「enable コマンド名」で有効に戻します。

 /binや/usr/binなどには、ビルトインコマンドと同じ名前の実行可能ファイル(外部コマンド)が存在する場合があります。コマンド名だけを指定して実行した場合、ビルトインコマンドを優先します。外部コマンドを意識的に実行したい場合は、パス付きで指定する必要があります(※1)。

 enableコマンドでビルトインコマンドを無効にすると、パスを指定しなくても外部コマンドを実行します。

※1 あるコマンドを実行した場合、bashはエイリアスを最優先する(ビルトインコマンドとコマンドの優先順位)。次いでビルトインコマンド、最後に環境変数PATHに登録された実行可能なファイルを順に呼び出す。エイリアスやビルトインコマンド以外のコマンドを実行したい場合は、パスを直接指定するか、enableコマンドを用いる。ビルトインコマンドを実行したいときはbuiltinコマンド(連載第153回)を使う。なお、typeコマンド(第13回)を用いると、指定したコマンドがビルトインコマンドなのか、といった情報を表示できる。



コマンド実行例

enable -n コマンド名

(指定したビルトインコマンドを無効にする)

enable -n test

(testコマンドを無効にする)


 画面1では、testコマンドを無効にしたときの様子を調べています。testコマンドはビルトインコマンドと外部コマンド(/bin/test)のどちらであってもほとんどのオプションが共通です(※2)。しかし、シェルオプションが設定されているかどうかを調べる「-o」オプションは外部コマンドの場合使用できません。

※2 Ubuntu 14.04 LTSでは、/bin/testではなく、/usr/bin/testとなる。リダイレクトでファイルを上書きしないシェルオプション「noclobber」については第207回を参照。「&&」は論理演算子(第223回)を用いた記述方法。&&の左にあるコマンドが成功した場合に、右にあるコマンドを実行する。外部コマンドのtestでは「-o」を「条件A -o 条件B」というように使い、条件Aと条件Bがどちらも真のときに真になる。従って画面1の使い方は正しく解釈できず、「余分な引数です」というエラーメッセージが表示された。



画面1 画面1 ビルトインコマンドを無効にして外部コマンドが呼び出されたところ

 なお、同名の外部コマンドがない場合、単に指定したビルトインコマンドが使用できなくなります。例えば「enable -n history」とした場合、historyコマンドが使用できなくなります(画面2、※3)。

※3 上下矢印キーや「!番号」による履歴呼び出しには影響がない。



画面2 画面2 ビルトインコマンドを無効にしたところ


ビルトインコマンドの状態を一覧表示する

 ビルトインコマンドの状態を一覧表示するには「-a」オプションを使い「enable -a」とします(画面3)。「-n」オプションでコマンド名を指定しないと、無効になっているビルトインコマンドだけを一覧表示します。

コマンド実行例

enable -a

(全てのビルトインコマンドの状態を一覧表示する)(画面3

enable -n

(無効になっているビルトインコマンドを一覧表示する)


画面3 画面3 ビルトインコマンドの状態を表示したところ enable -npで現在無効なビルトインコマンドだけを表示している


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。