是~/.bashrc 唯一指定用户特定环境变量、别名、PATH变量修改等的地方吗?
我问是因为这似乎~/.bashrc是bash-only,但其他 shell 也存在......
我正在阅读Linux Command Line 和 Shell Scripting Bible 中有关基本 shell 脚本的信息。
它说该/etc/profile文件在 Bash shell 启动时设置了环境变量。该/etc/profile.d目录包含其他包含特定于应用程序的启动文件的脚本,这些脚本也在启动时由 shell 执行。
如果这些文件/etc/profile对 Bash 启动也很重要,为什么它们不是其中的一部分?
如果这些文件是特定于应用程序的启动文件,对 Bash 启动并不重要,那么它们为什么会成为启动过程的一部分?为什么它们只在包含设置的特定应用程序被执行时才运行?
~/.profile和 和有~/.bash_profile什么区别?
关于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)我用我的学校的电脑,并想用zsh代替bash。我想将其设为默认 shell,但我无法运行命令,例如$ chsh -s $(which zsh)因为我没有管理员权限。
有没有办法可以将某些内容放入我的内容中.bashrc或zsh在打开时自动调用的内容作为解决方法?
澄清一下,zsh已经安装了。
我正在使用 Linux Mint。我的登录 shell ( cat /etc/passwd | grep myUserName) 是 bash。
在我启动我的图形桌面环境并从中运行终端模拟器后,我可以看到它.bash_profile没有来源(其中exported 的环境变量未设置)。但是,如果我从一个文本控制台登录(ctrl+ alt+ F1)或手动运行bash -l从终端仿真器,.bash_profile工作正常。
当我认为.bash_profile应该在 X 启动时获取并且所有export'ed vars 应该在终端中可用,从 X 运行时,我错了吗?
PS 将所有内容放入.bashrc并从中采购.bash_profile并不是一个好主意(/sf/ask/63206251/):环境的东西应该只采购一次。
Unix的系统管理员那里我的工作是不愿意给我访问我的登录shell从改变ksh到bash。他给出了各种借口,最有趣的是因为他们编写了所有脚本,ksh因为如果我尝试运行它们,它们将无法工作。我不知道他从哪里得到这些想法,但既然我无法说服他,我还有其他选择吗?
(chsh安装在这些机器上,但我们使用公钥/私钥对登录,我没有任何密码,所以当chsh提示我输入密码时,我没有什么可以提供的。)
我正在寻找一种方法来使用我自己的一组aliases 和诸如此类的东西来自定义 Ash 会话。什么是 Bashbashrc文件的 Ash 等价物?
我有一个将纪元时间转换为日期的函数。这是定义
date1(){
date -d @$1
}
Run Code Online (Sandbox Code Playgroud)
我希望能够写:
$ date1 xxxyyy
Run Code Online (Sandbox Code Playgroud)
其中 xxxyyy 是我传递给函数的参数,因此我可以获得相应的日期。我明白我必须将它添加在任.bash_profile,.profile或.bashrc然后它来源:
$ source file
Run Code Online (Sandbox Code Playgroud)
但是,我不确定应该把它放在哪个文件中。目前,我把它放在.profile. 但是要运行它,我必须source .profile每次都这样做。
理想情况下,当计算机像环境变量一样启动时,它应该使其可用。
我知道有/etc/profile,并/etc/bashrc设置全局环境变量,也许我只是误解他们的目的文件,但...
有全局bash_profile文件吗?
我使用的是 Mac OS X