- अलग-अलग 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 Expansion व Globstar से 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 बन जाता है
अभी कोई टिप्पणी नहीं है.