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.

Çıkış Yönlendirme

Örnek:

ls -al > listings

Burada ls -al komutunun çıktısı ekranınız yerine “listeler” dosyasına yeniden yönlendirilir.

Çıkış Yönlendirme

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.

Çıkış Yönlendirme

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

Giriş yönlendirmesi

Ö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

Giriş yönlendirmesi

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.

Hata Yönlendirme

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

Neden Hata Yönlendirmesi

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.

Neden Hata Yönlendirmesi

Ö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.

Neden Hata Yönlendirmesi

Ö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.

Bu yazıyı şu şekilde özetleyin: