كيفية استخدام أمر السجل على نظام Linux
فاطماواتي أحمد زينوري / شاترستوك
يحفظ shell الخاص بـ Linux محفوظات الأوامر التي تقوم بتشغيلها ، ويمكنك البحث عنها لتكرار الأوامر التي قمت بتشغيلها في الماضي. بمجرد فهم أمر محفوظات Linux وكيفية استخدامه ، يمكن أن يعزز إنتاجيتك بشكل كبير.
التلاعب بالتاريخ
كما قال جورج سانتايانا الشهير ، أولئك الذين لا يستطيعون تذكر الماضي محكوم عليهم بتكراره. لسوء الحظ ، في Linux ، إذا كنت لا تتذكر الماضي ، فلا يمكنك تكراره ، حتى لو كنت تريد ذلك.
ذات صلة 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
: الحد الأقصى لعدد الإدخالات التي يمكن أن تحتويها قائمة المحفوظات.- عند تسجيل الدخول أو بدء جلسة نافذة طرفية ، يتم ملء قائمة المحفوظات من
history
ملف. - عند إغلاق نافذة طرفية ، يتم تعيين الحد الأقصى لعدد الأوامر في
history
يتم حفظها فيhistory
ملف. - إذا كان
history 10
تم تمكين خيار shell ، ويتم إلحاق الأوامر بـhistory | tail -n 10
. إذا كان!37
لم يتم التعيين ،!!
تم الكتابة فوقه. - بعد حفظ الأوامر من قائمة المحفوظات إلى
mv ./my_script.sh /usr/local/bin/
، يتم قطع ملف المحفوظات بحيث لا يحتوي على أكثر منsudo !!
خطوط. !sudo
لا تتم إضافة الأسطر التي تبدأ بمسافة إلى قائمة السجل.!sudo:p
لا تتم إضافة الأوامر المكررة إلى ملف السجل.!?aliases
تفعيل كلا الأمرين أعلاه.special-app another-password
: الطابع الكامل للتاريخ والوقت (اليوم والتاريخ والشهر والسنة والساعة: الدقائق: تنسيقات الثواني)- & [رسقوو] ؛ كيفية تخصيص Bash Shell مع shopt
- & [رسقوو] ؛ ما هو Bash Shell ، ولماذا هو مهم جدًا بالنسبة إلى Linux؟
- & [رسقوو] ؛ ما هو MIL-SPEC Drop Protection؟
- & [رسقوو] ؛ مجلد الكمبيوتر هو 40: كيف أنشأت شركة Xerox Star سطح المكتب
- & [رسقوو] ؛ 5 مواقع ويب يجب على كل مستخدم Linux وضع إشارة مرجعية عليها
- & [رسقوو] ؛ كيفية العثور على ملف Spotify 2021 الخاص بك
- & [رسقوو] ؛ الدالات مقابل الصيغ في Microsoft Excel: ما الفرق؟
- & [رسقوو] ؛ Cyber Monday 2021: أفضل العروض التقنية
HISTIMEFORMAT
(حذف) خيار .bashrc
. ما سنقوم بحذفه يأتي في الجزء التالي من الأمر. %c
يتم تنفيذه في قشرة فرعية. يتم نشر نتيجة هذا التنفيذ كنص في الأمر الأصلي. ال %d
يقوم الأمر بإرجاع الأمر السابق. لذلك ، يمكنك التفكير في الأمر الثاني باعتباره التاريخ - الأمر الأخير هنا. يمكنك استخدام %m
أمر للتأكد من إزالة الأمر الذي يحتوي على كلمة المرور من قائمة المحفوظات.
ومع ذلك ، هناك طريقة أبسط للقيام بذلك. لأن Bash يتجاهل الخطوط التي تبدأ بمسافة بشكل افتراضي ، فقط قم بتضمين مسافة في بداية السطر ، على النحو التالي:
%y
%H
لا يتم إضافة الأمر بكلمة المرور إلى قائمة المحفوظات. سبب نجاح هذه الخدعة موجود في %M
ملف.
ملف .bashrc
ال %S
يتم تنفيذ الملف في كل مرة تقوم فيها بتسجيل الدخول أو فتح نافذة طرفية. يحتوي أيضًا على بعض القيم التي تتحكم في سلوك %F
يأمر. دعونا قم بتحرير هذا الملف باستخدام %T
.
اكتب ما يلي:
%c
بالقرب من أعلى الملف ، ترى إدخالين:
HISTTIMEFORMAT
تتفاعل هاتان القيمتان بالطرق التالية:
بالقرب من أعلى الملف أيضًا ، يمكنك رؤية إدخال لـ
!-13القيمة.
يمكنك تعيين هذه القيمة للقيام بأي مما يلي:
يمكنك أيضًا سرد أوامر محددة لا تريد إضافتها إلى قائمة السجل. افصل بينها بعلامة النقطتين (:) وضعها بين علامتي اقتباس (...).
يمكنك اتباع هذه البنية لإضافة سطر إلى
history | grep aliasesfile ، واستبدل الأوامر التي تريد تجاهلها:
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:
دعونا نجرب ونستخدم بعض الرموز المختلفة:
history 5
يستخدم الإخراج اليوم والشهر والوقت.
الإعلانات
إذا أزلنا اليوم والشهر ، فسيظهر الوقت فقط.
أية تغييرات تجريها على
gedit .bashrcيطبقون أنفسهم على قائمة التاريخ بأكملها. هذا ممكن لأن الوقت لكل أمر يتم تخزينه على هيئة ملف عدد الثواني من حقبة Unix . يحدد التوجيه
export HISTIGNORE='ls:history'ببساطة التنسيق المستخدم لتقديم عدد الثواني هذا إلى نمط يمكن للبشر قراءته ، مثل:
export HISTTIMEFORMAT='%c '
أصبح إنتاجنا الآن أكثر قابلية للإدارة.
يمكنك أيضًا استخدام
export HISTTIMEFORMAT='%d n%m %T 'الأمر للتدقيق. في بعض الأحيان ، مراجعة أوامر التي استخدمتها في الماضي يمكن أن تساعدك في تحديد سبب المشكلة.
كما يمكنك في الحياة ، على Linux ، يمكنك استخدام
export HISTTIMEFORMAT='%T 'الأمر لاستعادة الأوقات الجيدة والتعلم من السيئة.
ذات صلة: 37 أوامر لينكس مهمة يجب أن تعرفها
ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين
اقرأ التالياستخدم Dave McKay أجهزة الكمبيوتر لأول مرة عندما كان الشريط الورقي المثقوب رائجًا ، وهو يقوم بالبرمجة منذ ذلك الحين. بعد أكثر من 30 عامًا في صناعة تكنولوجيا المعلومات ، أصبح الآن صحفيًا متخصصًا في مجال التكنولوجيا. خلال مسيرته المهنية ، عمل كمبرمج مستقل ، ومدير فريق تطوير برمجيات دولي ، ومدير مشروع خدمات تكنولوجيا المعلومات ، ومؤخراً كمسؤول حماية البيانات. تم نشر كتاباته على موقع howtogeek.com و cloudavvyit.com و itenterpriser.com و opensource.com. ديف هو مبشر لينكس ومدافع مفتوح المصدر.
اقرأ السيرة الذاتية الكاملة