מטא-תווים של לינוקס ומשמעויותיהם

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

הנקודה הלבנה כדמות מטא (.)

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

כדוגמה, הפקודה הבאה מוצאת את הכל קבצי MP3 בתיקייה הנוכחית ובתיקיות המשנה שלה.

למצוא. -סוג f -שם '*.mp3'

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

עכשיו תסתכל על הפקודה הזו:

ps -ef | grep f..efox

הפקודה ps מפרטת את כל התהליכים הרצים במחשב שלך. הפקודה grep לוקחת שורות קלט ומחפשת דפוס.

תו נקודת לינוקס

הפקודה ps -ef מאחזרת רשימה של תהליכים פועלים. הצינור (|) metacharacter שולח את הרשימה הזו לפקודת grep, שמחפשת כל שורה ברשימה המכילה f..efox, כאשר התקופות מתייחסות לשניים מכל אופי.

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

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

הכוכבית כדמות מטה (*)

הכוכבית (*) הוא דמות מטא ידועה אוניברסלית. המשמעות היא אפס או יותר מכל תו בעת חיפוש תבנית. לדוגמה:

ls *.flac
רישום כוכבית לינוקס

ה *.flac חלק מהפקודה מחזיר התאמה לכל שם קובץ שמסתיים ב-.flac. באופן דומה, אתה יכול להשתמש בכוכבית עם הפקודה grep בסעיף האחרון באופן הבא:

ps -ef | grep f*efox

זה שונה במקצת מכיוון שמשמעות הכוכבית היא אפס או יותר, כך שבנוסף למצוא Firefox, Facefox ו-Fonefox, היא מוצאת גם Flutefox, Ferretfox ו-fefox.

תו כוכבית לינוקס

הקראט כדמות מטא (^)

הקראט (^) משמש לציון תחילתה של שורה או מחרוזת. אז איך משתמשים בו?

הפקודה ls מפרטת את הקבצים בתיקייה, באופן הבא:

ls -a

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

ls -a | grep ^gnome

זה מפרט את הקבצים שמתחילים ב-gnome. אם אתה רוצה קבצים שיש להם gnome בכל מקום בשם הקובץ, השתמש בכוכבית.

דמות כראט לינוקס

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

סמל הדולר כתו מטה ($)

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

ls | grep png$

זה מפרט את כל הקבצים המסתיימים ב-png.

סמל הדולר משמש גם לגישה למשתני סביבה בתוך מעטפת ה-bash. לדוגמה:

#! /bin/bash
יצוא כלב=מולי
echo $dog
תו סימן דולר לינוקס

השורה יצוא כלב=מולי יוצר משתנה סביבה שנקרא כֶּלֶב וקובע את ערכו מולי. כדי לגשת למשתנה הסביבה, השתמש בסמל $. עם סמל $, ה- echo $dog הצהרה מציגה מולי. בלעדיו, ה הד כלב הצהרה מציגה את המילה כלב.

מטא-תווים נמלטים (\\)

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

עכשיו תסתכל על הפקודה הבאה:

ls | grep f.refox

מה לדעתך מוחזר? גם f.refox וגם Firefox מוחזרים מכיוון ששניהם תואמים לתבנית.

תו בריחה של לינוקס

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

ls | grep f\\.refox

סוגריים כתו מטא ([])

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

ls | grep [abc]

זה מפרט את כל הקבצים המכילים את האותיות a, b או c.

תו סוגריים של לינוקס

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

כדי לחפש טווח של אותיות, השתמש בתו המקף (-). לדוגמה, ls [a-h]* מחזירה קבצים שמתחילים באות כלשהי מ-a עד h.

דמות קבר המבטא

בדוגמאות שלמעלה, תו המטא-pipe שולח את התוצאות של פקודה אחת (כמו פקודת ls) לפקודה אחרת (כמו פקודת grep).

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

command=`ls -lah`
echo $command
תו Linux backtick

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

מטא-תווים נפוצים ומשמעויותיהם

אופי מַשְׁמָעוּת
. כל דמות.
* אפס או יותר תווים.
^ התאם כל שורה או מחרוזת שמתחילה בתבנית (לדוגמה, ^gnome).
$ התאם כל שורה או מחרוזת שמסתיימת בתבנית (לדוגמה, gnome$).
\ בורח מהדמות הבאה כדי להסיר את המשמעות המיוחדת שלה.
[] התאם אחד מתוך רשימה או טווח (לדוגמה, ["abc", "def"] או [1..9]).
+ התאימו לאחד או יותר מהקודמים (לדוגמה, grep a+).
? התאם אפס או אחד קודם.