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

Linux tee কমান্ড 습득: আউটপুট ফাইল এবং কনসোলে একসাথে বাঁটান

লিনাক্স শেল/কমান্ড লাইনে tee কমান্ডটি একটি অ্যাপ্লিকেশনের আউটপুট স্প্লিট করে – আউটপুট এক ফাইলে এবং STDOUT-এ (কনসোল বা অন্য অ্যাপ্লিকেশন) পাঠায়। এখানে এর ব্যবহার বলা হয়েছে।

tee কমান্ডটির নাম প্লাম্বিং-এ ব্যবহৃত একটি T-স্প্লিটারের নামে পড়েছে – একটি পাইপ যা পানিকে একক সোর্স থেকে দুদিকে রিডাইরেক্ট করে।

tee কমান্ড সিনট্যাক্স

tee একটি সহজ উদ্দেশ্য এবং সহজ সিনট্যাক্স বিশিষ্ট কমান্ড:

tee OPTIONS FILE

মনে রাখবেন:

  • OPTIONS নিচের টেবিল থেকে অপশন들의 একটি তালিকা
  • FILE হলো আপনি যেস ফাইলে আউটপুট সংরক্ষণ করতে চান তার পাথ
  • ইনপুট tee-তে পাইপ বা রিডাইরেক্ট করা দরকার – অন্যথায়, এর সাথে কাজ করার কিছুই থাকবে না
    • এটি স্ট্যান্ডার্ড ইনপুট/আউটপুট রিডাইরেক্ট করে করা হয় – উদাহরণের জন্য নিচে দেখুন
  • tee সরবরাহকৃত ডেটা উভয় FILE নির্দিষ্ট করা ফাইলে এবং STDOUT (স্ট্যান্ডার্ড আউটপুট)-এ আউটপুট করবে
    • ডিফল্টভাবে এটি কনসোলে আউটপুট হবে, কিন্তু অন্য অ্যাপ্লিকেশনে রিডাইরেক্ট করা যাবে

অপশন

tee কমান্ডের সবচেয়ে সাধারণভাবে ব্যবহৃত অপশনগুলো নিচে:

অপশন বর্ণনা
-a, –append দেওয়া FILE-এ অ্যাপেন্ড করুন, ওভাররাইট করবেন না
-i, –ignore-interrupts ইন্টারাপ্ট সিগন্যাল উপেক্ষা করুন

আরো অপশন, এরর ডায়াগনোস করার পদ্ধতি সহ, জন্য ইউজার ম্যানুয়াল রান করে দেখুন:

man tee

tee কমান্ড উদাহরণ

নিচে tee কীভাবে ব্যবহার করা যায় তার কিছু সহজ উদাহরণ দেওয়া হলো।

এই সব উদাহরণে echo কমান্ড ব্যবহার করা হয়েছে, যা সোজা সরবরাহকৃত টেক্সট আউটপুট করে।

এক কমান্ডের আউটপুট দেখুন এবং নতুন ফাইলে সংরক্ষণ করুন

echo কমান্ডের আউটপুট tee-তে পাইপ করা হবে, যা সেটি একটি ফাইলে সংরক্ষণ করবে পাশাপাশি কনসোলে আউটপুট করবে:

echo "hello!" | tee hello.txt

যদি hello.txt ফাইলটি থাকে, তবে সেটি ওভাররাইট হয়ে যাবে।

এক কমান্ডের আউটপুট দেখুন এবং একটি বিদ্যমান ফাইলে সংরক্ষণ করুন

এই উদাহরণটি উপরের মতই কাজ করে, কিন্তু এটি একটি বিদ্যমান ফাইলের শেষে অ্যাপেন্ড করবে ওভাররাইট করার বদলে:

echo "hello again!" | tee -a hello.txt

একাধিক ফাইলে আউটপুট সংরক্ষণ বা অ্যাপেন্ড করুন

একাধিক ফাইল স্পেস দিয়ে আলাদা করে নির্দিষ্ট করা যাবে:

echo "hello several files!" | tee hello1.txt hello2.txt hello3.txt

tee আউটপুট রিডাইরেক্ট/পাইপ করুন

tee-এর স্ট্যান্ডার্ড আউটপুট পাইপ এবং রিডাইরেক্ট করা যাবে। নিচের উদাহরণটি echo-এর আউটপুট hello.txt-এ সংরক্ষণ করবে। টি আউটপুটটি তারপর grep কমান্ডে পাস করবে কনসোলে আউটপুট করার বদলে:

echo "hello!" | tee hello.txt | grep hello

উদাহরণের জন্য, grep কমান্ড (যেটি টেক্সট ইনপুট সার্চ করতে ব্যবহৃত হয়) tee-এর আউটপুট থেকে শব্দ "hello" সার্চ করে।

ইন্টারাপ্ট উপেক্ষা করা

ইন্টারাপ্ট উপেক্ষা করা (উদাহরণস্বরূপ CTRL + C চাপা কমান্ড কুইট করার জন্য) tee-এর থেকে ক্লিনার আউটপুট ফলাফল দিতে পারে:

echo "hello!" | tee -i hello.txt

tee sudo-এর সাথে ব্যবহার করা

sudo কমান্ড আপনাকে রুট ইউজার হিসেবে কমান্ড এক্সিকিউট করতে দেয় রুট হিসেবে লগ ইন না করেই এবং এটি সাধারণত ব্যবহৃত হয়।

নিচের স্নিপেটে – sudo আপনাকে কমান্ডের আউটপুট রিডাইরেক্ট করার অনুমতি দেয় না, কারণ sudo কমান্ডটি নিজে রিডাইরেকশন পারফর্ম করে না যেহেতু সেটি রিডাইরেকশন সিম্বল (>) এর আগে আসে:

sudo echo "hello!" > /root/hello.txt

…এটি পারমিশন এরর দিয়ে ফেল হবে কারণ /root ডিরেক্টরিটি রুট প্রিভিলেজ চায়, কিন্তু sudo কমান্ডটি শুধু echo কমান্ডে এই প্রিভিলেজ অ্যাপ্লাই করে – রিডাইরেকশনে নয় যা এরপর আসে।

এটি বাইপাস করার একটি ট্রিক হলো tee কমান্ড ব্যবহার করা:

echo "hello!" | sudo tee /root/hello.txt

এটি কাজ করবে কারণ echo কমান্ডের আউটপুট tee-এ পাস করা হয়, যেটি হ্যাঁ sudo ভায়া অ্যাডমিনিস্ট্রেটিভ প্রিভিলেজ দিয়ে রান করা হচ্ছে – এবং tee আউটপুট সংরক্ষণ করে।

  1. লিনাক্সে সিম্পল শেল স্ক্রিপ্ট মাস্টার করুন: ধাপে ধাপে গাইড

  2. Marcel: লিনাক্সের জন্য একটি আধুনিক, পাইথন-চালিত শেল

  3. গভীরে যান: লিনাক্স শেল স্ক্রিপ্টিং-এ গাণিতিক কনসেপ্ট – পার্ট IV

  4. এসেনশিয়াল লিনাক্স ls কমান্ড: ফাইল ও ডিরেক্টরি দ্রুত ও কার্যকরভাবে লিস্ট করুন