Linux/Unix Örneklerinde Giriş Çıkış Yönlendirmesi
Yönlendirme Nedir?
Yönlendirme, Linux'ta bir komutu çalıştırırken standart giriş/çıkış aygıtlarını değiştirebileceğiniz bir özelliktir. Herhangi bir işletmenin temel iş akışı Linux komutu yani bir girdi alıp çıktı veriyor.
- Standart giriş (stdin) cihazı klavyedir.
- Standart çıkış (stdout) cihazı ekrandır.
Yeniden yönlendirme ile yukarıdaki standart giriş/çıkış değiştirilebilir.
Tıkla okuyun videoya erişilemiyorsa
Çıkış Yönlendirme
MKS '>' sembolü çıktı (STDOUT) yönlendirmesi için kullanılır.
Örnek:
ls -al > listings
Burada ls -al komutunun çıktısı ekranınız yerine “listeler” dosyasına yeniden yönlendirilir.
not: Komut çıktısını bir dosyaya yönlendirirken doğru dosya adını kullanın. Aynı adda mevcut bir dosya varsa, yeniden yönlendirilen komut o dosyanın içeriğini siler ve daha sonra üzerine yazılabilir.
Bir dosyanın üzerine yazılmasını istemiyorsanız ancak mevcut bir dosyaya daha fazla içerik eklemek istiyorsanız şunu kullanmalısınız: '>>' Şebeke.
Standart çıktıyı yalnızca dosyalara değil aynı zamanda cihazlara da yönlendirebilirsiniz!
$ cat music.mp3 > /dev/audio
Cat komutu music.mp3 dosyasını okur ve çıktıyı ses aygıtı olan /dev/audio'ya gönderir. Bilgisayarınızdaki ses yapılandırmaları doğruysa, bu komut music.mp3 dosyasını çalacaktır.
Giriş yönlendirmesi
MKS '' sembolü giriş (STDIN) yönlendirmesi için kullanılır
Örnek: Linux'taki e-posta programı Terminal'den e-posta göndermenize yardımcı olabilir.
E-postanın içeriğini standart cihaz klavyesini kullanarak yazabilirsiniz. Ancak e-postaya bir Dosya eklemek istiyorsanız, aşağıdaki biçimde giriş yönlendirme operatörünü kullanabilirsiniz.
Mail -s "Subject" to-address < Filename
Bu, dosyayı e-postaya ekleyecek ve alıcıya gönderecektir.
Yukarıdaki örnekler basitti. Dosyayı kullanan bazı gelişmiş yeniden yönlendirme tekniklerine bakalım Descriptya da.
fileto Descriptveya (FD)
Linux/Unix'te her şey bir dosyadır. Normal dosya, Dizinler ve hatta Cihazlar dosyalardır. Her Dosyanın Dosya adı verilen ilişkili bir numarası vardır Descriptveya (FD).
Ekranınızda ayrıca bir Dosya var Descriptveya. Bir program yürütüldüğünde çıktı Dosyaya gönderilir Descriptveya ekranın ve monitörünüzde program çıktısını görürsünüz. Çıktı Dosyaya gönderilirse Descriptveya yazıcının, program çıktısı yazdırılırdı.
Hata Yönlendirme
Terminalde bir program/komut çalıştırdığınızda, her zaman 3 dosya açıktır, yani standart girdi, standart çıktı, standart hata.
Bu dosyalar, bir program çalıştırıldığında her zaman mevcuttur. Daha önce açıklandığı gibi bir dosya tanımlayıcı, bu dosyaların her biri ile ilişkilidir.
| fileto | fileto Descriptor |
|---|---|
| Standart Giriş STDIN'i | 0 |
| Standart Çıkış STDOUT | 1 |
| Standart Hata STDERR | 2 |
Varsayılan olarak ekranda hata akışı görüntülenir. Hata yönlendirme, hataların ekran dışındaki bir dosyaya yönlendirilmesidir.
Neden Hata Yönlendirme?
Hatanın yeniden yönlendirilmesi, en popüler özelliklerden biridir. Unix / Linux.
Sık UNIX kullanıcıları, birçok komutun size çok büyük miktarda hata verdiğini düşünecektir.
- Örneğin, dosyaları ararken, genellikle izin reddedildi hataları alınır. Bu hatalar genellikle belirli bir dosyayı arayan kişiye yardımcı olmaz.
- Kabuk komut dosyalarını çalıştırırken, genellikle hata mesajlarının normal program çıktısını karmaşıklaştırmasını istemezsiniz.
Çözüm, hata mesajlarını bir dosyaya yeniden yönlendirmektir.
Örnek 1
$ myprogram 2>errorsfile
Yukarıda myprogram adında bir program çalıştırıyoruz.
Standart hatanın dosya tanımlayıcısı 2'dir.
“2>” kullanarak hata çıktısını “errorfile” adlı bir dosyaya yeniden yönlendiriyoruz.
Böylece program çıktısı hatalarla dolu olmaz.
Örnek 2
Find ifadesini kullanan başka bir örnek:
find . -name 'my*' 2>error.log
“find” komutunu kullanarak, “.” geçerli dizininde “name”i “my” ile başlayan bir dosyayı arıyoruz.
Örnek 3: Daha karmaşık bir örneğe bakalım:
Sunucu Yöneticileri sıklıkla dizinleri listeler ve hem hata hem de standart çıktıyı daha sonra işlenebilecek bir dosyaya depolar. İşte komut.
ls Documents ABC> dirlist 2>&1
Burada,
- Bu, bir dosyanın çıktısını başka bir dosyanın girişine yazar. 2>&1, STDERR'nin STDOUT hedefine (dosya dizin listesi) yönlendirdiği anlamına gelir
- Hata çıktısını standart çıktıya yönlendiriyoruz, bu da dosya dizin listesine yeniden yönlendiriliyor. Bu nedenle, her iki çıktı da dosya dirlistine yazılır.
ÖZET
- Linux'taki her dosyanın karşılık gelen bir Dosyası vardır Descriptveya onunla ilişkili
- Klavye standart giriş aygıtıdır, ekranınız ise standart çıkış aygıtıdır
- “>” çıktı yönlendirme operatörüdür. “>>” çıktıyı mevcut bir dosyaya ekler
- “<” giriş yönlendirme operatörüdür
- “>&” bir dosyanın çıktısını diğerine yeniden yönlendirir.
- İlgili Dosyayı kullanarak hatayı yeniden yönlendirebilirsiniz. Descriptveya 2.






.png)