iTerm2: странное сообщение об ошибке при попытке найти файл конфигурации

278
Vivien Garcia

iTerm2 3.0.15
OS X 10.11.6

Я недавно пытался настроить свой терминал после чистой установки. Моя проблема в том, что когда я это делаю, я получаю странное сообщение об ошибке. Я захожу в мой каталог .bash; В нем у меня есть несколько файлов конфигурации, названных так: псевдонимы, bash_profile, экспорт, дополнительные функции, функции, inputrc, путь и приглашение.

Когда я делаю:

source bash_profile 

Я получаю это сообщение об ошибке:

-bash: book: command not found 

Я получаю одно и то же сообщение об ошибке с каждым файлом конфигурации.

У меня 2 проблемы:

  1. мой файл bash_profile не получен, как и любой другой файл конфигурации, который я пробую

  2. Я почти уверен, что фундаментально настроить мой терминал, но я не понимаю, что на самом деле означает сообщение об ошибке. Я понимаю, что есть проблема с этой bookкомандой, но я не могу получить никакой ценной информации об этом.

Вещи, которые я пытался:

  • Терминальные команды: man book, book --helpили help bookсказала мне, bookкоманда не существует или не имеет ручной ввод. Только info bookдал мне результат, но похоже, что это больше связано с infoкомандой, чем с bookкомандой. И никаких упоминаний bookв моих конфигурационных файлах тоже нет.

  • Поиск в Google "bash: book: команда не найдена" мало что дает, конечно, много "команда не найдена", но единственная ссылка на bookэто - публикация на Github-репозитории Bash-it. Большинство ответов о команде not found касаются переменной среды PATH, но даже если я введу свой путь вручную, вот так (надеюсь, что это правильный путь):

    export PATH=~/.rbenv/shims:/usr/local/Cellar:/usr/local/bin:/usr/local/sbin:/usr/local/bin/flake8:/usr/local/bin/git:/usr/bin:/bin:/usr/sbin:/sbin 

    После этого, когда я пытаюсь снова source bash_profile, я получаю тот же результат -bash: book: command not found.

  • Terminal.app имеет ту же проблему.

мой файл bash_profile:

#--------------------------------------------------------------------------#  # B A S H _ P R O F I L E  #--------------------------------------------------------------------------#  # Load .bashrc if it exists test -f ~/.bashrc && source ~/.bashrc  # Load the shell dotfiles, and then some: # * ~/.path can be used to extend `$PATH`. # * ~/.extra can be used for other settings you don’t want to commit. for file in ~/.bash/; do [ -r "$file" ] && [ -f "$file" ] && source "$file"; done; unset file;  # Enable iTerm 2 Shell Integration source ~/.iterm2_shell_integration.`basename $SHELL`  # Case-insensitive globbing (used in pathname expansion) shopt -s nocaseglob;  # Append to the Bash history file, rather than overwriting it shopt -s histappend;  # Autocorrect typos in path names when using `cd` shopt -s cdspell;  # Do not autocomplete when accidentally pressing Tab on an empty line. shopt -s no_empty_cmd_completion  # Enable tab completion for `g` by marking it as an alias for `git` if type _git &> /dev/null && [ -f /usr/local/etc/bash_completion.d/git-completion.bash ]; then complete -o default -o nospace -F _git g; fi;  # Add tab completion for many Bash commands #if which brew > /dev/null && [ -f "$(brew --prefix)/share/bash-completion/#bash_completion" ]; then # source "$(brew --prefix)/share/bash-completion/bash_completion"; #elif [ -f /etc/bash_completion ]; then # source /etc/bash_completion; #fi;  # Thanks to @tmoitie, adds more tab completion for bash, # also when hitting tab twice it will show a list. #if [ -f $(brew --prefix)/etc/bash_completion ]; then # . $(brew --prefix)/etc/bash_completion #fi  # R U B Y # Ensure rbenv will be used first # eval "$(rbenv init -)" # test -e "$/.iterm2_shell_integration.bash" && source "$/.iterm2_shell_integration.bash"  
0
Исправил ваш вопрос и снова открыл. DavidPostill 6 лет назад 0
Поэтому один из ваших файлов конфигурации должен содержать слово `book`. Вы должны пойти и найти это. См. [Справочное руководство Bash: Файлы запуска Bash] (https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html) для поиска мест. DavidPostill 6 лет назад 0
Я прочитал [Справочное руководство Bash: Файлы запуска Bash] (https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html). Поскольку Bash - это интерактивная оболочка для входа в OS X, все файлы конфигурации должны находиться в ~ /. Я не могу найти книжное слово ни в одном файле конфигурации. Vivien Garcia 6 лет назад 0

1 ответ на вопрос

0
Vivien Garcia

Я наконец установил Bash 4.4.19 через Homebrew и отредактировал настройки iTerm, чтобы использовать его. Я переименовал мои файлы конфигурации, добавив точку перед именем, и, к моему разочарованию, это сработало, т.е. когда я вручную искал свои файлы конфигурации, iTerm отразил изменения.

Я не знаю, смог бы я получить те же результаты, переименовав мои файлы напрямую, или причина, по которой это сработало, вызвана новой версией Bash. Я не очень хорошо знаю bash, но я полагаю, что есть конфигурация по умолчанию, которая была каким-то образом испорчена, и использование новой установки новой версии с ее собственной конфигурацией по умолчанию достаточно для работы.

После некоторого использования я понял, что iTerm не будет автоматически загружать файл .bash_profile при запуске. К счастью, я нашел решение: в настройках приложения, где вы можете указать, где искать исполняемый файл, вы можете добавить команду для выполнения при запуске. source ~/.bash_profileсделаю работу, пока не найду лучшее решение.

Похожие вопросы