Linux में, डिफ़ॉल्ट रूप से बैश कमांड लाइन में उपयोगकर्ताओं के लिए निम्नलिखित मानक कम्पलीशन प्रदान करता है:
- वेरिएबलनाम कम्पलीशन
- यूजरनाम कम्पलीशन
- एग्जीक्यूटेबल कम्पलीशन
- फाइलनाम और डायरेक्टरी कम्पलीशन
- होस्टनाम कम्पलीशन
1. वेरिएबलनाम कम्पलीशन
टर्मिनल में $ टाइप करने के बाद, दो बार टैब दबाने पर सभी उपलब्ध शेल वेरिएबल प्रदर्शित होंगे जैसा कि नीचे दिखाया गया है।
$ echo $[TAB][TAB] $_ $COMP_POINT $HOSTTYPE $PS1 $_backup_glob $COMPREPLY $IFS $PS2 $BASH $COMP_TYPE $inx $PS4 $BASH_ALIASES $COMP_WORDBREAKS $LANG $PWD $BASH_ARGC $COMP_WORDS $LANGUAGE $RANDOM $BASH_ARGV $cur $LESSCLOSE $redir $BASH_CMDS $cword $LESSOPEN $SECONDS $BASH_COMMAND $DIRSTACK $LINENO $SHELL $BASH_COMPLETION_COMPAT_DIR $DISPLAY $LINES $SHELLOPTS $BASH_LINENO $errx $LOGNAME $SHLVL $BASHOPTS $EUID $LS_COLORS $split $BASHPID $exclude $MACHTYPE $SUDO_COMMAND $BASH_REMATCH $flag $MAIL $SUDO_GID $BASH_SOURCE $FUNCNAME $MAILCHECK $SUDO_UID $BASH_SUBSHELL $GROUPS $OLDPWD $SUDO_USER $BASH_VERSINFO $__grub_script_check_program $OPTERR $suffix $BASH_VERSION $HISTCMD $OPTIND $TERM $__colormgr_commandlist $HISTCONTROL $OSTYPE $UID $COLORTERM $HISTFILE $outx $USER $COLUMNS $HISTFILESIZE $PATH $USERNAME $COMP_CWORD $HISTSIZE $PIPESTATUS $words $COMP_KEY $HOME $PPID $XAUTHORITY $COMP_LINE $HOSTNAME $prev $_xspecs
2. यूजरनाम कम्पलीशन
जब आप टिल्ड (~) के बाद दो बार टैब दबाते हैं, तो बैश स्वचालित रूप से यूजरनाम कम्पलीशन शुरू कर देगा।
$ cd ~[TAB][TAB] ~bala/ ~raj/ ~jason/ ~randy/ ~john/ ~ritu/ ~mayla/ ~thomas/ ~nisha/ ~www-data
कृपया ध्यान दें कि यह होम डायरेक्टरी से यूजरनाम नहीं लेता है। इसके बजाय, यह /etc/passwd फ़ाइल से सभी उपलब्ध यूजरनाम प्रदर्शित करता है।
3. एग्जीक्यूटेबल्स के लिए पाथनाम कम्पलीशन
जब आप एक कमांड निष्पादित करने का प्रयास कर रहे होते हैं, यदि एग्जीक्यूटेबल में एक्जीक्यूट परमिशन है, तो यह स्वचालित रूप से पूरा हो जाएगा, यदि एक ही मैच पाया जाता है जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।
$ ls -l /etc/init.d/reboot -rwxr-xr-x 1 root root 639 Jan 30 2013 /etc/init.d/reboot $ /etc/init.d/reb[TAB][TAB] $ /etc/init.d/reboot
जब कई मैच पाए जाते हैं, तो यह उपलब्ध कमांड प्रदर्शित करेगा।
4. फाइलनाम और डायरेक्टरी कम्पलीशन
यह कम्पलीशन कमांड लाइन पर दूसरी और बाद की स्थिति में आने वाले फाइलनाम और डायरेक्टरी नामों के लिए है। ऊपर के उदाहरण के विपरीत, यह किसी भी परमिशन की जांच नहीं करता है, और बस सभी उपलब्ध फाइलों और डायरेक्टरी को प्रदर्शित करता है।
$ ls countfiles.sh dir1 dir2 dir3 $ cat [TAB][TAB] countfiles.sh dir1 dir2 dir3 $ cat c[TAB][TAB] $ cat countfiles.sh
इसके अलावा, जब प्रदर्शित करने के लिए बहुत सारी फाइलें होती हैं, तो स्क्रीन पर सभी संभावनाओं को प्रदर्शित करने के बजाय, जो बहुत भ्रमित करने वाला हो सकता है, यह निम्नलिखित चेतावनी संदेश देगा।
$ ls -l /etc/ Display all 228 possibilities? (y or n)
5. होस्टनाम कम्पलीशन
होस्टनाम प्राप्त करने के लिए जिनसे कनेक्ट करना है, @ सिंबल के बाद दो बार टैब दबाएं जैसा कि नीचे दिखाया गया है:
$ ssh john@[TAB][TAB] @dev-db @fileserver @qa-server @prod-db @localhost @web-server
आप इस होस्टनाम कम्पलीशन सुविधा का उपयोग किसी भी कमांड के साथ कर सकते हैं जहां आप होस्टनाम के लिए @ दे सकते हैं। उदाहरण के लिए, आप इसे scp के साथ भी उपयोग कर सकते हैं जैसा कि नीचे दिखाया गया है:
$ scp filename.txt john@[TAB][TAB] @dev-db @fileserver @qa-server @prod-db @localhost @web-server
कृपया ध्यान दें कि यह /etc/hosts फ़ाइल से उपलब्ध होस्टनाम लेता है।