मैं * nix में बिंदु कमांड `.` की सहायता कैसे प्राप्त करूँ?


21

मुझे बिंदु कमांड के लिए मदद खोजने की आवश्यकता है .जैसे कि . ./my_script.sh(मेरा मतलब है कि पहला बिंदु।)

मैं पहले से ही उपयोग करते हुए एक आदमी पेज को खोजने के लिए कोशिश की है man .और man \.। मैं एक आदमी पृष्ठ कैसे प्रदर्शित कर सकता हूं जिसमें यह कमांड के उपयोग की व्याख्या करता है .?


14
@ C0deDaedalus: के लिए विहित नाम "।" पूर्ण बंद है। लोग इसे क्या कहते हैं यह इस बात पर निर्भर करता है कि वे कहां से उठाए गए थे
RedGrittyBrick

5
बस दौड़ें:help .
kenorb

2
डॉक्स में, हालांकि, इसे कहा जाता है dotPubs.opengroup.org/onlinepubs/009696699/utilities/dot.html
चार्ल्स डफी

11
@jamesqf .एक कमांड है, विशेष रूप से शेल बिलिन । बैश में यह बराबर है source
वेजेंड्रिया

4
@jamesqf: .POSIX है, न कि केवल बैश। जैसे यह zsh और ksh में भी है।
MSalters

जवाबों:


79

सबसे पहले आपको आह्वान करना चाहिए type ., आपको शायद कुछ ऐसा मिलेगा:

. is a shell builtin

बिल्ट आपके शेल के हिस्से हैं, उनके पास अपने स्वयं के मैनुअल पेज नहीं हैं। उनमें से कुछ उन्हें हालांकि लग सकते हैं, जैसे echoकि बैश में एक बिलिन है लेकिन सबसे अधिक संभावना है कि /bin/echoआपके सिस्टम में एक अलग निष्पादन योग्य है और इस मामले man echoमें उत्तरार्द्ध को संदर्भित करता है । ये दोनों echoएस शायद कड़ाई से समकक्ष नहीं हैं।

आपका शेल बिलिन के माध्यम से किसी भी बिलिन के बारे में जानकारी प्रदान कर सकता है help; कोशिश करो help help, help typeऔर अंत में:

help .

बिल आपके शेल के मैनुअल पेज में भी सूचीबद्ध हो सकते हैं। उदाहरण के लिए (मेरे डेबियन में) बैश man bashके भवन सीधे अंदर आते हैं , फिर भी ज़ीश के भवन man zshमुझे चलाने के लिए कहते हैं man zshbuiltins। सामान्य तौर पर गोले उनके निर्माण की व्याख्या कर सकते हैं या नहीं कर सकते हैं।


7
+1 यह इंगित करने के लिए कि .शेल-बिल्ट-इन है और इसे उत्तर के रूप में चिह्नित किया जाना चाहिए क्योंकि ओपी पूछता है how to find help for . in *nix ?
C0deDaedalus

7
+1 type .यह दिखाने के लिए कि कुछ कमांड शेल बिल्ड हैं।
रोजर लिप्सकॉम्ब

1
अधिकांश डेबियन पर, बाश बिल्डरों को bash-builtins(1)मैनुअल पेज पर भी निकाला जाता है , जो अधिक सुविधाजनक आकार का होता है।
टोबे स्पीट

इसके अलावा, "प्रकार" को लागू करना केवल तभी काम करता है जब आप एक शेल का उपयोग कर रहे हैं जिसमें एक "प्रकार" अंतर्निहित है। यदि आप tcsh का उपयोग करते हुए होते हैं, तो "टाइप करें।" "प्रकार: कमांड नहीं मिली।"
jamesqf

1
यहां तक ​​कि . --helpकाम भी करता है
डिजिटल ट्रॉमा

25

उपयोग करने का प्रयास man shया man bashजो कुछ भी शैल आप उपयोग कर रहे हैं या आदमी पेज। (शायद man $SHELL)

इसे आधिकारिक तौर पर "बिंदु" कमांड नहीं, बल्कि कमांड कहा जाता है source। शब्द के लिए खोज sourceसहायक हो सकता है।

उदाहरण के लिए, बैश मैन पेज ("प्रत्येक बिलिन कमांड के लिए खोज"), और आप जल्दी से प्रलेखन पा लेंगे।

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

यदि आप sourceकमांड का उपयोग करते हैं , तो आपका शेल स्क्रिप्ट फ़ाइल से प्रत्येक पंक्ति को पढ़ेगा, और इसे निष्पादित करने का प्रयास करेगा। आपको फ़ाइल पर "रीड" अनुमतियाँ चाहिए। (इससे कोई फर्क नहीं पड़ता कि आपके पास "निष्पादित" अनुमतियाँ हैं।) यदि आप एक चर को संशोधित करते हैं, तो यह आपके वर्तमान शेल को प्रभावित करने का खतरा है।

यदि, दूसरी ओर, आप बस फ़ाइल को निष्पादित करने का प्रयास करते हैं, तो आपका शेल ऑपरेटिंग सिस्टम को इस अनुरोध का ध्यान रखने के लिए कहेगा। इसके लिए "निष्पादित" अनुमतियों की आवश्यकता होगी। (कुछ सिस्टम पर, OpenBSD की तरह, आपको इसके लिए "रीड" अनुमति की आवश्यकता नहीं होगी। कई सिस्टमों पर, कई यूनिक्स सहित, आप करेंगे।) फ़ाइल को एक उपयुक्त हेडर (जैसे, #!/bin/sh) से शुरू करने की आवश्यकता हो सकती है, इसलिए ऑपरेटिंग सिस्टम इसे एक स्क्रिप्ट फ़ाइल मानता है। ऑपरेटिंग सिस्टम अनुरोधित शेल की एक प्रति निष्पादित करेगा, और उस शेल को स्क्रिप्ट की सामग्री को चलाने के लिए बताएगा। यदि शेल वातावरण बदला जाता है (जैसे, एक चर को एक नया मान मिलता है, तो कार्यशील निर्देशिका को बदल दिया जाता है (के साथ  cd), एक फ़ाइल विवरणक पुनर्निर्देशित होता है (के साथ) exec), आदि), यह केवल उप-शेल को प्रभावित करेगा जो स्क्रिप्ट के लिए कहा गया था, और स्क्रिप्ट फ़ाइल नामक पेरेंट शेल में पर्यावरण को संशोधित नहीं कर सकता है।


15
यह केवल sourceबैश में है। POSIX विनिर्देश में, इसे "डॉट कमांड" कहा जाता है (और sourceउपनाम समर्थित नहीं है)।
चार्ल्स डफी

1
एक स्क्रिप्ट को पढ़ने की अनुमति चाहिए, अन्यथा दुभाषिया इसे एक्सेस नहीं कर सकता। देखें एक स्क्रिप्ट निष्पादन लेकिन पढ़ने योग्य नहीं हो सकता है?
वेजेंड्रिया

1
स्क्रिप्ट का निष्पादन उप-खोल नहीं करता है, लेकिन संकलित प्रोग्राम को चलाने की तरह, सामान्य बाल प्रक्रिया। इस उत्तर को
वंदारेड

1
तो, मैं टाइप करता हूं man bashऔर फिर क्या /.,? बहुत उपयोगी नहीं है। /sourceउपयोगी होगा, लेकिन उस के लिए आपको लगता है कि पता करने की जरूरत होगी .और sourceएक ही बात कर रहे हैं।
जोकर_vD

1
मुझे आपका पैराग्राफ "उपयोग के बारे में समझाने के लिए ..." थोड़ा भ्रामक है, क्योंकि इसका तात्पर्य है कि यह हो सकता है .और यह हो सकता है source, लेकिन जैसा कि @CharlesDuffy ने पहले ही उल्लेख किया है, यह हमेशा . किसी भी POSIX- अनुरूप शेल में है और केवल इसमें अन्य नाम sourceहै एक खोल।
टॉम फेनेच

6

किसी और ने इसका उल्लेख नहीं किया है, क्योंकि यह अक्सर भूल जाता है।

आपका सबसे बड़ा सुराग सहायक कमांड से आएगा whatis

tim@musha ~ $ whatis .
builtins (1)         - bash built-in commands, see bash(1)
tim@musha ~ $ whatis source
builtins (1)         - bash built-in commands, see bash(1)
tim@musha ~ $ whatis bash
bash (1)             - GNU Bourne-Again SHell
tim@musha ~ $ whatis lynx
lynx (1)             - a general purpose distributed information browser for the World Wide Web
tim@musha ~ $ whatis linux
linux: nothing appropriate.
tim@musha ~ $ whatis whatis
whatis (1)           - display one-line manual page descriptions

संपादित करें:

कुछ लोगों ने टिप्पणियों में बताया है कि यह कुछ विकृतियों में नहीं है - शायद यह एक इंस्टाल करने योग्य पैकेज है, या कुछ को कैसे सक्षम किया गया है - यह मुझे gentoo में डिफ़ॉल्ट रूप से था;)

इसमें वह अद्भुत शामिल है - जो आपको बताता है कि कौन सा निष्पादन योग्य कहलाता है, और जो आपको निष्पादन योग्य नाम के लिए सभी रास्ते देता है, और यह मैन पेज है (यदि यह कई पथों में मौजूद है)।


1
अच्छा संकेत है लेकिन ऐसा लगता है कि यह हर जगह काम नहीं करता है। उदाहरण के लिए, AIX में ksh के साथ, whatis .रिटर्नman: 0703-307 . is not found.
aturegano

4
whatis .उबंटू 16.04
वादिम कोटोव

और ": उचित कुछ भी नहीं।" tcsh का उपयोग करके OpenSuSE पर।
jamesqf

2
आह, यह स्वयं का मैन पेज है: "व्हाटिस - वन-लाइन मैनुअल पेज डिस्क्रिप्शन।" तो यह आदमी का बहुत छोटा संस्करण प्रतीत होता है।
Xen2050

एक और अधिक संगत विकल्प हो सकता है: एप्रोपोस (जो "मैन -k" चलाने के समान होना चाहिए)। के लिये "।" या "स्रोत" (जो कि "संसाधन" शब्द का एक हिस्सा है) बहुत सारे झूठे सकारात्मक होने के कारण यह बहुत अच्छी तरह से काम नहीं करता है, लेकिन संभावना है कि आपके अन्य उदाहरणों के लिए काम करेंगे (bash, lynx, और whatis)। डेबियन लिनक्स पर: ओपनबीएसडी पर " whatis ." दिया " .: nothing appropriate.", इसके परिणामस्वरूप आउटपुट की 47 लाइनें थीं। इस विशिष्ट उदाहरण के लिए ( whatis .Gentoo में " " का उपयोग करके ), परिणाम केवल असामान्य रूप से अच्छे हो सकते हैं (जिसका अर्थ है कि यह तकनीक आम तौर पर कई अन्य उदाहरण परिदृश्यों के लिए उपयोगी नहीं है)।
TOOGAM

4

man source वह स्पष्टीकरण दिखाएगा जिसकी आपको आवश्यकता है।

डॉट सोर्स कमांड के समान है।

source वर्तमान शेल में स्क्रिप्ट को एक सबशेल के बजाय निष्पादित करता है (यह सामान्य तरीका है)।

sourceस्क्रिप्ट के अंदर सेट किए गए चरों का उपयोग करना स्क्रिप्ट के समाप्त होने के बाद संरक्षित होता है।


2
किस डिस्ट्रो में man sourceकाम करता है ? मेरे डेबियन में नहीं, इसलिए सवाल।
कामिल मैकियोरोस्की

1
यह सेंटोस 6.5 में काम करता है। मुझे लगता है कि बैश के संस्करण से अधिक संबंधित है। मेरे मामले में 4.1.2 (1)
jcbermu

@jcbermu, sourceअपस्ट्रीम के लिए बैश जहाजों के अलग संस्करण का कोई संस्करण नहीं है - यह अधिक संभावना है कि कुछ CentOS ने किया।
चार्ल्स डफी

मेरे सिस्टम पर, man sourceआपको देता है man bash_builtins, जो कुछ भी नहीं समझाता, लेकिन आपको संदर्भित करता हैbash(1)
स्कॉट

1
मेरे सिस्टम पर (उबंटू एलटीएस) man sourceमुझे देता है source(3tcl)... type commandऔर फिर अगर कमांड एक help command
बिलिन

0

.खोल के लिए एक पर्याय है sourceआदेश और इतने में bash , अपने वाक्यविन्यास द्वारा प्रदर्शित किया जाता है ...

help source

यह बिल्कुल अन्य भाषाओं की तरह काम करता है includeऔर importआदेश देता है कि यह लक्ष्य फ़ाइल को पढ़ता है और इसकी व्याख्या करता है जैसे कि यह वर्तमान स्क्रिप्ट का हिस्सा था। इस प्रकार, वह फ़ाइल वर्तमान स्क्रिप्ट के बाकी हिस्सों में आदेशों से पहले पूरी तरह से निष्पादित होगी।

यह आमतौर पर वर्तमान स्क्रिप्ट की शुरुआत में होना चाहिए और इसका उपयोग अक्सर चर और / या फ़ंक्शन परिभाषाओं को लोड करने के लिए किया जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.