
iTerm2 3.0.15
OS X 10.11.6
Ich habe kürzlich versucht, mein Terminal nach einer Neuinstallation zu konfigurieren. Mein Problem ist, dass ich dabei eine seltsame Fehlermeldung erhalte. Ich gehe in mein .bash-Verzeichnis. Darin befinden sich mehrere Konfigurationsdateien mit den folgenden Namen: Aliase, Bash_Profil, Exporte, Extras, Funktionen, Inputrc, Pfad und Eingabeaufforderung.
Wenn ich das tue:
source bash_profile
Ich erhalte diese Fehlermeldung:
-bash: book: command not found
Ich erhalte bei jeder Konfigurationsdatei genau die gleiche Fehlermeldung.
Ich habe 2 Probleme:
meine bash_profile-Datei ist nicht als Quelle angegeben, wie jede andere Konfigurationsdatei, die ich versuche
Ich bin ziemlich sicher, dass es für die Konfiguration meines Terminals grundlegend ist, aber ich verstehe nicht, was die Fehlermeldung wirklich bedeutet. Ich verstehe, dass es ein Problem mit diesem
book
Befehl gibt, aber ich kann keine wertvollen Informationen darüber erhalten.
Dinge, die ich versucht habe:
Terminalbefehle:
man book
,book --help
, oderhelp book
haben mir mitgeteilt, dass derbook
Befehl nicht existiert oder keinen manuellen Eintrag hat.info book
Hat mir nur ein Ergebnis geliefert, aber es sieht so aus, als ob es mehr mit deminfo
Befehl als mit dem Befehl selbst zusammenhängt. Und auch in meinen Konfigurationsdateienbook
wird nichts davon erwähnt .book
Die Google-Suche „bash: book: command not found“ liefert nicht viel, natürlich jede Menge „command not found“, aber der einzige Verweis darauf
book
ist ein Beitrag im Github-Repo von Bash-it. Die meisten Antworten zu „command not found“ beziehen sich auf die Umgebungsvariable PATH, aber selbst wenn ich meinen Pfad manuell eingebe, so wie hier (ich hoffe, das ist die richtige Vorgehensweise):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
Wenn ich es danach erneut versuche
source bash_profile
, erhalte ich das gleiche Ergebnis-bash: book: command not found
.Terminal.app hat das gleiche Problem.
meine bash_profile-Datei:
#--------------------------------------------------------------------------#
# 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/{path,prompt,exports,aliases,functions,extra,inputrc}; 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 "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
Antwort1
Ich habe schließlich Bash 4.4.19 über Homebrew installiert und die iTerm-Einstellungen bearbeitet, um es zu verwenden. Ich habe meine Konfigurationsdateien umbenannt, indem ich vor dem Namen einen Punkt hinzugefügt habe, und zu meiner Überraschung hat es funktioniert, d. h. als ich meine Konfigurationsdateien manuell als Quelle verwendet habe, hat iTerm die Änderungen widergespiegelt.
Ich weiß nicht, ob ich dieselben Ergebnisse erzielt hätte, wenn ich meine Dateien direkt umbenannt hätte, oder ob die durch die neue Version von Bash verursachte Änderung der Grund dafür ist, dass es endlich funktioniert hat. Ich kenne Bash nicht sehr gut, aber ich nehme an, dass es eine Standardkonfiguration gibt, die irgendwie durcheinander geraten ist, und die Verwendung einer Neuinstallation einer neuen Version mit ihrereigenDie Standardkonfiguration hat gerade genug getan, um zu funktionieren.
Nach einiger Zeit wurde mir klar, dass iTerm die .bash_profile-Datei beim Start nicht automatisch lädt. Glücklicherweise habe ich eine Lösung gefunden: In den Einstellungen der App, wo Sie angeben können, wo die ausführbare Datei zu finden ist, können Sie einen Befehl hinzufügen, der beim Start ausgeführt wird. source ~/.bash_profile
Ich werde die Arbeit erledigen, bis ich eine bessere Lösung finde.