我想知道必须向PATH环境变量添加新路径的位置。我知道这可以通过编辑来完成.bashrc(例如),但不清楚如何做到这一点。
这边走:
export PATH=~/opt/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
或这个?
export PATH=$PATH:~/opt/bin
Run Code Online (Sandbox Code Playgroud) 我希望我的默认 bash shell 直接进入 tmux,而不是每次都必须输入 tmux。
可能的重复:
登录 Shell 和非登录 Shell 之间的区别?
我一直在查看 /etc/profile。bash.bashrc 以查看它们是如何运行的,并注意一些是由非登录 shell 执行的,一些与交互式 shell 一起工作等。
这种类型的外壳有什么区别,即交互式和非交互式、登录和非登录等?
这个问题可能非常基本,但似乎我首先需要问什么是 shell。什么是 shell,它的相关性是什么,你如何使用它,以及它为什么存在?
更新:为了更好地理解问题的意图,除了定义之外,我还需要了解一种外壳或另一种外壳的用例。帮助理解的是用例,而不仅仅是字典定义。
在我的拱安装,/etc/bash.bashrc以及/etc/skel/.bashrc包含这些行:
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
Run Code Online (Sandbox Code Playgroud)
在 Debian 上,/etc/bash.bashrc有:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
Run Code Online (Sandbox Code Playgroud)
并且/etc/skel/.bashrc:
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
Run Code Online (Sandbox Code Playgroud)
man bash然而,根据,非交互式 shell 甚至不读取这些文件:
When bash is started non-interactively, to run a shell script, for
example, it looks for the variable …Run Code Online (Sandbox Code Playgroud) 关于SO和askubuntu的问题的答案,以及翻阅(和阅读的标题)$HOME和/etc/,指出了一些可用于设置环境变量的文件,包括:
~/.profile ~/.bashrc ~/.bash_profile ~/.gnomerc~/.Rprofile /etc/bash_bashrc /etc/profile/etc/screenrc 我/etc/为所有用户收集这些文件,而其中的文件$HOME是特定于用户的。我还收集.profile在登录.bashrc时加载而在/bin/bash执行时加载的信息。我也明白不同的程序有不同的设置文件(例如.RprofileR)。但我希望得到一些澄清:
*rc和*profile文件本质上的区别?.bashrc覆盖 中设置的变量.settings)当我在.bash_aliases文件中定义一个新别名或在文件中定义一个新函数时.bashrc,是否有一些刷新命令能够立即使用新别名或函数而无需关闭终端(在我的情况下,xfce4-terminal 打开了几个选项卡,打开了许多文件并且在工作中)?
我注意到在我的前面.bashrc有一些行export,例如
export HISTTIMEFORMAT="%b-%d %H:%M "
...
export MYSQL_HISTFILE="/root/.mysql_history"
Run Code Online (Sandbox Code Playgroud)
而其他人则没有,例如
HISTSIZE=100000
Run Code Online (Sandbox Code Playgroud)
我想知道,首先,这是否正确,其次export在.bashrc.
别名,例如ll用alias命令定义的。
我可以检查命令,比如type ll哪些打印
ll is aliased to `ls -l --color=auto'
Run Code Online (Sandbox Code Playgroud)
或command -v ll打印
alias ll='ls -l --color=auto'
Run Code Online (Sandbox Code Playgroud)
或者alias ll也打印
alias ll='ls -l --color=auto'
Run Code Online (Sandbox Code Playgroud)
但我似乎无法找到那里的别名定义,即一个文件,如.bashrc在运行中的shell,或者手动。在这一点上,我不确定这是否可能。
我应该简单地浏览所有加载的文件bash并检查每个文件吗?