Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

15 उपयोगी बैश शेल बिल्ट-इन कमांड्स (उदाहरणों के साथ)

15 उपयोगी बैश शेल बिल्ट-इन कमांड्स (उदाहरणों के साथ)बैश में कई कमांड हैं जो शेल के साथ आती हैं (यानी बैश शेल के अंदर निर्मित)।

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

बैश शेल बिल्ट-इन कमांड बाहरी कमांड की तुलना में तेज़ होते हैं, क्योंकि बाहरी कमांड आमतौर पर इसे निष्पादित करने के लिए एक प्रक्रिया को फोर्क करते हैं।

इस लेख में आइए उदाहरणों के साथ कुछ उपयोगी बैश शेल बिलिन्स की समीक्षा करें।

<एच3>1. बैश निर्यात कमांड उदाहरण

निर्यात कमांड का उपयोग वर्तमान शेल में चल रही सभी चाइल्ड प्रक्रियाओं के वातावरण में एक चर या फ़ंक्शन को निर्यात करने के लिए किया जाता है।

export varname=value
export -f functionname # exports a function in the current shell.

यह एक वैरिएबल या फंक्शन को वैल्यू के साथ एक्सपोर्ट करता है। "env" कमांड सभी पर्यावरण चर को सूचीबद्ध करता है। निम्नलिखित उदाहरण में, आप देख सकते हैं कि env निर्यातित चर प्रदर्शित करता है।

$ export country=India

$ env
SESSIONNAME=Console
country=India
_=/usr/bin/env

"निर्यात -पी" कमांड वर्तमान शेल में सभी निर्यात किए गए चर को भी प्रदर्शित करता है।

<केंद्र> <एच3>2. बैश eval कमांड उदाहरण

eval कमांड सभी दिए गए तर्कों को जोड़ती है और संयुक्त अभिव्यक्ति का मूल्यांकन करती है और इसे निष्पादित करती है, और निष्पादित कमांड की निकास स्थिति लौटाती है।

$ cat evalex.sh
if [ ! -z $1 ]
then
proccomm="ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | grep $1"
else
proccomm="ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu"
fi
eval $proccomm

उपरोक्त कोड स्निपेट एक तर्क को स्वीकार करता है, जो कि एक grep कमांड का पैटर्न है। यह कमांड लाइन में दिए गए एक विशेष पैटर्न के लिए सीपीयू उपयोग और greps के क्रम में प्रक्रियाओं को सूचीबद्ध करता है।

नोट: यह लेख हमारी चल रही बैश ट्यूटोरियल श्रृंखला का हिस्सा है।

<एच3>3. बैश हैश कमांड उदाहरण

हैश कमांड एक हैश टेबल रखता है, जिसमें प्रयुक्त कमांड के पथ नाम होते हैं। जब आप किसी कमांड को निष्पादित करते हैं, तो यह चर $PATH में एक कमांड की खोज करता है। हैश तालिका उस शेल में अब तक उपयोग किए गए प्रत्येक कमांड के लिए हिट की संख्या को बनाए रखती है।

$ hash
hits command
 1 /usr/bin/cat
 2 /usr/bin/ps
 4 /usr/bin/ls

आप -d विकल्प का उपयोग करके हैश तालिका से किसी विशेष कमांड को हटा सकते हैं, और पूर्ण हैश तालिका को रीसेट करने के लिए -r विकल्प।

$ hash -d cat
$ hash
hits command
 2 /usr/bin/ps
 4 /usr/bin/ls
<एच3>4. बैश pwd कमांड उदाहरण

pwd वर्तमान वर्किंग डायरेक्टरी को प्रिंट करने के लिए एक शेल बिल्ट-इन कमांड है। यह मूल रूप से बिल्ट इन वेरिएबल ${PWD}

. का मान लौटाता है
$pwd
/home/sasikala/bash/exercises

$echo $PWD
/home/sasikala/bash/exercises

5. बैश रीड ओनली कमांड उदाहरण

केवल पढ़ने के लिए कमांड का उपयोग एक चर या फ़ंक्शन को केवल-पढ़ने के लिए चिह्नित करने के लिए किया जाता है, जिसे आगे नहीं बदला जा सकता है।

$ cat readonly_ex.sh
#!/bin/bash
# Restricting an array as a readonly
readonly -a shells=("ksh" "bash" "sh" "csh" );
echo ${#shells[@]}

# Trying to modify an array, it throws an error
shells[0]="gnu-bash"

echo ${shells[@]}

$ ./readonly_ex.sh
4
readonly_ex.sh: line 9: shells: readonly variable
<एच3>6. बैश शिफ्ट कमांड उदाहरण

शिफ्ट कमांड का उपयोग एन द्वारा छोड़े गए स्थितीय मापदंडों को कई बार शिफ्ट करने के लिए किया जाता है और शिफ्टिंग के बाद वेरिएबल का नाम बदल देता है।

$ cat shift.sh
#! /bin/bash

while [ $# -gt 0 ]
do
 case "$1" in

 -l) echo "List command"
 ls
 shift
 ;;
 -p) echo "Process command"
 ps -a
 shift
 ;;
 -t) echo "Hash Table command"
 hash
 shift
 ;;
 -h) echo "Help command"
 help
 shift
 ;;
 esac
done

$./shift.sh -l -t
List command analysis break testing t1.sh temp Hash Table command
hits command
 1 /usr/bin/ls
<एच3>7. बैश टेस्ट कमांड उदाहरण

परीक्षण कमांड सशर्त अभिव्यक्ति का मूल्यांकन करता है और मूल्यांकन के आधार पर शून्य या एक देता है। अधिक परीक्षण ऑपरेटरों के लिए बैश के मैनुअल पेज को देखें।

#! /bin/bash

if test -z $1
then
 echo "The positional parameter \$1 is empty"
fi

8. बैश getopts कमांड उदाहरण

getopts कमांड का उपयोग दिए गए कमांड लाइन तर्कों को पार्स करने के लिए किया जाता है। हम विकल्पों के नियमों को परिभाषित कर सकते हैं अर्थात कौन सा विकल्प तर्कों को स्वीकार करता है और कौन सा नहीं। getopts कमांड में, यदि एक विकल्प के बाद एक कोलन आता है, तो वह उस विकल्प के लिए एक तर्क की अपेक्षा करता है।

getopts दो चर $OPTIND और $OPTARG प्रदान करता है जिसमें क्रमशः अगले पैरामीटर और विकल्प तर्कों की अनुक्रमणिका होती है।

$ cat options.sh
#! /bin/bash

while getopts :h:r:l: OPTION
do
 case $OPTION in
 h) echo "help of $OPTARG"
 help "$OPTARG"
 ;;
 r) echo "Going to remove a file $OPTARG"
 rm -f "$OPTARG"
 ;;
 esac
done

$ ./options.sh -h jobs
help of jobs
jobs: jobs [-lnprs] [jobspec ...] or jobs -x command [args]
 Lists the active jobs. The -l option lists process id's in addition
 to the normal information; the -p option lists process id's only.

9. बैश लॉगआउट कमांड

लॉगआउट बिल्ट इन मौजूदा शेल से बाहर निकलने के लिए उपयोग किया जाता है।

<एच3>10. बैश उमास्क कमांड उदाहरण

umask कमांड वर्तमान प्रक्रिया के लिए फ़ाइल मोड निर्माण मास्क सेट करता है। जब कोई उपयोगकर्ता कोई फ़ाइल बनाता है, तो उसकी डिफ़ॉल्ट अनुमति umask में निर्धारित मान पर आधारित होती है। फ़ाइल के लिए डिफ़ॉल्ट अनुमति 666 है, और जब उपयोगकर्ता कोई फ़ाइल बनाता है तो इसे umask बिट्स के साथ मास्क किया जाएगा।

अधिक जानकारी के लिए कृपया हमारे लेख फ़ाइल और निर्देशिका अनुमतियाँ देखें।

जब उपयोगकर्ता फ़ाइल बनाता है तो 666 पर 022 का मुखौटा लगाया जाता है, इसलिए डिफ़ॉल्ट फ़ाइल अनुमति 644 होगी।

$ umask
0022

$ > temporary

$ ls -l temporary
-rw-r--r-- 1 root root 4 Jul 26 07:48 temporary

11. बैश सेट कमांड उदाहरण

सेट एक शेल बिल्ट-इन कमांड है, जिसका उपयोग शेल के आंतरिक चर को सेट और संशोधित करने के लिए किया जाता है। तर्क के बिना सेट कमांड सभी चर और उसके मूल्यों को सूचीबद्ध करता है। सेट कमांड का उपयोग स्थितीय मापदंडों के लिए मान सेट करने के लिए भी किया जाता है।

$ set +o history # To disable the history storing.
+o disables the given options.

$ set -o history
-o enables the history

$ cat set.sh
var="Welcome to thegeekstuff"
set -- $var
echo "\$1=" $1
echo "\$2=" $2
echo "\$3=" $3

$ ./set.sh
$1=Welcome
$2=to
$3=thegeekstuff
<एच3>12. बैश अनसेट कमांड उदाहरण

अनसेट बिल्ट-इन का उपयोग शेल वेरिएबल को शून्य पर सेट करने के लिए किया जाता है। अनसेट का उपयोग किसी सरणी के एक तत्व को हटाने के लिए और
पूर्ण सरणी को हटाने के लिए भी किया जाता है।

बैश एरे के बारे में अधिक जानकारी के लिए, हमारे पहले के लेख 15 बैश ऐरे ऑपरेशंस को देखें

$ cat unset.sh
#!/bin/bash
#Assign values and print it
var="welcome to thegeekstuff"
echo $var

#unset the variable
unset var
echo $var

$ ./unset.sh
welcome to thegeekstuff

उपरोक्त उदाहरण में, अनसेट करने के बाद वेरिएबल "var" को नल स्ट्रिंग के साथ असाइन किया जाएगा।

13. बैश लेट कमांड उदाहरण

let कमांड का उपयोग शेल चरों पर अंकगणितीय संचालन करने के लिए किया जाता है।

$ cat arith.sh
#! /bin/bash

let arg1=12
let arg2=11

let add=$arg1+$arg2
let sub=$arg1-$arg2
let mul=$arg1*$arg2
let div=$arg1/$arg2
echo $add $sub $mul $div

$ ./arith.sh
23 1 132 1
<एच3>14. बैश शॉपट कमांड उदाहरण

Shopt बिल्ट इन कमांड का उपयोग शेल विकल्पों को सेट और अनसेट करने के लिए किया जाता है। इस कमांड का उपयोग करके आप शेल इंटेलिजेंस का उपयोग कर सकते हैं।

$cat shopt.sh
#! /bin/bash

## Before enabling xpg_echo
echo "WELCOME\n"
echo "GEEKSTUF\n"
shopt -s xpg_echo
## After enabling xpg_echo
echo "WELCOME\n"
echo "GEEKSTUF\n"

# Before disabling aliases
alias l.='ls -l .'
l.

# After disabling aliases
shopt -u expand_aliases
l.

$ ./shopt.sh
WELCOME\n
GEEKSTUF\n
WELCOME

GEEKSTUF

total 3300
-rw------- 1 root root 1112 Jan 23 2009 anaconda-ks.cfg
-r-xr-xr-x 1 root root 3252304 Jul 1 08:25 backup
drwxr-xr-x 2 root root 4096 Jan 26 2009 Desktop
shopt.sh: line 17: l.: command not found

xpg_echo विकल्प को सक्षम करने से पहले, इको स्टेटमेंट ने एस्केप सीक्वेंस का विस्तार नहीं किया। "एल।" वर्तमान निर्देशिका के ls -l से अलियास किया गया है। शेल में Expand_aliases विकल्प को अक्षम करने के बाद, इसने उपनामों का विस्तार नहीं किया, आप एक त्रुटि l देख सकते हैं। आदेश नहीं मिला।

<एच3>15. बैश प्रिंटफ कमांड उदाहरण

सी भाषा में प्रिंटफ के समान, प्रिंट ऑपरेशंस को प्रारूपित करने के लिए बिल्ट-इन बैश प्रिंटफ का उपयोग किया जाता है।

उदाहरण 13 में, स्क्रिप्ट दो इनपुट पर अंकगणितीय ऑपरेशन करती है। उस स्क्रिप्ट में इको स्टेटमेंट के बजाय, आप नीचे दिखाए गए स्वरूपित आउटपुट को प्रिंट करने के लिए प्रिंटफ स्टेटमेंट का उपयोग कर सकते हैं।

arith.sh में, इको स्टेटमेंट को इस प्रिंटफ स्टेटमेंट से बदलें।

printf "Addition=%d\nSubtraction=%d\nMultiplication=%d\nDivision=%f\n" $add $sub $mul $div

$ ./arith.sh
Addition=23
Subtraction=1
Multiplication=132
Division=1.000000

  1. बैश शैल फंक्शन ट्यूटोरियल 6 व्यावहारिक उदाहरणों के साथ

    बैश शेल फ़ंक्शन समूह के लिए एकल नाम का उपयोग करके बाद में निष्पादन के लिए कई UNIX / Linux कमांड को समूहबद्ध करने का एक तरीका है। . बैश शेल फ़ंक्शन को नियमित यूनिक्स कमांड की तरह ही निष्पादित किया जा सकता है। शेल फ़ंक्शंस को मौजूदा शेल संदर्भ में उनकी व्याख्या करने के लिए कोई नई प्रक्रिया बनाए बिना न

  1. बैश स्क्रिप्टिंग परिचय ट्यूटोरियल 5 व्यावहारिक उदाहरणों के साथ

    हमारी चल रही यूनिक्स सेड और यूनिक्स Awk श्रृंखला के समान, हम बैश स्क्रिप्टिंग पर कई लेख पोस्ट करेंगे, जो सभी बैश स्क्रिप्टिंग तकनीकों को व्यावहारिक उदाहरणों के साथ कवर करेगा। शेल एक प्रोग्राम है, जो यूजर कमांड की व्याख्या करता है। कमांड या तो उपयोगकर्ता द्वारा सीधे दर्ज किए जाते हैं या शेल स्क्रिप्

  1. 10 उपयोगी विंडोज कमांड

    विंडोज किसके लिए प्रसिद्ध है पुराने MS Dos ऑपरेटिंग सिस्टम की तुलना में इसका उपयोगकर्ता के अनुकूल डिज़ाइन, जिसके लिए आपको सबसे सरल चीजों को करने के लिए कमांड की एक लंबी स्ट्रिंग दर्ज करने की आवश्यकता होती है। यही कारण है कि अधिकांश विंडोज़ उपयोगकर्ता कमांड प्रॉम्प्ट से दूर रहते हैं। लेकिन क्या आप जा