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

पावरशेल में पर्यावरण चर

पर्यावरण चर आपके Linux, Mac, या Windows कंप्यूटर के लिए वैश्विक सेटिंग्स हैं, जिन्हें कमांड निष्पादित करते समय उपयोग करने के लिए सिस्टम शेल के लिए संग्रहीत किया जाता है। कई इंस्टॉलेशन या उपयोगकर्ता निर्माण के दौरान डिफ़ॉल्ट रूप से सेट होते हैं।

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

विंडोज़ पर:

PS C:\Users\bogus> Get-Variable HOME -valueOnly
C:\Users\bogus

लिनक्स पर:

pwsh> Get-Variable HOME -valueOnly
HOME=/home/seth

मैक पर:

pwsh> Get-Variable HOME -valueOnly
HOME=/Users/bogus

आप आमतौर पर सीधे पर्यावरण चर का उपयोग नहीं करते हैं, लेकिन उन्हें आवश्यकतानुसार अलग-अलग अनुप्रयोगों और डेमॉन द्वारा संदर्भित किया जाता है। हालांकि, पर्यावरण चर तब उपयोगी हो सकते हैं जब आप डिफ़ॉल्ट सेटिंग्स को ओवरराइड करना चाहते हैं, या जब आपको नई सेटिंग्स को प्रबंधित करने की आवश्यकता होती है जिसे आपके सिस्टम के पास स्वयं बनाने का कोई कारण नहीं है।

यह लेख ओपन सोर्स पावरशेल वातावरण में पर्यावरण चर के बारे में है, और इसलिए यह विंडोज, लिनक्स और मैक पर चल रहे पावरशेल पर लागू होता है। बैश शेल के उपयोगकर्ताओं को बैश पर्यावरण चर के बारे में मेरे लेख का संदर्भ लेना चाहिए।

इस लेख के लिए, मैंने ओपन सोर्स ऑपरेटिंग सिस्टम लिनक्स पर पावरशेल चलाया। आपके प्लेटफ़ॉर्म पर ध्यान दिए बिना आदेश समान हैं, हालांकि आउटपुट भिन्न होगा (उदाहरण के लिए, यह सांख्यिकीय रूप से असंभव है कि आपका उपयोगकर्ता नाम सेठ है )।

पर्यावरण चर क्या हैं?

पावरशेल में पर्यावरण चर विशेष प्रकार के चर हैं जो सिस्टम को ऑपरेटिंग सिस्टम के वातावरण के बारे में जानकारी प्रदान करते हैं। पर्यावरण चर के साथ, आप Windows रजिस्ट्री में चरों को देख और बदल सकते हैं, साथ ही किसी विशेष सत्र के लिए चर सेट कर सकते हैं।

पावरशेल में, पर्यावरण चर Env: . में संग्रहीत किए जाते हैं "ड्राइव", जिसे पॉवरशेल पर्यावरण प्रदाता . के माध्यम से एक्सेस किया जा सकता है , पावरशेल का एक सबसिस्टम। यह एक भौतिक ड्राइव नहीं है, बल्कि एक वर्चुअल फाइल सिस्टम है।

क्योंकि पर्यावरण चर Env: . में मौजूद हैं ड्राइव करें, आपको Env: . को प्रीपेन्ड करना होगा चर नाम के लिए जब आप उनका संदर्भ देते हैं। वैकल्पिक रूप से, आप अपना कार्य स्थान Env: . पर सेट कर सकते हैं सेट-स्थान . के साथ ड्राइव करें कमांड ताकि आप सभी पर्यावरण चर को स्थानीय चर के रूप में मान सकें:

PS> Set-Location Env:
PS> pwd

Path
----
Env:/

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

आप अपने सिस्टम पर सेट किए गए सभी पर्यावरण चरों को Get-ChildItem . के साथ देख सकते हैं Env: . के भीतर से आदेश चलाना। सूची लंबी है, इसलिए आउटपुट को आउट-होस्ट -पेजिंग . के माध्यम से पाइप करें पढ़ने में आसान बनाने के लिए:

PS> Get-ChildItem | out-host -paging
LOGNAME      seth
LS_COLORS    rs=0:mh=00:bd=48;5;232;38;5;
MAIL         /var/spool/mail/seth
MODULEPATH   /etc/scl/modulefiles:/etc/scl/modulefiles
MODULESHOME  /usr/share/Modules
OLDPWD       /home/seth
PATH         /opt/microsoft/powershell/6:/usr/share/Modules/bin
PSModulePath /home/seth/.local/share/powershell/Modules
PWD          /home/seth
[...]

अगर आप Env: . में नहीं हैं ड्राइव करें, तो आप Env:  . जोड़कर वही काम कर सकते हैं आपके आदेश पर:

PS> Get-ChildItem Env: | out-host -paging
LOGNAME      seth
LS_COLORS    rs=0:mh=00:bd=48;5;232;38;5;
MAIL         /var/spool/mail/seth
MODULEPATH   /etc/scl/modulefiles:/etc/scl/modulefiles

पर्यावरण चर को सामान्य चर के लिए उपयोग किए जाने वाले कुछ समान सिंटैक्स के साथ सेट, रिकॉल और क्लियर किया जा सकता है। अन्य चरों की तरह, सत्र के दौरान आप जो कुछ भी सेट करते हैं वह केवल उस विशेष सत्र पर लागू होता है।

यदि आप किसी वैरिएबल में स्थायी परिवर्तन करना चाहते हैं, तो आपको उन्हें विंडोज़ पर विंडोज़ रजिस्ट्री में या शेल कॉन्फ़िगरेशन फ़ाइल (जैसे ~/.bashrc) में बदलना होगा। ) लिनक्स या मैक पर। यदि आप PowerShell में चरों के उपयोग से परिचित नहीं हैं, तो जारी रखने से पहले मेरे चरों को PowerShell लेख में पढ़ें।

पर्यावरण चर किसके लिए उपयोग किए जाते हैं?

विभिन्न पर्यावरण चर आपके कंप्यूटर के भीतर कई अलग-अलग प्रणालियों द्वारा उपयोग किए जाते हैं। आपका पथ उदाहरण के लिए, चर आपके शेल के लिए महत्वपूर्ण है, लेकिन जावा (जिसमें पथ भी हैं, लेकिन वे सामान्य सिस्टम फ़ोल्डर के बजाय महत्वपूर्ण जावा पुस्तकालयों के पथ हैं) के लिए बहुत कम महत्वपूर्ण हैं। हालांकि, उपयोगकर्ता चर का उपयोग कई अलग-अलग प्रक्रियाओं द्वारा यह पहचानने के लिए किया जाता है कि सेवा का अनुरोध कौन कर रहा है।

जब आप कोई नया एप्लिकेशन इंस्टॉल कर रहे होते हैं, तो ओपन सोर्स Nullsoft Scriptable Install System (NSIS) फ्रेमवर्क की तरह एक इंस्टॉलर विज़ार्ड, आपके पर्यावरण चर को अपडेट करता है। कभी-कभी, जब आप अपने ऑपरेटिंग सिस्टम के इच्छित टूलसेट के बाहर कुछ स्थापित कर रहे होते हैं, तो आपको पर्यावरण चर को स्वयं प्रबंधित करना पड़ सकता है। या, आप अपनी प्राथमिकताओं के अनुरूप एक पर्यावरण चर जोड़ना चुन सकते हैं।

वे नियमित चर से कैसे भिन्न हैं?

जब आप एक सामान्य चर बनाते हैं, तो चर को स्थानीय माना जाता है, जिसका अर्थ है कि इसे उस शेल के बाहर परिभाषित नहीं किया गया है जिसने इसे बनाया है।

उदाहरण के लिए, एक वैरिएबल बनाएं:

PS> Set-Variable -Name VAR -Value "example"
PS> gv VAR -valueOnly
example

अपने वर्तमान शेल के भीतर से भी एक नया शेल लॉन्च करें:

PS> pwsh
PS c:\> gv VAR -valueOnly
gv : Cannot find a variable with the name 'example'.

दूसरी ओर, पर्यावरण चर, दायरे में वैश्विक होने के लिए हैं। वे उस शेल से अलग मौजूद हैं जिसने उन्हें बनाया है और अन्य प्रक्रियाओं के लिए उपलब्ध हैं।

आप पर्यावरण चर कैसे सेट करते हैं?

पर्यावरण चर सेट करते समय, आपको $Env: का उपयोग करके स्पष्ट होना चाहिए कि यह एक पर्यावरण चर है संकेतन:

PS Env:/> $Env:FOO = "hello world"
PS Env:/> Get-ChildItem FOO
hello world

एक परीक्षण के रूप में, एक नया सत्र लॉन्च करें और अपने द्वारा अभी बनाए गए वेरिएबल तक पहुंचें। चूंकि चर एक पर्यावरण चर है, हालांकि, आपको इसे $Env: . के साथ जोड़ना होगा :

PS Env:/> pwsh
PS c:\> $Env.FOO
hello world

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

आप अपनी प्रोफ़ाइल में पर्यावरण चर कैसे सेट करते हैं?

किसी परिवेश चर को सभी सत्रों में बने रहने के लिए बाध्य करने के लिए, आपको उसे अपनी PowerShell प्रोफ़ाइल में जोड़ना होगा, जैसे कि आपके वर्तमान उपयोगकर्ता, सभी होस्ट प्रोफ़ाइल, HOME/Documents/Profile.ps1 . में स्थित है :

PS> Add-Content -Path $Profile.CurrentUserAllHosts -Value '$Env:FOO = "hello world"'

इस लाइन के जुड़ने से, लॉन्च किया गया कोई भी पावरशेल सत्र FOO . को तुरंत चालू कर देता है पर्यावरण चर और इसके मान को हैलो वर्ल्ड . पर सेट करता है ।

वर्तमान में पावरशेल सत्रों को नियंत्रित करने वाली छह डिफ़ॉल्ट प्रोफ़ाइल हैं, इसलिए अधिक जानकारी के लिए माइक्रोसॉफ्ट देव ब्लॉग देखें।

आप नए परिवेश चर कैसे खोजते हैं?

आप अपनी इच्छानुसार पर्यावरण चर बना सकते हैं और उनमें हेरफेर कर सकते हैं, और कुछ एप्लिकेशन ऐसा ही करते हैं। इस तथ्य का मतलब है कि आपके अधिकांश अनुप्रयोगों द्वारा आपके कई पर्यावरण चर का उपयोग नहीं किया जाता है, और यदि आप अपने स्वयं के मनमाना चर जोड़ते हैं तो कुछ का उपयोग कुछ भी नहीं किया जा सकता है।

तो सवाल यह है:आप कैसे पता लगाते हैं कि कौन से पर्यावरण चर सार्थक हैं? उत्तर एक आवेदन के दस्तावेज़ीकरण में निहित है।

उदाहरण के लिए, पायथन आपके पथ . में उपयुक्त पायथन पथ जोड़ने की पेशकश करता है स्थापना के दौरान पर्यावरण चर। [नोट:पथ?] यदि आप अस्वीकार करते हैं, तो अब आप स्वयं मान सेट कर सकते हैं कि आप पर्यावरण चरों को संशोधित करना जानते हैं।

आपके द्वारा इंस्टॉल किए गए किसी भी एप्लिकेशन के लिए भी यही सच है:इंस्टॉलर से आपके परिवेश में उपयुक्त चर जोड़ने की अपेक्षा की जाती है, इसलिए आपको कभी भी Env: को संशोधित करने की आवश्यकता नहीं होनी चाहिए। मैन्युअल रूप से। यदि आप कोई एप्लिकेशन विकसित कर रहे हैं, तो आपके इंस्टॉलर को आपके उपयोगकर्ताओं के लिए भी ऐसा ही करना चाहिए।

अलग-अलग अनुप्रयोगों के लिए महत्वपूर्ण चर खोजने के लिए, उनके उपयोगकर्ता और डेवलपर दस्तावेज़ देखें।


  1. Direnv - Linux में प्रोजेक्ट-विशिष्ट पर्यावरण चर प्रबंधित करें

    डायरेनव लिनक्स और मैकओएस जैसे यूनिक्स ऑपरेटिंग सिस्टम पर आपके शेल के लिए एक निफ्टी ओपन-सोर्स एक्सटेंशन है। इसे एकल स्थिर निष्पादन योग्य में संकलित किया गया है और यह bash . जैसे शेल का समर्थन करता है , zsh , टीसीएसएच , और मछली। direnv . का मुख्य उद्देश्य ~/.profile . को अव्यवस्थित किए बिना परियोजना

  1. रूबी में पर्यावरण चर का उपयोग कैसे करें?

    पर्यावरण चर एक कुंजी/मान युग्म है, यह इस तरह दिखता है: KEY=VALUE हम आपके कंप्यूटर के सभी प्रोग्रामों के बीच कॉन्फ़िगरेशन विकल्पों को साझा करने के लिए इन चरों का उपयोग करते हैं। इसलिए यह सीखना महत्वपूर्ण है कि वे कैसे काम करते हैं और ENV का उपयोग करके अपने रूबी कार्यक्रमों से उन्हें कैसे एक्सेस क

  1. Windows 10 में पर्यावरण चर कैसे सेट करें

    पर्यावरण चर वैश्विक मान हैं जिनका उपयोग आपके पीसी पर चल रहे कार्यक्रमों को कॉन्फ़िगर करने के लिए किया जाता है। हालांकि वे तकनीकी रूप से ध्वनि करते हैं, वे वास्तव में विभिन्न ऐप्स को जोड़ने के लिए एक साझा कॉन्फ़िगरेशन स्टोर हैं। पर्यावरण चर अलग-अलग उपयोगकर्ता खातों से जुड़े होते हैं, इसलिए अलग-अलग उ