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

এছাড়াও পড়ুন:৷ ফাইলে টেক্সট ফিল্টার করতে কিভাবে Awk এবং রেগুলার এক্সপ্রেশন ব্যবহার করবেন
এই নিবন্ধটির লক্ষ্য প্রায়শই ব্যবহৃত কমান্ড-চেইনিং অপারেটরদের উপর আলোকপাত করা , সংক্ষিপ্ত বিবরণ এবং অনুরূপ উদাহরণ সহ যা অবশ্যই আপনার উত্পাদনশীলতা বৃদ্ধি করবে এবং আপনাকে মাঝে মাঝে সিস্টেম লোড কমানোর পাশাপাশি সংক্ষিপ্ত এবং অর্থপূর্ণ কোড লিখতে দেয়৷
1. অ্যাম্পারস্যান্ড অপারেটর (&)
'&-এর কাজ ' কমান্ডটি ব্যাকগ্রাউন্ডে চালানোর জন্য। শুধু একটি সাদা স্থান এবং '& দিয়ে অনুসরণ করা কমান্ডটি টাইপ করুন ' আপনি ব্যাকগ্রাউন্ডে একাধিক কমান্ড এককভাবে চালাতে পারেন।
পটভূমিতে একটি কমান্ড চালান:
admin@wsxdn.com:~$ ping c5 www.tecmint.com &
পটভূমিতে দুটি কমান্ড চালান, একই সাথে:
admin@wsxdn.com:/home/tecmint# apt-get update & apt-get upgrade &
2. সেমি-কোলন অপারেটর (;)
সেমি-কোলন অপারেটর চালানো সম্ভব করে তোলে, এককভাবে একাধিক কমান্ড এবং কমান্ডের সঞ্চালন ক্রমানুসারে ঘটে।
admin@wsxdn.com:/home/tecmint# apt-get update ; apt-get upgrade ; mkdir test
উপরের কমান্ডের সংমিশ্রণটি প্রথমে আপডেট চালাবে নির্দেশ, তারপর আপগ্রেড নির্দেশ এবং অবশেষে একটি 'পরীক্ষা তৈরি করবে ' বর্তমান কাজের ডিরেক্টরির অধীনে ডিরেক্টরি৷
৷3. এবং অপারেটর (&&)
এবং অপারেটর৷ (&& ) শুধুমাত্র দ্বিতীয় কমান্ডটি কার্যকর করবে, যদি প্রথম কমান্ডটি সফল হয় , অর্থাৎ, প্রথম কমান্ডের প্রস্থান অবস্থা হল 0 . শেষ কমান্ডের এক্সিকিউশন স্ট্যাটাস চেক করতে এই কমান্ডটি খুবই কার্যকর।
উদাহরণস্বরূপ, আমি tecmint.com ওয়েবসাইট দেখতে চাই লিঙ্ক কমান্ড ব্যবহার করে, টার্মিনালে কিন্তু তার আগে আমাকে চেক করতে হবে হোস্টটি লাইভ কিনা অথবা না .
admin@wsxdn.com:/home/tecmint# ping -c3 www.tecmint.com && links www.tecmint.com
4. অথবা অপারেটর (||)
বা অপারেটর (|| ) অনেকটা ‘অন্য এর মতো প্রোগ্রামিং এ বিবৃতি। উপরের অপারেটরটি আপনাকে দ্বিতীয় কমান্ড চালানোর অনুমতি দেয় শুধুমাত্র যদি প্রথম কমান্ডের সঞ্চালন ব্যর্থ হয়, যেমন, প্রথম কমান্ডের প্রস্থান অবস্থা হয় '1 '।
উদাহরণস্বরূপ, আমি ‘apt-get update চালাতে চাই ' নন-রুট অ্যাকাউন্ট থেকে এবং যদি প্রথম কমান্ড ব্যর্থ হয়, তাহলে দ্বিতীয় 'লিঙ্ক www.tecmint.com ' কমান্ড কার্যকর হবে৷
admin@wsxdn.com:~$ apt-get update || links tecmint.com
উপরের কমান্ডে, যেহেতু ব্যবহারকারী আপডেট করার অনুমতি দেওয়া হয়নি সিস্টেম, এর মানে হল প্রথম কমান্ডের প্রস্থান অবস্থা হল '1' এবং তাই শেষ কমান্ড 'links tecmint.com ' মৃত্যুদণ্ডপ্রাপ্ত হয়৷
৷যদি প্রথম কমান্ডটি সফলভাবে চালানো হয়, একটি প্রস্থান অবস্থা ‘0 সহ '? স্পষ্টতই! দ্বিতীয় কমান্ড কার্যকর হবে না।
admin@wsxdn.com:~$ mkdir test || links tecmint.com
এখানে, ব্যবহারকারী একটি ফোল্ডার তৈরি করে 'পরীক্ষা ' তার হোম ডিরেক্টরিতে, যার জন্য ব্যবহারকারী অনুমোদিত। কমান্ডটি সফলভাবে একটি এক্সিট স্ট্যাটাস ‘0 দিয়ে কার্যকর করা হয়েছে ' এবং তাই কমান্ডের শেষ অংশটি কার্যকর করা হয় না।
5. অপারেটর নয় (!)
অপারেটর নয়৷ (! ) অনেকটা ‘ব্যতীত এর মতো ' বিবৃতি। এই কমান্ডটি প্রদত্ত শর্ত ব্যতীত সমস্ত কার্যকর করবে। এটি বুঝতে, একটি ডিরেক্টরি তৈরি করুন 'tecmint ' আপনার হোম ডিরেক্টরিতে এবং 'cd এটিতে।
admin@wsxdn.com:~$ mkdir tecmint admin@wsxdn.com:~$ cd tecmint
এরপরে, 'tecmint ফোল্ডারে বিভিন্ন ধরনের ফাইল তৈরি করুন '।
admin@wsxdn.com:~/tecmint$ touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html
দেখুন আমরা 'tecmint ফোল্ডারের মধ্যে সমস্ত নতুন ফাইল তৈরি করেছি '।
admin@wsxdn.com:~/tecmint$ ls a.doc a.html a.pdf a.xml b.doc b.html b.pdf b.xml
এখন 'html ছাড়া সব ফাইল মুছে দিন ' একযোগে সব ফাইল করুন, একটি স্মার্ট উপায়ে৷
৷admin@wsxdn.com:~/tecmint$ rm -r !(*.html)
শুধু যাচাই করার জন্য, শেষ মৃত্যুদন্ড। ls কমান্ড ব্যবহার করে উপলব্ধ সমস্ত ফাইলের তালিকা করুন।
admin@wsxdn.com:~/tecmint$ ls a.html b.html
6. এবং – বা অপারেটর (&&– ||)
উপরের অপারেটরটি আসলে ‘AND এর সংমিশ্রণ ' এবং 'বা ' অপারেটর. এটি অনেকটা ‘if-else এর মতো ' বিবৃতি৷
৷উদাহরণস্বরূপ, আসুন tecmint.com-এ পিং করি , যদি সাফল্য প্রতিধ্বনিত হয় ‘যাচাই করা ' else echo 'হোস্ট ডাউন '।
admin@wsxdn.com:~/tecmint$ ping -c3 www.tecmint.com && echo "Verified" || echo "Host Down"
নমুনা আউটপুট
PING www.tecmint.com (212.71.234.61) 56(84) bytes of data. 64 bytes from www.tecmint.com (212.71.234.61): icmp_req=1 ttl=55 time=216 ms 64 bytes from www.tecmint.com (212.71.234.61): icmp_req=2 ttl=55 time=224 ms 64 bytes from www.tecmint.com (212.71.234.61): icmp_req=3 ttl=55 time=226 ms --- www.tecmint.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 216.960/222.789/226.423/4.199 ms Verified
এখন, আপনার ইন্টারনেট সংযোগ বিচ্ছিন্ন করুন, এবং একই কমান্ড আবার চেষ্টা করুন।
admin@wsxdn.com:~/tecmint$ ping -c3 www.tecmint.com && echo "Verified" || echo "Host Down"
নমুনা আউটপুট
ping: unknown host www.tecmint.com Host Down
7. পাইপ অপারেটর (|)
এই PIPE অপারেটর খুবই উপযোগী যেখানে প্রথম কমান্ডের আউটপুট দ্বিতীয় কমান্ডের ইনপুট হিসেবে কাজ করে। উদাহরণস্বরূপ, ‘ls -l এর আউটপুট পাইপলাইন করুন ' থেকে 'কম ' এবং কমান্ডের আউটপুট দেখুন।
admin@wsxdn.com:~$ ls -l | less
8. কমান্ড কম্বিনেশন অপারেটর {}
দুই বা ততোধিক কমান্ডকে একত্রিত করুন, দ্বিতীয় কমান্ডটি প্রথম কমান্ডের বাস্তবায়নের উপর নির্ভর করে।
উদাহরণস্বরূপ, একটি ডিরেক্টরি ‘bin কিনা তা পরীক্ষা করুন ' উপলব্ধ বা না, এবং আউটপুট সংশ্লিষ্ট আউটপুট।
admin@wsxdn.com:~$ [ -d bin ] || { echo Directory does not exist, creating directory now.; mkdir bin; } && echo Directory exists.
9. অগ্রাধিকার অপারেটর ()
অপারেটর অগ্রাধিকার ক্রমে কমান্ড চালানো সম্ভব করে তোলে।
Command_x1 &&Command_x2 || Command_x3 && Command_x4.
উপরের ছদ্ম কমান্ডে, যদি Command_x1 হয় ব্যর্থ হয়? Command_x2 এর কোনোটিই নয় , Command_x3 , Command_x4 কার্যকর করা হবে, এর জন্য আমরা প্রিসিডেন্স অপারেটর ব্যবহার করি , যেমন:
(Command_x1 &&Command_x2) || (Command_x3 && Command_x4)
উপরের সিউডো কমান্ডে, যদি Command_x1 ব্যর্থ হয়, Command_x2 এছাড়াও ব্যর্থ হয় কিন্তু তবুও Command_x3 এবং Command_x4 এক্সিকিউট নির্ভর করে Command_x3-এর প্রস্থান অবস্থার উপর .
10. কনক্যাটেনেশন অপারেটর (\)
কনকেটেনেশন অপারেটর (\ ) নামটি যেমন উল্লেখ করে, শেলের কয়েকটি লাইনে বড় কমান্ডগুলিকে সংযুক্ত করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, নিচের কমান্ডটি test(1).txt টেক্সট ফাইল খুলবে .
admin@wsxdn.com:~/Downloads$ nano test\(1\).txt
এখন এ পর্যন্তই. আমি খুব শীঘ্রই আরেকটি আকর্ষণীয় নিবন্ধ নিয়ে আসছি। সে পর্যন্ত সাথে থাকুন, সুস্থ থাকুন এবং Tecmint-এর সাথে সংযুক্ত থাকুন . আমাদের মন্তব্য বিভাগে আপনার মূল্যবান মতামত দিতে ভুলবেন না।