"Enter"a basıp içeriğe geçin

Linux Yönlendirmeler ve Tırnaklar

 

Bu yazıda linux terminalinde ve bash script’te sıkça kullandığımız yönlendirmeler ve tırnak işaretlerine değineceğiz.

 

Tırnak ifadeleri

Daha önce de bahsettiğim gibi, linux komutları komut-parametre-arguman şeklinde kullanılıyordu.
Bazı örneklerde gördüğümüz gibi, karışıklıkları önlemek için tırnaklardan yararlanıyoruz.
Linux komutları yazarken 3 çeşit tırnak bulunur. Bunların kullanım yerleri farklıdır.

Mesela echo komutunda karışıklığın önlenmesi için ” yada “” kullanırız.
mkdir a b c dediğimizde a, b ve c isminde 3 tane dizin oluşturuyordu, peki a b c adında tek bir dizin oluşturmak istersek?


mkdir “a b c” dersek, a b c ifadesini tek bir değer gibi alır ve argüman olarak mkdir komutuna yollar

Yada, ileride değişkenler konusunda göreceğimiz gibi, x=pwd dersek, pwd komutu çalışır ve çalıştığımız dizini ekrana basmak yerine x değişkenine atar.

Bu tırnakların farkları ve kullanımları şu şekildedir

‘ ‘ arasına yazdığımız şeyler hiçbir şekilde işlenmez, ifade yaza komutmuş gibi algılanmaz ve yorumlanmaz. Direk ne ise o şekilde kullanılır.
arasına yazdığımız şeyler komutmuş gibi algılanır ve sonucu ilgili yere koyar.
” ” arasına yazdığımız şeylerde ise komutlar yorumlanmaz ama ifadeler var ise (çevre değişkenleri yada kullanımları gibi) yorumlanır. Bunun dışında kullanımı ” ile aynıdır.

Örnek
echo “sistemin ev dizini $HOME ve şuanki dizininiz pwd

“” arasında olduğu için, $HOME değişkenini sistemdeki home konumu olarak yorumlar. pwd komutu arasında olduğu için komut olduğunu anlar ve komutun çıktısını ilgili yere koyar.
Yorumlamalar bitince “” arasındaki tüm metni bir bütünmüş gibi argüman olarak echo komutuna yollar

Eğer ‘ ‘ arasına yazsaydık hiç bir yorumlama yapmazdı
echo ‘sistemin ev dizini $HOME ve şuanki dizininiz pwd

” ” arasına yazıldığında değişkenler yerine konmuştu ve komutu işlemişti.
‘ ‘ arasına yazıldığında bişey olmadı.

Yönlendirmeler

Daha önce > ve >> yönlendirme işaretlerinin ne işe yaradığını öğrenmiştik
Linux terminalinde 3 adet kanal vardır. Bunlardan biri input, biri standart output sonuncusu da error output kanallarıdır.

Bizim şimdiye kadar gördüğümüz > ve >> işaretleri standart output kanalına bağlıydılar. Yani bir komuttan çıktı olan şeyler bir dosyaya yönlendiriyorlardı
Örneğin echo merhaba > dosya dediğimizde, echo komutunun çıktısı ekrana yönlendiriliyordu.
Ancak bazen komut başarısız olabilir ve hata mesajı alabiliriz. Eğer standart output yönlendirmesi kullanıyorsak hata mesajları yönlendirilmez ve terminale yazılır.

2> yönlendirme işareti sayesinde hata mesajlarını yönlendirebiliriz. Ama bu da sadece hata mesajlarını yönlendirir
&> yönlendirme işareti sayesinde hem komuttan çıkan sonucu hem de hata mesajlarını yönlendirebiliriz.

Komut çıktısı ve hata mesajlarını ayrı ayrı dosyalara da yönlendirebiliriz.
ls > liste 2> hatalar : ls komutunun normal çıktıları liste dosyasına, hata mesajları hatalar dosyasına yönlendi

< işareti ise, > işaretinin tam tersidir. Yani komutun çıktısını dosyaya yönlendirmez, dosyanın içindekini argüman olarak komuta yönlendirir.

Eğer yazdıracağımız şey bir hata mesajı ise (işlem başarısız olmuş ve bunu yazdırmak istiyorsak) 2> kullanılır

    Bir cevap yazın

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir