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

موجه طرفية على كمبيوتر محمول يعمل بنظام Linux.

فاطماواتي أحمد زينوري / شاترستوك



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

التلاعب بالتاريخ

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





10 أوامر لينكس أساسية للمبتدئين ذات صلة 10 أوامر لينكس أساسية للمبتدئين

هذا عندما كان Linux history يأتي الأمر في متناول اليد. يسمح لك بمراجعة وتكرار أوامرك السابقة. لا يُقصد بهذا فقط تشجيع الكسل أو توفير الوقت - فهناك أيضًا عامل كفاءة (ودقة) في اللعب. كلما كان الأمر أطول وأكثر تعقيدًا ، كان من الصعب تذكره وكتابته دون ارتكاب خطأ. هناك نوعان من الأخطاء: أحدهما يمنع الأمر من العمل ، والآخر يسمح للأمر بالعمل ، ولكنه يجعله يفعل شيئًا غير متوقع.

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



قيادة التاريخ

في أبسط أشكاله ، يمكنك استخدام history الأمر بمجرد كتابة اسمه:

history

الإعلانات

تتم كتابة قائمة الأوامر المستخدمة سابقًا في نافذة المحطة الطرفية.



الأوامر مرقمة ، مع أحدثها (تلك التي تحتوي على أعلى أرقام) في نهاية القائمة.

لمشاهدة عدد معين من الأوامر ، يمكنك تمرير رقم إلى history في سطر الأوامر. على سبيل المثال ، لمشاهدة آخر 10 أوامر استخدمتها ، اكتب ما يلي:

tail

يمكنك تحقيق نفس النتيجة إذا كنت يضخ sudo عبر ال sudo يأمر . للقيام بذلك ، اكتب ما يلي:

sudo

ذات صلة: كيفية استخدام الأنابيب على نظام Linux

تكرار الأوامر

إذا كنت تريد إعادة استخدام أمر من قائمة المحفوظات ، فاكتب علامة تعجب (!) ورقم الأمر بدون مسافات بينهما.

على سبيل المثال ، لتكرار الأمر رقم 37 ، اكتب هذا الأمر:

sudo !!

الإعلانات

لتكرار الأمر الأخير ، اكتب علامتي تعجب ، مرة أخرى ، بدون مسافات:

sudo

يمكن أن يكون هذا مفيدًا عند إصدار أمر وتنسى استخدام sudo . اكتب :p ، مسافة واحدة ، علامات التعجب المزدوجة ، ثم اضغط على Enter.

في المثال التالي ، قمنا بكتابة أمر يتطلب history. بدلاً من إعادة كتابة السطر بالكامل ، يمكننا حفظ مجموعة من ضغطات المفاتيح وكتابة history فقط ، كما هو موضح أدناه:

grep -d

لذلك ، يمكنك كتابة الرقم المقابل من القائمة لتكرار أمر أو استخدام علامات التعجب المزدوجة لتكرار آخر أمر استخدمته. ومع ذلك ، ماذا لو كنت تريد تكرار الأمر الخامس أو الثامن؟

يمكنك استخدام علامة تعجب واحدة وواصلة (-) ورقم أي أمر سابق (مرة أخرى ، بدون مسافات) لتكراره.

لتكرار الأمر الثالث عشر السابق ، اكتب ما يلي:

grep

البحث عن أوامر من خلال سلسلة

لتكرار الأمر الأخير الذي يبدأ بسلسلة معينة ، يمكنك كتابة علامة تعجب ، ثم السلسلة بدون مسافات ، ثم الضغط على Enter.

الإعلانات

على سبيل المثال ، لتكرار الأمر الأخير الذي بدأ بـ history ، اكتب هذا الأمر:

-d

ومع ذلك ، هناك عنصر خطر في هذا. إذا كان الأمر الأخير الذي بدأ بـ -d ليس هو الشخص الذي تعتقد أنه كذلك ، ستطلق الأمر الخطأ.

لتوفير شبكة أمان ، على الرغم من ذلك ، يمكنك استخدام .bash_history (طباعة) المعدل كما هو موضح أدناه:

-a

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

إذا كنت تريد العثور على أمر يحتوي على سلسلة معينة ، فيمكنك استخدام علامة تعجب وعلامة استفهام.

الإعلانات

على سبيل المثال ، للعثور على أول أمر مطابق يحتوي على الكلمة المستعارة وتنفيذه ، يمكنك كتابة هذا الأمر:

-c

سيجد هذا أي أمر يحتوي على الأسماء المستعارة للسلسلة ، بغض النظر عن مكان ظهورها في السلسلة.

بحث تفاعلي

يتيح لك البحث التفاعلي التنقل عبر قائمة الأوامر المطابقة وتكرار الأمر الذي تريده.

فقط اضغط على Ctrl + r لبدء البحث.

نافذة طرفية بعد

أثناء كتابة دليل البحث ، سيظهر أول أمر مطابق. تظهر الأحرف التي تكتبها بين العلامة الخلفية (`) والفاصلة العليا ('). يتم تحديث الأوامر المطابقة أثناء كتابة كل حرف.

ل

في كل مرة تضغط فيها على Ctrl + r ، فإنك تبحث للخلف عن أمر المطابقة التالي ، والذي يظهر في نافذة المحطة الطرفية.

عند الضغط على Enter ، سيتم تنفيذ الأمر المعروض.

لتحرير أمر قبل تنفيذه ، اضغط إما على مفتاح السهم الأيسر أو الأيمن.

الإعلانات

يظهر الأمر في سطر الأوامر ، ويمكنك تحريره.

أمر في سطر الأوامر مع تمكين التحرير.

يمكنك استخدام أدوات Linux الأخرى للبحث في قائمة المحفوظات. على سبيل المثال ، لتوجيه الإخراج من -w في -d و ابحث عن الأوامر التي تحتوي على السلسلة يمكنك استخدام هذا الأمر:

history

تعديل آخر أمر

إذا كنت بحاجة إلى إصلاح خطأ إملائي ، ثم كرر الأمر ، فيمكنك استخدام علامة الإقحام (^) لتعديله. هذه خدعة رائعة إذا أخطأت في كتابة أمر أو أردت إعادة تشغيله بخيار سطر أوامر أو معلمة مختلفة.

لاستخدامه ، اكتب (بدون مسافات) علامة إقحام ، والنص الذي تريد استبداله ، وحرف إقحام آخر ، والنص الذي تريد استبداله به ، وحرف إقحام آخر ، ثم اضغط على إدخال.

على سبيل المثال ، افترض أنك كتبت الأمر التالي ، بطريق الخطأ كتابة shhd بدلاً من sshd:

$()

يمكنك تصحيح هذا بسهولة عن طريق كتابة ما يلي:

history 1

يتم تنفيذ الأمر مع تصحيح shhd إلى sshd.

حذف الأوامر من قائمة المحفوظات

يمكنك أيضًا حذف أوامر من قائمة المحفوظات باستخدام history 5 (حذف) الخيار. لا يوجد سبب للاحتفاظ بالأمر الذي يحتوي على أخطاء إملائية في قائمة المحفوظات.

الإعلانات

يمكنك استخدام .bashrc للعثور عليه ، مرر رقمه إلى .bashrc مع history الخيار لحذفه ، ثم البحث مرة أخرى للتأكد من اختفائه:

gedit HISTSIZE HISTFILESIZE

يمكنك أيضًا تمرير نطاق من الأوامر إلى .bash_history اختيار. لحذف كافة إدخالات القائمة من 22 إلى 32 (ضمناً) ، اكتب هذا الأمر:

HISTSIZE

لحذف الأوامر الخمسة الأخيرة فقط ، يمكنك كتابة رقم سالب ، كالتالي:

.bash_history

تحديث ملف المحفوظات يدويًا

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

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

لنفترض أنك تريد فتح نافذة طرفية أخرى للوصول إلى قائمة المحفوظات الكاملة ، بما في ذلك الأوامر التي كتبتها في نافذة المحطة الأولى. ال .bash_history يتيح لك الخيار (الكل) القيام بذلك في النافذة الطرفية الأولى قبل فتح النافذة الثانية.

لاستخدامه ، اكتب ما يلي:

histappend

تتم كتابة الأوامر بصمت في ملف التاريخ.

الإعلانات

إذا كنت تريد كتابة جميع التغييرات على قائمة المحفوظات إلى ملف المحفوظات (إذا قمت بحذف بعض الأوامر القديمة ، على سبيل المثال) ، فيمكنك استخدام .bash_history (كتابة) الخيار ، مثل ذلك:

.bash_history

مسح قائمة التاريخ

لمسح كافة الأوامر من قائمة المحفوظات ، يمكنك استخدام HISTFILESIZE (واضح) الخيار على النحو التالي:

HISTCONTROL

إذا كنت تريد أيضًا فرض هذه التغييرات على ملف المحفوظات ، فاستخدم ignorespaces : الخيار ، مثل ذلك:

ignoredups :

الأمن وملف التاريخ

إذا كنت تستخدم أي تطبيقات تتطلب منك كتابة معلومات حساسة (مثل كلمات المرور) في سطر الأوامر ، فتذكر أنه سيتم حفظ ذلك أيضًا في ملف المحفوظات. إذا كنت لا تريد حفظ معلومات معينة ، يمكنك استخدام بنية الأوامر التالية لحذفها من قائمة المحفوظات على الفور:

ignoreboth : .bashrc

تتضمن هذه البنية أمرين مفصولين بفاصلة منقوطة (؛). دعونا نفصل هذا:

    تطبيق خاص: اسم البرنامج الذي نستخدمه. كلمة السر الخاصة بي: كلمة المرور السرية التي نحتاج إلى توفيرها للتطبيق في سطر الأوامر. هذه هي نهاية الأمر الأول. التاريخ-د: في الأمر الثاني ، نستدعي HISTIMEFORMAT (حذف) خيار .bashrc. ما سنقوم بحذفه يأتي في الجزء التالي من الأمر. $ (التاريخ 1): يستخدم هذا الأمر الاستبدال. جزء الأمر المضمن في %c يتم تنفيذه في قشرة فرعية. يتم نشر نتيجة هذا التنفيذ كنص في الأمر الأصلي. ال %d يقوم الأمر بإرجاع الأمر السابق. لذلك ، يمكنك التفكير في الأمر الثاني باعتباره التاريخ - الأمر الأخير هنا.

يمكنك استخدام %m أمر للتأكد من إزالة الأمر الذي يحتوي على كلمة المرور من قائمة المحفوظات.

الإعلانات

ومع ذلك ، هناك طريقة أبسط للقيام بذلك. لأن Bash يتجاهل الخطوط التي تبدأ بمسافة بشكل افتراضي ، فقط قم بتضمين مسافة في بداية السطر ، على النحو التالي:

%y %H

لا يتم إضافة الأمر بكلمة المرور إلى قائمة المحفوظات. سبب نجاح هذه الخدعة موجود في %M ملف.

ملف .bashrc

ال %S يتم تنفيذ الملف في كل مرة تقوم فيها بتسجيل الدخول أو فتح نافذة طرفية. يحتوي أيضًا على بعض القيم التي تتحكم في سلوك %F يأمر. دعونا قم بتحرير هذا الملف باستخدام %T .

اكتب ما يلي:

%c

بالقرب من أعلى الملف ، ترى إدخالين:

  • HISTIMEFORMAT : الحد الأقصى لعدد الإدخالات التي يمكن أن تحتويها قائمة المحفوظات.
  • HISTTIMEFORMAT : الحد الأقصى لعدد الأسطر التي يمكن أن يحتويها ملف المحفوظات.

تتفاعل هاتان القيمتان بالطرق التالية:

  • عند تسجيل الدخول أو بدء جلسة نافذة طرفية ، يتم ملء قائمة المحفوظات من history ملف.
  • عند إغلاق نافذة طرفية ، يتم تعيين الحد الأقصى لعدد الأوامر في history يتم حفظها في
    history
    ملف.
  • إذا كان
    history 10
    تم تمكين خيار shell ، ويتم إلحاق الأوامر بـ
    history | tail -n 10
    . إذا كان
    !37
    لم يتم التعيين ،
    !!
    تم الكتابة فوقه.
  • بعد حفظ الأوامر من قائمة المحفوظات إلى
    mv ./my_script.sh /usr/local/bin/
    ، يتم قطع ملف المحفوظات بحيث لا يحتوي على أكثر من
    sudo !!
    خطوط.

بالقرب من أعلى الملف أيضًا ، يمكنك رؤية إدخال لـ

!-13
القيمة.

ال

يمكنك تعيين هذه القيمة للقيام بأي مما يلي:

  • !sudo
    لا تتم إضافة الأسطر التي تبدأ بمسافة إلى قائمة السجل.
  • !sudo:p
    لا تتم إضافة الأوامر المكررة إلى ملف السجل.
  • !?aliases
    تفعيل كلا الأمرين أعلاه.
الإعلانات

يمكنك أيضًا سرد أوامر محددة لا تريد إضافتها إلى قائمة السجل. افصل بينها بعلامة النقطتين (:) وضعها بين علامتي اقتباس (...).

يمكنك اتباع هذه البنية لإضافة سطر إلى

history | grep aliases
file ، واستبدل الأوامر التي تريد تجاهلها:

sudo systemctl start shhd

ان

استخدام الطوابع الزمنية

إذا كنت تريد إضافة طوابع زمنية إلى قائمة المحفوظات ، يمكنك استخدام

^shhd^sshd^
إعدادات. للقيام بذلك ، ما عليك سوى إضافة سطر مثل ما يلي إلى
history | grep shhd
ملف:

history -d 83

لاحظ أن هناك مسافة قبل علامات اقتباس الإغلاق. هذا يمنع الطابع الزمني من النتوء حتى الأوامر في قائمة الأوامر.

ان

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

هذا طابع زمني طويل جدًا. ومع ذلك ، يمكنك استخدام الرموز المميزة بخلاف

history | grep shhd
لتحسينه. الرموز الأخرى التي يمكنك استخدامها هي:

    history -d 22 32
    :يوم
    history -d -5
    :شهر
    history -a
    :عام
    history -w
    :ساعة
    history -c
    :الدقائق
    history -w
    :ثواني
    special-app my-secret-password;history -d $(history 1)
    :التاريخ الكامل (تنسيق العام - الشهر - التاريخ)
    history 5
    :الوقت (الساعة: الدقائق: تنسيق الثواني)
  •  special-app another-password
    : الطابع الكامل للتاريخ والوقت (اليوم والتاريخ والشهر والسنة والساعة: الدقائق: تنسيقات الثواني)

دعونا نجرب ونستخدم بعض الرموز المختلفة:

history 5

تصدير HISTTIMEFORMAT =

يستخدم الإخراج اليوم والشهر والوقت.

الإعلانات

إذا أزلنا اليوم والشهر ، فسيظهر الوقت فقط.

أية تغييرات تجريها على

gedit .bashrc
يطبقون أنفسهم على قائمة التاريخ بأكملها. هذا ممكن لأن الوقت لكل أمر يتم تخزينه على هيئة ملف عدد الثواني من حقبة Unix . يحدد التوجيه
export HISTIGNORE='ls:history'
ببساطة التنسيق المستخدم لتقديم عدد الثواني هذا إلى نمط يمكن للبشر قراءته ، مثل:

export HISTTIMEFORMAT='%c '

ال

أصبح إنتاجنا الآن أكثر قابلية للإدارة.

يمكنك أيضًا استخدام

export HISTTIMEFORMAT='%d n%m %T '
الأمر للتدقيق. في بعض الأحيان ، مراجعة أوامر التي استخدمتها في الماضي يمكن أن تساعدك في تحديد سبب المشكلة.

كما يمكنك في الحياة ، على Linux ، يمكنك استخدام

export HISTTIMEFORMAT='%T '
الأمر لاستعادة الأوقات الجيدة والتعلم من السيئة.

ذات صلة: 37 أوامر لينكس مهمة يجب أن تعرفها

أوامر لينكس
الملفات قطران · الكهروضوئية · قط · تاك · chmod · سيطرة · فرق · سيد · مع · رجل · Pushd · popd · fsck · اختبار · فيما يليها · فد · باندوك · قرص مضغوط · المسار $ · awk · انضم · جي ق · يطوى · فريد · جورنال سي تي ال · ذيل · حالة · ls · fstab · رما - طرد - قذف · أقل · chgrp · تشاون · مراجعة · نظرة · سلاسل · نوع · إعادة تسمية · أزيز · بفك · تتعدد · أومونت · تثبيت · fdisk · مكفس · جمهورية مقدونيا · rmdir · رسينك · مدافع · gpg · نحن · نانو · مكدير · ال · ln · تصحيح · يتحول · rclone · أجاد · SRM
العمليات الاسم المستعار · شاشة · أعلى · لطيف · رائع · تقدم · دعامة · النظام · تمكس · chsh · التاريخ · في · حزمة · مجانا · التي · dmesg · usermod · ملاحظة · الجذور · xargs · tty · الخنصر · lsof · vmstat · نفذ الوقت · حائط · نعم · قتل · نايم · سودو · له · زمن · المجموعة · usermod · مجموعات · lshw · اغلق · اعادة التشغيل · توقف · انقطاع التيار الكهربائي · passwd · lscpu · كرونتاب · تاريخ · bg · fg
الشبكات netstat · بينغ · مسار التتبع · IP · ss · الذي هو · fail2ban · bmon · أنت · اصبع اليد · nmap · بروتوكول نقل الملفات · لفة · wget · من الذى · من أنا · في · iptables · ssh-كجن · ufw

ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين

اقرأ التالي صورة الملف الشخصي لـ Dave McKay ديف مكاي
استخدم Dave McKay أجهزة الكمبيوتر لأول مرة عندما كان الشريط الورقي المثقوب رائجًا ، وهو يقوم بالبرمجة منذ ذلك الحين. بعد أكثر من 30 عامًا في صناعة تكنولوجيا المعلومات ، أصبح الآن صحفيًا متخصصًا في مجال التكنولوجيا. خلال مسيرته المهنية ، عمل كمبرمج مستقل ، ومدير فريق تطوير برمجيات دولي ، ومدير مشروع خدمات تكنولوجيا المعلومات ، ومؤخراً كمسؤول حماية البيانات. تم نشر كتاباته على موقع howtogeek.com و cloudavvyit.com و itenterpriser.com و opensource.com. ديف هو مبشر لينكس ومدافع مفتوح المصدر.
اقرأ السيرة الذاتية الكاملة

مقالات مثيرة للاهتمام