Apt-get otomatik tamamlama


9

Şu anda 64 bit Debian Wheezy kullanıyorum.

Apt-get için otomatik tamamlama ile bazı sorunlar yaşıyorum. Yüklü bash tamamlama var.

Bir kabukta kök olarak oturum açtıysam, apt-get (ex: apt-get install wicd [tab] [tab ]) için otomatik tamamlamayı kullanabilirim ve bana bununla eşleşen tüm paketleri gösterecektir. Ama başka bir kök olmayan bir kullanıcıda (sudo ile bile) apt-get için otomatik tamamlamayı kullanmaya çalışırsam hiç çalışmaz. Dosya adları gibi diğer şeyleri otomatik olarak tamamlayabilirim.

Herhangi bir yardım?

.Bashrc ve / etc / profile aşağıdaki kodu var

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

1
İlk olarak, root ve diğer kullanıcıların aynı kabuğa sahip olup olmadığını kontrol edin. Değilse, farklı davranışların nedeni budur. Aksi takdirde şunu deneyin: 'apt-cache - no-create pkgnames "wicd"'. Çalışıyor mu? Bash 'apt-get install wicd [TAB]' ın tamamlanmasını oluşturmak için kullanır.
angus

İkisi de aynı kabuğu kullanıyor, bash. bana verdiğiniz apt-cache komutu işe yarar ve tüm wicd paketlerinin bir listesini gösterir. Ayrıca, bilgisayarım ilk açıldığında ve ilk kez kabuğa girdiğimde (bir gui girişim yok) bulduğum şey, apt-get autocompletion herhangi bir hesapla çalışacak. Ancak fvwm-crystal pencere yöneticimi startx ile çalıştırırsam, bir terminal açarsam, sadece kullanıcı hesabımla tekrar çalışmayacaktır. Hala fvwm-kristalinde kök ile çalışır.
Dennis Linuz

Tamam, olan bu. / etc / profile ve .bash_profile giriş kabuklarında çalıştırılır. Yani, konsolda oturum açtığınızda veya 'su' çalıştırdığınızda. Bu durumlarda tamamlama çalışmaları yapıldığı için / etc / profile çalışıyor. Geriye kalan ~ / .bashrc. Çizgiyi kontrol edin '. / etc / bash_completion 'gerçekten yürütülüyor. Önce 'echo OK' gibi bir şey koyun, yeni bir terminal açın ve 'OK' yazıp yazmadığını kontrol edin.
angus

Hiç ZSH'yi test ettin mi?
Mohammad Efazati

.Bashrc dosyanız tamamen eksik olabilir; benim durumumdu
Galvani

Yanıtlar:


6

Dosyanızın /etc/bash_completioneksik olması gerekir.

sudo apt-get install bash-completion

tüm sorunlarınızı çözmelisiniz.

/etc/bash.bashrcFaheem Mitha ve diğerlerinin işaret ettiği gibi önerilmeyen satırlarınız olduğu göz önüne alındığında, şimdi çalışmalıdır:

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

Sebep: bash-completionPaket artık bu dosyaya sahip (/ etc / bash_completion). Eskiden bashpaketin içindeydi, ama artık değil.

paket değişikliği hakkında bilgi


/ etc / bash_completion dosyasında ne olmalı ? Koştum bash tamamlama yüklemek komutu ve her şey zaten son sürümüdür ama benim bash tamamlama dosyası boş
fifamaniac04

2

Bunu çalıştırmayı deneyin:

chsh -s /bin/bash $USER

1

Bunun gerekli olup olmadığını hatırlayamıyorum, ancak karşılık gelen satırları, /etc/bash.bashrchenüz önerilmediyse,

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

0

Hatırladığım gibi, komut parametreleri için bash otomatik tamamlama komut aracılığıyla yapılır complete. Kök kullanıcı bashrc (belki /root/.bashrc) tarafından yüklenmiş bir apt-get tamamlama komut dosyanız olmalıdır, bu nedenle çalıştırmak için root girişine ihtiyacınız vardır. Sudo root giriş komut dosyalarını yüklemez, sadece size ayrıcalık verir.

Belki de root olmayan kullanıcılar için otomatik tamamlama komut dosyasını kaçırıyorsunuz, bu nedenle apt-get için yapılandırılmış bash otomatik tamamlama özelliği yok. Bu doğruysa, sudoers dosyasında TÜM ayrıcalıklara sahip kullanıcılar için bu işlevi yükleyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.