টার্মিনাল হল একটি লিনাক্স সিস্টেমের হৃদয়। লিনাক্সে চলা প্রতিটি প্রোগ্রাম একটি টার্মিনাল কমান্ড লাইনের নীচে চলছে। এর মধ্যে রয়েছে বিশাল প্রোগ্রাম, যেমন ওয়েব ব্রাউজার এবং এমনকি সাধারণ যেমন টেক্সট এডিটর। যেমন, সঠিকভাবে টার্মিনাল ব্যবহার করতে সক্ষম হওয়া একটি গুরুত্বপূর্ণ পদক্ষেপ যদি আপনি বুঝতে চান কিভাবে অপারেটিং সিস্টেম কাজ করে।
এর সাথে, লিনাক্স টার্মিনালে কাজ করার সময়, আপনি একটি ফাইলে একটি কমান্ডের টার্মিনাল আউটপুট সংরক্ষণ করতে চাইতে পারেন। এই ফাইলটি অন্য অপারেশনের জন্য তথ্য হিসাবে ব্যবহার করা যেতে পারে বা কেবল টার্মিনাল কার্যকলাপ লগ করতে পারে। এই নিবন্ধটি একটি ফাইলে টার্মিনাল আউটপুট সংরক্ষণ করার পাঁচটি উপায় শেখায়৷
1. নির্দিষ্ট টার্মিনাল ব্যবহার করুন
এটি মোকাবেলা করার প্রথম উপায় হল একটি টার্মিনাল ব্যবহার করা যা একটি ফাইলে আউটপুট সংরক্ষণ করতে সহায়তা করে। উদাহরণ স্বরূপ, কনসোল টার্মিনাল যা একটি স্ট্যান্ডার্ড কেডিই ইন্সটলেশন সহ একটি ফাইলে আউটপুট লেখার বিকল্প অন্তর্ভুক্ত করে।
এটি করতে, মেনু বারে "ফাইল" বোতাম টিপুন এবং "আউটপুট হিসাবে সংরক্ষণ করুন … "
এ ক্লিক করুন।এটি একটি উইন্ডো ডায়ালগ খুলবে যেখানে আপনি টার্মিনাল আউটপুট সংরক্ষণ করতে পারেন। সেখান থেকে, আপনি ফাইলটি কোথায় সংরক্ষণ করতে চান তা চয়ন করতে পারেন৷
৷আপনি জিনোম টার্মিনালে একটি কমান্ডের আউটপুট সংরক্ষণ করতে পারেন। শুধু টার্মিনালে ডান-ক্লিক করুন এবং "এইচটিএমএল হিসাবে আউটপুট অনুলিপি করুন" টিপুন। এটি, তারপর, আপনার ক্লিপবোর্ডে টার্মিনাল পাঠ্য লোড করবে। সেখান থেকে, আপনি যেকোনো টেক্সট এডিটরে পেস্ট করতে পারেন।
2. আউটপুট পুনর্নির্দেশ
এটি মোকাবেলা করার আরেকটি উপায় হল ইউনিক্স শেল-এর অন্তর্নির্মিত অপারেটরগুলি ব্যবহার করা। এগুলি লিনাক্সে ডিফল্ট ফাংশন এবং একটি প্রোগ্রামের পাঠ্য আউটপুটকে একটি ফাইলে পুনঃনির্দেশ করতে পারে। তিনটি অপারেটর এটি করতে পারে:
-
>
অপারেটর হয় আপনার প্রোগ্রামের আউটপুট দিয়ে একটি ফাইলের বিষয়বস্তু তৈরি বা প্রতিস্থাপন করবে। আপনি যদি একই ফাইলে আপনার প্রোগ্রামের বর্তমান ফলাফল ডাম্প করতে এবং দেখতে চান তবে এটি কার্যকর। -
>>
অপারেটর আপনার প্রোগ্রামের আউটপুট দিয়ে একটি ফাইল তৈরি করবে। যাইহোক, এই অপারেটর এটি প্রতিস্থাপনের পরিবর্তে শুধুমাত্র আউটপুট যোগ করবে। আপনি যদি আপনার প্রোগ্রামের ফলাফল ক্রমাগত একটি একক ফাইলে ডাম্প করতে চান তবে এটি কার্যকর। - শেষে,
2>
অপারেটর হল একটি বিশেষ ধরনের অপারেটর যে ত্রুটিগুলি প্রিন্ট করবে যা আবার রিপোর্ট করা হবে। এটি ডিবাগিংয়ের সময় খুব দরকারী, কারণ এটি ক্র্যাশ হওয়ার আগে প্রোগ্রামটি যে সমস্যার সম্মুখীন হয়েছিল তা দেখায়৷
এটি জেনে, আপনি এই অপারেটরগুলিকে আপনার প্রোগ্রামের শেষে যুক্ত করার উপায়টি ব্যবহার করেন। নিম্নলিখিত উদাহরণ বিবেচনা করুন:
echo "maketecheasier" > hello.txt
আমি echo
নির্দেশ দিয়েছি "maketecheasier" শব্দটি আউটপুট করার জন্য প্রোগ্রামটি তারপর >
যোগ করে অপারেটর সেইসাথে একটি ফাইলের নাম। এটি UNIX শেলকে স্ক্রীনে প্রিন্ট করার পরিবর্তে "hello.txt" ফাইলে আউটপুট লিখতে বলে।
3. টি
আউটপুট পুনঃনির্দেশ ছাড়াও, আপনি tee
নামক একটি প্রোগ্রাম ব্যবহার করে একটি টার্মিনাল কমান্ডের আউটপুট সংরক্ষণ করতে পারেন। . এটি একটি GNU প্রোগ্রাম যা আপনাকে স্ট্যান্ডার্ড ইনপুট থেকে পড়তে এবং লিখতে দেয়। একটি ফাইলে একটি কমান্ডের আউটপুট লিখতে UNIX পাইপের সাথে এই প্রোগ্রামটি ব্যবহার করুন৷
নিম্নলিখিত উদাহরণ বিবেচনা করুন:
echo "maketecheasier" | tee hello.txt
এখানে, আউটপুট পুনঃনির্দেশ ব্যবহার করার পরিবর্তে, আমি পাইপ করেছি (|
) tee
এর আউটপুট .
দ্রষ্টব্য :একটি পাইপ একটি প্রোগ্রামের আউটপুট নেয় এবং অন্যটির ইনপুটে ফিড করে। এটি আপনাকে একাধিক প্রোগ্রামকে একসাথে আঠালো করার অনুমতি দেয়, যতক্ষণ না তারা সবাই স্ট্যান্ডার্ড ইনপুট এবং আউটপুট ব্যবহার করছে।
4. স্ক্রিপ্ট
টার্মিনাল থেকে আউটপুট টানার আরেকটি উপায় হল script
এর মাধ্যমে , একটি অন্তর্নির্মিত লিনাক্স প্রোগ্রাম যা আপনি টার্মিনালে যা কিছু টাইপ করেন তার সাথে সাথে এর আউটপুটও রেকর্ড করে।
আপনি একটি পার্সযোগ্য পাঠ্য বিন্যাসে আপনার টার্মিনাল সেশনের লগ রেকর্ড করতে স্ক্রিপ্ট ব্যবহার করতে পারেন। আপনি যদি অন্য লোকেদের কাছ থেকে সমর্থন পেতে অনলাইনে একটি ত্রুটি লগ পাঠাতে চান তবে এটি খুবই কার্যকর৷
এটি ব্যবহার করতে, নিম্নলিখিত কমান্ডটি চালান:
script filename.txt
এটি একটি স্ক্রিপ্ট পরিবেশ শুরু করবে যেখানে আপনি কেবল কমান্ড চালানো শুরু করতে পারেন। একটি গুরুত্বপূর্ণ বিষয় লক্ষ্য করা যায়, তবে, স্ক্রিপ্টটি সেই সেশনে আপনি যা কিছু করেন তা ক্যাপচার করে। নিম্নলিখিত উদাহরণ বিবেচনা করুন:
Script started on 2022-03-27 18:02:29+08:00 [TERM="rxvt-unicode-256color" TTY="/dev/pts/2" COLUMNS="77" LINES="22"] [?2004h[[1;31m balaraw:[1;35m~ [0m]$ ls [?2004l [0m[01;34mDesktop[0m [01;34mDownloads[0m [01;34mmail[0m [01;34mNews[0m [01;34mpods[0m [01;34mdocuments[0m [00;32mhello.txt[0m [01;34mMail[0m [01;34mpics[0m [01;34mtmp[0m [01;34mvids[0m [?2004h[[1;31m balaraw:[1;35m~ [0m]$ exit [?2004l exit Script done on 2022-03-27 18:03:19+08:00 [COMMAND_EXIT_CODE="0"]
আপনার চাপানো সমস্ত কীপ্রেস এবং নিয়ন্ত্রণ অক্ষর স্ক্রিপ্ট অন্তর্ভুক্ত করে। আমার ক্ষেত্রে, ট্যাব সহ আমি যে সমস্ত "অদৃশ্য" কী টিপেছিলাম তার মধ্যে এটি অন্তর্ভুক্ত ছিল এবং ব্যাকস্পেস কী টিপে।
আপনার সেশন শেষ হয়ে গেলে, exit
টাইপ করুন . এটি স্ক্রিপ্ট প্রোগ্রামটি শেষ করবে এবং আপনার নির্দিষ্ট করা ফাইলটিতে পুরো লগটি লিখবে।
5. ফ্রেমবাফার টার্মিনাল ক্যাপচার
শেষ অবধি, আপনি লিনাক্স ফ্রেমবাফার থেকে টেনে টার্মিনালের আউটপুটও পেতে পারেন। আপনি যদি একটি টেলিটাইপে সরাসরি কাজ করেন এবং একটি প্রোগ্রামের আউটপুট ক্যাপচার করতে চান তাহলে এটি কার্যকর৷
ফ্রেমবাফার ডিভাইস ক্যাপচার করতে, টেলিটাইপে থাকা অবস্থায় নিম্নলিখিত কমান্ডটি চালান:
cat /dev/fb0 > capture.raw
উল্লেখ্য একটি গুরুত্বপূর্ণ বিষয় হল ফ্রেমবাফার ডিভাইসটিকে এইভাবে ক্যাপচার করার অর্থ হল আপনি একটি ফাইলে ফ্রেমবাফারের কাঁচা বাইটগুলি ডাম্প করছেন। সেই ফাইলটি দেখতে, আপনাকে এটিকে একটি চিত্র সম্পাদকে লোড করতে হবে এবং ম্যানুয়ালি রঙ এবং বিট গভীরতা সামঞ্জস্য করতে হবে। এই প্রক্রিয়াটি কেবল সময়সাপেক্ষ নয়, এটি ভুল করাও সহজ৷
৷যেমন, এটি মোকাবেলা করার একটি উপায় হল একটি তৃতীয় পক্ষের প্রোগ্রাম, যেমন fbgrab ব্যবহার করা। এটি ফ্রেমবাফার ডিভাইস থেকে বর্তমান টেলিটাইপ স্ক্রিনটি ধরবে এবং এটিকে একটি পিপিএম বা পিএনজি ফাইলে ডাম্প করবে৷
fbgrab ইনস্টল করা তুলনামূলকভাবে সহজবোধ্য। ডেবিয়ান এবং উবুন্টু-ভিত্তিক ডিস্ট্রিবিউশনে, আপনি apt:
ব্যবহার করতে পারেনsudo apt install fbgrab
আর্চ লিনাক্সের জন্য, প্যাকম্যান চালান:
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 ফাইলে সংরক্ষণ করবে।
আপনি যদি লিনাক্স টার্মিনালের জন্য আরও নির্দেশিকা খুঁজছেন, তাহলে কমান্ড লাইন থেকে একটি ইমেল পাঠানোর বিষয়ে আলোচনা করে দেখুন।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
1. সাহায্য! Fbgrab কাজ করে না; ছবিটি শুধু কালো বা ফাঁকা৷
৷এটি সম্ভবত কারণ fbgrab টার্মিনাল আউটপুট ক্যাপচার করতে একটি ভিন্ন ফ্রেমবাফার ডিভাইস ব্যবহার করছে। "/dev" ফোল্ডারটি তালিকাভুক্ত করে সিস্টেমটি ব্যবহার করছে বর্তমান ফ্রেমবাফার ডিভাইসটি পরীক্ষা করুন৷
৷ls /dev
সেখান থেকে, একটি "/dev/fbX" ডিভাইস খুঁজুন। সাধারণত, লিনাক্স তার ফ্রেমবাফারের জন্য "/dev/fb0" ব্যবহার করে। যাইহোক, যদি আপনার সিস্টেম একটি ভিন্ন ফ্রেমবাফার ব্যবহার করে, যেমন “/dev/fb1”, তাহলে আপনি fbgrab কে সেই ফ্রেমবাফার থেকে টানতে বলার জন্য নিম্নলিখিত কমান্ডটি পাস করতে পারেন:
fbgrab -d 1 capture.png
2. একটি প্রোগ্রামে ইনপুট হিসাবে আমি যে ফাইলটি লিখেছিলাম তার বিষয়বস্তু কি দখল করা সম্ভব?
হ্যাঁ! উপরে আলোচনা করা তিনটি অপারেটর ছাড়াও, আপনি <
ব্যবহার করতে পারেন অপারেটর একটি ফাইল থেকে ডেটা টানতে। শেল, তারপর, এটি একটি প্রোগ্রামের জন্য একটি ইনপুট ব্যবহার করবে৷
এইভাবে এটি করা আপনার জন্য পাঠ্য মুদ্রণের জন্য অন্যান্য প্রোগ্রামগুলির উপর নির্ভর করার প্রয়োজনীয়তাও সরিয়ে দেয়। নিম্নলিখিত উদাহরণগুলি বিবেচনা করুন:
[1] cat test.txt | program [2] program < test.txt
- প্রথম উদাহরণটি টেক্সট লোড করার জন্য ক্যাট প্রোগ্রামকে কল করে, তারপর বিড়ালের আউটপুট সহ একটি পাইপ অপারেটর লোড করে এবং এটিকে আপনার প্রোগ্রামে পাইপ করে।
- অন্যদিকে, দ্বিতীয় উদাহরণটি অবিলম্বে আপনার প্রোগ্রামে কল করে, তারপর
<
বেছে নেয় অপারেটর, যা এর জন্য পরবর্তী আর্গুমেন্টকে তার ইনপুট হিসাবে বিবেচনা করে।
3. শুধুমাত্র একটি কমান্ডের আউটপুট ক্যাপচার করার জন্য স্ক্রিপ্টকে জোর করার একটি উপায় আছে কি?
হ্যাঁ, শুধুমাত্র একটি কমান্ডের জন্য স্ক্রিপ্ট করা সম্ভব। আপনি যখন একটি একক প্রোগ্রামের আউটপুট ক্যাপচার করতে চান তখন সমস্যা সমাধানের সময় এটি খুবই কার্যকর। নিম্নলিখিত কমান্ডটি চালিয়ে এটি করুন:
script -c "your-command" test.txt
-c ফ্ল্যাগ স্ক্রিপ্ট প্রোগ্রামকে শুধুমাত্র প্রোগ্রামটি চালানোর জন্য বলে:আপনার-কমান্ড। সেখান থেকে, এটি test.txt নামে একটি টেক্সট ফাইলে তার আউটপুট লিখবে।