Sunday, June 12, 2022
Tuesday, September 8, 2020
অনলাইন ক্লাসের জন্য প্রতিদিন প্রেজেন্টেশন স্লাইড বানাতে হয়। MS পাওয়ারপয়েন্ট স্লাইডকে বিদায় জানিয়েছি এক বছর আগে। এখন স্লাইড বানাই কোড লিখে লিখে। ব্যবহার করি এক গাদা ল্যাংগুয়েজ। অন্তত সাতখানা। R, Markdown, Javascript, HTML, CSS, Tex (Latex) ও bash। প্রতিটা ল্যাংগুয়েজই অসাধারণ। মিলেমিশে টিমওয়ার্ক করে আমার মনের মতো স্লাইড বানিয়ে দেয়।

Friday, August 21, 2020
টেক্সট অ্যানালাইসিস আমার খুব প্রিয় জিনিস। প্রিয় ওএস লিনাক্সে আসার পর কাজটা আরও অনেক সহজ হয়ে গেছে। কীভাবে হলো একটু দেখাই যাক।
ধরুন আমাদের কাছে কিছু টেক্সট আছে। এর কিছু শব্দকে অন্য কিছু দিয়ে পাল্টে দিতে চাই।
এই কোড hello শব্দের h-কে t দিয়ে বদলে দেবে। শুরুতেই s দিয়ে বলা হচ্ছে, বদলে দাও। ইংরেজিতে substitution আরকি।
এখানে আমরা যে টেক্সট নিয়ে কাজ করব সেটাকে আগে echo দিয়ে প্রিন্ট করে নিয়েছি। কিন্তু বাস্তবে আমাদেরকে ফাইন্ড ও রিপ্লেসের এই কাজখানি করতে হবে ফাইল দিয়ে। সে কাজটাও পানির মতোই সোজা। ধরুন আমাদের কাছে file নামে একটি ফাইল আছে। চাইলে আপনি এক্সটেনশনসহ ফাইল নিতে পারেন। যেমন file.txt। তাতে কোনোই অসুবিধা হবে না। ধরা যাক file ফাইলটিতে এই তথ্যগুলো আছে।
এবার ধরুন, আমরা এখান থেকে প্রথম line শব্দটাকে statement শব্দ দিয়ে বদলে দিতে চাই।
তবে ফাইলের সবগুলো কাঙ্ক্ষিত শব্দকে চেঞ্জ করা নিশ্চিত করতে চাইলে "g" অংশ যোগ করতে হবে। মানে এ রকম:
এটা কেন দরকার দেখতে হলে নীচের দুই লাইন কোড রান করে দেখুন। দেখবেন দুটো থেকে দুরকম আউটপুট মিলবে।

এ তো গেল শুধু একটা একটা অংশ রিপ্লেস করতে চাইলে। আপনি চাইলে অনেকগুলো অংশকে অনেকগুলো আলাদা আলাদা শব্দ দিয়েও রিপ্লেস করতে পারেন। এক্ষেত্রে প্রতিটি অংশের আগে "-e" দিতে হবে।
Sunday, May 17, 2020
আগে চলুন ১০ আর ১১ যোগ করি।
একইভাবে বিয়োগ
এখানে expr আসলে expression বা গাণিতিক পদ বোঝায়।
তবে গুণ সোজাসুজি কাজ করবে না। এই কোডটা দিয়েই দেখুন না।
দিতে হবে এভাবে
তবে ভাগ কাজ করবে ফরোয়ার্ড স্ল্যাশ দিয়েই।
তবে পরের এক্সপ্রেশনটার আউটপুট দেখলে খেয়াল করবেন, ফল এসেছে পূর্ণ সংখ্যায়। আসলে সহজ এই টুলটি ভগ্নাংশ নিয়ে কাজ করতে পারে না।
সেজন্যে আপনার লাগবে bc টুল। কমান্ড লাইনে হিসাব-নিকাশের জন্যে এটা অন্যতম সেরা একটি টুল। দারুণ ব্যাপার হলো এখানে আপনি ভগ্নাংশ নিয়েও কাজ করতে পারেন। এখানে echo দিয়ে expression লিখে পাইপ অপারেটর দিয়ে তাকে bc টুলের মধ্যে দিয়ে দিতে হবে পাইপ অপারেটর ("|") দিয়ে।
আরও পড়ুন
লিনাক্স কমান্ড লাইন: হাতে খড়ি
চাইলে কত ঘর পর্যন্ত দশমিক চান সেটা বলে দিতে পারবেন। এজন্য scale বলে দিতে হবে।
বুঝতেই পারছেন, scale এর পজিশন যেকোনো জায়গায় হতে পারে।
bc নিয়ে বিস্তারিত গল্প অন্য সময় করব ইনশাআল্লাহ।
একটি সংখ্যার উৎপাদক বের করাও কমান্ড লাইনে এক শব্দের খেল।
মনে করুন, এক সারি নাম্বার চাই আপনার। তাও জেনারেট করতে পারবেন সহজে। ধরুন আমরা ৫ টি সংখ্যা জেনারেট করব যারা শুরু হবে ১০১ দিয়ে।
আরেকটু কাজের কাজ করি। ধরুন আমাদের May1, May2, May3 ইত্যাদি এক সারি আউটপুট লাগবে। বারবার এটা না লিখে এটা আমরা jot দিয়ে বানিয়ে নিতে পারি। হ্যাঁ, এখানে আমাদের bash loop কমান্ড লাগবে।
আরও পড়ুন
লিনাক্স কমান্ড লাইন: সহজ লুপ
চাইলে এই আউটপুট একটি ফাইলেও সেভও করে নিতে পারেন।
সবশেষে jot কমান্ডের আরেকটা কারিশমা দেখব। পরিসংখ্যানে আমাদেরকে প্রায়ই দৈব সংখ্যা (random number) নিয়ে কাজ করতে হয়। দেখুন jot দিয়ে কত সহজে কাজটা করা যায়। নীচের কোডে প্রথম ১০ দিয়ে বলছি আমরা ১০টি সংখ্যা চাই। পরের দুটি সংখ্যা দিয়ে রেঞ্জ বোঝানো হলো। অর্থাৎ, সংখ্যাগুলো হবে ১০ ও ১০০ এর মধ্যে।
একই কোড দুইবার দিলাম দেখানো জন্যে যে দুইবার আসবে আলাদা আলাদা আউটপুট। র্যান্ডম নাম্বার বলে কথা!
এখন যা করব সেটা নিছক মজা পাওয়ার জন্যে। আপনি চাইলে পালাতে পারেন এখান থেকে। অবশ্য শিখি তো মজা পাবার জন্যেই।
আমরা দেখব ১ থেকে ৫ পর্যন্ত সংখ্যাগুলো থেকে দৈবভাবে ১,০০০ টা সংখ্যা নিলে কয়টা সংখ্যা কয়বার আসে।
সূত্র
১। নেটওয়ার্ক ওয়ার্ল্ড
Tuesday, May 5, 2020
আজকের কমান্ড: লুপ
উদ্দেশ্য: একই রকম কাজের জন্য বারবার ক্লিক না করে এক লাইনে করা। তবে কাজটি আমরা করব প্রচলিত do এর বদলে খুবই সহজ কোড দিয়ে। দেখে হাস্যকর মনে হবে। লুপ এত সহজ!
উদাহরণ
এই কোডখানি file_1.txt থেকে শুরু করে file_5.txt পর্যন্ত ৫টি ফাইল তৈরি করবে। আপনি চাইলে ls কমান্ড ব্যবহার করে কারেন্ট ওয়ার্কিং ডিরেক্টরিতে ফাইলগুলো দেখে নিতে পারেন।
এই ফাইলগুলো ডিলিট করা আরও সহজ।
বুঝতেই পারছেন, এটা দেখাতে গিয়ে আমরা লুপের আরও একটি উদাহরণও দেখে ফেললাম।
বাস্তব উদাহরণ
এই সাইটে উমার সিরিজের ভিডিওগুলো আপলোড করা আছে। ভিডিও ফাইলগুলোর নাম দারুণভাবে দেওয়া হয়েছে। ep1, ep2, ... ep29 ইত্যাদি। যেমন প্রথম ভিডিওটির লিঙ্ক http://www.ummahrc.com/omar-series-bangla/ep1.mp4
আপনি পণ্ডশ্রম করতে ভালবাসলে একটি একটি করে ভিডিওগুলো ডাউনলোড করতে পারেন। তবে আমি তা করতে রাজি নই। তাই আমি ডাউনলোড করব এভাবে-
তবে এখানে আমরা do loop দেখিনি। শিরোনামেই যে বলেছি, "সহজ লুপ!" অবশ্য do এর অনেক কাজই আজকের দেখা কমান্ড দিয়েই করা সম্ভব।
Thursday, June 27, 2019
ডেটা সায়েন্সের কাজ করার জন্য কমান্ড লাইনে অনেকগুলো দারুণ টুল আছে। এছাড়া ভার্সন কন্ট্রোল ব্যবহার করতে গেলেও কমান্ড লাইনের কিছু প্রাথমিক কোড জানতে হয়। এমন কিছু কমান্ড জেনে নেওয়া যাক।
আরও পড়ুন
☛ কেন লিনাক্স ব্যবহার করবেন?
১। pwd
এই কমান্ড আপনাকে বলবে, এই মূহূর্তে আপনি কোন ডিরেক্টরিতে আছেন। R-এ আমরা এটা জানি getwd() কমান্ড দিয়ে। pwd হলো present working directory এর সংক্ষিপ্ত রূপ।
২। ls
এই কমান্ড আপনাকে জানিয়ে দেবে, আপনার বর্তমান ওয়ার্কিং ডিরেক্টরিতে কী কী কন্টেন্ট আছে। হোক সেটা ফাইল, বা অন্য ফোল্ডার বা ডিরেক্টরি।
৩। man
মনে করুন, আপনার একটা কমান্ডের নাম মনে আছে। কিন্তু ভুলে গেছেন কীভাবে ব্যবহার করবেন । লিনাক্স কমান্ড লাইনে প্রায় প্রতিটি টুলের সাথেই নানান অপশন আছে। অপশনগুলো বসাতে হয় সাধারণত কমান্ডের পর একটি হাইফেন (-) দিয়ে। যেমন ওপরের ls কমান্ডের সাথে -c, -h, -m বা -t ইত্যাদি নানান অপশন ব্যবহার করা যায়। নীচের কমান্ড আপনাকে ফাইল ও ডিরেক্টরির লিস্ট দেবে। তবে সর্বশেষ যে ফাইল বা ফোল্ডার নিয়ে কাজ করেছেন সেটার নাম আগে থাকবে।
এখন, এই অপশনগুলো আপনি কীভাবে জানবেন? ভয় নেই। এর জন্য গুগোল করতে হবে না। জাস্ট টাইপ করুন man ls। অথবা যে টুল সম্পর্কে জানতে চান man লিখে সেই কমান্ড লিখে এন্টার চাপুন। চাইলে জেনে রাখুন, man আসলে ম্যানুয়াল (manual) এর সংক্ষিপ্ত রূপ।
৪। cd
মনে করুন, আপনি এখন যে ডিরেক্টরিতে আছেন, সেটা থেকে অন্য কোথাও যেতে চান। তাহলেই আপনার লাগবে cd কমান্ড। শুধু cd লিখে এন্টার চাপলে আপনি চলে যাবেন হোম ডিরেক্টরিতে। আবার cd .. আপনাকে নিয়ে যাবে আগের ডিরেক্টরিতে। cd মানে change directory।
আবার ধরুন এখন যে ফোল্ডারে আছেন তাতে work নামে আরেকটি ফোল্ডার আছে। এতে যেতে চাইলে কমান্ড হবে-
আবার work ডিরেক্টরিতে যদি আবার recent নামে আরেকটি ফোল্ডার থাকে, আর আপনি সেখানেই যেতে চান, তবে-
৫। touch
কমান্ডটাকে চাইলে জটিল করেও বলা যায়। তবে একেবারে সহজ করে বললে এটার কাজ হলো ফাঁকা ফাইল তৈরি করা। ফাইল তৈরির সময় আপনার হাতে কোনো ডেটা না থাকলে এই কমান্ড দিয়ে ফাইল বানিয়ে রেখে দিতে পারেন। নীচের কমান্ড mytext.txt নামে একটি ফাইল তৈরি করবে।
ফাইলটা অবশ্যই আপনার ওয়ার্কিং ডিরেক্টরিতে তৈরি হবে। ধরুন linux ফোল্ডারের ভেতরে ne.txt নামে ফাইল তৈরি করবেন। তাহলে এই কমান্ড-
এখন চাইলে আপনি ls কমান্ড দিয়ে চেক করে নিতে পারেন এই নামে ফাইল আছে কি না।
৬। nano
শুধু ফাইল তৈরি করে বসে থাকলে তো হবে না। ফাইলে কিছু তথ্যও তো রাখা চাই। nano কমান্ড আপনাকে ফাইল ইডিট করার সুযোগ দেবে। ঠিক touch কমান্ডের মতোই nano লিখে ফাইলের নাম path লিখুন।
ধরুন, আমাদের ওয়ার্কিং ডিরেক্টরিতে employee.txt নামে একটি ফাইল আছে। তাহলে একে ইডিট করতে-
ফাইলটা যদি আগে থেকে না থাকে, তবে এই কমান্ডের মাধ্যমে একই সাথে ফাইলটা তৈরিও হবে আবার সাথে সাথে ইডিট মুডে চলে যাবে। ধরুন, আমরা ফাইলটাতে নীচের তথ্যগুলো রাখব। মাউসে রাইট ক্লিক করলেই তথ্যগুলো পেস্ট হয়ে যাবে।
100 Sultan Manager Sales 5,000
200 Niaz Developer Technology 5,500
300 Abir Sysadmin Technology 7,000
400 Riyad Manager Marketing 9,500
500 Kabir DBA Technology 6,000
কিছু লিখে বা পেস্ট করে সেভ করতে চাপুন: ctrl + o। এবার এন্টার চেপে কনফার্ম করুন। ইডিট মুড থেকে বের হয়ে আসতে চাপুন ctrl + x।
৭। cat
এবার আমাদের কাছে employee.txt নামে ফাইল আছে। আমরা এর সব কন্টেন্ট দেখতে চাই। অথবা অন্য কন্টেন্ট জোড়া দিতে চাই। তাহলেই আপনার লাগবে cat কমান্ড।
আরও বিস্তারিত জানতে লিখুন man cat।
৮। echo
এটার সাধারণ ব্যবহার হলো টার্মিনাল কিছু প্রিন্ট করতে। যেমন Hello world প্রিন্ট করতে-
তবে এটা দিয়ে আরও দারুণ দারুণ কাজও করা যায়। যেমন nano ব্যবহার না করেই কোনো ফাইলে টেক্সট যুক্ত করতে চাইলে echo ব্যবহার করতে পারেন।
এই কমান্ড echo এর ভেতরের লাইনটি employee.txt ফাইলের শেষে যুক্ত করবে। এখানে শুধু '>' চিহ্ন ব্যবহার করলে আগের কন্টেন্ট মুছে যাবে। এটা ব্যবহার করতে হবে সাবধানে। আসলে এটা কাজে লাগে আগে থেকে ঐ নামে কোনো ফাইল না থাকলে। আগে থেকে ফাইল থাকলে তার শেষে নতুন তথ্য যুক্ত করতে সবসময় '>>' ব্যবহার করুন।
এই কমান্ডকে অন্য কমান্ডের ইনপুট হিসেবেও ব্যবহার করা যায়। যেমন, bc কমান্ড দিয়ে আমরা হিসাব-নিকাশ করি। দুটো সংখ্যা যোগ করা যায় এভাবে-
এখানে '|' কে বলা হয় পাইপ অপারেটর। এই কমান্ড দিয়ে এক কমান্ডের রেজাল্টকে আরেক কমান্ডের ইনপুট হিসেবে ব্যবহার করা যায়।
৯। mkdir
এটা আসলে make directory এর সংক্ষিপ্ত রূপ। বুঝতেই পারছেন, নতুন ডিরেক্টরি বানাতে এটা ব্যবহার করবেন। নীচের কোড ওয়ার্কিং ডিরেক্টরিতে linux নামে ফোল্ডার বানাবে।
বানানো হয়ে গেলে অবশ্যই ls কমান্ড দিয়ে চেক করে নিতে পারেন।
১০। rm
ফাইল বানালে ডিলিট করাও দরকার হবেই। এইজন্যেই remove এর সংক্ষিপ্ত রূপ rm। তবে directory ডিলিট করতে হলে কমান্ড হবে rmdir। নীচে আমরা এই প্রসেসটা বিস্তারিত দেখাচ্ছি-
বোঝার জন্যে এক লাইন করে করে রান করুন।
১১। passwd
পাসওয়ার্ড চেঞ্জ করতে ও নতুন পাসওয়ার্ড সেট-আপ করতে।
১২। mv
এটা ব্যবহার করবেন ফাইল স্থানান্তর করতে। আবার মজার ব্যাপার হলো, ফাইল রিনেইম করতেও এই কমান্ড ব্যবহার করা যায়। মনে করি, আমাদের ওয়ার্কিং ডিরেক্টরিতে sum.txt নামে একটি ফাইল আছে। একে হোম ডিরেক্টরিতে নেব এভাবে-
ফাইল রিনেইম করা তো আরও সহজ।
আপাতত আমরা এখানেই থামছি। আরও অ্যাডভান্সড লেভেলে যাবার আগে নীচের নিবন্ধগুলো পড়ে নিতে পারেন।
☛ লিনাক্স ও ডেটা সায়েন্স: একটি সরল টেক্সট মাইনিং
☛ লিনাক্স ও ডেটা সায়েন্স: tr কমান্ডের কারিশমা
☛ লিনাক্স টেক্সট প্রসেসিং: নির্দিষ্ট প্যাটার্নের পর সব ডিলিট করুন সহজে
Tuesday, June 11, 2019
ধরুন আমাদের কাছে replace.txt নামে একটি ফাইল আছে। এতে আছে অনেকগুলো ওয়েবপেইজের ঠিকানা (URL)। ধরা যাক, ফাইলের শুরুর অংশ এমন:
google.com/funny
unix.stackexchange.com/questions
isuckatunix.com/ireallydo
আমরা এখান থেকে .com এর পরের অংশটা মুছে ফেলতে চাই। কাজটা করা যায় অনেকভাবেই। তবে আমার মতে সবচেয়ে সহজ হলো sed কমান্ড। এছাড়াও awk কমান্ড দিয়েও করা যায়। করা যায় ex কমান্ড দিয়েও। তবে আমরা আপাতত শুধু sed এবং awk দিয়ে শিখব।
sed কমান্ড
কমান্ডটা কীভাবে কাজ করে দেখতে আগে অন্য একটা উদাহরণ দেখা যাক। ধরুন আমরা Go শব্দটার G-কে P বানিয়ে ফেলতে চাইল। তাহলে কোড হবে-
echo "Go" | sed 's/G/P/'আউটপুট: Po
বুঝতেই পারছেন s এর পরে স্ল্যাশ ("/") দিয়ে যে মুছতে চাই সেটা লিখব। আবার স্ল্যাশ দিয়ে যেটা বসাতে চাই সেটা।
এবার তাহলে replace.txt ফাইলে ফিরে আসা যাক। আমরা .txt ফাইল নিয়ে দেখাচ্ছি, কিন্তু তার মানে এই নয় যে অন্য ফাইলে এটা কাজ করবে না। কাজ করবে যে-কোনো টেক্সট ফাইলের জন্যেই। সেটা হতে পারে r বা পাইথন স্ক্রিপ্ট।
তাহলে .com এর পরের অংশ মুছতে কমান্ড হবে-
sed 's/.com.*/.com/' replace.txt
sed 's/.com.*//' replace.txt
sed কমান্ডের কারিশমা |
sed 's/.com.*//' replace.txt > rep2.txt
cat rep2.txt
head -4 rep2.txtawk কমান্ড
cat replace.txt | awk -F '\\.com' '{print $1".com"}'এখানে '\$1' এর কাজ হলো এক নম্বর কলাম প্রিন্ট করা। আর তার আগে -F অংশ দিয়ে লাইনগুলোকে .com পজিশনে আলাদা কলামে ভাগ করা। তার মানে এখন প্রতি লাইন দুই কলামে ভাগ হয়ে গেল। এবার এখান থেকে '\$1' দিয়ে প্রথম কলাম নিয়ে নিলাম। তবে যেহেতু -F দিয়ে .com পজিশনে লাইন বিভক্ত হয়েছে, সে কারণে .com কলাম সেপারেটর হিসেবে কাজ করেছে। সাধারণ csv ফাইলে যেখানে থাকে কমা। এখন .com তো আমরা এখানে মুছতে চাই না। তাই '\$1' এর সাথে আবার .com রেখে দিয়েছি।
সূত্র
১। Stackoverflow
২। Lifewire
Friday, May 24, 2019
অপারেটিং সিস্টেম হচ্ছে এমন একটি জিনিস যা এই জড়বস্তুগুলোকে ব্যাবহারযোগ্য করে তোলে। আমাদের দেশের অধিকাংশ মানুষই তাদের কম্পিউটারে 'উইন্ডোজ' ব্যাবহার করেন অপারেটিং সিস্টেম হিসেবে। উইন্ডজের বিকল্প কিছুর অস্তিত্ব যে আছে, তা অনেকেই জানেন না। হ্যা, বলছি লিনাক্সের কথা।
কম্পিউটার ব্যাবহারকারীগণের মধ্যে বিরাট একটা অংশ, 'লিনাক্স' শব্দটাই হয়তো শোনেননি। কেউ কেউ শুনেছেন কিন্তু ইহা আসলে কি জিনিস তা জানেন না। কেউ কেউ লিনাক্স শুনলেই মনে করেন 'উবুন্টু'র কথা। আসলে লিনাক্স মানে উবুন্টু না, উবুন্টু লিনাক্সের একটা অপারেটিং সিস্টেম মাত্র! (এরকম আরও অন্তত ৫৫০ টি অপারেটিং সিস্টেম আছে)। আবার অনেকেই মনে করেন, লিনাক্স বোধহয় ব্যাপক কঠিন একটা জিনিস! এটা ব্যাবহার করতে গেলে বিশাল বড় প্রোগ্রামার হতে হবে, কিবোর্ডে খটাখট শব্দ করে কোড লিখা জানতে হবে! আসলে এসবই ভুল ধারণা। লিনাক্স ইউজ করার জন্যে আপনাকে কম্পিউটার সায়েন্টিস্ট হতে হবে না। সাধারণ কম্পিউটার ব্যাবহার কারী হিসেবে কেন আপনারও লিনাক্স ব্যাবহার করা উচিৎ, সেটাই লিখতে বসলাম আজকে।
আজ থেকে প্রায় ২৮ বছর আগে লিনাস টরভাল্ডস নামের ফিনল্যান্ডের একজন উদাসমনা ভদ্রলোক এই 'লিনাক্স' জিনিসটা তৈরী করেছিলেন তার ইউনিভার্সিটির প্রজেক্টটা ঠিকঠাকমতো শেষ করবার জন্যে। যাই হোক, সেই কাহিনি আমরা অন্যদিন শুনবো! সেসময় কম্পিউটারগুলো চলত 'UNIX' অপারেটিং সিস্টেম ব্যাবহার করে। এই ইউনিক্সের সোর্সকোড জনসাধারণের জন্যে উন্মুক্ত ছিল না। মানে ডেভেলপাররা কীভাবে এই জিনিসটি বানিয়েছেন তার কোড কেউ জানত না, জানার সুযোগও ছিল না!
কিন্তু বেচারা লিনাস টরভাল্ডসের ইউনিভার্সিটির প্রজেক্টটার জন্যে সেই কোডের প্রয়োজন ছিল। যেহেতু ইউনিক্সের সোর্সকোড জানার কোনো উপায়ই ছিল না তখন এই আধাপাগল লোকটা নিজের মতকরে একটা অপারেটিং সিস্টেম বানাতে বসে গেলেন! জন্ম হলো লিনাক্সের। নিজের অজান্তেই বানিয়ে ফেললেন দুনিয়া কাঁপানো অপারেটিং সিস্টেম। আরেকটু ক্লিয়ার করে বলি, তিনি মূলত বানিয়েছিলেন লিনাক্স কার্নেল। যা হচ্ছে একটা অপারেটিং সিস্টেমের মূল অংশ যার কাজ হচ্ছে কম্পিউটার নামক জড়বস্তুটির সাথে অপারেটিং সিস্টেম এবং সফটওয়্যারের সংযোগ ঘটানো। আপনি নীচের ছবিটার দিকে তাকালেই বিষয়টা বুঝতে পারবেন আশা করি।
![]() |
কার্নেলের কাজ হলো সফটওয়্যার ও হার্ডওয়্যারের মাঝে সংযোগ ঘটানো |
তিনি লিনাক্স কার্নেল বানানোর পর সেটাকে ওপেনসোর্স করে দিলেন। যাতে যেকেউ চাইলেই সেই লিনাক্স কার্নেলকে মোডিফাই করতে পারে নিজেদের প্রয়োজনে (তার জন্যে অবশ্যই প্রোগামিং জানতে হবে, এমনি এমনি না!)। সেই যে খেলা শুরু হলো, আজ অবধি সে খেলা চলছে তো চলছেই! সবাই নিজেদের প্রয়োজনে নিজের মত করে লিনাক্সকে গড়ে নিচ্ছে! ঠিক এই কারণেই ওপেন সোর্সকোড ব্যাপারটা আমার খুবই প্রিয়! এই ওপেনসোর্স শব্দটার পিছনেও আছে লম্বা ইতিহাস! সেই ইতিহাস এখানে বলাটা ভীষণ অপ্রাসঙ্গিক একটি ব্যাপার হয়ে যাবে! তাই এড়িয়ে যাচ্ছি, পারলে অন্য কোনো লেখায় তুলে ধরার চেষ্টা করবো!
যাইহোক, আবারো লিনাক্স কার্নেলের কথায় ফেরত আসি। লিনাক্স কার্নেলটাকে বেজ হিসেবে ধরে বানানো শুরু হলো নানা রকম অপারেটিং সিস্টেম। এই লিনাক্স বেজড অপারেটিং সিস্টেমগুলোকে আমরা আদর করে ডাকি "ডিস্ট্রিবিউশন" বা "ডিস্ট্রো"। এখন পর্যন্ত বাজারে অন্তত পাঁচশ অপারেটিং সিস্টেম আছে লিনাক্সের। যার যেমনটা দরকার সে তেমন করেই বানিয়ে নিয়েছে। যেমন হ্যাকার বা সিকিউরিটি বিশেষজ্ঞরা ব্যাবহার করেন "Kali Linux", "Parrot Os", "Black Arch"। আবার শিক্ষার্থীদের জন্যে আছে Edubuntu, Endless OS। বিজ্ঞানীরা ব্যবহার করেন 'Scientific Linux', 'Fedora Scientific' ইঞ্জিনিয়াররা ব্যবহার করেন 'LinuxCNC', 'CAELinux', জেনেটিক ইঞ্জিনিয়ার কেমিক্যাল ইঞ্জিনিয়াররা ব্যবহার করেন 'Bio Linux', 'Poseidon Linux' ইত্যাদি!
আর আমার প্রায় পাঁচ বছরের লিনাক্স অভিজ্ঞতায় প্রায় চল্লিশটির মত অপারেটিং সিস্টেম ব্যাবহার করার সুযোগ হয়েছে। আমার কাছে মনে হয়েছে লিনাক্স মোটেও কঠিন কিছু নয়। এটি সার্বজনীন!
কেন উইন্ডোজ ছেড়ে লিনাক্স ব্যাবহার করবেন?
- সিকিউরিটি: নাসা, সার্ন, গুগল, ফেসবুক সার্ভার সহ পৃথিবীর সমস্ত গুরুত্বপূর্ণ জায়গাগুলোতে লিনাক্স অপারেটিং সিস্টেম ব্যাবহার করা হয়। ইন্টারনেট দুনিয়ার প্রায় ৯০% সার্ভারে লিনাক্স ব্যাবহার করা হয় এর সিকিউরিটি সুনামের কারণে। লিনাক্স সার্ভারে অ্যাটাক করা প্রায় অসম্ভব একটি কাজ হ্যাকারদের জন্যে। একজন সাধারণ ইউজার হিসেবে সার্ভার সিকিউরিটি নিয়ে হয়ত আপনার মাথাব্যথা নাও থাকতে পারে, কিন্তু আপনি যদি পার্সোনাল কম্পিউটারের সিকিউরিটির কথা চিন্তা করেন সেক্ষেত্রেও লিনাক্স সবার আগে। উইন্ডোজ কম্পিউটারে হরেক রকম অ্যান্টিভাইরাস ইউজ করেন আপনারা ভাইরাস বা ম্যালওয়্যার থেকে বাঁচার জন্যে। অনেক অ্যান্টিভাইরাস কোম্পানি বাজারে তাদের ব্যাবসা টিকিয়ে রাখতে নিজেরাই ভাইরাস আপলোড করে থাকে। অনেক দাম দিয়ে এসব অ্যান্টিভাইরাস কিনতে হয়। সিরিয়াল কী আপডেট করতে হয়। উইন্ডোযে যেখানে এত ঝামেলা সেখানে লিনাক্স একদম দুর্ভেদ্য একটা অপারেটিং সিস্টেম। কোনোরকম অ্যান্টিভাইরাস প্রয়োজন নেই। আমি আজ পর্যন্ত কাউকে বলতে শুনিনি যে তার লিনাক্স কম্পিউটার এ ভাইরাস এ্যটাক হয়েছে!
- দাম: উইন্ডোজ এর জেনুইন ভার্সন যদি আপনি ব্যাবহার চান তাহলে আপনাকে প্রায় ১০০ থেকে ২৫০ ডলার গুণতে হবে। কিন্তু লিনাক্স আজীবনের জন্য ফ্রি! হ্যা আপনি ঠিকই পড়েছেন! একটি টাকাও খরচ করতে হবে না আপনাকে।
- পারফরম্যান্স: নতুন কম্পিউটার কেনার দুই-তিন মাস পরেই ভীষণ স্লো হয়ে যায় উইন্ডোজ কম্পিউটার। একটা ক্লিক দিয়ে ঘুমিয়ে যাচ্ছেন, ঘুম থেকে উঠে দেখবেন তখনো কাজ হয়নি! মাঝেমধ্যেই আছাড় মেরে ল্যাপটপ ভেঙ্গে ফেলার ইচ্ছে করে হয়ত। বছরের পর বছর লিনাক্স ইউজ করবেন, একটা দিনও স্লো হবে না! কম্পিউটার বন্ধও করে রাখতে হবে না। দিনের পর দিন কম্পিউটার চালু রাখতে পারবেন। আমি যখন এই লিখাটা লিখছি তখনো আমার কম্পিউটার একটানা ২২ দিন ধরে চলছে, এরমধ্যে একবারও শাট ডাউন করার দরকার হয়নি। বাইরে যাবার সময় ঘুম পাড়িয়ে রেখে গেছি (মানে স্লিপ মুডের কথা বলছি)।
- আপডেট: উইন্ডোজের বিরক্তিকর আপডেটের সম্মুখীন হননি এরকম মানুষ হারিকেন দিয়েও খুঁজে একটা পাওয়া যাবে বলে
আমার মনে হয় না! ভীষণ রকম স্লো আর ল্যাগি আপডেট, সাথে রিস্টার্ট করার প্যারা
তো আছেই! রিস্টার্ট করতে গেলেও চার পাচ মিনিট সময় চলে যায়! জীবনটাই
তামাতামা হয়ে যায়! 😀লিনাক্সের যেকোনো অপারেটিং সিস্টেমে এই আপডেটের
কাজটা সেরে ফেলতে পারবেন মাত্র একটা ক্লিক দিয়েই। সেইসাথে ইনস্টল থাকা
প্রত্যেকটা অ্যাপ আপডেট হয়ে যাবে কোনো ঝামেলা ছাড়াই। উইন্ডোজের মত শুধুমাত্র সিস্টেম আপডেট হবে না। খুঁজে
খুঁজে আলাদাভাবে আর কোনো অ্যাপ আপডেট করতে হবে না।
মাত্র এক ক্লিক এ আপডেটের ঝামেলা শেষ! - অ্যাপ ইনস্টলেশন: উইন্ডোজে নতুন কোনো অ্যাপ ইনস্টল করাও ঝামেলা! গুগল থেকে খুজে খুজে ডাউনলোড করো,
তারপর ইনস্টল করো, দুদিন যেতে না যেতেই আবার রেজিস্ট্রেশন কী দিতে হবে
নাইলে অ্যাপ কাজ করবে না! মহা মুশকিল! লিনাক্সে এত খোঁজাখুঁজি করতে
হবে না। সফটওয়্যার ম্যানেজারে সার্চ করবেন আপনার প্রয়োজনীয় অ্যাপ, একটা
ক্লিক করবেন, কিচ্ছা খতম! কোনো সিরিয়াল কী, রেজিট্রেশন ফী হ্যানত্যান
ঝামেলা নেই! সফটওয়্যার ম্যানেজার জিনিসটা প্লেস্টোরের মত, সার্চ করবেন আর
ডাউনলোড করবেন। এই ফাঁকে একটি তথ্য জানিয়ে দেই, আপনার হাতে থাকা
অ্যান্ড্রয়েড ফোনটিও কিন্তু লিনাক্স অপারেটিং সিস্টেম!
Software Manager/Store - প্রাইভেসি: উইন্ডোজ আপনার অগোচর আপনার প্রত্যেকটি কর্মকাণ্ডই নজরদারী করে, আপনার প্রত্যেকটি ডেটা তাদের সার্ভারে জমা হতে থাকে। লিনাক্স আপনার কোনো ডেটাই তাদের সার্ভারে পাঠায় না, যদি প্রয়োজন বশত কোনো ডেটা বা সিস্টেম লগ তারা নিতে চায়, তার আগে অবশ্যই আপনাকে নোটিফাই করবে।
- ইউজার ইন্টারফেস: এবার আসি ইউজার এনভায়রনমেন্ট এর
ব্যাপারটায়। সারাটা জীবন ধরে উইন্ডোজের চেহারা দেখতে দেখতে বিরক্ত হয়েছেন?
মাঝেমধ্যেই একটু সুন্দর করে সাজাতে চেয়েছেন নিজের কম্পিউটার? কিন্তু কালার
ছাড়া আর কোনোকিছু চেঞ্জ করতে পারেননি? তাহলে আপনি চোখ বন্ধ করে লিনাক্স
ব্যাবহার শুরু করুন। কালার, ফন্ট, আইকন থেকে শুরু করে কার্নেল পর্যন্ত
চেঞ্জ করতে পারবেন দুই একটা ক্লিক করেই! আমি নিজেই তো Asus ল্যাপটপ এ
MacBook এর স্বাদ নিচ্ছি! ও আচ্ছা! ম্যাক অপারেটিং সিস্টেমও কিন্তু লিনাক্স
কার্নেলেই বানানো! মোদ্দাকথা, আপনি চাইলেই আপনার মনের মাধুরী মিশিয়ে
আপনার কম্পিউটার কাস্টমাইজ করতে পারবেন। টাকা দিয়ে কিনেছেন, আপনার
কম্পিউটার থাকবে আপনার ইচ্ছামত, তাহলে কেন উইন্ডোজ এর কাছে বন্দী হয়ে
থাকবেন? আমার ল্যাপটপের স্ক্রিনশটগুলো দেখুন, ম্যাকবুক ভেবে ভুল করবেন না!
ফাইল ম্যানেজার
Application Drawer System Info System Monitor - টার্মিনাল: আপনি যদি অ্যাডভান্স ইউজার হয়ে থাকেন তাহলে উইন্ডোজ কমান্ড লাইনের
সাথে নিশ্চয় পরিচিত। উইন্ডোজ কমান্ড লাইন অথবা পাওয়ারশেল জিনিসটাকে আমার
কাছে নিছক খেলনা মনে হয়েছে লিনাক্স টার্মিনালের তুলনায়। টার্মিনাল দিয়ে
আপনি চাইলে আপনার কম্পিউটার কেন মহাকাশ পর্যন্ত কাঁপিয়ে দিতে পারবেন। আমি
একটুও বাড়িয়ে বলছি না, টার্মিনাল এতটাই শক্তিশালী!
Terminal
![]() |
New cmd |
ডেটা সায়েন্সে লিনাক্স কীভাবে কাজে লাগতে পারে জানতে চোখ রাখুন এখানে।
আরও পড়ুন
☛ লিনাক্স ও ডেটা সায়েন্স: tr কমান্ডের কারিশমা
Thursday, May 16, 2019
যাদের লিনাক্স নেই তারা এই মিনি টিউটোরিয়ালকে ফলো করতে WSL (উইন্ডোজ সাবসিস্টেম ফর লিনাক্স) ব্যবহার করতে পারেন। আমি নিজেও আসলে তাই করছি।
এখানে আমরা দেখব উইকিপিডিয়ার Star আর্টিকেলের ভূমিকা অংশে কোন শব্দগুলো সবেচেয়ে বেশি বার আছে। এটা টেক্সট মাইনিং এর একেবারে প্রাথমিক একটা কাজ। আমরা ভবিষ্যতে দেখতে পারি, উইকপিডিয়ার সব আর্টিকেলের ভূমিকায় একই শব্দগুলোই বেশি থাকে কি না।
তাহলে কাজে নেমে পড়া যাক। মূল কাজে যাবার আগে আমরা টেক্সটটাকে একটা ফাইলে নিয়ে সেভ করে রাখি। লিনাক্সের ফাইল ম্যানেজিং আগে থেকেই পারলে নীচের কথাগুলো অবশ্য অতিরঞ্জন হবে।
- তাহলে শুরুতে আমরা আর্টিকেলের টেক্সটটা কপি করে নেই। আমরা শুরু থেকে Contents সেকশনের আগ পর্যন্ত কপি করব। এই মুহূর্তে লাস্ট লাইনটা এ রকম: ...such as a star cluster or a galaxy। উইকপিডিয়া পরিবর্তনশীল বলে এটা হয়ত সব সময় নাও থাকতে পারে।
- এবার লিনাক্স টার্মিনালে আসি। একটা ফাইল বানাই। নাম দেই star_wiki.txt। এটার জন্য কোড touch star_wiki.txt
- এবার এই ফাইলে টেক্সটখানা বসাতে হবে। তাহলে ইডিট মোডে যেতে টাইপ করি: nano star_wiki.txt
- এবার আগে কপি করা টেক্সটটুকু এখানে বসিয়ে দেই। এখানে Ctrl + V সবসময় কাজ করে না। তার চেয়ে বরং মাউসের রাইট ক্লিক করলেই পেস্ট হয়ে যায়।
- এবার Ctrol + O এবং এন্টার চেপে তারপর Ctrl + X চেপে বের হয়ে আসুন।
cat star_wiki.txt | tr '[:upper:]' '[:lower:]' | grep -oE '\w+' | sort | uniq -c | sort -nr | head -n 10
- cat কমান্ড কোনো ফাইলের টেক্সটগুলোকে টার্মিনালে প্রিন্ট করে। ফাইল জোড়া দিতেও এটা ব্যবহার করা যায়। তবে সেটা আমাদের আজকের আলোচনার অংশ নয়। তাহলে আপাতত শুধু রান করুন cat star_wiki.txt। এটা আসলে টেক্সটটা দেখানো ছাড়া আর কিছুই করবে না। ফাইলটায় যেহেতু টেক্সট খুব বেশি নেই, তাই একে প্রিন্ট টার্মিনালে প্রিন্ট করতে অসুবিধা নেই। এবার পাইপ কমান্ড দিয়ে আমরা অ্যানালাইসিসের দিকে যাব।
- tr কমান্ডের কারিশমা নিয়ে আমরা আগেই বলেছিলাম। টেক্সট কনভার্ট বা ডিলিট করতে এর ব্যবহার খুব বেশি। এখানে tr '[:upper:]' '[:lower:]' কমান্ড দিয়ে আমরা আমাদের ফাইলের সব লেখাকে ইংরেজি ছোট হাতের বানিয়ে নিলাম। তাহলে এবার কোড হলো-
cat star_wiki.txt | tr '[:upper:]' '[:lower:]'
- এখনও টেক্সটটা আছে প্যারাগ্রাফ আকারে। অ্যানালাইসিসের সুবিদার্থে আমরা প্রতিটি শব্দকে আলাদা আলাদা লাইনে নিয়ে আসব। এ জন্যেই পাইপ দিয়ে পরের কমান্ডে চলে গেলাম। বাড়তি কোড লাগবে grep -oE '\w+' । তাহলে সব মিলিয়ে হবে-
cat star_wiki.txt | tr '[:upper:]' '[:lower:]' | grep -oE '\w+'
- এবার আমরা শব্দগুলোকে আদ্যক্ষর অনুসারে সাজিয়ে নেব। এ জন্য লাগবে sort কমান্ড। এবার কোড হলো-
cat star_wiki.txt | tr '[:upper:]' '[:lower:]' | grep -oE '\w+' | sort
- এখানে একাধিকবার থাকা শব্দগুলোকে একাধিকবারই দেখাচ্ছে। যেমন দেখুন উপরের দিকে অনেকগুলো a দেখা যাচ্ছে। নীচে আবার with আছে চারবার। আমরা এবার একটা শব্দকে একবারই শুধু রাখব। সাথে সেটা কয়বার ছিল সেই তথ্য নিয়ে আসব। এর জন্য কোড হলো uniq -c। c হলো count বা গণনার জন্যে। সব মিলিয়ে এবার-
cat star_wiki.txt | tr '[:upper:]' '[:lower:]' | grep -oE '\w+' | sort | uniq -c
- এটা ভালোই হলো। কিন্তু কোন শব্দগুলো বেশি আছে সেটা সহজে বোঝা যাচ্ছে না। তাই আবার sort করা দরকার। যাতে বেশি ফ্রিকুয়েন্সির শব্দগুলো শুরুতে থাকে। এজন্য আমরা sort -nr ব্যবহার করব। এখানে n মানে হলো নিউমেরিক সর্ট। আর r মানে হলো রিভার্স সর্ট। এটা না করলে বেশি ফ্রিকুয়েন্সির শব্দ থাকবে শেষে। এবার তাহলে-
cat star_wiki.txt | tr '[:upper:]' '[:lower:]' | grep -oE '\w+' | sort | uniq -c | sort -nr
- মূল কাজ আসলে শেষ। কিন্তু সব শব্দের ফ্রিকুয়েন্সি দেখে কোনো লাভ নেই। আমরা দেখব কোন দশটি শব্দ সবচেয়ে বেশি আছে। head -10। অবশ্যই ১০ এর বদলে আপনি অন্য কিছি দিতেই পারেন।
- তাহলে ফাইনাল কমান্ড দাঁড়াল
cat star_wiki.txt | tr '[:upper:]' '[:lower:]' | grep -oE '\w+' | sort | uniq -c | sort -nr | head -10
Monday, May 13, 2019
খুব সাধারণ একটা উদাহরণ দিয়ে শুরু করি। To follow along, আপনার লিনাক্স টার্মিনাল খুলুন। উইন্ডোজে লিনাক্সের সুবিধা ব্যবহার করতে ব্যাবহার করুন WSL। পুরো নাম উইন্ডোজ সাবসিস্টেম ফর লিনাক্স। ইনস্টল করতে সময় লাগবে এক মিনিট। কীভাবে করবেন দেখুন এখানে।
১। স্পেসকে রিপ্লেস করতে
দেখা যাক, স্পেসকে ডট দিয়ে রিপ্লেস করা যায় কি না।
এটা থেকে আউটপুট আসবে Welcome.to.stat.mania.
চাইলে কমা (,), কোলন (:) বা অন্য যে-কোনো ক্যারেক্টার দিয়েই রিপ্লেস করা যায়।
যেমন echo "Welcome to stat mania" | tr [:space:] '_' থেকে আসবে Welcome_to_stat_mania_।
আর স্পেসকে ট্যাব দিয়ে রিপ্লেস করতে এই কোড
echo "Welcome to Stat Mania" | tr "[:space:]" "\t"আসবে: Welcome to Stat Mania
২। আপার কেইস থেকে লোয়ার কেইস বা উল্টোটা
ইংরেজি ছোট হাতের অক্ষর থেকে বড় হাতের অক্ষরে রূপান্তর করতে এই কমান্ড সিদ্ধহস্ত।
echo "Weclcome to Stat Mania" | tr "[:upper:]" "[:lower:]"আসবে: weclcome to stat mania
মানে, সব অক্ষর ছোট হাতের হয়ে যাবে। একইভাবে ছোট হাতের অক্ষরকে বড় হাতের করতে হলে upper আর lower কে ইন্টারচেঞ্জ করে দিতে হবে।
echo "Welcome to Stat Mania" | tr "[:lower:]" "[:upper:]"আসবে: WELCOME TO STAT MANIA
এই একই কাজটি করা যায় আরেকভাবে।
echo "Welcome to Stat Mania" | tr "[a-z]" "[A-Z]"আসবে: WELCOME TO STAT MANIA
৩। {} থেকে ()
cat sample.txt | tr "{}" "()"এবারে আমি sample.txt ফাইলে রেখেছিলাম এই কথা।
GO OFF
{My OS is Ubuntu}
কমান্ড অ্যাপ্লাই করে পেলাম
GO OFF
(My OS is Ubuntu)
আবার চাইলে এই কোডকে একটু বড় করে tr আবারও অ্যাপ্লাই করা যায়।
cat sample.txt | tr "{}" "()" | tr "[A-Z]" "[a-z]"এবার এল:
go off
(my os is ubuntu)
৪। নির্দিষ্ট কোনো ক্যারেক্টার ডিলিট করতে
অদ্ভুত কোনো কিছু ডিলিট করতে এটা দারুণ কাজে আসবে। ডেটা সায়েন্সে ডেটা ক্লিনিং করতে এটি খুব কাজে লাগবে। যেমন ধরুন ভুলক্রমে শহরে নাম টাইপ করতে গিয়ে সব শহরের শেষে একটা বাড়তি . পড়ে গেছে। ধরুন আমরা city.csv ফাইলের শহরের লিস্ট নিয়ে কাজ করছি। এটা আছে এরকম আপাতত।
id, city
1,Dhaka.
2, Cumilla.
3, Lakshmipur.
4, Feni.
5, Chandpur.
6, Barishal.
7, Rangpur.
8, Rajshahi.
9, Sylhet.
এবার আমরা শহরের ডটগুলো মুছে ফেলব।
cat city.csv | tr -d "."আসবে:
id, city
1,Dhaka
2, Cumilla
3, Lakshmipur
4, Feni
5, Chandpur
6, Barishal
7, Rangpur
8, Rajshahi
9, Sylhet
বুঝতেই পারছেন, -d এর পরের কোটেশনের মধ্যে যা দেবেন সেটা ডিলিট হয়ে যাবে। অবশ্যই এই কমান্ড সতর্কতার সাথে ব্যবহার করতে হবে।
৫. নির্দিষ্ট কোনো ক্যারেক্টার রিপ্লেস করতে
এর আগে আমরা দেখেছি বিশেষ কিছু দিয়ে অন্য কিছু রিপ্লেস করা। এবার দেখব যে-কোনো কিছুকে যে-কোনো অন্য কিছু দিয়ে রিপ্লেস করার উপায়।
echo "Nothing is impossible" | tr "i" "P"এখানে সবগুলো i এর বদলে P চলে আসবে।
আসবে: NothPng Ps PmpossPble
এই আউটপুটটা দেখতে বিদঘুটে হলেও এর শক্তি কিন্তু বোঝা গেছে।
৬. সব সংখ্যা (আসলে ডিজিট বা অঙ্ক!) ডিলিট করতে
echo "My roll number is 123" | tr -d "[:digit:]"হয়ে যাবে: My roll number is
আবার উল্টোও করা যাবে। মানে ডিজিট থাকবে। আর সব মুছে যাবে। তাহলে এই কোড:
echo "My roll number is 123" | tr -cd "[:digit:]"আসবে: 123
দেখা যাচ্ছে, R এর পাশাপাশি লিনাক্স টার্মিনালও ডেটা সায়েন্সের একটা দারুণ টুল হতে পারে। ভবিষ্যতে আমরা আরও নানান কোড দেখব। টার্মিনাল থেকে গ্রাফ আঁকা থেকে শুরু করে মডেলিং পর্যন্ত করা যায়। অবশ্যই আমরা এগুলো দেখব ইনশাআল্লাহ।
সূত্র:
১। Geeksforgeeks
Monday, April 8, 2019
অথচ কাজগুলো করা যায় কয়েক শব্দের এক লাইন কোড দিয়েই। এখানে পিডিএফ ও ইমেজ বিষয়ক এমন কয়েকটি কমান্ডই দেখব আমরা।
কাজটা আমরা করব কমান্ড লাইনে। আপনি লিনাক্স ইউজার হলে তো কথাই নেই। না হলেও সমস্যা নেই। WSL ইনস্টল করে নিলেই হলো। কীভাবে করবেন দেখে নিন এখানে।
আরও পড়ুন
☛ লিনাক্স কমান্ড লাইন: হাতেখড়ি
এবার তাহলে টার্মিনাল বা WSL ওপেন করুন। এখানের কাজগুলো করতে হলে আমাদের একটি বিখ্যাত প্যাকেজ লাগবে। নাম ImageMagick। এটা ইনস্টল করে নিন তাহলে। লিঙ্কে বিস্তারিত বলা আছে। অত ঝামেলায় যেতে না চাইলে নীচের কোডটা রান করে দেখুন।
১। পিডিএফ জোড়া দিতে
মনে করুন, আপনার ওয়ার্কিং ডিরেক্টরিতে অনেকগুলো পিডিএফ ফাইল আছে। এর মধ্যে কয়েক্টিকে আপনি জোড়া দিতে চাচ্ছেন। ধরুন আমরা pdf1.pdf, pdf2.pdf, pdf3.pdf এই তিনটি ফাইলকে জোড়া দিয়ে merged.pdf নামে একটি ফাইল বানাব।
কাজটা একইরকম সহজ করে করা যায় pdfunite টুল দিয়েও। সেক্ষেত্রে ওপরে convert এর জায়গায় শুধু pdfunite লিখলেই হবে।
অথবা ধরুন, আমার ওয়ার্কিং ডিরেক্টরির সবগুলো পিডিএফ নিয়েই নতুন একটা পিডিএফ বানাব। সেটা আরও সহজ।
এখানে * দিয়ে বোঝানো হচ্ছে .pdf এক্সটেনশনযুক্ত সকল পিডিএফ ফাইল।
অথবা ধরুন, নামে মিল আছে এমন কিছু ফাইলকে আমরা মার্জ করব। ধরা যাক, আমরা যে ফাইলগুলো মার্জ করব সেগুলোর সবার নামের শেষে bd আছে। মানে এমন fruitbd.pdf, fishbd.pdf ইত্যাদি। তাহলে-
২। ছবি থেকে পিডিএফ
ধরুন আমরা image.jpg কে image.pdf বানাব। তাহলে-
আগের মতোই যদি সব jpg ছবিকে পিডিএফ বানাতে চাই তাও সম্ভব।
একইভাবে png, jpeg ইত্যাদি ছবিকেও সহজেই পিডিএফ বানিয়ে নিতে পারেন।
৩। পিডিএফ ভাঙতে-
মনে করুন আমাদের পিডিএফ ফাইলের নাম input.pdf। আমরা এর ১ থেকে ১০ নং পেইজ নিয়ে একটা পিডিএফ ফাইল বানাব। এখানে মাথায় রাখতে হবে, এখানে ইন্ডেক্সিং শুরু হয় ০ থেকে। তাই, ১-১০ না লিখে আমরা লিখব ০-৯।
একেক পেইজ একেক জায়গা থেকে নিতে চাইলেও সমস্যা নেই। ধরুন আমরা ১ থেকে ৫ নং পেইজ নেব। তারপর নেব ৭ নং পেইজ। তারপর ১০ থেকে ১২।
আজ এ পর্যন্তই। ভালো থাকুন।
সূত্র
১। লিনাক্সকমান্ডো
২। উইকিহাউ