<ก่อนหน้านี้ | เนื้อหา | ถัดไป>
การสร้างคำสั่งของคุณเองด้วยนามแฝง
สำหรับประสบการณ์การเขียนโปรแกรมครั้งแรกของเรา! เราจะสร้างคำสั่งของเราเองโดยใช้ นามแฝง สั่งการ. แต่ก่อนที่เราจะเริ่ม เราต้องเปิดเผยเคล็ดลับเล็กๆ น้อยๆ เกี่ยวกับบรรทัดคำสั่ง เป็นไปได้ที่จะใส่มากกว่าหนึ่งคำสั่งบนบรรทัดโดยแยกแต่ละคำสั่งด้วยอักขระอัฒภาค มันทำงานเช่นนี้:
คำสั่ง1; คำสั่ง2; คำสั่ง3...
คำสั่ง1; คำสั่ง2; คำสั่ง3...
นี่คือตัวอย่างที่เราจะใช้:
[me@linuxbox ~]$ ซีดี /usr; ลส; ซีดี -
เกม bin kerberos lib64 แชร์ในเครื่อง tmp
[me@linuxbox ~]$ ซีดี /usr; ลส; ซีดี -
เกม bin kerberos lib64 แชร์ในเครื่อง tmp
ฯลฯ รวมถึงlib
/home/me [me@linuxbox ~]$
ลิเบกเซค ซบิน
สิ่งอำนวยความสะดวก
ฯลฯ รวมถึงlib
/home/me [me@linuxbox ~]$
อย่างที่เราเห็น เราได้รวมสามคำสั่งในหนึ่งบรรทัด ก่อนอื่นเราเปลี่ยนไดเร็กทอรีเป็น / usr จากนั้นแสดงรายการไดเร็กทอรีและสุดท้ายกลับไปที่ไดเร็กทอรีเดิม (โดยใช้ 'ซีดี
-') ดังนั้นเราจึงจบลงที่ที่เราเริ่มต้น ตอนนี้ เรามาเปลี่ยนลำดับนี้เป็นคำสั่งใหม่โดยใช้นามแฝง สิ่งแรกที่เราต้องทำคือสร้างชื่อให้กับคำสั่งใหม่ของเรา มาลอง "ทดสอบ" กัน ก่อนที่เราจะทำเช่นนั้น จะเป็นความคิดที่ดีที่จะค้นหาว่าชื่อ "การทดสอบ" ถูกใช้ไปแล้วหรือไม่ หากต้องการทราบ เราสามารถใช้คำสั่ง type อีกครั้ง:
[me@linuxbox ~]$ พิมพ์ทดสอบ
การทดสอบเป็นเปลือกในตัว
[me@linuxbox ~]$ พิมพ์ทดสอบ
การทดสอบเป็นเปลือกในตัว
อ๊ะ! ชื่อ "การทดสอบ" ถูกใช้ไปแล้ว มาลอง “foo”:
[me@linuxbox ~]$ พิมพ์ foo
bash: type: foo: ไม่พบ
[me@linuxbox ~]$ พิมพ์ foo
bash: type: foo: ไม่พบ
การสร้างคำสั่งของคุณเองด้วยนามแฝง
ยอดเยี่ยม! ไม่ใช้ "foo" มาสร้างนามแฝงของเรากันเถอะ:
[me@linuxbox ~]$ นามแฝง foo='ซีดี /usr; ลส; ซีดี -'
[me@linuxbox ~]$ นามแฝง foo='ซีดี /usr; ลส; ซีดี -'
สังเกตโครงสร้างของคำสั่งนี้:
นามแฝง ชื่อ='เชือก'
นามแฝง ชื่อ='เชือก'
หลังจากคำสั่ง "นามแฝง" เราจะตั้งชื่อแทนตามด้วยทันที (ไม่มีการเว้นวรรค) ด้วยเครื่องหมายเท่ากับ ตามด้วยสตริงที่ยกมาซึ่งมีความหมายที่จะกำหนดให้กับชื่อทันที หลังจากที่เรากำหนดนามแฝงของเราแล้ว สามารถใช้ได้ทุกที่ที่เชลล์คาดหวังคำสั่ง ลองดู:
[me@linuxbox ~]$ foo
เกม bin kerberos lib64 แชร์ในเครื่อง tmp
[me@linuxbox ~]$ foo
เกม bin kerberos lib64 แชร์ในเครื่อง tmp
ฯลฯ รวมถึงlib
/home/me [me@linuxbox ~]$
ลิเบกเซค ซบิน
สิ่งอำนวยความสะดวก
ฯลฯ รวมถึงlib
/home/me [me@linuxbox ~]$
เรายังสามารถใช้ไฟล์ ชนิด สั่งอีกครั้งเพื่อดูนามแฝงของเรา:
[me@linuxbox ~]$ พิมพ์ foo
foo มีนามแฝงว่า `cd /usr; ลส; ซีดี -'
[me@linuxbox ~]$ พิมพ์ foo
foo มีนามแฝงว่า `cd /usr; ลส; ซีดี -'
ในการลบนามแฝง the ยูนาเลีย ใช้คำสั่งเช่น:
[me@linuxbox ~]$ นามแฝง foo [me@linuxbox ~]$ พิมพ์ foo bash: type: foo: ไม่พบ
[me@linuxbox ~]$ นามแฝง foo [me@linuxbox ~]$ พิมพ์ foo bash: type: foo: ไม่พบ
แม้ว่าเราจะตั้งใจหลีกเลี่ยงการตั้งชื่อนามแฝงของเราด้วยชื่อคำสั่งที่มีอยู่ แต่ก็ไม่ใช่เรื่องแปลกที่จะทำเช่นนั้น ซึ่งมักจะทำเพื่อใช้ตัวเลือกที่ต้องการโดยทั่วไปกับการเรียกใช้คำสั่งทั่วไปแต่ละครั้ง ตัวอย่างเช่น เราเห็นก่อนหน้านี้ว่า ls คำสั่งมักใช้นามแฝงเพื่อเพิ่มการสนับสนุนสี:
[me@linuxbox ~]$ พิมพ์ ls
ls มีนามแฝงว่า `ls --color=tty'
[me@linuxbox ~]$ พิมพ์ ls
ls มีนามแฝงว่า `ls --color=tty'
หากต้องการดูนามแฝงทั้งหมดที่กำหนดไว้ในสภาพแวดล้อม ให้ใช้ นามแฝง คำสั่งโดยไม่มีข้อโต้แย้ง ต่อไปนี้คือนามแฝงบางส่วนที่กำหนดโดยค่าเริ่มต้นบนระบบ Fedora ลองและคิดว่าพวกเขาทั้งหมดทำอะไร:
[me@linuxbox ~]$ นามแฝง
นามแฝง l.='ls -d .* --color=tty' นามแฝง ll='ls -l --color=tty' นามแฝง ls='ls --color=tty'
[me@linuxbox ~]$ นามแฝง
นามแฝง l.='ls -d .* --color=tty' นามแฝง ll='ls -l --color=tty' นามแฝง ls='ls --color=tty'
มีปัญหาเล็กๆ อย่างหนึ่งในการกำหนดนามแฝงบนบรรทัดรับคำสั่ง พวกมันจะหายไปเมื่อเซสชั่นเชลล์ของคุณสิ้นสุดลง ในบทต่อๆ ไป เราจะมาดูวิธีการเพิ่มนามแฝงของเราในไฟล์ที่สร้างสภาพแวดล้อมทุกครั้งที่เราเข้าสู่ระบบ แต่สำหรับตอนนี้ ขอให้สนุกไปกับความจริงที่ว่าเราได้ก้าวเข้าสู่โลกของเชลล์เป็นครั้งแรก แม้ว่าจะเล็กน้อย การเขียนโปรแกรม!