ターミナルで自動完了を有効にする方法

この 先端 頻繁に(毎日)使用するすべての人に役立ちます ターミナル またはGNU / Linuxシステムのコンソール。

始める前に

bash-completionパッケージがインストールされていない場合は、次のようにインストールします。

aptitude installbash-completion

すべてのユーザーのTTYで自動完了を有効にする

/ etc / profileを開きます

ナノ/その他/プロファイル

/ etc / profileで次の行を調べます...

#インタラクティブシェルでbash完了を有効にする
#if [-f / etc / bash_completion] &&! shopt -oq posix; その後
#。 / etc / bash_completion
#fi

そして、次のように置き換えます。

if ["$ BASH"]; その後
       if [-f / etc / bash_completion] &&! shopt -oq posix; その後
            。 / etc / bash_completion
       fi
fi

後者は、rootを含むすべてのユーザーに対してbash_completionをアクティブにします。 ただし、TTYでのみアクティブ化され、ターミナルエミュレーターではアクティブ化されません。

TTYをリセットし、それだけです。

ご覧のとおり、元のファイルにifを追加しました。これにより、bash_completionがBashにいるときにのみ実行されることが確認されます。 その条件がないと、GDMはbash_completionを呼び出し、何らかの理由でxsessionと競合するため、前述のエラーが発生します。

すべてのユーザーの端末エミュレーターで自動完了を有効にする

/etc/bash.bashrcを開きます

#nano /etc/bash.bashrc

/etc/bash.bashrcで次の行を探します...

#インタラクティブシェルでbash完了を有効にする
#if [-f / etc / bash_completion] &&! shopt -oq posix; その後
#。 / etc / bash_completion
#fi

...そして、次のように「#」を削除します(コメントを解除します)。

#インタラクティブシェルでbash完了を有効にする
if [-f / etc / bash_completion] &&! shopt -oq posix; その後
    。 / etc / bash_completion
fi

後者は、rootを含むすべてのユーザーに対してbash_completionをアクティブにします。 ただし、ターミナルエミュレータでのみ有効になり、TTYでは有効になりません。

ターミナルを再起動すると、変更が有効になります。

XNUMX人のユーザーに対してのみター​​ミナルエミュレーターで自動補完を有効にする

ファイル〜/ .bashrcを作成(または存在する場合は編集)する必要があります。

ナノ〜/ .bashrc

次のように追加します(または、存在しない場合は検索しますが、/ etc / bash.bashrcで行われるようにコメントします)。

#インタラクティブシェルでbash完了を有効にする
if [-f / etc / bash_completion] &&! shopt -oq posix; その後
    。 / etc / bash_completion
fi

-ファイルを作成する場合は、これらの行を追加するだけです。
-これらの行が存在するが存在しない場合は、ファイルの最後に追加します。
-存在し、これらの行が存在する場合は、単にコメントを外します。

コンソールを再起動すると、変更が有効になります。

必要に応じて自動完了を有効にする

使用したいときにbash_completionを実行する必要があります。 ターミナルで(exitコマンドを使用して)セッションを終了するか、グラフィカル環境にいる場合は使用しているターミナルを閉じると、非アクティブになります。 いつでも実行するには、次のようにします。

。 / etc / bash_completion
カルロスフィオリティに感謝します!

出典:98年のノート


Googleで優先ソースとして追加する