Senaryolar arasında dolaşıyor 2>&1
ve /dev/null
her yerde görüyorum . Onlar neler? Google’dan sonra, OS X’te Linux’tan farklı mı?
Senaryolar arasında dolaşıyor 2>&1
ve /dev/null
her yerde görüyorum . Onlar neler? Google’dan sonra, OS X’te Linux’tan farklı mı?
Yanıtlar:
Unix süreçler yararlanabilir üç 'standart dosya akışları' vardır - stdin
, stdout
ve stderr
- stdin
genellikle klavyeden girdi okur ve stdout
ve stderr
genellikle Terminal penceresine gidin. stderr
dosya tanımlayıcı numarasını 2
alır ve stdout dosya tanımlayıcı numarasını alır 1
. 2>&1
"tüm çıktıyı stderr'e stdout'un gittiği yere yönlendirmek" anlamına gelir. /dev/null
karakter bir cihazdır - basitçe kendisine yazılmış herhangi bir şeyi atar.
Her yerde bir komut dosyası çıktısını depolamak istemiyoruz ve size terminalde görmek istemiyorsanız, size yönlendirebilir stderr
aynı yere stdout
sahip 2>&1
ve sonra yeniden yönlendirmek stdout
için /dev/null
birlikte> /dev/null
Yalnızca yönlendirmek olsaydı stdout
ile > /dev/null
, yine terminalde hataları görecekti.
2>&1
Tüm çıktıyı dosya gibi belirtilen hedefe yönlendirmek için komut dosyasını çalıştıran kabuğun bilgisi veya /dev/null
/dev
Linux sistemlerinde yer cihazlara erişimi olan sistemi sağlar. Bu cihazlardan biri null adında bir sahte cihazdır. / dev / null boş bir cihazdır - eğer istersen bir vakum. Bir şey koyduğun bir delik olmaktan başka hiçbir şey yapmaz ve ortadan kaybolur. Aşağıdaki /dev/null
gibi bir dosyaya kopyalarsanız :
cp /dev/null /tmp/foo
belirtilen dosya boş olacak.
Çıktı yönlendirme ile ilgili detaylı bilgiyi burada bulabilirsiniz .
Ve işte / dev / null öğesinin tam tanımı:
UNIX'de bu, yazılabilen bir sanal dosyadır. Bu dosyaya yazılan veriler atılır. Windows makinelerinde NUL dosya çağrısına benzer. Anahtar nokta: Bir makineyi köklendirirken, saldırganlar genellikle günlüğü / dev / null'a yönlendirir. Örneğin, ln -s / dev / null .bash_history komutu sistemin bash komutlarını kaydetmesine neden olur. Kültür: Yerel dilde, karadelikle aynı şey anlamına gelir. Tipik kullanım: Söyleyeceklerimi beğenmezseniz, lütfen yorumlarınızı / dev / null dizinine yönlendirin.