PATH'ın amacı nedir?
Bu sizin nasıl kabuk programları bulur. Eğer yazdığınızda ls
, örneğin, adlı bir program çalıştıran ls
yaşayan /bin
Mac OS X'te Kişisel kabuk sırf o bulabilirsiniz dahil çoğu sistemleri üzerinde /bin
bulunmaktadır PATH
.
Kabuk programları PATH
soldan sağa doğru sırayla arar . ls
Sisteminizde iki program varsa ve dizinleri her ikisinde de PATH
bulunuyorsa, dizinde ilk sırada bulunan programı bulur PATH
.
/ Etc / paths ve ~ / .bash_profile arasındaki fark nedir
Ayarlanan yollar , başlangıçta Mac OS X'teki tüm kabuklarda /etc/paths
eklenir PATH
.
~/.bash_profile
, başlangıçta Bash tarafından çalıştırılan birkaç kabuk komut dosyasından yalnızca biridir ve bunlardan birkaçı Bash'e özgüdür. Bu nedenle, kabuğunuzu değiştirirseniz - Mac OS X de gönderilir tcsh
ve zsh
örneğin /etc/bashrc
, yeni kabuğunuza uygulanmayan değişiklikler yapılır .
Ayrıca, kullanıcı başına /etc/paths
ise sistem düzeyinde bir yapılandırma dosyasıdır ~/.bash_profile
. Mac'inizde birden fazla etkileşimli kullanıcı ayarladıysanız /etc/paths
, herkesin görünmesini istemediğiniz dizinleri eklemek istemezsiniz PATH
. Aynı şey /etc/bashrc
, elbette sadece Bash'i kabukları olarak kullanan kullanıcılar için geçerli olanlar dışında geçerlidir.
PATH ve $ PATH ve $ {PATH} arasındaki fark nedir?
Değişkeni ayarlarken genellikle yalnızca sigil olmayan değişkeni görürsünüz. ortam değişkenini dizeye FOO=bar
ayarlar . Siz yazarsanız , kabuk size tüm ortam değişkenlerini gösterir ve bu durumda değişkeni herhangi bir sigil olmadan da görürsünüz.FOO
bar
set
$PATH
ve ${PATH}
genellikle birbirinin yerine kullanılabilir. Kabuğa geçerli PATH
değişkenin yerinde değerini genişletmesini söylerler . Fark, onları nasıl ve nerede kullandığınızla ilgilidir. Örneğin:
$ FOO=bar
$ echo $FOO
bar
$ echo $FOOx
$ echo ${FOO}x
barx
İkinci echo
komutta, kabuk hiçbir şey yazdırmaz, çünkü kabuktan FOOx
, var olmayan denilen bir değişkeni yazdırmasını ister ; kabuk varolmayan değişkenlere boş davranır. Üçüncüsü echo
küme ayracı sözdizimini kullandığından, kabuğun FOO
değişkeni x
istediğini ve hemen sonra yazdırılmasını istediğiniz başka bir karakter olduğunu görmesini sağlar .
Bu arada kıvırcık parantez olmadan aynı etkiyi elde etmenin başka bir yolu var:
$ echo "$FOO"x
barx
Ortam değişkenleri çift tırnak içinde genişletilir ve tırnaklar, x
değişken genişletmeden ayırır, böylece kabuk doğru olanı yapar.
Ben kullanıyorum FOO
sadece netlik için buraya ortam değişkeni. Yukarıda yazdığım her şey PATH
, başka bir ortam değişkeni olduğu için de geçerlidir . Örnek metinler çok daha uzun olurdu.
PATH ihracatı ne anlama geliyor? Ne zaman ihracat yapıyoruz?
Yukarıdaki FOO
örneği alırsanız, başka bir program çalıştırırsanız, FOO
dışa aktarılmadığı için değişkeni görmez. Yalnızca bu mermi örneği içinde yaşar:
$ echo $FOO
bar
$ bash
$ echo $FOO
$ exit
$ export FOO
$ bash
$ echo $FOO
bar
bash
Zaten kullandığımın altında yeni bir kabuk çalıştırdığımda , değerini göstermeye çalışın FOO
, bir boş alıyorum çünkü FOO
alt programların görmesi için dışa aktarılmadı. Sonra ikinci bash
örnekten çıktım , dışa aktardım, bash
tekrar koştum ve şimdi ikinci örnek değerini görüyor FOO
.
Sen kullanmak export
kabuktan ayarlanan değerleri görmek için alt programı istediğinizde ve bunun olmasına istemediğinizde bunu kullanmayın.
Tipik olarak, kabuk komut dosyalarında geçici değişkenleri dışa aktarmam, çünkü programların bu kabuk komut dosyasından çalışma şeklini değiştirmelerini istemiyorum.
Diğer sorularınıza cevap vermeyeceğim. Her seferinde sadece bir soru sormalısınız. Ben sadece birçoğuna cevap verdim çünkü belirsiz bir şekilde ilgili. Diğer her şey ayrı bir soruya aittir.