ฉันสงสัยว่าฉันสามารถสร้างคำสั่งของตัวเองได้หรือไม่หากฉันพิมพ์ 'music' ที่บรรทัดคำสั่ง vlc ของฉันควรเปิดขึ้นและเริ่มเล่นรายการเพลงของฉัน สิ่ง vlc เป็นเพียงตัวอย่าง แต่คำถามยังคงอยู่
ฉันสามารถสร้างคำสั่งของตัวเองได้หรือไม่? ถ้าใช่เป็นอย่างไร
ฉันสงสัยว่าฉันสามารถสร้างคำสั่งของตัวเองได้หรือไม่หากฉันพิมพ์ 'music' ที่บรรทัดคำสั่ง vlc ของฉันควรเปิดขึ้นและเริ่มเล่นรายการเพลงของฉัน สิ่ง vlc เป็นเพียงตัวอย่าง แต่คำถามยังคงอยู่
ฉันสามารถสร้างคำสั่งของตัวเองได้หรือไม่? ถ้าใช่เป็นอย่างไร
คำตอบ:
ใช่ - สร้างไฟล์ชื่อmusicและวางสิ่งต่อไปนี้ไว้ภายใน:
#!/bin/bash
echo "Hello world"
ถัดไปพิมพ์chmod +x music
- สิ่งนี้ทำให้สามารถเรียกใช้ไฟล์ได้ ตอนนี้คุณสามารถพิมพ์./music
เพื่อเรียกใช้สคริปต์นี้
เป็นความคิดที่ดีที่จะพิมพ์echo $PATH
และคัดลอกสคริปต์ไปยังหนึ่งในไดเรกทอรีเหล่านั้น ผมจะแนะนำการสร้าง$HOME/bin
และเพิ่มว่าที่คุณเส้นทางผ่านหรือ~/.bash_profile
~/.profile
ซึ่งสามารถทำได้โดยการเพิ่ม export PATH="$HOME/bin:$PATH"
(ที่หนึ่งของไฟล์เหล่านั้น): จากนั้นคุณจะต้องเรียกใช้source .bash_profile
(สมมติว่าคุณใส่ไว้ในไฟล์นั้น) เพื่อโหลดซ้ำ
อีกทางเลือกหนึ่งคือการเพิ่มคำสั่งที่คุณต้องการเรียกใช้เป็นนามแฝงทุบตี คุณสามารถทำได้โดยเพิ่มสิ่งต่อไปนี้ในไฟล์ที่มีชื่อ.bash_aliases
ในโฮมไดเร็กตอรี่ของคุณ:
alias music='vlc --some-option --foo'
เรียกใช้source ~/.bash_aliases
หรือออกจากระบบและเข้าสู่ระบบและมันควรจะทำงาน :-)
วิธีที่ดีที่สุดในการทำเช่นนี้คือการแก้ไข (หรือสร้าง) ไฟล์ที่เรียกว่า.bash_aliases
ในโฟลเดอร์บ้านของคุณ
ไวยากรณ์ค่อนข้างง่าย:
alias install='sudo apt-get -y install'
ด้วยคำสั่งนี้หากคุณพิมพ์install
เทอร์มินัลคำสั่งนั้นจะถูกตีความว่าเป็น
sudo apt-get -y install
อย่างไรก็ตามคำสั่งเหล่านี้จะไม่ทำงานที่ใดก็ได้นอกเทอร์มินัล
ไฟล์เรียกทำงานใด ๆ ในไดเรกทอรีในพา ธ ของคุณอาจเป็น "คำสั่ง" อาจเป็นสคริปต์ตามคำแนะนำในคำตอบอื่น ๆ แต่อาจเป็นโปรแกรมที่คอมไพล์ในภาษาที่คุณสนับสนุน
นามแฝงจะใช้งานได้ แต่จะถูก จำกัด เพราะพวกเขาเป็น "one-liners" ดังนั้นการทำอะไรที่ซับซ้อนกับพวกเขาจะสร้างรหัสที่อ่านยาก นอกจากนี้เนื่องจากพวกมันทำงานในขอบเขตตัวแปรเดียวกับเชลล์ที่คุณพิมพ์ลงไปพวกมันสามารถมีผลข้างเคียงโดยไม่ตั้งใจเช่นปล่อยให้คุณไปยังไดเรกทอรีอื่นหรือปล่อยตัวแปรที่กำหนดไว้ซึ่งจำเป็นสำหรับภารกิจนามแฝงเท่านั้น (แน่นอนว่าบางครั้งคุณอาจต้องการใช้นามแฝงอย่างแม่นยำเพราะมีผลข้างเคียงที่ต้องการ)
หากคุณใส่คำสั่งใหม่ลงในไดเรกทอรีในพา ธ ของคุณเชลล์จะสามารถพบคำสั่งนั้นได้ สถานที่ที่พบได้บ่อยที่สุดคือ $ HOME / bin หากมีไดเรกทอรีนี้อยู่บ่อยครั้งมันจะถูกเพิ่มลงในพา ธ ของคุณโดยอัตโนมัติ
ข้อควรจำสองประการเมื่อตั้งค่านี้คือ: 1) โดยปกติแล้วควรใช้ชื่อเฉพาะสำหรับคำสั่งของคุณที่ไม่ตรงกับชื่อที่กำหนดไว้ในระบบของคุณ มีการถกเถียงกันมากมายเกี่ยวกับเรื่องนี้ แต่ประเด็นหลักคือคำสั่งที่คุ้นเคยไม่ควรให้ผลลัพธ์ที่คาดไม่ถึงหากมีคนอื่นกำลังใช้ระบบของคุณและการใช้ความคุ้นเคยกับคำสั่งทั่วไปที่ทำสิ่งพิเศษอาจทำให้คุณมีปัญหาเมื่อคุณทำงานบนระบบอื่น ไม่ได้กำหนดไว้ในที่นั้น
2) คุณสามารถเพิ่ม $ HOME / bin ไปที่จุดเริ่มต้นหรือจุดสิ้นสุดของเส้นทางของคุณ (หรือที่ใดก็ได้ในระหว่าง แต่ไม่ปกติทำ)
การเพิ่มที่ด้านหน้าพา ธ ของคุณเป็นตัวเลือกที่สะดวกที่สุดเนื่องจากคำสั่งเวอร์ชันของคุณจะเป็นตัวที่เรียกใช้งานและจะพบได้เร็วขึ้น นอกจากนี้ยังเป็นช่องโหว่ด้านความปลอดภัยเพราะใครก็ตามที่ได้รับอนุญาตให้เขียน $ HOME / bin ของคุณ (ง่ายกว่าการเข้าถึงรูทมาก) สามารถแทนที่คำสั่งทั่วไปด้วยโค้ดที่อาจเป็นอันตรายได้ง่ายมาก นอกจากนี้หากคุณต้องการขอความช่วยเหลือจากบุคคลที่ไม่รู้จักระบบของคุณพวกเขาก็มีแนวโน้มที่จะสะดุดกับพฤติกรรมพิเศษของคำสั่งที่กำหนดเองของคุณเว้นแต่คุณจะใช้ความพยายามพิเศษอธิบายทุกอย่างเป็นพิเศษ ถามคำถามของคุณ
การเพิ่มในส่วนท้ายของคำสั่งพา ธ ของคุณนั้นปลอดภัยกว่าเล็กน้อยเพราะคำสั่งใด ๆ ที่มีชื่อเดียวกับคำสั่งของคุณที่อยู่ในพา ธ ของคุณจะถูกพบก่อนแล้วจึงเรียกใช้แทน - และสิ่งอื่น ๆ ที่อาศัยคำสั่งนั้น .
เพื่อหลีกเลี่ยงสิ่งนี้ทั้งหมด (ด้วยค่าใช้จ่ายในการพิมพ์พิเศษเล็กน้อย) คุณสามารถใส่คำสั่งลงในไดเรกทอรีที่ไม่ได้อยู่ในเส้นทางของคุณดังนั้นมันจะแทบไม่ถูกเรียกใช้โดยไม่ได้ตั้งใจเพราะคุณจะต้องพิมพ์ชื่อพา ธ แบบเต็ม เรียกใช้มัน
เช่นเดียวกับสิ่งส่วนใหญ่ใน Linux มีหลายวิธีในการสร้างและใช้คำสั่งใหม่และแต่ละคำสั่งมีข้อดีและข้อ จำกัด ของตัวเอง