शेल बिल्डरों के पास उचित मैन पेज क्यों नहीं हैं?


32

सभी शेल बिल्डिंस एक ही मैनुअल पेज साझा करते हैं:

BUILTIN(1)                BSD General Commands Manual               BUILTIN(1)

NAME
     builtin, !

आदि।

फिर एक छोटा पाठ है जो यह बताता है कि शेल बिल्डिंग्स क्या हैं, और फिर एक सूची जो कुछ इस तरह दिखती है:

  Command       External    csh(1)    sh(1)
       !             No          No        Yes
       %             No          Yes       No

लेकिन अगर हम करते हैं तो man grepहमें इस तरह के खंड मिलते हैं

  • कीड़े
  • इतिहास
  • यह भी देखें
  • मानक
  • विवरण

आदि।

क्या शेल बिल्डरों का अपना इतिहास, विवरण और तर्क नहीं है जैसे -Aया -r? यह मैनुअल पृष्ठों में क्यों नहीं दिया गया है और मैं उनका सही और कुशलता से उपयोग करना कैसे सीखूंगा?


जवाबों:


25

क्योंकि निर्मित शैल के भाग हैं। किसी भी कीड़े या इतिहास में वे कीड़े और खोल के इतिहास हैं। वे स्वतंत्र कमांड नहीं हैं और वे जिस शेल में निर्मित हैं, उसके बाहर मौजूद नहीं हैं।

समतुल्य, bashकम से कम, के लिए helpकमांड है। उदाहरण के लिए:

$ help while
while: while COMMANDS; do COMMANDS; done
    Execute commands as long as a test succeeds.

    Expand and execute COMMANDS as long as the final command in the
    `while' COMMANDS has an exit status of zero.

    Exit Status:
    Returns the status of the last command executed.

सभी बैश बिल्डरों में helpपेज हैं। यहाँ तक कि help:

$ help help
help: help [-dms] [pattern ...]
    Display information about builtin commands.

    Displays brief summaries of builtin commands.  If PATTERN is
    specified, gives detailed help on all commands matching PATTERN,
    otherwise the list of help topics is printed.

    Options:
      -d    output short description for each topic
      -m    display usage in pseudo-manpage format
      -s    output only a short usage synopsis for each topic matching
        PATTERN

    Arguments:
      PATTERN   Pattern specifiying a help topic

    Exit Status:
    Returns success unless PATTERN is not found or an invalid option is given.

@ Mikeserv की sedस्क्रिप्ट से प्रेरित , यहाँ एक छोटा सा कार्य है जो पर्ल के उपयोग से एक मैन पेज के संबंधित अनुभाग को प्रिंट करेगा। इस लाइन को अपने शेल के इनिशियलाइज़ेशन फ़ाइल ( ~/.bashrcbash के लिए) में जोड़ें:

manperl(){ man "$1" | perl -00ne "print if /^\s*$2\b/"; }

फिर, आप इसे एक मैन पेज और एक सेक्शन का नाम देकर चलाते हैं:

$ manperl bash while
       while list-1; do list-2; done
       until list-1; do list-2; done
              The while command continuously executes the list list-2 as long as the last command in the list list-1 returns an exit
              status of zero.  The until command is identical to the while command, except that the test is negated; list-2 is  exe‐
              cuted  as  long  as the last command in list-1 returns a non-zero exit status.  The exit status of the while and until
              commands is the exit status of the last command executed in list-2, or zero if none was executed.

$ manperl grep SYNOPSIS
SYNOPSIS
       grep [OPTIONS] PATTERN [FILE...]
       grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

$ manperl rsync "-r"
       -r, --recursive
              This tells rsync to copy directories recursively.  See also --dirs (-d).

2
@DisplayName वे कर रहे हैं बैश। वे इसका हिस्सा हैं और हां, उन्हें मैन पेज के SHELL BUILTIN COMMANDSअनुभाग में समझाया गया है bash। उनके "मैन पेज" हैं help builtin_name
terdon

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

4
@FrancisDavey: लेकिन अधिकांश शेल विभिन्न गोले में (अलग-अलग एक्सटेंशन के साथ) मौजूद हैं। मैनपेज़ शेल-विशिष्ट नहीं हैं; वे सिस्टम-वाइड हैं।
रिसी

2
@FrancisDavey जैसा कि rici ने कहा, कमांड सिस्टम वाइड नहीं हैं। यह एक बिट एक आदेश है कि हर खोल में मौजूद नहीं है, लेकिन और भी बदतर है, यह बहुत एक आदेश है कि के लिए एक आदमी को पेज के लिए भ्रमित हो सकता है के लिए एक मैनपेज के लिए गुमराह किया जाएगा है कई गोले में मौजूद है, लेकिन जो अलग ढंग से व्यवहार करती है (उदाहरण के लिए , विभिन्न तर्कों को स्वीकार करता है, अलग वाक्यविन्यास है, आदि)।
जोशुआ टेलर

1
@mikeserv हालांकि, मैं होगा क्या, जैसे, Git प्रदान करता है, जहां की तर्ज पर खोल builtins के लिए आदमी पृष्ठों का स्वागत करते हैं man git commitके लिए एक आदमी पृष्ठ लेकर आता है git-commit। कुछ अद्भुतman bash if होगा ।
जोशुआ टेलर

5

हालांकि यह सच है कि कुछ खोल builtins एक अल्प एक पूरा मैनुअल में दिखा हो सकता है - विशेष रूप से उन लोगों के लिए bashविशिष्ट builtins है कि आप एक जीएनयू सिस्टम पर उपयोग करने के लिए केवल संभावना हो (जीएनयू लोगों, एक नियम के रूप में, में विश्वास नहीं करते manऔर अपने स्वयं के infoपृष्ठों को पसंद करें ) - पॉसिक्स उपयोगिताओं के विशाल बहुमत - शेल बिल्डरों या अन्यथा - पोसिक्स प्रोग्रामर गाइड में बहुत अच्छी तरह से प्रतिनिधित्व करते हैं।

यहाँ मेरे नीचे से एक अंश है man sh (जो कि शायद २० पेज लंबा या ऐसा है ...)

यहाँ छवि विवरण दर्ज करें

उन सब के सब देखते हैं, और दूसरों को इस तरह के उल्लेख नहीं के रूप में set, read, break... अच्छी तरह से, मैं उन सभी के नाम की जरूरत नहीं है। लेकिन (1P)नीचे दाईं ओर ध्यान दें - यह POSIX श्रेणी 1 मैनुअल श्रृंखला को दर्शाता है - वे manपृष्ठ हैं जिनके बारे में मैं बात कर रहा हूं।

यह हो सकता है कि आपको सिर्फ एक पैकेज स्थापित करने की आवश्यकता हो? यह एक डेबियन प्रणाली के लिए आशाजनक लग रहा है। जबकि helpउपयोगी है, यदि आप इसे पा सकते हैं, तो आपको निश्चित रूप से उस POSIX Programmer's Guideश्रृंखला को प्राप्त करना चाहिए । यह बेहद मददगार हो सकता है। और यह घटक पृष्ठ बहुत विस्तृत हैं।

एक तरफ, शेल बिल्डरों को हमेशा विशिष्ट शेल के मैनुअल के एक विशिष्ट खंड में सूचीबद्ध किया जाता है। zsh, उदाहरण के लिए, उसके लिए एक अलग manपेज है - (मुझे लगता है कि यह 8 या 9 या इतने पर अलग-अलग zshपेज हैं - जिनमें zshallसे बहुत बड़ा है)।

आप grep manनिश्चित रूप से कर सकते हैं :

man bash 2>/dev/null | 
grep '^[[:blank:]]*read [^`]*[-[]' -A14

   read [-ers] [-a aname] [-d  delim]  [-i  text]  [-n
   nchars]  [-N  nchars]  [-p prompt] [-t timeout] [-u
   fd] [name ...]
          One line is read from the standard input, or
          from  the  file descriptor fd supplied as an
          argument to the -u  option,  and  the  first
          word is assigned to the first name, the sec‐
          ond word to the second name, and so on, with
          leftover words and their intervening separa‐
          tors assigned to the last  name.   If  there
          are  fewer  words read from the input stream
          than names, the remaining names are assigned
          empty  values.   The  characters  in IFS are
          used to split the line into words using  the
          same  rules  the  shell  uses  for expansion

... जो खोल manपेज खोजते समय मैं जो करता था, उसके बहुत करीब है । लेकिन ज्यादातर मामलों में helpबहुत अच्छा है bash

मैं वास्तव में sedहाल ही में इस तरह के सामान को संभालने के लिए एक स्क्रिप्ट पर काम कर रहा हूं । यह है कि मैंने ऊपर की तस्वीर में अनुभाग को कैसे पकड़ा। यह अब भी मुझे पसंद है की तुलना में अधिक है, लेकिन इसमें सुधार हो रहा है - और यह बहुत आसान हो सकता है। अपने वर्तमान पुनरावृत्ति में यह बहुत मज़बूती से पाठ के संदर्भ-संवेदी खंड को निकालेगा जैसा कि कमांड लाइन पर दिए गए [a] पैटर्न [s] के आधार पर किसी अनुभाग या उपधारा शीर्षक से मेल खाता है। यह अपने आउटपुट को रंग देता है और स्टडआउट को प्रिंट करता है।

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

इसका मतलब है कि एक मैच पैटर्न मैच करेगा:

heading
    match ...
    ...
    ...
        text...

..तथा..

match
   text

..लेकिन नहीं..

heading
    match
    match

    notmatch

..or ..

         text

         match
         match
         text

         more text

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

इसलिए मूल रूप से यदि आप इसे एक पैटर्न से मेल खाने के लिए कहते हैं तो यह केवल किसी प्रकार के विषय के खिलाफ ऐसा करेगा और इसके मिलान के अंतर्गत आने वाले अनुभाग के सभी पाठ को रंग देगा और प्रिंट करेगा। कुछ भी नहीं सहेजा जाता है क्योंकि यह आपकी पहली पंक्ति के इंडेंट को छोड़कर ऐसा करता है - और इसलिए यह बहुत तेज़ हो सकता है और \nवस्तुतः हर आकार के इनपुट को अलग कर सकता है ।

मुझे यह पता लगाने में थोड़ी देर लग गई कि नीचे की तरह सबहेडिंग में कैसे फिर से आना है:

Section Heading
    Subsection Heading

लेकिन मैंने आखिरकार इसे सुलझा लिया।

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

पूरी प्रक्रिया बहुत तेज है क्योंकि ज्यादातर समय यह /./dकिसी भी गैर-रिक्त लाइन को हटा देता है और आगे बढ़ता है - यहां तक zshallकि स्क्रीन को तुरंत पॉप्युलेट करने के परिणामस्वरूप भी । यह नहीं बदला है।

वैसे भी, यह अभी तक बहुत उपयोगी है, हालांकि। उदाहरण के लिए, readऊपर की बात इस तरह की जा सकती है:

mansed bash read

... और इसे पूरा ब्लॉक मिलता है। यह किसी भी पैटर्न या जो भी, या कई तर्क ले सकता है, हालांकि पहले हमेशा वह manपृष्ठ होता है जिसमें उसे खोजना चाहिए। मैंने इसके कुछ आउटपुट की तस्वीर यहाँ दी है:

mansed bash read printf

यहाँ छवि विवरण दर्ज करें

... दोनों ब्लॉक पूरे लौटा दिए गए हैं। मैं अक्सर इसका उपयोग करता हूं:

mansed ksh '[Cc]ommand.*'

... जिसके लिए यह काफी उपयोगी है। इसके अलावा, प्राप्त SYNOPS[ES]करना वास्तव में आसान है:

यहाँ छवि विवरण दर्ज करें

यहाँ है अगर आप इसे एक चक्कर देना चाहते हैं - अगर आप नहीं करते हैं तो मैं आपको दोष नहीं दूंगा।

mansed() {
MAN_KEEP_FORMATTING=1 man "$1" 2>/dev/null | ( shift
b='[:blank:]' s='[:space:]' bs=$(printf \\b) esc=$(printf '\033\[') n='\
' match=$(printf "\([${b}]*%s[${b}].*\)*" "$@")
sed -n "1p
    /\n/!{  /./{    \$p;d
        };x;    /.*\n/!g;s///;x
    :indent
        /.*\n\n/{s///;x
        };n;\$p;
        /^\([^${s}].*\)*$/{s/./ &/;h;   b indent
        };x;    s/.*\n[^-[]*\n.*//; /./!x;t
        s/[${s}]*$//;   s/\n[${b}]\{2,\}/${n} /;G;h
    };
    #test
    /^\([${b}]*\)\([^${b}].*\n\)\1\([${b}]\)/!b indent
        s//\1\2.\3/
    :print
    /^[${s}]*\n\./{ s///;s/\n\./${n}/
        /${bs}/{s/\n/ & /g;
            s/\(\(.\)${bs}\2\)\{1,\}/${esc}38;5;35m&${esc}0m/g
            s/\(_${bs}[^_]\)\{1,\}/${esc}38;5;75m&${esc}0m/g
            s/.${bs}//g;s/ \n /${n}/g
            s/\(\(${esc}\)0m\2[^m]*m[_ ]\{,2\}\)\{2\}/_/g
        };p;g;N;/\n$/!D
        s//./;  t print
    };
    #match
        s/\n.*/ /;  s/.${bs}//g
        s/^\(${match}\).*/${n}\1/
        /../{   s/^\([${s}]*\)\(.*\)/\1${n}/
        x;  s//${n}\1${n}. \2/; P
    };D
");}

संक्षेप में, वर्कफ़्लो है:

  • कोई भी रेखा जो रिक्त नहीं है और जिसमें एक \nईलाइन वर्ण नहीं है, आउटपुट से हटा दिया गया है।
    • \newline वर्ण इनपुट पैटर्न स्पेस में कभी नहीं होते हैं। वे केवल एक संपादन के परिणाम के रूप में हो सकते हैं।
  • :printऔर :indentदोनों पारस्परिक रूप से आश्रित बंद छोरों हैं और एक \newline प्राप्त करने का एकमात्र तरीका है ।
    • :printलूप चक्र शुरू होता है अगर एक पंक्ति पर अग्रणी अक्षर एक रिक्त पंक्ति की श्रृंखला है जिसके बाद एक \nइवालाइन वर्ण होता है।
    • :indentचक्र खाली लाइनों पर शुरू होता है - या :printसाइकिल लाइनों पर जो विफल रहता है #test- लेकिन इसके उत्पादन से :indentसभी प्रमुख रिक्त + \newline दृश्यों को हटा देता है ।
    • एक बार :printशुरू होने के बाद यह इनपुट लाइनों में खींचता रहेगा, इसके चक्र में पहली पंक्ति में पाई जाने वाली राशि तक व्हाट्सएप को छीन लेगा, ओवरस्ट्राइक का अनुवाद करेगा और बैकस्पेस को रंग टर्मिनल से बच जाता है, और #testविफल होने तक परिणामों को प्रिंट करता है।
    • :indentशुरू होने से पहले यह hकिसी भी संभावित इंडेंट निरंतरता (जैसे सब्सक्रिप्शन) के लिए पहले पुराने स्थान की जांच करता है , और फिर इनपुट में खींचता #testरहता है जब तक कि विफल रहता है और पहली बार के बाद किसी भी लाइन का मिलान जारी रहता है [-। जब पहली के बाद की एक पंक्ति उस पैटर्न से मेल नहीं खाती है - और उसके बाद अगली खाली लाइन तक सभी निम्न पंक्तियाँ हैं।
  • #matchऔर #testदो बंद लूपों को पाट दें।
    • #testजब \nएक पंक्ति अनुक्रम में अंतिम ewline द्वारा पीछा श्रृंखला की तुलना में कम की अग्रणी श्रृंखला गुजरती है ।
    • #matchकिसी भी आउटपुट के अनुक्रमों के लिए \nएक :printचक्र शुरू करने के लिए आवश्यक अग्रणी ewlines को प्रस्तुत :indentकरता है जो किसी भी कमांड-लाइन के लिए एक मैच के साथ लीड करता है। वे क्रम जो खाली नहीं हैं - और परिणामी रिक्त रेखा को वापस पारित किया जाता है :indent

2
आपका सेड-फू मजबूत है। बेशक, आप एक ही बात के साथ कर सकते manperl(){ man $1 | perl -00ne "print if /^\s*$2\b/"; }हैं और फिर manperl sh SYNOPSISया manperl sh read:)
terdon

@terdon - नहीं, आप नहीं कर सकते। यह इनपुट नहीं खाता है। मैं ऐसा ही कर सकता था जैसे कि sed 'H;$!d;g;s/\(\(\n *\)match\([^\n]*\)\2 \)\{1,\}\)*.\{,1\}/\1/g'... शायद वह काम करता है ... लेकिन उस फ़ाइल को निगलने और इसे एक ही बार में पार्स करने की आवश्यकता होती है। यह एक धारा में काम करता है - यह किसी भी आकार के इनपुट को संभाल सकता है बशर्ते लाइनें खगोलीय रूप से लंबी न हों। यह प्रिंट के रूप में यह काम करता है - और यह सभी को पार्स करता manहै \backslash पलायन करने के लिए बूट। लेकिन इसके manलिए सिर्फ एक आवेदन है - मैंने इसे अन्य समस्याओं के लिए भी लागू किया है ...
mikeserv

1
मैं सिर्फ आपकी श्रृंखला को समाप्त कर रहा हूं क्योंकि मैं वह कर सकता हूं जो आप एक छोटे लाइनर के साथ करते हैं। ध्यान दें, हालाँकि, यह फ़ाइल को पूरी तरह से नहीं निगलता है, यह एक स्ट्रीम में काम करता है। यह सिर्फ "लाइनों" को परिभाषित करने के \n\nबजाय उपयोग करता है, \nलेकिन फिर भी यह किसी भी आकार के इनपुट और प्रिंट को संभाल सकता है क्योंकि यह काम करता है। : "पैरा मोड" यहाँ देखें perldoc.perl.org/perlrun.html
terdon

@terdon शायद यहाँ जाने का बेहतर तरीका रहा होगा। में sedऐसा किया जा सकता है: '/./{H;$!d' -e '};x;now work the paragraph...'। मैं अक्सर ऐसा करता हूं। लेकिन मैंने मूल रूप से असीमित समय के लिए लॉग लाइव देखने के लिए पहला भाग लिखा था, और यहां तक ​​कि व्यवहार iffy था - बफर कुछ शर्तों के तहत विस्फोट कर सकता है। यह आकार केवल आधा था - manइसे कठिन बना दिया। मैंने हालांकि सिंटॉप को ऊपर से देखने के man -Hबाद देखा man, और मैं सोच रहा हूं कि मशीन-जेनरेटेड HTML के साथ काम करना आसान हो सकता है जो जीएनयू सिस्टम पर ग्रॉफ प्रिंट कर सकता है। मैं थोड़े कोहनी गहरा कर रहा हूँ पहले से ही thoug
mikeserv

@terdon - मैंने दूसरा अनुमान लगाया और एक पैराग्राफ-केंद्रित दृष्टिकोण की कोशिश की, लेकिन यह उतना ही आसान है। यह खंड हो जाता है। जैसे mansed cmd DESCRIPTIONDESCRIPTION सेक्शन मिलता है - और सभी शामिल हैं। एक मिलान की गई खोज पूरे प्रिंट की जाती है और मानो उसका इंडेंट स्तर शीर्ष पर था। यह उस मैच के पैराग्राफ को नजरअंदाज करके झूठी सकारात्मकता को भी छोड़ देता है, लेकिन फिर आगे इंडेंट नहीं करता। यह रंग के बैकस्पेस के माध्यम से अपने आर्ग से मेल खाता है और जब तक यह निश्चित रूप से एक लाइन प्रिंट करने के लिए तैयार नहीं होता है तब तक उन लोगों को नहीं संभालता है। यह सब मेरे लिए बहुत कठिन है कि एक समय में एक ही लाइन की तुलना में बहुत अधिक डेटा के साथ।
मोकेसर

1

प्रत्येक शेल में बिल्डरों का अपना सेट है। जबकि वहाँ समानताएँ हैं, उनमें से प्रत्येक की अपनी ख़ासियतें हैं जिन्हें प्रलेखित करने की आवश्यकता है।

लिनक्स और फ्रीबीएसडी (और ओएसएक्स, जो कि फ्रीबीएसडी से विरासत में मिला है) जैसी प्रणालियों पर, जहां प्रत्येक शेल को एक अलग पैकेज के रूप में प्रदान किया जाता है, बिल्डरों के लिए कोई मैन पेज नहीं है; इसके बजाय, प्रत्येक निर्मित शेल के मैन पेज में प्रलेखित है। तो बैश के डॉक्युमेंट के डॉक्यूमेंट के लिए बैश मैन पेज killपढ़ें, डैश के बेसिन के डॉक्यूमेंटेशन के लिए डैश मैन पेज पढ़ें kill, आदि killस्टैंडअलोन यूटिलिटी के लिए भी मैन पेज है ।

देखें Can मैं आदेशों builtin बैश के लिए व्यक्तिगत आदमी पृष्ठों मिल सकता है? एक manफ़ंक्शन के लिए जो मैन पेज के बजाय बैश के आंतरिक प्रलेखन को दिखाता है यदि तर्क एक बिलिन का नाम है।

यूनिक्स वेरिएंट हैं जो शेल बिल्डिंस के लिए मैन पेज प्रदान करते हैं - वास्तव में, अधिकांश वाणिज्यिक वेरिएंट करते हैं। यह संभव है क्योंकि सिस्टम या तो एक शेल, या ज्ञात शेल का एक सेट के साथ आता है। मैन पेज गोले के बीच के अंतरों पर चर्चा करता है। उदाहरण के लिए, fg(1)Solaris 10 पर आदमी पेज के लिए खंड हैं sh, kshऔर cshfg(1)AIX 7.1 पर आदमी पेज संदर्भ "कॉर्न खोल" और "POSIX खोल" लेकिन उन्हें चर्चा एक साथ (वे के लिए ठीक उसी सुविधाओं का समर्थन होता है fg)। fg(1)Tru64 5.0 पर आदमी पेज चर्चा ksh निर्मित और करने के लिए csh उपयोगकर्ताओं संदर्भित करता है csh(1)आदमी पेज। एससीओजाहिरा तौर पर एक ही खोल के साथ आता है। आप इन ऑपरेटिंग सिस्टम पर ऐड-ऑन पैकेज के रूप में अन्य गोले स्थापित कर सकते हैं; यदि आप एक कस्टम शेल का उपयोग करते हैं, तो आपको याद रखना चाहिए कि गैर-डिफ़ॉल्ट शेल का उपयोग करते समय बिल्डिंस के लिए मैन पेज प्रासंगिक नहीं होंगे।

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