Qualcuno potrebbe spiegare come funziona il exit
comando nel terminale Unix?
Una ricerca di man exit
e which exit
non è stata utile e ho riscontrato il seguente problema.
Dopo aver installato i pacchetti aggiuntivi per Anaconda e PyCharm sul mio nuovo sistema Red Hat, ho notato che quando avessi chiamato exit
per uscire da una sessione terminale avrei ricevuto una serie di errori, quindi il terminale si chiudeva come previsto. Gli errori sembrano suggerire che la mia chiamata a exit
sta innescando una chiamata rm ~/anaconda3/.../
e rm ~/PyCharm/....
causando un errore. Tutte le directory sembrano anche essere le posizioni dei pacchetti che ho scaricato per questi programmi (cioè numpy), vedi sotto.
$ exit
rm: cannot remove ‘~/anaconda3/lib/python3.5/site-packages/numpy/core’: Is a directory
...
...
risoluto
Nel mio ~/.bash_logout
file c'era una linea
find ~ -xdev ( -name *~ -o -name .*~ -o -name core ) -exec \rm '{}' \;
Commentando questa riga, i messaggi di errore sono stati interrotti. Sembra cercare ed eliminare tutti i file temporanei. Ma tenta anche di trovare directory con la parola "core" in esse, ed eliminare anche quelle. Questo era un preset nel sistema.
exit
è un alias?
core
file è perché si tratta in genere di file crashdump ( core dump ) che occupano spazio ma sono raramente utili se non si sta sviluppando il software in crash. In questo caso sta tentando di eliminare una directory denominata core
, che fallisce (e buona cosa fallisce - numpy.core
è essenziale per NumPy!).
ulimit -c 0
l'impostazione predefinita). Quel find -exec rm
comando non è qualcosa che vorrei comunque, ma potresti aggiungerlo -type f
. Puoi anche renderlo molto più efficiente eliminando più file usando -exec rm {} +
invece di ... \;
, quindi raggruppa più arg su una rm
riga di comando (come xargs)
exit
per uscire da quella sessione del terminale - o che succede ogni volta che lo usiexit
dopo?