Ubuntu আফ্রিকা মহাদেশের একটি সুন্দর গল্প, এটি একপ্রকার জাগ্রত চেতনা, এটি একটি থিম যেটি বহু বছর ধরে উপজাতি অধ্যুষিত এলাকাসমূহে জেনারেশনের পর জেনারেশন ধরে প্রবাহমান।
আসুন, গল্পটি বুঝার চেষ্টা করিঃ
উপজাতি প্রাধান্য এলাকায় এক যাজক গিয়ে হাজির হলেন। তাঁর হাতে এক বাক্স মিষ্টি। তিনি মিষ্টির বাক্সটি গাছের গোড়ায় রেখে শিশুদের একশ মিটার দূরে দাঁড় করালেন। বললেন, ওয়ান-টু-থ্রি বলার সাথে সাথে তোমরা দৌঁড় শুরু করবে, যে আগে মিষ্টির বাক্সটি ছুঁতে পারবে, মিষ্টিগুলো সে পাবে। বাচ্চাগুলো ঘাড় দুলিয়ে জানালো যে তারা খেলাটি বুঝতে পেরেছে।
যাজক গণনা করলেন, ওয়ান-টু-থ্রি-গো......
বাচ্চাগুলো একে অপরের হাত ধরাধরি করলো, একসাথে চলা শুরু করলো, একসাথে গিয়ে পৌঁছুলো, মিষ্টির বাক্সটিতে সবাই স্পর্শ করলো। তারা মিষ্টিগুলো সমান ভাগে ভাগ করে খেলো এবং আনন্দ করলো।
যাজকটি যারপরনাই অবাক হলেন এবং বললেন যে কেন তোমরা এ কাজটি করলে?বাচ্চাগুলো সমস্বরে উত্তর দিল, Ubuntu; যার মানে, অধিকাংশকে অখুশী রেখে একজন খুশী থাকে কীভাবে! (How can one be happy when the others are sad?) Ubuntu একটি আফ্রিকান শব্দ, যার অর্থ করলে এরকমটি হয়ঃ I am because we are! বাংলাটি এইভাবে বলা যাবে, "তুমি আছো ,আমি আছি তাই!"
যারা নতুন নতুন লিনাক্সে আসতে চান বা চিরদিন চারদিকে রেডহ্যাট লিনাক্সের নাম শুনে হঠাৎ করেই উবুন্টুর নাম শোনেন, তাদের অনেকেই বুঝতে পারেননা যে লিনাক্স আর উবুন্টুর মধ্যে সম্পর্কটা কি। উবুন্টু কি লিনাক্সের কোনো ভার্সন? যেমন উইন্ডোজের ক্ষেত্রে এক্সপি, ভিসতা বা সেভেন? নাকি উবুন্টুই লিনাক্স? যদি উবুন্টুই লিনাক্স হয় তাহলে রেড হ্যাট লিনাক্স কি জিনিস? ওটাওতো লিনাক্স? ওটা কি লিনাক্সের আলাদা ভার্সন?— এরকম হাজারো প্রশ্নের ভীড়ে তারা খাবি খেতে থাকেন। যারা এভাবে খাবি খেতে খেতে পেট ভর্তি করে ফেলেছেন তারা একটু মনযোগ দিয়ে এই লেখাটা পড়ুন, আশাকরি এরপর থেকে কেবল খাবি খেয়েই আর পেট ভর্তি করতে হবেনা!
প্রথম এবং শেষ কথা হচ্ছে লিনাক্স কোন অপারেটিং সিস্টেম না। কী ভড়কে গেলেন তো? এতদিন সবখানে পড়ে এসেছেন, জেনে এসেছেন, শুনে এসেছেন যে উইন্ডোজের মত লিনাক্সও একটা অপারেটিং সিস্টেম; আর আজকে আমার মত এক চুনোপুটি কিনা বলছে যে লিনাক্স কোন অপারেটিং সিস্টেম না! আসলেই ব্যাপারটা তাই। লিনাক্স কোন অপারেটিং সিস্টেম না। প্রত্যেকটা অপারেটিং সিস্টেমের একটা “প্রাণ ভোমরা” থাকে যা কিনা ঐ অপারেটিং সিস্টেমের মূল অংশ। লিনাক্স হচ্ছে সেই “প্রাণ ভোমরা”। এই প্রাণ ভোমরাকে বলা হয় “কার্নেল“, যা কিনা কোন অপারেটিং সিস্টেমের কেন্দ্রীয় অংশ, যা বিভিন্ন এ্যাপ্লিকেশন ও হার্ডওয়্যারের মধ্যে যোগাযোগ রক্ষা করার মাধ্যম হিসেবে কাজ করে এবং যাকে ছাড়া কোন অপারেটিং সিস্টেম তৈরি করা সম্ভব নয়। অর্থাৎ লিনাক্স হচ্ছে আসলে কার্নেল । প্রত্যেকটা অপারেটিং সিস্টেমেই এই কার্নেল জিনিসটা থাকে। উইন্ডোজ বা ম্যাকেও কার্নেল আছে। উইন্ডোজ এক্সপি, ভিসতা বা সেভেনের কার্নেলের নাম এনটি (NT); ম্যাক ওএস এর কার্নেলের নাম এক্সএনইউ (XNU)। কার্নেলের সাথে বিভিন্ন এ্যাপ্লিকেশন ও প্রোগ্রাম যোগ করে বানানো হয় অপারেটিং সিস্টেম। সহজ ভাষায় বললে,
কার্নেল + (এ্যাপ্লিকেশন, প্রোগ্রাম, সফটওয়ার ইত্যাদি) = অপারেটিং সিস্টেম
যেমন লিনাক্স কার্নেলের সাথে গ্নোম, ওপেন অফিস, গিম্প, টোটেম মুভি প্লেয়ার, রিদমবক্স অডিও প্লেয়ার ইত্যাদি অনেক এ্যাপ্লিকেশন ও সফটওয়্যার যোগ করে উবুন্টু নামের অপারেটিং সিস্টেম বানানো হয়েছে। তাই সহজভাবে বললে:
লিনাক্স কার্নেল + (গ্নোম + ওপেন অফিস + গিম্প + টোটেম মুভি প্লেয়ার + রিদমবক্স অডিও প্লেয়ার + পিটিভি ভিডিও এডিটর + গেমস + আরো অনেক কিছু) = উবুন্টু
উইন্ডোজের কার্নেল বিনাপয়সায় পাওয়া তো যায়ই না এমনকি টাকা খরচ করলেও মাইক্রোসফট থেকে পাওয়া যায়না। তাই কেউ ইচ্ছা করলেই উইন্ডোজের কার্নেলের সাথে বিভিন্ন সফটওয়ার জুড়ে দিয়ে নিজের মত কোন অপারেটিং সিস্টেম বানাতে পারেনা। ফলে মাইক্রোসফট ছাড়া আর কেউ উইন্ডোজ কার্নেলের উপর নির্মিত কোন অপারেটিং সিস্টেম বানাতে পারেনা। অন্য দিকে লিনাক্স কার্নেল বিনা পয়সায় পাওয়া যায়, তাই যে কেউ সেটার সাথে বিভিন্ন প্রোগ্রাম জুড়ে দিয়ে একটা অপারেটিং সিস্টেম বানাতে পারে। শুধু তাই না ইচ্ছা করলে সেই কার্নেলকে আপনি আপনার মত পরিবর্তন করে ব্যবহার করতে পারবেন। তাই দেখা যায় বিভিন্ন ব্যাক্তি/কম্পানি লিনাক্স কার্নেল দিয়ে নিজেদের মত করে অপারেটিং সিস্টেম বানায়। যেমন-
রেড হ্যাট কোম্পানি লিনাক্স কার্নেল ব্যবহার করে যে অপারেটিং সিস্টেম বানায় সেটার নাম রেডহ্যাট লিনাক্স।
ক্যানোনিকাল লিনাক্স ব্যবহার করে যে অপারেটিং সিস্টেম বানায় তার নাম উবন্টু।
নভেল লিনাক্স দিয়ে বানায় স্যুযে।
লিনাক্সের উপর নির্ভর করে বানানো এরকম আরো অনেক অপারেটিং সিস্টেম পাওয়া যায়। রেডহ্যাট, উবুন্টু বা স্যুযে প্রত্যেকেই আলাদা আলাদা স্বয়ংসম্পূর্ণ অপারেটিং সিস্টেম। এদের মধ্যে মিল হচ্ছে এদের কার্নেলটা একই, সেটা হল লিনাক্স। তাই এসব অপারেটিং সিস্টেমকে বলা হয় “লিনাক্স-বেজড অপারেটিং সিস্টেম”, তবে সংক্ষেপে এদেরকে সাধারণভাবে “লিনাক্স”ও বলা হয়ে থাকে। তাই লিনাক্স দিয়ে আসলে কোন অপারেটিং সিস্টেমকে বোঝায়না বরং একধরনের বিশেষ অপারেটিং সিস্টেমের গ্রুপকে বোঝায় যাদের কার্নেলের উৎস একই। অনেক সময় এদেরকে “লিনাক্স ডিস্ট্রো”ও বলা হয়। কারণ লিনাক্স বেজড অপারেটিং সিস্টেমগুলো সাধারণত ফুল-প্যাকড হয়েই আসে, অর্থাৎ লেখালেখি করার জন্য সম্পূর্ণ অফিস স্যুট, আঁকাআঁকি করার সফটওয়ার, অডিও-ভিডিও সফটওয়ারসহ একজন ব্যবহারকারির দরকারী প্রায় সব সফটওয়ারই আগে থেকেই প্যাকড হয়ে আসে, ফলে উইন্ডোজের মত অপারেটিং সিস্টেম ইন্সটল করার পর লেখালেখি করার জন্য এমএসঅফিস ইন্সটল করতে হয়না। তাছাড়া অনেকগুলো লিনাক্স বেজড অপারেটিং সিস্টেম আবার নির্দিষ্ট ধরনের কোন ব্যবহারকারীর চাহিদামত সফটওয়ার যুক্ত করে বানানো হয় যেমন সায়েন্টিফিক লিনাক্স, ফেডোরা ইলেক্ট্রনিক ল্যাব ইত্যাদি। নাম দেখেই বোঝা যাচ্ছে কাদেরকে লক্ষ্য করে এগুলো বানানো হয়েছে। তাই লিনাক্স-বেজড অপারেটিং সিস্টেমগুলোকে “লিনাক্স ডিস্ট্রিবিউশন” বা “লিনাক্স ডিস্ট্রো” বা সংক্ষেপে শুধু “ডিস্ট্রো” বলা হয়ে থাকে। এরকম আরো কিছু ডিস্ট্রো হচ্ছে- ডেবিয়ান, ফেডোরা, ম্যানড্রিভা, স্যুযে, ওপেন স্যুযে, নপিক্স, সেন্টওএস ইত্যাদি ইত্যাদি। লিনাক্স ডিস্ট্রগুলোর কথা আরো জানতে ডিস্ট্রওয়াচ বা উইকিপিডিয়ায় দেখতে পারেন।
লিনাক্সভিত্তিক এই অপারেটিং সিস্টেমের সবগুলোই কিন্তু উবুন্টুর মত একেবারে ফ্রি বা বিনাপয়সায় পাওয়া যায়না। যেমন রেডহ্যাট লিনাক্স ও স্যুযের কথাই ধরা যাক- এগুলো কিন্তু টাকা দিয়ে কিনতে হয়। তবে হোম ইউজারদের জন্য রেডহ্যাট লিনাক্সের একটা বিনাপয়সার ভার্সন আছে- তার নাম ফেডোরা। সাধারণত রেডহ্যাট কোম্পানী তাদের রেডহ্যাট লিনাক্স অপারেটিং সিস্টেমের জন্য ফেডোরাকে টেস্টবেড হিসেবে ব্যবহার করে। এর মানে হচ্ছে রেডহ্যাট কম্পানি নতুন নতুন সফটওয়্যারগুলো প্রথমেই রেডহ্যাট লিনাক্সে না দিয়ে আগে ফেডোরাতে দেয়, তারপর ব্যবহারকারিদের বিভিন্ন অভাব-অভিযোগ-মতামতের ভিত্তিতে পরে রেডহ্যাট লিনাক্সে সেগুলোকে যোগ করা হয়। অর্থাৎ এক্ষেত্রে ফেডোরা হচ্ছে অনেকটা গিনিপিগের মত, যার উপর বিভিন্ন পরীক্ষা চালিয়ে স্বিদ্ধান্ত নেয়া হয় যে রেডহ্যাট লিনাক্সকে কিভাবে কি করা হবে। রেডহ্যাটলিনাক্স ও ফেডোরা একই কম্পানির তৈরি হলেও এরা দুটি ভিন্ন অপারেটিং সিস্টেম। ঠিক একইভাবে নভেল কম্পানির ক্ষেত্রে স্যুযের টেস্টবেড ভার্সন ওপেন স্যুযে বিনাপয়সায় ব্যবহারের জন্য পাওয়া যায়।
এবার কি কিছুটা বোঝা গেল যে উবুন্টু, রেডহ্যাট, লিনাক্স- এইসবের সম্পর্কটা কি? তাহলে চলুন প্রথম দিকের প্রশ্নগুলো আরেকবার একটু দেখা যাকঃ
উবুন্টু কি লিনাক্সের কোনো ভার্সন? যেমন উইন্ডোজের ক্ষেত্রে এক্সপি, ভিসতা বা সেভেন?
— নাহ, উবুন্টু লিনাক্সের কোনো ভার্সন না। উইন্ডোজের যেমন আলাদা আলাদা ভার্সন আছে, তেমনি উবুন্টুরও আলাদা আলাদা ভার্সন আছে (যেমন, জন্টি, কারমিক, ল্যুসিড)।
নাকি উবুন্টুই লিনাক্স?
— উবুন্টু হচ্ছে লিনাক্স কার্নেলকে ভিত্তি করে বানানো একটা স্বয়ংসম্পূর্ণ অপারেটিং সিস্টেম।
যদি উবুন্টুই লিনাক্স হয় তাহলে রেড হ্যাট লিনাক্স কি জিনিস? ওটাওতো লিনাক্স? ওটা কি লিনাক্সের আলাদা ভার্সন?
— আগেই বলেছি উবুন্টু হচ্ছে লিনাক্স বেজড একটি অপারেটিং সিস্টেম। রেডহ্যাট ও উবুন্টুর মত আরেকটি অপারেটিং সিস্টেম যা কিনা লিনাক্স কার্নেলকে কেন্দ্র করে গড়ে উঠেছে। রেড হ্যাট বা উবুন্টু কোনটাই লিনাক্সের আলাদা কোন ভার্সন না। এদের প্রস্তুতকারক কম্পানিও ভিন্ন।
আশাকরি লিনাক্স-উবুন্টু-রেডহ্যাট এইসব নিয়ে যেই খাবিগুলো এতদিন অযথা খেয়ে এসেছেন এবার তার অবসান হয়েছে।
উইন্ডোজ ব্যবহারকারী যারা উবুন্টুতে আসার পর যে জায়গায় সবচেয়ে বেশি ঘুরপাক খান সেটা হল উবুন্টু বা লিনাক্সের ফাইল সিস্টেম হায়ার্রকি। উইন্ডোজে কোন ফোল্ডার বা ফাইল কোথায় আছে সেটা তারা সহজে বের করতে পারলেও উবুন্টুতে এসে তারা খাবি খেতে থাকেন। কারণ উবুন্টুতে ফাইল হায়ারার্কি মানে কোন ফাইল কোথায় আছে সেটা উইন্ডোজের চেয়ে সামান্য আলাদা। তাই পরিচিত উইন্ডোজের গন্ডি থেকে বের হয়ে উবুন্টুতে (বা অন্য কোন লিনাক্স ডিস্ট্রতে) আসলে তাদের কিছুটা ভ্যাবাচ্যাকা খেতেই হয়। তবে কিনা উবুন্টুর ফাইল হায়ারার্কি কিন্তু মোটেও কঠিন কিছুনা, শুধু জানতে হবে কোথায় কি আছে। এই লেখাটাতে উবুন্টুর কথা লেখা হয়লেও প্রায় সব লিনাক্স ডিস্ট্র’র জন্য লেখাটা প্রযোজ্য। ডিস্ট্রভেদে একটা-দুটো ফাইল হয়তো আলাদা থাকতে পারে, বাদবাকী সব একই।
ফাইল হায়ারার্কি বা ডিরেক্টরির বেসিক দিয়েই শুরু করি। উইন্ডোজে ডিরেক্টরিগুলোকে ব্যাকস্ল্যাশ (\) দিয়ে লেখা হয় যেখানে উবুন্টুতে লেখা হয় স্ল্যাশ (/) দিয়ে। ধরুন আপনি Bangladesh ফোল্ডারের ভেতর রাখা Dhaka ফোল্ডারের Munsigonj ফাইলটিতে যাবেন। এই পুরো ব্যাপারটাকে উইন্ডোজে লেখা হয় নিচের মত করে:
Bangladesh\Dhaka\Munsigonj
ঠিক একই জিনিস উবুন্টুতে লেখা হয় নিচের মত করে:
Bangladesh/Dhaka/Munsigonj
অর্থাৎ স্ল্যাশ আর ব্যাকস্ল্যাশের পার্থক্য। উপরের উদাহরণে ফাইলগুলেকে গাছের শিকড়ের সাথে তুলনা করলে এর মূল বা গোড়া বা রুট হচ্ছে Bangladesh, এর ভেতরে অন্যান্য ফাইলগুলো রয়েছে। গোড়া বা রুট Bangladesh থেকেই যাত্রা শুরু করে অন্যান্য ফাইলে যেতে হবে। অর্থাৎ সহজ কথায়, ব্যাপারটাকে উপরের ছবির মত বলা যায়.
ধরুন উইন্ডোজে গুগল ক্রোম চালু করবেন আপনি, তো কি করবেন? প্রথমেই Start মেন্যু থেকে My Computer এ যাবেন, তারপর C:\ ড্রাইভে গিয়ে Program Files এ ঢুকে google ফোল্ডার থেকে chrome ফোল্ডারে ঢুকেন,দেন আবার Application ফোল্ডারে ঢুকে chrome.exe ফাইলটা ডাবল ক্লিক করে ওপেন করবেন। পুরো ব্যাপারটাকে নীচের মত করে লেখা যায়:
C:\Program Files\Google\Chrome\Application\chrome.exe
আপাত দেখে মনে হতে পারে যে মূল বা রুট হওয়া উচিত My Computer যেহেতু ওখান থেকেই সব ড্রাইভে যাওয়া যাচ্ছে। আসলে ব্যাপার সেটা না, My Computer হচ্ছে একটা শর্টকাট যেটা আপনাকে এক লাফে বিভিন্ন পার্টিশন ও ডিভাইস যেখানে আছে সেখানে নিয়ে আসবে। তাই উপরের লাইন অনুসারে উইন্ডোজের রুট C:\ হবার কথা। এখন প্রশ্ন আসতে পারে যদি আরো পার্টিশন থাকে অর্থাৎ D:\ E:\ এসব ড্রাইভও থাকে তাহলে কি হবে? সহজভাবে বললে বলা যায় যে প্রতিটার জন্য আলাদা আলাদা রুট থাকবে। অর্থাৎ উইন্ডোজে ফাইলগুলো পার্টিশনের সংখ্যানুযায়ী অনেক গাছে বিভক্ত থাকতে পারে, প্রতিটা গাছের রুট আবার ভিন্ন।
আর উবুন্টুতে গুগল ক্রোম ওপেন করতে হলে যেটা করতে হবে সেটা হল উপরের প্যানেলের Places মেন্যু থেকে Computer এ গিয়ে Filesystem এ ঢুকে opt ফোল্ডারে অবস্থিত google ,দেন chrome ফোল্ডারে গিয়ে chrome এ ডাবল ক্লিক করতে হবে। উবুন্টুর পুরো ব্যাপারটাকে সাজানো যায় নিচের মত করে করে:
/opt/google/chrome/chrome
এখানে ও Computer আসলে একটা শর্টকাট হিসেবে কাজ করছে, যা কিনা ব্যবহারকারীকে রুটের কাছে নিয়ে আসতে সাহায্য করে। তাহলে রুট কই ? Filesystem নামে যে ড্রাইভটা দেখা যায় সেটাই আসলে রুট হিসেবে কাজ করছে এখানে। উপরের ডিরেক্টরির এড্রেসে যে একদম শুরুতেই opt এর আগে যে স্ল্যাশ (/) দেখা যাচ্ছে সেটা দিয়েই রুট বোঝানো হচ্ছে। অর্থাৎ “opt/google” মানে হচ্ছে “রুটের মধ্যে opt নামে ফোল্ডার আছে, তার ভেতরে রয়েছে google ফোল্ডার”। লিনাক্সে রুট একটাই থাকে।
তারমানে আপনি যখন Filesystem এ আসেন তখন আসলে আপনি উবুন্টুর রুটে চলে আসেন। এই রুটের মধ্যেই সিস্টেম ফাইল থেকে শুরু করে ব্যবহারকারীর ব্যাক্তিগত ফাইল অর্থাৎ উবুন্টুর সব কিছু থাকে। রুটে গেলে অনেকগুলো ফোল্ডার দেখবেন। নিচে সেই ফোল্ডারগুলোর একটা হায়ারার্কি দেয়া হল:
মানুষজন লিনাক্সে আসতে চায়না যে কটা কারনে তার মধ্যে মনে হয় সবচেয়ে বেশি উচ্চারিত কারন হচ্ছে “লিনাক্সে কোড লিখতে হয়“! সাধারণ ব্যবহারকারিদের মধ্যে কমান্ড লেখার প্রতি একটা ভীতি সবসময়ই কাজ করে (হাসি দিয়ে লাভ নাই, আমি নিজেও এই জিনিসটাকে ভয় পেতাম)। অনেকে মাউস পয়েন্টারের পরিবর্তে এইসব কমান্ড লেখাকে মহারাজ মান্ধাতার সম্পত্তি মনে করে। ফলে মহারাজের আমলের জিনিসকে বাদ দিয়ে তারা মাউসের উপর বেশি মাত্রায় নির্ভরশীল। এটা দোষের কিছু না। যার যেটাতে সুবিধা সে সেটাই ব্যবহার করবে। এই বিষয়টা ধরতে পেরেই উবুন্টু গ্রাফিক্যাল ইন্টারফেসের উপর এত বেশি জোর দিয়েছে যে, কোন নতুন ইউজার একলাইন কমান্ড না জেনেও তার সাধারন কাজগুলো মাউস ক্লিকে করে নিতে পারবেন। এবার নিশ্চয়ই আমার উপর ক্ষেপে উঠেছেন; নিশ্চয়ই মনে মনে বলছেন – তাহলে ভাই কেন টার্মিনাল নিয়ে খামাখা টানাটানি করছেন? বলছি, একটু সবুর করুন!
What is it ?
একটা উদাহরন দেই। মেডিক্যালে ডাক্তারদের মাঝে দুইটা ক্যাটাগরি থাকেঃ মেডিসিন আর সার্জারি। যারা মেডিসিনে থাকেন তারা কোন রকম কাটাকাটি ছাড়াই সব অসুখ সারাতে চান। কিন্তু সবসময় সেটা সম্ভব হয়না, অনেকসময় অপারেশন ছাড়া কোন পথ খোলা থাকেনা। এই অপারেশনের জন্য দরকার সার্জারি টিম, যারা ম্যানুয়ালি দেহের ভিতরে হাত দিয়ে বিগড়ানো অঙ্গ ঠিক করে। মাউস দিয়ে অপারেট করাটা হচ্ছে অনেকটা মেডিসিন টিমের মত, অপারেটিং সিস্টেমের ভিতরে হাত না দিয়ে কেবল বাইরে থেকে কাজ করা। আর কোড লিখে কাজ করাটা হচ্ছে সার্জারি টিমের মত অপারেটিং সিস্টেমের একেবারে গভীরে হাত দিয়ে কাজ করা। উবুন্টুতে যেখানে এই কোড লেখা তাকে বলা হয় টার্মিনাল। টার্মিনাল দিয়ে সঠিক জ্ঞান ব্যবহার করে যে কেউ উবুন্টুর মধ্যে যে কোন পরিবর্তন আনতে পারবে। মোট কথা উবুন্টুর নাড়িনক্ষত্র যেটা দিয়ে নাড়াচাড়া করা হয় সেটাই হল টার্মিনাল।
Where will we find this Terminal ? Why Terminal ?
উবুন্টুতে টার্মিনাল খুলতে হলে প্রথমে ড্যাশে যান। ড্যাশ হচ্ছে উপরের বাম পাশে উবুন্টুর লোগোওয়ালা একটা বাটন। কিবোর্ড দিয়ে শর্টকাটে ড্যাশে যেতে উইন্ডোজ বাটন ক্লিক করুন। ড্যাশের সার্চবারে terminal লিখুন। এবার Terminal এ ক্লিক করুন।
টার্মিনাল খুলেছে? কি দেখতে ভয় লাগছে? হয়তোবা! কিন্তু সময়ে সময়ে এই টার্মিনাল প্রচন্ড কাজে আসে। টার্মিনাল দেখতে অনেকটা নীচের উইন্ডোর মত।
টার্মিনাল খুললেই ইউজার নেম আর কম্পিউটার নেম অনেকটা নিচের মত ইমেইল এড্রেসের ফরম্যাটে থাকেঃ
name@name-desktop:~$
এখানে @ এর আগের অংশ হল আপনার ইউজার নেম আর এর পরের অংশ হল আপনার পিসির নাম । $ সাইন দিয়ে বোঝা যায় যে টার্মিনাল আপনার কমান্ড নেবার জন্য প্রস্তুত।
উবুন্টুতে তো মাউস দিয়েই প্রয়োজনীয় সব কাজ করা সম্ভব, তাহলে ভাই টার্মিনালের মত পুরান জিনিস (যেটা এমএস ডসের পর আর কারো ধরার দরকার হয়নাই) নিয়ে টানাটানি শুরু করলেন কেন? প্রশ্নটা আগে ও করেছিলেন! এইবার জবাব দিচ্ছি। এককথায় বললে বলতে হয় “উবুন্টুর আসল সৌন্দর্য বুঝতে টারমিনালের বিকল্প নাই”।
ছোট্ট একটা উদাহরন দেই। ধরুন আপনি ভিএলসি প্লেয়ার ইন্সটল করতে চান। আপনি মাউস দিয়ে ক্লিক করে করে কয়েক ধাপে সেই কাজ করতে পারেন অথবা মাত্র একটা লাইন টার্মিনালে লিখে সেই কাজ করতে পারেন। ভিএলসি প্লেয়ার ইনস্টল করতে হলে টার্মিনাল ওপেন করে নিচের লাইনটি লিখে Enter চাপুন।
sudo apt-get install vlc
আপনার পাসওয়ার্ড দিতে বলবে।
[sudo] password for (your name):
পাসওয়ার্ড দিয়ে Enter চাপুন। নিরাপত্তার কারনে আপনার পাসওয়ার্ড টাইপিং সে দেখাবেনা। ব্যসসস কাহিনী শেষ! VLC Player ইন্সটল হয়ে গেল। কত সহজেই ইন্সটলেশন প্রসেস শেষ! মাউসের চেয়ে এই প্রসেস অনেক দ্রুত এবং অবশ্যই সহজ।
টার্মিনালের আরো সুবিধা পাওয়া যায় যখন আপনি কোন ফোরামে সাহায্য চেয়ে পোস্ট দেবেন তখন। কেউ যদি বলে যে ঐ কাজটা করার জন্য অমুক অমুক জায়গায় ক্লিক করেন, তারপর এইটা ক্লিক করেন, আবার অমুক অমুক জায়গায় গিয়ে ক্লিক করেন এরপর এইটা এইটা করেন, ইত্যাদি। জিনিসটা অনেক সহজ হয়ে যায় যখন কেউ দুই তিনটা কোড দিয়ে বলে যে এই কোডগুলো টার্মিনালে রান করে দেখুন তো। ঐ কোডগুলো পেস্ট করলেই হল, আপনার কাজ শেষ। কত সহজেই ঝামেলা শেষ!
sudo
sudo হল “SUper-user Do”। সাধারনত যেসব কোড গুরুত্বপূর্ন (যেমন কোন কিছু ইন্সটল বা রিমুভ করা), যেগুলোতে সিস্টেম মডিফিকেশনের ব্যাপারগুলো চলে আসে সেসব ক্ষেত্রে sudo ব্যবহার করতে হয়। সিস্টেম মডিফিকেশনের মত জটিল কাজগুলো সাধারন ব্যবহারকারিদের করার কোন অনুমতি দেয়া থাকেনা। ফলে যে কেউ ইচ্ছা করলেই কোন কিছু পাল্টাতে পারেনা। এই মডিফিকেশনগুলো করার জন্য একজনই কেবল অনুমতি পেয়ে থাকে, সে ই হল সুপার ইউজার। যার কাছে সুপার ইউজারের পাসওয়ার্ড থাকবে সে এইসব মডিফিকেশন করতে পারবে। তাই গুরুত্বপূর্ন কাজগুলো করার জন্য sudo ব্যবহার করতে হয়।
উবুন্টুতে sudo কমান্ড ব্যবহার করলে ১৫ মিনিটের জন্য সে পাসওয়ার্ড তার মেমরিতে রাখে। ১৫ মিনিট পর আপনা আপনি পাসওয়ার্ড মুছে ফেলে। ফলে এই সময় অন্য কোন sudo কমান্ডের জন্য পাসওয়ার্ড প্রয়োজন হয়না। এটা অনেকটা স্প্রিং লাগানো দরজার মত, একবার খুললে কিছুক্ষন খোলা থাকে তারপর নির্দিষ্ট সময় পর নিজে নিজেই দরজা বন্ধ করে দেয়। তাই সব কাজেই sudo ব্যবহার করা বুদ্ধিমানের কাজ না।
How to use Terminal
সত্যি বলতে কি যেহেতু উবুনন্টুতে বেশ শক্তিশালী একটা গ্রাফিক্যাল ইন্টারফেস আছে তাই সাধারন ব্যবহারকারি হিসেবে কমান্ড কিভাবে কাজ করে সেটা সেভাবে না জানলেও চলে। শুধু কয়েকটা কমন কমান্ড জানলেই চলে। তবে কমান্ডগুলোর মধ্যে সেই অর্থে কোন কমন প্যাটার্ন নেই। অর্থাৎ কমান্ডগুলো তেমন কোন ফর্মুলা মেনে চলেনা। কোন কিছু ইন্সটল করার কমান্ড আর কোন কিছু এক জায়গা থেকে আরেক জায়গায় কপি করার কমান্ড সম্পূর্ণ ভিন্ন ধরনের। তাই নির্দিষ্ট কয়েকটা ফর্মুলা জানলেই যে কমান্ড লাইনের কোড লিখতে পারা যাবে এমন কোন নিয়ম নেই। তবে ব্যবহার করতে করতে নির্দিষ্ট কিছু কমন কমান্ড এমনিতেই মাথায় আটকে যায়। তাই এটা নিয়ে ঘাবড়ানোর কিছু নেই। আর যেহেতু এটা উবুন্টু তাই সাধারন কাজে ব্যবহারের জন্য অল্প কয়েকটা কমান্ড ছাড়া আর কোন কমান্ডই তেমন কোন কাজে লাগেনা। তবে হ্যা কিছু কমান্ড থেকে সাবধান থাকতে হয়। এই টাইপের কমান্ড কোথায় পেলে না বুঝে শুনে পেস্ট করা উচিত না। এইসব ‘বিপজ্জনক’ কমান্ড পরবর্তী অংশে বিশদভাবে আলোচনা করা হবে।
এবার তাহলে দেখা যাক টার্মিনালে কমান্ড কিভাবে চালাতে হয়। খেয়াল করেছেন কি ইতিমধ্যেই কিন্তু উপরে একটা কমান্ড লেখা হয়ে গেছে! ঐ যে ভিএলসি প্লেয়ার ইন্সটল করার কমান্ডটা! যেকোন কমান্ড লেখার পর সেটা চালানোর জন্য অবশ্যই কিবোর্ডের Enter বাটন চাপতে হবে। টার্মিনালে কমান্ড টাইপ করেও লেখা যায় আবার কোন জায়গা থেকে কপি-পেস্ট করেও লেখা যায়। ধরা যাক নিচের কমান্ডটি চালাতে হবে।
sudo apt-get update
প্রথমেই টার্মিনাল ওপেন করুন। এরপর উপরের কোডটি কপি করুন। মাউস পয়েন্টার দিয়েও করতে পারেন অথবা Ctrl+c চেপে কিবোর্ড থেকেও করতে পারেন। এবার টার্মিনালে কোডটি পেস্ট করুন। এইক্ষেত্রেও মাউস পায়েন্টার বা Ctrl+Shift+v চেপেও করতে পারেন। পেস্ট করা হয়ে গেলে Enter চাপুন। একটা ফিরতি রেসপন্স পাবেন নিচের মত যেখানে আপনাকে পাসওয়ার্ড দিতে বলা হবে।
[sudo] password for (your name):
এটা হল sudo ব্যবহার করার খেসারত। যেহেতু আপনি মডিফিকেশন করতে চাচ্ছেন তাই উবুন্টু আরেকবার নিশ্চিত হবার জন্য আপনাকে এই পাসওয়ার্ড দিতে বলছে। অর্থ্যাৎ সে নিশ্চিত হতে চাচ্ছে যে এটা আপনিই, অন্য কোন র্যান্ডম ইউজার না। পাসওয়ার্ড যখন দিবেন তখন কিন্তু কোন অক্ষর বা চিহ্ন স্ক্রিনে দেখা যাবেনা। তাই যদি টাইপিং এ কোন ভুল হয় তবে কিছুক্ষণ ব্যাকস্পেস চেপে ধরে আবার পাসওয়ার্ড লেখা শুরু করুন। পাসওয়ার্ড দেয়া শেষ হলে Enter চাপুন।
ব্রুম!! একগাদা লেখা আপনার স্ক্রিনের উপর থেকে নিচে চলে যাচ্ছে তাইনা! তার মানে হচ্ছে সিস্টেম আপডেট করার এই কমান্ডটা কাজ করছে। একটা লাইন লিখে যে কাজটা করলেন ঠিক এই কাজটাই করা যায় System–> Administration–> Update Manager চালিয়ে।
প্রয়োজনীয় বেশ কিছু কোড পাবেন এইখানে
Dangerous Commands on Terminal !!!
(এই অংশের কোন কোড ভুলেও কখনো টার্মিনালে চালাবেননা, যদি চালান তবে নিজ দায়িত্বে চালাবেন।)
আগেই বলেছি কিছু কোড আছে বেশ বিপজ্জনক! নিচের কোডটি ঠিক সেরকম। যারা উবুন্টুতে গুরুটাইপের লোক তাদের জন্য এটা খুবই পাওয়ারফুল একটা কমান্ড। কিন্তু কথায় আছেনা “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” অর্থ্যাৎ “১০ অক্ষরের মরণনাশা কোড“!
শুরুতে আপনার মনে যে একটা প্রশ্ন ছিল কেন খামাখা টার্মিনাল নিয়ে টানাটানি করছি, এর উত্তর কি পেয়েছেন এখন? টার্মিনাল নিয়ে আপনার কিছুটা ভয় কি কেটেছে? তবে চলুন ভয়টা পুরোপুরি কাটাতে টার্মিনাল নিয়ে কিছু খেলা করি।
Terminal Basic Commands
ধরুন আপনি কোন এ্যাপ্লিকেশন চালাতে চাচ্ছেন। টার্মিনাল খুলে কেবল এ্যাপ্লিকেশনের নামটি লিখুন। যদি ফায়ারফক্স চালাতে চান তাহলে লিখুন firefox
তারপর এন্টার চাপুন। কি দেখলেন? মাউস দিয়ে ক্লিক না করেও ফায়ারফক্সকে রান করানো সম্ভব! এভাবে যেকোন এ্যাপ্লিকেশনকে টার্মিনাল থেকে রান করানো যায়। যেমন ভিএলসি প্লেয়ার রান করতে টার্মিনালে লিখুন vlc
তারপর এন্টার চাপুন। ব্যস ভিএলসি প্লেয়ার ওপেন হয়ে গেল! এবার আসুন আরেকটু মজা করি। টার্মিনালে লিখুন date
এন্টার চাপলেই দেখবেন আজকের তারিখ দেখাবে। এবার টার্মিনালে লিখুন cal
পুরো মাসের ক্যালেন্ডার দেখতে পাবেন। আপনার কম্পিউটারে ডিস্ক কতটুকু ব্যবহার হল সেটা জানতে টার্মিনালে লিখুন df
নিচের কমান্ডটি টার্মিনালে রান করালে শেষ রিস্টার্টের পর থেকে আপনার পিসি কতক্ষণ ধরে চলছে তার হিসাব দেখাবে uptime
আপনার নিজের একাউন্ট সম্পর্কে জানতে টার্মিনালে লিখুন whoami
আপনার সিস্টেম কার্নেল জানতে নিচের কমান্ডটি লিখুন uname
উপরের তথ্যগুলোই আরো বিস্তারিত জানতে লিখুন uname -a
কী, মজা লাগছে? ছোট্ট ছোট্ট কিছু কোড দিয়ে দারুন দারুন কাজ করা যাচ্ছে, তাইনা! আশাকরি এবার ভয় অনেকটুকুই কেটে গিয়েছে। আসুন তাহলে আরেকটু সামনে যাই।
Files Handling by Terminal
টার্মিনাল ওপেন করলে আপনি কিন্তু বাই ডিফল্ট /home/user_name ডিরেক্টরিতে থাকেন (এখানে user_name হল আপনার ইউজার নেম যেটা দিয়ে কম্পিউটারে লগিন করেছেন। যেমন আমার ইউজারনেম যদি pranto হয় তবে আমার ক্ষেত্রে ডিরেক্টরিটা হবে /home/pranto) । অর্থাৎ উবুন্টুর ফাইল ব্রাউজার নটিলাস দিয়ে /home/user_name ফোল্ডারে গিয়ে কাজ করা যেই কথা, টার্মিনাল ওপেন করে কাজ করাটাও প্রায় একই কথা। ‘প্রায়’ বললাম এ জন্য যে, নটিলাসে তো আর cal বা date লিখে ক্যালেন্ডার বা তারিখ দেখতে পারবেননা! এখন আপনি যদি জানতে চান যে আপনি কোন ডিরেক্টরিতে আছেন তবে টার্মিনালে নিচের কমান্ডটি রান করান
pwd
আপনি কোন ডিরেক্টরিতে এই মুহূর্তে আছেন সেটা পর্দায় দেখাবে। যদি আপনি সেই ডিরেক্টরির সমস্ত ফাইলের লিস্ট চান তাহলে লিখুন
ls
এখন আপনি যদি এই ডিরেক্টরি থেকে অন্য কোন ডিরেক্টরিতে যেতে চান তবে আপনাকে টার্মিনালে লিখতে হবেঃ
cd directory_name
এখানে directory_name হল যে ডিরেক্টরিতে যেতে চান তার ঠিকানা আর cd বোঝাচ্ছে Change Directory। যেমন আপনি যদি ডেস্কটপে যেতে চান তবে টার্মিনালে লিখুনঃ
cd /home/user_name/Desktop
এখানে user_name বরাবরের মতই কম্পিউটারে আপনার ইউজার নেম হবে। আরেকট দেখার মত বিষয় হচ্ছে Desktop এর D কিন্তু বড় হাতের, কারন উবুন্টুর ফাইল সিস্টেমে ডেস্কটপ বড়হাতের D দিয়েই লেখা। যদি ছোট হাতের d দিয়ে লেখেন, তবে টার্মিনাল এই ডিরেক্টরি খুঁজে পাবেনা। লিনাক্স হচ্ছে ‘কেস সেন্সিটিভ’ অর্থাৎ বড় হাতের অক্ষর ও ছোট হাতের অক্ষর – দুটা ভিন্ন জিনিস। লিনাক্স desktop ও Desktop – এ দুটোকে দুটো আলাদা নাম হিসেবে দেখে (যেখানে উইন্ডোজ দেখে একই নাম হিসেবে, অর্থাৎ উইন্ডোজ কেস সেন্সিটিভ না।)। যাই হোক অনেক কথা হয়ে গেল। আপনি ডেস্কটপেই আছেন কিনা সেটা দেখতে আবার নীচের কমান্ডটি চালান-
pwd
এবার ধরুন আপনি ডেস্কটপে test নামে একটি ফোল্ডার বানাতে চাচ্ছেন। সেজন্য নিচের কমান্ডটি লিখতে হবেঃ
mkdir /home/user_name/Desktop/test
এখানে mkdir মানে হচ্ছে Make Directory। এবার ডেস্কটপে গিয়ে দেখুন test নামে একটা ফোল্ডার তৈরি হয়ে আছে। যদি test ফেল্ডারে যেতে চান তাহলে লিখুনঃ
cd /home/user_name/Desktop/test
test ফোল্ডার থেকে আবার ডেস্কটপে ফেরত যেতে (অর্থাৎ একধাপ উপরে যেতে) লিখুনঃ
cd ../
এবার আপনি আছেন ডেস্কটপে। আপনার ইউজার নেমের ফোল্ডার অর্থাৎ হোম ফেল্ডারে ফেরৎ যেতে (অর্থাৎ একধাপ উপরে যেতে) আবার লিখুনঃ
cd ../
এই কমান্ডটা ফাইল ব্রাউজারের UP (আপ) বাটনটার কাজ করে। সদ্য বানানো test ফাইলটা যদি মুছে ফেলতে চান তবে টার্মিনালে লিখুনঃ
rm -r /home/user_name/Desktop/test
টার্মিনাল নিয়ে ভয় কাটতে আর কদ্দূর? খেয়াল করেছেন কি উপরের কমান্ডগুলোতে কিন্তু sudo লিখতে হয়নি। কারণ এসব কাজ করার জন্য আপনার কোন এ্যাডমিনিস্ট্রেটিভ এ্যাক্সেস দরকার নেই। অন্য কথায় উপরের কমান্ডগুলো দিয়ে সিস্টেমের কোন কিছু পাল্টানো হচ্ছে না, কেবল ইউজার হিসেবে আপনার যতটুকু এখতিয়ার ততটুকুতেই আপনি কাজ করছেন। এবার তাহলে টার্মিনাল নিয়ে আরেকটু মজা করি। ধরুন আপনি জানেননা যে কোন কমান্ডের কি কাজ। সেক্ষেত্রে কমান্ডের আগে man লিখে টার্মিনালে চালান। যেমন date কমান্ড দিয়ে কি কাজ হয় আপনি তা জানেননা। তাহলে টার্মিনালে লিখুন
man date
এবার দেখবেন date দিয়ে যা যা করা সম্ভব তার সব কিছুর বর্ণনা আপনাকে দিয়ে দেবে। বর্ণনা ক্লোজ করতে q চাপুন। এভাবে যেকোন কমান্ডের বিস্তারিত বিবরণ man এর সাহায্যে পাওয়া সম্ভব। বলতে ভুলে গেছি, man দিয়ে কিন্তু Manual বুঝাচ্ছে।
When will we use sudo?
যখন কোন কিছু ইন্সটল করতে হয় তখন apt-get ব্যবহার করে করতে হয়। apt হচ্ছে Advanced Packaging Tool এর সংক্ষিপ্ত রূপ। উবুন্টুতে কোন সফটওয়ার ইন্সটল করতে, আপডেট করতে, মুছে ফেলতে কিংবা পুরো উবুন্টু সিস্টেমকে আপগ্রেড করতে এটা ব্যবহার করা হয়। ধরুন আপনি ভিএলসি প্লেয়ার ইন্সটল করতে চান, তবে টার্মিনালে লিখুনঃ
sudo apt-get install vlc
খেয়াল করুন এখানে কিন্তু sudo লিখছি। এখন প্রশ্ন আসতেই পারে কিভাবে বুঝব sudo লিখতে হবে কি হবেনা? উত্তর হচ্ছে করতে করতে বুঝে যাবেন কখন লিখতে হবে বা কখন হবেনা। তবে আপাতত sudo না লিখেই কমান্ড চালাতে থাকুন। যখন দেখবেন কোন কমান্ড দেবার পর বলছে যে আপনার এ্যাডমিনিস্ট্রেশন প্রিভিলেজ নেই সেই ক্ষেত্রে sudo দিয়ে আবার কমান্ডটি লিখুন। যেমন নিচের কমান্ডটি লিখুনঃ
apt-get update
দেখবেন টার্মিনাল একটা ম্যাসেজ দিবে যাতে লেখা আছে যে রুট হিসেবে আপনাকে এই কমান্ডটা চালাতে হবে। অর্থাৎ এক্ষেত্রে আপনাকে sudo ব্যবহার করতে হবে। এবার কমান্ডটিকে নিচের মত করে লিখুনঃ
sudo apt-get update
দেখবেন যে এইবার আপনার পাসওয়ার্ড চাইবে, এবং পাসওয়ার্ড দিয়ে দিলে কমান্ডটি তার কাজ শুরু করবে।
Extra
এতক্ষণে নিশ্চয়ই টার্মিনালের মজা পেয়ে গিয়েছেন? পাবারই কথা। তাহলে চলুন আরেকটু নাড়াচাড়া করি। আপনি যদি আপনার কম্পিউটারের TCP/IP’র (নেটওয়ার্কিং সম্পর্কীয়) সব তথ্য জানতে চান তবে নীচের কমান্ডটি লিখুন
ifconfig
দেখবেন আপনার বিভিন্ন পোর্ট থেকে শুরু করে ম্যাক এড্রেস-ট্যাড্রেস সব দেখিয়ে দেবে। নেট থেকে যদি কোন ফাইল ডাউনলোড করতে চান, ধরুন আমার সাইটের লোগোটাকেই ডাউনলোড করতে চাচ্ছেন, লোগোটার ডাউনলোড এ্যাড্রেস হল http://ovroniil.files.wordpress.com/2010/03/logo.png; তাহলে নিচের কমান্ডটি লিখুনঃ
wget http://ovroniil.files.wordpress.com/2010/03/logo.png
এখানে wget পর যা ডাউনলোড করতে চান তার এড্রেস দিলেই সেটা ডাউনলোড হয়ে যাবে। আর ডাউনলোড হবে আপনি যে ডিরেক্টরি থেকে এই কমান্ডটি চালাবেন সে ডিরেক্টরিতে। আপনি যদি গুগুলকে পিং করতে চান তাহলে লিখুনঃ
ping www.google.com
গুগলের বদলে যেকোন সাইটের এ্যাড্রেস লিখে তাকে পিং করতে পারবেন। পিং থামাতে হলে Ctrl+z চাপুন। যদি গুগলের ডোমেইন নিয়ে বিভিন্ন ইনফরমেশন জানতে চান তাহলে টার্মিনালে লিখুনঃ
whois https://bangladesh.gov.bd/index.php
আগেরবারেরটার মতই গুগলের পরিবর্তে অন্য যেকোন সাইটের ডোমেইন ইনফরমেশন এভাবে জানা যাবে। এবার চলুন কমান্ড দিয়ে কম্পিউটার বন্ধ করব। এর জন্য লিখুনঃ
sudo halt
আর রিবুট করতে চাইলে লিখুনঃ
sudo reboot
Internal Settings Customization
Make Ubuntu use local time for hardware clock:
timedatectl set-local-rtc 1
Click to minimize window:
gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'
Add “New Document” option on right context menu:
touch ~/Templates/"Untitled Document"
Tiling Assistant
https://extensions.gnome.org/extension/3733/tiling-assistant/
GNOME Extension package:
sudo apt install gnome-shell-extension-prefs -y
GNOME tweaks:
sudo apt install gnome-tweaks -y
gnome-tweaks
Unity Tweak Tool:
(activity log,extra features of ubuntu file explorer,sharing folder)
sudo apt-get install unity-tweak-tool -y
Synaptic Package Manager:
(not very essential but good tool )
sudo apt-get install synaptic -y
Net Tools
sudo apt install net-tools
Neofetch
sudo apt install neofetch -y
Grub Update
sudo update-grub2
Power Saving
sudo apt install tlp tlp-rdw -y
Preload
sudo apt-get install preload -y
Ubuntu Restricted
sudo apt install ubuntu-restricted-extras -y
Check Ubuntu version:
lsb_release -a
GPU Related
sudo lshw -C display
lspci | grep -i nvidia
dpkg -l | grep nvcc
nvcc --version
nvidia-smi
sudo apt install nvidia-cuda-toolkit
(sometimes it can not be installed on STS version of ubuntu)
Essential Apps
Google Chrome:
sudo apt install google-chrome-stable
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
sudo apt update && sudo apt install microsoft-edge-stable
Microsoft Edge
(chatGPT-4 included)
https://www.microsoft.com/en-us/edge?exp=e523&form=MA13FJ
Avro Keyboard:
sudo apt-get install ibus-avro
ibus restart
Go to Settings > Keyboard (Settings > keyboards)
In Input Sources, click on +
then look for three dot menu ,click on it
scroll down to click other
then,search for Bangla (Avro Phonetic)
Now it should work just fine.
If not make sure that your Keyboard Input Method System is > Ibus
VLC Media Player:
sudo apt install -y vlc
sudo snap install vlc
Telegram:
sudo apt install telegram-desktop
snap install telegram-desktop
(to update manually please quit telegram first)
WhatsApp:
(Enes Hecan)
sudo snap install whatsapp-for-linux
whatsapp-for-linux
Zoom:
sudo snap install zoom-client
Discord
sudo snap install discord
Slack:
sudo snap install slack --classic
AnyDesk:
sudo apt install anydesk
Xournal++
sudo snap install xournalpp
NetSpeedMeter on Topbar:
First add on GNOME Shell integration Extension on your browser
(search it browser's extention manager)
sudo su
apt install chrome-gnome-shell -y
(if you are a firefox user,not worried! just run this command
& do the same thing on firefox )
then,open a browser and copy this link and go:
https://extensions.gnome.org/extension/1085/simple-net-speed/
turn on right button
then, click on nstall
now see on top-bar !
or, you may follow this video if not work properly
gThumb
(can view all kinds of image formate)
sudo apt install gthumb -y
7zip
sudo snap install p7zip-desktop
DVD run:
sudo apt install libdvd-pkg -y
sudo dpkg-reconfigure libdvd-pkg
Coding
CUDA Toolkit
https://developer.nvidia.com/cuda-downloads
Anaconda:
conda install -c anaconda conda
go to anaconda.com
download file for linux
now copy this file name(>rename>copy full name with ".sh" )
open this downloaded folder in terminal and
write bash and paste the copied file name (_ _ _ _ _.sh)
Jupyter Notebook
conda install notebook
Pycharm:
sudo snap install pycharm-community --classic
pycharm-community
VS Code:
sudo snap install code --classic
Codeblocks:
sudo apt install g++ -y && sudo apt install gcc -y
sudo apt install codeblocks -y
Git:
sudo apt install git -y
Python pip:
sudo apt install python3-pip -y
Problems
Google Meet > Share Entire Screen>Black! :
go to address bar of google chrome and paste it:
chrome://flags/#enable-webrtc-pipewire-capturer
then enabled WebRTC PipeWire support
OBS (screen recorder/broadcast):
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install obs-studio -y
black screen fixed:
sudo nano /etc/gdm3/custom.conf
then follow this video
Uninstall Mozilla Firefox:
sudo snap remove firefox
sudo rm -Rf /etc/firefox/
sudo rm -Rf /usr/lib/firefox*
Snap Store Update
sudo snap refresh
Youtube Does not Show Anything
sudo apt update && sudo apt full-upgrade -y
Ubuntu 20.04.6
Good but not Recommended
23 April 2020 - 23 April 2030
Long Term Users
4 GB
There are several potential problems with Interim Releases (STS) of Ubuntu:
Shorter support period: Unlike Long Term Support (LTS) releases, which receive updates and security patches for five years, interim releases are only supported for nine months.
Potential instability: Interim releases may contain newer versions of software packages that have not yet undergone extensive testing. This can lead to stability issues or unexpected bugs.
Limited hardware support: Some hardwares may not work as expected on interim releases since hardware compatibility is often a focus of LTS releases.
Difficulty upgrading: Upgrading from one interim release to another can sometimes be difficult or even impossible. It's usually recommended to do a fresh install instead of attempting to upgrade.
Less widespread adoption: Interim releases are less widely adopted than LTS releases, so there may be fewer resources available online or in the community to help with troubleshooting issues.
Nvidia Cuda Installation Problem: Sometime STS version can not install CUDA for shortage resources of STS version, that hampers a lot for an AI engineer or Machine Learning Coputation.
Overall, if you prioritize stability and long-term support, it may be better to stick with LTS releases rather than interim releases. However, if you want to try out the latest features and software, interim releases can be a good option.
Some Advantages of Ubuntu Interim Releases (STS):
Fresher software: Interim releases of Ubuntu provide access to newer versions of software packages than LTS (Long Term Support) releases. This is because interim releases are not supported for as long, so they can take more risks with new features and updates.
Faster feature updates: As mentioned above, interim releases provide faster access to new features and improvements in Ubuntu.
Improved hardware support: Interim releases often include updated drivers for hardware components, which can help improve compatibility with newer hardware.
Here are some advantages of using the Ubuntu LTS version:
Stability: Ubuntu LTS versions are known for their stability and reliability because they receive regular security updates and bug fixes. Ubuntu LTS (Long-Term Support) is a version of Ubuntu that is designed to be more stable and reliable than other versions. The LTS version is typically supported for 5 years after its initial release, whereas non-LTS versions are only supported for 9 months.
Long-term support: As mentioned earlier, Ubuntu LTS versions are supported for 5 years after their initial release, which means you don't have to worry about upgrading to a new version every few months.
Security: Ubuntu LTS versions receive regular security updates, which helps to keep your system secure and protected against the latest threats and vulnerabilities.
Compatibility: Because Ubuntu LTS versions are designed to be stable, they are often more compatible with older hardware and software.
However, there are also some disadvantages of using the Ubuntu LTS version:
Older packages: Because Ubuntu LTS versions are designed to be stable, they often include older versions of software packages. This can make it difficult if you need the latest features or compatibility with newer hardware.
Limited software availability: Some software vendors may not provide support for older LTS versions of Ubuntu, which may limit your options when trying to install certain applications on your system.
Less frequent updates: While Ubuntu LTS versions do receive regular security updates and bug fixes, they are not updated as frequently as non-LTS versions. This means you may miss out on new features and improvements that are released in newer versions of Ubuntu.