ฉันจะลบ Alias ​​ออกจาก Shell ได้อย่างถาวรได้อย่างไร


28

เมื่อฉันไม่ได้อยู่ใกล้กับคอมพิวเตอร์ของฉันผู้ชายบางคนได้รับมันและตั้งชื่อแทนสำหรับlsในโฟลเดอร์รากของฉัน 'yes NeverGonnaGiveYouUp'เขาตั้งค่าให้ ตอนนี้เมื่อฉันอยู่ในโฟลเดอร์รูทของฉันแล้วพิมพ์lsฉันจะได้วนวนไม่สิ้นสุดของ NeverGonnaGiveYouUp มันทำให้ฉันบ้าและไม่รู้วิธีกำจัดมัน

ผมได้พยายามแล้วunaliasและunalias -aแต่ผู้ที่เพิ่งเอามันออกไปชั่วคราว เมื่อฉันปิดเชลล์และเปิดใหม่อีกครั้งมันจะกลับมา ฉันจะกำจัดอึนี้ได้อย่างไร


2
ผลลัพธ์ของgrep -n 'NeverGonnaGiveYouUp' ~/.profile ~/.bashrc /etc/bash.bashrc /etc/profileอะไร มีบางไฟล์อื่น ๆ จะมองไปที่มากเกินไปทั้งนี้ขึ้นอยู่กับเปลือกของคุณและ distro..but นี้ควรให้เราเริ่มต้น .. มี
heemayl

5
ฟังดูเหมือนโมดูลเคอร์เนล rick roll นั่น LOL
moonbutt74

คำตอบ:


24

หาก unalias ลบปัญหา (แม้ชั่วคราว) เราจะยืนยันว่าเป็นนามแฝง อาจเป็น "บังคับเดรัจฉาน" ออกโดยการเพิ่ม unalias ls ใน ~ / .bashrc

echo "unalias ls" >> ~/.bashrc

ที่จะได้รับ excuted ทุกครั้งที่อ่าน bashrc และจะลบชื่อแทน
ที่จะซื้อความสงบสุขให้คุณ แต่จะไม่แก้ไขปัญหาจริงที่ว่าบางไฟล์ยังคงมีรหัสเพื่อเริ่มต้นนามแฝง คุณต้องค้นหาไฟล์ที่มีปัญหา

หากใช้ bash:

grep "NeverGonnaGiveYouUp" /etc/profile /etc/bash.bashrc \
      ~/.bashrc ~/.bash_profile ~/.profile \
      /root/.bashrc /root/.bash_profile /root/.profile

นี่เป็นรายการไฟล์ที่เป็นไปได้ที่ดีซึ่งมีคำจำกัดความ หากไม่มีอะไรปรากฏขึ้นในการค้นหานั้นหรือคุณใช้เชลล์ตัวอื่นให้แจ้งให้เราทราบเพื่อรับความช่วยเหลือเพิ่มเติม


16

คำสั่ง unalias ปิด alias สำหรับช่วงเวลาของเซสชันการล็อกอินปัจจุบัน นามแฝงจะไม่ถูกลบโดยคำสั่ง unalias จากไฟล์. bashrc เมื่อผู้ใช้ล็อกอินอีกครั้งนามแฝงนั้นจะมีผลอีกครั้ง

.bashrc เป็นไฟล์ที่ซ่อนอยู่คุณสามารถตรวจสอบรายชื่อนามแฝงได้โดยพิมพ์:

$ alias

ตรวจสอบไฟล์คอนฟิกูเรชันของเชลล์ ~ / .bashrc และคุณสามารถลบนามแฝงที่ต้องการได้อย่างถาวร:

 vi ~/.bashrc

วิธีค้นหานามแฝง:

  $ type --all ls

ลบชื่อแทน:

unalias gs

เพิ่มเติมที่Manual

หมายเหตุ : unalias -aจะลบนิยาม alias ทั้งหมดออกจากสภาวะแวดล้อมการเรียกใช้งานเชลล์ปัจจุบัน


-1

สำหรับ Ubuntu 16.04 LTS คุณสามารถใช้คำสั่งดังต่อไปนี้

cat /dev/null > ~/.bash_aliases

ที่จะลบสิ่งที่กำหนดไว้~/.bash_aliasesไม่ใช่เฉพาะlsนามแฝง (ซึ่งอาจไม่ได้กำหนดไว้ที่นั่น)
Stephen Kitt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.