আমার সাথে

Personal Blog of Zonayed
কম্পিউটার সাইন্স বাংলা ব্লগ সফট স্কিল

কমান্ড লাইন ব্যাসিকঃ কমান্ড লাইন কি? 

মার্চ 26, 2018

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

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

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

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

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

২। cmder: এটা অনেক লাইটওয়েট এবং আমি পার্সোনালি ইউজ করি। এটা একই সাথে সেটাপ ভার্শন এবং পোর্টেবল ভার্শন দুইটাই পাবেন ওদের ওয়েবসাইটে। নরমালি সেটাপ করেও চালু করতে পারবেন।

৩। Babun: এটাও আরেকটা কমান্ড লাইন। ওদের অফিশিয়াল ওয়েবসাইট থেকে ডাউনলোড করতে পারবেন। আর এটার ইন্টারফেস অনেকটা উইন্ডোজের ডিফল্ট কমান্ড লাইনের ইন্টারফেসের মতো।

এখন আপনি যদি লিনাক্স অপারেটিং সিস্টেম বা ম্যাক চালান তাহলে এদের সাথে বাই ডিফল্ট কমান্ড লাইন যেটা আছে ঐটাই পার্ফেক্টলি ইউজ করতে পারবেন। তাই কোনো ঝামেলা নেই।

কমান্ড সিনটেক্সঃ

কমান্ড লাইনের নিজস্ব ল্যাংগুয়েজ আছে। আমি আজকে কোনো কমান্ড নিয়ে আলোচনা করবো না কিন্তু কমান্ড লাইনের গ্রামার নিয়ে আলোচনা করবো। কমান্ড লাইনের গ্রামার আবার কি? হ্যা, অবশ্যই সব ল্যাংগুয়েজের গ্রামার আছে। গ্রামার হলো অনেকগুলো রুলস যেগুলো মেনে চলতে হবে। ঠিক তেমনি কমান্ড লাইনেরও গ্রামার আছে এবং সেগুলা মেনে, মেইন্টেইন করে চলতে হবে।

ls -a ~/Desktop

এখানে স্পেস দিয়ে দিয়ে তিনটা পার্ট আছে এই কমান্ডের। এটা থেকে আমরা কমান্ডকে তিনভাগে ভাগ করতে পারিঃ

১। কমান্ড

২। ফ্ল্যাগ

৩। আর্গুমেন্ট

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

১। কমান্ডঃ এটাই মেইন কমান্ড এর পার্ট বা নিজেই কমান্ড। আপনি আসলে কি চাচ্ছেন। ফাইল লিস্ট করতে চাচ্ছেন নাকি ফাইল মুভ করতে চাচ্ছেন না কি করতে চাচ্ছেন সেটা বলার জন্য কমান্ড ইউজ করা হয়। এবং এটার অবস্থান শুরুতে থাকবে। এখানে উদাহরনে ls কমান্ড। এর মানে হচ্ছেআমরা কিছু একটা লিস্ট করতে চাচ্ছি

২। ফ্ল্যাগঃ আপনি এখন যে কাজটা করার জন্য কমান্ড দিয়েছেন সেটা কিভাবে করতে চান, বা সেটাতে ডিফল্ট অপশনগুলোই রাখতে চান না একটু মডিফাই করতে চান সেক্ষেত্রে ফ্ল্যাগ ব্যবহৃত হয়। ফ্ল্যাগ সাধারণত দুই ধরনের হয়। -a ফ্ল্যাগের শর্টকাট ভার্শন হলে, আর মেইন ফ্ল্যাগ--all এভাবে লিখা হয় সাধারণত। এখানে উদাহরণে -a হচ্ছে ফ্ল্যাগ। এই ফ্ল্যাগ ইউজ করে আমরা লিস্ট কমান্ডকে মডিফাই করতেছি। আমরা লিস্ট চাচ্ছি, কিন্তু লিস্টটা আরো স্পেসেফিকভাবে ডট ফাইল সহ চাচ্ছি। আপাতত যদি এগুলো না বুঝেন তাতেও সমস্যা নেই। জাস্ট মাথায় রাখেন ফ্ল্যাগ এর আইডিয়া টা

৩। আর্গুমেন্টঃ আর সর্বশেষে আমরা পাথ আর্গুমেন্ট হিসেবে বলেছি। এখন আমরা লিস্ট কমান্ড দিয়ে লিস্ট করবো, অল ফ্ল্যাগ দিয়ে সব লিস্ট করবো এবং সবশেষে আমরা এই পাথের বা ডিরেক্টরির আর্গুমেন্ট দিয়ে বলতে চাচ্ছি আমরা অমুক ডিরেক্টরি থেকে চাচ্ছি। উদাহরণে ~/Desktop হচ্ছে আর্গুমেন্ট

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

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


আমার নতুন ব্লগ পোস্ট গুলোর আপডেট পেতে আপনি আপনার ইমেইল দিয়ে আমার ব্লগ পোস্টগুলো সাবস্ক্রাইব করে রাখতে পারেন, নতুন পোস্টগুলো সপ্তাহে একদিন আপনার ইনবক্সে চলে যাবে

Comments

comments