• अलग-अलग keyboard shortcuts और command combinations का उपयोग करके shell environment में काम की गति और दक्षता बढ़ाने के तरीके संक्षेप में दिए गए हैं
  • CTRL + W, U, K, Y जैसे बेसिक shortcuts से line editing, CTRL + A/E, ALT + B/F से cursor movement, और reset से terminal recovery संभव है
  • Bash और Zsh में CTRL + R से command history search, !!·!$·ESC+. से पिछले commands दोबारा इस्तेमाल, और Brace ExpansionGlobstar से repetitive tasks को automate किया जा सकता है
  • Process Substitution, tee, bg/disown जैसी advanced features से process control और log management को अधिक efficient बनाया जा सकता है
  • shell को toolbox की तरह सहजता से इस्तेमाल करने पर productivity और focus दोनों बढ़ते हैं, और shortcuts को एक-एक करके आदत बनाना सबसे अहम है

लगभग सभी shell में काम करने वाले बेसिक shortcuts और features

  • CTRL + W, U, K, Yकंबिनेशन cursor के आधार पर शब्द या लाइन के आगे-पीछे के हिस्से को तेज़ी से delete या restore करने वाले line editing shortcuts हैं

    • CTRL + W cursor से पहले का शब्द delete करता है
    • CTRL + U cursor से लाइन की शुरुआत तक cut करता है, और CTRL + Y से उसे फिर paste किया जा सकता है
    • CTRL + K cursor से लाइन के अंत तक cut करता है
    • CTRL + A / E लाइन की शुरुआत और अंत तक ले जाते हैं, ALT + B / F शब्द के आधार पर पीछे-आगे move करते हैं
    • ज़्यादातर terminal में ये default रूप से enabled होते हैं, जबकि Mac पर इन्हें चलाने के लिए Option key को Meta के रूप में सेट करना पड़ता है
    • reset या stty sane command, binary file गलती से output होने पर terminal के बिगड़ जाने की स्थिति में recovery के लिए उपयोगी हैं
    • स्क्रीन बिगड़ी हुई हो तब भी input संभव होता है, इसलिए reset टाइप करके Enter दबाने पर restore हो जाता है
    • CTRL + C / D क्रमशः command interrupt करने और EOF (file end) signal भेजने के लिए हैं
    • खाली prompt पर CTRL + D दबाने से shell बंद हो जाता है
    • CTRL + L clear command की तरह तुरंत स्क्रीन साफ़ करता है
    • अभी टाइप की जा रही command को बनाए रखते हुए prompt को स्क्रीन के ऊपरी हिस्से में ले जाता है
    • cd - तुरंत पिछले directory में ले जाता है, और pushd / popd directory stack की मदद से कई locations के बीच काम करना आसान बनाते हैं
    • > file.txt file को खाली करता है लेकिन delete नहीं करता, इसलिए permissions और ownership बरकरार रहते हैं
    • $_ variable पिछली command का आख़िरी argument दोबारा इस्तेमाल करने देता है
    • उदाहरण: mkdir -p /path/newdir && cd "$_"
    • set -e, set -u script safety बढ़ाने वाले options हैं
    • set -e error होने पर तुरंत exit कर देता है
    • set -u undefined variable को refer करने पर error देता है
    • set -euo pipefail का combination और भी मज़बूत protection देता है

Bash और Zsh में advanced shortcuts और features

  • CTRL + R command history में reverse incremental search करता है
    • keyword टाइप करते ही पुराने commands तुरंत मिल जाते हैं और दोबारा इस्तेमाल किए जा सकते हैं
  • !! पिछली पूरी command को फिर से चलाता है
    • sudo !! से पिछली command को admin rights के साथ दोबारा चलाया जा सकता है
  • CTRL + X, CTRL + E अभी टाइप की जा रही command को default editor (Vim, Nano आदि) में खोलते हैं, जहाँ उसे edit करके चलाया जा सकता है
    • Zsh में इसके लिए अलग configuration की ज़रूरत होती है
    • fc command पुरानी command को $EDITOR में खोलकर edit करने का पारंपरिक तरीका है
  • ESC + . या ALT + . पिछली command का आख़िरी argument cursor की जगह insert करते हैं
    • बार-बार दबाने पर उससे भी पुरानी commands के arguments तक cycle किया जा सकता है
    • !$ वही काम non-interactive तरीके से करता है
  • Brace Expansionदोहराव वाली typing कम करने की curly brace expansion feature है

    • cp pf.conf{,.bak}cp pf.conf pf.conf.bak
    • mv filename.{txt,md}mv filename.txt filename.md
    • mkdir -p project/{src,tests,docs} से कई directories बनाई जा सकती हैं
    • Process Substitution <(command) command output को file की तरह treat करता है
    • उदाहरण: diff <(sort file1.txt) <(sort file2.txt) से temporary files के बिना comparison किया जा सकता है
    • Globstar(**) subdirectories तक recursively files खोजने देता है
    • Bash में shopt -s globstar से enable करना पड़ता है, जबकि Zsh में यह default रूप से enabled होता है
    • उदाहरण: ls **/*.js से सभी subfolders की JS files खोजी जा सकती हैं
  • CTRL + Z**,** bg**,** disown** का combination processes कोbackground में चलाने और shell से अलग करने के लिए है

    • CTRL + Z से pause → bg से background execution → disown से shell से अलग
    • इससे SSH बंद होने के बाद भी process चलती रह सकती है
    • command |& tee file.log standard output(stdout) और standard error(stderr) दोनों को एक साथ pipe के ज़रिए भेजता है
    • |& , 2>&1 | का shorthand है
    • tee का उपयोग स्क्रीन पर output दिखाने और log save करने दोनों के लिए साथ में किया जा सकता है

shell के उपयोग पर मुख्य सलाह

  • shell एक toolbox है, और इसे अच्छे से चलाना productivity को काफ़ी बढ़ा सकता है
  • सभी shortcuts एक साथ सीखने की बजाय एक-एक करके आदत बनाना ज़्यादा प्रभावी है
  • repetitive input और बेकार typing कम करके workflow को सरल बनाया जा सकता है
  • आदत पड़ने पर terminal अब रुकावट नहीं बल्कि अपना workspace बन जाता है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.