Shell

Kali Linux 安裝中無法設置環境路徑變數

  • February 10, 2022

我在我的 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

在外殼中,但輸出就是這樣:

/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

將以下行添加到您的/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 wiki上解釋:

將所有全域環境變數,即影響所有使用者的變數,放入/etc/environment

請記住,此文件由 PAM 讀取,而不是由 shell 讀取。您不能在此處使用 shell 擴展。例如MAIL=$HOME/Maildir/ 不會工作!

對於如何為所有使用者配置環境的問題,除了 PAM 可以處理的瑣碎情況之外,沒有與 shell 無關且與登錄無關的解決方案。

您可以註銷然後登錄或source /etc/environment.

引用自:https://unix.stackexchange.com/questions/582847