Könnte jemand erklären, wie der exit
Befehl im Unix-Terminal funktioniert?
Eine Suche nach man exit
und which exit
war nicht hilfreich und ich bin auf das folgende Problem gestoßen.
Nach der Installation von Add-On-Paketen für Anaconda und PyCharm auf meinem neuen Red Hat-System stellte ich fest, dass beim exit
Verlassen einer Terminalsitzung immer eine Reihe von Fehlern auftrat und das Terminal wie erwartet beendet wurde. Die Fehler scheinen darauf hinzudeuten, dass mein Anruf bei exit
einen Anruf auslöst rm ~/anaconda3/.../
und rm ~/PyCharm/....
einen Fehler verursacht. Alle Verzeichnisse scheinen auch die Speicherorte der Pakete zu sein, die ich für diese Programme heruntergeladen habe (dh numpy), siehe unten.
$ exit
rm: cannot remove ‘~/anaconda3/lib/python3.5/site-packages/numpy/core’: Is a directory
...
...
Behoben
In meiner ~/.bash_logout
Akte gab es eine Zeile
find ~ -xdev ( -name *~ -o -name .*~ -o -name core ) -exec \rm '{}' \;
Das Kommentieren dieser Zeile hat die Fehlermeldungen gestoppt. Es scheint, alle temporären Dateien zu suchen und zu löschen. Es wird jedoch auch versucht, Verzeichnisse mit dem Wort "core" zu finden und diese ebenfalls zu löschen. Dies war eine Voreinstellung im System.
exit
es sich um einen Alias handelt?
core
Dateien zu löschen , ist, dass es sich normalerweise um Crash-Dump-Dateien ( Core-Dumps ) handelt, die Speicherplatz belegen, aber nur dann nützlich sind, wenn Sie die Crash-Software entwickeln. In diesem Fall wird versucht, ein Verzeichnis mit dem Namen zu löschen core
, was fehlschlägt (und gut, dass dies fehlschlägt - numpy.core
ist für NumPy von entscheidender Bedeutung!).
ulimit -c 0
standardmäßig keine Core-Dumps geschrieben werden ( Standardeinstellung). Diesen find -exec rm
Befehl möchte ich sowieso nicht, aber Sie könnten ihn ergänzen -type f
. Sie können das Löschen mehrerer Dateien auch effizienter gestalten, indem Sie -exec rm {} +
anstelle von ... \;
mehrere Argumente in einer rm
Befehlszeile stapeln (z. B. xargs)
exit
von auszutreten dieser Terminalsitzung - oder dass das passiert jedes Mal , die Sie verwendenexit
danach?