ใครช่วยกรุณาอธิบายว่าexit
คำสั่งทำงานอย่างไรในเทอร์มินัล Unix?
การค้นหาman exit
และwhich exit
ไม่เป็นประโยชน์และฉันได้เจอปัญหาต่อไปนี้
หลังจากติดตั้ง add บนแพ็คเกจสำหรับ Anaconda และ PyCharm ในระบบ Red Hat ใหม่ของฉันฉันสังเกตเห็นว่าเมื่อใดก็ตามที่ฉันถูกเรียกexit
ให้ออกจากเซสชันเทอร์มินัลฉันจะได้รับข้อผิดพลาดหลายชุดจากนั้นเทอร์มินัลจะหยุด ข้อผิดพลาดดูเหมือนจะแนะนำว่าการโทรของฉันexit
กำลังเรียกการโทรrm ~/anaconda3/.../
และrm ~/PyCharm/....
ทำให้เกิดข้อผิดพลาด ไดเรกทอรีทั้งหมดดูเหมือนจะเป็นที่ตั้งของแพ็คเกจที่ฉันดาวน์โหลดสำหรับโปรแกรมเหล่านี้ (เช่นจำนวนมาก) ดูด้านล่าง
$ exit
rm: cannot remove ‘~/anaconda3/lib/python3.5/site-packages/numpy/core’: Is a directory
...
...
การแก้ไข
ใน~/.bash_logout
ไฟล์ของฉันมีบรรทัด
find ~ -xdev ( -name *~ -o -name .*~ -o -name core ) -exec \rm '{}' \;
การแสดงความคิดเห็นบรรทัดนี้หยุดข้อความผิดพลาด ดูเหมือนว่าจะค้นหาและลบไฟล์ชั่วคราวทั้งหมด แต่มันยังพยายามค้นหาไดเรกทอรีที่มีคำว่า "core" อยู่ในนั้นและลบไดเรกทอรีเหล่านั้นด้วย นี่เป็นการตั้งค่าล่วงหน้าในระบบ
exit
เป็นชื่อแทนหรือไม่
core
ไฟล์นั้นเป็นเพราะโดยทั่วไปแล้วไฟล์ crashdump ( core dumps ) ซึ่งกินพื้นที่ แต่ไม่ค่อยมีประโยชน์เว้นแต่คุณจะพัฒนาซอฟท์แวร์หยุดทำงาน ในกรณีนี้มันกำลังพยายามลบไดเรกทอรีที่ชื่อcore
ซึ่งล้มเหลว (และสิ่งที่ดีมันล้มเหลว - numpy.core
เป็นสิ่งจำเป็นสำหรับ NumPy!)
ulimit -c 0
เริ่มต้น) ว่าfind -exec rm
คำสั่งไม่ได้เป็นสิ่งที่ฉันต้องการอยู่แล้ว แต่คุณสามารถเพิ่ม-type f
ให้กับมัน นอกจากนี้คุณยังสามารถทำให้มันมากมีประสิทธิภาพมากขึ้นในการลบไฟล์หลายไฟล์โดยใช้-exec rm {} +
แทน... \;
ดังนั้นจึง batches args หลายลงหนึ่งrm
บรรทัดคำสั่ง (เช่น xargs)
exit
เพื่อออกจากเซสชันเทอร์มินัลนั้น - หรือที่เกิดขึ้นทุกครั้งที่คุณใช้งานexit
หลังจากนั้น