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.