এই টিউটোরিয়ালে আপনি শিখবেন লিনাক্সে which কমান্ড কীভাবে ব্যবহার করতে হয় কিছু সহজ উদাহরণসহ।
which কমান্ডটি আপনাকে বলবে সিস্টেমে একটি কমান্ড দ্বারা ব্যবহৃত এক্সিকিউটেবলের পাথ যদি সেটি বিদ্যমান থাকে।
এটি কেন উপযোগী? ধরুন আপনার সিস্টেমে MySQL এক্সিকিউটেবলের দুটি কপি ইনস্টল করা আছে (বিভিন্ন পদ্ধতিতে ইনস্টল করা), এবং আপনি জানতে চান কেটি আসলে ব্যবহার হচ্ছে যাতে অন্যটি রিমুভ করা যায় – which কমান্ড আপনাকে বলতে পারে কমান্ড লাইনে MySQL এক্সিকিউট করলে দুটির মধ্যে কোনটি কল হচ্ছে।
Linux which কমান্ড সিনট্যাক্স
which কমান্ডের কমান্ড নিচে:
which OPTIONS COMMAND
মনে রাখবেন:
- OPTIONS নিচের টেবিল থেকে which কমান্ডের ডিফল্ট আচরণ পরিবর্তন করতে ব্যবহৃত একটি অপশনাল অপশন তালিকা
- COMMAND হলো সেই কমান্ডের নাম যের এক্সিকিউটেবলের পাথ আপনি জানতে চান
- COMMAND অবশ্যই সরবরাহ করতে হবে, নাহলে which-কে খুঁজতে কিছুই থাকবে না!
কমান্ড অপশন
which কমান্ডে পাস করা যেতে পারে সবচেয়ে সাধারণ অপশনগুলো নিচে:
| অপশন | বর্ণনা |
|---|---|
| –all, -a | PATH-এ সব ম্যাচিং এক্সিকিউটেবল প্রিন্ট করুন, শুধু প্রথমটি নয়। |
| –read-alias, -i | stdin থেকে এলিয়াস পড়ুন, ম্যাচিংগুলো stdout-এ রিপোর্ট করুন। এটি which-এর জন্য এলিয়াস ব্যবহার করে কম্বিনেশনে উপযোগী। |
| –skip-alias | অপশন –read-alias' উপেক্ষা করুন, যদি থাকে। এটি নরমাল বাইনরি সার্চ করার জন্য উপযোগী, যখন which-এর জন্য এলিয়াস বা ফাংশনে –read-alias' অপশন ব্যবহার করা হয়। |
| –read-functions | stdin থেকে শেল ফাংশন ডেফিনিশন পড়ুন, ম্যাচিংগুলো stdout-এ রিপোর্ট করুন। এটি which-এর জন্য শেল ফাংশন ব্যবহার করে কম্বিনেশনে উপযোগী। |
| –skip-functions | অপশন –read-functions' উপেক্ষা করুন, যদি থাকে। এটি নরমাল বাইনরি সার্চ করার জন্য উপযোগী, যখন which-এর জন্য এলিয়াস বা ফাংশনে –read-functions' অপশন ব্যবহার করা হয়। |
সদা সেরকম, which কমান্ডের ফুল ইউজার ম্যানুয়াল রান করে দেখা যাবে:
man which
which কমান্ড উদাহরণ
নিচে, আমরা nano টার্মিনাল থেকে রান করলে কল হচ্ছে এক্সিকিউটেবলের পাথ খুঁজছি:
which nano
যদি আপনার সিস্টেমে nano টেক্সট এডিটর ইনস্টল থাকে তবে এটি নিচের মত কিছু রিটার্ন করবে:
/usr/bin/nano
যদি nano নয় ইনস্টল করা থাকে, তবে আপনি দেখবেন:
nano not found
এটি which কমান্ডকে এক্সিকিউটেবল কোথায় লোকেটেড সেটি চেক করার পাশাপাশি কোনো প্যাকেজ ইনস্টল/উপলব্ধ আছে কিনা সেটি চেক করার জন্যও উপযোগী করে তোলে।
একাধিক এক্সিকিউটেবল নাম সরবরাহ করা যাবে আপনি একবারে একাধিক কমান্ড লুকআপ করতে চাইলে:
which cat less
যেটি রিটার্ন করবে:
/bin/cat /usr/bin/less
রিটার্ন কোড
আপনি যদি শেল স্ক্রিপ্টে which ব্যবহার করেন, তবে কমান্ড দ্বারা রিটার্ন করা স্ট্যাটাস কোড ব্যবহার করে নির্ধারণ করতে পারেন কোনো এক্সিকিউটেবল পাথ পাওয়া গেলো কিনা:
| কোড | অর্থ |
|---|---|
| 0 | সকল নির্দিষ্ট কমান্ড পাওয়া গেলো এবং এক্সিকিউটেবল। |
| 1 | এক বা একাধিক নির্দিষ্ট কমান্ড পাওয়া যেনি বা এক্সিকিউটেবল নয়। |
| 2 | অবৈধ অপশন বা সিনট্যাক্স ব্যবহার করা হয়েছে। |
এটি খুব উপযোগী যদি আপনি আপনার শেল স্ক্রিপ্টগুলো আরও পোর্টেবল করতে চান – আপনি which কমান্ড ব্যবহার করে চেক করতে পারেন একটি কমান্ড উপলব্ধ কিনা সেটি এক্সিকিউট করার আগে আপনার স্ক্রিপ্টে, যাতে এন্ড-ইউজারকে কোনো এরর না দেখাতে হয় যদি তাদের সিস্টেমে প্রয়োজনীয় সফ্টওয়্যার ইনস্টল না থাকে।