Linux'da $PATH Kullanımı


Linux'da PATH Kullanarak Çalıştırılabilir Dosya Oluşturma


Linux'da program yapmanın en kolay yolarından birisi PATH'dir. Bu yazımda ise size PATH ile bir uygulama örneği gösterecem. Bu örnekde rasgele bir programlama yaptıralım. Komut satırına “yap” dediğimizde bize önce Merhaba yazsın, /home/ramazan içerisine ramo adında bir dizin oluştursun ve içerisine bir dosya oluştursun, sonra ise bu dosyayı çalıştırsın, dosya çalıtığında bulunduğumuz dizindeki tüm verileri ayrıntılı bir şekilde göstersin, ve en sonunda “Teşekkürler” Yazsın. PATH ile böyle bir programlama örneği yapalım.

İlk olarak /home/ramazan içerisine bin dizini oluşturalım.
mkdir /home/ramazan/bin komutuyla oluşturabiliriz.

Şimdi bu dizini PATH' e öğretelim. Bunun için /home/ramazan/.bashrc dosyasını açalım içine komut girelim.

Vi /home/ramazan/.bashrc
bashrc dosyasını açtığımızda 'i' tuşuna basarak INSERT moduna geçelim ve export sırasının altına boşluk açıp şu kodu yazalım.
PATH=$PATH:/home/ramazan/bin
export PATH
bu kodu yazdıktan sonra 'Esc' tuşuna basalım ve ':wq' komutu yazarak kaydedip çıkalım.

Şimdi bin dizininin içerisine vi parametresiyle yap dosyası açalım ve bu dosyanın içerisine bazı komutlar yazalım.

Vi /home/ramazan/bin/yap
'i' tuşuna basarak INSERT moda geçelim ve şu kodları yazalım
' echo “merhaba”
sleep 2
mkdir /home/ramazan/ramo
echo “dizin olusturuldu”
sleep 3
echo “ls -al” > /home/ramazan/ramo/ramo
echo “ramo dosyası olusturuldu”
sleep 2
cp /home/ramazan/ramo/ramo /home/ramazan/bin/ramo
echo “ramo dosyası kopyalandı”
chmod +x /home/ramazan/bin/ramo
echo “calistirma yetkisi verildi”
/home/ramazan/bin/ramo
echo “Tesekkurler” '
Bu komutları yazdıktan sonra 'Esc' tusuna basarak ':wq' yazarak kaydedip çıkıyoruz.
Şimdi yap dosyasına çalıştırma izini vermemiz gerekiyor.
Chmod -x /home/ramazan/bin/yap komutu ile iznimizi veriyoruz.

Şimdi 'source /etc/profille' komutunu giriyoruz.

En son olarakta oturumumuzu yeniden başlatacaz. Oturum açıldıktan sonra komut satırına girip yap dediğimizde yazdığımız program çalışacak ve istediğimiz kosulları yerine getirecektir.

Burda dikkat edilmesi gereken şey ise benim yap dosyasını kullandığım gibi sizde baska herhangi bir dosya adı olusturabilir ve kullanabilirsiniz, bu dosya ismini seçerken dikkat edin sistemin bin ve etc dizini eçindeki bir dosya ismiyle sizin seçeceğiniz isim aynı olmasın. Böyle bir durumda dosyalar çakışır ve sizin oluşturduğunuz dosya ve sistemdeki dosya çalışmaz. Kendi dosyanız çalışmadığı gibi sistemin dosyasınıda bozmus olursunuz.  Bu da büyük sıkıntılar doğurabilir. 
Peki bizim oluşturacağımız isim sistemde var mı yok mu nasıl öğrenebilirim ?
'whereis dosya_adi' komutu kullanılarak sistemde girdiğiniz dosya_adi kullanılan bir dosya var mı yok mu kontrol etmiş oluruz.

Bu PATH ile yapılan çok basit bir uygulama örneğidir. Burada kendimize bir bin dizini olusturduk, çünkü komut dosyaları bin ve etc dosyalarında tutulur. Bizimde bin ve etc dizinlerine yazma yetkimiz yok yazabilmek için root olmamız gerekir. Root olarak yapabiliriz ama riskli ir iş yapmış oluruz bin veya etc dizinlerinin içerisinde rootken yanlış bir işlem yaparsak sistem arızalanabilir ve büyük sıkıntılar ortaya cıkabilir. Bizde böyle bir sorunla karşılaşmamak için kendi home dizinimize bir bin dizini olusturuyoruz ve bu dizini PATH' e öğretiyoruz.
Bu bin dizininin içine yap dosyası oluşturdu, bu dosyanın içine komutlarını yazıyoruz ve bu dosyayı çalıştırılabilir dosya yapıyoruz.
Komut satırından yap komutu girdiğimizde shell bunu PATH'e sorar ve PATH gider bizin bin dizinimizi arar ve bizim bin dosyamız içinden çalıştırır.


PATH'e neden yol öğretiyoruz zaten tüm sistemde arama yapmıyor mu ?
Komut satırına herhangi bir komut girdiğimizde shell komutu PATH'e sorar. PATH ise bin ve etc dizinlerinde girilen komutu arar. Bulursa komut çalışır zaten bulamazsa hata mesajı gönderir. Diğer dizinlerde aramaz buda Linux'u güvenli kılan tarafıdır.




Not : Burada kullandığım /home/ramazan/ dizini benm ramazan kullanıcımın home dizinidir. Buradaki ramazan dizini sizin kullanıcı adınız isminde bir dizindir.

Yorumlar

Bu blogdaki popüler yayınlar

Active Directory GPO(Group Policy Objects) Nedir ? Ne İşe Yarar ? Nasıl Uygulanır ?

Cisco Packet Tracer ile Cisco Cihazlarda Vlan Yapılandırması