কমান্ড বনাম প্রোগ্রাম?


19

আমি এর মধ্যে পার্থক্য আপ খুঁজছেন ছিল adduserএবং useradd, এবং একটি ব্যাখ্যা যে useraddকমান্ড থাকাকালীন adduserএকটি Perl স্ক্রিপ্ট হয়। পার্ল স্ক্রিপ্ট কী তা আমি বুঝতে পারি তবে যা আমি বুঝতে পারি না তা হ'ল আসলে commandকী।

আমি সবসময় চিন্তা কমান্ড চাই যে ls, ln, cdইত্যাদি হয় যাই হোক না কেন ভাষায় লেখা সব সহজ প্রোগ্রাম যা কেবল এক জিনিস না। এই "সাধারণ প্রোগ্রাম" এবং পার্ল স্ক্রিপ্টের মধ্যে পার্থক্য কী?

আমি অবশ্যই জানি যে একটি (পার্ল) স্ক্রিপ্টটি সংকলিত হয় না তবে রানটাইমে ব্যাখ্যা করা হয়, তবে আমি অনুমান করি যে এটি কেবলমাত্র পার্থক্য নয়?


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

সাধারণ কথায়: কমান্ড এমন কিছু যা কার্যকর করতে পারে যখন প্রোগ্রামটি বাইনারি হয় যা সম্পাদন করতে পারে।
পিথিকোস

উত্তর:


32

সহজ কথায়, একটি আদেশ একটি নির্দেশ (বা নির্দেশাবলীর একটি সেট) যা কম্পিউটার দ্বারা চালিত হয়।

একা কমান্ড

যেমন মৌলিক ইউনিক্স ইউটিলিটি ls, lnইত্যাদি (সাধারণত) সি লিখিত এবং অনুষঙ্গহীন এক্সিকিউটেবল হতে সংকলিত প্রোগ্রাম যে একজন দোভাষী প্রয়োজন হয় না নিষ্পন্ন করা হবে; তাদের সাধারণত সিস্টেমে কিছু নির্দিষ্ট গ্রন্থাগার ফাইল ইনস্টল করা প্রয়োজন তবে এটি অন্য প্রশ্নের উত্তর।

স্ক্রিপ্ট

স্ক্রিপ্ট হ'ল কমান্ডের সংকলন এবং প্রকৃতপক্ষে স্ক্রিপ্টগুলি নিজেরাই কমান্ড হিসাবে বিবেচিত হয়।

একটি পার্ল স্ক্রিপ্ট পার্ল বিবৃতি একটি ক্রম এবং একটি প্রয়োজন perlএক্সিকিউটেবল (অনুষঙ্গহীন এবং কম্পাইল) প্রোগ্রাম পার্ল বিবৃতি ব্যাখ্যা করা।

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

একটি শেল স্ক্রিপ্ট অন্যান্য ক্রমানুসারে একাধিক কমান্ড (কমান্ড কোন প্রকার) হয় এবং এটি একটি ইউনিক্স যেমন ব্যাশ যেমন শেল স্ক্রিপ্ট ব্যাখ্যা করা প্রয়োজন। বাশ ম্যান পৃষ্ঠা থেকে:

বাশ একটি শ-সামঞ্জস্যপূর্ণ কমান্ড ল্যাঙ্গুয়েজ ইন্টারপ্রেটার যা স্ট্যান্ডার্ড ইনপুট থেকে বা কোনও ফাইল থেকে পড়া কমান্ডগুলি কার্যকর করে।

শেল বিল্ট-ইনগুলি

শেলগুলিতে সাধারণত অন্তর্নির্মিত কমান্ড থাকে যা না একা একা থাকা প্রোগ্রাম বা স্ক্রিপ্ট নয়। পরিবর্তে, এগুলি নিজেই শেলের একটি অংশ এবং শেল দ্বারা সরাসরি চালিত হয়। cdযেমন একটি অন্তর্নির্মিত কমান্ড উদাহরণ।

কিছু সময় কমান্ডগুলি থাকে যা শেল বিল্ট-ইনস এবং একই সময়ে একা একা কমান্ড হিসাবে উপস্থিত থাকে, যেমন echoকমান্ড command

$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo

echo নিজে থেকেই অন্তর্নির্মিত শেলটি কার্যকর করে যখন সম্পূর্ণ পথ সরবরাহ করে একা কমান্ড কার্যকর করা যায় exec

প্রতিধ্বনির অন্তর্নির্মিত সংস্করণটি চালান:

$ echo --version
--version

একা echoকর্মসূচি চালান :

$ /usr/bin/echo --version
echo (GNU coreutils) 8.23
Packaged by Cygwin (8.23-4)
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

দ্রষ্টব্য: উপরের সুনির্দিষ্ট একটি ইউনিক্স পরিবেশকে বোঝায় তবে একই নীতিগুলি উইন্ডোজ পরিবেশের ক্ষেত্রে প্রযোজ্য।


আপনি উইন্ডোতে যে প্রতিধ্বনির উল্লেখ করেছেন সেটি কেবলমাত্র আপনি যখন সাইগউইন ইনস্টল করেন। উইন্ডোতে আপনি ইকো পাবেন না। * এটি উইন্ডোতে যেমন নিখুঁতভাবে সিএমডি শেল কমান্ড (পাওয়ারশেলের প্রতিধ্বনি লেখার-বস্তুর সাথে যুক্ত হয়)
জিম বি

@ জিমবি এটি সত্য। আমি কী বলতে চাইছিলাম তা স্পষ্ট করতে আমি শেষ লাইনটি সম্পাদনা করেছি। কাকতালীয়ভাবে, আমি কেবল এই সপ্তাহে পাওয়ারশেল শিখতে শুরু করেছি (ধন্যবাদ .bat, অনেক বছর ধরে আমাকে ফাইল নিয়ে কাজ করতে হয়নি )।
অ্যান্টনি জি - মনিকার পক্ষে ন্যায়বিচার

2

একটি বিল্ট ইন কমান্ড শেলের অংশ। একটি প্রোগ্রাম শেল দ্বারা কার্যকর করা হয়।

বিল্টিন কমান্ডগুলি শেলের মধ্যেই রয়েছে। একটি বিল্টিন কমান্ডের নাম যখন কোনও সাধারণ কমান্ডের প্রথম শব্দ হিসাবে ব্যবহৃত হয় ( সিম্পল কমান্ডগুলি দেখুন ), শেলটি সরাসরি অন্য কোনও প্রোগ্রাম না করেই কমান্ডটি কার্যকর করে। বিল্টিন কমান্ডগুলি পৃথক ইউটিলিটিগুলি সহ কার্যকারিতা অসম্ভব বা অসুবিধার জন্য বাস্তবায়নের জন্য প্রয়োজনীয়।

http://www.gnu.org/software/bash/manual/bashref.html#Shell-Builtin-Commands


তবে useraddঅন্তর্নির্মিত শেল নয়। ওয়েব সাইটটি "বিল্ট-ইন কমান্ড" নয়, কেবল "কমান্ড" বলেছিল। এই ব্যাখ্যাটি এই প্রশ্নের সাথে কীভাবে প্রাসঙ্গিক?
বর্মার

1

কমান্ডের অর্থ একটি অ্যাপ্লিকেশন বা সিস্টেমকে কিছু করার বলার উপায়।

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

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

তবে আপনি ফটোশপকে কমান্ড বলবেন না, তবে আপনি অবশ্যই এটির মধ্যে জিইউআইয়ের মাধ্যমে কমান্ড জারি করবেন।

তবে এই শব্দটি বিভিন্ন লোককে বিভিন্ন জিনিস বোঝাতে পারে। আপনার উদাহরণে, কমান্ডটি একটি এক্সিকিউটেবল যা সরাসরি সঞ্চালিত হয় তা বর্ণনা করতে ব্যবহৃত হয়, একটি ফাইল বনাম কোনও কাজের জন্য স্ক্রিপ্ট ইন্টারপ্রেটারের প্রয়োজন হয়। পার্থক্যটি গুরুত্বপূর্ণ হতে পারে কারণ আপনি যখন পার্ল স্ক্রিপ্টটি চালাচ্ছেন, /usr/bin/perlতখন বাইনারিটি আসলে চালিত হয় (সুতরাং আপনি যদি দীর্ঘকালীন পার্ল স্ক্রিপ্টটি হত্যা করতে চান তবে আপনাকে এটিই সন্ধান করতে হবে ps)। তবে বেশিরভাগ শেলগুলির "বিল্ট-ইন" কমান্ড রয়েছে যা শেল নিজেই কমান্ড এবং কোনও বহিরাগত এক্সিকিউটেবল চালনার কারণ হয় না। উদাহরণস্বরূপ, নিজের cdদ্বারা পরিচালিত হয় bashএবং এটি কল /sbin/cdবা অনুরূপ হয় না ।


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