คุณสามารถใช้คุณสมบัติการดีบักเชลล์เพื่อดูว่าเกิดอะไรขึ้นเมื่อ bash เรียกใช้เชลล์แบบโต้ตอบ ต่อไปนี้จะแสดงชื่อแทนทั้งหมดที่ได้รับมอบหมายเมื่อเชลล์เชิงโต้ตอบได้รับมาจากเปลือกเข้าสู่ระบบ:
bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
-x
-> เปิดใช้งานการแก้ไขข้อบกพร่อง
-l
-> เปลือกเข้าสู่ระบบ
-i
-> เปลือกโต้ตอบ
-c
-> คำสั่ง
การรันคำสั่ง exit จำเป็นต้องมีเพื่อให้เชลล์ส่งคืน -i
เป็นสิ่งจำเป็นในกรณีนี้เพราะทุบตีจะไม่ได้ตั้งค่าสภาพแวดล้อมการโต้ตอบเพื่อเรียกใช้คำสั่งเป็นอย่างอื่น
นี่คือตัวอย่างจากระบบของฉัน:
$ bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
++ alias 'ls=ls --color=auto'
$ alias -p
alias ls='ls --color=auto'
เพื่อดูว่าไฟล์ใดถูกแหล่งข้อมูลล่าสุดเมื่อกำหนดนามแฝงเพื่อกำหนดไฟล์ที่เกิดขึ้นคุณสามารถขยาย grep:
bash -x -l -i -c 'exit' 2>&1 | grep -E ' (alias|[.]|source) '
สิ่งนี้อาจส่งคืนผลบวกปลอม แต่ควรใช้ได้ถ้าคุณตรวจสอบข้อมูลที่ส่งคืนด้วยตนเอง จำนวนของสัญลักษณ์ '+' ด้านหน้าคำสั่งที่ดำเนินการจะระบุความลึก
+ . /home/jordan/.bashrc
++ alias 'ls=ls --color=auto'
++ . /home/jordan/.foo
+++ alias t=test
++ alias t=test2
ในการส่งออกตัวอย่างนี้แสดงให้เห็นว่า .bashrc ชุดนามแฝงสำหรับls
นามแฝง .foo t
แล้ว .bashrc t
แทนที่นามแฝงก่อนหน้านี้