shopt
を使用して Bash シェルの動作を微調整すると、50 以上の設定を制御できます。 Linux システムを好みに合わせて調整する方法を説明します。
ショップ内蔵
shopt
ビルトインはすべてのバージョンの
Bash シェル
の一部であるため、何もインストールする必要はありません。
shopt
で利用できるオプションの数は、長年にわたって着実に増加しています。したがって、使用している Bash のバージョンが古いほど、
shopt
オプションのリストは短くなります。
マシン上で何かが動作していないように見える場合は、Bash の
man
ページのエントリを確認し、そのオプションがお使いのバージョンの
shopt
で利用可能であることを確認してください。
以下ですべての
shopt
オプションをカバーします。また、その使用方法について説明し、いくつかの例を共有します。そこから、Bash のマニュアル ページまたは
GNU Bash リファレンス マニュアル
を調べて、これらのオプションのいずれかが便利または魅力的かどうかを確認できます。
一部の
shopt
オプションはデフォルトで有効になっており、Bash のデフォルト動作の一部を形成します。 Bash への短期的な変更として
shopt
オプションを有効にすることができます。シェルを閉じると、デフォルトの動作に戻ります。
ただし、Bash シェルを起動するたびに変更された動作を利用できるようにしたい場合は、変更を永続的にすることができます。
ショップのオプション
shopt
オプションは53種類あります。オプションを指定せずに
shopt
コマンドを使用すると、これらがリストされます。出力をパイプすると、
wc
コマンドを実行すると、
行、単語、文字がカウントされ
ます。各
shopt
オプションは独自の行にあるため、行数がオプションの数になります。
次のように入力します。
買い物 |トイレ
すべてのオプションを表示するには、出力を
column
コマンドを使用してパイプ処理し
て columns にオプション名を表示する
か、または、それを
less
にパイプ処理します。
次のように入力します。
買い物 |カラム
Linux マニュアルで shopt を見つける
shopt
とそのオプションについて説明するセクションは、Linux マニュアルの Bash セクションにあります。 Bash セクションの長さは 6,000 行を超えています。
shopt
の説明はスクロールして見つけることも、マニュアル内で検索することもできます。
これを行うには、マニュアルの Bash セクションを開いてください。
マンバッシュ
マニュアルでは、
/
を押して検索を開始します。次のように入力し、Enter キーを押します。
assoc_expand_once
shopt
オプション セクションの開始部分が
man
ウィンドウに表示されます。
オプションの設定と設定解除
shopt
オプションを設定または設定解除するには、次のコマンドを使用します。
- -s : 設定または有効化します。
- -u : 設定を解除するか、無効にします。
一部のオプションはデフォルトで有効になっているため、どのオプションがオンになっているかを確認すると便利です。オプション名を使用せずに、
-s
および
-u
オプションを使用してこれを行うことができます。これにより、
shopt
オンとオフのオプションをリストします。
次のように入力します。
買い物 -s
ショップ -u |カラム
-s
または
-u
コマンドを使用せずに
shopt
オプションを使用すると、各オプションのオンまたはオフの状態を確認できます。
たとえば、次のように入力して、
histverify
オプションの設定を確認できます。
購入履歴を確認する
次のように入力してオンに設定できます。
shopt -s histverify
次に、次のように入力して再度確認します。
購入履歴を確認する
histverify
オプションは、
history
コマンドの一側面の動作方法を変更します。通常、
!245
のように番号で参照してコマンドを繰り返すように
history
要求すると、コマンドはコマンド履歴から取得され、すぐに実行されます。
コマンドをレビューして期待どおりであることを確認し、必要に応じて編集したい場合は、次のように入力して
shopt histverify
オプションをオンに設定します。
!245
コマンドが取得され、コマンド ラインに表示されます。 Enter キーを押すと、削除、編集、または実行できます。
autocd オプション
autocd
オプションを on に設定すると、コマンド ラインにディレクトリの名前を入力して Enter キーを押すと、ディレクトリの前に
cd
と入力したものとして扱われます。
次のように入力して
autocd
オプションをオンにします。
shopt -s autocd
次に、ディレクトリの名前を入力します。
書類
cdspell オプション
cdspell
オプションをオンにすると、Bash はディレクトリ名の単純なスペルミスやタイプミスを自動的に修正します。
次のように入力して
cdspell
オプションを設定します。
shopt -s cdspell
頭文字を大文字にする必要があるディレクトリを小文字で変更するには、次のように入力します。
CDドキュメント
次に、次のように入力して、名前に追加の「t」を含むディレクトリ名を試します。
cd ../写真
Bash は、スペルミスに関係なく、各ディレクトリに変更されます。
xpg_echo オプション
xpg_echo
オプションが on に設定されている場合、echo コマンドは、改行の
\n
や水平タブの
\t
などのエスケープ文字に従います。
まず、次のように入力して、オプションが設定されていることを確認します。
shopt -s xpg_echo
次に、
echo
に渡す文字列に
\n
を含めます。
echo "これは 1 行目です\nこれは 2 行目です"
エスケープされた改行文字により、出力内で強制的に改行が行われます。
これは
-e
(
エスケープ解釈を有効にする
)
echo
オプションと同じ動作を生成しますが、
xpg_echo
これをデフォルトのアクションにすることができます。
ドットグロブオプション
dotglob
オプションは、少し注意して扱う必要があります。これにより、ピリオド (
.
) で始まるファイルとディレクトリを名前の拡張または「グロビング」に含めることができます。これらは「ドット ファイル」または「ドット ディレクトリ」と呼ばれ、通常は隠されています。
dotglob
オプションは、名前の先頭のドットを無視します。
まず、次のように入力して、「geek」で終わるファイルまたはディレクトリを検索します。
ls *オタク
1 つのファイルが見つかり、リストされます。次に、次のように入力して
dotglob
オプションをオンにします。
shopt -s ドットグロブ
同じ
ls
コマンドを発行して、「geek」で終わるファイルとディレクトリを検索します。
ls *オタク
今回は 2 つのファイルが見つかり、リストされます。そのうちの 1 つはドット ファイルです。
dotglob
オプションをオンに設定している場合、
rm
と
mv
使用する場合は注意が必要です。
nocaseglob オプション
nocaseglob
オプションは
dotglob
オプションと似ていますが、
nocaseglob
ではファイル名とディレクトリの大文字と小文字の違いが名前展開で無視される点が異なります。
次のように入力して、「how」で始まるファイルまたはディレクトリを検索します。
どうやって*
1 つのファイルが見つかり、リストされます。次のように入力して
nocaseglob
オプションをオンにします。
shopt -s nocaseglob
次に、
ls
コマンドを繰り返します。
どうやって*
2 つのファイルが見つかり、そのうちの 1 つに大文字が含まれています。
変更を永続化する
加えた変更は、現在の Bash シェルを閉じるまでのみ持続します。これらを異なるシェル セッション間で永続的にするには、それらを「.bashrc」ファイルに追加する必要があります。
ホーム ディレクトリで次のコマンドを入力して、グラフィカル Gedit テキスト エディタで「.bashrc」ファイルを開きます (または、好みのエディタを使用するようにファイルを変更します)。
gedit .bashrc
gedit
エディターが開き、「.bashrc」ファイルがロードされます。いくつかの
shopt
エントリがすでに含まれていることがわかります。
ここに独自の
shopt
オプションを追加することもできます。追加したら、変更を保存してエディターを閉じます。これで、新しい Bash シェルを開くたびに、オプションが設定されるようになります。
見渡す限りのオプション
確かに、
shopt
コマンドには多くのオプションがありますが、すべてを一度に理解する必要はありません。たくさんあるので、興味のないものもあるかもしれません。
たとえば、特定の古いバージョンと互換性のある方法で Bash を動作させるものはたくさんあります。それは誰かにとっては役に立つかもしれませんが、それはかなりニッチなケースです。
Bash の
マニュアル ページ
または
GNU Bash リファレンス マニュアル
を参照してください。どのオプションがあなたにとって変化をもたらすかを決定し、それを試してください。ファイル名とディレクトリ名の展開方法に影響を与えるオプションには注意してください。慣れるまで、
ls
などの無害なコマンドを使用して試してください。





