ใครช่วยกรุณาอธิบายว่า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หลังจากนั้น