Linux'ta $ PATH'inize Nasıl Dizin Eklenir

Bir terminal penceresinde yeşil metin satırları ile bir Linux dizüstü bilgisayar.
Fatmawati Achmad Zaenuri / Shutterstock

$PATH Linux bilgisayarınızın arka planındaki sessiz manipülatörlerden biridir. Kullanıcı deneyiminizi sessizce etkiler, ancak bu konuda gölgeli bir şey yoktur. Ne yaptığını ve nasıl ayarlayabileceğinizi açıklayacağız.

Linux'ta $ PATH Nedir ve Nasıl Çalışır?

Terminal penceresine bir komut yazıp Enter tuşuna bastığınızda, komutunuz yürütülmeden önce oldukça fazla etkinlik başlatırsınız.

Bash çoğu Linux dağıtımında varsayılan kabuktur. Girdiğiniz metin satırını yorumlar ve parametreler, yöneltmeler, yeniden yönlendirmeler ve başka ne varsa bunlarla karıştırılan komut adlarını tanımlar. Daha sonra bu komutların yürütülebilir ikili dosyalarını bulur ve sağladığınız parametrelerle başlatır.

Kabuğun yürütülebilir dosyayı bulmak için attığı ilk adım, bir ikilinin bile dahil olup olmadığını tanımlamaktır. Kullandığınız komut kabuğun kendisindeyse (bir “kabuk yerleşik”) başka arama gerekmez.

Kabuk yapıları bulmak en kolayıdır çünkü kabuğun ayrılmaz bir parçasıdır. Bu, onları bir alet kemerine yerleştirmek gibidir; her zaman yanınızdayız.

Diğer araçlarınızdan birine ihtiyacınız varsa, onu bulmak için atölyede dolaşmaya gitmelisiniz. Tezgahınızda mı yoksa duvar askısında mı? İşte bu $PATH ortam değişkeni yapar. Kabuğun aradığı yerlerin ve aranacakları sırayı içerir.

Bir komutun kabuk yerleşik, takma ad, işlev veya bağımsız ikili mv / work / unfile olup olmadığını görmek istiyorsanız, type aşağıda gösterildiği gibi komut:

type clear
type cd

Terminal penceresindeki "type clear" ve "type cd" komutları.

Bu bize şunu söyler: clear bir ikili dosyadır ve yolda bulunan ilk dosya şurada bulunur: /usr/bin. Birden fazla sürümünüz olabilir clear yüklü, ancak bu kabuk kullanmaya çalışacağınız.

Şaşırtıcı değil, cd bir kabuk yerleşiktir.

$ PATH Sayınızı Listeleme

Yolunuzdakileri görmek kolaydır. Kullanmak için aşağıdakileri yazmanız yeterlidir echo komutu basılı tutun ve değeri $PATH değişken:

echo $PATH

Bir terminal penceresindeki "echo $ PATH" komutu.

Çıktı, iki nokta üst üste (:) ayrılmış dosya sistemi konumları. Kabuk, yol boyunca soldan sağa doğru arama yaparak her dosya sistemi konumunu komutunuzu gerçekleştirmek için eşleşen bir yürütülebilir dosya olup olmadığını kontrol eder.

Aranacak dosya sistemi konumlarını ve arama sırasını görmek için listeden seçim yapabiliriz:

  • /usr/local/sbin
  • /usr/local/bin
  • /usr/sbin
  • /usr/bin
  • /sbin
  • /bin
  • /usr/games
  • /usr/local/games
  • /snap/bin

Hemen belirgin olmayan bir şey, aramanın geçerli çalışma dizininde başlamamasıdır. Bunun yerine, listelenen dizinler ve yalnızca listelenen dizinler boyunca çalışır.

Geçerli çalışma dizini yolunuzda değilse aranmaz. Ayrıca, yolda olmayan dizinlerde depolanmış komutlarınız varsa, kabuk bunları bulamaz.

Bunu göstermek için, adında küçük bir program oluşturduk. rf. Yürütüldüğünde, rf terminal penceresinde başlatıldığı dizinin adını yazdırır. Bulunur /usr/local/bin. Ayrıca daha yeni bir sürümümüz var. /dave/work dizin.

Aşağıdakileri yazıyoruz which bize programımızın hangi sürümünü bulacağını ve kullanacağını göstermek için komut:

which rf

Bir terminal penceresinde "hangi rf" komutu.

Kabuk, bulduğu sürümün dizinde yoldaki sürüm olduğunu bildirir.

Ateşlemek için aşağıdakileri yazıyoruz:

rf

Bir terminal penceresindeki "rf" komutu.

1.0 sürümü rf çalışır ve beklentilerimizin doğru olduğunu onaylar. Bulunan ve yürütülen sürüm şurada bulunur: /usr/local/bin.

Başka bir sürümünü çalıştırmak için rf bu bilgisayarda, aşağıda gösterildiği gibi komut satırında yürütülebilir dosyanın yolunu kullanmamız gerekir:

./work/rf

Bir terminal penceresindeki "./work/rf" komutu.

Artık kabuğa sürümün nerede bulunacağını söyledik rf çalıştırmak istiyoruz, sürüm 1.1'i kullanıyor. Bu sürümü tercih edersek, /usr/local/bin dizin ve eskisinin üzerine yazın.

Diyelim ki yeni bir sürüm geliştiriyoruz rf. Geliştirip test ederken onu sık sık çalıştırmamız gerekecek, ancak yayınlanmamış bir geliştirme derlemesini canlı ortama kopyalamak istemiyoruz.

Veya, belki de yeni bir sürümünü rf ve herkese açık hale getirmeden önce üzerinde bazı doğrulama testleri yapmak istiyoruz.

Çalışma dizinimizi yola eklersek kabuğun sürümümüzü bulmasını sağlarız. Ve bu değişiklik sadece bizi etkileyecek – diğerleri hala rf içinde /usr/local/bin .

$ PATH Dizininize Dizin Ekleme

Kullanabilirsiniz export dizinine bir dizin ekleme komutu $PATH. Dizin daha sonra kabuğun aradığı dosya sistemi konumları listesine eklenir. Kabuk eşleşen bir yürütülebilir dosya bulduğunda aramayı durdurur, bu nedenle önce dizininizi aradığından emin olmak istersiniz. /usr/local/bin.

Bunu yapmak kolaydır. Örneğimizde, dizinimizi yolun başlangıcına ilk aranan konum olacak şekilde eklemek için aşağıdakileri yazıyoruz:

export PATH=/home/dave/work:$PATH

Bir terminal penceresinde "export PATH = / home / dave / work: $ PATH" komutu.

Bu komut seti $PATH eklediğimiz dizine eşit olmak için, /home/dave/workve ardından mevcut yolun tamamı.

İlk PATH dolar işareti yok ($). Değerini PATH. Son $PATH bir dolar işareti var, çünkü PATH değişken. Ayrıca, iki nokta üst üste işaretini (:) yeni dizin ile $PATH değişken ismi.

Şimdi yolun nasıl göründüğüne bakalım:

echo $PATH

Bir terminal penceresindeki "echo $ PATH" komutu.

bizim /home/dave/work dizini yolun başına eklenir. Sağladığımız kolon onu yolun geri kalanından ayırır.

Sürümümüzü doğrulamak için aşağıdakileri yazıyoruz rf bulunan ilk kişi:

which rf

Bir terminal penceresinde "hangi rf" komutu.

Pudingin kanıtı çalışıyor rf, Aşağıda gösterildiği gibi:

rf

Bir terminal penceresindeki "rf" komutu.

Kabuk, Sürüm 1.1'i bulur ve /home/dave/work.

Dizininizi yolun sonuna eklemek için, komutun sonuna aşağıdaki gibi hareket ediyoruz:

export PATH=$PATH:/home/dave/work

Değişiklikleri Kalıcı Hale Getirmek

Beth Brooke-Marciniak'ın dediği gibi, “Başarı iyidir, ancak başarı geçicidir.” Terminal penceresini kapattığınız anda, terminal penceresinde yaptığınız değişiklikler $PATH Gittiler. Onları kalıcı hale getirmek için, export komutunu seçin.

Koyduğunuzda export emrinde .bashrc dosyasında, terminal penceresini her açışınızda yolu ayarlar. aksine SSH oturum açmanız gereken oturumlara bunlara “etkileşimli” oturumlar denir.

Geçmişte, export emrinde .profile oturum oturum terminalinin yolunu ayarlamak için.

Ancak, eğer export ya .bashrc veya .profile dosyaları, hem etkileşimli hem de oturum açma terminal oturumlarının yolunu doğru şekilde ayarlar. Deneyiminiz farklı olabilir. Tüm olasılıkları ele almak için, bunu her iki dosyada nasıl yapacağınızı göstereceğiz.

Aşağıdaki komutu kullanın. /home dizini düzenlemek için .bashrc dosya:

gedit .bashrc

Bir terminal penceresindeki "gedit .bashrc" komutu.

gedit editör ile açılır .bashrc dosya yüklendi.

".Bashrc" dosyası yüklü olan gedit editörü.

Dosyanın en altına gidin ve daha önce kullandığımız şu dışa aktar komutunu ekleyin:

export PATH=/home/dave/work:$PATH

Dosya 'yı kaydet. Ardından, terminal penceresini kapatıp yeniden açın veya dot okumak için komut .bashrc dosya, aşağıdaki gibi:

. .bashrc

Ardından aşağıdakileri yazın echo yolu kontrol etme komutu:

echo $PATH

Bir terminal penceresindeki ". .Bashrc" ve "echo $ PATH" komutları.

Bu, /home/dave/work dizin yolun başlangıcına.

Komutu .profile dosya aynı. Aşağıdaki komutu yazın:

gedit .profile

Bir terminal penceresindeki "gedit .profile" komutu.

gedit editör ile başlar .profile dosya yüklendi.

".Profile" dosyası yüklü olan gedit editörü.

Ekle export komutunu dosyanın altına yerleştirin ve kaydedin. Yeni bir terminal penceresini kapatmak ve açmak, .profile yeniden okunacak dosya. Yeni ayarların etkili olması için oturumu kapatıp tekrar açmanız veya dot aşağıda gösterildiği gibi komut:

. .profile

İLİŞKİLİ: Gedit ile Linux'ta Metin Dosyalarını Grafik Olarak Düzenleme

Herkes İçin Yol Belirleme

Sistemi kullanan herkesin yolunu ayarlamak için /etc/profile dosya.

Kullanmanız gerekecek sudo, aşağıdaki gibi:

sudo gedit /etc/profile

Ne zaman gedit editör başlatıldığında, dışa aktar komutunu dosyanın altına ekleyin.

"/ Etc / profile" dosyası yüklü gedit editörü.

Dosyayı kaydedip kapatın. Değişiklikler bir sonraki oturum açışlarında diğerleri için geçerli olacaktır.

Güvenlik Hakkında Bir Not

Yanlışlıkla önde gelen iki nokta üst üste eklemediğinizden emin olun. ”:“Yolunu aşağıda gösterildiği gibi girin.

Terminal penceresinde vurgulanan iki nokta üst üste işaretiyle "echo $ PATH" komutu.

Bunu yaparsanız, önce geçerli dizinde arama yapılır, bu da bir güvenlik riski oluşturur. Bir arşiv dosyasını indirip bir dizine açtığınızı varsayalım. Dosyalara bakar ve başka bir sıkıştırılmış dosya görürsünüz. Bu arşivi çıkarmak için sıkıştırmayı bir kez daha çağırıyorsunuz.

İlk arşivde yürütülebilir bir dosya varsa unzip bu kötü niyetli bir yürütülebilir dosyaydı, yanlışlıkla gerçek olanı değil, unzip yürütülebilir. Bunun nedeni, kabuğun önce geçerli dizine bakmasıdır.

Bu nedenle, yazarken her zaman dikkatli olun. export komutlar. kullanım echo $ PATH onları gözden geçirmek ve olmasını istediğiniz şekilde olduklarından emin olun.

LEAVE A REPLY

Please enter your comment!
Please enter your name here