লিনাক্স ব্যবহারকারী হিসেবে, আমরা প্রথম بار টার্মিনাল খোলার সাথে সাথে সিস্টেমে সবচেয়ে কার্যকর, শক্তিশালী এবং নমনียে উপায়ে কাজ শুরু করার একটি বিশেষ মুহূর্ত অনুভব করি। যাহোক, টার্মিনালে প্রথম قدم রাখা সম্ভাব্যভাবে ভয়ঙ্কর হতে পারে, কারণ সেখানে আপনাকে শুধু একটি ব্লিংকিং কার্সর এবং অনন্ত সম্ভাবনার জগত দেখাবে। সেইসঙ্গে সাহায্য করার জন্য, আমরা আপনাকে কিছু Bash টিপস এবং ট্রিকস দেখাচ্ছি যাতে আপনি টার্মিনালে কঠোর পরিশ্রম না করেই বুদ্ধিমানের মতো কাজ করতে পারেন।
Apropos দিয়ে কমান্ড খোঁজা
Apropos (অ্যাপ-রো-পো) একটি কমান্ড যা আপনাকে man বা ম্যানুয়াল এন্ট্রির বিবরণের ভিত্তিতে কমান্ড খুঁজে বের করতে দেয়। আপনি যদি কোনো কমান্ডের man পেজ খুঁজে পান, তবে সেটি কিছু এইরকম দেখাবে:
শীর্ষে যে "NAME" সেকশনটি আছে, আমি সেটি নিয়ে কথা বলছি। যদি আমি apropos দিয়ে ping কমান্ড খুঁজতে চাই, তবে আমি টার্মিনালে apropos icmp টাইপ করব এবং এন্টার চাপব। মনে রাখবেন এটি কেস-সেনসিটিভ নয়। এটি "ICMP" শব্দটির সাথে যেসব NAME এন্ট্রি আছে সেগুলো নিয়ে আসবে।
apropos-র আরেকটি চমৎকার ব্যবহার হলো নयेা টুল এক্সপ্লোর করা, যেমন selinux। apropos selinux কমান্ড ইস্যু করলে আপনাকে SELinux-এর সাথে ইন্টারঅ্যাক্ট করার জন্য যেসব কমান্ড ব্যবহার করা যায় সেসবের একটি তালিকা দেবে, যা আপনাকে দক্ষতার সাথে এনফোর্সমেন্ট শুরু করতে সাহায্য করবে।
পূর্বের কমান্ডে সাবস্টিটিউশন
টার্মিনালে আমার অনেক সময় বাঁচিয়েছে পূর্বের কমান্ডে কিছু সাবস্টিটিউট করার পদ্ধতি জানা। যদি আমি কিছু ভুল বানান করি বা পূর্বের কমান্ডে কোনো অপশন সাবস্টিটিউট করতে চাই, তবে আমি ^ কী ব্যবহার করে ভুল শব্দটি টানতে পারি, তারপর আবার ^ দিয়ে আমার চাওয়া শব্দ বা অপশন বসাতে পারি।
একটি উদাহরণ দেখা যাক। ধরা যাক আমি "maketecheasier.com" পিং করতে চাই যাতে আমার সম্পূর্ণ ইন্টারনেট কনেক্টিভিটি (DNS সহ) নিশ্চিত হয়। কিন্তু যদি আমি কিছু ভুল বানান করি, তবে এরর দেখাবে। তাই যদি আমি ভুলে "maktecheaser.com" পিং করি (এখানে "i" অনুপস্থিত), তবে সমস্যা হবে।
ভুল অপশনটি সাবস্টিটিউট করতে আমি টাইপ করতে পারি ^maktecheaser.com^maketecheasier.com, এবং কমান্ডটি প্রত্যাশা অনুযায়ী চলবে। এটি একটি সহজ উদাহরণ, কিন্তু ধরুন আপনি অনেক অপশনসহ একটি লম্বা কমান্ড চালিয়েছেন বা আপনার কমান্ডের আউটপুট বা এরর মিসডিরেক্ট করেছেন। একটি জটিল কমান্ডে > কে >> দ্বারা সাবস্টিটিউট করতে পারা জীবনরক্ষক।
আরেকটি উদাহরণ systemd এবং systemctl কমান্ডের সাথে। আমি প্রায়ই একাধিক ভিন্ন systemctl সাবকমান্ড ইস্যু করি, যেমন start, stop, enable, বা disable a service। আমি সাবস্টিটিউট করতে পারি ^start^enable, যা আমার সময় বাঁচাবে।
!!
এটি একটি খুবই উপকারী ট্রিক যা একটি নির্দিষ্ট পরিস্থিতিতে কাজ করে, যা আমার সাথে প্রায়ই ঘটে। !! (ব্যাং-ব্যাং) পুরো পূর্বের কমান্ড টানે নেবে। এটা ব্যবহারী লাগতে পারে না, কিন্তু যদি আপনি চিন্তা করেন যে আপনি কতবার সুপার ইউজার সুবিধায় চালানোর মতো কমান্ড টাইপ করেছেন, তবে আপনি বুঝতে পারবেন এটি কোথায় উপকারী।
একটি চমৎকার উদাহরণ হলো ইনস্টল স্ক্রিপ্ট। ধরা যাক আপনি "./SCRIPT-NAME.sh" দিয়ে একটি ইনস্টল স্ক্রিপ্ট চালান, এবং এটি বলে সেটি সুপার ইউজার প্রিভিলেজ দিয়ে চালাতে হবে। শুধু sudo !! টাইপ করুন, পাসওয়ার্ড দিন, এবং আপনি চল পड़े। এটি অনেক সময় বাঁচায়, এবং একবার এটি আপনার মাংসপেশী স্মৃতিতে বসে গেলে, আপনি এটি ভুল পদ্ধতির চেয়ে দ্রুত করতে পারবেন।
পূর্বের কমান্ড থেকে আর্গুমেন্ট পাস করা
!$ ব্যবহার করে, আমরা একটি কমান্ডের শেষ আর্গুমেন্ট বর্তমান কমান্ডে পাস করতে পারি, এবং কিছু ছোট পরিবর্তন করে, আমরা যেকোনো আর্গুমেন্ট বর্তমান কমান্ডে পাস করতে পারি।
কয়েকটি উদাহরণ দেখা যাক। যদি আমি একটি স্ক্রিপ্ট এডিট করি, তবে আমি nano samplescript.sh কমান্ড ব্যবহার করতে পারি। একবার স্ক্রিপ্টটি শেষ হলে, আমি সেটি এক্সিকিউটেবল করতে চাই, তাই অক্টাল পারমিশন 755 এ পরিবর্তন করতে পারি। সেজন্য আমি chmod 755 !$ কমান্ড ব্যবহার করতে পারি। তারপর আবার স্ক্রিপ্টের নাম পেতে, আমি ./!:2 ব্যবহার করে দ্বিতীয় আর্গুমেন্ট টানতে পারি।
আরও কিছু উদাহরণ:
!^ - প্রথম আর্গুমেন্ট !* - সকল আর্গুমেন্ট !:2-$ - দ্বিতীয় থেকে শেষ আর্গুমেন্ট !:2-4 - দ্বিতীয় থেকে চতুর্থ আর্গুমেন্ট
আপনি আপনার প্রয়োজন অনুযায়ী নম্বর বদলিয়ে যেকোনো আর্গুমেন্ট টানতে পারেন। Bash এই পদ্ধতিতে ঘন ঘন ১০০টি আর্গুমেন্ট সংরক্ষণ রাখে, এবং আপনি সহজে কিছু মেনিয়াল কাজ দ্রুত করতে পারেন।
আশা করি টার্মিনালে বুদ্ধিমানের মতো কাজ করার জন্য এই Bash টিপস এবং ট্রিকস আপনার ভালো লেগেছে। আপনাকে Bash ভ্যারিয়েবল এবং স্পেশাল ক্যারেক্টার সম্পর্কেও জানা উচিত।