प्रॉक्सी सेटिंग्स प्रदर्शित करने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते

Home PDF

prexec

चीन में रहना या ऐसी कंपनियों में काम करना जो VPN और प्रॉक्सी का उपयोग करती हैं, सॉफ़्टवेयर डेवलपमेंट को जटिल बना सकता है। इन सेटिंग्स को कॉन्फ़िगर करना भूल जाने से अक्सर कनेक्टिविटी समस्याएं होती हैं। अपने वर्कफ़्लो को सुव्यवस्थित करने के लिए, मैंने ChatGPT की मदद से एक सरल Zsh स्क्रिप्ट बनाई है जो आपके प्रॉक्सी सेटिंग्स को स्वचालित रूप से प्रदर्शित करती है जब आप विशिष्ट नेटवर्क-निर्भर कमांड चलाते हैं।

प्रॉक्सी सेटिंग्स क्यों दिखाएं?

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

स्क्रिप्ट

यह स्क्रिप्ट Zsh के preexec फ़ंक्शन का उपयोग करती है ताकि यह जांच सके कि आने वाला कमांड नेटवर्क-निर्भर है या नहीं। यदि यह नेटवर्क-निर्भर है और प्रॉक्सी पर्यावरण चर सेट हैं, तो यह वर्तमान प्रॉक्सी सेटिंग्स प्रदर्शित करता है।

# कुछ कमांड्स से पहले प्रॉक्सी सेटिंग्स की जांच और प्रदर्शन करने के लिए फ़ंक्शन
preexec() {
    # नेटवर्क-निर्भर कमांड्स को परिभाषित करें
    local network_commands=(
        "gpa"
        "git"
        "ssh"
        "scp"
        "sftp"
        "rsync"
        "curl"
        "wget"
        "apt"
        "yum"
        "dnf"
        "npm"
        "yarn"
        "pip"
        "pip3"
        "gem"
        "cargo"
        "docker"
        "kubectl"
        "ping"
        "traceroute"
        "netstat"
        "ss"
        "ip"
        "ifconfig"
        "dig"
        "nslookup"
        "nmap"
        "telnet"
        "ftp"
        "nc"
        "tcpdump"
        "adb"
        "bundle"
        "brew"
        "cpanm"
        "bundle exec jekyll"
        "make"
        # आवश्यकतानुसार और कमांड्स जोड़ें
    )
# कमांड लाइन से पहला शब्द (कमांड) निकालें
local cmd
cmd=$(echo "$1" | awk '{print $1}')

# प्रॉक्सी वेरिएबल्स दिखाने के लिए फ़ंक्शन
display_proxy() {
    echo -e "\n🚀 प्रॉक्सी सेटिंग्स पाई गईं:"

    [ -n "$HTTP_PROXY" ] && echo "   - HTTP_PROXY: $HTTP_PROXY"
    [ -n "$http_proxy" ] && echo "   - http_proxy: $http_proxy"
    [ -n "$HTTPS_PROXY" ] && echo "   - HTTPS_PROXY: $HTTPS_PROXY"
    [ -n "$https_proxy" ] && echo "   - https_proxy: $https_proxy"
    [ -n "$ALL_PROXY" ] && echo "   - ALL_PROXY: $ALL_PROXY"
    [ -n "$all_proxy" ] && echo "   - all_proxy: $all_proxy"
echo ""
# जांचें कि कमांड नेटवर्क-निर्भर है या नहीं
for network_cmd in "${network_commands[@]}"; do
    if [[ "$1" == "$network_cmd"* ]]; then
        if [ -n "$HTTP_PROXY" ] || [ -n "$http_proxy" ] || \
           [ -n "$HTTPS_PROXY" ] || [ -n "$https_proxy" ] || \
           [ -n "$ALL_PROXY" ] || [ -n "$all_proxy" ]; then
            
            display_proxy
        fi
        break
    fi
done } ```

Zsh में स्क्रिप्ट सेटअप करना

1. अपनी .zshrc फ़ाइल खोलें

अपने पसंदीदा टेक्स्ट एडिटर का उपयोग करके .zshrc कॉन्फ़िगरेशन फ़ाइल को खोलें। उदाहरण के लिए:

nano ~/.zshrc

2. preexec फ़ंक्शन जोड़ें

फ़ाइल के अंत में उपरोक्त स्क्रिप्ट को पेस्ट करें।

3. सहेजें और बंद करें

फ़ाइल को सहेजने के लिए CTRL + O दबाएं और बाहर निकलने के लिए CTRL + X दबाएं।

4. परिवर्तन लागू करें

अपने .zshrc को तुरंत नई कॉन्फ़िगरेशन लागू करने के लिए रीलोड करें:

source ~/.zshrc

सेटअप का परीक्षण

1. प्रॉक्सी सक्षम के साथ

एक प्रॉक्सी वेरिएबल को अस्थायी रूप से सेट करें और pip का उपयोग करके एक नेटवर्क-निर्भर कमांड चलाएं:

export HTTP_PROXY="http://127.0.0.1:7890"
pip install selenium beautifulsoup4 urllib3

(नोट: कोड ब्लॉक को अनुवादित नहीं किया गया है क्योंकि यह प्रोग्रामिंग भाषा में लिखा गया है और इसे बदलने की आवश्यकता नहीं है।)

अपेक्षित आउटपुट:

(कोड ब्लॉक को अनुवादित नहीं किया जाएगा।)

🚀 प्रॉक्सी सेटिंग्स पाई गईं:
   - HTTP_PROXY: http://127.0.0.1:7890
   - http_proxy: 127.0.0.1:7890
   - HTTPS_PROXY: 127.0.0.1:7890
   - https_proxy: 127.0.0.1:7890
   - ALL_PROXY: 127.0.0.1:7890
   - all_proxy: 127.0.0.1:7890

सेलेनियम इकट्ठा कर रहा है
  सेलेनियम-4.x.x-py2.py3-none-any.whl (xxx kB) डाउनलोड कर रहा है
ब्यूटीफुलसूप4 इकट्ठा कर रहा है
  beautifulsoup4-4.x.x-py3-none-any.whl (xxx kB) डाउनलोड कर रहा है
urllib3 इकट्ठा कर रहा है
  urllib3-1.x.x-py2.py3-none-any.whl (xxx kB) डाउनलोड कर रहा है
...

2. प्रॉक्सी सक्षम किए बिना

प्रॉक्सी वेरिएबल को अनसेट करें और वही pip कमांड चलाएं:

unset HTTP_PROXY
pip install selenium beautifulsoup4 urllib3

(यह कोड ब्लॉक में है, इसलिए इसे अनुवादित नहीं किया गया है।)

अपेक्षित आउटपुट:

selenium एकत्रित कर रहा है
  selenium-4.x.x-py2.py3-none-any.whl (xxx kB) डाउनलोड हो रहा है
beautifulsoup4 एकत्रित कर रहा है
  beautifulsoup4-4.x.x-py3-none-any.whl (xxx kB) डाउनलोड हो रहा है
urllib3 एकत्रित कर रहा है
  urllib3-1.x.x-py2.py3-none-any.whl (xxx kB) डाउनलोड हो रहा है
...

(कोई प्रॉक्सी सूचना प्रदर्शित नहीं होनी चाहिए।)

3. नेटवर्क रहित कमांड

स्थानीय कमांड चलाएं जैसे ls:

ls

अपेक्षित आउटपुट:

[फ़ाइलों और निर्देशिकाओं की सूची]

(कोई प्रॉक्सी सूचना प्रदर्शित नहीं होनी चाहिए।)

अनुकूलन

यहां gpa नामक एक एलियास बनाया गया है जो git push all कमांड को संक्षिप्त रूप में प्रदर्शित करता है। इसका उपयोग करके आप git push all कमांड को gpa लिखकर चला सकते हैं।

"gpa" को network_commands सरणी में जोड़ें ताकि इस उपनाम का उपयोग करते समय प्रॉक्सी सूचनाएं ट्रिगर हो सकें।

बेहतर दृश्यता के लिए, विशेष रूप से अव्यवस्थित टर्मिनल में, आप प्रॉक्सी सूचनाओं में रंग जोड़ सकते हैं:

  # अपने .zshrc फ़ाइल के शीर्ष पर रंग कोड जोड़ें
  GREEN='\033[0;32m'
  NC='\033[0m' # कोई रंग नहीं
display_proxy() {
  echo -e "\n${GREEN}🚀 प्रॉक्सी सेटिंग्स पाई गईं:${NC}"
}
[ -n "$HTTP_PROXY" ] && echo "   - HTTP_PROXY: $HTTP_PROXY"
[ -n "$http_proxy" ] && echo "   - http_proxy: $http_proxy"
[ -n "$HTTPS_PROXY" ] && echo "   - HTTPS_PROXY: $HTTPS_PROXY"
[ -n "$https_proxy" ] && echo "   - https_proxy: $https_proxy"
[ -n "$ALL_PROXY" ] && echo "   - ALL_PROXY: $ALL_PROXY"
[ -n "$all_proxy" ] && echo "   - all_proxy: $all_proxy"
  echo ""   }   ```

निष्कर्ष

प्रॉक्सी सेटिंग्स को प्रबंधित करना प्रतिबंधित नेटवर्क वातावरण में सॉफ्टवेयर विकास को सुचारू रूप से चलाने के लिए महत्वपूर्ण है। यह Zsh स्क्रिप्ट सुनिश्चित करती है कि जब आप नेटवर्क एक्सेस की आवश्यकता वाले कमांड चलाते हैं, तो आप हमेशा अपनी प्रॉक्सी कॉन्फ़िगरेशन के बारे में सूचित रहें, जिससे आपका वर्कफ़्लो बेहतर होता है और समस्या निवारण की दक्षता बढ़ती है।

कोडिंग का आनंद लें! 🚀


Back 2025.01.18 Donate