Mac OS X'teki komutlar için Bash tamamlama


38

Ubuntu'da olduğu gibi komut yazarken program adlarını nasıl alabilirim finkve macportsotomatik olarak tamamlayabilirim apt-get?

Örneğin ben yazarken

sudo port install ca

ve tuşuna basın tab, terminalin otomatik olarak tamamlamasını veya kullanılabilir komutları göstermesini istiyorum.

OS X sonra otomatik komutları bile tamamlamaz sudo!

Yanıtlar:


69

bash-bitirme işlemi şunları tamamlar:

  • Komut adları sudove sonrasıwhich
  • Macports ve Homebrew paket adları (isteğe bağlı)
  • known_hostsGibi komutlar için ana bilgisayar adlarıssh
  • Klasörler açık CDPATH

Ve bunun gibi. Tamamlama komutlarının bir listesini yazdırabilir complete -pve ile bir işlevin kaynağını görebilirsiniz declare -f.

Homebrew veya MacPorts and Bash’i Takma

İlk önce, Homebrew veya MacPorts'u talimatlara göre kurmanız gerekir . Not: İkisini de çakıştığı için kurmayın.

Ardından, Bash'in daha yeni bir sürümünü yükleyin. OS X'teki yerleşik Bash biraz eski ve başarabileceğiniz Bash> 4.1 ile daha fazla tamamlama seçeneği elde edeceksiniz

brew install bash

veya

sudo port install bash

Homebrew veya MacPorts kullanıp kullanmadığınıza bağlı olarak.

Homebrew ile bash tamamlama yükleme

Yüklemek için bash-completionyapmanız gerekenler:

brew install bash-completion

Ve aşağıya ~/.bash_profileşunları ekleyin :

if [ -f $(brew --prefix)/etc/bash_completion ]; then
  . $(brew --prefix)/etc/bash_completion
fi

Homebrew şu anda Bash 3.x ile çalışan, bash tamamlamanın (1.3) eski bir sürümünü yükler, ancak yine de, Bash 4.x kullanılması önerilir.

MacPorts ile bas-tamamlamayı yükleme

MacPorts ile:

sudo port install bash-completion

Ardından, ekle ~/.bash_profile:

if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then
  . /opt/local/etc/profile.d/bash_completion.sh
fi

Bkz trac.macports.org/wiki/howto/bash-completion liman adları için tamamlanması için ilgili talimatlar için.


MacPorts'un bash-completionpaketi, paket adlarının daha sonra ek argümanlar olarak tamamlanması için destek sağlar port <verb>. Bkz burada satırlar 48-58. Bu davranış, MacPorts wiki'de belirtilir: " Bu sadece dosyalar ve dizinler için değil, aynı zamanda örneğin komutları için de geçerlidir port. Bu nedenleport <Tab> , açıkça açıkça bahsetmesine rağmen , tüm olası komutların bir listesini yazıp alırsınız. " fiillerin tamamlanması (ki bu çok basittir).
Daniel Beck

İsimler paket edilir otomatik olarak tamamlanıp tamamlanmayacağını, wiki sadece söz etmez. Bağlantılı komut dosyası koduna bakın.
Daniel Beck

variants.confMacPorts kendisi tamamlanması için değil; variants.conf, bağladığınız wiki sayfasında açıklandığı gibi tüm portlar için otomatik olarak ayarlanan varyantları tanımlar . Bu çizgiyi eklemek, kurduğunuz portlar için mümkün olduğunda bash tamamlama desteğinin etkinleştirilmesine neden olur.
Kevin Reid

Homebrew’de otomatik tamamlama hakkında ipucu için teşekkür ederiz. Tek başına bu cevabı bir oylama kazandı.
Paul Wagland

Mükemmel, bu etkin makeotomatik tamamlama, tam istediğim şeyi.
Мати Тернер
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.