কমান্ড লাইন / শেল সহায়তা পাঠ্যের জন্য কি "মানক" বিন্যাস আছে?


239

যদি তা না হয় তবে ডি-ফ্যাক্টো স্ট্যান্ডার্ড কি আছে? মূলত আমি একটি কমান্ড লাইন সহায়তা পাঠ্য লিখছি:

usage: app_name [options] required_input required_input2
  options:
    -a, --argument     Does something
    -b required     Does something with "required"
    -c, --command required     Something else
    -d [optlistitem1 optlistitem 2 ... ]     Something with list

আমি এটি তৈরি করেছি মূলত বিভিন্ন সরঞ্জামের সাহায্যের পাঠ্যটি পড়া থেকে, তবে এখানে গাইডলাইনের তালিকা আছে বা কিছু আছে? উদাহরণস্বরূপ, আমি কি বর্গাকার বন্ধনী বা বন্ধনী ব্যবহার করব? কীভাবে স্পেসিং ব্যবহার করবেন? যুক্তি যদি একটি তালিকা হয়? ধন্যবাদ!


8
আমি মনে করি জিএনইউর কিছু ইঙ্গিত রয়েছে। আমি বেশিরভাগ জিএনইউ ইউটিলিটিগুলি কী করছে তা দেখব।
বেসিল স্টারিনকিভিচ

1
@ ড্যানিয়েলপ্রাইডেন আমি মনে করি যে এই প্রশ্নের উত্তরটি কিছুটা বিভ্রান্তিকর। এটি লিঙ্কগুলি দেয় যা কী কী স্যুইচগুলি গ্রহণ করা উচিত এবং কীভাবে আউটপুট দেখতে --helpহবে তা নয় explain তবে দুটি প্রশ্নই একত্রিত হওয়ার ভাল প্রার্থী।
বিকেল

@ পিএমআর: আমি সম্মত - সম্ভবত একটি আধুনিক আমাদের জন্য প্রশ্নগুলিকে একীভূত করতে পারে।
ড্যানিয়েল প্রাইডেন

2
আমি বেশিরভাগ জিএনইউ ইউটিলিটিগুলি কী করছে তা দেখব এবং এটি অন্যভাবে করবো।
ইয়াকভ গালকা

উত্তর:


160

সাধারণত, আপনার সহায়তা আউটপুট অন্তর্ভুক্ত করা উচিত:

  • অ্যাপটি কী করে তার বিবরণ
  • ব্যবহার বাক্য গঠন, যা:
    • [options]বিকল্পগুলি কোথায় যায় তা নির্দেশ করতে ব্যবহার করে
    • arg_name প্রয়োজনীয়, একক আর্গুমেন্টের জন্য
    • [arg_name] একটি alচ্ছিক, একক আর্গুমেন্ট জন্য
    • arg_name... প্রয়োজনীয় যুক্তির জন্য যার মধ্যে অনেকগুলি থাকতে পারে (এটি বিরল)
    • [arg_name...] একটি যুক্তির জন্য যার জন্য কোনও সংখ্যা সরবরাহ করা যেতে পারে
    • নোট করুন যে arg_nameবর্ণনামূলক, সংক্ষিপ্ত নাম, নিম্নে, সাপের ক্ষেত্রে হওয়া উচিত
  • বিকল্পগুলির একটি সুন্দর-ফর্ম্যাট তালিকা, প্রতিটি:
    • একটি সংক্ষিপ্ত বিবরণ আছে
    • ডিফল্ট মান দেখাচ্ছে, যদি একটি থাকে
    • সম্ভাব্য মানগুলি দেখাচ্ছে, যদি এটি প্রয়োগ হয়
    • মনে রাখবেন যে কোনও বিকল্প একটি সংক্ষিপ্ত ফর্ম (উদাহরণস্বরূপ -l) বা দীর্ঘ ফর্ম (উদাহরণস্বরূপ --list) গ্রহণ করতে পারলে সেগুলিকে একই লাইনে একসাথে অন্তর্ভুক্ত করুন, কারণ তাদের বিবরণগুলি একই হবে
  • কনফিগার ফাইল বা পরিবেশের ভেরিয়েবলগুলির অবস্থানের সংক্ষিপ্ত সূচক যা কমান্ড লাইন আর্গুমেন্টের উত্স হতে পারে, যেমন GREP_OPTS
  • যদি ম্যান পেজ থাকে তবে এটিকে চিহ্নিত করুন, অন্যথায়, আরও বিশদ সহায়তা কোথায় পাওয়া যাবে তার একটি সংক্ষিপ্ত সূচক

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


3
আমার যদি একটি একক প্রয়োজনীয় আর্গের দুটি ফর্ম থাকে? : যেমন বলছে আরো আদর্শ উপায় usage: move (+|-)pixelsঅর্থাত যখন এক + বা - হয় বাধ্যতামূলক ? (আমি জানি যে আমার কাছে দুটি ব্যবহারের লাইন থাকতে পারে তবে আমি প্রতিটি নতুন যুক্তি দিয়ে সেগুলি দ্বিগুণ করার ধারণাটি পছন্দ করি)) আপনি কি কোনও আদর্শ সরঞ্জাম থেকে উদাহরণ বিবেচনা করতে পারেন?
অ্যালোস মাহডাল

4
@AloisMahdal আমি সাধারণত দেখতে {a|b|c|...}সিস আইনিট / ভুঁইফোড় সেবা স্ক্রিপ্ট জন্য সহায়তা বিভাগে, যা একটি একবচন যুক্তি হল যে এক প্রয়োজনীয় a, b, c, ইত্যাদি উদাহরণস্বরূপ, service sddmছাড়া আমার সিস্টেমে একটি যুক্তি আউট ছাপে Usage: /etc/init.d/sddm {start|stop|status|restart|try-restart|force-reload}। সুতরাং বেশিরভাগ লোকেরা সম্ভবত বুঝতে পারবেন usage: move {+|-}pixels}, বিশেষত যদি একটি উদাহরণ দেওয়া হয়:example: move +5
ব্র্যাডেন বেস্ট

@ জর্জ বুকারন তাদের কি 0 স্ট্যাটাস দিয়ে বের হওয়া উচিত নয়? আমি বিশ্বাস করি যে স্থিতি 2 সহ প্রস্থান করা অবৈধ শেল কমান্ডের মান।
inavda

91

ডকপ্টটি একবার দেখুন । কমান্ড লাইন আর্গুমেন্টগুলি ডকুমেন্ট করার জন্য এটি একটি আনুষ্ঠানিক মান।

উদাহরণ স্বরূপ...

Usage:
  my_program command --option <argument>
  my_program [<optional-argument>]
  my_program --another-option=<with-argument>
  my_program (--either-that-option | <or-this-argument>)
  my_program <repeating-argument> <repeating-argument>...

46

আমি মনে করি কমান্ড লাইন ব্যবহারের জন্য কোনও মানক সিনট্যাক্স নেই, তবে বেশিরভাগ এই সম্মেলনটি ব্যবহার করুন:

মাইক্রোসফ্ট কমান্ড-লাইন সিনট্যাক্স , আইবিএম-তে একই কমান্ড-লাইন সিনট্যাক্স রয়েছে


  • Text without brackets or braces

    আইটেমগুলি আপনাকে অবশ্যই টাইপ করতে হবে

  • <Text inside angle brackets>

    স্থানধারক যার জন্য আপনাকে অবশ্যই একটি মান সরবরাহ করতে হবে

  • [Text inside square brackets]

    .চ্ছিক আইটেম

  • {Text inside braces}

    প্রয়োজনীয় আইটেমের সেট; একটি নির্বাচন করুন

  • উল্লম্ব বার {a|b}

    পারস্পরিক একচেটিয়া আইটেমগুলির জন্য পৃথককারী; একটি নির্বাচন করুন

  • ঊহ্য শব্দ <file> …

    পুনরাবৃত্তি করা যেতে পারে যে আইটেম


16

আমরা লিনাক্স, বেশিরভাগ পসিক্স-কমপ্লায়েন্ট ওএস চালাচ্ছি। পসিক্স মানগুলি এটি হওয়া উচিত: ইউটিলিটি আর্গুমেন্ট সিনট্যাক্স

  • একটি বিকল্প একটি হাইফেন একটি একক আলফানিউমেরিক অক্ষর দ্বারা অনুসৃত, এই মত হল: -o
  • কোনও বিকল্পের জন্য একটি আর্গুমেন্টের প্রয়োজন হতে পারে (যা বিকল্পের সাথে সাথে উপস্থিত হতে হবে); উদাহরণস্বরূপ, -o argumentবা -oargument
  • যে সকল বিকল্পের জন্য আর্গুমেন্টের প্রয়োজন হয় না সেগুলি হাইফেনের পরে গোষ্ঠীভুক্ত করা যেতে পারে, উদাহরণস্বরূপ, -lstএর সমতুল্য -t -l -s
  • বিকল্পগুলি যে কোনও ক্রমে উপস্থিত হতে পারে; এই -lstসমতুল্য -tls
  • বিকল্পগুলি একাধিকবার উপস্থিত হতে পারে।
  • বিকল্পগুলি অন্যান্য ননোপশন আর্গুমেন্টের আগে: -lstননোপশন।
  • --যুক্তি অপশন বন্ধ।
  • -বিকল্প সাধারণত স্ট্যান্ডার্ড ইনপুট স্ট্রিম এক প্রতিনিধিত্ব করতে ব্যবহৃত হয়।

2
এটি সাধারণ যে জিএনইউ / লিনাক্সের ব্যবহার এই মানটিকে যথাযথভাবে অনুসরণ করে না। চালান যেমন man aptitudeযে (অন্যান্য বিষয়ের মধ্যে) এই আউটপুট: aptitude [<options>...] {add-user-tag | remove-user-tag} <tag> <packages>...। এটিতে বিকল্প বাধ্যতামূলক কমান্ডগুলি আবদ্ধ করতে {এবং contains রয়েছে। আমি মনে করি (এবং) ডকপ্টে যেমন ব্যবহৃত হয় তেমনটির জন্যও ব্যবহার করা যেতে পারে
জার্নো

প্রদত্ত লিঙ্কটি নিচে চলে গেলে এই উত্তরটি অনেক কম সহায়ক হবে। উত্তর আপনি নিজেই লিঙ্কযুক্ত নথির গুরুত্বপূর্ণ অংশগুলি সংক্ষিপ্ত করতে পারেন?
domsson

11

মাইক্রোসফ্টের নিজস্ব কমান্ড লাইন স্ট্যান্ডার্ড স্পেসিফিকেশন রয়েছে :

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


9
মাইক্রোসফ্টের বেশিরভাগ ইউটিলিটিগুলির জন্য ভয়ঙ্কর কমান্ড লাইন সহায়তা রয়েছে, সবকিছু এতই ভয়ঙ্কর যে তারা কার্পেটের নীচে "নিয়মিত" কমান্ড লাইনটি আড়াল করার জন্য পাওয়ারশেলকে তৈরি করেছিল।
ক্যামিলো মার্টিন

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

2
সম্মত হলেন, এই কারণেই এই উত্তরটি হ্রাস করা উচিত। যদি নিম্নোক্ত হয় তবে এটি হওয়া উচিত কারণ ক) দস্তাবেজের যে অংশটি উদ্ধৃত হয়েছে সে হাতের প্রশ্নের উত্তর দেয় না, এবং খ) লিঙ্কযুক্ত নথিটি প্রাসঙ্গিক বলে মনে হয় না। প্রশ্নটি জিজ্ঞাসা করে যে কমান্ডের ব্যবহারের সিনোপেসগুলি যোগাযোগ করতে ব্যবহৃত সিনট্যাক্সের উপর ভারী জোর দিয়ে "সহায়তা পাঠ্যের" মানদণ্ড রয়েছে কি না। ডকুমেন্ট যেমন একটি বাক্য গঠন বরং কিভাবে PowerShell বাস্তুতন্ত্রের সাধারণভাবে ভাল কমান্ড লাইন অ্যাপস নির্মাণ করতে (যেমন সমর্থন করতে হবে দিতে চাওয়া নেই -?, -Help, -Version, ইত্যাদি)। আইএমও স্টিলি উইংয়ের উত্তর চিহ্নের কাছাকাছি।
মার্ক এ।

9

GNU কোডিং স্ট্যান্ডার্ড এই জাতীয় জিনিসগুলির জন্য একটি ভাল রেফারেন্স। এই বিভাগটি আউটপুট নিয়ে কাজ করে --help। এই ক্ষেত্রে এটি খুব নির্দিষ্ট নয়। সংক্ষিপ্ত এবং দীর্ঘ বিকল্পগুলি এবং একটি সংক্ষিপ্ত বিবরণ প্রদর্শন করে একটি ছক মুদ্রণের মাধ্যমে আপনি সম্ভবত ভুল করতে পারবেন না। পাঠযোগ্যতার জন্য সঠিকভাবে সমস্ত আর্গুমেন্টের মধ্যে ফাঁক দেওয়ার চেষ্টা করুন। আপনার সরঞ্জামটির আরও বিস্তৃত ব্যাখ্যা দেওয়ার জন্য আপনি সম্ভবত একটি manপৃষ্ঠা (এবং সম্ভবত একটি infoম্যানুয়াল) সরবরাহ করতে চান।


0

হ্যাঁ, আপনি সঠিক পথে আছেন

হ্যাঁ, স্কোয়ার বন্ধনীগুলি optionচ্ছিক আইটেমগুলির জন্য সাধারণ সূচক।

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

একটি নতুন প্রবণতা, (এটিতে কোনও পসিক্স স্পেসিফিকেশন রয়েছে যা সম্বোধন করে?) হ'ল ডকুমেন্টেশনের জন্য ম্যান পৃষ্ঠা সিস্টেমটি নির্মূল করা এবং program --helpআউটপুটটির অংশ হিসাবে ম্যানপেজে থাকা সমস্ত তথ্য সহ । এই অতিরিক্তের মধ্যে দীর্ঘ বিবরণ, ধারণাগুলি ব্যাখ্যা করা হয়েছে, ব্যবহারের নমুনা, জ্ঞাত সীমাবদ্ধতা এবং বাগগুলি, কীভাবে কোনও বাগ রিপোর্ট করতে হবে এবং সম্পর্কিত কমান্ডের জন্য সম্ভবত 'আরও দেখুন' বিভাগও অন্তর্ভুক্ত থাকবে।

আশা করি এটা কাজে লাগবে.


4
না না না. কমান্ডটিতে একটি ম্যানপেজ থাকা উচিত যা ব্যবহারের সম্পূর্ণ বিশদ রেফারেন্স অন্তর্ভুক্ত করে এবং -h|--helpএটি কেবল সংক্ষিপ্ত বিবরণী হওয়া উচিত। আপনি HTML বা তথ্য পৃষ্ঠাগুলিতে আরও বিস্তৃত ডকুমেন্টেশন (টিউটোরিয়ালস, ইত্যাদি ...) অন্তর্ভুক্ত করতে পারেন। তবে ম্যানপেজটি সেখানে থাকা উচিত!
নিনজালজ

আমি @ এনঞ্জালজ আপনার সাথে একমত, তবে যেমনটি আমি বলেছিলাম, "একটি নতুন প্রবণতা", এবং এর অর্থ আমি যে দুটি সিস্টেম ব্যবহার করি, ইউউইন এবং মিনজিডাব্লু উভয়ই এম্বেডড ডকুমেন্টেশন দিয়ে গেছে। আমি মনে করি এম্বেডড ডকটির এটির স্থান রয়েছে বিশেষত ক্ষুদ্র ব্যবহারকারী-স্তরের স্ক্রিপ্টের জন্য, যেমনটি এই ব্যবহারকারী প্রস্তাব করছেন। তার কি nroff এবং .info শিখতে হবে? তবে আমাদের সৎ রাখতে ভাল, আপনার মন্তব্যের জন্য ধন্যবাদ এবং সবার জন্য শুভকামনা।
শেল্টার

ব্যক্তিগতভাবে, যখন আমি someCommand --helpআমার শেলটি টাইপ করি, আমার কেবলমাত্র আর্গুমেন্টগুলি যে সঠিক ক্রমের সাথে যুক্ত হয় তার একটি ছোট্ট অনুস্মারক প্রয়োজন, lessকেবলমাত্র সমস্ত কিছু দেখার জন্য এটিতে পাইপ লাগানো দরকার screen ম্যানপেজটি এমন জায়গায় হওয়া উচিত যেখানে আপনি দীর্ঘ বিশদ বিবরণ রেখেছিলেন, সাহায্যের পাঠ্য নয়।
এজেম্যানসফিল্ড

তাঁর সম্মেলনে ডক্টপট প্রস্তুতকারকের মতে তিনি উল্লেখ করেছেন যে এর জন্য পসিএক্সের একটি আদর্শ রয়েছে।
v.oddou

0

আমি উদাহরণস্বরূপ টারের মতো সরকারী প্রকল্পগুলি অনুসরণ করব। আমার মতামত সাহায্যের নাম। যতটা সম্ভব সহজ এবং বর্ণনামূলক হওয়া দরকার। ব্যবহারের উদাহরণগুলিও ভাল। "স্ট্যান্ডার্ড সহায়তা" এর আসল প্রয়োজন নেই।


সম্পর্কিত tar... যদি কেউ ডারের মতো কোনও কিছু করে godশ্বর-উপযোগিতা তৈরি করতে চলেছে তবে দয়া করে সংক্ষিপ্ত সুইচগুলি স্মরণীয় করে রাখুন এবং এর মধ্যে একটি "উদাহরণ ব্যবহার" বিভাগ অন্তর্ভুক্ত করুন --help। আমি প্রায় 90% টারের নির্দেশাবলীর দিকে নজর দিই এটি কোনও সরল সরানোর জন্য tar.gz
ক্যামিলো মার্টিন

' "স্ট্যান্ডার্ড সহায়তা" এর কোনও সত্যিকারের প্রয়োজন নেই। 'আমরা ব্যবহার করা বেশিরভাগ জিনিসের কি কোনও "সত্যিকারের প্রয়োজন" আছে? বা তারা কি আমাদের জীবনকে আরও সহজ করার জন্য সেখানে রয়েছে? বিকল্পগুলির প্রতিনিধিত্ব করার একমত উপায় থাকা কেবল পাঠকদের জন্যই কার্যকর নয়, উদাহরণস্বরূপ, দরকারী মানুষ তৈরি করা যেমন জিইআইআইগুলি যথেচ্ছ কমান্ড-লাইন ইউটিলিটিগুলি নিয়ন্ত্রণ করতে পারে এবং তাদের বিকল্পগুলি সেট করার জন্য নিয়ন্ত্রণ সরবরাহ করতে চায়। সম্ভবত আরও ভাল ব্যবহার রয়েছে যা আমি এখনও বিবেচনা করি নি।
আন্ডারস্কোর_ডে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.