24Aug

כיצד להשתמש ההיסטוריה שלך Bash ב מסוף לינוקס או MacOS

פגז הבאש הוא סביבת המסוף הרגילה שכלולה ברוב הפצות הלינוקס, הכלולות ב- MacOS, וזמינה להתקנה ב- Windows 10. היא זוכרת את הפקודות שאתה מקליד ומאחסנת אותן בקובץ היסטוריה.אתה בטח יודע כמה יסודות של ההיסטוריה bash, אבל זה הרבה יותר חזק ממה שאתה יכול להבין.קיצורי מקשים של

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

  • חץ למעלה או Ctrl + P : עבור אל הפקודה הקודמת בהיסטוריה שלך.לחץ על המקש מספר פעמים כדי לחזור אחורה באמצעות הפקודות שבהן השתמשת.
  • Down Arrow או Ctrl + N : עבור אל הפקודה הבאה בהיסטוריה שלך.לחץ על המקש מספר פעמים כדי לעבור קדימה באמצעות הפקודות שבהן השתמשת.
  • Alt + R : בטל כל שינוי בפקודה ששלפת מההיסטוריה שלך אם ערכת אותה בשורה הנוכחית.

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

  • Ctrl + R : הזמן את הפקודה האחרונה התואמת את התווים שאתה מספק.לחץ על קיצור זה והתחל להקליד כדי לחפש את היסטוריית הבאש שלך עבור פקודה.
  • Ctrl + O : הפעל את הפקודה שמצאת עם Ctrl + R.
  • Ctrl + G : השאר את מצב חיפוש ההיסטוריה מבלי להפעיל פקודה.

הצג את היסטוריית הבש שלך

באפשרותך להדפיס את היסטוריית הבאש המלאה שלך למסך על-ידי הפעלת פקודה אחת:

history

תוצג רשימה של כל הפקודות בהיסטוריית הבאש שלך, יחד עם מספר משמאל לכל אחת מהן.הפקודה עם "1" ליד זה היא הפקודה העתיקה ביותר בהיסטוריה שלך bash, ואילו הפקודה עם המספר הגבוה ביותר הוא האחרון.

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

|grep your_search

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

|5. הפעל

פקודות הפעלה מההיסטוריה שלך

Bash יכול במהירות "להרחיב" פקודות קודמות, או להרחיב אותם ולשנות אותם.תכונה זו ידועה בשם "הרחבת היסטוריה" ומשתמש סימן קריאה, המכונה "המפץ".פשוט להקליד אותם בשורת הפקודה ולחץ על Enter כדי להפעיל אותם כאילו היית מפעיל כל פקודה אחרת.

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

!

לדוגמה, נניח שרצית להפעיל את הפקודה ה -12 מהיסטוריית הבאש שלך.זוהי הפקודה עם "12" משמאל לה בעת הפעלת הפקודה ההיסטוריה.הקלד את הפקודה הבאה.

! 12

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

! !

ניתן גם להתייחס לפקודה למספר מסוים של קווים.לדוגמה,! -2 יפעיל את הפקודה השנייה לפיקוד האחרון.!!פירושו אותו דבר!

הרחבה זו פועלת בכל מקום על הקו.אתה יכול להוסיף כל דבר שאתה אוהב לפני או אחרי! !או כל ביטוי אחר בסעיף זה.לדוגמה, באפשרותך להקליד את הפקודה הבאה כדי להפעיל מחדש את הפקודה האחרונה שהפעלת באמצעות sudo, תוך מתן הרשאות בסיס.זה שימושי במיוחד אם אתה שוכח להוסיף sudo לפני הפעלת פקודה.

sudo! !

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

! !|טקסט grep

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

טקסט

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

! Pi

ניתן לצרף אל: p לכל אחת מההרחבות ו - bash לעיל ידפיסו את הפקודה למסוף מבלי להפעיל אותו.אפשרות זו שימושית אם ברצונך לאשר שאתה בוחר את הפקודה הנכונה לפני שתפעיל אותה.

! 12: p! !: p! טקסט: p

שימוש חוזר טיעונים מההיסטוריה שלך

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

הפקודה!

לדוגמה, נניח שהפעלת את הפקודה לגעת /home/chris/ some_long_file_name_you_dont_want_to_type_again.כעת ברצונך להפעיל את הפקודה nano /home/chris/ some_long_file_name_you_dont_want_to_type_again.במקום להקליד את כל העניין מאפס, אתה יכול לרוץ:

nano! $

$! היה להפוך את bash באופן אוטומטי למלא את הארגומנט האחרון מהפקודה הקודמת שלך.

זה ממלא רק את הארגומנט האחרון.אז, אם אתה מפעיל פינג google.com -c 4 ולאחר מכן להפעיל פינג! $, זה היה רק ​​להרחיב את "פינג 4".

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

! ^

אז, אם אתה רץ ping google.com -c 4 ולאחר מכן רץ ping! ^,

כדי למלא את כל הארגומנטים ששימשו בפקודה הקודמת במקום רק ארגומנט אחד, תשתמש בפקודה הבאה:

! *

אז, אם אתה רץ פינג!* במקום זאת, bash ימלא באופן אוטומטי את כל הטיעונים שבהם השתמשת בפקודה הקודמת

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

abc:#

לדוגמה, הפעלנו את הפקודה sudo hostname ubuntu קודם לכן, אם נפעיל את הפקודה הבאה, באש יחפש אחורה לאורך ההיסטוריה כדי למצוא את הפקודה האחרונה שמתחילה באותיות שאנחנו מקלידים וממלא את הטיעון שציינו.אנחנו מריצים הד! su: 2, bash יחפש אחורה כדי למצוא את הפקודה האחרונה המתחילה ב- "su" ומלא את הארגומנט השני שלה, שהוא "אובונטו".

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

abc:

הפעל מחדש את הפקודה הקודמת ושנה אותה

Bash גם מאפשר לך לשנות את הפקודה הקודמתולציין משהו שיש לשנות.זה יכול להיות שימושי עבור תיקון שגיאת הקלדה בפקודה.לדוגמה, הפקודה הבאה תציג מחדש את הפקודה הקודמת, תוך החלפת הטקסט "abc" עם הטקסט "xyz".

^ abc ^ xyz

לדוגמה, אם ריצת בטעות ping gogle.com, תוכל להפעיל את gogg ו- bash יפעיל את הפקודה ping google.com במקום זאת.

היכן מאוחסנת ההיסטוריה שלך וכיצד לנקות אותה

פגז הבאש שומר את היסטוריית הפקודות שהפעלת בקובץ ההיסטוריה של חשבון המשתמש שלך ב- ~ /. bash_history כברירת מחדל.לדוגמה, אם שם המשתמש שלך הוא bob, תמצא את הקובץ הזה ב /home/bob/. bash_history.

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

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

history -c

Bash זוכר רק מספר מצומצם של פקודות כברירת מחדל, ומונע מקובץ ההיסטוריה לגדול מדי.מספר רשומות ההיסטוריה bash זוכר נשלטת על ידי HISTSIZEvariable.ברירת המחדל היא בדרך כלל 500 או 1000 רשומות.באפשרותך להפעיל את הפקודה הבאה כדי להציג את גודל היסטוריית הבאש במערכת שלך.

echo $ HISTSIZE

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

HISTSIZE = 0

עבור ההפעלה הנוכחית, bash לא תאחסן רשומות היסטוריה אלא אם תפעיל פקודה כמו HISTSIZE = 1000 כדי להחזיר אותה למספר מסוים של ערכים.

כיצד להתעלם מרחבים כפילויות

Bash מאפשר לך להתעלם ערכי ההיסטוריה המתחילים עם רווח אם אתה מגדיר את HISTCONTROLVariable כדי ignorespace.

HISTCONTROL = איסור

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

Bash גם מאפשר לך להתעלם פקודות כפולות שיכולים להעמיס את ההיסטוריה שלך.לשם כך, הגדר את HISTCONTROL לאי-התעלמות.

HISTCONTROL = ignoredups

כדי להשתמש הן בתכונת ההתעלמות והן בתכונות התעלמות, הגדר את המשתנה HISTCONTROL כדי להתעלם.

HISTCONTROL = להתעלם

שים לב כי משתנים bash שתגדיר רק להתמיד ההפעלה הנוכחית.עליך להוסיף אותם לקובץ. bashrc של חשבון המשתמש שלך כדי להגדיר ערכים אלה באופן אוטומטי בכל הפעלה של bash שתתחיל, אם תעדיף זאת.

פגז באש הוא כלי מורכב עם אפשרויות רבות יותר מאשר אלה.התייעץ עם ההיסטוריה Bash ו Builtins מקטעי הרחבת ההרחבה הרשמי באש ידנית מידע מפורט יותר וטריקים מתקדמים אחרים אתה יכול להשתמש.