অ্যাশ - লিনাক্স কমান্ড - ইউনিক্স কমান্ড

NAME এর

sh - কমান্ড দোভাষী ( শেল )

সংক্ষিপ্তসার

sh [- / + aCefnuvxIimqsVEbc ] [- longname ] -words [ লক্ষ্য ... ]

বর্ণনা

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

সংক্ষিপ্ত বিবরণ

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

আবাহন

যদি কোনো আর্গুমেন্ট উপস্থিত না থাকে এবং শেলের স্ট্যান্ডার্ড ইনপুট একটি টার্মিনাল (অথবা যদি- I পতাকা সেট করা থাকে) সাথে সংযুক্ত হয় এবং c - বিকল্পটি উপস্থিত না থাকে, তবে শেলটিকে একটি ইন্টারেক্টিভ শেল হিসেবে গণ্য করা হয়। একটি ইন্টারেক্টিভ শেলটি সাধারণত প্রতিটি কমান্ডের আগে প্রম্পট করে এবং প্রোগ্রামিং এবং কমান্ডের ত্রুটিগুলি ভিন্নভাবে বর্ণিত করে (নীচে বর্ণিত)। প্রথম শুরু করার সময়, শেলটি 0 টি যুক্তি দেখায় এবং এটি ড্যাশ দিয়ে শুরু হয় - `শেলটি একটি লগইন শেল হিসেবে বিবেচিত হয়। সাধারণত এটি সিস্টেম দ্বারা স্বয়ংক্রিয়ভাবে সঞ্চালিত হয় যখন ব্যবহারকারী প্রথম লগ ইন করে। একটি লগইন শেল ফাইল / etc / প্রোফাইল থেকে কমান্ডগুলি পড়ায় এবং .profile যদি বিদ্যমান থাকে তবে যদি এনভায়রনমেন্ট ভেরিয়েবল ENV একটি শেলের এন্ট্রি এ সেট করা হয়, অথবা লগইন শেলের .profile এ সেট করা থাকে, শেলটি পরবর্তীতে ENV তে নামকরণ করা ফাইল থেকে কমান্ডগুলি পড়বে , ব্যবহারকারীকে কেবলমাত্র কমান্ডগুলি রাখতে হবে যা শুধুমাত্র .profile ফাইলের মধ্যে লগইন সময়, এবং কমান্ড যা এনভ ফাইলের ভিতরে প্রতিটি শেলের জন্য কার্যকর করা হয়। কিছু ফাইলের ENV ভেরিয়েবলটি সেট করতে, আপনার হোম ডাইরেক্টরিতে আপনার .profile এর মধ্যে নিম্নলিখিত লাইনটি স্থাপন করুন

ENV = $ হোম / .shinit; এক্সপোর্ট এনওয়াই

`` .shinit '' এর জন্য প্রতিস্থাপিত আপনি যেকোন ফাইলের নাম যেহেতু ENV ফাইলটি শেলের প্রতিটি আহ্বানের জন্য শেল স্ক্রিপ্ট এবং অ-ইন্টারেক্টিভ শাঁস সহ পাঠ করা হয়, তাই নিম্নলিখিত প্যারাডাইমটি ENV ফাইলে কমান্ডগুলিকে ইন্টারঅ্যাকটিভ আমন্ত্রণে ব্যাবহার করার জন্য উপযোগী। `` `` `` `` `` `` `` `` `` `` `` এবং তারপর `` esac '' 'র নিচে এই কমান্ডগুলি নির্দেশ করে।

কেস $ - এর মধ্যে * i *)

# ইন্টারেক্টিভ ব্যবহারের জন্য কমান্ড শুধুমাত্র

...

esac

যদি বিকল্পগুলি ছাড়াও কমান্ড লাইন আর্গুমেন্টগুলি নির্দিষ্ট করা হয় তবে শেলটি প্রথম আর্গুমেন্টকে একটি ফাইলের নাম হিসাবে বিবেচনা করে যা থেকে কমান্ডগুলি (একটি শেল স্ক্রিপ্ট) পড়তে হয় এবং অবশিষ্ট আর্গুমেন্ট শেলের অবস্থানগত প্যারামিটার হিসাবে সেট করা হয় ($ 1 , $ 2, ইত্যাদি)। অন্যথায়, শেল কমান্ডটি তার মানক ইনপুট থেকে পড়বে।

আর্গুমেন্ট তালিকা প্রসেসিং

একক অক্ষর বিকল্পের সমস্ত একটি অনুরূপ নাম আছে যা একটি - হিসাবে হিসাবে ব্যবহার করা যেতে পারে - o বিকল্প নীচের বিবরণে একক অক্ষর বিকল্পের পাশে সেট - নামটি প্রদান করা হয়। একটি ড্যাশ উল্লেখ করে `` - '' বিকল্পটি সক্রিয় করে, প্লাস `` + + 'ব্যবহার করে বিকল্প অক্ষম করে। নিম্নোক্ত অপশনগুলি কমান্ড লাইন বা সেট (1) বিল্ডিন ​​(পরে বর্ণিত) থেকে সেট করা যেতে পারে।

- একটি অ্যালক্লেপোর্ট

নিয়োগ করা সমস্ত ভেরিয়েবলগুলি রপ্তানি করুন (4.4 এলফা জন্য অসম্পূর্ণ)

-c

কমান্ড লাইন থেকে কমান্ডগুলি পড়ুন। স্ট্যান্ডার্ড ইনপুট থেকে কোন আদেশগুলি পড়তে হবে না।

-সি noclobber

বিদ্যমান ফাইলগুলিকে ``> '' (4২ এলফার জন্য অনির্ধারিত) দিয়ে মুছে ফেলবেন না

-ই ইরেক্সিট

ইন্টারঅ্যাক্টিভ না হলে অবিলম্বে প্রস্থান করুন যদি কোনো অনির্বাচিত কমান্ড ব্যর্থ হয়। একটি কমান্ডের প্রস্থান স্ট্যাটাস স্পষ্টভাবে পরীক্ষা করা হয় যদি কমান্ডটি এলিফের সময় নিয়ন্ত্রণ করার জন্য ব্যবহৃত হয় তবে বা `` && '' অথবা `` & `` '' অপারেটর''এর বামদিকের কমান্ডটি ব্যবহার করা হয়।

-ফ নোগলব

পথ নাম সম্প্রসারণ অক্ষম করুন।

-n noexec

ইন্টারেক্টিভ না হলে, কমান্ডগুলি পড়তে হবে কিন্তু তাদের চালানো হবে না। শেল স্ক্রিপ্টগুলির সিনট্যাক্স পরীক্ষা করার জন্য এটি দরকারী।

-u নরেন্দ্র

সেট করা না একটি পরিবর্তনশীল প্রসারিত করার চেষ্টা করার সময় মান ত্রুটি একটি বার্তা লিখুন, এবং শেল ইন্টারেক্টিভ না হলে, অবিলম্বে ত্যাগ করে (4.4 এলফা জন্য অসম্পূর্ণ)

-বিয়ানা

শেলটি তার ইনপুটটিকে সাধারণ ত্রুটি হিসাবে লিখেছে যেমনটি পড়া হয়েছে। ডিবাগিং জন্য দরকারী

-x xtrace

প্রতিটি ত্রুটি কমানোর জন্য স্ট্যান্ডার্ড ত্রুটি (পূর্বে একটি `+ 'দ্বারা কার্যকর করা হয়।) ডিবাগিংয়ের জন্য উপযোগী।

-কি শান্ত

যদি - v অথবা - x বিকল্পগুলি সেট করা থাকে, তাহলে তাদের প্রযোজ্য ফাইলগুলি পড়ার সময় প্রয়োগ করবেন না, এইগুলি হচ্ছে / etc / প্রোফাইল .profile এবং এনভ এনভায়রনমেন্ট ভেরিয়েবল দ্বারা নির্দিষ্ট ফাইল।

- আমি অজ্ঞ

ইন্টারফেক্টিভ যখন ইনপুট থেকে EOF উপেক্ষা করুন

-আই ইন্টারেক্টিভ

শেলটি আন্তঃক্রীয়ভাবে আচরণ করতে বাধ্য করুন।

-এম মনিটর

কাজের নিয়ন্ত্রণ চালু করুন (যখন ইন্টারেক্টিভ অবস্থায় স্বয়ংক্রিয়ভাবে সেট করুন)

-এস স্টান্ডিন

স্ট্যান্ডার্ড ইনপুট থেকে কমান্ডগুলি পড়ুন (কোনও ফাইল আর্গুমেন্ট উপস্থিত থাকলে স্বয়ংক্রিয়ভাবে সেট করুন ) শেল ইতিমধ্যে চলমান শুরু হওয়ার পরে এই বিকল্পটির কোন প্রভাব নেই (অর্থাৎ সেট (1))।

-ভি ভি

বিল্ট-ইন vi (1) কমান্ড লাইন সম্পাদক সক্ষম করুন (নিষ্ক্রিয় - E যদি এটি সেট করা থাকে)।

-E emacs

বিল্ট-ইন ইম্যাক্স (1) কমান্ড লাইন সম্পাদক সক্ষম করুন (নিষ্ক্রিয় - V যদি এটি সেট করা থাকে)।

-বি বিজ্ঞপ্তি

ব্যাকগ্রাউন্ড কাজ সমাপ্তির অ্যাসিঙ্ক্রোনাস বিজ্ঞপ্তি সক্ষম করুন। (4.4 এলফা জন্য অসম্পূর্ণ)

লেক্সনিক গঠন

শেল একটি ফাইল থেকে লাইনের পরিপ্রেক্ষিতে ইনপুট পড়েন এবং এটি সাদা স্পেস (খালি এবং ট্যাব) এ শব্দের মধ্যে ভঙ্গ করে এবং `` অপারেটর '' নামক শেলটির জন্য নির্দিষ্ট কিছু অক্ষরের নির্দিষ্ট সিকোয়েন্সে দুটি ধরনের অপারেটর রয়েছে: নিয়ন্ত্রণ অপারেটর এবং পুনঃনির্দেশ অপারেটর (তাদের অর্থ পরে আলোচনা করা হয়) অপারেটরের একটি তালিকা অনুসরণ করা হচ্ছে:

"কন্ট্রোল অপারেটর:"

&& (); ;; | || <সম্পর্কে newline>

"পুনঃনির্দেশ অপারেটর:"

<>> | << >> <&> & << - <>

বরাত দিয়ে

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

ব্যাকস্ল্যাশ

একটি নতুন লাইন ব্যতিক্রম ছাড়া, একটি ব্যাকস্ল্যাশ নিম্নলিখিত অক্ষরের আক্ষরিক অর্থ সংরক্ষণ করে। একটি বিরাট নতুন লাইন পূর্ববর্তী একটি ব্যাকস্ল্যাশ একটি লাইন অবিরত হিসাবে গণ্য করা হয়।

একক কোট

একক উদ্ধৃতিতে অক্ষরগুলি যুক্ত করা সমস্ত অক্ষরগুলির আক্ষরিক অর্থ সংরক্ষণ করে (একক কোট ছাড়া, একক উদ্ধৃতি চিহ্নে একক উদ্ধৃতি চিহ্ন করা অসম্ভব)।

উদ্ধৃতি চিহ্ন

ডবল উদ্ধৃতির মধ্যে অক্ষরগুলি সংযুক্ত করা হলে $ চিহ্ন ($) ব্যাককোট (`) এবং ব্যাকস্ল্যাশ (\) ব্যতীত সকল অক্ষরগুলির আক্ষরিক অর্থ সংরক্ষণ করা হয়। ডবল কোটির মধ্যে ব্যাকস্ল্যাশ ঐতিহাসিকভাবে অদ্ভুত, এবং কেবলমাত্র নিম্নলিখিত অক্ষরগুলি উদ্ধৃত করে:

$ `\

অন্যথায় এটি আক্ষরিক থাকবে

সংরক্ষিত শব্দ

সংরক্ষিত শব্দগুলি শব্দের বিশেষ অর্থ রয়েছে এমন শব্দ এবং একটি লাইনের প্রারম্ভে এবং একটি নিয়ন্ত্রণ অপারেটর পরে সনাক্ত করা হয়। নিম্নলিখিতগুলি সংরক্ষিত শব্দগুলি রয়েছে:

! টা এলিফ টা টা তাই তো মামলা

তাই টা তাই টা Ta {Ta}

Ta Ta Ta Ta Ta Ta Ta Ta

তাদের অর্থ পরে আলোচনা করা হয়।

ওরফে

একটি উপনাম একটি নাম এবং সংশ্লিষ্ট মান সেট alias (1) বিল্ডিন ​​কমান্ড ব্যবহার করে। যখনই কোনও সংরক্ষিত শব্দটি দেখা যাবে (উপরে দেখুন) এবং সংরক্ষিত শব্দগুলির জন্য চেক করার পরে, শেলটি একটি আলিয়াসের সাথে মেলে কিনা তা দেখার জন্য শব্দটি পরীক্ষা করে। এটি যদি করে তবে এটি তার মান সহ ইনপুট স্ট্রীমে এটি প্রতিস্থাপন করে। উদাহরণস্বরূপ, যদি মান `` ls -F '' এর সাথে `` এলএফ '' নামক একটি উপাধি থাকে তাহলে ইনপুট:

lf ফোবার <ফিরে>

হবে

ls -f foobar

উপাত্ত আর্গুমেন্ট সঙ্গে ফাংশন কিভাবে তৈরি করতে শিখতে ছাড়া কমান্ডের জন্য শূন্যধাবন তৈরি করতে অবহেলিত ব্যবহারকারীদের জন্য একটি সুবিধাজনক উপায় প্রদান। তারা লিক্সলি অদৃশ্য কোড তৈরি করতে ব্যবহার করা যেতে পারে। এই ব্যবহার নিরুৎসাহিত করা হয়।

কমান্ড

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

সহজ কমান্ড

যদি একটি সহজ কমান্ডটি স্বীকৃত হয়, শেলটি নিম্নোক্ত পদক্ষেপগুলি সম্পাদন করে:

  1. ফর্ম `` নাম = মান '' এর প্রধান শব্দ বন্ধ করা হয় এবং সহজ কমান্ডের পরিবেশে নির্ধারিত হয়। পুনর্সূচনা অপারেটর এবং তাদের আর্গুমেন্ট (নীচে বর্ণিত) প্রক্ষেপণ বন্ধ এবং প্রসেসিং জন্য সংরক্ষিত হয়।
  2. অবশিষ্ট শব্দগুলি `` সম্প্রসারিত '' নামক বিভাগে বর্ণিত হিসাবে প্রসারিত করা হয় এবং প্রথম অবশিষ্ট শব্দটি কমান্ডের নাম এবং কমান্ডটি অবস্থিত বলে গণ্য করা হয়। অবশিষ্ট শব্দটি কমান্ডের আর্গুমেন্ট বলে মনে করা হয়। যদি কোন কমান্ডের নাম না থাকে, তাহলে `` নাম = মান '' ভেরিয়েবল নিয়োগ আইটেম 1 শনাক্ত করা বর্তমান শেলকে প্রভাবিত করে।
  3. পরবর্তী অংশে বর্ণিত হিসাবে পুনঃনির্দেশগুলি সঞ্চালিত হয়

পুনঃনির্দেশগুলি

কমান্ডটি তার ইনপুটটি পড়তে বা তার আউটপুট পাঠায় যেখানে পরিবর্তন করতে ব্যবহৃত হয়। সাধারণভাবে, পুনঃনির্দেশগুলি একটি ফাইলের একটি বিদ্যমান রেফারেন্স খুলুন, বন্ধ করুন বা নকল করুন। পুনর্বিবেচনার জন্য ব্যবহৃত সামগ্রিক বিন্যাস হল:

[n] redir-op ফাইল

যেখানে redir-op পুনর্নির্দেশনা অপারেটরদের মধ্যে একটি উল্লেখ করা আছে। নিম্নলিখিত সম্ভাব্য redirections একটি তালিকা। Bq n একটি ঐচ্ছিক নম্বর, যেমন `3 '(না' Bq 3 ') যা একটি ফাইল বর্ণনাকারীকে বোঝায়।

[n]> ফাইল

ফাইলের জন্য স্ট্যান্ডার্ড আউটপুট (বা এন) পুনঃনির্দেশ করুন

[n]> | ফাইল

একই, কিন্তু - সি বিকল্প ওভাররাইড করুন

[এন] >> ফাইল

ফাইলে মান আউটপুট (বা এন) যুক্ত করুন

[n] <ফাইল

ফাইল থেকে মান ইনপুট (বা এন) পুনঃনির্দেশিত করুন

[n1] <এবং n2

ডুপ্লিকেট স্ট্যান্ডার্ড ইনপুট (বা n1) ফাইল বর্ণনাকারী n2 থেকে

[n] <এবং -

স্ট্যান্ডার্ড ইনপুট (বা এন) বন্ধ করুন

[n1]> & n2

N2 থেকে আদর্শ আউটপুট (বা n1) সদৃশ।

[n]> & -

স্ট্যান্ডার্ড আউটপুট (বা এন) বন্ধ করুন

[n] <> ফাইল

স্ট্যান্ডার্ড ইনপুট (বা এন) পড়তে এবং লেখার জন্য ফাইল খুলুন।

নিম্নলিখিত পুনঃনির্দেশকরণটি প্রায়ই `` এখানে-ডকুমেন্ট '' বলা হয়।

[n] << সীমাবদ্ধতা

এখানে-ডক টেক্সট ...

বিভেদক

সিলেক্টিয়ার পর্যন্ত ধারাবাহিক লাইনের সমস্ত পাঠ্য সংরক্ষণ করা হয় এবং স্ট্যান্ডার্ড ইনপুট, বা ফাইলের বর্ণনাকারীকে যদি এটি নির্দিষ্ট করা হয় তবে কমান্ডে উপলব্ধ করা হয়। যদি প্রারম্ভিক লাইনের উপর উল্লিখিত ডেলিমিটার উদ্ধৃত করা হয়, তাহলে এখানে-ডক-টেক্সট আক্ষরিকভাবে চিকিত্সা করা হয়, অন্যথায় পাঠ্য প্যারামিটার সম্প্রসারণ, কমান্ড প্রতিস্থাপন এবং আংশিক সম্প্রসারণের (যেমন `` সম্প্রসারিত অংশে বর্ণনা করা হয়েছে) সাপেক্ষে। 'যদি অপারেটরটি `` << -' 'এর পরিবর্তে `` << "এর পরিবর্তে এখানে ডক-টেক্সটের শীর্ষস্থানীয় ট্যাবগুলি ছিন্ন করা হয়।

অনুসন্ধান এবং এক্সিকিউশন

তিন ধরনের কমান্ড আছে: শেল ফাংশন, বিল্টিন কমান্ড, এবং সাধারণ প্রোগ্রাম - এবং এই কমান্ডটি (নামের দ্বারা) জন্য অনুসন্ধান করা হয়। তারা প্রতিটি একটি ভিন্ন ভাবে মৃত্যুদন্ড কার্যকর করা হয়।

যখন একটি শেল ফাংশন কার্যকর করা হয়, তখন শেলের অবস্থানগত পরামিতি ($ 0 ব্যতীত, যা অপরিবর্তিত থাকে) শেল ফাংশনের আর্গুমেন্টগুলিতে সেট করা হয়। ভেরিয়েবল যা সুনির্দিষ্টভাবে কমান্ডের পরিবেশে (ফাংশন নামের পূর্বে তাদেরকে নিয়োগ প্রদান করে) ফাংশনে স্থানীয়ভাবে তৈরি করা হয় এবং প্রদত্ত মানগুলিতে সেট করা হয়। তারপর ফাংশন সংজ্ঞা দেওয়া কমান্ড নির্বাহ করা হয়। কমান্ডটি সম্পন্ন হলে অবস্থানগত প্যারামিটারগুলিকে তাদের মূল মানগুলিতে পুনরুদ্ধার করা হয়। এই সব বর্তমান শেল মধ্যে ঘটে।

শেল বিল্ডগুলি অভ্যন্তরীণভাবে শেলে মৃত্যুদন্ড কার্যকর করা হয়, একটি নতুন প্রক্রিয়া তৈরি না করে।

অন্যথা, যদি কমান্ডের নাম ফাংশন বা বিল্টিনের সাথে মেলে না, তাহলে কমান্ডটি ফাইল সিস্টেমের সাধারণ প্রোগ্রাম হিসাবে (পরবর্তী অংশে বর্ণিত) অনুসন্ধান করা হয়। যখন একটি স্বাভাবিক প্রোগ্রাম চালানো হয়, শেলটি প্রোগ্রামটি চালায়, আর্গুমেন্ট এবং প্রোগ্রামটি পরিবেশে পাস করে। যদি প্রোগ্রামটি একটি স্বাভাবিক এক্সিকিউটেবল ফাইল না হয় (অর্থাৎ, "জাদুকর সংখ্যা" দিয়ে শুরু না করা হলে যার ASCII উপস্থাপনাটি "#!" হয়, তাহলে execve (2) Er ENOEXEC কে ফেরত দেয়) শেলটি প্রোগ্রামের একটি ব্যাখ্যা করবে subshell। শিশু শেল এই ক্ষেত্রে নিজেকে পুনরায় শুরু করবে, যাতে প্রভাবটি এমন হবে যেন একটি নতুন শেল অ্যাড-হক শেল স্ক্রিপ্টটি পরিচালনা করার জন্য আমন্ত্রণ জানানো হয়েছে, তবুও মাথার শেলের মধ্যে অবস্থিত হ্যাশড কমান্ডের অবস্থানটি মনে রাখা হবে সন্তান।

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

পথ অনুসন্ধান

একটি কমান্ড সন্ধান করার সময়, শেলটি প্রথমে এটি দেখতে পাবে যে এটির নাম শেল ফাংশন কিনা। তারপর এটি একটি নামের দ্বারা নির্মিত কমান্ডের জন্য দেখায়। যদি একটি বিল্টিন কমান্ড পাওয়া যায় না, তাহলে দুটি জিনিস এক হতে পারে:

  1. একটি স্ল্যাশ ধারণকারী কমান্ডের নামগুলি কেবল কোনো অনুসন্ধান না করেই মৃত্যুদন্ড কার্যকর করা হয়।
  2. শেল কমান্ডের জন্য PATH এর প্রতিটি এন্ট্রির অনুসন্ধান করে। PATH ভেরিয়েবলটির মান কলোনের দ্বারা বিভাজিত একটি সীমা থাকবে। প্রতিটি এন্ট্রি একটি ডিরেক্টরি নাম অন্তর্ভুক্ত। বর্তমান ডিরেক্টরিটি একটি ফাঁকা ডিরেক্টরি নাম দ্বারা নিখুঁতভাবে নির্দেশ করা যেতে পারে, বা স্পষ্টভাবে একটি নির্দিষ্ট সময়ের দ্বারা।

কমান্ড প্রস্থান স্থিতি

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

কমপ্লেক্স কমান্ডগুলি

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

যদি না অন্যথায় উল্লিখিত হয়, একটি কমান্ডের প্রস্থান স্ট্যাটাস কমান্ড দ্বারা চালানো সর্বশেষ সহজ কমান্ডের হয়।

পাইপলাইন

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

একটি পাইপলাইন জন্য বিন্যাস হল:

[!] কমান্ড 1 [| কমান্ড ২ ...]

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

যদি পাইপলাইন পটভূমিতে না হয় (পরে আলোচনা করা হয়), শেলটি সম্পূর্ণ করার সমস্ত কমান্ডগুলির জন্য অপেক্ষা করে।

যদি সংরক্ষিত শব্দ! পাইপলাইনের আগে নয়, প্রস্থান স্ট্যাটাস হল পাইপলাইনের মধ্যে নির্ধারিত শেষ কমান্ডের প্রস্থান স্ট্যাটাস। অন্যথায়, প্রস্থান স্ট্যাটাস হল সর্বশেষ কমান্ডের প্রস্থান স্থিতি লজিক্যাল নয়। অর্থাৎ, যদি শেষ কমান্ডটি শূন্য হয়, তবে প্রস্থান স্থিতি হল 1; যদি শেষ কমান্ডটি শূন্যের চেয়ে বড় হয়, তবে প্রস্থান স্থিতিটি শূন্য হবে।

যেহেতু স্ট্যান্ডার্ড ইনপুট বা স্ট্যান্ডার্ড আউটপুট বা উভয়ই পাইপলাইনের কাজ পুনঃনির্দেশিত হওয়ার আগে থাকে, এটি পুনর্বিবেচনার দ্বারা পরিবর্তন করা যায়। উদাহরণ স্বরূপ:

$ কমান্ড 1 2> & 1 | command2

কমান্ড 1 এর স্ট্যান্ডার্ড আউটপুট এবং কমান্ড 1 এর মান ত্রুটি উভয় কমান্ড 2 এর মান ইনপুট পাঠায়।

একটি; অথবা টার্মিনেটর ক্রমানুসারে ক্রমান্বয়ে সঞ্চালন করা পূর্ববর্তী এবং-OR- তালিকা (পরবর্তী বর্ণিত) করে; পূর্ববর্তী AND-OR- তালিকার অসিঙ্ক্রোনাস ফাংশনটি A & এর কারণ।

উল্লেখ্য যে, কিছু অন্যান্য শাঁসগুলির বিপরীতে, পাইপলাইনের প্রতিটি প্রক্রিয়াকে আবর্তক শেলের একটি সন্তান (যদি এটি শেলটি নির্মিত হয় না, তবে এটি বর্তমান শেলের মধ্যে সঞ্চালিত হয় - তবে পরিবেশের উপর যে প্রভাব রয়েছে তা মুছে ফেলা হয়)।

পটভূমি কমান্ড -

যদি একটি কমান্ড কন্ট্রোল অপারেটর এম্পারসেন্ড (&) দ্বারা বন্ধ করা হয় তবে শেলটি অঅন্য অনিয়ন্ত্রিত কমান্ডটি চালায় - অর্থাৎ, কমান্ডটি কমান্ডের জন্য পরবর্তী কমান্ডটি চালানোর আগে অপেক্ষা করে না।

পটভূমিতে একটি কমান্ড চালানোর জন্য বিন্যাস হল:

কমান্ড 1 এবং [কমান্ড 2 এবং ...]

শেল ইন্টারেক্টিভ না হলে, অ্যাসিনেনসাস কমান্ডের মান ইনপুট / dev / null এ সেট করা হয়

তালিকা - সাধারণভাবে কথা বলা

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

সংক্ষিপ্ত সার্কিট তালিকা অপারেটর

`` && '' এবং `` `` 'AND- OR তালিকা অপারেটরগুলি। `` && '' প্রথম কমান্ডটি চালায়, এবং তারপর দ্বিতীয় কমান্ড চালায় iff প্রথম কমান্ডের প্রস্থান স্ট্যাটাস শূন্য হয়। `` '' 'অনুরূপ, কিন্তু দ্বিতীয় কমান্ড চালায় iff প্রথম কমান্ডের প্রস্থান স্ট্যাটাস nonzero। `` && '' এবং `` `'' উভয়ই একই অগ্রাধিকার রয়েছে।

ফ্লো-কন্ট্রোল নির্মাণ - যদি, সময়, জন্য, ক্ষেত্রে

যদি কমান্ডের সিনট্যাক্সটি থাকে

তালিকা যদি
তারপর তালিকা
[এলিফ তালিকা
তারপর তালিকা] ...
[অন্য তালিকা]
ফাই

সময় কমান্ড সিনট্যাক্স হয়

যখন তালিকা
তালিকা করুন
সম্পন্ন

দুটি তালিকা বারবার সম্পাদিত হয়, যখন প্রথম তালিকাটির প্রস্থান স্থিতি শূন্য হয়। যতক্ষণ কমান্ডটি একই রকম হয়, তবে শব্দটি যতক্ষণ পর্যন্ত না থাকে, ততক্ষণ পর্যন্ত এটি পুনরাবৃত্তি করে, যতক্ষণ না প্রথম তালিকাটির প্রস্থান স্ট্যাটাস শূন্য হয়।

কমান্ডের জন্য সিনট্যাক্স হল কমান্ডের জন্য

শব্দ পরিবর্তনশীল জন্য ...
তালিকা করুন
সম্পন্ন

শব্দগুলি সম্প্রসারিত করা হয়, এবং তারপর তালিকা বারংবার পরিবর্তনশীল সেট সহ প্রতিটি শব্দ পাল্টানো হয়। কাজ এবং সম্পন্ন করা `` {'' এবং ``} 'এর সাথে প্রতিস্থাপিত হতে পারে

ব্রেক এর সিনট্যাক্স এবং অবিরত কমান্ড হয়

বিরতি [সংখ্যা]
[সংখ্যা] চালিয়ে যান

বিরতির জন্য নং অন্তর্মুখী বা লুপগুলি বন্ধ করে দেয়। অবিরত অন্তর্বর্তী লুপ পরবর্তী পুনরাবৃত্তির সঙ্গে চলতে চলতে। এটি বিল্টিন কমান্ড হিসাবে প্রয়োগ করা হয়।

কেস কমান্ডের সিনট্যাক্স হল

ক্ষেত্রে শব্দ
প্যাটার্ন) তালিকা ;;
...
esac

প্যাটার্নটি আসলে এক বা একাধিক প্যাটার্ন (পরে বর্ণিত শেল প্যাটার্নস দেখুন), `` '' অক্ষর দ্বারা পৃথক করা যায়।

গ্রুপিং কমান্ডগুলি একসাথে

কমান্ডগুলি কোনওভাবে লেখার মাধ্যমে গোষ্ঠীভুক্ত হতে পারে

(তালিকা)

অথবা

{তালিকা;

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

{printf হ্যালো; printf বিশ্ব \ n ";}> অভিবাদন

ক্রিয়াকলাপ

একটি ফাংশন সংজ্ঞা সিনট্যাক্স হয়

নাম () কমান্ড

একটি ফাংশন সংজ্ঞা একটি এক্সিকিউটেবল বিবৃতি; যখন এটি কার্যকর করা হয় নাম নামক একটি ফাংশন ইনস্টল করে এবং শূন্যের একটি প্রস্থান স্থিতি ফেরত দেয় কমান্ডটি সাধারণত `` {'' এবং ``} এর মধ্যে সংযুক্ত একটি তালিকা হয় ''

একটি স্থানীয় কমান্ড ব্যবহার করে ভেরিয়েবলকে একটি ফাংশনে স্থানীয় বলে ঘোষিত হতে পারে। এটি একটি ফাংশন প্রথম বিবৃতি হিসাবে প্রদর্শিত হবে, এবং সিনট্যাক্স হয়

স্থানীয় [পরিবর্তনশীল | -] ...

স্থানীয় একটি বিল্টিন কমান্ড হিসাবে প্রয়োগ করা হয়।

যখন একটি ভেরিয়েবল স্থানীয়ভাবে তৈরি হয়, তখন এটি প্রাথমিক মানটি বহন করে এবং ভেরিয়েবল থেকে এক্সপোর্ট এবং পাঠ্যক্রমে পতাকাগুলি পার্শ্ববর্তী ক্ষেত্রের একই নামের সাথে, যদি থাকে তবে অন্যথায়, পরিবর্তনশীল প্রাথমিকভাবে সেট করা হয় না। শেল গতিশীল scoping ব্যবহার করে, যাতে আপনি পরিবর্তনশীল x স্থানীয় ফাংশন ফাংশন করতে হলে, তারপর ফাংশন জি কল, জি ভিতরে পরিবর্তিত ভেরিয়েবলের রেফারেন্স পরিবর্তনশীল এক্স উল্লেখ করা হবে, গ্লোবাল ভেরিয়েবল নাম্বার নয় ।

স্থানীয়ভাবে তৈরি করা যেতে পারে এমন একমাত্র বিশেষ প্যারামিটার হল `` - '' কোনও শেল বিকল্প যা ফাংশনটির ভিতরে সেট কমান্ডের মাধ্যমে পরিবর্তিত হয় যখন ফাংশন রিটার্নে তাদের মূল মানগুলিতে পুনরুদ্ধার করা হবে।

রিটার্ন কমান্ডের সিনট্যাক্স হল

ফিরে [exitstatus

এটি বর্তমানে সঞ্চালন ফাংশন সমাপ্ত। প্রত্যাবর্তন একটি বিল্টিন কমান্ড হিসাবে বাস্তবায়িত হয়।

ভেরিয়েবল এবং পরামিতি

শেল পরামিতি একটি সেট রক্ষণাবেক্ষণ। একটি নাম দ্বারা চিহ্নিত একটি পরামিতি একটি পরিবর্তনশীল বলা হয়। শুরু করার সময়, শেল সব পরিবেশ ভেরিয়েবলকে শেল ভেরিয়েবলে পরিণত করে। নতুন ভেরিয়েবল ফর্ম ব্যবহার করে সেট করা যাবে

নাম = মান

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

অবস্থানগত প্যারামিটারসমূহ

একটি অবস্থানগত পরামিতি একটি প্যারামিটার একটি সংখ্যা (n> 0) দ্বারা চিহ্নিত। শেলটি প্রাথমিকভাবে তার কমান্ড লাইন আর্গুমেন্টগুলির মানগুলিতে সেট করে থাকে যা শেল স্ক্রিপ্টের নাম অনুসরণ করে। সেট (1) বিল্ডিন ​​সেট করা বা সেট আপ করতেও ব্যবহার করা যেতে পারে।

বিশেষ পরামিতি

একটি বিশেষ প্যারামিটার হল একটি প্যারামিটার যা নিম্নলিখিত বিশেষ অক্ষরের একটি দ্বারা চিহ্নিত। পরামিতির মান তার চরিত্রের পাশে তালিকাভুক্ত করা হয়।

*

এক থেকে শুরু, অবস্থানগত পরামিতি প্রসারিত যখন একটি ডবল-উদ্ধৃত স্ট্রিংয়ের মধ্যে বিস্তার ঘটে তখন IFS ভেরিয়েবলের প্রথম অক্ষর দ্বারা বিচ্ছিন্ন প্রতিটি প্যারামিটারের মান, অথবা <স্পেস> দ্বারা IFS নিখরচায় থাকে তাহলে একটি ক্ষেত্রকে বিস্তৃত হয়।

@

এক থেকে শুরু, অবস্থানগত পরামিতি প্রসারিত যখন এক্সপ্লেশনটি দ্বিগুণ উদ্ধৃতির মধ্যে ঘটে, প্রতিটি অবস্থানগত প্যারামিটার একটি পৃথক আর্গুমেন্ট হিসাবে বিস্তৃত হয়। যদি কোন অবস্থানগত প্যারামিটার না থাকে, তবে @ এর এক্সটেনশনটি শূন্য আর্গুমেন্ট তৈরি করে, এমনকি @ উদাহরণস্বরূপ, এই মূলত অর্থ হচ্ছে $ 1 হল `` abc '' এবং $ 2 হল `` ডিফ গী '' তারপর 'Qq $ @' দুটি আর্গুমেন্টগুলির মধ্যে বিস্তৃত হয়:

এ.সি.সি ডি.ডি.জি.

#

অবস্থানগত প্যারামিটার সংখ্যা প্রসারিত।

?

সবচেয়ে সাম্প্রতিক পাইপলাইন এর প্রস্থান স্ট্যাটাস প্রসারিত।

- (হাইফেন.)

বর্তমান বিকল্প পতাকাগুলি (একক-অক্ষর বিকল্পের নাম একটি স্ট্রিংে সন্নিবেশিত) হিসাবে প্রসারিত করুন, যেমন সেট করা বিল্ডিন ​​কমান্ড দ্বারা, অথবা শেল দ্বারা নিখুঁতভাবে।

$

আমন্ত্রিত শেলের প্রসেস ID প্রসারিত করুন। একটি subshell তার পিতা বা মাতা হিসাবে $ একই মান বজায় রাখা।

!

বর্তমান শেল থেকে কার্যকর সর্বশেষ সাম্প্রতিক পটভূমি কমান্ডের প্রসেস ID প্রসারিত করুন। পাইপ লাইনের জন্য, প্রক্রিয়াটি হল পাইপলাইনের শেষ কমান্ডের প্রক্রিয়া।

0 (জিরো।)

শেল বা শেল স্ক্রিপ্টের নাম প্রসারিত করুন

শব্দ সম্প্রসারণ

এই ধারাটি শব্দগুলির উপর সঞ্চালিত বিভিন্ন বিস্তার বর্ণনা করে। সব এক্সপ্রেশন সমস্ত শব্দ সঞ্চালিত হয় না, যেমন পরে ব্যাখ্যা।

টিল্ড এক্সপ্রেশন, প্যারামিটার এক্সপ্রেশনস, কমান্ড প্রতিস্থাপন, গাণিতিক বিস্তার এবং উদ্ধৃতি সরানো একটি একক ক্ষেত্রের মধ্যে ঘটতে পারে যা একক ক্ষেত্রে প্রসারিত হয়। এটি শুধুমাত্র ক্ষেত্র বিভাজন বা পাথনাম সম্প্রসারণ যা একক শব্দ থেকে একাধিক ক্ষেত্র তৈরি করতে পারে। এই নিয়মটিতে একক ব্যতিক্রমটি হল ডাবল কোটেশনে বিশেষ প্যারামিটারের সম্প্রসারণ, যেমনটি উপরে বর্ণিত হয়েছে।

শব্দ সম্প্রসারণের আদেশ হল:

  1. তিলার সম্প্রসারণ, পরামিতি সম্প্রসারণ, কমান্ড অবদান, আংশিক বিস্তার (এই সমস্ত একই সময়ে ঘটতে)।
  2. ক্ষেত্র বিভাজন ধাপে (1) দ্বারা উত্পন্ন ক্ষেত্রগুলিতে সঞ্চালিত হয় যদি না IFS ভেরিয়েবল নাল হয়।
  3. Pathname সম্প্রসারণ (যদি সেট না থাকে - f কার্যকরী হয়)।
  4. উদ্ধৃতি অপসারণ

$ অক্ষরটি প্যারামিটার সম্প্রসারণ, কমান্ড প্রতিস্থাপন, বা গাণিতিক মূল্যায়ন সূচনা করতে ব্যবহৃত হয়।

টিল্ড এক্সপ্রেশন (ব্যবহারকারীর হোম ডিরেক্টরী প্রতিস্থাপন)

একটি unquoted টিল্ড অক্ষর (~) দিয়ে শুরু একটি শব্দ টিল্ড সম্প্রসারণ অধীন হয়। একটি স্ল্যাশ (/) পর্যন্ত সমস্ত অক্ষর বা শব্দ শেষে একটি ব্যবহারকারীর নাম হিসাবে গণ্য করা হয় এবং ব্যবহারকারীর হোম ডাইরেক্টরিতে প্রতিস্থাপিত হয়। যদি ব্যবহারকারীর নামটি হারিয়ে যায় (~ / foobar হিসাবে) তাহলে টিল্ডটি HOME ভেরিয়েবলের মান (বর্তমান ব্যবহারকারীর হোম ডাইরেক্টরি) অনুসারে প্রতিস্থাপিত হয়।

পরামিতি বিস্তার

প্যারামিটার সম্প্রসারণের বিন্যাস নিম্নরূপ:

যেখানে কোনও ব্যাকস্ল্যাশ বা একটি উদ্ধৃত স্ট্রিংয়ের মধ্যে, কোন অক্ষরযুক্ত ``}} '' '`` `` `` `` `` `` কোনও `` পর্যন্ত সমস্ত অক্ষর রয়েছে এবং এম্বেড অরিত্র্যাটিক এক্সপ্যান্স, কমান্ড প্রতিস্থাপন এবং পরিবর্তনশীল বিস্তারগুলির অক্ষরগুলি নির্ণয় করার জন্য পরীক্ষা করা হয় না মিলেছে ``} ''

পরামিতি সম্প্রসারণের জন্য সর্বাধিক ফর্ম হল:

মূল্য, যদি থাকে, প্যারামিটার প্রতিস্থাপিত হয়।

প্যারামিটারের নাম বা প্রতীকটি বন্ধনীগুলিতে আবদ্ধ করা যেতে পারে, যা একাধিক অঙ্কের সাথে অবস্থানগত প্যারামিটার ছাড়া বা ঐ অক্ষরের দ্বারা অনুসরণ করা হয় যা নামটির অংশ হিসাবে ব্যাখ্যা করা যায়। যদি একটি প্যারামিটার এক্সপ্যান্সেশন দ্বিগুণ উদ্ধৃতির মধ্যে ঘটে:

  1. প্রসারিত ফলাফলের উপর Pathname সম্প্রসারণ সঞ্চালিত হয় না।
  2. ক্ষেত্র বিভাজিকা এক্সটেনশন ছাড়াই বিস্তারের ফলাফলগুলি সঞ্চালিত হয় না।

উপরন্তু, একটি প্যারামিটার সম্প্রসারণ নিম্নলিখিত বিন্যাসগুলির মধ্যে একটি ব্যবহার করে সংশোধন করা যেতে পারে।

ডিফল্ট মান ব্যবহার করুন যদি প্যারামিটারটি সেট করা না হয় বা নাল হয়, তবে শব্দটির বিস্তার প্রতিস্থাপিত হয়; অন্যথায়, পরামিতি মান প্রতিস্থাপিত হয়।

ডিফল্ট মান নির্ধারণ করুন যদি প্যারামিটারটি সেট করা না হয় বা নাল হয়, তাহলে শব্দটির সম্প্রসারণকে প্যারামিটারে ভাগ করা হবে। সব ক্ষেত্রে, প্যারামিটারের চূড়ান্ত মান প্রতিস্থাপিত হয়। শুধুমাত্র ভেরিয়েবল নয়, অবস্থানগত প্যারামিটার বা বিশেষ প্যারামিটার নয়, এই ভাবে বরাদ্দ করা যেতে পারে।

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

বিকল্প মূল্য ব্যবহার করুন যদি প্যারামিটারটি সেট করা না হয় বা নাল হয়, নাল প্রতিস্থাপিত হয়; অন্যথায়, শব্দ সম্প্রসারণ প্রতিস্থাপিত হয়।

পূর্বে প্রদর্শিত প্যারামিটার এক্সপ্রেশনগুলির মধ্যে, বিন্যাসের ফলাফলের মধ্যে কোলনটি ব্যবহার করা হয় এমন একটি প্যারামিটারের পরীক্ষা যা সেট না করা বা নাল; কোলন বাদ দেওয়ার ফলে একটি প্যারামিটারের জন্য একটি পরীক্ষায় ফলাফল পাওয়া যায় যা কেবল সেট না করা যায়।

স্ট্রিং দৈর্ঘ্য প্যারামিটারের মানের অক্ষরের দৈর্ঘ্য।

পরামিতি প্রসেসিং নিম্নলিখিত চারটি প্রকারের substring প্রসেসিং জন্য প্রদান। প্রতিটি ক্ষেত্রে, রেগুলার এক্সপ্রেশন প্রকরণের পরিবর্তে, প্যাটার্ন মিলিং নোটেশন (শেল প্যাটার্নস দেখুন), প্যাটার্ন নির্ণয় করতে ব্যবহৃত হয়। যদি প্যারামিটারটি * বা @ হয়, তাহলে সম্প্রসারণের ফলাফল অনির্দিষ্ট। দ্বিগুণ উদ্ধৃতিতে পূর্ণ প্যারামিটার এক্সটেনশন স্ট্রিংকে সংযুক্ত করা হলে নিম্নলিখিত চারটি প্যাটার্ন অক্ষর উদ্ধৃত করা হয় না, যখন বন্ধনীগুলির মধ্যে অক্ষরগুলি উদ্ধৃত করার এই প্রভাবটি রয়েছে।

ক্ষুদ্রতম অনুচ্ছেদ প্যাটার্ন সরান শব্দ একটি প্যাটার্ন উত্পাদন প্রসারিত করা হয়। প্যারামিটার সম্প্রসারণটি প্যারামিটারের ফলাফল হিসাবে, পটভূমির সাথে মিলে যাওয়া suffix এর সবচেয়ে ছোট অংশ দিয়ে মুছে ফেলা হয়েছে।

বৃহত্তম প্রত্যঙ্গ প্যাটার্ন সরান শব্দ একটি প্যাটার্ন উত্পাদন প্রসারিত করা হয়। প্যারামিটার এক্সপ্যানশনটি প্যারামিটারের ফলাফল হিসাবে, প্যাটেন্ট দ্বারা মিলিত অনুপাতের সর্বাধিক অংশ দিয়ে মুছে ফেলা হয়েছে।

ক্ষুদ্রতম উপসর্গ প্যাটার্ন সরান। শব্দ একটি প্যাটার্ন উত্পাদন প্রসারিত করা হয়। প্যারামিটার সম্প্রসারণটি প্যারামিটারের ফলাফল হিসাবে, প্লেট দ্বারা মিলিত উপসর্গের ক্ষুদ্রতম অংশ দিয়ে মুছে ফেলা হয়েছে।

বৃহত্তম প্রিফিক্স প্যাটার্ন সরান শব্দ একটি প্যাটার্ন উত্পাদন প্রসারিত করা হয়। প্যারামিটার সম্প্রসারণটি প্যারামিটারের ফলাফল হিসাবে, প্যাটেন্ট দ্বারা মিলিত উপসর্গের সর্বাধিক অংশটি মুছে ফেলা হয়েছে।

কমান্ড প্রতিস্থাপন

কমান্ডের পরিবর্তে কমান্ডের পরিবর্তে কমান্ডের পরিবর্তে কমান্ডের পরিবর্তে একটি কমান্ডের আউটপুটকে অনুমতি দেয়। নিম্নরূপ কমান্ডের সাথে সংযুক্ত হলে কমান্ড প্রতিস্থাপন ঘটে:

$ (কমান্ড)

বা পো `` ব্যাকভোটেড '' সংস্করণটি PC:

`command`

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

আংশিক বিস্তার

অ্যারিথম্যাটিক সম্প্রসারণ একটি গাণিতিক অভিব্যক্তি মূল্যায়ন এবং তার মান substituting জন্য একটি প্রক্রিয়া উপলব্ধ করা হয়। অনুক্রমিক সম্প্রসারণের বিন্যাস নিম্নরূপ:

$ ((অভিব্যক্তি))

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

পরবর্তী, শেলটি একটি গাণিতিক অভিব্যক্তি হিসাবে বিবেচিত এবং অভিব্যক্তিটির মান প্রতিস্থাপন করে।

হোয়াইট স্পেস বিভাজন (ক্ষেত্র বিভাজন)

প্যারামিটার সম্প্রসারণের পরে, কমান্ড প্রতিস্থাপন, এবং গাণিতিক সম্প্রসারণটি শেল ক্ষেত্র বিভাজন এবং একাধিক ক্ষেত্রের জন্য দ্বিগুণ কোটগুলিতে ঘটে না এমন এক্সপোশন এবং প্রতিস্থাপনের ফলাফলগুলি স্ক্যান করে এবং একাধিক ক্ষেত্রগুলির ফলাফল হতে পারে।

শেল আইএএফএসের প্রতিটি চরিত্রটি একটি বিভাজক হিসেবে ব্যবহার করে এবং ক্ষেত্রগুলিতে প্যারামিটার সম্প্রসারণ ও কমান্ড প্রতিস্থাপনের ফলাফলগুলি বিভক্ত করার জন্য সীমাবদ্ধতার ব্যবহার করে।

পাথনাম সম্প্রসারণ (ফাইলের নাম প্রজন্ম)

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

শেল প্যাটার্নস

একটি প্যাটার্ন সাধারণ অক্ষর গঠিত, যা নিজেদের মেলে, এবং মেটা-অক্ষর মেটা-অক্ষরগুলি ``! '' `* ''` `? '' এবং` `['' এই অক্ষরগুলি তাদের বিশেষ অর্থ হারায় যদি তারা উদ্ধৃত হয়। যখন কমান্ড অথবা পরিবর্তনশীল প্রতিস্থাপিত হয় এবং ডলার চিহ্ন বা ব্যাক কোটগুলি দ্বিগুণ করা হয় না, তখন ভেরিয়েবলের মান বা কমান্ডের আউটপুট এই অক্ষরের জন্য স্ক্যান করা হয় এবং তারা মেটা-অক্ষরগুলিতে পরিণত হয়।

একটি তারকাচিহ্ন (`` * '') অক্ষরের কোনো স্ট্রিং সঙ্গে মেলে। একটি প্রশ্ন চিহ্ন একটি একক চরিত্রের সাথে মেলে। একটি বাম বন্ধনী (`` [''] একটি অক্ষর শ্রেণী উপস্থাপন করে। অক্ষর শ্রেণীর শেষে একটি (``) '' দ্বারা নির্দেশিত হয় যদি ``] '' অনুপস্থিত থাকে তবে `` ['' একটি অক্ষর শ্রেণী প্রবর্তন করার পরিবর্তে `` ['' '' সাথে মেলে। একটি চরিত্র শ্রেণি বর্গাকার বন্ধনীগুলির মধ্যে যেকোনো অক্ষরের সাথে মিলবে। একটি বিয়োগ চিহ্ন ব্যবহার করে একটি পরিসীমা বর্ণিত হতে পারে। চরিত্র শ্রেণি একটি বিস্ময়কর বিন্দু চরিত্র ক্লাস প্রথম অক্ষর দ্বারা complemented হতে পারে।

একটি অক্ষর শ্রেণীতে ``] '' অন্তর্ভুক্ত করতে, এটি প্রথম অক্ষরটি তালিকাভুক্ত করুন (``! '' এর পরে যদি থাকে) একটি মাইনাস সাইন অন্তর্ভুক্ত করতে, এটি প্রথম বা শেষ অক্ষর তালিকাভুক্ত করুন

Builtins

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

:

একটি null কমান্ড যা 0 (সত্য) প্রস্থান মান ফেরত দেয়

ফাইল

নির্দিষ্ট ফাইলের কমান্ডগুলি শেল দ্বারা পড়ে এবং সঞ্চালিত হয়।

উপনাম [ নাম [ = স্ট্রিং ... ]]

Name = string উল্লেখ করা হলে, শেলটি মান স্ট্রিং সহ উপনাম নামটি সংজ্ঞায়িত করে যদি শুধু নাম নির্দিষ্ট করা হয়, তবে উপনাম নামটি মুদ্রিত হবে। কোন আর্গুমেন্ট ছাড়াই, আলিয়াস builtin সমস্ত সংজ্ঞায়িত aliases এর নাম এবং মান প্রিন্ট ( unalias দেখুন)

বিজি [ চাকরি] ...

পটভূমিতে নির্দিষ্ট কাজগুলি চালিয়ে যান (বা বর্তমান কাজ না হলে কোন কাজ দেওয়া হয় না)

কমান্ড কমান্ড আর্গুমেন্ট ...

নির্দিষ্ট অন্তর্নির্মিত কমান্ড নির্বাহ করুন। (এটি একটি দরকারী শেল ফাংশন যখন একই নামের একটি বিল্টিন কমান্ড হিসাবে ব্যবহার করা হয়)।

সিডি [ ডিরেক্টরি ]

নির্দিষ্ট ডিরেক্টরি (ডিফল্ট $ HOME) -এ স্যুইচ করুন যদি CDPATH এর জন্য একটি এন্ট্রি সিডি কমান্ডের পরিবেশে প্রদর্শিত হয় বা শেল পরিবর্তনশীল সিডিপিএটিএইচ সেট হয় এবং ডিরেক্টরি নামটি স্ল্যাশ দিয়ে শুরু হয় না, তাহলে CDPATH- এ তালিকাবদ্ধ ডিরেক্টরিগুলি অনুসন্ধান করা হবে নির্দিষ্ট ডিরেক্টরির জন্য CDPATH- র বিন্যাসটি PATH- এর মতো একই সাথে একটি ইন্টারেক্টিভ শেলের মধ্যে, cd কমান্ডটি ডিরেক্টরিটির নামটি প্রিন্ট করবে যা আসলে এটি সুইচড করে যদি ব্যবহারকারীর নামটি থেকে ভিন্ন হয়। এটি ভিন্ন হতে পারে কারণ CDPATH ব্যবস্থার ব্যবহার করা হয়েছিল বা কারণ একটি সিম্বলিক লিংক ক্রাশ হয়েছিল।

eval স্ট্রিং ...

স্পেস সহ সব আর্গুমেন্টের সাথে যুক্ত করুন। তারপর পুনরায় প্যাড এবং কমান্ড চালানো।

exec [ কমান্ড ARG ... ]

যতক্ষণ কমান্ড বাদ দেওয়া হয়, ততক্ষণ শেল প্রসেসটি নির্দিষ্ট প্রোগ্রামের সাথে প্রতিস্থাপিত হয় (যা একটি বাস্তব প্রোগ্রাম হতে হবে, শেল বিল্টিন বা ফাংশন নয়)। Exec কমান্ডে যে কোনও পুনঃনির্দেশগুলি স্থায়ী হিসাবে চিহ্নিত করা হয়, যাতে exec কমান্ড শেষ না হলে তারা পূর্বাবস্থায় আনা হয় না।

প্রস্থান করা [ প্রস্থান স্ট্যাটাস ]

শেল প্রক্রিয়াটি বাতিল করুন যদি exitstatus দেওয়া হয় এটি শেল এর প্রস্থান অবস্থা হিসাবে ব্যবহার করা হয়; অন্যথায় পূর্ববর্তী কমান্ডের প্রস্থান অবস্থা ব্যবহার করা হয়।

নাম রপ্তানি করুন ...

রপ্তানি-পি

নির্দিষ্ট নামগুলি রপ্তানি করা হয় যাতে তারা পরবর্তী কমান্ডের পরিবেশে প্রদর্শিত হবে। একটি ভেরিয়েবলটি আন-এক্সপোর্ট করার একমাত্র উপায় হল সেটাকে আনসেট করা। শেল লেখার দ্বারা এক্সপোর্ট করা একটি সময়ে সেট করার জন্য একটি ভেরিয়েবলের মান অনুমোদন করে

রপ্তানি নাম = মান

কোন আর্গুমেন্ট ছাড়াই এক্সপোর্ট কমান্ড সমস্ত রপ্তানি ভেরিয়েবলের নাম তালিকা। - p বিকল্পটি উল্লেখ করে অ-ইন্টারেক্টিভ ব্যবহারের জন্য আউটপুটটি উপযুক্তরূপে বিন্যস্ত করা হবে।

fc [- সম্পাদক ] [ প্রথম [ শেষ ]]

fc -l [- এনআর ] [ প্রথম [ শেষ ]]

fc -s [ পুরানো = নতুন ] [ প্রথম ]

FC builtin তালিকা, বা সম্পাদনা এবং পুনরায় সঞ্চালন, পূর্বে একটি ইন্টারেক্টিভ শেল প্রবেশ করানো কমান্ড।

-ই সম্পাদক

কমান্ড সম্পাদনা করার জন্য এডিটর এর নাম লেখা সম্পাদক ব্যবহার করুন। পিএটিএইচ ভেরিয়েবলের মাধ্যমে অনুসন্ধানের জন্য সম্পাদক স্ট্রিংটি একটি কমান্ডের নাম। FCEDIT ভেরিয়েবলের মান ডিফল্ট হিসাবে ব্যবহার করা হয় যখন- নির্দিষ্ট করা হয় না। যদি FCEDIT নাল বা সেট না থাকে, তাহলে EDITOR ভেরিয়েবলের মান ব্যবহার করা হয়। EDITOR নাল বা অনির্দিষ্ট হলে, ed (1) সম্পাদক হিসাবে ব্যবহৃত হয়।

-এল (এল)

তাদের উপর একটি সম্পাদক আহ্বান বরং কমান্ড তালিকা। কমান্ডগুলি প্রথম ও শেষ অপারেন্ড দ্বারা নির্দেশিত ক্রমে লিখিত হয় - কমান্ড সংখ্যা অনুসারে পূর্বে প্রতিটি কমান্ডের দ্বারা প্রভাবিত।

-n

সঙ্গে তালিকা যখন কমান্ড সংখ্যা কমান্ড -l

-r

উল্লিখিত কমান্ডগুলির ক্রম উল্টাতে (সঙ্গে - l বা সম্পাদিত (না - না এবং - গুলি সহ)

-s

একটি সম্পাদককে আহ্বান না করেই কমান্ডটি পুনরায় চালনা করুন।

প্রথম

গত

তালিকা বা সম্পাদনা করতে কমান্ড নির্বাচন করুন। HISTSIZE ভেরিয়েবলের মান দ্বারা নির্ধারিত পূর্ববর্তী কমান্ডের সংখ্যা নির্ধারণ করা হয়। প্রথম বা শেষ বা উভয়ের মান নিম্নলিখিতগুলির মধ্যে একটি:

[+ +] NUMBER

একটি ধনাত্মক সংখ্যা যা একটি কমান্ড সংখ্যা প্রতিনিধিত্ব করে; কমান্ড সংখ্যা - l বিকল্পের সাথে প্রদর্শিত হতে পারে।

-number

একটি নেতিবাচক দশমিক সংখ্যা যা পূর্বে কমান্ডের সংখ্যা কার্যকর করা হয়েছিল। উদাহরণস্বরূপ, -1 হল অবিলম্বে পূর্ববর্তী কমান্ড।

দড়ি

একটি স্ট্রিংটি যে স্ট্রিং দিয়ে শুরু হয় তা সন্নিবেশিত সবচেয়ে সম্প্রসারিত কমান্ডকে নির্দেশ করে। যদি পুরানো = নতুন অপারেন্ডও নির্দিষ্ট না হয় - প্রথম অপারেন্ডের স্ট্রিং ফর্মে একটি এমবেড করা সমান চিহ্ন থাকতে পারে না।

নিম্নোক্ত পরিবেশগত ভেরিয়েবলগুলি fc execution- কে প্রভাবিত করে:

FCEDIT

ব্যবহারের জন্য সম্পাদকের নাম।

HISTSIZE

প্রবেশযোগ্য যে পূর্ববর্তী কমান্ডের সংখ্যা।

fg [ চাকরী ]

নির্দিষ্ট কাজের বা অগ্রগতিতে বর্তমান কাজ সরান।

অপটস্ট্র্রাস্ট var

পিওসআইসিআইএস বিধানের আদেশ, বেল ল্যাবগুলির সাথে বিভ্রান্ত না হওয়া - দ্য ডুয়েটেড গেটপট (1)।

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

Getopts কমান্ড পুরানো getopt (1) ইউটিলিটি হতাশ কারণ হোয়াইটস্পেস ধারণকারী আর্গুমেন্ট হ্যান্ডলিং কারণে।

Getopts builtin পরামিতি একটি তালিকা থেকে বিকল্প এবং তাদের আর্গুমেন্ট প্রাপ্ত করতে ব্যবহার করা যেতে পারে। যখন আহ্বান করা হয়, getopts তালিকাতে বিকল্প স্ট্রিং থেকে var রূপ দ্বারা নির্ধারিত শেল ভেরিয়েবলের পরের বিকল্পের মান রাখে এবং এটি শেল ভেরিয়েবলের ইনডেক্সে থাকে, যখন শেলটি চালু হয়, OPTIND 1 এ শুরু হয়। একটি যুক্তি, getopts builtin শেল পরিবর্তনশীল মধ্যে এটি স্থাপন করবে OPTARG যদি optstring মধ্যে একটি বিকল্প অনুমোদিত না হয় তাহলে OPTARG অনির্দিষ্ট হবে।

optstring স্বীকৃত বিকল্প অক্ষর একটি স্ট্রিং। যদি একটি অক্ষর একটি কোলন দ্বারা অনুসরণ করা হয়, বিকল্প একটি আর্গুমেন্ট আছে বলে আশা করা হচ্ছে যা সাদা স্থান দ্বারা এটি হতে পারে বা হতে পারে না। যদি কোনও বিকল্প চরিত্রটি পাওয়া না যায় যেখানে প্রত্যাশিত হয়, তাহলে getopts একটি ``? '' Getopts সেট করতে হবে তারপর ওপেটর সেট আপ এবং স্ট্যান্ডার্ড ত্রুটি থেকে আউটপুট লিখুন। অপসারনের সকল অক্ষরের প্রথম অক্ষর হিসাবে একটি কোলন উল্লেখ করে সব ত্রুটি উপেক্ষা করা হবে।

শেষ বিকল্পটি পৌঁছে গেলে একটি ননজারো মান ফিরে পাওয়া যায়। যদি বাকি বাকি আর্গুমেন্ট না থাকে তবে getopts var কে বিশেষ বিকল্পটি সেট করবে, `` - '' অন্যথায়, এটি var কে ``? '

নিম্নোক্ত কোড টুকরাটি দেখায় যে কিভাবে একটি কমান্ডের জন্য আর্গুমেন্টগুলি প্রক্রিয়া করতে পারে যেগুলি [a] এবং [b] এবং বিকল্প [c] বেছে নিতে পারে যা একটি আর্গুমেন্ট প্রয়োজন।

দোস্ত
করা
কেস $ চ ইন
একটি | খ) পতাকা = $ ফি ;;
c) carg = $ OPTARG ;;
\?) $ USAGE echo; প্রস্থান 1 ;;
esac
সম্পন্ন
স্থানান্তর 'expr $ OPTIND - 1`

এই কোডটি সমতুল্য হিসাবে নিম্নলিখিত কোনটি গ্রহণ করবে:

cmd -acarg ফাইল ফাইল
cmd -a -c arg ফাইল ফাইল
cmd -carg -a ফাইল ফাইল
cmd -a -carg - ফাইল ফাইল

হ্যাশ -আরভি কমান্ড ...

শেলটি একটি হ্যাশ টেবিল বজায় রাখে যা কমান্ডের অবস্থানগুলি মনে রাখে। কোন আর্গুমেন্টের সাথে, হ্যাশ কমান্ড এই টেবিলের বিষয়বস্তু প্রিন্ট আউট। শেষ সিড কমান্ডের একটি তারকা চিহ্ন দ্বারা চিহ্নিত করা হয়েছে এমন এন্ট্রিগুলি দেখা যায়নি; এই এন্ট্রিগুলি অবৈধ হতে পারে।

আর্গুমেন্টগুলির সাথে, হ্যাশ কমান্ডটি নির্দিষ্ট কমান্ডগুলি হ্যাশ টেবিল থেকে (যদি না তারা ফাংশন হয়) এবং তারপর তাদের সনাক্ত করে। - v বিকল্পের সাথে, হ্যাশ কমান্ডের অবস্থানগুলি মুদ্রণ করে যেমন এটি তাদের খুঁজে পাওয়া যায়। - r বিকল্পটি হ্যাশ কমান্ডটি ফাংশন ব্যতীত হ্যাশ টেবিলের সমস্ত এন্ট্রি মুছে ফেলার কারণ করে।

চাকরি [ চাকরি ]

চাকরীতে প্রসেসের প্রক্রিয়া আইডিটি প্রিন্ট করুন। কাজের আর্গুমেন্ট বাদ দেওয়া হয়, বর্তমান কাজটি ব্যবহৃত হয়।

কাজ

এই কমান্ডটি সমস্ত ব্যাকগ্রাউন্ড প্রসেসগুলি দেখায় যা বর্তমান শেল প্রসেসের শিশু।

PWD

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

[- পি প্রম্পট ] পড়ুন [- r ] পরিবর্তনশীল ...

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

ডিফল্টরূপে, যদি না - r বিকল্প নির্দিষ্ট করা হয়, ব্যাকস্ল্যাশ `` \ '' একটি অব্যাহতির চরিত্র হিসাবে কাজ করে, যার ফলে নিম্নলিখিত অক্ষরটি আক্ষরিকভাবে চিকিত্সা করা হয়। যদি একটি ব্যাকস্ল্যাশ একটি নতুন লাইন অনুসরণ করা হয়, ব্যাকস্ল্যাশ এবং নতুন লাইন মুছে ফেলা হবে।

পাঠ্যবই নাম ...

পাঠ্যবই-পি

নির্দিষ্ট নামগুলি শুধুমাত্র পঠন হিসাবে চিহ্নিত করা হয়েছে, যাতে তারা পরবর্তীতে সংশোধন বা সেট না করতে পারে। শেলটি একটি ভেরিয়েবলের মানটিকে একই সময়ে সেট করার জন্য অনুমতি দেয় যা এটি কেবলমাত্র লেখা দ্বারা চিহ্নিত করা হয়

পাঠ্যবই নাম = মান

কোনও আর্গুমেন্টের সাথে পাঠ্যক্রমের কমান্ডগুলি কেবল সমস্ত ভেরিয়েবলের নামগুলি তালিকাভুক্ত করে। - p বিকল্পটি উল্লেখ করে অ-ইন্টারেক্টিভ ব্যবহারের জন্য আউটপুটটি উপযুক্তরূপে বিন্যস্ত করা হবে।

সেট [{- বিকল্প | + বিকল্প | - আর্গা ... ]

সেট কমান্ড তিনটি ভিন্ন ফাংশন সম্পাদন করে।

কোন আর্গুমেন্ট ছাড়াই, এটি সমস্ত শেল ভেরিয়েবলগুলির মানগুলির তালিকা করে।

অপশন দেওয়া হলে, এটি নির্দিষ্ট বিকল্প পতাকা সেট করে, বা Sx আর্গুমেন্ট তালিকা প্রসেসিং নামক বিভাগে বর্ণিত হিসাবে তাদের সাফ করে।

সেট কমান্ডের তৃতীয় ব্যবহার হল শেলের অবস্থানগত প্যারামিটারের মান নির্দিষ্ট অ্যারেগুলিতে সেট করা। কোনো বিকল্প পরিবর্তন না করে অবস্থানের প্যারামিটার পরিবর্তন করতে, সেটিকে প্রথম যুক্তি হিসেবে `` - '' ব্যবহার করুন। যদি কোনো আর্গুমেন্ট উপস্থিত না থাকে, তাহলে সেট কমান্ডটি সমস্ত পজিশনিং প্যারামিটার (`` # $ shift # '' চালানোর সমতুল্য হবে।)

পরিবর্তনশীল মান

পরিবর্তনশীল মান বরাদ্দ (সাধারনত এটি setvar setvar ব্যবহার করার পরিবর্তে variable = value লিখতে ভাল হয় যা ফাংশনে ব্যবহার করা হয় যার ভেরিয়েবলের মানগুলি নির্ধারণ করা হয় যার নামগুলি পরামিতি হিসাবে প্রেরিত হয়।)

স্থানান্তর [ n ]

অবস্থানগত প্যারামিটার এন বার Shift করুন। একটি স্থানান্তর $ 1 এর মান $ 2 এর মান $ 2 এর মান $ 3 এর মান এবং সেট করে $ 1 এর মান হ্রাস করে। যদি অবস্থানগত প্যারামিটারের সংখ্যা থেকে n বেশি হয়, তাহলে Shift একটি ত্রুটির বার্তা প্রদান করবে, এবং ফিরে অবস্থা 2 এর সাথে প্রস্থান করবে।

বার

শেল এবং শেল থেকে চালানো প্রসেসগুলির জন্য সঞ্চিত ব্যবহারকারী এবং সিস্টেম বার মুদ্রণ করুন। প্রত্যাবর্তন অবস্থা 0

ফাঁদ কার্যক্রম সংকেত ...

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

টাইপ করুন [ নাম ... ]

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

ulimit [- এইচ-এস ] [- a -tfdscmlpn [ মান ]]

প্রসেসগুলির হার্ড বা নরম সীমাগুলি সম্পর্কে জিজ্ঞাসা করুন বা সেট করুন বা নতুন সীমা সেট করুন। হার্ড সীমা মধ্যে পছন্দ (যা কোন প্রক্রিয়া লঙ্ঘন করার অনুমতি দেওয়া হয়, এবং এটি হ্রাস করা হয় একবার উত্থাপিত হতে পারে না) এবং নরম সীমা (যা প্রক্রিয়াগুলি সিগন্যাল করা কিন্তু অগত্যা হত্যা করা হয় না, এবং যা উত্থাপিত হতে পারে) এই পতাকাগুলি:

-H

হার্ড সীমা সম্পর্কে সেট বা অনুসন্ধান

-S

সেট বা নরম সীমার সম্পর্কে জিজ্ঞাসা যদি না - এইচ এবং - এস নির্দিষ্ট করা হয়, নরম সীমার প্রদর্শিত হয় বা উভয় সীমা নির্ধারণ করা হয়। উভয় নির্দিষ্ট করা হয়, শেষ এক জয়লাভ।

জিজ্ঞাসা করা বা সেট করা সীমা, তারপর, এই পতাকা কোন একটি নির্দিষ্ট দ্বারা নির্বাচিত হয়:

-a

সব বর্তমান সীমা দেখান

-t

সিপিইউ সময় সীমা প্রদর্শন করুন বা সেট করুন (সেকেন্ডে)

-f

তৈরি করা যেতে পারে এমন সর্বাধিক ফাইলের সীমা প্রদর্শন বা সেট করুন (512-বাইট ব্লকগুলিতে)

-d

একটি প্রক্রিয়নের ডাটা সেগমেন্টের আকার (কিলোবাইটে) প্রদর্শন বা সীমা নির্ধারণ করুন

-s

প্রসেসের স্ট্যাক সাইজ (কিলোবাইটে) প্রদর্শন বা সীমা নির্ধারণ করুন

-c

প্রদর্শন বা বৃহত্তম কোর ডাম্প আকারের সীমা নির্ধারণ করতে পারে (512 বাইট ব্লকগুলিতে)

-m

মোট শারীরিক মেমরির সীমা দেখান বা সেট করুন যা একটি প্রক্রিয়ায় (কিলোবাইটে) ব্যবহার করা যেতে পারে

-l

একটি লক (2) ( কিলোবাইট মধ্যে) সঙ্গে লক করতে পারেন কিভাবে একটি মেমরি একটি সীমা প্রদর্শন বা সেট করুন

-p

এই ব্যবহারকারীর এক সময়ে প্রসেসের সংখ্যার সীমা দেখান বা সেট করতে পারেন

-n

সংখ্যার ফাইলের সীমা দেখান বা সেট করুন যা একসাথে একবার খোলা থাকতে পারে

যদি এইগুলির কোনোটি নির্দিষ্ট করা না থাকে, এটি ফাইল আকারের সীমা যা দেখানো বা সেট করা আছে। মান নির্দিষ্ট করা হলে, সীমা যে নম্বর সেট করা হয়; অন্যথায় বর্তমান সীমা প্রদর্শিত হয়।

একটি নির্বিচারে প্রক্রিয়াের সীমা প্রদর্শিত বা sysctl (8) ইউটিলিটি ব্যবহার করে সেট করা যায়।

umask [ মাস্ক ]

নির্দিষ্ট অকট্যাল মানে umask এর মান নির্ধারণ করুন (umask (2) দেখুন)। আর্গুমেন্ট বাদ দেওয়া হলে, উমাস মান মুদ্রিত হয়।

unalias [- একটি ] [ নাম ]

যদি নামটি নির্দিষ্ট করা হয়, তবে শেলটি উহার নাম মুছে ফেলে। যদি - একটি নির্দিষ্ট করা হয়, সমস্ত উপনাম সরিয়ে ফেলা হয়।

নামটি আনসেট করুন ...

নির্দিষ্ট ভেরিয়েবল এবং ফাংশনগুলি সেট করা এবং অসমর্থিত। একটি প্রদত্ত নাম একটি পরিবর্তনশীল এবং একটি ফাংশন উভয় অনুরূপ, পরিবর্তনশীল এবং উভয় ফাংশন অনির্দিষ্ট হয়।

অপেক্ষা [ কাজ ]

নির্দিষ্ট কাজের জন্য অপেক্ষা করুন এবং কাজ শেষ প্রক্রিয়ায় প্রস্থান অবস্থা ফিরে। আর্গুমেন্ট বাদ দেওয়া হলে, সব কাজ সম্পূর্ণ করার জন্য অপেক্ষা করুন এবং শূন্যের একটি প্রস্থান স্থিতিটি পুনরুদ্ধার করুন।

কমান্ড লাইন সম্পাদনা

যখন টার্মিনেটর থেকে ইন্টারঅ্যাকটিভভাবে ব্যবহার করা হচ্ছে, বর্তমান কমান্ড এবং কমান্ডের ইতিহাস (সিক্স বিন্যাসে FC দেখুন) vi-mode কমান্ড-লাইন সম্পাদনা ব্যবহার করে সম্পাদনা করা যায়। এই মোড Vi ম্যান পৃষ্ঠায় বর্ণিত একটি উপসেটের মত নিম্নরূপ বর্ণিত কমান্ডগুলি ব্যবহার করে। কমান্ড `সেট '-o vi vi- মোড সম্পাদন সক্ষম করে এবং vi সন্নিবেশ মোডে শাট স্থাপন করে। Vi-mode সক্রিয় করে, sh সন্নিবেশ মোড এবং কমান্ড মোডের মধ্যে পরিবর্তন করা যায়। এডিটরটি এখানে সম্পূর্ণ বর্ণিত নয়, কিন্তু পরবর্তী নথিতে হবে। এটি vi এর অনুরূপ: টাইপ টাইপ ESC আপনাকে কমান্ড VI কমান্ড মোডে ঢুকিয়ে দেবে। কমান্ড মোডে হুড়কা আইকনটি শিলের সাথে লাইনটি পাস করবে।

গুরুত্বপূর্ণ: আপনার কমান্ডটি নির্দিষ্ট কম্পিউটারে কিভাবে ব্যবহার করা হয় তা দেখতে ম্যান কমান্ড ( % man ) ব্যবহার করুন।