אנדרואיד

פקודת היסטוריה בלינוקס (היסטוריית bash)

Bash vs Python для DevOps инженеров и системных администраторов

Bash vs Python для DevOps инженеров и системных администраторов

תוכן עניינים:

Anonim

, נדבר על פקודת history , המאפשרת לך להציג רשימה של פקודות שהוצאו בעבר, לחפש ברשימה ולתפעל את קובץ ההיסטוריה.

שימוש history הפקודה וההיסטוריה

history היא מעטפת מובנית, והתנהגותה עשויה להיות שונה מעט ממעטפת לקליפה. נעסוק בגרסת history המובנית של בש.

בצורה הפשוטה ביותר, כאשר מופעלת ללא כל אפשרות או טיעון, פקודת 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-th מרשימת ההיסטוריה, ו !-n הפקודה n שורות אחורה. בדוגמה הבאה אנו מבצעים את הפקודה בשורה 467 :

!467

דרך נוספת לבצע פקודה היא להשתמש בהרחבת !word word מתייחס לפקודה האחרונה ביותר שמתחילה ב- 'word'.

בדרך כלל, history מציגה קווי פלט רבים שאינם מתאימים למסך. לצפייה בפלט עמוד אחד בכל פעם, צינור אותו לתוכנית הביפר כמו פקודה less או less :

history | less

להצגת השורות n האחרונות, העבירו את המספר כארגומנט לפקודה. לדוגמה, כדי להציג רק את חמשת השורות האחרונות מרשימת ההיסטוריה שתקלידו:

history -5

השתמש במקשי החצים up down כדי לנווט בערכים ברשימה. כאשר מוצגת הפקודה שחיפשת, לחץ על Enter כדי לבצע אותה.

סוג !! כדי לבצע את הפקודה הקודמת:

!!

זה יעיל במיוחד כאשר אתה שוכח לבצע הוספת פקודה באמצעות sudo , ובמקום להקליד מחדש את הפקודה אתה יכול להקליד:

sudo !!

!-1 זהה לזה !! ומבצעת את הפקודה האחרונה מרשימת ההיסטוריה !-2 שנייה אחרונה, וכן הלאה.

^word1^word2^ הרחבה מאפשרת לך להפעיל מחדש את הפקודה האחרונה המחליפה "word1" ב- "word2". אם הקלדת בטעות את sduo command במקום sduo command sudo command אתה יכול לחזור על הפקודה באמצעות המילה הנכונה עם:

^sduo^sudo^

השתמש בפקודה grep כדי לסנן את הפלט. לדוגמה, כדי להציג את כל הפקודות כולל "ננו" תפעיל:

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_history . רשימת הפקודות שמבוצעות בהפעלה הנוכחית נשמרת בזיכרון ונשמרת בקובץ עם סיום הפגישה.

אפשרות .bash_history מאפשרת לשמור את רשימת היסטוריית ההפעלה הנוכחית בקובץ .bash_history :

history -a

האפשרות -w כותבת את רשימת ההיסטוריה המלאה לקובץ ההיסטוריה.

history -w

ניקוי היסטוריה

פקודת history מאפשרת לך לנקות את רשימת ההיסטוריה המלאה או להסיר חלקים מסוימים.

כדי לנקות את רשימת ההיסטוריה, השתמש באפשרות -c :

history -c

כדי למחוק שורה או קווים ספציפיים בין עמדות התחלה וסיום מרשימת ההיסטוריה, השתמש באפשרות -d .

לדוגמה, כדי להסיר את הקווים בין 365 ל 375 (כולל שורות אלה), הקלד:

history -d 365 375

כאשר משתמשים במספר שלילי, השורות סופרות חזרה מסוף רשימת ההיסטוריה.

הפקודות שלמעלה .bash_history את רשימת ההיסטוריה, שנשמרת בזיכרון, אך אינן מסירות ערכים מקובץ .bash_history בדיסק. כדי לנקות את הקובץ, עליכם לכתוב את רשימת ההיסטוריה לקובץ:

history -c history -w history -c history -w

שינוי התנהגות היסטוריה

ניתן להגדיר את התנהגות היסטוריית הבאש באמצעות מספר משתני סביבה שונים. בעת שינוי התנהגות ההיסטוריה, קבע את המשתנים ב ~/.bashrc או כל קובץ תצורה אחר אשר נטען כאשר המשתמש מתחבר.

כברירת מחדל, באש שומר על 500 שורות ברשימת היסטוריית הפקודות. משתנה HISTSIZE מאפשר לשנות ערך זה. כדי להגדיר אותו על 10000 הוסף את השורה הבאה לקובץ ה- .bashrc שלך:

HISTSIZE=10000

משתנה HISTCONTROL מקבל רשימת ערכים המופרדת במעי הגס המגדירים כיצד נשמרות הפקודות ברשימת ההיסטוריה:

  • ignorespace - פקודות המתחילות במרחב אינן נשמרות ברשימת ההיסטוריה. ignoredups - פקודות כפולות לא נשמרות. ignoreboth - ignoreboth - הוא קיצור רוח, הכולל גם ignorespace ignoredups וגם ignoredups .

HISTCONTROL=ignoreboth

כאשר HISTTIMEFORMAT המשתנה HISTTIMEFORMAT , בש תלוי חותמת זמן של ביצוע עבור הפקודה בכל שורה.

לדוגמה, אם תגדיר:

HISTTIMEFORMAT="%F %T: "

ההיסטוריה תוצג בפורמט הבא:

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

סיכום

פקודת history מציגה רשימה של פקודות שבוצעו בעבר. לדוגמה, אתה יכול להשתמש בהיסטוריה כדי להציג פקודה ארוכה בה השתמשת בעבר שלא זכור לך.

מסוף היסטוריה