-
हाल में यह सोचने लगा/लगी कि टर्मिनल में होने वाली लगभग हर चीज़ इन चार तत्वों के संयोजन से बनती है
- operating system की भूमिका
- shell की भूमिका
- terminal emulator की भूमिका
- चल रहे program की भूमिका (
top,vim,catआदि)
-
प्रोग्राम आश्चर्यजनक रूप से काफ़ी एकसमान व्यवहार करते हैं
- POSIX मुख्य रूप से terminal emulator, OS और shell के काम करने के तरीकों को परिभाषित करता है, लेकिन अलग-अलग program कैसे व्यवहार करें, इसके लिए कोई मानक नहीं है
- फिर भी terminal program आम तौर पर काफ़ी एकसमान तरीके से काम करते हैं
-
ये नियम वर्णनात्मक हैं, निर्देशात्मक नहीं
- इसका उद्देश्य terminal program के लेखकों को यह समझाना नहीं है कि उन्हें इन नियमों का पालन करना ही चाहिए
- नया terminal program इस्तेमाल करते समय किन बुनियादी नियमों की उम्मीद की जा सकती है, यह जानना उपयोगी है
-
कुछ मामलों में यह स्पष्ट नहीं होता कि ज़िम्मेदारी program की है या नहीं
- उदाहरण के लिए,
Ctrl-Dदबाकर किसी REPL से बाहर निकलना ऐसा व्यवहार है जिसे program को स्पष्ट रूप से implement करना पड़ता है
- उदाहरण के लिए,
नियम 1: non-interactive program को Ctrl-C दबाने पर बंद हो जाना चाहिए
- non-interactive program आम तौर पर
Ctrl-Cदबाने पर बंद हो जाते हैं - interactive program में
Ctrl-Cकी दूसरी भूमिका होती है
नियम 2: TUI को q दबाने पर बंद हो जाना चाहिए
lessयाhtopजैसे TUI programqदबाने पर बंद हो जाते हैं
नियम 3: REPL को खाली पंक्ति पर Ctrl-D दबाने पर बंद हो जाना चाहिए
- ज़्यादातर REPL खाली पंक्ति पर
Ctrl-Dदबाने पर बंद हो जाते हैं
नियम 4: 16 से ज़्यादा रंगों का इस्तेमाल नहीं करना चाहिए
- terminal program आम तौर पर बुनियादी 16 ANSI रंगों के बाहर के रंगों का लगभग इस्तेमाल नहीं करते
नियम 5: readline key binding का कम-से-कम मोटे तौर पर समर्थन होना चाहिए
- ज़्यादातर program
readlinekey binding को support करते हैं
नियम 5.1: Ctrl-W को आख़िरी शब्द हटाना चाहिए
- ऐसे program लगभग नहीं के बराबर हैं जिनमें
Ctrl-Wआख़िरी शब्द नहीं हटाता
नियम 6: pipe में लिखते समय रंग बंद कर देने चाहिए
- ज़्यादातर program pipe में लिखते समय रंगों को disable कर देते हैं
नियम 7: - का मतलब stdin/stdout होता है
-
अगर file name की जगह
-दिया जाए, तो program stdin से पढ़ता है या stdout में लिखता है -
इन नियमों को सीखने में समय लगता है
- यह समझना पड़ता है कि नियम कहाँ लागू होते हैं, अपवादों को पहचानना पड़ता है, और पैटर्न को अनजाने में पकड़ना पड़ता है
- इन नियमों को साफ़ तौर पर लिख देने से दूसरे लोगों के सीखने की रफ़्तार तेज़ हो सकती है
1 टिप्पणियां
Hacker News की राय
यूज़र की डिफ़ॉल्ट foreground color और background color का सम्मान करना चाहिए
Command Line Interface Guidelines की सिफारिश की गई है
-स्वीकार करना, pipe में color disable करना जैसे नियम शामिल हैंcommand-line tools के लिए अतिरिक्त नियम
sysexits.hexit codes का उपयोग करना चाहिए--helpऔर manual page शामिल होने चाहिएreadline/emacs key bindings के बारे में जानकारी
rlwrapप्रोग्राम इंस्टॉल करके line editing features जोड़ी जा सकती हैंcolor उपयोग पर सलाह
GHCi में Ctrl-D उपयोग करने पर आने वाली समस्या
:qकमांड का उपयोग करना चाहिए~को home directory मानने के बारे में स्पष्टीकरणप्रोग्राम को home directory में फ़ाइलें नहीं जोड़नी चाहिए
CLI की consistency पर राय
लंबे समय तक चलने वाली process को SIGHUP पर configuration फिर से reload करनी चाहिए
SSH connection में उपयोगी टिप
~.का उपयोग किया जा सकता है