.Bashrc içindeki ihracat PATH satırı ne işe yarar?


9

Ben Linux'a öyle değilim ve bir öğreticiyi takip eden şu şüphem var.

bashrcDosyayı değiştirmek zorundayım . Bu dosyada ne tür ayarlar bulunur? Ben bash kabuğu ortamı ile ilgili bir şey düşünüyorum ama bu konuda o kadar emin değilim.

Bu satırı eklemeliyim:

export PATH=$HOME/.local/bin:$HOME/.local/usr/bin:$PATH

Bu çizgi tam olarak ne?

Bu exportifadenin, diğer program için kullanılabilir kılan yeni bir değişken oluşturmak için kullanıldığını düşünüyorum .

Peki bu çizgi tam olarak ne? Tanımladığım PATHdeğişkenin adı mı ? Nedir $HOME?

Ne demektir :arasındaki sembolü PATH=$HOME/.local/binve $HOME/.local/usr/binve $PATHbölüm önceki ifadesinde?

Bu ifade tam olarak ne anlama geliyor?


Öğeler arasında: her bölüm için ayırıcıdır. Bu olmadan, yolunuz sürekli bir çalışma olur ve işe yaramaz.
Terrance

Ubuntu'da bu tür PATHdeğişiklikler zaten ~/.profiledosyada yapıldı, bu yüzden benzer şeyler yapmak biraz tutarsız ~/.bashrc. ~/.profileGerekirse zaten kodu değiştirmek için daha iyi IMO . Şu anda varsayılan ~/.profiledosya bu satırı içermektedir:PATH="$HOME/bin:$HOME/.local/bin:$PATH"
Gunnar Hjalmarsson

@GunnarHjalmarsson: .profile ve .bashrc'yi farklı kılan bazı durumlar var. .Profile dosyası, alt kabuklar tarafından değil, giriş kabukları tarafından ayrıştırılır. Ancak bir alt kabuk başlatmak için yine de giriş yapmanız gerektiğinden, alt kabuklar $ PATH miras alacaktır. .Bashrc dosyası, giriş kabuğu tarafından ayrıştırılmaz, ancak alt kabuklar tarafından ayrıştırılır. Aradaki fark, giriş kabuklarının çocukları olmayan bazı şeyleriniz olduğunda (belki git komut kancası gibi diğer komut dosyalarını çağıran bazı fantezi otomasyon komut dosyası) olduğunda ortaya çıkar - .profile'daki herhangi bir şey göz ardı edilecek, böylece
okunmayacak

@slebetman: Doğru ve masaüstünde bahsetmediğiniz başka bir fark daha var: Aksine ~/.bashrc, ~/.profilegörüntüleme yöneticisi tarafından kaynaklanır, bu nedenle ~/.profileprogramları grafiksel ortamdan başlattığınızda yalnızca ayarlanan değişkenler kullanılabilir. Ve bu erken gerçekleşir, bu nedenle oturum için otomatik başlatılan süreçler için uygun olmalıdır.
Gunnar Hjalmarsson

Yanıtlar:


16

Bu soruda bahsedilen her şeyi özetlemek gerekirse,

exportbölüm

exportEğer çocuk süreçlerden erişilebilir olacaktır sonra ilan ettiklerini değişken satır anlamına gelir. Başka bir deyişle, süreçler export, kabuk ortamından anahtar kelimeden sonra bildirilen değişkene erişebilecektir . Bu nedenle, export FOO="BAR"kabuk ortamınızdaki değişiklikleri benzer bir şey yaptıysanız ve kaynakladıysanız, yazabilir $FOOve alabilirsiniz BAR.

PATHbölüm

Yol çizgisi aynen sizin belirttiğiniz gibidir: PATHkabuk ortamı için adlandırılmış bir değişken bildirir . Bash ortamında, PATHbilgisayarın programları nerede arayacağını tanımlamak için özel bir amacı vardır. Bu, tam dizini yazmadan komut dosyaları için özel komutlar yazmanıza olanak tanır. PATH'ın varsayılan olarak dışa aktarma için işaretlendiğini unutmayın, bu nedenle bu satırın yeniden yazılması gerekmez. Yine de acıtmaz.

$HOMEiçinde PATHdeğişken

PATHDeğişkene atanan yolun başlangıcında $HOMEbildirilir. Bu, bilgisayarın depolanan değeri hemen yakalayacağı ve HOMEokurken satırın geri kalanına kopyalayıp yapıştıracağı anlamına gelir .

Her :iki yol arasındaki

:Cümle içinde virgül eşdeğerdir. Sadece üç dizini ayırır. Bu üç dizin olmadan, konsol aldığı komutları tanımaz. Bu üç yer, komut dosyalarının / komut dosyalarının depolanması için en yaygın olarak kullanılan üç dizintir ve bu nedenle dosyanın tam yolunu yazmak zorunda kalmadan terminal tarafından erişilebilir olmalıdır.


Mükemmel cevap! "Dışa aktarma satırı, alt süreçler için erişilebilir olacağından sonra bildirdiğiniz değişkenin anlamı" bu alt öğenin üst öğesi, bir komut çalıştıracağım terminali işler mi?
vadasambar

5

PATHDeğişken Bir komut dosyası veya bazı diğer yürütülebilir dosya var eğer öyleyse, nerede çalıştırılabilir programlar için bakmak bilmek bash sağlar $HOME/.local/bindeğiştirerek, PATHyazdıklarınızı ve ilgisi gibi bu dosyayı çalıştırmak izin verir lsveya df.

exportyalnızca bu PATHdeğişkeni bash'den çalıştırdığınız diğer programlar için de kullanılabilir kılmak anlamına gelir .

Gelince : , bu sadece her dizin için bir ayırıcı. Sözcük listesindeki virgülle aynı, daha fazlası değil.

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.