apt-get オートコンプリート

apt-get オートコンプリート

私は現在64ビットDebian Wheezyを実行しています。

apt-getのオートコンプリートにはいくつかの問題があります。 bash完成をインストールしました。

シェルからrootとしてログインしている場合は、apt-get autocompleteを使用できます(例:apt-get インストール wicd[タブ][タブ]]) 一致するすべてのパッケージが表示されます。ただし、root以外のユーザーにapt-getオートコンプリート機能を使用しようとすると(sudoを使用しても)まったく機能しません。ファイル名などの他の項目をオートコンプリートできます。

助けが必要ですか?

私の.bashrcと/etc/profileには次のコードがあります。

 if [ -f /etc/bash_completion ]; then
      . /etc/bash_completion
 fi

答え1

ファイル/etc/bash_completionが失われた可能性があります。

sudo apt-get install bash-completion

それはあなたのすべての問題を解決する必要があります。

/etc/bash.bashrcFaheem Mithaと他の人が指摘したように、すでにコメントアウトされていない行があることを考えると、うまくいきます。

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

原因:bash-completionパッケージにこのファイル (/etc/bash_completion) があります。bash以前はパッケージに入っていましたが、今はそうではありません。

梱包変更情報

答え2

これが必要かどうか覚えていませんが、/etc/bash.bashrcまだコメントを解除していない場合は、その行のコメントを解除してみてください。

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

答え3

以下を実行してみてください。

chsh -s /bin/bash $USER

答え4

私が覚えているように、コマンドパラメータのbashオートコンプリートはコマンドを介してcomplete行われます。 rootユーザーのbashrc(おそらく/ root / .bashrc)によってロードされたapt-get完了スクリプトが必要です。これを実行するにはrootログインが必要です。 Sudoはrootログインスクリプトをロードせず、権限のみを付与します。

root以外のユーザー用のオートコンプリートスクリプトが欠落しているため、apt-getに対してbashオートコンプリートが構成されていない可能性があります。もしそうなら、sudoersファイルからすべての権限を持つユーザーの関数をロードしてください。

関連情報