Mac OS X'te $ PATH değişkenini nasıl sıfırlarım?


17

Yol değişkenimi berbat ettim ve şimdi çalıştırdığım bazı uygulamalar, tarih ve uyku gibi komutlar için Komut Bulunamadı (hata 127) diyerek hataları artırdı . Bu komutlar doğrudan kabukta yürütüldüğünde iyi çalışır.

Sanırım bu hatalı biçimlendirilmiş bir $ PATH değişkeni ile ilgisi vardır ve nasıl sıfırlamak için bilmek gerekir. Ben dosyaları sildiğiniz ~ / .bashrc , ~ / .bash_profile , /etc/bash.bashrc ve ~ / .bashrc ve ~ / .profile .

$ PATH'ımı başka hangi dosyalar tutabilir ? Yolu sıfırlamanın, yolumu tutabilecek sayısız dosyaya kazmaktan daha basit bir yolu var mı?

Not, bu yol sorunu sadece benim kullanıcı. Sistemimde bir test kullanıcısı yaptım ve yol normale döndü.

GÜNCELLEME: Teşekkürler. Sildiğim dosyalardan hangisini yaptığını bilmiyorum, ama işler tekrar çalışıyor. Siz 'Uzmanların' yapamayacağını yaptınız. Ve evet, Chris, haklıydın. Yaptığım PATH özelleştirmeleri bash_login'deydi. Ama bir şekilde bu özelleştirmeleri silmeden çalıştı. Sanırım coz olabilirdi 'RCEnvironment' adı verilen bu prefpanı kullanıyordum ve içinde tırnak işaretleri olan bir yola girdim: içinde PATH. Ben tırnak alır olsun bilmiyorum ve yerini almaz: $ PATH, böylece muhtemelen hatanın kökü. O prefpane bile olduğunu unuttum!


1
/ etc / profile, PATH için başlangıç ​​değerlerinin ayarlanması için en olası yerdir, ancak orada bulunan bir şey tüm kullanıcıları etkiler. Ayrıca listelemediğiniz ~ / .bash_login de var (yine de kaldırmış olabilirsiniz).
Chris Johnsen

Yanıtlar:


19

Bir ~ / .MacOSX / environment.plist dosyanız varsa, varsayılan PATH değeri sağlayıp sağlamadığını kontrol edin.

XML biçimindeyse (plists birçok biçimde olabilir), herhangi bir metin düzenleyicisiyle düzenleyebilirsiniz. plutil -lint ~/.MacOSX/environment.plistElle düzenlerseniz kontrol edin .

Veya XML veya ikili biçim plist dosyalarında kontrollü değişiklikler yapmak için varsayılanlar veya PlistBuddy gibi komutları kullanabilirsiniz .


Kabuğunuzun başlatma dosyalarından herhangi birinde kendi PATH'nizi her zaman ayarlayabilirsiniz.

Kabuğunuzun başlangıç ​​dosyalarına ( .bashrcveya .bash_profile/ .bash_login/ .profile) aşağıdakine benzer bir şey koyun :

PATH=/usr/bin:/bin:/usr/sbin:/sbin
export PATH

# add custom, local installations to PATH
PATH=/usr/local/bin:/usr/local/sbin:"$PATH"

# add MacPorts to PATH
PATH=/opt/local/bin:/opt/local/sbin:"$PATH"

Bu, kabuk başladığında varsayılan PATH ayarlanmış olanı geçersiz kılar (birincisi PATH=kullanmaz $PATH, bu nedenle her zaman yalnızca verdiğiniz şeyle başlar).

Sadece 'giriş' dosyalardan biri şimdiye (mevcutsa ve okunabilir ilkini kullanılacaktır ~/.bash_profile, ~/.bash_loginve ~/.profilekullanılacak). .profilediğer kabuklarla geriye dönük uyumluluk içindir; kullanıyorsanız, bash'a özgü sözdiziminden uzak tuttuğunuzdan emin olun . .bash_loginVeya ile birlikte giderseniz .bash_profile(adlar dışında işlevsel olarak eşdeğerdirler), [[ -e ~/.bashrc -a -r ~/.bashrc ]] && source ~/.bashrc ]]giriş kabuklarının da yaptığınız özelleştirmeleri alması için üst tarafa benzer bir satır kullanın .bashrc.

Tüm bash örneklerinin aynı PATH değerine sahip olmasını istiyorsanız , kullanın .bashrc. Sıklıkla tek bir kabuğun PATH'sini komut satırından etkileşimli olarak değiştirirseniz ve bu değiştirilmiş PATH'yi alt kabuklarda (muhtemelen çok yaygın olmayan bir durumda) kullanmak istiyorsanız, ifadeleri bunun yerine 'giriş' dosyalarından birine koymalısınız. . Giriş dosyalarından sadece birini seçin ve kullanın.


8

1. terminalinizi açın

2. öncelikle ilk kontrol edebilirsiniz $PATH, tipi

echo $ PATH

terminale

3. eğer $PATHbu terminal geri verdi istediğiniz yol, o zaman iyi; değilse, yazın

dışa aktarma PATH / / usr / bin: / bin: / usr / sbin: / sbin

, sonra yazın

~ / .bash_profile

yazın ve yazın

~ / .bash_profile dosyasını açın

, sonra bir EditText açıldı bulacaksınız, şimdi o EditText istediğiniz yolu yazın; Örneğin, şunu yazın

PATH = / usr / bin: / bin: / usr / sbin / sbin

( $PATHMac için varsayılan $PATHdeğerdir, bunu muhtemelen yazmanız gerekir , böylece bunu yazmanız gerekir), kaydedin ve ardından EditText'i kapatın, ardından Terminal'i kapatın.

4.Şimdi daha önce değiştirdiniz $PATHveya Mac'in varsayılanına sıfırladınız $PATH!


2
Yukarıda etkisi olmayan çok şey olduğunu hissediyorum. Neden touchgerekli olduğunu düşünüyorsun ? Ayrıca, Terminal'i yine de kapatırken, neden exportkomut satırında çalıştırın, sadece onu ~/.bash_profile( exportçok da ihtiyaç duyuyor ) eklemek ve onunla yapılması gerekiyor? (Alternatif olarak, source ~/.bash_profiledeğişiklikleri geçerli pencereye uygulamak için çalıştırın .)
Arjan

Doğru, bazıları gereksiz. PATH değerinin .bash_profile olarak kaydedilmesi gerekir.
ThinkCode

1

rc/profileGösterilen Chris Johnson düzenlemeleri de işe yarıyor /etc/profile.

Az önce ekledim:

export PATH="/usr/local/mariadb/bin:$PATH"

Benim için /etc/profilemariadb yüklemek tamamlamak için Mac OS X 10.9 Mavericks'te dosyası (unsuru olarak iş gören büyük bir MySQL için yedek açılan cinsinden).


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.