टर्मिनल कुंजी पर कस्टम कुंजी आइकन कैसे प्रदर्शित करें?


3

जब एक सर्वर के लिए POST अनुरोध भेजा जाता है जिसमें उपयोगकर्ता और पासवर्ड प्रमाणीकरण की आवश्यकता होती है, तो Terminal.app एक निमिष कुंजी आइकन दिखाता है जो मुझे लगता है कि यूनीकोड ​​नहीं है।

उपयोगकर्ता के लिए होस्ट पासवर्ड दर्ज करें 'bucaran'

जब उपयोगकर्ता मुझसे अपनी स्क्रिप्ट में समझदार जानकारी दर्ज करने के लिए कह रहा है, तो मैं जांच सकता हूं कि क्या ए TERM_PROGRAMहै Apple_Terminal, लेकिन मुझे नहीं पता कि ब्लिंकिंग आइकन कैसे प्रदर्शित किया जाए।

जवाबों:


8

"कुंजी" छवि एक चरित्र ग्लिफ़ नहीं है, यह एक कस्टम कर्सर आकार है जो टर्मिनल खींचता है।

टर्मिनल इस विशेष कर्सर आकार को प्रदर्शित करता है जब भी ऐसा लगता है कि उपयोगकर्ता को पासवर्ड या समान संवेदनशील डेटा दर्ज करने के लिए कहा जा रहा है। इस कर्सर को प्रदर्शित करने के अलावा, यह कीबोर्ड इनपुट को रोमन इनपुट विधियों के लिए प्रतिबंधित करता है ताकि इनपुट विधि से अनजाने में संवेदनशील जानकारी को इनलाइन टेक्स्ट या किसी अन्य विंडो में प्रदर्शित न किया जा सके। यह मानक OS X पासवर्ड टेक्स्ट फ़ील्ड की तरह व्यवहार करता है।

टर्मिनल इस मोड में प्रवेश करता है जब यह देखता है कि TTY डिवाइस कैनोनिकल (उर्फ "पकाया") मोड के लिए कॉन्फ़िगर किया गया है और चरित्र गूंज बंद है। इस कॉन्फ़िगरेशन में, उपयोगकर्ता इनपुट को प्रतिध्वनित नहीं किया जाता है और केवल TTY डिवाइस इनपुट बफ़र वर्णों को तब तक देखेगा जब तक आप इसे एप्लिकेशन प्रोग्राम पर भेजने के लिए वापस नहीं टाइप करते हैं। यह सुनिश्चित करता है कि पाठ में प्रवेश करते समय न तो TTY डिवाइस और न ही एप्लिकेशन प्रोग्राम उपयोगकर्ता इनपुट को प्रतिध्वनित करने में सक्षम है, इसलिए यह कॉन्फ़िगरेशन आमतौर पर केवल संवेदनशील जानकारी पढ़ने के लिए उपयोग किया जाता है।

आप इसे बैश में एक्शन में देख सकते हैं, रनिंग के द्वारा

stty -echo && echo Tell me your secrets: && cat; stty echo

stty -echoTTY वर्ण प्रतिध्वनि को बंद कर देता है, और जब बैश एक कमांड चलाता है तो यह कैनोनिकल मोड को सक्षम करता है, इसलिए निम्न catकमांड "पासवर्ड" मोड में चलेगा। catजब तक आप टाइप इनपुट की प्रत्येक पंक्ति गूंज होगा Control- D। बाहर निकलने के stty echoबाद इसे वापस चालू करता catहै।

ध्यान दें कि एक शेल स्क्रिप्ट बस read -sइस मोड में TTY के साथ पढ़ने के लिए उपयोग कर सकती है, जैसे,

while read -sp 'Tell me your secrets: '; do echo; echo $REPLY | vis; done

यही वह है जिसकी तलाश में मैं हूं। धन्यवाद।
जॉर्ज बुकरन 1

कैसे टर्मिनल टर्मिनल मापदंडों (पकाया मोड, चरित्र गूंज, आदि) के लिए एक परिवर्तन का पता लगाता है? क्या इसके लिए कोई एपीआई है या यह समय-समय पर या क्या करता है?
fumoboy007

@ fumoboy007 मैं आपको एक सवाल के रूप में पोस्ट करने का सुझाव देता हूं।
क्रिस पेज

@ChrisPage ने पोस्ट किया: superuser.com/q/1143568/230880
fumoboy007
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.