我在我的linux机器上下载了flutter和Android studio。这是一个kali linux安装。我想为 android studio 和 flutter 永久添加环境路径变量,这样,当我启动 shell 时,我不必每次都添加它们。我想添加到所有用户。我做了一些搜索,发现/etc/profile
如果您想为所有用户执行此操作,则必须添加路径。但似乎没有任何效果。
文件的原始内容
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH
if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
:
我在第 4 行的 else 之后添加了使用 a 分隔的路径,如下所示
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/user1/Flutter/flutter/bin:/home/user1/android-studio/bin"
保存文件并重新启动机器,然后执行
echo $PATH
在 shell 中,但输出如下:
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
然后我尝试了不同的方法删除了之前的更改并添加了
PATH=$PATH:/home/user1/Flutter/flutter/bin:/home/user1/android-studio/bin
就在导出路径之前,保存重新启动机器,它也不起作用。该echo $PATH
命令打印与上述相同的路径。
我如何完成我想要完成的事情。我在这个网站上看过几个类似的问题,大多数都建议我上面所做的事情。我做错了什么吗?
编辑.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
答案1
我最近也遇到了这个问题。 Kali Linux 的默认 shell 现在是zsh
.我们需要将
export PATH="$PATH:/path/to/"
代替.zshrc
。然后在实施更改后
source ~/.zshrc
通过 查看 PATH echo $PATH
,您将看到更新后的 PATH。通过重新启动 shell 进行验证。
答案2
将以下行添加到您的/etc/environment
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/user1/Flutter/flutter/bin:/home/user1/android-studio/bin
解释于Debian 维基:
将所有全局环境变量(即影响所有用户的变量)放入
/etc/environment
记住,该文件由 PAM 读取,而不是由 shell 读取。您不能在此处使用 shell 扩展。例如
MAIL=$HOME/Maildir/
不管用!除了 PAM 可以处理的琐碎情况之外,对于如何为所有用户配置环境的问题,没有与 shell 无关且与登录无关的解决方案。
您可以注销然后登录或source /etc/environment
。
答案3
最近的 Kali 发行版 2021.1 可用于$PATH
更新~/.profile
.
只需添加PATH=$PATH:"/replace/with/your/path"
到~/.profile
注销并登录或输入source ./profile
您的主目录。
使用命令检查您的环境env
。
你应该看到类似下面的内容
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/replace/with/your/path