מסוף לינוקס מלא טקסט במחשב נייד.

אם ברצונך לשלוט במעטפת הבש ב- Linux, macOS או מערכת אחרת כמו UNIX, תווים מיוחדים (כמו ~, *, | ו->) הם קריטיים. אנו נעזור לך להתיר את רצפי הפקודה הקריפטיים האלה בלינוקס ולהפוך לגיבור הירוגליפים.

מהן דמויות מיוחדות?

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

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

אנו נראה לך אילו תווים הם תווים "מיוחדים" או "מטא", וכן כיצד תוכל להשתמש בהם באופן פונקציונלי ומילולי.

~ מדריך ביתי

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

תקליטור ~
הפקודה

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

תקליטור ~ / עבודה / ארכיב
הפקודה

. מדריך נוכחי

תקופה (.) מייצגת את הספרייה הנוכחית. אתה רואה את זה ברשימות ספריות אם אתה משתמש באפשרות -a (הכל) עם ls.

אני-א
הפקודה

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

./script.sh

זה אומר לבש לחפש בספרייה הנוכחית את קובץ script.sh. בדרך זו היא לא תחפש בספריות שבנתיב שלך התאמה להפעלה או סקריפט.

הפקודה

.. מדריך הורים

התקופה הכפולה או "נקודה כפולה" (..) מייצגת את ספריית האב של זו הנוכחית שלך. אתה יכול להשתמש בזה כדי לעבור מעלה אחת בעץ הספריות.

תקליטור ..
הפקודה

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

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

cd ../gc_help
הפקודה

/ מפריד מדריך נתיבים

אתה יכול להשתמש בחתך קדימה (/) - שנקרא לעתים קרובות סלאש - כדי להפריד את הספריות בשם הנתיב.

ls ~ / עבודה / ארכיב
הפקודה

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

CD /
הפקודה

# מחרוזות תגובה או חיתוך

לרוב, אתה משתמש בסימן ה- hash או המספר (#) כדי לומר למעטפת להלן הערה, והיא לא אמורה לפעול על פיה. אתה יכול להשתמש בו בסקריפטים של קליפות, ופחות שימושי, בשורת הפקודה.

# יתעלם על ידי פגז הבש
הפקודה

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

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

בדוגמה זו אנו מקצים את הטקסט "דייב חנון!" למשתנה.

this_string = "דייב חנון!"

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

הד כיצד לבצע $ {this_string # Dave}
פקודה

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

להדהד $ זה סטרינג
הפקודה

? תו יחיד

קליפת הבש תומכת בשלושה תווים כלליים, כאשר אחד מהם הוא סימן השאלה (?). אתה משתמש בכרטיסיות חיווי כדי להחליף תווים בתבניות של שמות קבצים. שם קובץ המכיל תו כללי מהווה תבנית התואמת לטווח של שמות קבצים ולא רק לשם אחד.

סימן השאלה wildcard מייצג בדיוק תו אחד. שקול את תבנית שם הקובץ הבאה:

האם התג? .txt

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

זה תואם את הקבצים הבאים. שים לב שלחלקם יש מספרים ולחלקם אותיות אחרי החלק "התג" של שם הקובץ. סימן השאלה wildcard יתאים הן לאותיות והן למספרים.

הפקודה

תבנית שם קובץ זו אינה תואמת את "badge.txt", מכיוון שלשם הקובץ אין תו יחיד בין "badge" לבין סיומת הקובץ. סימן השאלה חייבת להתאים לתו המתאים בשם הקובץ.

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

האם ?????. txt
פקודה

* Wildcard ברצף של תווים

אתה יכול להשתמש בכרטיס הפראי כוכבית (*) כדי לעמוד בכל רצף של תווים, כולל ללא תווים. שקול את תבנית שם הקובץ הבאה:

תג *

זה תואם את כל הדברים הבאים:

פקודה

זה תואם ל- "badge.txt" מכיוון שהתווים המייצגים מייצגים רצף של תווים או ללא תווים.

פקודה זו תואמת את כל הקבצים המכונים "מקור", ללא קשר לסיומת הקובץ.

מקור המקור. *
פקודה

[] בחר תווים כלליים

כאמור לעיל, אתה משתמש בסימן השאלה כדי לייצג כל תו בודד ובכוכבית כדי לייצג כל רצף של תווים (כולל ללא תווים).

אתה יכול ליצור תו כללי עם הסוגריים המרובעים ([]) והתווים שהם מכילים. על התו הרלוונטי לשם הקובץ להתאים לפחות לאחת התווים בערכת התווים הכללית.

בדוגמה זו הפקודה מתורגמת ל: "כל קובץ עם סיומת" .png ", שם קובץ המתחיל" צינורות_0 ​​", ובו התו הבא הוא 2, 4 או 6."

ls bad__ [246] .txt
פקודה

אתה יכול להשתמש ביותר מערך סוגריים אחד לכל תבנית של שם קובץ:

ls bad_ [01] [789] .txt
פקודה

ניתן גם לכלול טווחים בערכת התווים. הפקודה הבאה בוחרת קבצים עם המספרים 21 עד 25 ו -31 עד 35 בשם הקובץ.

ls bad_ [23] [1-5] .txt
פקודה

; מפריד פיקוד מעטפת

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

ls> count.txt; wc -l count.txt; rm count.txt
פקודה count.txt; wc -l count.txt; rm count.txt" בחלון מסוף" src="https://imgstore.nyc3.cdn.digitaloceanspaces.com/tvaschool-org/1587087897826.png" />

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

אם ברצונך להפסיק את רצף הביצוע אם פקודה אחת נכשלה, השתמש באפרסנד כפול (&&) במקום פסיק:

cd ./doesntexist && cp ~ / מסמכים / דוחות / *.
פקודה

ותהליך רקע

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

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

gedit command_address.page &
פקודה

Bash מראה לך את מזהה התהליך של מה שהושק ואז מחזיר אותך לשורת הפקודה. לאחר מכן תוכל להמשיך להשתמש בחלון המסוף שלך.

<ניתוב מחדש של קלט

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

מיין <מילים. טקסט
פקודה

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

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

להלן כמה דוגמאות כיצד להשתמש ב- wc:

wc מילים. טקסט
wc <מילים. טקסט
פקודה

> ניתוב פלט

אתה יכול להשתמש בסוגרת הזווית הימנית (>) כדי להפנות את הפלט מפקודה (בדרך כלל לקובץ); הנה דוגמא:

ls> files.txt
קבצי חתול
פקודה files.txt" בחלון מסוף." src="https://imgstore.nyc3.cdn.digitaloceanspaces.com/tvaschool-org/1587087900863.png" />

ניתוב פלט יכול גם להפנות הודעות שגיאה אם ​​אתה משתמש בספרה (2, בדוגמה שלנו) עם>. כך תוכלו לעשות זאת:

wc doxtexist.txt 2> שגיאות.טקסט
שגיאות חתול. טקסט
פקודה error.txt" בחלון מסוף." src="https://imgstore.nyc3.cdn.digitaloceanspaces.com/tvaschool-org/1587087901637.png" />

קשורים: מה הם stdin, stdout ו- stderr ב- Linux?

| צינור

שרשראות "צינור" מפקדות יחד. זה לוקח את הפלט מפקודה אחת ומזין אותו לפלטה הבאה כקלט. מספר הפקודות בצנרת (אורך השרשרת) הוא שרירותי.

הנה, אנו נשתמש בחתול כדי להזין את תוכן קובץ המילים.txt ל- grep, שמחלץ כל שורה המכילה "C." תחתונה או גדולה. אז grep יעביר את השורות האלה למיון. מיון משתמש באפשרות -r (הפוך), כך שהתוצאות הממוינות יופיעו בסדר הפוך.

הקלדנו את הדברים הבאים:

מילים לחתולים. טקסט | grep [cC] | סוג-r
פקודה

! צינור לוגי NOT ומפעיל היסטוריה

נקודת הקריאה (!) היא מפעיל הגיוני שפירושו לא.

בשורת פקודה זו יש שתי פקודות:

[! -ד ./ גיבוי] && mkdir ./ גיבוי
  • הפקודה הראשונה היא הטקסט בתוך הסוגריים המרובעים; הפקודה השנייה היא הטקסט העוקב אחר המגברים הכפולים &&.

הפקודה הראשונה משתמשת! כמפעיל לוגי. בסוגריים המרובעים עולה כי תבוצע בדיקה. אפשרות ה- d (תיקיה) בודקת את הנוכחות של ספריה הנקראת גיבוי. הפקודה השנייה יוצרת את הספרייה.

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

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

אם מבחן הספריה נכשל (כלומר, הספרייה לא קיימת), ה-! משנה את התגובה ל- "NOT כישלון", שהיא הצלחה. אז הפקודה ליצירת הספרייה החסרה מבוצעת.

הקטן הזה! אורז הרבה אגרוף כשאתה צריך את זה!

כדי לבדוק את מצב תיקיית הגיבוי, אתה משתמש בפקודה ls ובאפשרויות -l (רשימה ארוכה) ו- -d (תיקיה), כמוצג להלן:

ls-l-d גיבוי
פקודה

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

! 24
פקודה

הבא מפעיל מחדש את הפקודה הקודמת:

!!

ביטויים משתנים

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

אתה יכול להשתמש בהד כדי לראות את הערך שמחזיק במשתנה - פשוט קדימה לשם המשתנה עם סימן הדולר ($), כמוצג להלן:

הד $ USER
הד $ HOME
הד $ PATH
פקודה

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

ThisDistro = אובונטו
MyNumber = 2001
הד $ זה דיסטרו
הד $ MyNumber
פקודה

הוסף פלטות ({}) סביב סימן הדולר ובצע הרחבת פרמטר כדי לקבל את ערך המשתנה ולאפשר טרנספורמציות נוספות של הערך.

זה יוצר משתנה המחזיק מחרוזת תווים, כמוצג להלן:

MyString = 123456qwerty

השתמש בפקודה הבאה כדי להדהד את המחרוזת לחלון המסוף:

הד $ {MyString}

כדי להחזיר את המחרוזת המתחילה במיקום 6 של כל המיתר, השתמש בפקודה הבאה (יש אופסט לאפס, כך שהמיקום הראשון הוא אפס):

הד $ {myString: 6}

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

הד $ {myString: 0: 6}

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

הד $ {myString: 4: 4}
פקודה

ציטוט תווים מיוחדים

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

אם אתה מצרף את הטקסט במירכאות ("...") זה מונע מבש לפעול על מרבית התווים המיוחדים, והם פשוט מדפיסים. עם זאת יוצא דופן אחד הוא סימן הדולר ($). זה עדיין מתפקד כתו של ביטויים משתנים, כך שתוכל לכלול את הערכים מהמשתנים בפלט שלך.

לדוגמה, פקודה זו מדפיסה את התאריך והשעה:

הד "היום הוא $ (תאריך)"

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

הד 'היום הוא $ (תאריך)'

ניתן להשתמש בקו אחורי (\) כדי למנוע מהתפקוד של הדמות הבאה כדמות מיוחדת. זה נקרא "בורח" מהדמות; ראה את הדוגמא להלן:

הד "היום הוא \ $ (תאריך)"
פקודה

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

קשורים: 37 פקודות לינוקס חשובות שעליך להכיר