النقاط الرئيسية
- يقوم الأمر “tee” على Linux بحفظ إخراج الأمر في ملف مع عرضه أيضًا على المحطة الطرفية.
- يمكنه أيضًا كتابة الإخراج إلى ملفات متعددة في وقت واحد، مما يسمح بسهولة النسخ الاحتياطي وتتبع سجلات النظام.
- يمكن أيضًا استخدام الأمر “tee” مع أوامر أخرى من خلال التوجيه. يتيح هذا معالجة إضافية للإخراج أثناء حفظه في ملف. على سبيل المثال، يمكنك استخدامه مع “ls” في هذا الأمر: “ls ~ | tee list.txt”
ال tee يمكن للأمر حفظ مخرجات أوامرك لمراجعتها لاحقًا. لا يعرض هذا الأمر المخرجات على الشاشة فحسب، بل يسجلها أيضًا في ملف سجل منفصل. لنفترض أنك تريد حفظ مخرجات الأمر df أمر إلى ملف حتى تتمكن من تتبع استخدام مساحة القرص لديك بمرور الوقت. يساعدك هذا الأمر في استكشاف أخطاء عملية ما وإصلاحها لأنه يحتفظ بسجل مكتوب للعمليات.
ما هو الأمر tee على لينكس؟
لينكس tee يعد الأمر أداة مفيدة لتوفير الوقت وتحسين الكفاءة على Linux. يمكنه قراءة الإدخال القياسي (stdin) واكتبها في كلا الناتجين القياسيين (stdout) والملف أو الملفات التي تحددها. tee يعمل الأمر مثل أنبوب على شكل حرف T يقسم الماء إلى اتجاهين. يتيح لك عرض مخرجات البرنامج وحفظه في ملف في نفس الوقت.
ال tee يقوم الأمر بكلا الأمرين معًا. فهو يتيح لك نسخ الناتج إلى الملفات أو المتغيرات التي تختارها وعرضها لك. كما يُستخدم هذا الأمر في نصوص shell وأوامر المحطة الطرفية لإرسال الناتج إلى مواقع مختلفة. يمكنك استخدام tee أمر لإجراء نسخ احتياطية، والعثور على الأخطاء في البرامج النصية، وتتبع سجلات النظام.
ال tee يتيح لك الأمر أيضًا توصيله بأوامر أخرى. بهذه الطريقة، يمكنك حفظ الناتج في ملف ومعالجته أيضًا باستخدام أي أمر آخر.
تأتي جميع توزيعات Linux تقريبًا مع
tee
الأمر المثبت مسبقًا، والذي يعد جزءًا من حزمة Coreutils.
ال tee يتبع الأمر بناء جملة مشابهًا لأوامر Linux الأخرى. يحتوي على وسيطتين، –OPTIONS وFILES:
tee (OPTION)... (FILE)...
لمعرفة أي إصدار من tee إذا كنت تستخدم الأمر التالي، فما عليك سوى تشغيل الأمر التالي:
tee --version
إذا كنت بحاجة إلى مساعدة فيما يتعلق بالقواعد النحوية والحجج المتاحة لـ tee الأمر، اكتب هذا:
tee --help
خيارات أمر tee
ال tee يحتوي الأمر على عدة خيارات لتعديل وظائفه. يوضح الجدول أدناه بعض الخيارات التي ستساعدك على استخدام الأمر tee القيادة بكفاءة:
|
خيار |
وصف |
|---|---|
|
|
إضافة الإخراج إلى نهاية الملفات بدلاً من الكتابة فوقها. |
|
|
تجاهل إشارات المقاطعة مثل Ctrl+C. |
|
|
اطبع رسالة خطأ في الخطأ القياسي لكل خطأ يحدث عند الكتابة إلى الملفات. |
|
|
عرض المساعدة الأساسية المتعلقة بخيارات الأوامر. |
|
|
عرض |
حفظ الإخراج في ملف في Linux باستخدام tee
ال tee يحفظ الأمر ناتج الأمر في ملف مع عرضه أيضًا على المحطة الطرفية. على سبيل المثال، tee سيسمح لك الأمر برؤية الملفات والدلائل الموجودة في الدليل الرئيسي الخاص بك وحفظها أيضًا في ملف منفصل. للقيام بذلك، قم بتوجيه tee الأمر مع ls الأمر على النحو التالي:
ls ~ | tee list.txt
سيؤدي هذا إلى عرض جميع الملفات والدلائل الموجودة في الدليل الرئيسي لديك وكتابتها في “list.txt”. لعرض محتوى “list.txt”، استخدم أي محرر نصوص أو أمر مثل cat, less، أو more يأمر.
cat list.txt
دعونا نجري مثالا آخر مع echo الأمر لحفظ وعرض الناتج. أولاً، استخدم echo أمر لطباعة النص على المحطة الطرفية. بعد ذلك، قم بتوصيل tee الأمر مع echo أمر لكتابة نفس النص في ملف يسمى “output.txt”.
echo "Welcome to Ubuntu" | tee output.txt
وأخيرا، استخدم cat أمر للتحقق من محتويات الملف “output.txt”.
cat output.txt
كتابة الإخراج إلى ملفات متعددة في لينكس باستخدام tee
ال tee يمكن للأمر أيضًا كتابة الإخراج إلى ملفات متعددة في نفس الوقت. عليك فقط تحديد أسماء الملفات بعد tee الأمر الذي تريد الكتابة إليه. ما عليك سوى الفصل بينهما بمسافات.
على سبيل المثال، لحفظ مخرجات echo لإرسال أمر إلى ثلاثة ملفات مختلفة، استخدم بناء الجملة التالي:
echo "Welcome to Ubuntu" | tee file1.txt file2.txt file3.txt
سيؤدي هذا إلى كتابة السلسلة “مرحبًا بك في أوبونتو” في ثلاثة ملفات: file1.txt وfile2.txt وfile3.txt. كما يعرضها على المحطة الطرفية. لعرض محتوى هذه الملفات، استخدم cat أو head يأمر:
head -v file1.txt file2.txt file3.txt
وبالمثل، cat سوف يعرض الأمر أيضًا نفس الناتج:
cat -v file1.txt file2.txt file3.txt
يمكنك كتابة الناتج إلى أي عدد من الملفات باستخدام
tee
الأمر. فقط اكتب أسماء الملفات بعد
tee
الأمر مع وجود مسافات بينهما.
إضافة إخراج إلى ملف باستخدام tee
ال tee يؤدي الأمر الموجود على Linux إلى استبدال محتوى الملف افتراضيًا. -a أو --append الخيار مع tee يسمح لك الأمر بإضافة الإخراج إلى نهاية الملفات بدلاً من استبدال محتوياتها.
قبل إضافة البيانات إلى الملف، دعنا نتحقق من البيانات الحالية الموجودة في الملف باستخدام الأمر أدناه:
cat output.txt
الآن، يمكننا إضافة البيانات الجديدة دون الكتابة فوقها عن طريق كتابة هذا:
echo "tee Command on Linux" | tee -a output.txt
سيؤدي هذا إلى إضافة ناتج الأمر إلى نهاية output.txt، دون حذف أي محتوى سابق فيه. للتحقق، قم بتشغيل cat يأمر:
cat output.txt
إخفاء الإخراج باستخدام tee
في بعض الأحيان، قد ترغب في تخزين ناتج أمر ما في ملف دون عرضه على المحطة الطرفية. قد يكون هذا مفيدًا إذا كنت تريد تشغيل أمر ما بصمت، دون إرباك المحطة الطرفية لديك بإخراج غير ضروري. في مثل هذه الحالات، يتعين عليك توجيه ناتج الأمر إلى /dev/null الجهاز. /dev/null يُشار إليه غالبًا باسم “الجهاز الفارغ” أو “الملف الفارغ”. وهو يعمل كمخزن للبيانات، مما يعني أن أي بيانات مكتوبة عليه يتم تجاهلها ولا يتم تخزينها في أي مكان فعليًا.
إليك طريقة لإخفاء الناتج echo يأمر:
echo "Welcome to Ubuntu" | tee output.txt > /dev/null
سيؤدي هذا إلى كتابة مخرجات الأمر إلى output.txt وإرسالها أيضًا إلى /dev/null، مما سيؤدي إلى إخفائه بشكل فعال من الشاشة. ومع ذلك، cat سيسمح لك الأمر بالتحقق من الناتج عن طريق عرض محتوى الملف:
cat output.txt
إعادة توجيه إخراج أمر واحد إلى أمر آخر باستخدام tee
ال tee يمكن للأمر أيضًا إعادة توجيه مخرجات أمر واحد إلى ملف أو أي أمر آخر. tee سيسمح لك الأمر الذي يحتوي على أنبوب (|) بإرسال ناتج الأمر الأول إلى كل من الناتج القياسي والأمر أو الملف الثاني. ضع في اعتبارك المثال التالي:
echo "This is Ubuntu" | tee output.txt | wc -c
ال echo تتم كتابة أمر الإخراج “مرحبًا بك في أوبونتو” في ملف output.txt. بعد ذلك، يتم استخدام عامل خط الأنابيب مع tee الأمر. سيؤدي هذا إلى تمرير محتوى الملف إلى wc الأمر. wc سيقوم الأمر بإخراج إجمالي الأحرف التي تم حسابها وعرض قيمة عددية صحيحة.
للتحقق مما إذا كان tee لقد كتب الأمر أيضًا إخراجًا إلى ملف، استخدم cat الأمر لإظهار محتوى الملف:
cat output.txt
استخدام أمر tee مع sudo
عندما تستخدم tee الأمر، يكتب ناتج الأمر إلى ملف عادي. ومع ذلك، تتطلب بعض الملفات والدلائل مثل أدلة النظام أو الملفات المحمية امتيازات المستخدم الفائق لتعديلها. للكتابة إلى هذه الملفات أو الملفات المملوكة لمستخدمين آخرين، استخدم tee بالاشتراك مع sudo.
في المثال أدناه، عندما تحاول كتابة ملف “file.conf” مملوك للجذر دون استخدام sudoسيظهر لك خطأ رفض الإذن.
echo "This is Ubuntu" | tee -a /etc/file.conf
ومع ذلك، عندما تستخدم sudo مع tee سيتم تنفيذ الأمر دون أي خطأ. يمكنك استخدام الأمر sudo أمر لتشغيل tee الأمر كمستخدم الجذر أو مالك الملف. ببساطة أضف sudo مع tee يأمر:
echo "This is Ubuntu" | sudo tee -a /etc/file.conf
أولا، tee الأمر سوف يأخذ echo إخراج الأمر. بعد ذلك، يتم رفعه إلى sudo الأذونات ويكتب النص في الملف.
أمثلة على استخدام tee في Bash Script
ال tee يمكن أن يكون الأمر مفيدًا في سيناريوهات البرمجة النصية المختلفة. فهو يساعدك على تسجيل أو التقاط مخرجات الأمر لمزيد من المعالجة أو التصحيح. tee لن يقوم الأمر بعرض المخرجات فحسب، بل سيقوم أيضًا بحفظها في ملف أو ملفات لاستخدامها لاحقًا.
على سبيل المثال، إذا كنت تريد رؤية التاريخ والوقت على المحطة الطرفية وكتابتهما أيضًا في ملف يسمى log.txt، فاستخدم البرنامج النصي bash التالي:
#!/bin/bash
date | tee log.txt
في هذه الحالة، يكون الإدخال القياسي هو إخراج أمر التاريخ، والذي يعرض التاريخ والوقت الحاليين. tee يكتب الأمر هذا الناتج إلى المحطة الطرفية والملف log.txt. إذا لم يكن الملف log.txt موجودًا، فسيتم إنشاؤه. إذا كان موجودًا، فسيتم الكتابة فوقه، ما لم تستخدم الأمر log.txt. -a خيار الإضافة إلى الملف.
cat log.txt
يمكنك أيضًا استخدام tee أمر للكتابة إلى ملفات متعددة عن طريق تحديد المزيد من أسماء الملفات كحجج.
#!/bin/bash
date | tee log1.txt log2.txt
يقوم هذا البرنامج النصي بطباعة التاريخ والوقت على المحطة الطرفية وعلى ملفين باسم log1.txt وlog2.txt. اقرأ محتوى الملفين باستخدام cat يأمر.
cat log1.txt log2.txt
دعنا نفكر في نص برمجي بسيط آخر يأخذ مدخلات ويخزنها داخل ملف سجل – باستخدام tee يأمر.
#!/bin/bash
log_file="user_input.log"
echo "Please enter some text:"
read user_input
echo "$user_input" | tee -a "$log_file"
echo "User input has been logged to $log_file"
في البرنامج النصي bash المعطى، قم بتعريف متغير يسمى “log_file” وقم بتعيين اسم ملف السجل الذي تريد استخدامه، مثل “user_input.log”. ثم استخدم echo الأمر و read أمر يطلب منك إدخال بعض النصوص وتخزينها في متغير. بعد ذلك، استخدم tee الأمر مع -a خيار لعرض إدخالات الإدخال على المحطة وإضافتها إلى ملف السجل.
وأخيرا، استخدم echo استخدم الأمر مرة أخرى لتقديم الملاحظات. سيخبرك هذا بأن إدخالك قد تم تسجيله في الملف. بهذه الطريقة، يتيح لك إنشاء نص برمجي bash يحفظ إدخالك في ملف سجل ويعرضه على الشاشة.
قم بتشغيل البرنامج النصي bash باستخدام bash يأمر.
bash test.sh
مراقبة العمليات على نظام Linux الخاص بك
لمراقبة مدى جودة تشغيل نظام Linux الخاص بك، يجب عليك مراقبة أنشطة عملياته. ويشمل ذلك استخدام وحدة المعالجة المركزية والذاكرة، وعمليات الإدخال والإخراج على القرص، ونشاط الشبكة. يساعد تحديد الاختناقات في الأداء في تحسين موارد النظام وضمان تشغيل النظام بكفاءة.
مثل tee يحتوي Linux على أوامر أخرى متعددة تساعدك على مراقبة العمليات بسهولة. تتضمن بعض الأوامر الرئيسية ps, top، و pgrep غالبًا ما تقوم أنظمة Linux بتشغيل عمليات متعددة في نفس الوقت. باستخدام هذه الأوامر، يمكنك تحديد أولويات المهام الحرجة وتخصيص الموارد بشكل مناسب ومنع التنازع على الموارد.