กลับไปหน้าบทความ

อ่าน 3 นาที

ชื่อเรียกแทน (คำสั่ง)

เปลี่ยนเส้นทางไปยังหัวข้อที่เกี่ยวข้อง

aliasเป็นคำสั่งเชลล์ ที่กำหนดคำที่เชลล์จะแทนที่ด้วยข้อความที่เกี่ยวข้องก่อนที่จะตีความบรรทัดคำสั่ง...

ชื่อเรียกแทน (คำสั่ง)

ชื่อเล่น
ผู้เขียนต้นฉบับบิล จอย
นักพัฒนานักพัฒนาซอฟต์แวร์โอเพนซอร์สและเชิงพาณิชย์หลายราย
ระบบปฏิบัติการUnix , Unix-like , AmigaDOS , FreeDOS , Microsoft Windows , ReactOS , AROS , KolibriOS , IBM i
แพลตฟอร์มข้ามแพลตฟอร์ม
พิมพ์สั่งการ

aliasเป็นคำสั่งเชลล์ ที่กำหนดคำที่เชลล์จะแทนที่ด้วยข้อความที่เกี่ยวข้องก่อนที่จะตีความบรรทัดคำสั่ง[ 1 ] มักใช้เพื่อเพิ่มประสิทธิภาพการทำงานโดยการย่อคำสั่งหรือเพื่อรวมอาร์กิวเมนต์ที่ใช้บ่อยกับคำสั่ง คำสั่งนี้มีอยู่ในเชลล์ Unix , AmigaDOS , 4DOS / 4NT , FreeDOS , KolibriOS , PowerShell , ReactOS , EFI shell [ 2 ]และIBM i [ 3 ] คำสั่งนี้มีฟังก์ชันการสร้างนามแฝงในMS-DOSและCommand PromptDOSKEY

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

ชื่อย่อ (Aliases) ถูกนำมาใช้ในเชลล์ภาษาซี (C shell)เพื่อให้คงอยู่ต่อไปในเชลล์รุ่นหลัง เช่นtcshและbashเนื่องจากชื่อย่อเหล่านี้จำกัดอยู่เพียงบรรทัดเดียว จึงมีประโยชน์สำหรับการสร้างคำสั่งลัดที่ค่อนข้างง่าย แต่ไม่เหมาะสำหรับโครงสร้างที่ซับซ้อนกว่าเชลล์ Bourne เวอร์ชันเก่า ไม่มีชื่อย่อ แต่มีฟังก์ชัน ซึ่งมีประสิทธิภาพมากกว่าชื่อย่อ csh ในที่สุด ชื่อย่อ csh ก็ถูกนำมาใช้ใน เชลล์ bashและkshสำหรับเชลล์ที่รองรับทั้งฟังก์ชันและชื่อย่อ แต่ไม่มีสคริปต์เชลล์แบบอินไลน์ที่มีพารามิเตอร์ การใช้ฟังก์ชันทุกครั้งที่เป็นไปได้จึงเป็นสิ่งที่แนะนำ อย่างไรก็ตาม ชื่อย่อก็จำเป็นในกรณีที่ต้องการใช้ชื่อย่อแบบต่อเนื่องกัน

คุณสมบัติ

กำหนด

ต่อไปนี้เป็นตัวอย่างที่กำหนดgcให้คำสั่งนั้นทำหน้าที่ดำเนินการบางgit commitอย่าง

alias gc = 'git commit'

ใน C shell และ tcsh ไม่มีเครื่องหมายเท่ากับ:

alias gc "git commit"

ในการกำหนดชื่อเรียกแทน (alias) ใน PowerShell new-aliasจะใช้คำสั่ง cmdlet ดังนี้:

new-alias ci copy-item

ใน PowerShell ไม่สามารถใช้ชื่อย่อ (alias) เพื่อระบุค่าเริ่มต้นของคำสั่งได้ แต่ต้องทำโดยการเพิ่มรายการลงในคอลเลกชัน ซึ่ง$PSDefaultParameterValuesเป็นหนึ่งในตัวแปรการตั้งค่าของ PowerShell แทน

ใน PowerShell setคำกริยา `undefined` ใช้สำหรับเปลี่ยนชื่อเล่นที่มีอยู่แล้ว ตัวอย่างต่อไปนี้จะเปลี่ยนชื่อเล่นciเพื่อเรียกใช้clsคำสั่ง

set-alias ci cls

ในเชลล์ของ 4DOS/4NT esetคำสั่งนี้จะช่วยให้สามารถแก้ไขนามแฝงที่มีอยู่ได้โดยใช้บรรทัดคำสั่งแบบโต้ตอบ ตัวอย่างเช่น:

eset /a cp

รายการ

เพื่อดูชื่อเรียกแทนที่กำหนดไว้:

ชื่อเล่น

วิธีการแสดงรายการนามแฝงในลักษณะที่อนุญาตให้สร้างนามแฝงเหล่านั้นขึ้นใหม่ได้โดยการเรียกใช้เอาต์พุต (ไม่สามารถใช้งานได้ใน 4DOS/4NT หรือ PowerShell):

ชื่อเล่น -p 

เพื่อรายงานความหมายของชื่อนามแฝงเฉพาะเจาะจง:

ชื่อเล่น myAlias 

ลบ

ในเชลล์ Unix และ 4DOS/4NT สามารถลบนามแฝงได้โดยใช้คำสั่งunalias`delete` วิธีการลบcopyนามแฝง:

สำเนา อูนาเลีย ส

เพื่อลบชื่อแทนทั้งหมด (ไม่สามารถใช้งานได้ใน 4DOS/4NT):

unalias -a 

วิธีลบชื่อแทนทั้งหมดใน 4DOS/4NT:

unalias * 

ใน PowerShell สามารถลบชื่อเรียกแทน (alias) ออกจากalias:\ไดรฟ์ได้โดยใช้คำสั่งremove-item:

ลบรายการชื่อแทน: ci

ไม่สนใจ

ในเชลล์ Unix คำที่ถูกตั้งชื่อย่อสามารถใช้งานได้โดยไม่ต้องแทนที่ด้วยการใช้เครื่องหมายอัญประกาศ ตัวอย่างเช่น พิจารณาคำสั่งต่อไปนี้ที่กำหนดชื่อย่อlsซึ่งเรียกใช้คำสั่งดั้งเดิมlsพร้อมตัวเลือก-laหากต้องการเรียกใช้lsคำสั่งดั้งเดิม (โดยไม่มีตัวเลือก) จะใช้ไวยากรณ์ต่อไปนี้: 'ls'หรือ\ls

ชื่อเรียกอีกอย่างls = 'ls -la'

ในเชลล์ 4DOS/4NT จะใช้เครื่องหมายดอกจัน ตัวอย่างเช่น คำสั่งต่อไปนี้เรียกdirใช้ฟังก์ชันดั้งเดิมdir(ต้องมีเครื่องหมายดอกจันในคำสั่ง) พร้อมตัวเลือกต่างๆ/2/pหากต้องการเรียกใช้ฟังก์ชันดั้งเดิมในภายหลังdirไวยากรณ์จะเป็น*dirดังนี้

ชื่อแทนไดเร็กทอรี = *dir /2/p

การเชื่อมโยง

โดยทั่วไปแล้ว ชื่อย่อจะใช้เพื่อแทนที่คำแรกของบรรทัดคำสั่ง แต่เชลล์บางตัว เช่นbashและkshยังรองรับการเชื่อมต่อด้วยคือการแทนที่คำถัดไป

ตัวอย่างเช่น คำสั่งต่อไปนี้กำหนดlistให้เรียกใช้lsและlongเป็นชุดของlsตัวเลือก ชื่อย่อคำสั่งต้องลงท้ายด้วยช่องว่างเพื่อเปิดใช้งานการเชื่อมโยงคำสั่ง

alias list = 'ls ' alias long = '-Flas'

จากนั้น บรรทัดคำสั่งlist long myfileจะขยายเป็นls -Flas myfile.

ลักษณะการทำงานที่ได้จากการใช้คำสั่ง chaining นั้น ไม่สามารถทำได้ผ่านฟังก์ชัน shell

อาร์กิวเมนต์คำสั่ง

ในC Shellสามารถ ใส่ พารามิเตอร์ไว้ในคำสั่งได้โดยใช้สตริง `<array>` \!*ตัวอย่างเช่น ด้วยชื่อย่อนี้:

alias ls-more 'ls \!* | more'

ls-more /etc /usrขยายเพื่อls /etc /usr | moreแสดงรายการเนื้อหาของไดเร็กทอรี /etc และ /usr โดยหยุดชั่วคราวหลังจากแสดงผลครบแต่ละหน้าจอ หากไม่มีเครื่องหมายจุลภาค ( \!*,)

ชื่อเรียกอีกอย่าง ls-more 'ls | more'

จะขยายออกไปls | more /etc /usrซึ่งพยายามเปิดไดเร็กทอรีอย่างไม่ถูกต้องมากขึ้น[ 4 ]

เชลล์บางตัว เช่น bash และ ksh ไม่รองรับไวยากรณ์นี้ แต่มีฟังก์ชันการทำงานที่คล้ายกันให้ใช้งานผ่านฟังก์ชันเชลล์ — ดูหัวข้อ § ทางเลือกอื่นด้านล่าง

ทางเลือกอื่นๆ

แนวทางปฏิบัติที่ดีที่สุดคือการกำหนดชื่อเรียกแทน (alias) เฉพาะสำหรับคำสั่งที่ค่อนข้างง่ายเท่านั้น สำหรับตรรกะที่ซับซ้อนกว่านั้น อาจใช้ชื่อเรียกแทนแบบอื่นได้ เช่น:

  • สคริปต์เชลล์ซึ่งให้ความสามารถที่หลากหลายในการใช้งานคำสั่ง
  • ลิงก์เชิงสัญลักษณ์ในไฟล์ของผู้ใช้PATH(เช่น/bin) ซึ่งในบางกรณีอาจอนุญาตให้เข้าถึงฟังก์ชันคำสั่งที่ซ่อนอยู่สำหรับคำสั่งจำนวนน้อยที่ใช้ชื่อเรียกใช้เพื่อเลือกโหมดการทำงาน
  • ฟังก์ชันเชลล์ โดยเฉพาะอย่างยิ่งหากคำสั่งที่กำลังสร้างจำเป็นต้องแก้ไขสภาพแวดล้อมการทำงาน ภายใน ของเชลล์ (เช่นตัวแปรสภาพแวดล้อม ) จำเป็นต้องเปลี่ยน ไดเร็กทอรีการทำงานของเชลล์หรือต้องถูกนำไปใช้ในลักษณะที่รับประกันว่าจะปรากฏในเส้นทางการค้นหาคำสั่งสำหรับทุกอย่างยกเว้นเชลล์แบบโต้ตอบ (โดยเฉพาะอย่างยิ่งเวอร์ชัน "ที่ปลอดภัยกว่า" ของrm, cp, mvและอื่นๆ)

ชื่อเรียกแทน (alias) ที่ค่อนข้างง่าย ซึ่งประกอบด้วยอาร์กิวเมนต์ไม่กี่ตัวและรองรับอาร์กิวเมนต์เพิ่มเติม สามารถแปลงเป็นฟังก์ชันเชลล์ได้ด้วยกระบวนการที่ไม่ซับซ้อนนัก ตัวอย่างเช่น ชื่อเรียกแทนalias ll='ls -Flas'สามารถเขียนเป็นฟังก์ชันได้เพื่อป้องกันไม่ให้ฟังก์ชันเรียกตัวเองให้ใช้: ในเชลล์ Bourne รุ่นเก่า ให้ใช้แทนll () { ls -Flas "$@" ;commandls () { command ls --color=auto "$@" ; }/bin/lscommand ls

อ่านเพิ่มเติม

  • McElhearn, Kirk (2006). บรรทัดคำสั่ง Mac OS X: Unix Under the Hood . John Wiley & Sons . ISBN 978-0470113851.
  • alias: กำหนดหรือแสดงนามแฝงเอกสารอ้างอิงเชลล์และยูทิลิตี้, ข้อกำหนดยูนิกซ์ฉบับเดียว, เวอร์ชัน 5 จากThe Open Group   
  • หน้าคู่มือการใช้งาน Bash สำหรับคำว่า alias
  • ชื่อเรียกแทน Commandโดย The Linux Information Project (LINFO)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Alias_(command)&oldid=1336333541 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ชื่อเรียกแทน (คำสั่ง)

aliasเป็นคำสั่งเชลล์ ที่กำหนดคำที่เชลล์จะแทนที่ด้วยข้อความที่เกี่ยวข้องก่อนที่จะตีความบรรทัดคำสั่ง...

กำหนด

ต่อไปนี้เป็นตัวอย่างที่กำหนด gc ให้คำสั่งนั้นทำหน้าที่ดำเนินการบาง git commit อย่าง

ลบ

ในเชลล์ Unix และ 4DOS/4NT สามารถลบนามแฝงได้โดยใช้คำสั่ง unalias `delete` วิธีการลบ copy นามแฝง:

ไม่สนใจ

ในเชลล์ Unix คำที่ถูกตั้งชื่อย่อสามารถใช้งานได้โดยไม่ต้องแทนที่ด้วยการใช้เครื่องหมายอัญประกาศ ตัวอย่างเช่น พิจารณาคำสั่งต่อไปนี้ที่กำหนดชื่อย่อ ls ซึ่งเรียกใช้คำสั่งดั้งเดิม ls พร้อมตัวเลือก -la หากต้องการเรียกใช้ ls คำสั่งดั้งเดิม (โดยไม่มีตัวเลือก)...