OS X - Kişisel bir bin dizini (~ / bin) oluşturun ve tam yollarını belirtmeden komut dosyalarını çalıştırın


19

Yani, yapmaya çalıştığım şey binana klasörümde kişisel bir dizin oluşturmak . Aşağıdaki klasörü oluşturdum:

/Users/thi/bin

Komut dosyalarımı bu klasöre koydum, ancak Terminal'e yazarsam:

myScript

Çalışmıyor.

Bana bu depo yolunu ihraç etmem gerektiği söylendi, bununla ilgili bir şey echo $PATH, ama nasıl yapılacağını bilmiyorum.


Yanıtlar:


20

Dosyaya aşağıdakileri eklemeniz gerekir ~/.profile:

export PATH=/Users/thi/bin:$PATH

Sonra source ~/.profile

Bu dosyayı oluşturmanız gerekebileceğini ve dosya ile başladığı .için metin düzenleyicisi gibi bir uygulama aracılığıyla düzenleme için bulucuda görünmeyebileceğini unutmayın. Gizli olanlar dahil tüm dosyaları listelemek için şunu kullanın:

ls -la ~/

.Bashrc dosyama export PATH = / Users / thi / bin: $ PATH eklersem, işe yarayacak mı? Doğru mu?
Thi G.

12
$HOME/binBunun yerine daha iyi kullanım /Users/thi/bin. Daha sonra ayarlarınızı, kullanıcı adınızın belki de farklı olduğu başka bir makineye kopyalayabilirsiniz.
lhf

Terminalde yazarsam: PATH = $ HOME / bin: $ PATH yazıp şunu yazın: export PATH. Hile yapacak mı?
Thi G.

1
Bunu yaparsanız, ayarları şimdi değiştirir, ancak gelecekteki önyüklemelerde değiştirmez. Yolu, yeniden başlatmalardan kurtulacak şekilde değiştirmek için, bu komutları .profiledosyanıza eklemeniz gerekir .
Daniel

1
Harika, cevaplar için hepinize teşekkür ederim. Ben eklendi export PATH=$HOME/bin:$PATHkardeşime karşı $HOME/.bash_profile.
Thi G.

10

Bash kullanıyorsanız, aşağıdakine böyle bir satır ekleyin ~/.bash_profile:

PATH=~/bin:$PATH

PATHvarsayılan olarak dışa aktarma olarak işaretlendiğinden, kullanmanıza gerek yoktur export.

Her ikisi de ~/.bash_profileve ~/.profilevarsa, bash yalnızca ~/.bash_profileetkileşimli bir giriş kabuğu olarak çağrıldığında okunur . ~/.profilebash ile aynı yapılandırma seçeneklerini anlamayabilecek diğer mermiler tarafından da kullanılır.

Terminal ve iTerm 2, varsayılan olarak giriş kabukları olarak yeni kabuklar açar. Bash etkileşimli bir giriş kabuğu olarak çağrıldığında, okur ~/.bash_profileancak okumaz ~/.bashrc. Diğer platformlardaki terminal emülatörleri genellikle giriş yapmayan kabuklar olarak yeni kabuklar açarlar, örneğin bash okur, ~/.bashrcancak açmaz ~/.bash_profile. OS X kullanıcıları sık kullandığınız ~/.bash_profilekarşılık gelen kişisel yapılandırma dosyası olarak ~/.bashrcdiğer platformlarda, ancak kaynak da yaygındır ~/.bashrcgelen ~/.bash_profileveya olmayan giriş kabukları gibi yeni kabukları açmak için Terminal veya ITERM 2 anlatmak için.

Ayrıca yolu genel olarak /etc/pathsveya içinde daha küresel olarak değiştirebilirsiniz /etc/launchd.conf, ancak birçok bağlamda yol yine de varsayılan olarak kalır /usr/bin:/bin:/usr/sbin:/sbin. Ve sadece kabuklar ve metin editörlerindeki yolu değiştirmek zorunda kaldım.


Harika, cevap için teşekkürler. Ben eklendi export PATH=$HOME/bin:$PATHkardeşime karşı $HOME/.bash_profile.
Thi G.

Dışa~ aktarmaya gerek yoktur ve her ikisi de (alıntı $HOMEyapılmadığında ) ve hem dışa aktarma hem de düz bir atama kullanılırken değişken atamasından önce genişletilir.
Lri

Lauri Ranta, kişisel olarak ne tercih edersin, .bash_profileyoksa .profile? Yoksa .bashrcana dizininizde bir?
Thi G.

Eskiden sadece .bash_profile kullanıyordum, ancak şimdi ana yapılandırma dosyam olarak .bashrc kullanıyorum ve .bash_profile dosyamda sadece . ~/.bashrc. Yeni mermiler, emacs ve tmux'da kabuk modunda oturum açmayan mermiler olarak açılır. Ana yapılandırma dosyası olarak .profile kullanmam, çünkü aynı zamanda ksh gibi diğer kabuklar tarafından da okunur.
Lri

3

Genellikle $PATHbenzer yollardan sonra ek yollar koyarsınız, PATH=$PATH:/$HOME/binçünkü içinde aynı ada sahip başka bir yürütülebilir dosyanın yerini almak istemiyorsanız /binvb.


4
Kolayca $HOME/binbaşından sonuna kadar koyacağınızı kolayca iddia edebilirsiniz . Ancak asıl önemli olan, dizinlerdeki dizinlerin sıralaması $PATHve kabuğun ilk eşleşen komutu seçmesidir. Bunu işaret ettiğiniz için teşekkürler.
nohillside
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.