كيفية استخدام الأمر tee على Linux

النقاط الرئيسية

  • يقوم الأمر “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 الأمر، اكتب هذا:

tee --help

مساعدة في أمر التي

خيارات أمر tee

ال tee يحتوي الأمر على عدة خيارات لتعديل وظائفه. يوضح الجدول أدناه بعض الخيارات التي ستساعدك على استخدام الأمر tee القيادة بكفاءة:


خيار

وصف

-a or --append

إضافة الإخراج إلى نهاية الملفات بدلاً من الكتابة فوقها.

-i or --ignore-interrupts

تجاهل إشارات المقاطعة مثل Ctrl+C.

-p or --output-error

اطبع رسالة خطأ في الخطأ القياسي لكل خطأ يحدث عند الكتابة إلى الملفات.

--help

عرض المساعدة الأساسية المتعلقة بخيارات الأوامر.

--version

عرض tee إصدار الأمر.

حفظ الإخراج في ملف في Linux باستخدام tee

ال tee يحفظ الأمر ناتج الأمر في ملف مع عرضه أيضًا على المحطة الطرفية. على سبيل المثال، tee سيسمح لك الأمر برؤية الملفات والدلائل الموجودة في الدليل الرئيسي الخاص بك وحفظها أيضًا في ملف منفصل. للقيام بذلك، قم بتوجيه tee الأمر مع ls الأمر على النحو التالي:

ls ~ | tee list.txt

استخدم الأمر tee لحفظ الناتج في ملف نصي


سيؤدي هذا إلى عرض جميع الملفات والدلائل الموجودة في الدليل الرئيسي لديك وكتابتها في “list.txt”. لعرض محتوى “list.txt”، استخدم أي محرر نصوص أو أمر مثل cat, less، أو more يأمر.

cat list.txt

أمر cat لقراءة ملف نصي قائمة

دعونا نجري مثالا آخر مع echo الأمر لحفظ وعرض الناتج. أولاً، استخدم echo أمر لطباعة النص على المحطة الطرفية. بعد ذلك، قم بتوصيل tee الأمر مع echo أمر لكتابة نفس النص في ملف يسمى “output.txt”.

echo "Welcome to Ubuntu" | tee output.txt

أمر صدى الأنبوب باستخدام الأمر tee


وأخيرا، استخدم cat أمر للتحقق من محتويات الملف “output.txt”.

cat output.txt

أمر cat لقراءة محتوى ملف نصي

كتابة الإخراج إلى ملفات متعددة في لينكس باستخدام tee

ال tee يمكن للأمر أيضًا كتابة الإخراج إلى ملفات متعددة في نفس الوقت. عليك فقط تحديد أسماء الملفات بعد tee الأمر الذي تريد الكتابة إليه. ما عليك سوى الفصل بينهما بمسافات.

على سبيل المثال، لحفظ مخرجات echo لإرسال أمر إلى ثلاثة ملفات مختلفة، استخدم بناء الجملة التالي:

echo "Welcome to Ubuntu" | tee file1.txt file2.txt file3.txt

أمر echo متصل بأمر tee مع أسماء ملفات متعددة


سيؤدي هذا إلى كتابة السلسلة “مرحبًا بك في أوبونتو” في ثلاثة ملفات: file1.txt وfile2.txt وfile3.txt. كما يعرضها على المحطة الطرفية. لعرض محتوى هذه الملفات، استخدم cat أو head يأمر:

head -v file1.txt file2.txt file3.txt

أمر head لقراءة محتوى ملفات نصية متعددة

وبالمثل، cat سوف يعرض الأمر أيضًا نفس الناتج:

cat -v file1.txt file2.txt file3.txt

أمر cat لقراءة محتوى ملفات نصية متعددة

يمكنك كتابة الناتج إلى أي عدد من الملفات باستخدام
tee
الأمر. فقط اكتب أسماء الملفات بعد
tee
الأمر مع وجود مسافات بينهما.


إضافة إخراج إلى ملف باستخدام tee

ال tee يؤدي الأمر الموجود على Linux إلى استبدال محتوى الملف افتراضيًا. -a أو --append الخيار مع tee يسمح لك الأمر بإضافة الإخراج إلى نهاية الملفات بدلاً من استبدال محتوياتها.

قبل إضافة البيانات إلى الملف، دعنا نتحقق من البيانات الحالية الموجودة في الملف باستخدام الأمر أدناه:

cat output.txt

أمر cat لقراءة البيانات من ملف output.txt

الآن، يمكننا إضافة البيانات الجديدة دون الكتابة فوقها عن طريق كتابة هذا:

echo "tee Command on Linux" | tee -a output.txt

أمر صدى موصول بخيار tee و-a لإضافة الإخراج إلى الملف الموجود


سيؤدي هذا إلى إضافة ناتج الأمر إلى نهاية output.txt، دون حذف أي محتوى سابق فيه. للتحقق، قم بتشغيل cat يأمر:

cat output.txt

أمر cat الذي يقرأ ملف النص الناتج

إخفاء الإخراج باستخدام tee

في بعض الأحيان، قد ترغب في تخزين ناتج أمر ما في ملف دون عرضه على المحطة الطرفية. قد يكون هذا مفيدًا إذا كنت تريد تشغيل أمر ما بصمت، دون إرباك المحطة الطرفية لديك بإخراج غير ضروري. في مثل هذه الحالات، يتعين عليك توجيه ناتج الأمر إلى /dev/null الجهاز. /dev/null يُشار إليه غالبًا باسم “الجهاز الفارغ” أو “الملف الفارغ”. وهو يعمل كمخزن للبيانات، مما يعني أن أي بيانات مكتوبة عليه يتم تجاهلها ولا يتم تخزينها في أي مكان فعليًا.


إليك طريقة لإخفاء الناتج echo يأمر:

echo "Welcome to Ubuntu" | tee output.txt > /dev/null

أمر صدى متصل بأمر tee وجهاز dev null

سيؤدي هذا إلى كتابة مخرجات الأمر إلى output.txt وإرسالها أيضًا إلى /dev/null، مما سيؤدي إلى إخفائه بشكل فعال من الشاشة. ومع ذلك، cat سيسمح لك الأمر بالتحقق من الناتج عن طريق عرض محتوى الملف:

cat output.txt

أمر cat لقراءة محتوى ملف نصي-1


إعادة توجيه إخراج أمر واحد إلى أمر آخر باستخدام tee

ال tee يمكن للأمر أيضًا إعادة توجيه مخرجات أمر واحد إلى ملف أو أي أمر آخر. tee سيسمح لك الأمر الذي يحتوي على أنبوب (|) بإرسال ناتج الأمر الأول إلى كل من الناتج القياسي والأمر أو الملف الثاني. ضع في اعتبارك المثال التالي:

echo "This is Ubuntu" | tee output.txt | wc -c

أمر صدى يتم توصيله باستخدام tee وwc لإعادة توجيه الإخراج

ال echo تتم كتابة أمر الإخراج “مرحبًا بك في أوبونتو” في ملف output.txt. بعد ذلك، يتم استخدام عامل خط الأنابيب مع tee الأمر. سيؤدي هذا إلى تمرير محتوى الملف إلى wc الأمر. wc سيقوم الأمر بإخراج إجمالي الأحرف التي تم حسابها وعرض قيمة عددية صحيحة.

للتحقق مما إذا كان tee لقد كتب الأمر أيضًا إخراجًا إلى ملف، استخدم cat الأمر لإظهار محتوى الملف:


cat output.txt

أمر cat الذي يقرأ ملف النص الناتج

استخدام أمر tee مع sudo

عندما تستخدم tee الأمر، يكتب ناتج الأمر إلى ملف عادي. ومع ذلك، تتطلب بعض الملفات والدلائل مثل أدلة النظام أو الملفات المحمية امتيازات المستخدم الفائق لتعديلها. للكتابة إلى هذه الملفات أو الملفات المملوكة لمستخدمين آخرين، استخدم tee بالاشتراك مع sudo.

في المثال أدناه، عندما تحاول كتابة ملف “file.conf” مملوك للجذر دون استخدام sudoسيظهر لك خطأ رفض الإذن.

echo "This is Ubuntu" | tee -a /etc/file.conf

أمر echo تم توصيله بأمر tee بدون إذن sudo


ومع ذلك، عندما تستخدم sudo مع tee سيتم تنفيذ الأمر دون أي خطأ. يمكنك استخدام الأمر sudo أمر لتشغيل tee الأمر كمستخدم الجذر أو مالك الملف. ببساطة أضف sudo مع tee يأمر:

echo "This is Ubuntu" | sudo tee -a /etc/file.conf

أمر صدى متصل بأمر tee مع إذن sudo

أولا، tee الأمر سوف يأخذ echo إخراج الأمر. بعد ذلك، يتم رفعه إلى sudo الأذونات ويكتب النص في الملف.

أمثلة على استخدام tee في Bash Script

ال tee يمكن أن يكون الأمر مفيدًا في سيناريوهات البرمجة النصية المختلفة. فهو يساعدك على تسجيل أو التقاط مخرجات الأمر لمزيد من المعالجة أو التصحيح. tee لن يقوم الأمر بعرض المخرجات فحسب، بل سيقوم أيضًا بحفظها في ملف أو ملفات لاستخدامها لاحقًا.


على سبيل المثال، إذا كنت تريد رؤية التاريخ والوقت على المحطة الطرفية وكتابتهما أيضًا في ملف يسمى log.txt، فاستخدم البرنامج النصي bash التالي:

#!/bin/bash
date | tee log.txt
برنامج نصي bash لحفظ التاريخ في ملف السجل

في هذه الحالة، يكون الإدخال القياسي هو إخراج أمر التاريخ، والذي يعرض التاريخ والوقت الحاليين. tee يكتب الأمر هذا الناتج إلى المحطة الطرفية والملف log.txt. إذا لم يكن الملف log.txt موجودًا، فسيتم إنشاؤه. إذا كان موجودًا، فسيتم الكتابة فوقه، ما لم تستخدم الأمر log.txt. -a خيار الإضافة إلى الملف.

cat log.txt

أمر cat الذي يقرأ محتوى ملف السجل


يمكنك أيضًا استخدام tee أمر للكتابة إلى ملفات متعددة عن طريق تحديد المزيد من أسماء الملفات كحجج.

#!/bin/bash
date | tee log1.txt log2.txt
برنامج نصي Bash لكتابة ملفات متعددة باستخدام الأمر tee

يقوم هذا البرنامج النصي بطباعة التاريخ والوقت على المحطة الطرفية وعلى ملفين باسم log1.txt وlog2.txt. اقرأ محتوى الملفين باستخدام cat يأمر.

cat log1.txt log2.txt

أمر Cat الذي يقرأ محتوى ملفات نصية متعددة للسجل

دعنا نفكر في نص برمجي بسيط آخر يأخذ مدخلات ويخزنها داخل ملف سجل – باستخدام 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 يقرأ مدخلات المستخدم ويعرض المخرجات على المحطة الطرفية

في البرنامج النصي bash المعطى، قم بتعريف متغير يسمى “log_file” وقم بتعيين اسم ملف السجل الذي تريد استخدامه، مثل “user_input.log”. ثم استخدم echo الأمر و read أمر يطلب منك إدخال بعض النصوص وتخزينها في متغير. بعد ذلك، استخدم tee الأمر مع -a خيار لعرض إدخالات الإدخال على المحطة وإضافتها إلى ملف السجل.

وأخيرا، استخدم echo استخدم الأمر مرة أخرى لتقديم الملاحظات. سيخبرك هذا بأن إدخالك قد تم تسجيله في الملف. بهذه الطريقة، يتيح لك إنشاء نص برمجي bash يحفظ إدخالك في ملف سجل ويعرضه على الشاشة.

قم بتشغيل البرنامج النصي bash باستخدام bash يأمر.

bash test.sh


أمر bash لتشغيل البرنامج النصي للاختبار

مراقبة العمليات على نظام Linux الخاص بك

لمراقبة مدى جودة تشغيل نظام Linux الخاص بك، يجب عليك مراقبة أنشطة عملياته. ويشمل ذلك استخدام وحدة المعالجة المركزية والذاكرة، وعمليات الإدخال والإخراج على القرص، ونشاط الشبكة. يساعد تحديد الاختناقات في الأداء في تحسين موارد النظام وضمان تشغيل النظام بكفاءة.

مثل tee يحتوي Linux على أوامر أخرى متعددة تساعدك على مراقبة العمليات بسهولة. تتضمن بعض الأوامر الرئيسية ps, top، و pgrep غالبًا ما تقوم أنظمة Linux بتشغيل عمليات متعددة في نفس الوقت. باستخدام هذه الأوامر، يمكنك تحديد أولويات المهام الحرجة وتخصيص الموارد بشكل مناسب ومنع التنازع على الموارد.

أضف تعليق