在自定义我的 bash 配置文件时有什么区别,哪个更好用?该export命令的文档很少,因为它是一个内置的 cmd。
摘自我的 ~/.bash_profile 版本 1:
#PATH
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$HOME/bin
#add Homebrew’s sbin to PATH
export PATH=/usr/local/sbin:$PATH
Run Code Online (Sandbox Code Playgroud)
输出: echo $PATH
/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/njboot/bin
摘自第 2 版:
#PATH
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$HOME/bin
#add Homebrew’s sbin to PATH
export PATH=/usr/local/sbin:$PATH
Run Code Online (Sandbox Code Playgroud)
输出与echo $PATH版本 1env中的相同。也是相同的。
所以:
export与显式设置 PATH 有什么好处?简单查询:我刚刚意识到我从未在脚本顶部看到过shebang.bashrc,这让我认为系统在登录时使用默认shell 来获取它(${SHELL})。我正在思考为什么会出现这种情况,即使用默认 shell 以外的其他东西来运行登录脚本是否被认为是一个坏习惯。
我越来越熟悉通过提示 ( .bashrc)调整 shell 中的内容,但我现在正在尝试更改我第一次登录时显示的初始内容。在我的 EC2 实例上,这就是我看到的我登录:
__| __|_ ) Fedora 8
_| ( / 32-bit
___|\___|___|
Welcome to:
Wowza Media Server 2 for Amazon EC2
Version: 2.0.0.08
Run Code Online (Sandbox Code Playgroud)
在我的家用 Mint 计算机上,这是我登录时看到的内容:
Welcome to Linux Mint 11 Katya (GNU/Linux 2.6.38-8-generic x86_64)
Welcome to Linux Mint
* Documentation: http://www.linuxmint.com
Last login: Tue Jun 21 17:44:05 2011
Run Code Online (Sandbox Code Playgroud)
这是在哪里定义的?我怎样才能为一些疯狂的 ASCII 艺术ACTION调整它?
我正在尝试在 Ubuntu 11.10 Linux 发行版中编写 bash shell 脚本,它将在登录系统时自动执行。但我无法弄清楚在脚本中写什么,它会在登录时自动执行。
我没有找到我的 .bash_login 和 .bash_profile
root@linux:~# locate .bash*
/etc/bash.bashrc
/etc/skel/.bashrc
/etc/skel/.bashrc.original
/home/noroot/.bashrc
/home/noroot/.bashrc.original
/root/.bash_history
/root/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc
/usr/share/kali-defaults/.bashrc
root@linux:~#
Run Code Online (Sandbox Code Playgroud)
每个用户总是只有一个 .bashrc 和 .bash_profile 文件吗?
而且, .bashrc 和 .bash_profile 总是在 /home/"user name" 目录中找到吗?
从许多文档中,我读到startx正在 Raspbian OS 中启动 LXDE。我有点困惑。
会一直startx运行LXDE GUI吗?
我也看过使用startlxde命令的例子。该命令有何不同,为什么startx并startlxde运行相同的 GUI(LXDE)?或者它运行它是因为它是默认的 GUI?
如果我有多个 GUI,如何选择默认 GUI?
您能否解释有关 Linux 系统中 GUI 的更多详细信息?
启动 bash 终端后,我注意到 PATH 变量包含重复的条目。我的终端启动了一个登录 shell,所以~/.bash_profile是 source ,然后是~/.profileand ~/.bashrc。只有在~/.profile我创建重复的路径条目时。
为了迂腐,这是应该获取的文件的获取顺序:
Sourced /etc/profile
Sourced /etc/bash.bashrc
Sourced .bash_profile
Sourced .profile
Sourced .bashrc
Run Code Online (Sandbox Code Playgroud)
在任何人将此标记为“PATH 变量包含重复项”的副本之前,请继续阅读。
起初,我认为这与~/.profile两次获取有关,所以每当获取时我都会将文件写入日志文件,令人惊讶的是它只记录了一个条目,这告诉我它只获取一次。更令人惊讶的是,当我注释掉 中的条目时~/.profile,这些条目仍然出现在PATH变量中。这使我得出三个结论,其中一个很快就被排除了:
~/.profile并忽略任何打印输出的代码(例如日志文件)~/.profile是从别处采购的第一个,由于一些快速测试,我很快得出结论并非如此。第二个和第三个选项是我需要帮助的地方。
如何收集终端启动时执行的脚本日志?我echo在我检查过的文件中使用了它们以了解它们是否来自 bash,但是我需要找到一个结论性的方法来跟踪终端准备好开始输入时的执行情况。
如果以上是不可能的,那么任何人都可以建议我可以在哪里查看正在运行的脚本。
这是我现在用于添加到我的路径的脚本:
function add_to_path() {
for path in ${2//:/ }; do
if ! [[ "${!1}" =~ "${path%/}" ]]; then # ignore last / …Run Code Online (Sandbox Code Playgroud) 我的bash不认识信p。zsh确实如此。
当我p在 bash 中键入 a时,它只是忽略它,甚至粘贴包含 a 的文本p也会导致p粘贴的文本中没有。这种行为在终端之间是相同的(我试过urxvt,,st和tty)
我尝试注释掉我的~/.profile,~/.bash_profile和 中的所有内容~/.bashrc,问题仍然存在。但是使用root,一切都很好。My /root/.profile,/root/.bash_profile和/root/.bashrc符号链接到我的主目录中的文件。所以问题不可能起源于那里,但它必须是 root 和我的用户不同的东西。
我使用自定义键盘布局,但是当我切换到标准美式键盘布局时,问题仍然存在。
只是为了排除这一点:我不使用gnome。
我还能在哪里看?
Gnome 3.22 默认使用 wayland。Wayland 上的 Gnome 不读取~/.profile(或~/.bash_profile或/etc/profile)。请参阅https://bugzilla.gnome.org/show_bug.cgi?id=736660。
我的初始化文件设置如下:
.bash_profile除了来源.profile和.bashrc.profile只设置环境变量,如PATH和LC_MESSAGES.bashrc为less和 等应用程序设置一些 bash 特定的设置和别名以及环境变量grep。效果(在wayland之前)如下:
.profile读取和环境变量,如PATH和LC_MESSAGES设定。当我在终端模拟器中打开 bash 时.bashrc被读取。.bash_profile被读取,然后读取.profile并.bashrc.在所有情况下.profile和.bashrc都已阅读并设置了我的环境。
所以现在gnome 3.22使用wayland而wayland不读取 .profile。如何设置我的初始化文件,以便再次获得上述效果?
请注意,我不坚持某些文件(例如 .profile读取)。我想要的是以合理的方式设置我的环境。这意味着我想将 bash 特定设置保留在 bash 初始化文件中,并将其他设置保留在其他初始化文件中。另外,我不想将设置复制到不同的文件中。
我用的是arch linux。欢迎所有发行版的答案。在建议解决方法时,请同时描述副作用和优缺点。
更新2017年11月:据我了解GNOME开发者都承认,人们期待他们的登录shell的配置文件(.profile并.bash_profile在bash的情况下)在登录后采购。无论是文本登录还是图形登录。所以我上面概述的用例再次起作用。 …
我使用过(Red Hat、Ubuntu、CentOS 等)。这些发行版利用 Gnome 终端,并通过位于终端窗口中的下拉菜单提供灵活的方式来设置不同的终端配置文件,通常直接在命令输入的位置上方。这些配置文件允许更改不同文件的字体和颜色属性等。
终端的这些不同配置文件存储在哪里?