Saya di Debian Jessie 8.6. Saya perhatikan bahwa apt-get
mendapatkan pelengkapan otomatis bash yang diharapkan saat menekan tab untuk paket dan perintah, tetapi ketika mencoba menggunakannya dengan apt
itu tidak berfungsi. Saya ingat menggunakan xubuntu 16.04 di mana ia bekerja, jadi saya merasa aneh bahwa itu tidak berfungsi di sini. Apakah ada cara untuk mengaktifkannya untuk perintah apt
juga? Jika ya, bagaimana caranya?
debian
apt
autocomplete
Andrea
sumber
sumber
Jawaban:
Debian tidak datang dengan 'selesai bash' diinstal dan diaktifkan.
Untuk memperbaikinya, jalankan (sebagai root):
Kemudian, Anda memiliki dua opsi. Anda dapat (1) mengaktifkannya atas dasar per pengguna untuk Anda sendiri, atau (2) mengaktifkannya secara global.
Jika Anda ingin mengaktifkannya hanya untuk pengguna Anda, edit
~/.bashrc
- tambahkan berikut ini:Untuk mencobanya tanpa keluar dan masuk kembali, jalankan:
Atau buka shell baru. Kemudian coba gunakan tab-completion dengan apt. Titik dan spasi di awal (
.
) sama dengan menggunakansource
kata kunci di bash, tetapi lebih portabel.Jika Anda ingin berfungsi saat
su
masuk ke akun root, lakukan hal yang sama di direktori home root (biasanya/root
).Untuk mengaktifkannya secara global, lakukan perubahan dari (1) di file
/etc/bash.bashrc
sebagai gantinya.Untuk siapa pun yang bertanya-tanya mengapa karya ini,
.
di depan/etc/bash_completion
tidak tidak mengacu pada direktori saat ini, karena memiliki ruang di sekitarnya. Ini malah membuat konten file yang diberikan dievaluasi dalam shell yang sedang berjalan, bukannya dieksekusi dalam subkulit baru. Itu standar di sini.Di Bash, ini
.
bisa diganti dengan perintahsource
, tapi ini tidak distandarisasi oleh POSIX dan kurang portabel sehingga saya cenderung menjauhkan orang dari menggunakannya. Dalam hal ini, karena ini adalah program khusus untuk memperluas bash, daripada sesuatu yang perlu bekerja dalam shell bourne atauksh
, Anda dapat merasa bebas untuk menggantikansource
keterbacaan.sumber
Dalam Debian 9 Stretch cukup edit /etc/bash.bashrc dan batalkan komentar:
sumber
Salin file konfigurasi ini dari Ubuntu: / usr / share / bash-completion / completion / apt ke direktori yang sama di Jessie. Anda juga bisa mendapatkan file di sini: http://pastebin.com/PRBMt3an
sumber
Bagaimana saya menyelesaikannya
Aku punya masalah penyelesaian otomatis mencoba untuk melengkapi otomatis
wget
denganapt-get install wg[TAB][TAB]
dan saya berhasil menyelesaikannya dengan menghapus--no-generate
parameter dari lalat di bawah ini:Perlu disebutkan bahwa file-file ini tersedia hanya setelah Anda menginstal
bash-completion
.The
--no-generate
parameter saya maksudkan dapat dilihat pada baris di bawah, tapi saya dihapus semua--no-generate
, tidak hanya dari baris ini: https://github.com/scop/bash-completion/blob/master/completions/apt-get# L28Bagaimana saya sampai pada titik ini?
Aku sampai ke titik ini setelah menjalankan
set -v
sebelumnyaapt-get install wg[TAB][TAB]
, yang menunjukkan bahwa perintah dieksekusi adalah:dan hasilnya adalah kesalahan:
Ketika saya dieksekusi
apt-cache pkgnames wg
tanpa--no-generate
Saya dengan benar mendapat daftar untuk pelengkapan otomatis:Semoga ini membantu.
sumber