สมมติว่าฉันมีนามแฝงต่อไปนี้ในทุบตี - alias ls='ls --color=auto'- และฉันต้องการโทรธรรมดาlsโดยไม่มีตัวเลือก เป็นวิธีเดียวที่จะทำเช่นนั้นคือ unalias ทำคำสั่งแล้วนามแฝงอีกครั้ง? หรือมีเคล็ดลับหรือวิธีแก้ปัญหาที่ดี?
สมมติว่าฉันมีนามแฝงต่อไปนี้ในทุบตี - alias ls='ls --color=auto'- และฉันต้องการโทรธรรมดาlsโดยไม่มีตัวเลือก เป็นวิธีเดียวที่จะทำเช่นนั้นคือ unalias ทำคำสั่งแล้วนามแฝงอีกครั้ง? หรือมีเคล็ดลับหรือวิธีแก้ปัญหาที่ดี?
คำตอบ:
นอกจากนี้คุณยังสามารถใส่เครื่องหมายทับกลับเพื่อปิดใช้งานนามแฝง: \ls
แก้ไข: วิธีอื่นในการทำเช่นเดียวกันรวมถึง:
ใช้ "คำสั่ง": command lsเป็นต่อมิเกล
ใช้เส้นทางแบบเต็ม: /bin/lsตามแต่ที่สุด
อ้างอิงคำสั่ง: "ls"หรือ'ls'ตามความคิดเห็นของ Mikel
unalias command_nameคุณสามารถลบนามแฝงชั่วคราวสำหรับเซสชันขั้วกับ
command builtin
l\sจะทำในสิ่งเดียวกัน พฤติกรรมนี้เป็นข้อบกพร่องหรือคุณสมบัติหรือไม่?
นั่นคือสิ่งที่commandคำสั่งมีไว้สำหรับ
ลอง
command ls
สิ่งนี้บอกเชลล์ให้เลี่ยงการใช้นามแฝงและฟังก์ชั่น
นามแฝงเป็นเพียงทางลัดที่กำหนดไว้ ในตัวอย่างนี้นามแฝงที่กำหนดไว้เป็นสตริงซึ่งดำเนินการls ls --color=autoหากคุณไม่ต้องการพฤติกรรมนั้นคุณสามารถเรียกเลขฐานสองlsโดยใช้พา ธ สัมบูรณ์
ดังนั้นการดำเนินการ/bin/lsจะสร้างเอาต์พุตโดยไม่มีสีเนื่องจากไม่ใช่นามแฝงที่คุณกำหนด
คุณสามารถเปลี่ยนนามแฝงเป็นอะไรที่แตกต่างกันหรือเพิ่มนามแฝงใหม่ที่ดำเนินการlsโดยไม่มีพารามิเตอร์สี
/binและ/usr/binโดยพลการ
which which ls
which(หรือtype) มันจะทำการค้นหาผ่าน$PATH; คุณอาจใช้lsหรือ\lsแทนที่จะระบุเส้นทางก็ได้เช่นกัน
อีกวิธีหนึ่งการสร้างตามคำตอบของ @ uther คือการใช้$(which ...)หรือ`which ...`(ใช้ backticks ``) เพื่อค้นหาเส้นทางของไฟล์ที่เรียกใช้โดยอัตโนมัติ สิ่งนี้จะทำงานในbash:
$(which ls)
`which ls`
ไม่ต้องสงสัยเพียงแค่นำหน้าคำสั่งด้วย a \จะสั้นกว่ามาก
อัปเดต : ตามวิธีการใช้ `ซึ่ง` กับคำสั่ง aliased? ดูเหมือนจะไม่น่าเชื่อถือเลย
`which ls`รันไบนารีโดยตรง
(which ls)ไม่ได้ผลกับฉัน (บน Ubuntu 12.04 LTS) และ backticks นั้นยากฉันก็หนีพวกเขาไปได้: \ 'ซึ่ง ls \' ต้องใช้การแก้ไขมากมายเพื่อไปที่นั่น :)
$หรือไม่
โดยส่วนตัวแล้วฉันแค่หลีกเลี่ยงการกำหนดนามแฝงด้วยชื่อเดียวกันกับคำสั่งดังนั้นlsจะเรียกใช้คำสั่งจริงเสมอ ฉันมีนามแฝงหรือฟังก์ชั่นสำหรับชุดต่างๆของตัวเลือกเช่นl, และll lg(ซึ่งหมายความว่าฉันต้องการunalias lsใน.bashrcหรือของฉัน.cshrc)
ฉันพบว่าสมมติฐานของระบบปฏิบัติการเกี่ยวกับตัวเลือกที่ฉันอาจชอบ (การแทนที่ข้อสมมติของผู้ออกแบบlsคำสั่งเอง) ไม่ค่อยตรงกับรสนิยมส่วนตัวของฉัน ฉันไม่ชอบหน้าตาของls --color=autoมันและความชัดเจนของมันสามารถแตกต่างกันอย่างมากระหว่างสีดำกับสีขาวและสีขาวบนสีดำ
แน่นอนว่า YMMV และวิธีแก้ปัญหาอื่น ๆ ยังดีอยู่
การพิมพ์คำสั่งเป็นตัวพิมพ์ใหญ่ดูเหมือนว่าจะทำงานLSได้ แต่ฉันไม่แน่ใจว่าทำไม
LS - display animations aimed to correct users who accidentally enter LS instead of ls.