কেন শেল বিল্টিনগুলিতে সঠিক ম্যান পেজ থাকে না?


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.

@ মাইকজার্ভের sedস্ক্রিপ্ট দ্বারা অনুপ্রাণিত , এখানে একটি ছোট ফাংশন রয়েছে যা পার্ল ব্যবহার করে কোনও ম্যান পৃষ্ঠার প্রাসঙ্গিক বিভাগটি মুদ্রণ করবে। আপনার শেলের সূচনা ফাইলটিতে এই লাইনটি যুক্ত করুন ( ~/.bashrcব্যাশের জন্য):

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
টেরডন

3
যা পরিষ্কার নয় তা হ'ল কেন তাদের ম্যান পেজ দেওয়া হয়নি। ম্যান পৃষ্ঠাগুলি কেবল মনপথের ফাইল। তাদের পৃথক বাইনারিগুলির সাথে মিল রাখতে হবে না। অভ্যন্তরীণ সহায়তা সিস্টেমের চেয়ে বাশ কেন তার বিল্টিনগুলির জন্য ম্যান পৃষ্ঠাগুলি দিয়ে প্রেরণ করতে পারে নি নীতিগত কোনও কারণ নেই।
ফ্রান্সিস ডেভি

4
@ ফ্রেঞ্চিস্যাডি: তবে বেশিরভাগ বিল্টিনগুলি বিভিন্ন শেলের মধ্যে (বিভিন্ন এক্সটেনশন সহ) বিদ্যমান exist মানচিত্রগুলি শেল-নির্দিষ্ট নয়; তারা সিস্টেম ব্যাপী।
ধনী

2
@ ফ্রেঞ্চিসড্যাভি যেমন রিচি বলেছিলেন, কমান্ডগুলি সিস্টেম বিস্তৃত নয়। প্রতিটি শেলের মধ্যে উপস্থিত না থাকা কমান্ডের জন্য ম্যানপেজ রাখা কিছুটা বিভ্রান্তিকর হবে তবে এর চেয়েও খারাপ এটি হ'ল একাধিক শেলের মধ্যে উপস্থিত একটি কমান্ডের জন্য একটি ম্যান পেজ রাখা খুব বিভ্রান্তিকর হবে তবে যা আলাদাভাবে আচরণ করে (যেমন: , বিভিন্ন যুক্তি গ্রহণ করে, বিভিন্ন বাক্য গঠন রয়েছে ইত্যাদি)।
জোশুয়া টেলর

1
@mikeserv যাইহোক, আমি চাই কি, যেমন, Git অফার, যেখানে লাইন বরাবর শেল builtins জন্য man পৃষ্ঠা স্বাগত জানাই man git commitজন্য একজন লোক পৃষ্ঠা দেখাবে git-commit। ভালো কিছু man bash ifহবে বিস্ময়কর
জোশুয়া টেলর

5

যদিও এটি সত্য যে কোনও কিছু শেল বিল্টিনের সম্পূর্ণ ম্যানুয়ালটিতে খুব অল্প পরিমাণ উপস্থিত থাকতে পারে - বিশেষত bashsp নির্দিষ্ট বিল্টিনগুলির জন্য যা আপনি কেবল একটি জিএনইউ সিস্টেমে ব্যবহার করতে পারবেন (জিএনইউ ভাবেন, একটি নিয়ম হিসাবে, বিশ্বাস করবেন না manএবং তাদের নিজস্ব infoপৃষ্ঠাগুলি পছন্দ করুন ) - পসিক্স ইউটিলিটিগুলির বিশাল সংখ্যা - শেল বিল্টিন বা অন্যথায় - পসিক্স প্রোগ্রামার গাইডে খুব ভালভাবে উপস্থাপিত।

এখানে আমার (যা সম্ভবত 20 পৃষ্ঠাগুলি বা তার বেশি দীর্ঘ লম্বা ...) এর নীচে থেকে একটি অংশ রয়েছেman sh

এখানে চিত্র বর্ণনা লিখুন

ঐ সব আছে, এবং অন্যদের যেমন উল্লেখ করা যেমন set, read, break... ভাল, আমি তাদের সব নাম প্রয়োজন হবে না। তবে (1P)নীচের ডানদিকে নীচে নোট করুন - এটি পসিক্স বিভাগ 1 ম্যানুয়াল সিরিজটি বোঝায় - সেই manপৃষ্ঠাগুলি যা আমি বলছি।

এটি হতে পারে যে আপনি কেবল একটি প্যাকেজ ইনস্টল করা প্রয়োজন? এটি একটি দেবিয়ান সিস্টেমের জন্য আশাব্যঞ্জক দেখাচ্ছে। যদিও helpদরকারী, আপনি তা খুঁজে পেতে পারেন, আপনি স্পষ্টভাবে যে পাওয়া উচিত POSIX Programmer's Guideসিরিজ। এটি অত্যন্ত সহায়ক হতে পারে। এবং এর উপাদান পৃষ্ঠা খুব বিস্তারিত।

এদিকে, শেল বিল্টিনগুলি প্রায় সর্বদা নির্দিষ্ট শেলের ম্যানুয়ালটির একটি নির্দিষ্ট বিভাগে তালিকাবদ্ধ থাকে। zshউদাহরণস্বরূপ, এর জন্য একটি সম্পূর্ণ পৃথক manপৃষ্ঠা রয়েছে - (আমার মনে হয় এটি মোট 8 বা 9 বা এর বেশি স্বতন্ত্র zshপৃষ্ঠাগুলিতে - zshallযা বিশাল is

আপনি 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] প্যাটার্ন [এর] ভিত্তিতে বিভাগ বা উপশাখা শিরোনামের সাথে মিলিতভাবে পাঠ্যের একটি প্রসঙ্গ-সংবেদনশীল অংশটি খুব নির্ভরযোগ্যভাবে বের করে আনবে। এটি এর আউটপুট এবং রঙ প্রিন্ট stdout।

এটি ইনডেন্টের স্তরগুলি মূল্যায়নের মাধ্যমে কাজ করে। খালি ফাঁকা ইনপুট লাইনগুলি সাধারণত উপেক্ষা করা হয়, তবে যখন এটি একটি ফাঁকা রেখার মুখোমুখি হয় তখন এটি মনোযোগ দেওয়া শুরু করে। এটি সেখান থেকে রেখাগুলি সংগ্রহ করে যতক্ষণ না এটি যাচাই করে নেওয়া হয় যে বর্তমান ক্রমটি অবশ্যই অন্য ফাঁকা রেখা দেখা দেওয়ার আগে তার প্রথম লাইনটির তুলনায় আরও নির্দিষ্টভাবে প্রবেশ করিয়েছে বা অন্যথায় এটি থ্রেড ফেলে পরবর্তী খালিটির জন্য অপেক্ষা করে। যদি পরীক্ষাটি সফল হয় তবে এটি তার কমান্ড-লাইন আর্গুমেন্টগুলির সাথে লিডলাইনটি মিলানোর চেষ্টা করে।

এর অর্থ একটি মিলের প্যাটার্নটি মিলবে:

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

..এবং..

match
   text

..কিন্তু না..

heading
    match
    match

    notmatch

..or ..

         text

         match
         match
         text

         more text

যদি কোনও ম্যাচ করা যায় তবে এটি মুদ্রণ শুরু করে। এটি মুদ্রিত সমস্ত লাইন থেকে মিলিত লাইনের শীর্ষস্থানীয় ফাঁকা অংশগুলি ছিটিয়ে দেবে - সুতরাং এটি নির্ধারিত কোনও ইন্ডেন্টের স্তরেরই নয় যে এটি যে লাইনটি খুঁজে পেয়েছিল তা প্রিন্ট করে যেন এটি শীর্ষে রয়েছে। এটি মেলে থাকা লাইনের চেয়ে সমান বা কম ইনডেন্ট স্তরের সাথে অন্য একটি লাইনের মুখোমুখি না হওয়া পর্যন্ত এটি মুদ্রণ অবিরত থাকবে - সুতরাং পুরো বিভাগগুলি কেবলমাত্র একটি শিরোনামের ম্যাচ দিয়ে ধরা হবে, এতে যে কোনও / সমস্ত বিভাগ, অনুচ্ছেদগুলি থাকতে পারে including

সুতরাং মূলত যদি আপনি এটি কোনও প্যাটার্নের সাথে মেলে জিজ্ঞাসা করেন তবে এটি কেবল কোনও প্রকারের শিরোনামের বিরুদ্ধে এটি করবে এবং এটি তার ম্যাচের নেতৃত্বাধীন বিভাগের মধ্যে পাওয়া সমস্ত পাঠ্যকে রঙ এবং মুদ্রণ করবে। আপনার প্রথম লাইনের ইনডেন্ট ব্যতীত কিছুই সংরক্ষণ করা হয় না - এবং তাই এটি খুব দ্রুত হতে পারে এবং \nকার্যত কোনও আকারের ইওলাইন পৃথক ইনপুট পরিচালনা করতে পারে ।

নীচের মতো সাবহেডিংগুলিতে কীভাবে পুনরাবৃত্তি করতে হবে তা বুঝতে আমার কিছুটা সময় লেগেছে:

Section Heading
    Subsection Heading

কিন্তু আমি শেষ পর্যন্ত এটি বাছাই।

যদিও সরলতার জন্য আমাকে পুরো জিনিসটি পুনরায় কাজ করতে হয়েছিল। যদিও এর আগে আমি বেশ কয়েকটি ছোট লুপগুলি বেশিরভাগ ক্ষেত্রে একই বিষয়গুলি কিছুটা ভিন্ন উপায়ে তাদের প্রসঙ্গে মাপসই করতাম, তাদের পুনরাবৃত্তির উপায়গুলি পরিবর্তিত করে আমি সংখ্যাগরিষ্ঠ কোডটিকে নকল করে ফেললাম। এখন দুটি লুপ রয়েছে - একটি প্রিন্ট এবং একটি চেক ইনডেন্ট। উভয়ই একই পরীক্ষার উপর নির্ভর করে - পরীক্ষা পাস করার সাথে সাথে মুদ্রণ লুপটি শুরু হয় এবং যখন ফাঁকা লাইনে ব্যর্থ হয় বা শুরু হয় তখন ইনডেন্ট লুপটি গ্রহণ করে।

পুরো প্রক্রিয়াটি খুব দ্রুত হয় কারণ বেশিরভাগ সময় এটি /./dকোনও খালি রেখাটি কেবলমাত্র এগারটি করে এবং পরবর্তীটিতে চলে যায় - এমনকি zshallস্ক্রিনটি তাত্ক্ষণিকভাবে পপুলেট করার ফলাফল । এটি পরিবর্তন হয়নি।

যাইহোক, এটি এখন পর্যন্ত খুব দরকারী। উদাহরণস্বরূপ, readউপরের জিনিসটি এইভাবে করা যেতে পারে:

mansed bash read

... এবং এটি পুরো ব্লক পেয়ে যায়। এটি যে কোনও নিদর্শন বা যা কিছু, বা একাধিক যুক্তি নিতে পারে, যদিও সর্বদা প্রথম manপৃষ্ঠায় এটি অনুসন্ধান করা উচিত should আমি করার পরে এর কিছু আউটপুটের একটি চিত্র এখানে দেওয়া হয়েছে :

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ইওলাইন অক্ষর নেই তা আউটপুট থেকে মোছা হবে।
    • \nইওলাইন অক্ষর ইনপুট প্যাটার্ন স্পেসে কখনই ঘটে না। এগুলি কেবল সম্পাদনার ফলাফল হিসাবেই হতে পারে।
  • :printএবং :indentউভয়ই পারস্পরিক নির্ভরশীল বদ্ধ লুপ এবং কেবল একটি \newline পাওয়ার একমাত্র উপায় ।
    • :printলুপের চক্রটি শুরু হয় যদি কোনও লাইনের শীর্ষস্থানীয় অক্ষরগুলি \nফাঁকাগুলির একটি সিরিজ হয় তারপরে একটি ewline চরিত্র।
    • :indentএর চক্রটি ফাঁকা লাইনে - বা :printচক্র লাইনে শুরু হয় যা ব্যর্থ হয় #test- তবে এর আউটপুট থেকে :indentসমস্ত নেতৃস্থানীয় ফাঁকা + \nইলাইন ক্রম সরিয়ে দেয়।
    • একবার :printশুরু হলে এটি ইনপুট লাইনগুলি টানতে থাকবে, তার চক্রের প্রথম লাইনে পাওয়া পরিমাণ পর্যন্ত শীর্ষস্থানীয় সাদা অংশকে স্ট্র্যাপ করবে, ওভারস্ট্রাইক এবং আন্ডারট্রাইক ব্যাকস্পেস এসিডসকে রঙিন টার্মিনাল পলায়নে অনুবাদ করবে এবং #testব্যর্থ হওয়া পর্যন্ত ফলাফল মুদ্রণ করবে ।
    • :indentএটি শুরু হওয়ার আগে এটি hকোনও সম্ভাব্য ইনডেন্ট ধারাবাহিকতা (যেমন একটি সাবসেকশন) এর জন্য পুরানো স্থানটি পরীক্ষা করে এবং তারপরে #testব্যর্থ হওয়া অবধি ইনপুটটি টানতে অবিরত থাকে এবং প্রথমটির পরে থাকা কোনও লাইন মিলতে থাকে [-। যখন প্রথমটির পরে কোনও লাইন সেই প্যাটার্নটির সাথে মেলে না সেটি মুছে ফেলা হয় - এবং পরবর্তীকালে পরবর্তী ফাঁকা রেখা পর্যন্ত নিম্নলিখিত সমস্ত লাইন থাকে।
  • #matchএবং #testদুটি বন্ধ লুপ ব্রিজ করুন।
    • #testশূন্যস্থানগুলির শীর্ষস্থানীয় সিরিজটি \nলাইন অনুক্রমের শেষ ইওলাইন দ্বারা অনুসরণ করা সিরিজের তুলনায় ছোট হয় passes
    • #match\nযে :printকোনও :indentআউটপুট অনুক্রমের জন্য একটি চক্র শুরু করার জন্য প্রয়োজনীয় শীর্ষস্থানীয় ইওলাইনগুলিকে প্রেন্ড করে যা কোনও কমান্ড-লাইন আর্গের সাথে ম্যাচের সাথে নেতৃত্ব দেয়। সেই ক্রমগুলি খালি রেন্ডার করা হয় না - এবং ফলস্বরূপ ফাঁকা রেখাটি আবার চলে যায় :indent

2
আপনার সেড-ফু শক্তিশালী। অবশ্যই আপনি একই কাজটি করতে পারেন manperl(){ man $1 | perl -00ne "print if /^\s*$2\b/"; }এবং তারপরে manperl sh SYNOPSISবা manperl sh read:)
টেরডন

@terdon - না, আপনি পারবেন না। এটি ইনপুট খায় না। আমি সেই হিসাবে একই জিনিসটি করতে পারি sed 'H;$!d;g;s/\(\(\n *\)match\([^\n]*\)\2 \)\{1,\}\)*.\{,1\}/\1/g'... সম্ভবত এটি কাজ করে ... তবে এর জন্য ফাইলটি গিলে ফেলা এবং এটি একবারে পার্স করা দরকার। এটি একটি স্ট্রিমে কাজ করে - এটি কোনও আকারের ইনপুট হ্যান্ডেল করতে পারে তবে লাইনগুলি জ্যোতির্বিজ্ঞানের দিক থেকে দীর্ঘ না হয়। এটা তোলে ছাপে যেমন কাজ করে - এবং এটি সমস্ত parses manএর \backslash বেরিয়ে বুট। তবে manএটির জন্য কেবল একটি একক অ্যাপ্লিকেশন - আমি এটির অন্যান্য সমস্যাগুলিতেও বেশিরভাগ প্রয়োগ করেছি ...
মাইকজার্ভ

1
আমি কেবল আপনার চেইনটি ইয়াঙ্কিং করছি যেহেতু আপনি একটি ক্ষুদ্র একটি লাইনারের সাথে যা বর্ণনা করেছেন তা করতে পারি। নোট করুন, তবে এটি যে পুরো ফাইলটিকে গ্রাস করে না, এটি একটি স্ট্রিমে কাজ করে। এটি কেবল \n\nপরিবর্তে "লাইনগুলি" সংজ্ঞায়িত করে \nতবে এখনও যে কোনও আকারের ইনপুট এবং প্রিন্টগুলি কাজ করতে পারে তা পরিচালনা করতে পারে। এখানে "অনুচ্ছেদ মোড" দেখুন: perldoc.perl.org/perlrun.html
টেরডন

@terdon হয়তো এখানে যাওয়ার আরও ভাল উপায় ছিল। ইন sedএটা পছন্দ করা সম্ভব: '/./{H;$!d' -e '};x;now work the paragraph...'। আমি প্রায়শই এটিও করি। তবে আমি প্রথমে সীমিত সীমিত সময়ের জন্য লগ লাইভ দেখার জন্য প্রথম অংশটি লিখেছিলাম এবং এমনকি সেই আচরণটিও যদি নিখুঁত ছিল - কিছু শর্তে বাফারটি বিস্ফোরিত হতে পারে। যা এই আকারের অর্ধেক ছিল - manএটি আরও শক্ত করে তুলেছে। আমি উপরের সিনপটি man -Hপাওয়ার পরে তাকিয়েছিলাম manএবং আমি ভাবছি যে মেশিন-জেনার্ড এইচটিএমএল দিয়ে গ্রাফ জিএনইউ সিস্টেমে মুদ্রণ করতে পারে তার সাথে কাজ করা আরও সহজ হতে পারে। আমি ইতিমধ্যে কনুই-ডিপ
ডিগ্রি

@ এটারডন - আমি নিজেই দ্বিতীয়-অনুমান করেছি এবং অনুচ্ছেদে কেন্দ্রিক পদ্ধতির চেষ্টা করেছি, তবে এটি এখনকার মতো সহজ। এটি বিভাগ পায়। ভালো লেগেছে mansed cmd DESCRIPTIONএবং সব অন্তর্ভুক্ত বেশী - বিবরণের বিভাগে পায়। একটি মিলিত অনুসন্ধান পুরো মুদ্রিত হয় এবং এটির ইন্ডেন্টের স্তরটি শীর্ষে থাকে। এমনকি এটি মেলে এমন অনুচ্ছেদে উপেক্ষা করে মিথ্যা ইতিবাচক বিষয়গুলি এড়িয়ে যায় কিন্তু এরপরে আর ইনডেন্ট হয় না। এটি রঙিন ব্যাকস্পেসে পালিয়ে যাওয়ার সাথে এর আরোগুলির সাথে মেলে এবং কোনও লাইন মুদ্রণের জন্য অবশ্যই প্রস্তুত না হওয়া অবধি এটি পরিচালনা করে না। এগুলি সবই আমার পক্ষে একসাথে একক লাইনের চেয়ে অনেক বেশি ডেটা সহ করা খুব কঠিন।
মাইকজার্ভ

1

প্রতিটি শেলের নিজস্ব বিল্টিনের সেট থাকে। সাধারণতা থাকা অবস্থায় তাদের প্রত্যেকের নিজস্ব বিশেষত্ব রয়েছে যা নথিভুক্ত করা দরকার।

লিনাক্স এবং ফ্রিবিএসডি (এবং ওএসএক্সের মতো সিস্টেমগুলিতে, যা ফ্রিবিএসডি থেকে উত্তরাধিকার সূত্রে প্রাপ্ত) যেখানে প্রতিটি শেল পৃথক প্যাকেজ হিসাবে সরবরাহ করা হয়, সেখানে বিল্টিনগুলির জন্য কোনও ম্যান পৃষ্ঠা নেই; পরিবর্তে, প্রতিটি বিল্টিন শেলটির ম্যান পৃষ্ঠাতে নথিভুক্ত করা হয়। সুতরাং killবাশের বিল্টিনের ডকুমেন্টেশনের জন্য বাশ ম্যান পৃষ্ঠাটি পড়ুন, ড্যাশ-এর killবিল্টিনের ডকুমেন্টেশনের জন্য ড্যাশ ম্যান পৃষ্ঠাটি পড়ুন ইত্যাদি killস্ট্যান্ডএলোন ইউটিলিটির জন্য একটি ম্যান পেজও রয়েছে।

দেখুন পাবেনা আমি কমান্ড builtin ব্যাশ জন্য পৃথক man পৃষ্ঠা পেতে? কোনও manফাংশনের জন্য যা ম্যান পেজের পরিবর্তে বাশের অভ্যন্তরীণ ডকুমেন্টেশন দেখায় যদি আর্গুমেন্ট কোনও বিল্টিনের নাম।

এমন ইউনিক্স রূপ রয়েছে যা শেল বিল্টিনগুলির জন্য ম্যান পেজ সরবরাহ করে - বাস্তবে, বেশিরভাগ বাণিজ্যিক রূপগুলি রয়েছে। এটি সম্ভবপর কারণ সিস্টেমটি একটি একক শেল, বা পরিচিত শেলগুলির একটি সেট নিয়ে আসে। ম্যান পেজ শাঁসের মধ্যে পার্থক্য আলোচনা করে। উদাহরণস্বরূপ, fg(1)সোলারিস 10 man পৃষ্ঠা জন্য বিভাগে আছে sh, kshএবং cshfg(1)এআইএক্স .1.১- এর ম্যান পেজটি "কর্ন শেল" এবং "পসিক্স শেল" উল্লেখ করেছে তবে তাদের একসাথে আলোচনা করেছে (তারা ঠিক একই বৈশিষ্ট্যগুলির জন্য সমর্থন করে fg)। fg(1)Tru64 5.0ম্যান পেজটি ksh বিল্টইন নিয়ে আলোচনা করে এবং csh ব্যবহারকারীদের csh(1)ম্যান পেজে উল্লেখ করে। স্কটল্যান্ডস্পষ্টতই একটি একক শেল নিয়ে আসে। আপনি এই অপারেটিং সিস্টেমগুলিতে অ্যাড-অন প্যাকেজ হিসাবে অন্যান্য শেল ইনস্টল করতে পারেন; যদি আপনি একটি কাস্টম শেল ব্যবহার করেন তবে আপনাকে অবশ্যই মনে রাখতে হবে যে বিল্টইনগুলির জন্য ম্যান পৃষ্ঠাগুলি কোনও অ-ডিফল্ট শেল ব্যবহার করার সময় প্রাসঙ্গিক হবে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.