สมมติว่าฉันมีนามแฝงต่อไปนี้ในทุบตี - 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.