什么之间的区别.bashrc和.bash_profile我应该使用哪一个?
嗯,这很尴尬。在与他们一起工作 10 年后,我觉得我刚刚意识到我不知道忠诚的同事的名字。“嘿,呃…… *咳!*,感谢你今天早上在设置我的别名方面所做的出色工作……”
什么字母rc中表示.bashrc,.kshrc等?
如果你知道,请引用来源。
即使你不知道,我也欢迎毫无根据的假设、建议或替代方案,如果它们被标记为这样的话。
我的 bash 提示符当前配置的方式,它显示了当前目录的整个路径。当我深入目录树时,这很烦人,因为提示变得很长,以至于每个命令都包含在下一行中。如何让它只显示路径的最后一部分?
这是我在我的.bashrc:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
;;
*)
;;
esac
Run Code Online (Sandbox Code Playgroud) 我在 Windows 7 上使用 Git Bash,并希望设置 Bash 配置文件别名,alias gs='git status'以便让我的生活更轻松。我怎样才能做到这一点?
.bashrc我的主目录中有一个单行文件:
alias countlines='find . -type f -print0 | xargs -0 cat | wc -l'
Run Code Online (Sandbox Code Playgroud)
但它没有创建别名。为什么会这样?
我想知道如何在一行中编写 bash 脚本中的 if 条件。
例如,我怎么能把这个写在一行上,然后把另一个和它一样的放在下一行?
if [ -f "/usr/bin/wine" ]; then
export WINEARCH=win32
fi
Run Code Online (Sandbox Code Playgroud)
我问这个是因为我的 .bashrc 中有很多别名,而且我在多个系统上有相同的 .bashrc(同步),但我不需要每个系统上的所有别名。我把它们中的大部分放在 if 语句中,现在一切都很好,但它们占用了很多空间,每行 3 行加上它们之间的空行(我喜欢让它们很容易看到)
我也会将此技术用于环境变量。
刚刚发现 doskey emacs=emacs -nw $*,但是没有像 .bashrc 这样的东西,我每次启动 shell 时都必须输入它,对吧?
在~/.bash_profile
我有:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
Run Code Online (Sandbox Code Playgroud)
在~/.bashrc我有一些别名
当我加载一个新的 iTerm 窗口时,我的别名不起作用。如果我来源~/.bashrc他们工作。如果我来源~.bash_profile他们工作。
其中至少一个不应该是自动采购的吗?
什么可能导致它无法正常工作?
我发现这个问题 [博客]:.bashrc 和 .bash_profile 之间的区别非常有用,但在看到投票最多的答案(顺便说一句非常好)后,我还有其他问题。在投票最多的正确答案结束时,我看到以下声明:
请注意,您可能会在这里和那里看到将环境变量定义放在 ~/.bashrc 中或始终在终端中启动登录 shell 的建议。两者都是坏主意。
为什么这是一个坏主意(我不是想打架,我只是想了解)?
如果我想设置一个环境变量并将其添加到 PATH(例如 JAVA_HOME)中,它是放置导出条目的最佳位置?在~/.bash_profile或~/.bashrc 中?
如果问题 2 的答案是~/.bash_profile,那么我还有两个问题:
3.1. 你会在~/.bashrc下放什么?只有别名?
3.2. 在非登录 shell 中,我相信~/.bash_profile没有被“拾取”。如果 JAVA_HOME 条目的导出在 bash_profile 中,我是否能够执行javac和java命令?它会在 PATH 上找到它们吗?这就是为什么某些帖子和论坛建议将 JAVA_HOME 等设置为~/.bashrc 的原因吗?
提前致谢。