.profile 未被引用

.profile 未被引用

前段时间我安装了 byobu 并运行了byobu-enable,但它仍然没有自动启动,我只是忽略了它,因为我可以直接按 super 并打开 byobu 终端。但现在我尝试设置一些变量,并在 上找到了这一行~/.profile

byobu_sourced=1 . /usr/bin/byobu-launch 2>/dev/null || true

即使我在那里设置了任何东西,~/.profile文件也永远不会被引用。我知道它永远不会被引用,因为我在$HOME/bin那里设置并echo $PATH输出:

/usr/local/clang_9.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

当我运行source ~/.profile那里的所有内容时,它完全按照我预期的方式工作,但这不是 .profile 行为。

我看过了这里 这里 这里和其他帖子,但仍然没有任何结果。

我的〜/ .profile:

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

_byobu_sourced=1 . /usr/bin/byobu-launch 2>/dev/null || true

有任何想法吗?

编辑:我有$HOME/bin目录

答案1

因此,我切换了发行版(出于其他原因)并找到了问题,以防有人需要它。

我使用 zsh 作为我的主要 shell,它使用 bash 使用的.zprofile而不是.profile。因此,解决方案是使用文件.zprofile或使用 bash 来使用.profile,然后在获取源代码后,您可以将 shell 更改为 zsh(或 ksh、dash、fish 等),您只需在export SHELL=/bin/zsh您的.profile

chsh -s $(which bash)如果你已经which安装了命令,你就可以轻松地用 来更改shell 。

相关内容