ذكري المظهر

أمر المحفوظات في نظام Linux (تاريخ bash)

Linux Tutorial for Beginners: Introduction to Linux Operating System

Linux Tutorial for Beginners: Introduction to Linux Operating System

جدول المحتويات:

Anonim

، سنتحدث عن أمر history ، الذي يسمح لك بمشاهدة قائمة بالأوامر المنفذة مسبقًا ، والبحث من خلال القائمة ، ومعالجة ملف السجل.

باستخدام history وتوسعات القيادة والتاريخ

history عبارة عن غلاف مدمج ، وقد يختلف سلوكه قليلاً عن الصدفة. سوف نغطي إصدار Bash المدمج من history .

في أبسط أشكاله ، عند استدعاء دون أي خيار أو وسيطة ، يعرض أمر المحفوظات قائمة المحفوظات بأكملها مع أرقام الأسطر.

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

كتابة !n تنفذ الأمر n من قائمة المحفوظات ، و !-n في المثال التالي ، نقوم بتنفيذ الأمر على السطر 467 :

!467

هناك طريقة أخرى لتنفيذ الأمر وهي استخدام توسيع !word . تشير word إلى آخر أمر يبدأ بـ "كلمة".

عادةً ما يعرض history العديد من خطوط الإخراج التي لا تناسب الشاشة. لعرض الإخراج صفحة واحدة في وقت واحد ، توجيهه إلى برنامج بيجر مثل الأمر more أو less :

history | less

لعرض آخر أسطر n ، مرر الرقم كوسيطة إلى الأمر. على سبيل المثال ، لعرض الأسطر الخمسة الأخيرة فقط من قائمة المحفوظات ، يمكنك كتابة:

history -5

استخدم مفاتيح الأسهم up down للتنقل في الإدخالات في القائمة. عندما يظهر الأمر الذي بحثت عنه ، اضغط على Enter لتنفيذه.

اكتب !! لتنفيذ الأمر السابق:

!!

يكون هذا مفيدًا بشكل خاص عندما تنسى أن تضغط على أمر باستخدام sudo ، وبدلاً من إعادة كتابة الأمر الذي يمكنك كتابته:

sudo !!

!-1 هو نفسه !! وينفذ الأمر الأخير من قائمة المحفوظات ، !-2 ثانية إلى آخر ، وهكذا.

يتيح لك ^word1^word2^ إعادة تشغيل آخر أمر يستبدل "word1" بـ "word2". إذا قمت بكتابة sduo command بطريق الخطأ بدلاً من sudo command يمكنك تكرار الأمر باستخدام الكلمة الصحيحة مع:

^sduo^sudo^

استخدم الأمر grep لتصفية الإخراج. على سبيل المثال ، لعرض جميع الأوامر بما في ذلك "nano" ، يمكنك تشغيل:

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

الآن ، إذا كنت ترغب في إعادة تشغيل الأمر nano setup.py عليك سوى كتابة:

!356

هناك طريقة أخرى للبحث في سجل الأوامر من خلال الضغط على Ctrl-R . سيتغير الموجه إلى ما يلي ، ويمكنك البدء في البحث عن أمر تم تنفيذه مسبقًا.

(reverse-i-search)`':

سوف قذيفة عرض خط مطابقة. للانتقال إلى الاقتراح المطابق التالي ، اضغط على Ctrl-R مرة أخرى.

تحقق من دليل Bash للحصول على مزيد من المعلومات حول توسيع السجل والمعدلات والمخصصين.

حفظ قائمة المحفوظات

بشكل افتراضي ، عند بدء جلسة جديدة ، يقرأ Bash قائمة المحفوظات من ملف .bash_history . يتم الاحتفاظ بقائمة الأوامر التي يتم تنفيذها في الجلسة الحالية في الذاكرة ويتم حفظها في الملف عند إغلاق الجلسة.

يسمح لك الخيار -a بحفظ قائمة محفوظات الجلسة الحالية في ملف .bash_history :

history -a

يكتب الخيار -w قائمة المحفوظات الكاملة إلى ملف المحفوظات.

history -w

مسح التاريخ

يسمح لك أمر history بمسح قائمة المحفوظات الكاملة أو إزالة أجزاء معينة.

لمسح قائمة المحفوظات ، استخدم الخيار -c :

history -c

لحذف سطر معين أو خطوط بين مواضع البداية والنهاية من قائمة المحفوظات ، استخدم الخيار -d .

على سبيل المثال ، لإزالة الخطوط بين 365 و 375 (بما في ذلك تلك الخطوط) ، يمكنك كتابة:

history -d 365 375

عند استخدام عدد صحيح سالب ، يتم عد الأسطر من نهاية قائمة المحفوظات.

تُمسح الأوامر أعلاه قائمة المحفوظات ، المحفوظة في الذاكرة ، ولكنها لا تزيل الإدخالات من ملف .bash_history على القرص. لمسح الملف ، تحتاج إلى كتابة قائمة المحفوظات إلى الملف:

history -c history -w

تعديل سلوك التاريخ

يمكن تعريف سلوك محفوظات Bash باستخدام العديد من متغيرات البيئة المختلفة. عند تعديل سلوك السجل ، قم بتعيين المتغيرات في ~/.bashrc أو أي ملف تكوين آخر يتم تحميله عند تسجيل دخول المستخدم.

بشكل افتراضي ، يحتفظ Bash بـ 500 سطر في قائمة محفوظات الأوامر. متغير HISTSIZE يسمح لك بتغيير هذه القيمة. .bashrc إلى 10000 ، أضف السطر التالي إلى ملف .bashrc الخاص بك:

HISTSIZE=10000

يقبل المتغير HISTCONTROL قائمة القيم مفصولة النقطتين التي تحدد كيفية حفظ الأوامر في قائمة المحفوظات:

  • ignorespace - لا يتم حفظ الأوامر التي تبدأ بمسافة في قائمة المحفوظات. ignoredups - لا يتم حفظ الأوامر المكررة. ignoreboth - هو اختصار ، بما في ذلك كل من ignorespace ignoredups .

HISTCONTROL=ignoreboth

عند HISTTIMEFORMAT متغير HISTTIMEFORMAT ، يقوم Bash بإعداد طابع زمني للتنفيذ للأمر في كل سطر.

على سبيل المثال ، إذا قمت بتعيين:

HISTTIMEFORMAT="%F %T: "

سيتم عرض السجل بالتنسيق التالي:

413 2019-10-27 21:13:07: sudo nano /etc/hosts

استنتاج

يعرض أمر history قائمة بالأوامر المنفذة مسبقًا. على سبيل المثال ، يمكنك استخدام السجل لعرض أمر طويل استخدمته من قبل لا يمكنك تذكره.

محطة التاريخ