«file-descriptors» etiketlenmiş sorular

2
Dosya tanımlayıcının ömrü nedir?
Açıklandığı gibi burada , yönlendirmeler kullanmak open()bir dosyaya yazmak için. Kabukta oluşturulan ve gerektiğinde kullanılan bir iç (?) Dosya tanıtıcısı vardır. İç tanımlayıcı komut dosyasının tüm süresi boyunca mı yoksa kabuk ömrü boyunca mı oluşturulur? Bir süre sonra, birkaç operasyondan vb. Yok edildi mi? Özellikle kabuğun kendi yerleşik işlemleri için …

2
& 6 ve / dev / fd / 6 arasındaki fark nedir?
Dosya tanımlayıcı 6'dan okumak için <&6veya </dev/fd/6(aka /proc/self/fd/6) kullanabilirsiniz. Genellikle her ikisi de eşit derecede iyi çalışır. Ancak, bu dosya tanımlayıcı bir soket olursa, garip şeyler olur. Örneğin: $ bash -c 'ls -l /dev/fd/6;cat /dev/fd/6' 6</dev/tcp/localhost/12345 lrwx------ 1 michas michas 64 Jan 10 19:50 /dev/fd/6 -> socket:[315010] cat: /dev/fd/6: No …

4
Program çıktı yönlendirmesi
Program çıktısını "bir sayıdan büyük" sözdizimi (örn. foo 2> myfile) İle yönlendirmeye çalışırken , burada olası sayılar nelerdir ve neyi temsil ederler? 1 olduğuna inanıyorum /dev/stdout, 2 /dev/stderr. 5 ve 6'ya ne dersiniz? 3, 4 veya 6'dan büyük bir sayı var mı?

2
ssh üzerinde stderr -t
Bu, çıktıyı STDERR'a gönderir, ancak Ctrl+ çoğaltmaz C(yani Ctrl+ Cöldürür, sshancak uzaktan kumandayı öldürmez sleep): $ ssh localhost 'sleep 100;echo foo ">&2"' Bu Ctrl+ yayar C(yani Ctrl+ Cöldürür sshve uzaktan kumanda eder sleep), ancak STDERR'u STDOUT'a gönderir: $ ssh -tt localhost 'sleep 100;echo foo ">&2"' Ctrl+ ' Yı yaymaya devam …

2
Proses ikameli çıktı sırası
Bu genellikle çalıştırmak için ne olduğunu grepve wciki kez taramak zorunda kalmadan bir dosya üzerinde <file.txt tee >(grep LITERAL) >(wc -l) >/dev/null Ancak, bu EXEC LITERAL 32 bazen ve 32 EXEC LITERAL Diğer zamanlarda. ( grepKaynağından gelen çıktı wcilk örnekte çıktıdan önce , ikinci durumda ise tersi olur.) Öte yandan, …

2
İşlem ikamesi <() neden ssh -F ile çalışmıyor?
Bazı vagrant sanal makinelerim var. Onlara giriş yapmak için vagrant sshkomut veriyorum . Düzenli sshkomut kullanarak giriş yapmak istiyorum . vagrant ssh-configUygun yapılandırma dosyası üretir $ vagrant ssh-config Host default HostName 127.0.0.1 User vagrant Port 2201 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /home/cbliard/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL Bu yapılandırmayı …


3
Adlandırılmış kanallar, dosya tanımlayıcılar ve EOF
İki pencere, aynı kullanıcı, bash istemleri. Pencere-1 yazın: $ mkfifo f; exec &lt;f Bash şimdi adlandırılmış yöneltme ile eşlenen 0 dosya tanımlayıcısından okumaya çalışıyor f. Pencere-2 yazın: $ echo ls &gt; f Şimdi window-1 bir ls yazdırır ve sonra kabuk ölür. Neden? Sonraki deneme: window-1 ile tekrar açın exec &lt;f. …

1
OS X, bash: açık dosya tanımlayıcılarında daha az çalışıyor, kedi çalışmıyor
Üzerinde çalıştığım bir bash betiğinde (Ubuntu ve OS X üzerinde çalışması gerekiyor), yüzlerce komutun çıktısını bir dosyaya yönlendirmem gerekiyor. Hepsine eklemek yerine &amp;&gt;..., sadece exec 9&gt;&amp;1 exec 5&lt;&gt;/tmp/some-file.txt exec 1&gt;&amp;5 Şimdiye kadar iyi, ama tüm bu komutların yarısında, dosya tanımlayıcısını açık tutarken şimdiye kadar yazılan her şeyi okumam gerekiyor. Şimdi, …

4
Neden kuyruk -f / proc / $ pid / fd / 1` yapamıyorum?
Ben echoonun PID -es basit bir komut dosyası yazdı : #/bin/bash while true; do echo $$; sleep 0.5; done Bahsedilen komut dosyasını 3844bir terminalde çalıştırıyorum ve tekrar tekrar söylüyorum ve tailbaşka bir dosya tanımlayıcısına çalışıyorum : $ tail -f /proc/3844/fd/1 Ekrana hiçbir şey yazdırmaz ve sonrasına kadar askıda kalır ^c. …

2
Uzaktan aktif terminalde komut yürütme
6350 PID ile açık bir terminal emülatörünüz (T1) olduğunu varsayalım. Başka bir terminalden şu komutu yazın (C1): echo "ls\n" &gt; /proc/6350/fd/0 Bu yazıyor lsve T1'deki yeni satırı çalıştırmıyor. Neden? Ben de kullanarak çalıştı cat|bashile echo "ls\n" &gt; /proc/catid/fd/0ama hala yürütülmez. Komutu başka bir terminale nasıl yansıtabilir ve komutun çalıştırılmasını sağlayabilirim? …

3
Süreç aşamasına yazma
Aşağıdakileri yazdığımda anladığım kadarıyla ... python -i ... python-tercüman şimdi (açıkça) şu şekilde davranarak stdin'den okuyacak: &gt;&gt;&gt; print "Hello" Hello Bunu yaparsam aynı şeyi yapmasını beklerim: echo 'print "Hello"' &gt; /proc/$(pidof python)/fd/0 Ama bu çıktı (gerçek bir boş çizgi olmak): &gt;&gt;&gt; print "Hello" &lt;empyline&gt; Bu bana benziyor, sadece aldı print …

2
Boru içinde komut dosyası kullanırken kullanıcı girdisi nasıl okunur
Genel problem Bir boru zincirinin ortasında olmasına rağmen kullanıcıyla etkileşime giren bir komut dosyası yazmak istiyorum. Somut örnek Somut olarak, bir fileveya alır stdin, satırları görüntüler (satır numaraları ile), kullanıcıdan bir seçim veya satır numaraları girmesini ister ve ardından karşılık gelen satırları yazdırır stdout. Bu betik diyelim selector. Sonra temel …

1
“Dosya tanımlayıcı” da “tanımlayıcı” nın etimolojisi
Tanımlayıcı kelimesinin seçimi beni her zaman garip olarak yapılandırdı. "Dizin" veya "kimlik" daha belirgin alternatifler gibi görünüyor. "Tanımlayıcı" kelimesini seçmek için bilinen bir gerekçe var mı? Sanırım "tanımlayıcı" genellikle kavramsal olarak sayı-ish'den daha fazla anahtar-ish ile karşılaşır, ancak bazen gerçekten sayı-ish olduğundan tahmin zayıf olur.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.