কম্পিউটার টিউটোরিয়াল

Linux-এ টার্মিনাল আউটপুট ফাইলে সেভ করার ৫টি পদ্ধতি

টার্মিনাল হলো Linux সিস্টেমের হৃৎপিণ্ড। Linux-এ চলে এমন সব প্রোগ্রাম একটি টার্মিনাল কমান্ড লাইনের নিচে চলে। এতে বড় প্রোগ্রামও অন্তর্ভুক্ত, যেমন ওয়েব ব্রাউজার এবং এমনকি সহজ টেক্সট এডিটর। তাই, টার্মিনাল সঠিকভাবে ব্যবহার করতে পারা একটি গুরুত্বপূর্ণ ধাপ যদি আপনি অপারেটিং সিস্টেম কীভাবে কাজ করে সেটা বুঝতে চান।

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

১. নির্দিষ্ট টার্মিনাল ব্যবহার করা

এটার সাথে ডিল করার প্রথম উপায় হলো এমন একটি টার্মিনাল ব্যবহার করা যা আউটপুট ফাইলে সেভ করতে সাপোর্ট করে। উদাহরণস্বরূপ, স্ট্যান্ডার্ড KDE ইনস্টলেশনের সাথে আসা Konsole টার্মিনালে আউটপুট ফাইলে লেখার একটি অপশন থাকে।

এটি করতে, মেনু বারে "File" বাটন চাপুন এবং "Save output as …" ক্লিক করুন।

এটি একটি উইন্ডো ডায়লগ খুলবে যেখানে আপনি টার্মিনাল আউটপুট সেভ করতে পারেন। সেখান থেকে, আপনি বেছে নিতে পারেন আপনি কোথায় ফাইলটি সেভ করতে চান।

আপনি GNOME টার্মিনালে একটি কমান্ডের আউটপুটও সেভ করতে পারেন। টার্মিনালে রাইট-ক্লিক করুন এবং "Copy output as HTML" চাপুন। এটি টার্মিনাল টেক্সট আপনার ক্লিপবোর্ডে লোড করবে। সেখান থেকে, আপনি যেকোনো টেক্সট এডিটরে পেস্ট করতে পারেন।

২. আউটপুট রিডাইরেকশন

এটার সাথে ডিল করার আরেকটি উপায় হলো UNIX শেলের বিল্ট-ইন অপারেটর ব্যবহার করা। ये Linux-এ ডিফল্ট ফাংশন যা একটি প্রোগ্রামের টেক্সট আউটপুট ফাইলে রিডাইরেক্ট করতে পারে। তিনটি অপারেটর আছে যা এটি করতে পারে:

  • > অপারেটর একটি ফাইলের কন্টেন্ট তৈরি করবে বা রিপ্লেস করবে আপনার প্রোগ্রামের আউটপুট দিয়ে। এটি উপযোগী যদি আপনি আপনার প্রোগ্রামের বর্তমান ফলাফল একই ফাইলে ডাম্প ও ভিউ করতে চান।
  • >> অপারেটরও আপনার প্রোগ্রামের আউটপুট দিয়ে একটি ফাইল তৈরি করবে। যাইহোক, এই অপারেটর শুধু আউটপুট অ্যাপেন্ড করবে, রিপ্লেস করবে না। এটি উপযোগী যদি আপনি আপনার প্রোগ্রামের ফলাফল liên tục একটি ফাইলে ডাম্প করতে চান।
  • শেষে, 2> অপারেটর একটি স্পেশ্যাল টাইপের অপারেটর যা রিপোর্ট باك হওয়া এরর প্রিন্ট করবে। এটি ডিবাগিং-এ খুব উপযোগী, কারণ এটি সমস্যাটি দেখায় যা প্রোগ্রামটি ক্র্যাশ হওয়ার আগে এনকাউন্টার করেছিল।

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

echo "maketecheasier" > hello.txt

আমি echo প্রোগ্রামকে "maketecheasier" শব্দটি আউটপুট করতে বললাম, তারপর > অপারেটর এবং একটি ফাইল নাম যোগ করলাম। এই বলল UNIX শেলকে আউটপুট "hello.txt" ফাইলে লিখতে স্ক্রিনে প্রিন্ট করার বদলে।

৩. Tee

আউটপুট রিডাইরেকশন ছাড়া, আপনি একটি টার্মিনাল কমান্ডের আউটপুট সেভ করতে পারেন tee নামে একটি প্রোগ্রাম ব্যবহার করে। এটি একটি GNU প্রোগ্রাম যা আপনাকে স্ট্যান্ডার্ড ইনপুট থেকে পড়তে ও লিখতে দেয়। UNIX পাইপসহ এই প্রোগ্রাম ব্যবহার করে একটি কমান্ডের আউটপুট ফাইলে লিখুন।

নিচের উদাহরণটি বিবেচনা করুন:

echo "maketecheasier" | tee hello.txt

এখানে, আউটপুট রিডাইরেকশন ব্যবহার করার বদলে, আমি আউটপুটকে পাইপ (|) করলাম tee-তে।

নোট: একটি পাইপ একটি প্রোগ্রামের আউটপুট নিয়ে অন্য প্রোগ্রামের ইনপুটে ফিড করে। এটি আপনাকে একাধিক প্রোগ্রাম একসাথে গ্লু করতে দেয়, যতক্ষণ না সেগুলো সব স্ট্যান্ডার্ড ইনপুট ও আউটপুট ব্যবহার করে।

৪. Script

টার্মিনাল থেকে আউটপুট পুল করার আরেকটি উপায় হলো script, একটি বিল্ট-ইন Linux প্রোগ্রাম যা আপনি টার্মিনালে যা টাইপ করেন সেটা এবং তার আউটপুট সব রেকর্ড করে।

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

এটি ব্যবহার করতে, নিচের কমান্ড রান করুন:

script filename.txt

এটি একটি স্ক্রিপ্ট এনভায়রনমেন্ট শুরু করবে যেখানে আপনি কমান্ড রান করা শুরু করতে পারেন। একটি গুরুত্বপূর্ণ কথা মনে রাখতে হবে, script সেই সেশনে আপনি যা করছেন সব ক্যাপচার করে। নিচের উদাহরণটি বিবেচনা করুন:

Script started on 2022-03-27 18:02:29+08:00 [TERM="rxvt-unicode-256color" TTY="/dev/pts/2" COLUMNS="77" LINES="22"] [?2004h[ balaraw:~ ]$ ls [?2004l Desktop Downloads mail News pods documents hello.txt Mail pics tmp vids [?2004h[ balaraw:~ ]$ exit [?2004l exit Script done on 2022-03-27 18:03:19+08:00 [COMMAND_EXIT_CODE="0"]

Script-এ আপনার চাপা সব কীপ্রেস এবং কন্ট্রোল ক্যারেক্টার অন্তর্ভুক্ত থাকে। আমার কেসে, এতে সকল "অদৃশ্য" কী অন্তর্ভুক্ত ছিল যা আমি চাপেছিলাম, Tab এবং Backspace কীপ্রেস সহ।

একবার আপনি সেশনে ডন হলে, exit টাইপ করুন। এটি Script প্রোগ্রাম শেষ করবে এবং পুরো লগ আপনার স্পেসিফাইড ফাইলে লিখবে।

৫. ফ্রেমবাফার টার্মিনাল ক্যাপচার

শেষে, আপনি Linux ফ্রেমবাফার থেকে পুল করে টার্মিনালের আউটপুটও পেতে পারেন। এটি উপযোগী যদি আপনি সরাসরি একটি টেলিটাইপে কাজ করছেন এবং একটি প্রোগ্রামের আউটপুট ক্যাপচার করতে চান।

ফ্রেমবাফার ডিভাইস ক্যাপচার করতে, টেলিটাইপে থাকাকালীন নিচের কমান্ড রান করুন:

cat /dev/fb0 > capture.raw

এখানে একটি গুরুত্বপূর্ণ কথা মনে রাখতে হবে যে এইভাবে ফ্রেমবাফার ডিভাইস ক্যাপচার করা মানে আপনি ফ্রেমবাফার এর র‍ бай্টস একটি ফাইলে ডাম্প করছেন। সেটি দেখতে, আপনাকে একটি ইমেজ এডিটরে লোড করতে হবে এবং ম্যানুয়ালি কালার এবং বিট ডেপ্থ অ্যাডজাস্ট করতে হবে। এটি ন শুধু টাইম কনসামিং, বরং সহজেই ভুল হতে পারে।

এটার সাথে ডিল করার একটি উপায় হলো থার্ড-পার্টি প্রোগ্রাম ব্যবহার করা, যেমন fbgrab। এটি বর্তমান টেলিটাইপ স্ক্রিন ফ্রেমবাফার ডিভাইস থেকে গ্র্যাব করে এবং PPM বা PNG ফাইলে ডাম্প করে।

fbgrab ইনস্টল করাও আপেক্ষিক সহজ। Debian এবং Ubuntu-ভিত্তিক ডিস্ট্রিবিউশনে, apt ব্যবহার করুন:

sudo apt install fbgrab

Arch Linux-এ, pacman রান করুন:

sudo pacman -S fbgrab

fbgrab ব্যবহার করে টার্মিনাল আউটপুট ক্যাপচার করা

একবার ইনস্টল হলে, Control + Shift + Alt + F3 চাপে টেলিটাইপে ড্রপ করুন, তারপর fbcat বা fbgrab রান করুন।

Fbcat একটি সিম্পলার প্রোগ্রাম যা বর্তমান ফ্রেমবাফার স্ক্রিন গ্র্যাব করে এবং PPM ইমেজে সেভ করে। এটি একটি লো-লেভেল র‍ ইমেজ ফরম্যাট যা আপনি একটি ইমেজ এডিটরে লোড করে PNG-তে কনভার্ট করতে পারেন। Fbcat κυρίως উপযোগী যদি আপনি একটি লোয়ার বিট-ডেপথ ডিসপ্লে ক্যাপচার করতে চান যেটি র‍ ইমেজ ফরম্যাটে ক্যাপচার করতে প্রয়োজন।

fbcat প্রোগ্রাম ব্যবহার করে ক্যাপচার করতে, নিচের কমান্ড রান করুন:

fbcat > capture.ppm

এটি বর্তমান ডিসপ্লে স্ক্রিন গ্র্যাব করবে এবং কন্টেন্ট capture.ppm ফাইলে ডাম্প করবে।

Fbgrab, অন্যদিকে, একটি আরও জটিল প্রোগ্রাম যা হাইয়ার বিট-ডেপথ ডিসপ্লে ক্যাপচার করার জন্য ডিজাইন করা। অধিকাংশ ক্ষেত্রে, আপনি আপনার টেলিটাইপ স্ক্রিন ক্যাপচার করতে এটি ব্যবহার করবেন। এটি ডিফল্টভাবে PNG-তে সেভ সাপোর্ট করে এবং একটি ডিফারেন্ট টেলিটাইপ সিলেক্ট করার অপশন আছে।

fbgrab প্রোগ্রাম ব্যবহার করে ক্যাপচার করতে, নিচের কমান্ড রান করুন:

sudo fbgrab -c 3 capture.png

এটি থার্ড টেলিটাইপ স্ক্রিন গ্র্যাব করবে এবং capture.png ফাইলে সেভ করবে।

আপনি যদি Linux টার্মিনালের জন্য আরো গাইড খুঁজছেন, তবে এই আর্টিকেল চেক আউট করুন কমান্ড লাইন থেকে ইমেইল পাঠানোর সম্পর্কে।

প্রশ্নোত্তর

১. সাহায্য! Fbgrab কাজ করছে না; ছবিটি শুধু কালো বা ব্লাঙ্ক।

এটি সম্ভবত কারণ fbgrab একটি ডিফারেন্ট ফ্রেমবাফার ডিভাইস ব্যবহার করছে টার্মিনাল আউটপুট ক্যাপচার করার জন্য। "/dev" ফোল্ডার লিস্ট করে সিস্টেম যে বর্তমান ফ্রেমবাফার ডিভাইস ব্যবহার করছে সেটা চেক করুন।

ls /dev

সেখান থেকে, "/dev/fbX" ডিভাইস খুঁজুন। সাধারণত, Linux "/dev/fb0"-কে তার ফ্রেমবাফার হিসেবে ব্যবহার করে। যাইহোক, আপনার সিস্টেম যদি একটি ডিফারেন্ট ফ্রেমবাফার ব্যবহার করে, যেমন "/dev/fb1", তবে আপনি নিচের কমান্ড পাস করতে পারেন fbgrab-কে বলতে সেটি সেটা ফ্রেমবাফার থেকে পুল করতে:

fbgrab -d 1 capture.png

২. কি আমি একটি প্রোগ্রামের ইনপুট হিসেবে লিখা ফাইলের কন্টেন্ট গ্র্যাব করতে পারি?

হ্যাঁ! উপরে আলোচিত তিনটি অপারেটর ছাড়া, আপনি < অপারেটরও ব্যবহার করতে পারেন ফাইল থেকে ডেটা পুল করতে। শেল তারপর এটিকে একটি প্রোগ্রামের ইনপুট হিসেবে বিবেচনা করবে।

এভাবে করলে অন্য প্রোগ্রামের উপর নির্ভরশীলতা দূর হয় যেগুলো আপনার জন্য টেক্সট প্রিন্ট করবে। নিচের উদাহরণগুলো বিবেচনা করুন:

[1] cat test.txt | program
[2] program < test.txt
  • প্রথম উদাহরণে cat প্রোগ্রাম কল করে টেক্সট লোড করা, তারপর পাইপ অপারেটর দিয়ে cat-এর আউটপুট আপনার প্রোগ্রামে পাইপ করা।
  • দ্বিতীয় উদাহরণে, আপনার প্রোগ্রাম কল করা, তারপর < অপারেটর পিক করা, যা পরবর্তী আর্গুমেন্টকে এর ইনপুট হিসেবে বিবেচনা করে।

৩. কি script কে বাধ্য করার কোনো উপায় আছে শুধু একটি কমান্ডের আউটপুট ক্যাপচার করার জন্য?

হ্যাঁ, একটি সিঙ্গেল কমান্ডের জন্য শুধু script করা সম্ভব। এটি ট্রাবলশুটিং-এ খুব উপযোগী যখন আপনি শুধু একটি প্রোগ্রামের আউটপুট ক্যাপচার করতে চান। নিচের কমান্ড রান করে এটি করুন:

script -c "your-command" test.txt

-c ফ্ল্যাগটি script প্রোগ্রামকে বলে শুধু প্রোগ্রাম রান করতে: your-command। সেখান থেকে, এটি এর আউটপুট test.txt নামে একটি টেক্সট ফাইলে লিখবে।

  1. লিনাক্স টার্মিনালে স্পেলিং চেক করার উপায়

  2. লিনাক্স টার্মিনালে Screen দিয়ে মাল্টিটাস্কিং করার পদ্ধতি

  3. লিনাক্স টার্মিনাল থেকে FFMPEG ব্যবহার করে ভিডিও ফাইল সাইজ কমাতে

  4. লিনাক্স টার্মিনাল ক্যালকুলেটর হিসেবে ব্যবহার করুন