どうやって解決しましたか?

どうやって解決しましたか?

私はDebian Jessie 8.6を使用しています。apt-getパッケージとコマンドタブをクリックすると、予想されるbashオートコンプリートが表示されますが、一緒に使用しようとすると機能しないaptことがわかりました。私はxubuntu 16.04を使っていたことを思い出して動作しましたが、ここではうまくいかないのは奇妙だと思います。aptコマンドにも有効にする方法はありますか?それでは、どうすればいいですか?

ベストアンサー1

Debian には「bash-completion」がインストールされ、アクティブになっていません。

UbuntuバックグラウンドでDebianを起動すると、デフォルトでプリインストールされて有効になっているため、混乱を招く可能性があります。

この問題を有効/修正するには、rootとして次を実行します。

apt-get install bash-completion

次に、2つのオプションがあります。あなたはできます:

 1. 各ユーザーに対して有効または

 2. グローバルに有効にします。

1. ユーザーに対してのみ有効にするには、編集して~/.bashrc以下を追加します。

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

ログアウトして再度ログインしないでください。

    . ~/.bashrc

または、新しいシェルを開いてみてください。次に、aptを使用してタブの完成を完了します。先行点とスペース(. )はbashでキーワードを使用するのと同じですsourceが、移植性が優れています。

suルートアカウントに入ったときに機能させるには、ルートのホームディレクトリ(通常/root)で同じことを行います。

2.グローバルに有効にするには(1)代わりにファイルに保存してください/etc/bash.bashrc

なぜこれがうまくいくのか疑問に思う人なら、.以前の方法はうまく/etc/bash_completionいきます。いいえ周囲にスペースがあるので、現在のディレクトリを参照します。代わりに、指定されたファイルの内容は新しいサブシェルで実行されるのではなく、現在実行中のシェルで評価されます。ここでは標準化されています。

Bashではこれを.commandに置き換えることができますが、sourcePOSIX標準化ではなく移植性が落ちるため、人々が離れる傾向があります。この場合、bashを拡張するために特別に設計されたプログラムであり、Bourne Shellで動作する必要があるプログラムではないため、必要に応じて読みやすさをksh置き換えることができます。source

しかし、この動作(サブシェルを開かずに)は、DOS / Windows .BATスクリプトが一般的に機能する方法と同様に、実行されるシェルの状態を変更します。そのため、cdシェルスクリプトに別のパスを入力すると、スクリプトが終了したときに.BATのようにそのパスに存在しなくなります。

おすすめ記事