Я на Mac OS X 10.10. Внезапно мой «Терминал» запускал команду всякий раз, когда я открывал новую вкладку. Это расстраивает, потому что я привык печатать сразу при открытии вкладки и выполнять команду так, как я ее набрал.
Например, до этой проблемы я мог нажать cmd+T, а затем сразу набрать bin/rails c
и когда вкладка была готова, bin/rails c
появилось в командной строке, и я мог просто нажать enter. Теперь вот что происходит:
bin/lserman-5:test lserman$ bin/cd /workspace/test/app/helpers
-bash: bin/cd: No such file or directory
lserman-5:test lserman$ rails c
Запущенная команда:cd /workspace/test/app/helpers
, которая выполняется, когда я набираю bin/rails c
. cd
также является проблемой, потому что терминал переключается на другой каталог, когда я привык открывать вкладку в том же месте, где была предыдущая вкладка. Например, вот что я получаю, когда просто нажимаю cmd+T, не набирая ничего сразу:
lserman-5:test lserman$ cd /workspace/test/app/helpers
lserman-5:helpers lserman$
Фактическая команда, кажется, меняется каждые пару дней. Я понятия не имею, что вызывает это. Если я правильно помню, кажется, что это всегда какая-то форма cd
. Я посмотрел в .profile
, .bash_profile
и .bashrc
и я не вижу ничего необычного. Что еще может привести к этому?
Содержимое /etc/profile
:
# System-wide .profile for sh(1)
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
if [ "${BASH-no}" != "no" ]; then
[ -r /etc/bashrc ] && . /etc/bashrc
fi
Содержимое /etc/bashrc
:
# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
return
fi
PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize
# Tell the terminal about the working directory at each prompt.
if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then
update_terminal_cwd() {
# Identify the directory using a "file:" scheme URL,
# including the host name to disambiguate local vs.
# remote connections. Percent-escape spaces.
local SEARCH=' '
local REPLACE='%20'
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
printf '\e]7;%s\a' "$PWD_URL"
}
PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND"
fi