เพื่อลดปัญหาการพิมพ์ นักพัฒนาโปรแกรมอรรถประโยชน์คำสั่งได้พยายามกำจัดการพิมพ์ที่ไม่เกี่ยวข้องด้วยตัวย่อ เช่น ls แทน list, cd แทนการเปลี่ยนแปลงไดเรกทอรี cat แทน catenate เป็นต้น แต่พิมพ์คำสั่งเดียวกันซ้ำแล้วซ้ำอีก ซ้ำแล้วซ้ำเล่าน่าเบื่อและไม่สนุกอย่างแท้จริง
นี่คือที่มาของนามแฝง คุณสามารถใช้นามแฝงเพื่อกำหนดคำสั่งลัดสำหรับคำสั่งเฉพาะได้ ในที่นี้ เราจะพูดถึงวิธีสร้างนามแฝงของ Bash และสาธิตนามแฝงที่มีประโยชน์ที่คุณอาจชอบ
นามแฝงทุบตี
เมื่อคุณเรียกใช้คำสั่งในเทอร์มินัล เป็นหน้าที่ของเชลล์ในการประมวลผลและนำเสนอต่อระบบปฏิบัติการเพื่อทำงานเป้าหมาย Bash (ตัวย่อของเชลล์ Bourne-Again) เป็นหนึ่งในเชลล์ UNIX ที่ได้รับความนิยมมากที่สุด Linux distros ส่วนใหญ่มาพร้อมกับ Bash shell โดยค่าเริ่มต้น
ตอนนี้ Bash คืออะไร นามแฝง ? เราทุกคนต่างก็มีความคิดว่านามแฝงทำงานอย่างไร ใช่ไหม? ในทำนองเดียวกัน เมื่อคุณต้องการใช้วลีของคุณเพื่อแสดงถึงคำสั่งใดคำสั่งหนึ่ง คุณสามารถสร้างนามแฝงสำหรับคำสั่งนั้นได้ Bash จะจดจำและปฏิบัติต่อวลีที่กำหนดเองเป็นคำสั่ง เมื่อรัน Bash จะแปลเป็นคำสั่งดั้งเดิมโดยอัตโนมัติ
นามแฝง Bash มี 2 ประเภท
- ชั่วคราว: นามแฝงประเภทนี้จะคงอยู่ตราบเท่าที่เซสชันของเชลล์ทำงานอยู่ เมื่อเชลล์ถูกยกเลิก มันจะลืมนามแฝง
- ถาวร: เมื่อสร้างแล้ว Bash จะจดจำการสร้างนามแฝงและความหมายของชื่อ
ฉันจะแสดงวิธีสร้างและจัดการนามแฝงต่อไปในบทช่วยสอนนี้ วิธีการทั้งหมดที่อธิบายไว้ดำเนินการบน Ubuntu อย่างไรก็ตาม มันจะทำงานบน Linux distro ใด ๆ ตราบใดที่คุณทำงานกับ Bash
การสร้างนามแฝงชั่วคราว
นี่คือรูปแบบนามแฝงที่ Bash จะลืมเมื่อปิดเซสชัน นั่นเป็นเหตุผลที่ฉันแนะนำให้คุณสร้างนามแฝงที่คุ้มค่าสำหรับเซสชัน
สำหรับการสร้างนามแฝง Bash ชั่วคราว โครงสร้างคำสั่งมีลักษณะดังนี้
$นามแฝง <alias_name>=<สั่งการ>มาทำให้ชัดเจนด้วยตัวอย่าง ฉันใช้ Ubuntu ดังนั้นหากฉันต้องการอัปเดตแพ็คเกจทั้งหมดของระบบ ฉันต้องเรียกใช้คำสั่งต่อไปนี้
$sudoapt update&& sudoอัพเกรดฉลาด-และ
ตอนนี้ลองใช้ apt-sysupdate เป็นทางเลือกที่จะทำงานเหมือนกับคำสั่งดังกล่าวได้อย่างไร สร้างนามแฝงโดยการรันคำสั่งนี้
$นามแฝงapt-sysupdate='sudo apt update && sudo apt upgrade -y'ลองดูว่ามันใช้งานได้หรือไม่!
โว้ว! มันได้ผล!
ที่นี่เมื่อใดก็ตามที่ Bash เห็นคำสั่ง apt-sysupdate คำสั่งนั้นจะถูกแปลเป็นคำสั่งแบบยาวที่จะดำเนินการ
นี่คือสิ่งที่สนุกที่จะทำ เราจะสร้างนามแฝงของนามแฝงได้อย่างไร มาสร้างการอัปเดตนามแฝงสำหรับคำสั่ง apt-sysupdate
$นามแฝง อัปเดต='apt-sysupdate'ตอนนี้มาดูกันว่ามันใช้งานได้หรือไม่
ใช่มันทำ!
การสร้างนามแฝงถาวร
สำหรับการสร้างนามแฝงถาวร เราต้องประกาศในไฟล์ bashrc bashrc เป็นเชลล์สคริปต์ที่ดำเนินการทุกครั้งที่เริ่มเซสชันทุบตี มันตั้งอยู่ที่ ~/.bashrc เป็นเอกลักษณ์สำหรับผู้ใช้ทุกคนในระบบ
bashrc เป็นตัวเลือกยอดนิยมสำหรับการสร้างนามแฝงที่คุณชื่นชอบ Bashrc อาจมีหรือไม่มีอยู่ในระบบของคุณ เปิด bashrc ด้วย vim หากไม่มีอยู่ กลุ่มจะเปิดข้อความว่าง เรียนรู้เพิ่มเติมเกี่ยวกับ vim
$ฉันมา~/.bashrc
นี่คือรหัสสำหรับนามแฝงที่ดูเหมือนว่า
$นามแฝง <alias_name>=''มาสร้างการอัปเดตนามแฝงถาวรที่จะบอกให้ APT อัปเดตแคช repo และติดตั้งการอัปเดตที่มีอยู่ทั้งหมด
$นามแฝง อัปเดต='sudo apt update && sudo apt upgrade -y'
เมื่อสร้างนามแฝงแล้ว ให้บันทึกไฟล์ จากนั้นบอกให้ bash โหลดไฟล์ซ้ำ
$แหล่งที่มา~/.bashrcได้เวลาตรวจสอบว่าใช้งานได้หรือไม่ รีบูตระบบของคุณ ลงชื่อเข้าใช้บัญชีของคุณ และเรียกใช้การอัปเดตนามแฝงที่เราเพิ่งสร้างขึ้น
โว้ว! สร้างนามแฝงสำเร็จแล้ว!
เกิดอะไรขึ้นที่นี่? พูดง่ายๆ ว่า bash กำลังสร้างนามแฝงชั่วคราวทุกครั้งที่โหลด bashrc เมื่อ bash ยุติ มันจะลืมนามแฝง อย่างไรก็ตาม เนื่องจากไฟล์ bashrc เป็นสคริปต์แรกที่ bash รัน นามแฝงชั่วคราวจึงกลับมาอีกครั้ง มันสามารถอธิบายได้ว่าเป็นนามแฝงถาวรหลอก
แทนที่นามแฝง
สมมติว่าคุณได้ตั้งค่านามแฝง ls สำหรับคำสั่ง ls -lhA และด้วยเหตุผลบางประการ คุณต้องใช้เครื่องมือ ls หลักเพื่อทำสิ่งที่แตกต่างกัน ในกรณีที่คล้ายกัน จำเป็นต้องข้ามนามแฝง
หากต้องการข้ามนามแฝงชั่วคราว ให้รันคำสั่งด้วยโครงสร้างต่อไปนี้
$<สั่งการ>ตัวอย่างเช่น ฉันได้สร้างนามแฝง ls สำหรับคำสั่ง ls -lhA เมื่อใดก็ตามที่ฉันเรียกใช้ ls มันจะถูกแปลเป็นคำสั่ง จะเป็นอย่างไรหากฉันต้องการเรียกใช้เครื่องมือ ls โดยไม่มีตัวเลือกเพิ่มเติม ขอข้ามนามแฝงชั่วคราว
$ลส
รายชื่อนามแฝง
หากต้องการดูนามแฝงที่กำหนดค่าไว้ในปัจจุบันทั้งหมด ให้รันคำสั่งนี้
$นามแฝง
การลบนามแฝงชั่วคราว
การลบนามแฝงชั่วคราวนั้นง่ายมาก เพียงเรียกใช้คำสั่งนี้
$unalias <alias_name>ตัวอย่างเช่น ฉันมีนามแฝงทั้งหมด 3 ชื่อ ในการกำจัดนามแฝงการอัพเดท คำสั่งจะเป็น:
$unaliasอัปเดตมาตรวจสอบผลลัพธ์กัน
$นามแฝงโว้ว! นามแฝงหายไป!
อีกวิธีหนึ่งคือการออกจากเซสชันทุบตีปัจจุบันหรือรีบูตระบบ Bash จะไม่จำนามแฝงชั่วคราว ที่นี่ฉันรีบูทคอมพิวเตอร์แล้วและไม่มี bash alias
การลบนามแฝงถาวร
นามแฝงที่ประกาศในไฟล์ bashrc จะไม่หายไป แม้ว่าคุณจะ unalias พวกมันจะไม่ถูกลบออกจากไฟล์ bashrc ครั้งถัดไปที่โหลดเซสชัน bash นามแฝงก็กลับมาเช่นกัน นั่นเป็นเหตุผลที่จะกำจัดนามแฝงถาวร เราต้องลบออกจากไฟล์ bashrc ด้วยตนเอง
เปิดไฟล์ bashrc เป็นกลุ่ม
$ฉันมา~/.bashrc
ลบ bash alias ที่คุณไม่ต้องการ อีกวิธีหนึ่ง คุณสามารถแสดงความคิดเห็นเพื่อที่ครั้งต่อไปที่คุณต้องการ คุณสามารถยกเลิกการแสดงความเห็นได้
บันทึกไฟล์และบอกให้ bash โหลด bashrc ใหม่
$แหล่งที่มา~/.bashrcนามแฝง bash ที่มีประโยชน์บางอย่าง
ต่อไปนี้เป็นนามแฝงทั่วไปที่หลายคนใช้ รู้สึกอิสระที่จะทดลองกับนามแฝง จำไว้ว่า เมื่อใดก็ตามที่คุณลืมนามแฝง คุณสามารถเรียกใช้คำสั่ง alias เพื่อดูว่าจะเรียกใช้ตัวใด
คำสั่งต่อไปนี้จะพิมพ์เนื้อหาไดเร็กทอรีด้วยข้อมูลที่มนุษย์สามารถอ่านได้ในรูปแบบรายการแบบยาว
$นามแฝง NS='ล - ลา'มาสร้าง ls เพื่อแสดงรายการในคอลัมน์ที่มีตัวบ่งชี้
$นามแฝง ลส='ls -CF'นอกจากนี้เรายังสามารถพิมพ์ผิดตามคำสั่งที่ต้องการได้
$นามแฝง sl='ls -Cf'บางครั้งเอาต์พุต ls จะยาวมาก ในสถานการณ์เช่นนี้ เรามาวางเอาต์พุตของ ls ให้น้อยลง
$นามแฝง lsl='ls -lhFA | น้อย'ถัดลงมาเป็นคำสั่ง cd มาเพิ่มนามแฝงเพื่อกลับไปยังไดเร็กทอรีหลัก
$นามแฝง.. ='ซีดี ..'ใช้นามแฝงถัดไปเพื่อค้นหาไฟล์/โฟลเดอร์ที่คุณต้องการในไดเร็กทอรีปัจจุบัน
$นามแฝง ที่นี่='หา . -ชื่อ 'ตอนนี้ มาดูชื่อแทนของระบบกัน เครื่องมือ df ใช้สำหรับตรวจสอบการใช้งานดิสก์ ตั้งค่านามแฝงต่อไปนี้เพื่อรายงานผลลัพธ์ในหน่วยที่มนุษย์อ่านได้พร้อมกับประเภทระบบไฟล์และจำนวนการพิมพ์ทั้งหมดที่ด้านล่าง
$นามแฝง df='df -Tha - ทั้งหมด'จะสร้างเอาต์พุตเครื่องมือ du ขึ้นมาใหม่ได้อย่างไร
$นามแฝง ของ='คุณ -ach | เรียงลำดับ -h 'เครื่องมือฟรีรายงานจำนวนหน่วยความจำที่ใช้/ไม่ได้ใช้ของระบบที่ทำงานอยู่ มาทำให้ผลงานฟรีเป็นมิตรขึ้นกันเถอะ
$นามแฝง ฟรี='ฟรี -mt'หากคุณกำลังทำงานกับตารางกระบวนการอย่างต่อเนื่อง มีนามแฝงมากมายที่เราสามารถนำมาใช้ได้ ตัวอย่างเช่น ลองตั้งค่าเอาต์พุตเริ่มต้นสำหรับคำสั่ง ps
$นามแฝง ปล='ps auxf'มาเพิ่มฟังก์ชันการค้นหาให้กับตารางกระบวนการกัน
$นามแฝง psg='ps aux | grep -v grep | grep -i -e VSZ -e 'วิธีการทำให้ไดเร็กทอรี/โฟลเดอร์ง่ายขึ้นอีกเล็กน้อย? บ่อยครั้ง mkdir ตามด้วยแฟล็ก -p สำหรับการสร้างไดเร็กทอรีหลักที่จำเป็น มาผูกไว้ในนามแฝงต่อไปนี้
$นามแฝง mkdir='mkdir -p'ต้องการรับการแจ้งเตือนทุกครั้งที่สร้างไดเร็กทอรี? มาเพิ่มแฟล็ก -v ด้วย mkdir
$นามแฝง mkdir='mkdir -pv'Wget เป็นเครื่องมือดาวน์โหลดบรรทัดคำสั่งอย่างง่าย อย่างไรก็ตาม หากพบปัญหาระหว่างการดาวน์โหลด ระบบจะยกเลิกโดยอัตโนมัติ หากต้องการบังคับให้ wget ดำเนินการดาวน์โหลดต่อ จะต้องส่งแฟล็ก -c มารวมกันในนามแฝงนี้
$นามแฝง wget='wget -c'ต้องการตรวจสอบที่อยู่ IP สาธารณะหรือไม่ มาเพิ่มในรายการนามแฝงกันเถอะ!
$นามแฝง myip='ขด http://ipecho.net/plain; เสียงสะท้อน'นี่คือลักษณะที่ bashrc ของฉันใช้กับนามแฝงเหล่านี้ทั้งหมด
ความคิดสุดท้าย
นามแฝงเป็นคุณสมบัติที่ยอดเยี่ยมที่ช่วยลดภาระและความเบื่อหน่ายในการพิมพ์คำสั่งแบบยาวเดียวกัน นอกจากนี้ยังมีประโยชน์อย่างมากในการใช้สคริปต์ทุบตีเพื่อลดปริมาณงานในขณะที่โค้ดยังคงปราศจากความยุ่งเหยิงที่ไม่จำเป็น
ไม่มีชุดนามแฝงที่แน่นอน นามแฝงที่ฉันพูดถึงก่อนหน้านี้คือนามแฝงทั่วไปที่ผู้เชี่ยวชาญมักใช้ อย่างไรก็ตาม ขึ้นอยู่กับงานในแต่ละวันของคุณ ในที่สุดคุณจะพบกับนามแฝงของคุณเอง
หากคุณใช้นามแฝงจำนวนมาก ขอแนะนำให้รวมไว้ในไฟล์ bashrc พร้อมแสดงความคิดเห็นที่จำเป็น
สนุก!