私は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に置き換えることができますが、source
POSIX標準化ではなく移植性が落ちるため、人々が離れる傾向があります。この場合、bashを拡張するために特別に設計されたプログラムであり、Bourne Shellで動作する必要があるプログラムではないため、必要に応じて読みやすさをksh
置き換えることができます。source
しかし、この動作(サブシェルを開かずに)は、DOS / Windows .BATスクリプトが一般的に機能する方法と同様に、実行されるシェルの状態を変更します。そのため、cd
シェルスクリプトに別のパスを入力すると、スクリプトが終了したときに.BATのようにそのパスに存在しなくなります。