एक और संभावना यह है कि एक विशेष बिलिन से एक सादे पुराने बिलिन में डिमोट करने के लिए उपयोग किया command
जाए :exec
alias shh='command exec >/dev/null 2>&1'
तो अब आप कर सकते हैं:
(shh; call some process &)
मैंने अभी देखा है कि command
यह काम नहीं करता है zsh
(जैसा कि अधिकांश अन्य गोले में ऐसा लगता है) , लेकिन यह वह जगह नहीं है जहां आप काम कर सकते हैं:
alias shh='eval "exec >/dev/null 2>&1"'
... जो हर जगह काम करना चाहिए।
वास्तव में, आप भी कर सकते हैं:
alias shh='command exec >"${O:-/dev/null}" 2>&1'
तो आप कर सकते हैं:
O=./logfile; (shh;echo can anyone hear &)
O=; (shh; echo this\? &)
cat ./logfile
आउटपुट
can anyone hear
@ Vinc17 के साथ एक टिप्पणी पर चर्चा करने के बाद, यह ध्यान देने योग्य है कि लगभग सभी GUI ऐप के कंसोल आउटपुट आम तौर पर X
'tty -' कंसोल के लिए अभिप्रेत है। जब आप X
किसी X
.desktop
फ़ाइल से कोई ऐप चलाते हैं, तो वह जो आउटपुट उत्पन्न करता है, उसे X
वर्चुअल टर्मिनल पर रूट किया जाता है - जो कुछ भी ऐसा है, जिससे आप X
पहले स्थान पर लॉन्च हुए थे। मैं इस tty नंबर के साथ पता कर सकते हैं $XDG_VTNR
।
हालांकि अजीब - और शायद इसलिए कि मैंने अभी उपयोग करना शुरू किया है startx
- मैं अब सिर्फ लिखने के लिए प्रतीत नहीं हो सकता /dev/tty$XDG_VTNR
। यह भी हो सकता है (जैसा कि मुझे लगता है कि अधिक संभावना है)Xorg
v1.16 के साथ लागू किए गए बहुत हालिया और कठोर बदलाव के साथ कुछ करना है जो इसे रूट विशेषाधिकारों की systemd
आवश्यकता के बजाय उपयोगकर्ता सत्र के तहत चलाने की अनुमति देता है ।
फिर भी, मैं कर सकता हूँ:
alias gui='command exec >/dev/tty$((1+$XDG_VTNR)) 2>&1'
(gui; some x app &)
अब सभी some x app
कंसोल आउटपुट को /dev/tty$((1+$XDG_VTNR))
मेरे xterm
pty के बजाय रूट किया जा रहा है । मुझे इसका अंतिम पृष्ठ किसी भी समय मिल सकता है जैसे:
fmt </dev/vcs$((1+$XDG_VTNR))
वैसे भी आउटपुट लॉग करने के लिए कुछ वर्चुअल टर्मिनल समर्पित करना सबसे अच्छा अभ्यास है। /dev/console
आम तौर पर इसके लिए पहले से ही आरक्षित होता है, हालांकि आप ऐसा नहीं करना पसंद कर सकते हैं chown
जो आपको उस पर लिखने के लिए आवश्यक है। आपके पास कुछ फ़ंक्शन हो सकते हैं जो आपको ऐसा करने में सक्षम बनाता है printk
- जो मूल रूप से मुद्रण के लिए है /dev/console
- और इसलिए मैं इसे इस तरह से उपयोग कर सकता हूं कि मुझे लगता है।
ऐसा करने का एक और तरीका यह होगा कि इस तरह के उद्देश्यों के लिए एक पैसा समर्पित किया जाए । उदाहरण के लिए, आप एक xterm
खिड़की को खुला रख सकते हैं, tty
जब पर्यावरण चर में वहां से चलाए जा रहे आउटपुट को बचा सकते हैं , और उस मान का उपयोग गंतव्य के gui
आउटपुट के रूप में कर सकते हैं । इस तरह से सभी लॉग को एक अलग लॉग विंडो में भेजा जाएगा, जिसे आप पसंद करने के बाद स्क्रॉल कर सकते हैं।
मैंने एक बार इस बारे में एक उत्तर लिखा था कि bash
यदि आप रुचि रखते हैं तो इतिहास के साथ एक समान कैसे किया जा सकता है ।