วิธีการใช้“นี่คือเอกสาร” ในการทุบตีบนลินุกซ์

Mar 31, 2025
Linux
Fatmawati Achmad Zaenuri / Shutterstock

ชื่อแปลก“ที่นี่เอกสาร” ให้คุณใช้อินพุต / ออกเปลี่ยนเส้นทางภายในสคริปต์ทุบตีบน Linux พวกเขากำลังเป็นวิธีที่ดีในการทำงานโดยอัตโนมัติคำสั่งที่คุณต้องทำงานบนคอมพิวเตอร์ระยะไกล

ที่นี่เอกสาร

คำสั่งจำนวนมากในลินุกซ์มีสองหรือสามชื่อตัวอักษร นี่คือส่วนหนึ่งในสิ่งที่ก่อให้เกิดความคิดที่ว่าลินุกซ์เป็นเรื่องยากที่จะเรียนรู้และเต็มรูปแบบของคำสั่งลับ แต่หนึ่งในชื่อที่แปลกประหลาดในลินุกซ์ไม่ได้เป็นหนึ่งในคนที่สั้นลับ “นี่คือเอกสาร” ไม่ได้เอกสารและมันไม่ได้จริงๆล้างสิ่งที่“ที่นี่” หมายถึงการอย่างใดอย่างหนึ่ง

พวกเขาจะสร้างค่อนข้างชัดเจน แต่พวกเขามีประโยชน์ ของหลักสูตรนี้คือลินุกซ์จึงมีมากกว่าหนึ่งวิธีที่จะผิวแมว บางส่วนของการทำงานโดยที่นี่เอกสารสามารถทำซ้ำในรูปแบบอื่น บรรดาวิธีการอื่นที่มักจะมีความซับซ้อนมากขึ้น ในการเขียนโปรแกรมและการเขียนสคริปต์“ที่มีความซับซ้อนมากขึ้น” นอกจากนี้ยังหมายถึง“มีแนวโน้มมากขึ้นที่จะโรคจิต” และรหัสของคุณยากที่จะรักษา

ที่ไหนที่นี่จริงๆเอกสาร Excel อยู่ในระบบอัตโนมัติของคำสั่งที่คุณต้องการส่งไปยังคอมพิวเตอร์ระยะไกลจากการเชื่อมต่อที่จัดตั้งขึ้นจากภายในสคริปต์ ทำให้การเชื่อมต่อเป็นเรื่องง่าย แต่เมื่อการเชื่อมต่อได้รับการทำอย่างไรคุณ“ปั๊ม” คำสั่งของคุณจากสคริปต์ของคุณลงในเปลือกบนคอมพิวเตอร์ระยะไกลหรือไม่ นี่คือเอกสารที่ช่วยให้คุณสามารถทำเช่นนั้นได้มากเพียง

หลักการพื้นฐานของเอกสารที่นี่

การเป็นตัวแทนของสำนวนที่นี่มีลักษณะเอกสารเช่นนี้

 COMMAND & lt; & lt; limit_string
 .
 .
ข้อความ
ข้อมูล
ตัวแปร
.
.
limit_string 
  • สั่งการ : นี้จะมีคำสั่งใด ๆ ลินุกซ์ที่รับข้อมูลที่ถูกเปลี่ยนเส้นทาง หมายเหตุที่ ก้อง สั่งการ ไม่ได้รับข้อมูลที่ถูกเปลี่ยนเส้นทาง . หากคุณต้องการที่จะเขียนถึงหน้าจอคุณสามารถใช้ แมว สั่งการ, ซึ่งไม่ .
  • & lt; & lt; : ผู้ประกอบการเปลี่ยนเส้นทาง
  • limit_string : นี่คือฉลาก มันอาจจะเป็นสิ่งที่คุณต้องการตราบเท่าที่มันไม่ปรากฏในรายการของข้อมูลที่คุณกำลังเปลี่ยนเส้นทางลงในคำสั่ง มันถูกใช้เพื่อทำเครื่องหมายจุดสิ้นสุดของข้อความข้อมูลและรายชื่อตัวแปร
  • รายการข้อมูล : รายการของข้อมูลที่จะป้อนคำสั่ง มันสามารถมีคำสั่งข้อความและตัวแปร เนื้อหาของรายการข้อมูลจะถูกป้อนเข้าคำสั่งหนึ่งบรรทัดในเวลาจนกว่า _limit_string จะพบ

คุณอาจจะดูตัวอย่างจากที่นี่เอกสารที่ใช้“EOF” เป็นสตริงขีด จำกัด เราไม่ได้เข้าข้างวิธีการที่ มันทำงานได้ แต่“EOF” หมายถึง“จุดสิ้นสุดของแฟ้ม.” นอกเหนือจากกรณีที่หายากที่เอกสารที่บ้านเป็นสิ่งสุดท้ายในแฟ้มสคริปต์“EOF” ถูกนำมาใช้อย่างไม่ถูกต้อง

มันจะทำให้สคริปของคุณมากอ่านได้มากขึ้นถ้าคุณใช้สตริงขีด จำกัด ที่หมายถึงสิ่งที่คุณทำ หากคุณกำลังส่งชุดของคำสั่งไปยังเครื่องคอมพิวเตอร์จากระยะไกลผ่าน Secure Shell (SSH), สตริงขีด จำกัด ที่เรียกว่าบางสิ่งบางอย่างเช่น“_remote_commands” จะทำให้ความรู้สึกที่สมบูรณ์แบบ คุณไม่จำเป็นต้องเริ่มต้นพวกเขาด้วยการขีดเส้นใต้“ _ " อักขระ. เราทำอย่างนั้นเพราะมันเครื่องหมายพวกเขาเป็นบางสิ่งบางอย่างออกจากสามัญในสคริปต์ของคุณ

ตัวอย่างง่ายๆ

คุณสามารถใช้ที่นี่เอกสารในบรรทัดคำสั่งและในสคริปต์ เมื่อคุณพิมพ์ต่อไปนี้ในหน้าต่าง terminal, คุณจะเห็น“ & gt; ” สายต่อเนื่องแจ้งให้ทุกครั้งที่คุณกดปุ่ม ‘Enter.’ เมื่อคุณพิมพ์“_end_of_text สตริง” ขีด จำกัด และกด“Enter” รายการของเว็บไซต์ที่ถูกส่งไปยัง แมว, และพวกเขาจะแสดงในหน้าต่าง terminal

 แมว & lt; & lt; _END_OF_TEXT
geek วิธีการ
รีวิว Geek
LifeSavvy
CloudSavvy ไอที
MindBounce
_END_OF_TEXT 

ที่ไม่คุ้มค่ามากที่สุดของการออกกำลังกาย แต่มันก็แสดงให้เห็นว่าไม่มีอะไรที่จะถูกส่งไปที่คำสั่งจนรายชื่อทั้งหมดของข้อมูลจะถูกรวบรวมและสตริงวงเงินที่จะพบ NS แมว คำสั่งไม่ได้รับการป้อนข้อมูลใด ๆ จนกว่าคุณจะป้อนขีด จำกัด สตริง“_end_of_text” และกด“Enter”

เราสามารถทำสิ่งเดียวกันในสคริปต์ พิมพ์หรือคัดลอกตัวอย่างนี้ลงในโปรแกรมแก้ไขการบันทึกแฟ้มเป็น“heredoc-1.sh” และใกล้บรรณาธิการ

 #! / bin / bash

CAT & LT; & lt; "_end_of_text"
ชื่อผู้ใช้ของคุณคือ: $ (WHOAMI)
ไดเรกทอรีการทำงานปัจจุบันของคุณคือ: $ pwd
รุ่น Bash ของคุณคือ: $ bash_version
_END_OF_TEXT 

ในขณะที่คุณติดตามบทความนี้ทุกครั้งที่คุณสร้างสคริปต์คุณจะต้อง ทำให้มันสามารถทำงานได้ ก่อนที่มันจะทำงาน ในแต่ละกรณี, ใช้ chmod สั่งการ . แทนที่ชื่อของสคริปต์ในแต่ละตัวอย่างสำหรับชื่อสคริปต์ที่ใช้ที่นี่

 chmod + x heredoc-1.sh 

สคริปต์นี้มีสองตัวแปรสภาพแวดล้อม $ pwd และ $ bash_version . ชื่อตัวแปรสภาพแวดล้อมจะถูกแทนที่ด้วยค่าข้อมูลของพวกเขา - ไดเรกทอรีการทำงานปัจจุบันและรุ่นของ Bash-เมื่อสคริปต์ถูกดำเนินการ

สคริปต์ยังใช้ การทดแทนคำสั่ง บน NS ฉันเป็นใคร สั่งการ . ชื่อของคำสั่งจะถูกแทนที่ด้วยเอาต์พุตของตัวเอง เอาต์พุตจากสคริปต์ทั้งหมดถูกเขียนไปยังหน้าต่างเทอร์มินัลโดยคำสั่ง cat เราเรียกใช้สคริปต์ด้วยการโทรตามชื่อ:

 ./ heredoc-1.sh 

หากคุณแก้ไขสคริปต์และสรุปสตริงขีด จำกัด ในบรรทัดแรกของเอกสารที่นี่ในเครื่องหมายอัญประกาศ " " "รายการข้อมูลจะถูกส่งผ่านไปยังคำสั่ง document document ที่นี่ Verbatim ชื่อตัวแปรจะปรากฏขึ้นแทนค่าตัวแปรและการทดแทนคำสั่งจะไม่เกิดขึ้น

 #! / bin / bash

cat & lt; & lt; - "_end_of_text"
ชื่อผู้ใช้ของคุณคือ: $ (WHOAMI)
ไดเรกทอรีการทำงานปัจจุบันของคุณคือ: $ pwd
รุ่น Bash ของคุณคือ: $ bash_version
_END_OF_TEXT 

จัดการอักขระแท็บ

ตามค่าเริ่มต้นอักขระแท็บในรายการข้อมูลของคุณจะถูกเก็บไว้และเขียนไปยังหน้าต่างเทอร์มินัล คัดลอกและบันทึกตัวอย่างนี้เป็น "Heredoc-2.sh" ทำให้สามารถใช้งานได้โดยใช้ chmod สั่งการ. แก้ไขบรรทัดที่เยื้องเพื่อให้แน่ใจว่ามีอักขระแท็บหนึ่งหรือสองตัวที่จุดเริ่มต้นของบรรทัดแทนที่จะเป็นชุดของช่องว่าง

 #! / bin / bash

CAT & LT; & lt; _END_OF_TEXT
ชื่อผู้ใช้ของคุณคือ: $ (WHOAMI)
  ไดเรกทอรีการทำงานปัจจุบันของคุณคือ: $ pwd
    รุ่น Bash ของคุณคือ: $ bash_version
_END_OF_TEXT 
 ./ heredoc-2.sh 

แท็บถูกเขียนไปยังหน้าต่างเทอร์มินัล

โดยการเพิ่มเส้นประ " - "ไปยังผู้ให้บริการการเปลี่ยนเส้นทางเอกสารที่นี่จะเพิกเฉยต่อตัวละครแท็บชั้นนำ บันทึกตัวอย่างนี้เป็น "Heredoc-3.sh" และทำให้มันสามารถทำงานได้

 #! / bin / bash

CAT & LT; & lt; - _END_OF_TEXT
ชื่อผู้ใช้ของคุณคือ: $ (WHOAMI)
  ไดเรกทอรีการทำงานปัจจุบันของคุณคือ: $ pwd
    รุ่น Bash ของคุณคือ: $ bash_version
_END_OF_TEXT 
 ./ heredoc-3.sh 

แท็บจะถูกละเว้น นี่อาจดูไม่สำคัญ แต่มันเป็นวิธีที่เรียบร้อยในการรับมือกับแท็บชั้นนำเนื่องจากส่วนที่เยื้องของสคริปต์

ลูปและโครงสร้างเชิงตรรกะอื่น ๆ มักจะเยื้อง หากเอกสารที่นี่มีอยู่ในส่วนที่เยื้องของสคริปต์โดยใช้เส้นประ " - "ด้วยตัวดำเนินการเปลี่ยนเส้นทางลบปัญหาการจัดรูปแบบที่เกิดจากอักขระแท็บชั้นนำ

 #! / bin / bash

ถ้าเป็นจริง; แล้ว
  cat & lt; & lt; - _limit_string
  บรรทัดที่ 1 พร้อมแท็บชั้นนำ
  บรรทัดที่ 2 พร้อมแท็บชั้นนำ
  บรรทัดที่ 3 พร้อมแท็บชั้นนำ
  _limit_string
fi 

เปลี่ยนเส้นทางไปยังไฟล์

เอาต์พุตจากคำสั่งที่ใช้กับเอกสารที่นี่สามารถเปลี่ยนเส้นทางไปยังไฟล์ได้ ใช้ " & gt; "(สร้างไฟล์) หรือ" & gt; & gt; "(สร้างไฟล์หากไม่มีอยู่ต่อท้ายไฟล์หรือไม่) ตัวดำเนินการเปลี่ยนเส้นทาง หลังจาก ขีด จำกัด สตริงในบรรทัดแรกของเอกสารที่นี่

สคริปต์นี้คือ "Heredoc-4.sh" มันจะเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ข้อความที่เรียกว่า "Session.txt"

 #! / bin / bash

CAT & LT; & lt; _END_OF_TEXT & GT; session.txt
ชื่อผู้ใช้ของคุณคือ: $ (WHOAMI)
ไดเรกทอรีการทำงานปัจจุบันของคุณคือ: $ pwd
รุ่น Bash ของคุณคือ: $ bash_version
_END_OF_TEXT 
 ./ heredoc-4.sh 
 Cat Session.Text 

วางเอาต์พุตไปยังคำสั่งอื่น

เอาท์พุทจากคำสั่งที่ใช้ในเอกสารที่นี่สามารถส่งเป็นอินพุตไปยังคำสั่งอื่น ใช้ ท่อ " | "ผู้ประกอบการ หลังจาก ขีด จำกัด สตริงในบรรทัดแรกของเอกสารที่นี่ เรากำลังจะไปที่ท่อส่งออกจากคำสั่งเอกสารที่นี่ แมว , เข้าไปข้างใน sed . เราต้องการ ทดแทนทั้งหมดที่เกิดขึ้น ของตัวอักษร "A" กับตัวอักษร "E"

ตั้งชื่อสคริปต์นี้ "heredoc-5.sh"

 #! / bin / bash

CAT & LT; & lt; _END_OF_TEXT | SED 'S / A / E / G'
ยังไง
ถึง
กัว
_END_OF_TEXT 
 ./ heredoc-5.sh 

"Gaak" ได้รับการแก้ไขให้เป็น "Geek"

การส่งพารามิเตอร์ไปยังฟังก์ชั่น

คำสั่งที่ใช้กับเอกสารที่นี่สามารถเป็นฟังก์ชั่นในสคริปต์

สคริปต์นี้ผ่านข้อมูลยานพาหนะเข้ากับฟังก์ชั่น ฟังก์ชั่นอ่านข้อมูลราวกับว่ามันถูกพิมพ์ในโดยผู้ใช้ ค่าของตัวแปรจะถูกพิมพ์แล้ว บันทึกสคริปต์นี้เป็น "heredoc-6.sh"

 #! / bin / bash

# ฟังก์ชัน SET_CAR_DETAILS ()
SET_CAR_DETAILS ()
{
อ่านทำ
อ่านโมเดล
อ่าน new_used
อ่าน delivery_collect
อ่านสถานที่
อ่านราคา
}

# เอกสารที่นี่ที่ผ่านข้อมูลไปยัง set_car_details ()
set_car_details & lt; & lt; _mars_rover_data
นาซ่า
ความเพียร Rover
ใช้แล้ว
เก็บรวบรวม
ดาวอังคาร (ยาว, ลาด) 77.451865,18.445161
2.2 พันล้าน
_mars_rover_data

# ดึงรายละเอียดยานพาหนะ
Echo "ทำ: $ ทำ"
Echo "รุ่น: $ model"
echo "ใหม่หรือใช้แล้ว: $ new_used"
echo "การจัดส่งหรือคอลเลกชัน: $ delivery_collect"
echo "ที่ตั้ง: $ location"
Echo "ราคา \ $: ราคา $" 
 ./ heredoc-6.sh 

รายละเอียดยานพาหนะถูกเขียนไปยังหน้าต่างเทอร์มินัล

การสร้างและส่งอีเมล

เราสามารถใช้เอกสาร A ที่นี่เพื่อเขียนและส่งอีเมล โปรดทราบว่าเราสามารถส่งพารามิเตอร์ไปยังคำสั่งที่ด้านหน้าของตัวดำเนินการเปลี่ยนเส้นทาง คือ การใช้ Linux จดหมาย สั่งการ ถึง ส่งอีเมลผ่านระบบเมลท้องถิ่น ไปยังบัญชีผู้ใช้ที่เรียกว่า "เดฟ" NS -NS ตัวเลือก (หัวเรื่อง) ช่วยให้เราระบุหัวเรื่องสำหรับอีเมล

ตัวอย่างนี้แบบฟอร์มสคริปต์ "heredoc-7.sh."

 #! / bin / bash

บทความ = "เอกสารที่นี่"

Mail -s 'สถานะเวิร์กโหลด' Dave & LT; & lt; _project_report
ชื่อผู้ใช้: $ (WHOAMI)
เสร็จสิ้นการมอบหมาย:
บทความ: $ บทความ
_project_report 
 ./ heredoc-7.sh 

ไม่มีเอาต์พุตที่มองเห็นได้จากสคริปต์นี้ แต่เมื่อเราตรวจสอบอีเมลของเราเราจะเห็นว่าอีเมลถูกจัดส่งส่งและส่งมอบ

 จดหมาย 

ใช้เอกสารที่นี่กับ SSH

เอกสารที่นี่เป็นวิธีที่ทรงพลังและสะดวกในการดำเนินการคำสั่งบางคำในคอมพิวเตอร์ระยะไกลเมื่อมีการสร้างการเชื่อมต่อ SSH หากคุณตั้งค่าคีย์ SSH ระหว่างคอมพิวเตอร์สองเครื่องกระบวนการเข้าสู่ระบบจะเป็นไปโดยอัตโนมัติอย่างสมบูรณ์ ในตัวอย่างที่รวดเร็วและสกปรกนี้คุณจะได้รับแจ้งให้ใช้รหัสผ่านสำหรับบัญชีผู้ใช้บนคอมพิวเตอร์ระยะไกล

สคริปต์นี้คือ "heredoc-8.sh" เราจะเชื่อมต่อกับคอมพิวเตอร์ระยะไกลที่เรียกว่า "Remote-PC" บัญชีผู้ใช้เรียกว่า "Dave" เรากำลังใช้ -NS (ปิดใช้งานตัวเลือกการจัดสรร 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 

ข้อมูลบางอย่างเกี่ยวกับคอมพิวเตอร์ระยะไกลจะปรากฏขึ้นและเราจะกลับไปที่พรอมต์คำสั่ง

บน ระยะไกล คอมพิวเตอร์เราสามารถใช้ แมว วิธีตรวจสอบบันทึกการเชื่อมต่อ:

 Cat Conn_log / Script.log 

การเชื่อมต่อแต่ละรายการมีการระบุไว้สำหรับเรา

ที่เกี่ยวข้อง: วิธีการสร้างและติดตั้งปุ่ม SSH จากเปลือก Linux

ชื่อแปลก ๆ คุณสมบัติที่เรียบร้อย

เอกสารที่นี่มีความแปลกประหลาด แต่ทรงพลังโดยเฉพาะเมื่อใช้ในการส่งคำสั่งไปยังคอมพิวเตอร์ระยะไกล มันเป็นเรื่องง่ายที่จะสคริปต์รูทีนสำรองโดยใช้ rsync . สคริปต์สามารถเชื่อมต่อกับคอมพิวเตอร์ระยะไกลตรวจสอบพื้นที่เก็บข้อมูลที่เหลือและส่งอีเมลแจ้งเตือนหากพื้นที่เริ่มต่ำ

ที่เกี่ยวข้อง: วิธีสำรองระบบ Linux ของคุณด้วย Rsync


Linux - บทความยอดนิยม

วิธีการค้นหาและลบ Symlink ที่เสียหายบน Linux

Linux Nov 12, 2024

Fatmawati Achmad Zaenuri / Shutterstock ลิงค์สัญลักษณ์บน Linux เป็นคุณสมบัติที่ยอดเ�..


วิธีจัดการเซิร์ฟเวอร์ Linux กับ Cockpit Web Interface

Linux Dec 9, 2024

Fatmawati Achmad Zaenuri / Shutterstock คุณสามารถตรวจสอบและจัดการเครื่องคอมพิวเ�..


ที่ดีที่สุดลินุกซ์โดยไม่ต้อง systemd

Linux Feb 24, 2025

BMJ / Shutterstock.com เมื่อการกระจายลินุกซ์ที่โดดเด่นนำมาใช้ ระบบ ..


วิธีการเลือกระหว่างอูบุนตู Kubuntu, Xubuntu และ Lubuntu

Linux Mar 19, 2025

TOMEQS / Shutterstock.com มีมากกว่าหนึ่ง Ubuntu คุณสามารถดาวน์โหลด Ubuntu, Kubuntu, Xubuntu ห..


วิธีใช้คำสั่ง fsck บน Linux

Linux Aug 18, 2025

Pixza Studio / Shutterstock ข้อมูลสำคัญทั้งหมดของเราตั้งอยู่ในระบบไฟล์ข�..


วิธีการ Roll Back เคอร์เนลในลินุกซ์

Linux Sep 30, 2025

Fatmawati Achmad Zaenuri / Shutterstock.com ถ้าลินุกซ์พีซีของคุณก็มีปัญหาหลังจากก�..


คืออะไรป๊อป! _OS?

Linux Oct 20, 2025

หากคุณเคยได้ยินเกี่ยวกับ Pop! _OS คุณอาจได้เห็นผู้คนมักจะหมายถึงว..


10 ตัวอย่างที่เป็นประโยชน์ของคำสั่ง Linux RSYNC

Linux Oct 24, 2025

Linux rsync คำสั่งเป็นเครื่องมือคัดลอกไฟล์และการซิงโครไนซ์โฟลเดอร์ นี�..


หมวดหมู่