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

Bashrc अनुकूलन गाइड - उपनाम कैसे जोड़ें, कार्यों का उपयोग करें, और अधिक

अपनी .bashrc फ़ाइल को अनुकूलित करने से आपके वर्कफ़्लो में बहुत सुधार हो सकता है और आपकी उत्पादकता बढ़ सकती है।

.bashrc आपके Linux होम निर्देशिका में स्थित एक मानक फ़ाइल है। इस लेख में मैं आपको उपयोगी .bashrc विकल्प, उपनाम, फ़ंक्शन और बहुत कुछ दिखाऊंगा।

.bashrc फ़ाइल को कॉन्फ़िगर करने के मुख्य लाभ हैं:

  • उपनाम जोड़ने से आप तेजी से कमांड टाइप कर सकते हैं, जिससे आपका समय बचता है।
  • फ़ंक्शन जोड़ने से आप जटिल कोड को सहेज सकते हैं और फिर से चला सकते हैं।
  • यह उपयोगी सिस्टम जानकारी प्रदर्शित करता है।
  • यह बैश प्रॉम्प्ट को कस्टमाइज़ करता है।

संपादन .bashrc के साथ शुरुआत कैसे करें

यहां बताया गया है कि आप टेक्स्ट एडिटर से .bashrc फाइल को कैसे एडिट कर सकते हैं:

$ vim ~/.bashrc

आप इतिहास को बैश करने के लिए दिनांक और समय स्वरूपण जोड़ सकते हैं।

HISTTIMEFORMAT="%F %T "
# Output

$ history
 1017  20210228 10:51:28  uptime
 1019  20210228 10:52:42  free -m
 1020  20210228 10:52:49  tree --dirsfirst -F
 1018  20210228 10:51:38  xrandr | awk '/\*/{print $1}'

इतिहास में डुप्लिकेट आदेशों को अनदेखा करने के लिए इस पंक्ति को जोड़ें।

HISTCONTROL=ignoredups

सक्रिय इतिहास में पंक्तियों की संख्या निर्धारित करने के लिए और बैश इतिहास में सहेजी गई पंक्तियों की संख्या निर्धारित करने के लिए, इन दो पंक्तियों को जोड़ें।

HISTSIZE=2000
HISTFILESIZE=2000

आप बैश इतिहास को अधिलेखित करने के बजाय अपना इतिहास संलग्न करने के लिए सेट कर सकते हैं। shopt "खोल विकल्प" के लिए खड़ा है।

shopt -s histappend

सभी डिफ़ॉल्ट शेल विकल्पों को देखने के लिए shopt -p run चलाएं ।

# Output

$ shopt -p

shopt -u autocd                   
shopt -u assoc_expand_once        
shopt -u cdable_vars              
shopt -u cdspell                  
shopt -u checkhash                
shopt -u checkjobs                
shopt -s checkwinsize             
[...]

इस तरह बैश प्रॉम्प्ट में रंग जोड़ने के लिए कुछ वैरिएबल बनाएं:

blk='\[\033[01;30m\]'   # Black
red='\[\033[01;31m\]'   # Red
grn='\[\033[01;32m\]'   # Green
ylw='\[\033[01;33m\]'   # Yellow
blu='\[\033[01;34m\]'   # Blue
pur='\[\033[01;35m\]'   # Purple
cyn='\[\033[01;36m\]'   # Cyan
wht='\[\033[01;37m\]'   # White
clr='\[\033[00m\]'      # Reset

यह विम प्रेमियों के लिए है। यह आपको कमांड लाइन पर vim कमांड का उपयोग करने की अनुमति देगा। यह हमेशा पहली पंक्ति है जिसे मैं अपने .bashrc में जोड़ता हूं।

set -o vi

.bashrc में उपनाम कैसे बनाएं

आप उन आदेशों के लिए उपनामों का उपयोग कर सकते हैं जिन्हें आप बहुत अधिक चलाते हैं। उपनाम बनाने से आप तेजी से टाइप कर सकते हैं, समय की बचत कर सकते हैं और उत्पादकता बढ़ा सकते हैं।

उपनाम बनाने के लिए वाक्य रचना है alias <my_alias>='longer command' . यह पता लगाने के लिए कि कौन से कमांड अच्छे उपनाम बनाएंगे, इस कमांड को चलाकर उन शीर्ष 10 कमांडों की सूची देखें जिन्हें आप सबसे ज्यादा चलाते हैं।

$ history | awk '{cmd[$2]++} END {for(elem in cmd) {print cmd[elem] " " elem}}' | sort -n -r | head -10
# Output

171 git
108 cd
62 vim
51 python3
38 history
32 exit
30 clear
28 tmux
28 tree
27 ls

चूंकि मैं गिट का बहुत उपयोग करता हूं, इसलिए उपनाम बनाने के लिए यह एक अच्छा आदेश होगा।

# View Git status.
alias gs='git status'

# Add a file to Git.
alias ga='git add'

# Add all files to Git.
alias gaa='git add --all'

# Commit changes to the code.
alias gc='git commit'

# View the Git log.
alias gl='git log --oneline'

# Create a new Git branch and move to the new branch at the same time. 
alias gb='git checkout -b'

# View the difference.
alias gd='git diff'

यहां कुछ अन्य उपयोगी उपनाम दिए गए हैं:

# Move to the parent folder.
alias ..='cd ..;pwd'

# Move up two parent folders.
alias ...='cd ../..;pwd'

# Move up three parent folders.
alias ....='cd ../../..;pwd'
# Press c to clear the terminal screen.
alias c='clear'

# Press h to view the bash history.
alias h='history'

# Display the directory structure better.
alias tree='tree --dirsfirst -F'

# Make a directory and all parent directories with verbosity.
alias mkdir='mkdir -p -v'
# View the calender by typing the first three letters of the month.

alias jan='cal -m 01'
alias feb='cal -m 02'
alias mar='cal -m 03'
alias apr='cal -m 04'
alias may='cal -m 05'
alias jun='cal -m 06'
alias jul='cal -m 07'
alias aug='cal -m 08'
alias sep='cal -m 09'
alias oct='cal -m 10'
alias nov='cal -m 11'
alias dec='cal -m 12'
# Output

$ mar

     March 2021      
Su Mo Tu We Th Fr Sa 
    1  2  3  4  5  6 
 7  8  9 10 11 12 13 
14 15 16 17 18 19 20 
21 22 23 24 25 26 27 
28 29 30 31          

.bashrc में फंक्शन का उपयोग कैसे करें

जब कोई उपनाम काम नहीं करता है तो अधिक जटिल कोड के लिए कार्य बहुत अच्छे होते हैं।

यहाँ मूल फ़ंक्शन सिंटैक्स है:

function funct_name() {
	# code;
}

इस प्रकार आप किसी निर्देशिका में सबसे बड़ी फ़ाइलें ढूंढ सकते हैं:

function find_largest_files() {
    du -h -x -s -- * | sort -r -h | head -20;
}
# Output

Downloads $ find_largest_files

709M	systemrescue-8.00-amd64.iso
337M	debian-10.8.0-amd64-netinst.iso
9.1M	weather-icons-master.zip
6.3M	Hack-font.zip
3.9M	city.list.json.gz
2.8M	dvdrental.tar
708K	IMG_2600.JPG
100K	sql_cheat_sheet_pgsql.pdf
4.0K	repeating-a-string.txt
4.0K	heart.svg
4.0K	Fedora-Workstation-33-1.2-x86_64-CHECKSUM
[...]

आप बैश प्रॉम्प्ट में रंग भी जोड़ सकते हैं और वर्तमान गिट शाखा को इस तरह प्रदर्शित कर सकते हैं:

# Display the current Git branch in the Bash prompt.

function git_branch() {
    if [ -d .git ] ; then
        printf "%s" "($(git branch 2> /dev/null | awk '/\*/{print $2}'))";
    fi
}

# Set the prompt.

function bash_prompt(){
    PS1='${debian_chroot:+($debian_chroot)}'${blu}'$(git_branch)'${pur}' \W'${grn}' \$ '${clr}
}

bash_prompt
Bashrc अनुकूलन गाइड - उपनाम कैसे जोड़ें, कार्यों का उपयोग करें, और अधिक

पिछले रन कमांड के लिए अपने इतिहास के माध्यम से ग्रीप (खोज):

function hg() {
    history | grep "$1";
}
# Output

$ hg vim

305  2021-03-02 16:47:33 vim .bashrc
307  2021-03-02 17:17:09 vim .tmux.conf

इस तरह आप Git के साथ एक नया प्रोजेक्ट शुरू करते हैं:

function git_init() {
    if [ -z "$1" ]; then
        printf "%s\n" "Please provide a directory name.";
    else
        mkdir "$1";
        builtin cd "$1";
        pwd;
        git init;
        touch readme.md .gitignore LICENSE;
        echo "# $(basename $PWD)" >> readme.md
    fi
}
# Output

$ git_init my_project

/home/brandon/my_project
Initialized empty Git repository in /home/brandon/my_project/.git/

आप कमांड लाइन पर मौसम की रिपोर्ट भी प्राप्त कर सकते हैं। इसके लिए पैकेज की आवश्यकता है कर्ल , jq , और एक API कुंजी ओपनवेदरमैप से। अपने स्थान पर मौसम प्राप्त करने के लिए URL को सही ढंग से कॉन्फ़िगर करने के लिए Openweathermap API दस्तावेज़ पढ़ें।

इन आदेशों के साथ कर्ल और jq स्थापित करें:

$ sudo apt install curl jq

# OR

$ sudo dnf install curl jq
function weather_report() {

    local response=$(curl --silent 'https://api.openweathermap.org/data/2.5/weather?id=5128581&units=imperial&appid=<YOUR_API_KEY>') 

    local status=$(echo $response | jq -r '.cod')

	# Check for the 200 response indicating a successful API query.
    case $status in
		
        200) printf "Location: %s %s\n" "$(echo $response | jq '.name') $(echo $response | jq '.sys.country')"  
             printf "Forecast: %s\n" "$(echo $response | jq '.weather[].description')" 
             printf "Temperature: %.1f°F\n" "$(echo $response | jq '.main.temp')" 
             printf "Temp Min: %.1f°F\n" "$(echo $response | jq '.main.temp_min')" 
             printf "Temp Max: %.1f°F\n" "$(echo $response | jq '.main.temp_max')" 
            ;;
        401) echo "401 error"
            ;;
        *) echo "error"
            ;;

    esac

}
# Output

$ weather_report

Location: "New York" "US"
Forecast: "clear sky"
Temperature: 58.0°F
Temp Min: 56.0°F
Temp Max: 60.8°F

सिस्टम जानकारी को .bashrc में कैसे प्रिंट करें

जब आप टर्मिनल को इस तरह खोलते हैं तो आप उपयोगी सिस्टम जानकारी प्रदर्शित कर सकते हैं:

clear

printf "\n"
printf "   %s\n" "IP ADDR: $(curl ifconfig.me)"
printf "   %s\n" "USER: $(echo $USER)"
printf "   %s\n" "DATE: $(date)"
printf "   %s\n" "UPTIME: $(uptime -p)"
printf "   %s\n" "HOSTNAME: $(hostname -f)"
printf "   %s\n" "CPU: $(awk -F: '/model name/{print $2}' | head -1)"
printf "   %s\n" "KERNEL: $(uname -rms)"
printf "   %s\n" "PACKAGES: $(dpkg --get-selections | wc -l)"
printf "   %s\n" "RESOLUTION: $(xrandr | awk '/\*/{printf $1" "}')"
printf "   %s\n" "MEMORY: $(free -m -h | awk '/Mem/{print $3"/"$2}')"
printf "\n"

आउटपुट:

Bashrc अनुकूलन गाइड - उपनाम कैसे जोड़ें, कार्यों का उपयोग करें, और अधिक

परिवर्तनों को प्रभावी बनाने के लिए .bashrc फ़ाइल का स्रोत:

$ source ~/.bashrc

ये सभी कस्टम .bashrc सेटिंग्स एक साथ हैं। एक नई प्रणाली पर मैं .bashrc फ़ाइल में डिफ़ॉल्ट कोड के नीचे कोई भी अनुकूलन पेस्ट करता हूं।

######################################################################
#
#
#           ██████╗  █████╗ ███████╗██╗  ██╗██████╗  ██████╗
#           ██╔══██╗██╔══██╗██╔════╝██║  ██║██╔══██╗██╔════╝
#           ██████╔╝███████║███████╗███████║██████╔╝██║     
#           ██╔══██╗██╔══██║╚════██║██╔══██║██╔══██╗██║     
#           ██████╔╝██║  ██║███████║██║  ██║██║  ██║╚██████╗
#           ╚═════╝ ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝
#
#
######################################################################

set -o vi

HISTTIMEFORMAT="%F %T "

HISTCONTROL=ignoredups

HISTSIZE=2000

HISTFILESIZE=2000

shopt -s histappend

blk='\[\033[01;30m\]'   # Black
red='\[\033[01;31m\]'   # Red
grn='\[\033[01;32m\]'   # Green
ylw='\[\033[01;33m\]'   # Yellow
blu='\[\033[01;34m\]'   # Blue
pur='\[\033[01;35m\]'   # Purple
cyn='\[\033[01;36m\]'   # Cyan
wht='\[\033[01;37m\]'   # White
clr='\[\033[00m\]'      # Reset

alias gs='git status'

alias ga='git add'

alias gaa='git add --all'

alias gc='git commit'

alias gl='git log --oneline'

alias gb='git checkout -b'

alias gd='git diff'

alias ..='cd ..;pwd'

alias ...='cd ../..;pwd'

alias ....='cd ../../..;pwd'

alias c='clear'

alias h='history'

alias tree='tree --dirsfirst -F'

alias mkdir='mkdir -p -v'

alias jan='cal -m 01'
alias feb='cal -m 02'
alias mar='cal -m 03'
alias apr='cal -m 04'
alias may='cal -m 05'
alias jun='cal -m 06'
alias jul='cal -m 07'
alias aug='cal -m 08'
alias sep='cal -m 09'
alias oct='cal -m 10'
alias nov='cal -m 11'
alias dec='cal -m 12'

function hg() {
    history | grep "$1";
}

function find_largest_files() {
    du -h -x -s -- * | sort -r -h | head -20;
}

function git_branch() {
    if [ -d .git ] ; then
        printf "%s" "($(git branch 2> /dev/null | awk '/\*/{print $2}'))";
    fi
}

# Set the prompt.
function bash_prompt(){
    PS1='${debian_chroot:+($debian_chroot)}'${blu}'$(git_branch)'${pur}' \W'${grn}' \$ '${clr}
}

bash_prompt

function git_init() {
    if [ -z "$1" ]; then
        printf "%s\n" "Please provide a directory name.";
    else
        mkdir "$1";
        builtin cd "$1";
        pwd;
        git init;
        touch readme.md .gitignore LICENSE;
        echo "# $(basename $PWD)" >> readme.md
    fi
}

function weather_report() {

    local response=$(curl --silent 'https://api.openweathermap.org/data/2.5/weather?id=5128581&units=imperial&appid=<YOUR_API_KEY>') 

    local status=$(echo $response | jq -r '.cod')

    case $status in
		
        200) printf "Location: %s %s\n" "$(echo $response | jq '.name') $(echo $response | jq '.sys.country')"  
             printf "Forecast: %s\n" "$(echo $response | jq '.weather[].description')" 
             printf "Temperature: %.1f°F\n" "$(echo $response | jq '.main.temp')" 
             printf "Temp Min: %.1f°F\n" "$(echo $response | jq '.main.temp_min')" 
             printf "Temp Max: %.1f°F\n" "$(echo $response | jq '.main.temp_max')" 
            ;;
        401) echo "401 error"
            ;;
        *) echo "error"
            ;;

    esac

}

clear

printf "\n"
printf "   %s\n" "IP ADDR: $(curl ifconfig.me)"
printf "   %s\n" "USER: $(echo $USER)"
printf "   %s\n" "DATE: $(date)"
printf "   %s\n" "UPTIME: $(uptime -p)"
printf "   %s\n" "HOSTNAME: $(hostname -f)"
printf "   %s\n" "CPU: $(awk -F: '/model name/{print $2}' | head -1)"
printf "   %s\n" "KERNEL: $(uname -rms)"
printf "   %s\n" "PACKAGES: $(dpkg --get-selections | wc -l)"
printf "   %s\n" "RESOLUTION: $(xrandr | awk '/\*/{printf $1" "}')"
printf "   %s\n" "MEMORY: $(free -m -h | awk '/Mem/{print $3"/"$2}')"
printf "\n"

निष्कर्ष

इस लेख में आपने सीखा कि विभिन्न .bashrc विकल्पों, उपनामों, कार्यों आदि को कैसे कॉन्फ़िगर किया जाए ताकि आपके वर्कफ़्लो को बेहतर बनाया जा सके और आपकी उत्पादकता बढ़ाई जा सके।

गीथूब पर मेरा अनुसरण करें | Dev.to.


  1. कस्टम शैल फ़ंक्शंस और पुस्तकालयों को कैसे लिखें और उपयोग करें

    Linux में, शेल स्क्रिप्ट कई अलग-अलग तरीकों से हमारी मदद करती हैं, जिसमें कुछ सिस्टम व्यवस्थापन कार्यों को निष्पादित करना या स्वचालित करना, सरल कमांड लाइन टूल बनाना और बहुत कुछ शामिल हैं। इस गाइड में, हम नए लिनक्स उपयोगकर्ताओं को दिखाएंगे कि कस्टम शेल स्क्रिप्ट को मज़बूती से कहाँ संग्रहीत किया जाए,

  1. Mac पर Chromecast कैसे सेट करें और उसका उपयोग कैसे करें, इस पर एक आसान गाइड

    Google Chromecast को एक सस्ता उपकरण माना जाता है जिसका उपयोग आप अपने स्मार्टफ़ोन डिवाइस या यहां तक ​​कि अपने कंप्यूटर का उपयोग करके अपने टेलीविज़न पर अपने वीडियो, मूवी और कुछ अन्य मीडिया को चलाने की अनुमति देने के लिए कर सकते हैं। हालाँकि, Mac पर Chromecast का उपयोग करना Android डिवाइस पर Windows क

  1. टीम कैसे स्थापित करें और उपयोग करें आउटलुक के लिए जोड़ें

    Microsoft Teams एक व्यावसायिक प्लेटफ़ॉर्म है जो व्यवसाय निगम को कई सेवाओं को फलने-फूलने की अनुमति देता है। इन सेवाओं में वीडियो कॉन्फ़्रेंस, कार्यस्थल चैटिंग, फ़ाइल संग्रहण और दस्तावेज़ साझाकरण शामिल हैं। टीमों ने निश्चित रूप से दूरस्थ व्यवसायों को बढ़ने, संगठित होने और अपने कर्मचारियों से बेहतर तरी