#author("2020-03-21T14:20:57+00:00","","") #topicpath /////////////////////////////////////////////////////////////////////////////// * 目次 [#w130cf32] #contents(); /////////////////////////////////////////////////////////////////////////////// * command-not-found [#i416b93c] //============================================================================= ** command-not-found とは [#l342fbfd] - shell でコマンドを打ち間違えて、存在しないコマンド名を実行しようとした際、ディストリビューション(例えばUbuntuなど)によっては暫く待たされた挙句、以下のようなメッセージが出てくることがある: -- 管理者グループに属するユーザの場合 $ sl プログラム 'sl' はまだインストールされていません。 次のように入力することでインストールできます: sudo apt install sl -- 管理者グループに属さないユーザの場合 $ sl プログラム 'sl' はまだインストールされていません。 'sl' を利用するために,コンピュータの管理者に 'sl' をインストールすることを相談してください - これは、 command-not-found というパッケージによって実現されている機能。bash に command_not_found_handle という関数が用意されていて、そこから呼び出されている。 - Ubuntuのbashパッケージが提供する/etc/bash.bashrcには最初から command-not-foundがインストール済みならcommand_not_found_handleを定義するスクリプトが組み込まれている。この為、ユーザーが特に設定せずともcommand-not-foundが呼び出されるようになっている。 //============================================================================= ** command-not-found を無効化する [#l08325a8] command-not-found を無効化するには、以下の何れかを行う: - command-not-found パッケージを削除する - パッケージの管理権限や /etc/bash.bashrc を編集する権限がない場合は、 ${HOME}/.basrc の最後に以下の行を追加する: unset command_not_found_handle /////////////////////////////////////////////////////////////////////////////// * 参考リンク [#fc76a227] - [[Ubuntu Weekly Recipe 第516回 command-not-found再発見>https://gihyo.jp/admin/serial/01/ubuntu-recipe/0516]]