כיצד להשתמש "הנה מסמכים" Bash על לינוקס

Mar 31, 2025
לינוקס
Fatmawati Achmad Zaenuri / Shutterstock

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

לכאן מסמכים

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

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

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

עקרונות יסוד של מסמכים כאן

ייצוג idiomatic של כאן נראה מסמך כזה:

 COMMAND & lt; & lt; limit_string
 .
 .
טֶקסט
נתונים
משתנה
.
.
limit_string 
  • פקודה : זה יכול להיות כל פקודה לינוקס שמקבל קלט שהופנו מחדש. שים לב, הֵד פקודה אינו מקבל קלט שהופנה מחדש . אם אתה צריך לכתוב על המסך, אתה יכול להשתמש חתול פקודה, אשר עושה .
  • & Lt; & lt; : מפעיל ניתוב מחדש.
  • limit_string : זוהי תווית. זה יכול להיות כל מה שאתה רוצה, כל עוד הוא אינו מופיע ברשימת הנתונים שאתה הפניית אתה לתוך הפקודה. הוא משמש כדי לסמן את סופה של טקסט, נתונים, משתנים הרשימה.
  • רשימת נתונים : רשימת הנתונים שתאכיל לפקודה. היא יכולה להכיל פקודות, טקסט, משתנה. תוכן רשימת הנתונים מוזנים לתוך השורה האחת הפקודה בכול פעם עד _limit_string הוא נתקל.

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

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

דוגמאות פשוטות

אתה יכול להשתמש כאן מסמכים בשורת הפקודה וב סקריפטים. כאשר אתה מקליד את הבאה בחלון מסוף, תראה " & Gt; " המשך קו הנחיה בכל פעם שאתה מכה 'Enter.' כאשר אתה מקליד את מחרוזת הגבול "_end_of_text" ולחץ "ENTER", ברשימת האתרים מועברת חתול, והם מוצגים בחלון הטרמינל.

 חתול & lt; & lt; _end_of_text
כיצד לחנוך
סקירה Geek.
LifeSavvy
CloudSavvy IT
MindBounce
_end_of_text 

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

אנחנו יכולים לעשות את אותו הדבר ב סקריפט. הקלד או להעתיק את דוגמת עורך, שמור את הקובץ בשם "heredoc-1.sh", ולסגור את העורך.

 #! / Bin / bash

חתול & lt; & lt; "_End_of_text"
שם המשתמש שלך הוא: $ (Whoami)
ספריית העבודה הנוכחית שלך היא: $ PWD
הגירסה בש שנבחרה: $ BASH_VERSION
_end_of_text 

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

 chmod + x heredoc-1.sh 

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

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

 ./ heredoc-1.sh 

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

 #! / Bin / bash

חתול & lt; & lt; - "_end_of_text"
שם המשתמש שלך הוא: $ (Whoami)
ספריית העבודה הנוכחית שלך היא: $ PWD
הגירסה בש שנבחרה: $ BASH_VERSION
_end_of_text 

טיפול Tab דמוי

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

 #! / Bin / bash

חתול & lt; & lt; _end_of_text
שם המשתמש שלך הוא: $ (Whoami)
  ספריית העבודה הנוכחית שלך היא: $ PWD
    הגירסה בש שנבחרה: $ BASH_VERSION
_end_of_text 
 ./ heredoc-2.sh 

הכרטיסיות נכתבות על חלון הטרמינל.

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

 #! / Bin / bash

חתול & lt; & lt; - _end_of_text
שם המשתמש שלך הוא: $ (Whoami)
  ספריית העבודה הנוכחית שלך היא: $ PWD
    הגירסה בש שנבחרה: $ BASH_VERSION
_end_of_text 
 ./ heredoc-3.sh 

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

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

 #! / Bin / bash

אם זה נכון; לאחר מכן
  חתול & lt; & lt; - _limit_string
  קו 1 עם כרטיסייה מובילה.
  קו 2 עם כרטיסייה מובילה.
  קו 3 עם כרטיסייה מובילה.
  _limit_string
fi 

מפנה אל קובץ

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

התסריט הזה הוא "heredoc-4.sh." זה יפנה את תפוקתו לקובץ טקסט שנקרא "session.txt."

 #! / Bin / bash

חתול & lt; & lt; _end_of_text & gt; session.txt
שם המשתמש שלך הוא: $ (Whoami)
ספריית העבודה הנוכחית שלך היא: $ PWD
הגירסה בש שנבחרה: $ BASH_VERSION
_end_of_text 
 ./ heredoc-4.sh 
 חתול session.text 

צנרת הפלט אל עוד פקודה

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

שם זה סקריפט "heredoc-5.sh."

 #! / Bin / bash

חתול & lt; & lt; _end_of_text | sed 's / a / e / g'
אֵיך
ל
גאק
_end_of_text 
. / Heredoc-5.sh 

"גאק" מתוקן "חנון".

שליחת פרמטרים לתפקוד

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

סקריפט זה עובר כמה נתוני רכב לפונקציה. הפונקציה קוראת את הנתונים כאילו הוקלד על ידי משתמש. ערכי המשתנים מודפסים. שמור סקריפט זה כמו "heredoc-6.sh".

 #! / Bin / bash

# הפונקציה set_car_details ()
set_car_details ()
{
קרא איפור
קרא דגם
קרא New_used.
קרא משלוח
קרא מיקום
קרא את המחיר
}

# מסמך כאן העובר את הנתונים כדי set_car_details ()
set_car_details & lt; & lt; _mars_rover_data.
נאס"א
התמדה רובר
בשימוש
לאסוף
מאדים (לונג, LAT) 77.451865,18.445161
2.2 מיליארד דולר
_mars_rover_data.

# לאחזר את פרטי הרכב
הד "לעשות: $ לעשות"
הד "דגם: $ דגם"
הד "חדש או בשימוש: $ new_used"
הד "משלוח או אוסף: $ delivery_collect"
הד "מיקום: $ מיקום"
ECHO "מחיר \ $: $ מחיר" 
. / Heredoc-6.sh 

פרטי הרכב נכתבים לחלון הטרמינל.

יצירת ושליחת דוא"ל

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

דוגמה זו צורות סקריפט "Heredoc-7.Sh".

 #! / Bin / bash

מאמר = "כאן מסמכים"

מצב עומס העבודה של הדואר "דייב & LT; & LT; _דו"ח פרוייקט
שם משתמש: $ (WOAMI)
השלימה הקצאה:
מאמר: $ מאמר
_project_report 
. / Heredoc-7.sh 

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

 דואר 

שימוש כאן מסמכים עם SSH

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

סקריפט זה הוא "heredoc-8.sh". אנחנו הולכים להתחבר למחשב מרוחק שנקרא "מחשב מרחוק". חשבון המשתמש נקרא "דייב". אנו משתמשים ב- - (השבת את ההקצאה Pseudo-terminal) אפשרות כי אנחנו לא צריכים מסוף פסאודו אינטראקטיבי להיות מוקצה לנו.

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

כל זה script-heredoc-8.Sh - הולך לעשות הוא לעדכן יומן חיבור במחשב המרוחק. חשבון המשתמש חותמת זמן ותאריך נרשמים לקובץ טקסט.

 #! / Bin / bash

ssh -t [email protected] & lt; & lt; _remote_commands.

# לעשות קצת עבודה כאן

# עדכון חיבור יומן
ECHO $ ​​משתמש "-" $ (תאריך) & GT; & GT; /home/dave/conn_log/script.log.
_remote_commands 

כאשר אנו מפעילים את הפקודה, אנו מתבקשים להסרה עבור החשבון על מְרוּחָק מַחשֵׁב.

. / Heredoc-8.Sh 

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

על ה מְרוּחָק מחשב, אנו יכולים להשתמש חתול כדי לבדוק את יומן החיבור:

 חתול conn_log / script.log 

כל חיבור מופיע עבורנו.

קָשׁוּר: כיצד ליצור ולהתקין מפתחות SSH מתוך פגז לינוקס

שם מוזר, תכונות מסודרות

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

קָשׁוּר: כיצד לגבות את מערכת לינוקס שלך עם rsync


לינוקס - המאמרים הפופולריים ביותר

כיצד לשחזר קבצים שנמחקו על לינוקס עם testdisk

לינוקס Nov 18, 2025

Fatmawati אחמד Zaenuri / Shutterstock האם אי פעם מחקת קובץ ומיד התחרט על כך? אתה צריך את זה בחזרה, ומהר! �..


כיצד לנהל שרתי לינוקס עם ממשק Web Cockpit

לינוקס Dec 9, 2025

Fatmawati Achmad Zaenuri / Shutterstock אתה יכול בקלות לפקח ולנהל מספר מחשבים לינוקס עם תא הטייס, ניהול מב..


כיצד לעבד קו קובץ על ידי קו בתוך סקריפט לינוקס Bash

לינוקס Feb 3, 2026

Fatmawati Achmad Zaenuri / Shutterstock זה די קל לקרוא את התוכן של קו קובץ טקסט לינוקס על ידי קו במעטפת תס..


כיצד להשתמש מוגבלים Shell כדי הגבל איזה עושים יכול משתמש לינוקס

לינוקס Mar 25, 2025

Fatmawati Achmad Zaenuri / Shutterstock מגביל פגז מוגבל במה חשבון משתמש יכול לעשות על לינוקס. משתמש מוגב�..


דוקר למתחילים: צריך אותך הכל לדעת

לינוקס Jun 15, 2025

סַוָר יוצר יישומים ארוזים מכולות שנקראות. מיכל כול מספק סביבה מבודדת דומה מכונה וירטואלי..


מה חדש בדביאן 11 "Bullseye"

לינוקס Jul 22, 2025

דביאן , את progenitor של הפצות לינוקס רבים אחרים, עשה שחרור 11 זמין בשלב בדיקה. האם אתה שוקל את המעלות של �..


אובונטו 21.10 מגיע עם שולחן 40 GNOME אישית

לינוקס Oct 14, 2025

אובונטו אם אתה משתמש אובונטו, או מישהו שחושב לתת לו לנסות, היום הוא יום טוב. Canonical יש פרסמה רשמי..


כיצד להגדיר כתובת IP סטטית באובונטו

לינוקס Oct 17, 2025

הרשת הביתית שלך מסתמכת על כתובות IP לנתב נתונים בין מכשירים, ולעיתים על חיבור מחדש לרשת שכתובת המכשיר יכולה..


קטגוריות