النقاط الرئيسية
- يقوم الأمر “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 بتشغيل عمليات متعددة في نفس الوقت. باستخدام هذه الأوامر، يمكنك تحديد أولويات المهام الحرجة وتخصيص الموارد بشكل مناسب ومنع التنازع على الموارد.