সহজ উবুন্টু শিক্ষাঃ টার্মিনাল নিয়ে টানাটানি

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

কি এই টার্মিনাল?

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

কোথায় থাকে এই টার্মিনাল?

উবুন্টুতে টার্মিনাল খুলতে হলে Applications -> Accessories -> Terminal এ ক্লিক করুন।

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

name@name-desktop:~$

এই খানে @ এর আগের অংশ হল আপনার ইউজার নেম আর এর পরের অংশ হল আপনার পিসির নাম। $ সাইন দিয়ে বোঝা যায় যে টার্মিনাল আপনার কমান্ড নেবার জন্য প্রস্তুত।

কেন এই টার্মিনাল?

উবুন্টুতে তো মাউস দিয়েই প্রয়োজনীয় সব কাজ করা সম্ভব, তাহলে ভাই টার্মিনালের মত পুরান জিনিস (যেটা এমএস ডসের পর আর কারো ধরার দরকার হয়নাই) নিয়ে টানাটানি শুরু করলেন কেন? প্রশ্নটা আগে ও করেছিলেন! এইবার জবাব দিচ্ছি। এককথায় বললে বলতে হয় “উবুন্টুর আসল সৌন্দর্য বুঝতে টারমিনালের বিকল্প নাই”।

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

sudo apt-get install vlc

আপনার পাসওয়ার্ড দিতে বলবে।

[sudo] password for (your name):

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

টার্মিনালের আরো সুবিধা পাওয়া যায় যখন আপনি কোন ফোরামে সাহায্য চেয়ে পোস্ট দেবেন তখন। কেউ যদি বলে যে ঐ কাজটা করার জন্য অমুক অমুক জায়গায় ক্লিক করেন, তারপর এইটা ক্লিক করেন, আবার অমুক অমুক জায়গায় গিয়ে ক্লিক করেন এরপর এইটা এইটা করেন, ইত্যাদি। জিনিসটা অনেক সহজ হয়ে যায় যখন কেউ দুই তিনটা কোড দিয়ে বলে যে এই কোডগুলো টার্মিনালে রান করে দেখুন তো। ঐ কোডগুলো পেস্ট করলেই হল, আপনার কাজ শেষ। কত সহজেই ঝামেলা শেষ!

SUDO কি বস্তু?

sudo হল “SUper-user Do“। সাধারনত যেসব কোড গুরুত্বপূর্ন (যেমন কোন কিছু ইন্সটল বা রিমুভ করা), যেগুলোতে সিস্টেম মডিফিকেশনের ব্যাপারগুলো চলে আসে সেসব ক্ষেত্রে sudo ব্যবহার করতে হয়। সিস্টেম মডিফিকেশনের মত জটিল কাজগুলো সাধারন ব্যবহারকারিদের করার কোন অনুমতি দেয়া থাকেনা। ফলে যে কেউ ইচ্ছা করলেই কোন কিছু পাল্টাতে পারেনা। এই মডিফিকেশনগুলো করার জন্য একজনই কেবল অনুমতি পেয়ে থাকে, সে ই হল সুপার ইউজার। যার কাছে সুপার ইউজারের পাসওয়ার্ড থাকবে সে এইসব মডিফিকেশন করতে পারবে। তাই গুরুত্বপূর্ন কাজগুলো করার জন্য sudo ব্যবহার করতে হয়।

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

কমান্ড কিভাবে চালায়?

সত্যি বলতে কি যেহেতু উবুন্টুতে বেশ শক্তিশালী একটা গ্রাফিক্যাল ইন্টারফেস আছে তাই সাধারন ব্যবহারকারি হিসেবে কমান্ড কিভাবে কাজ করে সেটা সেভাবে না জানলেও চলে। শুধু কয়েকটা কমন কমান্ড জানলেই চলে। তবে কমান্ডগুলোর মধ্যে সেই অর্থে কোন কমন প্যাটার্ন নেই। অর্থাৎ কমান্ডগুলো তেমন কোন ফর্মুলা মেনে চলেনা। কোন কিছু ইন্সটল করার কমান্ড আর কোন কিছু এক জায়গা থেকে আরেক জায়গায় কপি করার কমান্ড সম্পূর্ণ ভিন্ন ধরনের। তাই নির্দিষ্ট কয়েকটা ফর্মুলা জানলেই যে কমান্ড লাইনের কোড লিখতে পারা যাবে এমন কোন নিয়ম নেই। তবে ব্যবহার করতে করতে নির্দিষ্ট কিছু কমন কমান্ড এমনিতেই মাথায় আটকে যায়। তাই এটা নিয়ে ঘাবড়ানোর কিছু নেই। আর যেহেতু এটা উবুন্টু তাই সাধারন কাজে ব্যবহারের জন্য অল্প কয়েকটা কমান্ড ছাড়া আর কোন কমান্ডই তেমন কোন কাজে লাগেনা। তবে হ্যা কিছু কমান্ড থেকে সাবধান থাকতে হয়। এই টাইপের কমান্ড কোথায় পেলে না বুঝে শুনে পেস্ট করা উচিত না। এইসব ‘বিপজ্জনক’ কমান্ড পরবর্তী অংশে বিশদভাবে আলোচনা করা হবে।

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

sudo apt-get update

প্রথমেই টার্মিনাল ওপেন করুন। এরপর উপরের কোডটি কপি করুন। মাউস পয়েন্টার দিয়েও করতে পারেন অথবা Ctrl+c চেপে কিবোর্ড থেকেও করতে পারেন। এবার টার্মিনালে কোডটি পেস্ট করুন। এইক্ষেত্রেও মাউস পায়েন্টার বা Ctrl+Shift+v চেপেও করতে পারেন। পেস্ট করা হয়ে গেলে Enter চাপুন। একটা ফিরতি রেসপন্স পাবেন নিচের মত যেখানে আপনাকে পাসওয়ার্ড দিতে বলা হবে।

[sudo] password for (your name):

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

ব্রুম!! একগাদা লেখা আপনার স্ক্রিনের উপর থেকে নিচে চলে যাচ্ছে তাইনা! তার মানে হচ্ছে সিস্টেম আপডেট করার এই কমান্ডটা কাজ করছে। একটা লাইন লিখে যে কাজটা করলেন ঠিক এই কাজটাই করা যায় System–> Administration–> Update Manager চালিয়ে।

প্রয়োজনীয় বেশ কিছু কোড পাবেন এইখানে

বিপজ্জনক কমান্ড!

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

আগেই বলেছি কিছু কোড আছে বেশ বিপজ্জনক! নিচের কোডটি ঠিক সেরকম। যারা উবুন্টুতে গুরুটাইপের লোক তাদের জন্য এটা খুবই পাওয়ারফুল একটা কমান্ড। কিন্তু কথায় আছেনা “With great power comes great responsibility”। ব্যাপারটা এই কোডের ক্ষেত্রে একেবারে হাড়ে হাড়ে সত্যি। এই কোড প্রয়োগে একটু ভুলের জন্য চরম মূল্য দিতে হতে পারে। তাই যারা নবীন ব্যবহারকারি তাদের প্রতি আমার সাবধান বাণী “ভুলেও কখনো এই কোড টার্মিনালে চালাবেননা”। কোডটা হলঃ

SUDO RM -RF /

আমি আবারও বলছি “ভুলেও কখনো এই কোড টার্মিনালে চালাবেননা, যদি চালান তবে নিজ দায়িত্ব চালাবেন“।

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

কি করে এই কোড? আসুন তাহলে কোডটাকে বিশ্লেষণ করিঃ

SUDO: কোডটিকে সিস্টেমে কাজ করার অনুমতি দেয় (এবং অবশ্যই আপনার অনুমতি সাপেক্ষে)।
RM: এই কোডটি এক বা একাধিক ফাইল রিমুভ (ReMove) করে।
-R: এটি দিয়ে বোঝায় Recursive, এই অপশন যেকোন ফোল্ডারকে সাবফোল্ডারসহ ডিলিট করে দেয়। যদি লেখা হয় RM -R /home/ovroniil তবে ovroniil ফোল্ডারটা তার সব সাবফোল্ডারসহ চিরতরে ডিলিট হয়ে যাবে।
F: এটি দিয়ে বোঝায় Force। এর মানে হচ্ছে সিস্টেম এই কমান্ডকে কাজ করতে যতই বাধা দিক, এই কমান্ড F এর গুনে সর্বময়ক্ষমতার অধিকারী। অর্থ্যাৎ যা কিছুই হোক না কেন এই কমান্ড রান করবেই করবে!
/: এটা হচ্ছে এই কমান্ডের সবচেয়ে ভয়ংকর অংশ। যার মানে হচ্ছে পুরো “রুটকে”ই ডিলিট করে দেয়া।
যদি কোডটা নিচের মত লেখা থাকেঃ

sudo rm -rf /home/ovroniil/downloads

তারমানে হচ্ছে ইউজার অভ্রনীলের হোমে অবস্থিত downloads ফোল্ডারটিকে তার সব ফাইল আর সাবফোল্ডারসহ ডিলিট করে দেয়া হবে। কিন্তু যদি “/home/ovroniil/downloads” জায়াগায় শুধু “/” দেয়া থাকে তারমানে “সবকিছু” (যত ফাইল, ফোল্ডার যা আছে সব) ডিলিট করে দেয়া।

তাই কোথাও এই কোড বা এই ধরনের কোড দেখলে জেনেই হোক বা না জেনেই হোক কখনো টার্মিনালে চালাবেননা। তবে এই কোডের একটা দারুন স্টাইলিশ নাম আছে – “The 10-character code of death” অর্থ্যাৎ “১০ অক্ষরের মরণনাশা কোড“!

শুরুতে আপনার মনে যে একটা প্রশ্ন ছিল কেন খামাখা টার্মিনাল নিয়ে টানাটানি করছি, এর উত্তর কি পেয়েছেন এখন?

** লেখাটি উবুন্টুক্সে পূর্বে প্রকাশিত! **

Advertisements
Comments
5 Responses to “সহজ উবুন্টু শিক্ষাঃ টার্মিনাল নিয়ে টানাটানি”
  1. Safat বলেছেন:

    অনেক ধন্যবাদ

  2. Positive_sylhet বলেছেন:

    Learning Ubuntu. Thanks for your post

Trackbacks
Check out what others are saying...
  1. […] উবুন্টুর মুশকিল আসান ▶ কোনো সাড়া পাওয়া যাচ্ছে না । /* 0) { jQuery('#comments').show('', change_location()); jQuery('#showcomments a .closed').css('display', 'none'); jQuery('#showcomments a .open').css('display', 'inline'); return true; } else { jQuery('#comments').hide(''); jQuery('#showcomments a .closed').css('display', 'inline'); jQuery('#showcomments a .open').css('display', 'none'); return false; } } jQuery('#showcomments a').click(function(){ if(jQuery('#comments').css('display') == 'none') { self.location.href = '#comments'; check_location(); } else { check_location('hide'); } }); function change_location() { self.location.href = '#comments'; } }); /* ]]> */ Click here to cancel reply. […]



মন্তব্য করুন

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / পরিবর্তন )

Twitter picture

You are commenting using your Twitter account. Log Out / পরিবর্তন )

Facebook photo

You are commenting using your Facebook account. Log Out / পরিবর্তন )

Google+ photo

You are commenting using your Google+ account. Log Out / পরিবর্তন )

Connecting to %s

%d bloggers like this: