Bash non cambia più directory


14

La mia shell bash non cambierà più directory con cd. L'ho notato prima mentre funzionavo e ho scoperto che eventuali nuove shell che ho aperto (terminal o xterm ecc.) Sarebbero rimaste bloccate nella home directory e non potevano uscire (i terminali già aperti continuavano a funzionare bene).

[~]$ pwd
/home/sys/dave
[~]$ cd /
[~]$ cd Documents/
[~]$ pwd
/home/sys/dave
[~]$ type cd
cd is a shell builtin
[~]$ alias
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

Ho pensato che fosse una stranezza che non avevo tempo di gestire, come un gestore di memoria esaurito (dopo aver verificato che il cd non fosse aliasato e usando la versione integrata).

Quindi io (sì, lo so) ho riavviato la macchina.

Nuovo avvio, esattamente lo stesso problema.

CSH d'altra parte funziona bene, quindi immediatamente dopo lo snippet sopra:

[~]$ csh
[~]$ cd /
[/]$ pwd
/
[/]$ cd ~/Documents/
[~/Documents]$ pwd
/home/sys/dave/Documents
[~/Documents]$ 

Non ho installato nulla di nuovo o eseguito aggiornamenti negli ultimi giorni e funzionava bene fino a tarda sera.

Idee / assistenza / AIUTO molto apprezzati!

** AGGIORNARE **

Quindi scavando ho trovato questa riga in .bashrc

export PROMPT_COMMAND="cd"

Se disattivo PROMPT_COMMAND, tutto funziona normalmente.

Ma ... WTF. Non ho inserito questa linea nel .bashrc e tutto ha funzionato perfettamente fino a stasera. Devo solo commentarlo, disinserirlo manualmente o semplicemente bruciare il computer come una strega?


Il sistema operativo è CentOS 6.3 Final, il kernel è 2.6.32-279.11.1.el6.x86_64, espansione della riga di comando attraverso la scheda se inserisco un nome di directory completo e digito / altro ancora se inserisco un percorso di file FQ funziona bene . Se questo aiuta.
Dave C

2
Se qualcosa sul tuo sistema è cambiato di recente, e tu sei l'unico utente e non hai apportato tale modifica, forse il tuo sistema è stato compromesso?
Zoredache,

Risposte:


20

L'impostazione PROMPT_COMMANDsu cdè uno scherzo piuttosto comune, se non l'hai impostato e sei l'unico utente, quindi sì, sei stato compromesso.

Se però gli amici hanno accesso, questo è uno scherzo che ho visto numerose volte, parlare con loro.


6
O se ti trovi in ​​un ambiente in cui potresti aver lasciato il tuo terminale sbloccato. Dipende dalla cultura aziendale, ma dal momento che i terminali sbloccati sono piuttosto disapprovati, lo scherzo tra amministratori di sistema è abbastanza comune.
Andrew B,

4
Penso di essere stato scherzato. +1 ai miei colleghi di laboratorio per uno scherzo di Linux. -1 per me per aver lasciato lo schermo sbloccato. Non pensare di essere stato compromesso, almeno spero di no - tutto il resto sembra a posto. Grazie a tutti per le vostre risposte.
Dave C

Tecnicamente, questo è ancora un compromesso, anche se è stato fatto "per divertimento". A seconda di chi sei e di dove ti trovi, ciò potrebbe portare a te e / o ai tuoi colleghi essere informati o peggio, oppure potrebbe essere tua responsabilità segnalare il compromesso al personale IT (per legge).
Kusalananda
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.