Çoğu komut için terminal iadeleri bulunamadı Mac OSX


16

Mac OSX ve UNIX tabanlı sistemlerde gerçekten yeniyim. Mac Mini'imde birkaç Windows oyunu çalıştırmak istedim, böylece Wine ve MacPorts'u yüklemeye başladım.

Bunu yaptıktan sonra, yazdım sudo port install wineve terminal bulunamadı bir hata verdi. Ben gibi diğer temel komutları çalıştı sayve clearve hepsi bulunamadı hatası döndürür. Ben bu googled ve şimdiye kadar anladığım tek şey PATH yanlış ayarlanmış olabilir. Bu yüzden bu komutu çalıştırdım: echo $PATHve bunu döndürdü:

/ Opt / local / bin: / opt / local / sbin: / opt / local / bin: / opt / local / sbin: / opt / local / bin

Birisi bana bu yolu nasıl doğru ayarlayacağımı söyleyebilir mi? Mac için tam bir acemi oldum ve .bash_profile veya bu dosyaların herhangi birinin nerede olduğu hakkında hiçbir fikrim yok. Yardımcı olursa, Xcode ve Xcode için Komut Satırı araçlarını da yükledim. Dağ aslanı yönetiyorum.


3
Maalesef, Unix hakkında bir eğiticiye ihtiyacınız olduğunu düşünüyorum, ancak soruyu cevaplayabilsek de, muhtemelen anlamanıza yardımcı olacak yeterli arka plan sağlayamıyoruz. Şarap gelince - en kolay olanı terminal kullanımı gerektirmeyen Crossover (maliyetler) veya Wineskin (ücretsiz)
user151019

Yanıtlar:


12

$ PATH bu klasörleri içermelidir: /usr/bin:/usr/sbin:/bin:/sbin.

Deneyin düzenleme ~/.bash_profile, ~/.profileya da ~/.bash_login(örneğin /usr/bin/open ~/.bash_profile -a TextEdit) ve yolunu değiştirmek herhangi satırları yorum.

Bu çalışırsa, gibi bir satır ekleyebilir export PATH=/opt/local/bin:/opt/local/sbin:$PATHiçin ~/.bash_profile.


Dışa aktarma PATH = / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin denedim ve çalışıyor ancak terminali kapatıp yeniden açtığımda, yine aynı hataya geri dönüyor. Ben tam bir çaylağım ve ~ / .bash_profile veya bu dosyaların herhangi birinin nerede olduğu hakkında hiçbir fikrim yok. Gizli olduklarını varsayıyorum?
Jack Copeland

~/ana klasördür ( /Users/username/). Bir nokta ile başlayan dosyalar gizlenir, ancak bunları örneğin ile gösterebilirsiniz ls -la.
Lri

Benim .bash_profile zaten bütün bu içeriyor ama terminali onları kesilirken hala böyle ng veya mssql komutlarla aynı sorun var
dbnex14

3

Bana benzer bir sorun oluyordu, bu yüzden yaptığım şey:

1) PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"geçici olarak çalışmasını sağlamak için terminale ihracat yazmak

2) bash_profile yazarak düzenleme /usr/bin/open ~/.bash_profile -a TextEdit

3) bash_profile dosyamı açtığımda, son satır dışa aktarmanın bazı garip sembollerle gerçekten dağınık göründüğünü fark ettim, bu yüzden tamamen export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Ben bu konuda kesinlikle acemiyim ama SE ile ilgili farklı sorulardan çözüm parçaları okuyarak bu adımları atmayı başardım, umarım başka birine yardımcı olabilir.


2

Görünüşe göre sadece yol eklemek yerine yolunuzun üzerine yazmışsınız.

PATH'inizi ayarladığınızda "${PATH}", mevcut yolunuzu da dahil etmek için dahil ettiğinizden emin olun .

Varsayılan olarak $ PATH birkaç dosyada ayarlanır. Teknik olarak, ana dizininizdeki .bash_profile dosyasında $ PATH dosyanıza eklemelisiniz.

Belirli bir klasörün PATH'nize eklenmeden önce var olup olmadığını kontrol etmek için bir öneri.

Örneğin:

if [ -d /usr/local/bin ] ; then
    PATH=/usr/local/bin:"${PATH}"
fi

if [ -d /usr/local/mysql/bin ] ; then
    PATH=/usr/local/mysql/bin:"${PATH}"
fi

if [ -d /opt/local/bin ] ; then
    PATH=/opt/local/bin:"${PATH}"
fi

if [ -d /opt/local/sbin ] ; then
    PATH=/opt/local/sbin:"${PATH}"
fi

if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi

( -d directoryKomut dizinin var olup olmadığını kontrol eder)


1

Benim için yanlış bir dışa aktarma komutunu kullanarak PATH için yeni bir dizin eklemeye çalıştığımda bu sorunla karşılaştım ~/.bash_profile. Her iki örnek de aşağıdadır.

export PATH=/some/new/path:PATH (incorrect, note missing $)

vs

export PATH=/some/new/path:$PATH (correct)

0

Yanıtladığı düzeltmeye ek olarak, test etmek için bir şey de söylemek istiyorum.

Geçerli pencerenizde kötü bir PATH değişkeni varsa ve sisteminiz daha bozuk değilse, yolu kolayca düzeltebilirsiniz:

echo $PATH
/usr/libexec/path_helper

Yukarıdaki iki komutun çıktısını karşılaştırın. "Güvenli" bir yola geri dönmek istiyorsanız, sağlanan satırı kopyalayıp path_helperbu terminale yapıştırın . Değiştirilmemiş bir Mac 10.11 sisteminde, bu çıktıyı yardımcı araçtan almalısınız:

PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"; export PATH;

Yolunuzun özelleştirilmesi gerekiyorsa, bu soruda da mükemmel cevaplara bakın.


1
Veya PATH=$(/usr/bin/getconf PATH)geçerli kabukta kullanılabilir bir PATH elde edebilirsiniz . /usr/localdeğiştirilmemiş bir sistemde mevcut değildir.
fd0

Excellent @fdo - Getconf'u neyin karıştırabileceğinin farkında değilim, bu yüzden sadece zor kodlama işleri kadar iyi olabilir. Aynı zamanda "kaba kuvvet" düzeltmemden daha kısa.
bmike

path_helperPATH'yi geçerli PATH'den, /etc/pathsdosyadan ve içindeki tüm dosyalardan oluşturur /etc/paths.d. İçindeki herhangi bir PATH ayarından da etkilenebilir /etc/launchd.conf. getconfçekirdeğe kodlanmış PATH sistemini yazdırır sysctl user.cs_path.
fd0

0

Terminalinizin ./bash_profile dosyasının üzerine yazılmış olabilir.

export PATH=/usr/bin:/bin:/usr/sbin:/sbin/usr/local/binGeçerli PATH ayarlarını geçici olarak yeniden yazmak için terminalde kullanın . Bu size erişim vermelidir sudove nanodaha sonra kullanmak hangi nano .bash_profile. Benim için dosyadaki her şeyi silmek işe yaradı.

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.