文章目录
前言
环境变量相关
一、环境变量是什么?
Linux环境变量是一种保存在操作系统中的键值对,用于指定某些程序或系统的行为。在Linux中,环境变量通常用于指定程序的搜索路径、配置文件路径、语言环境、代理设置等信息。
bash shell 可以用环境变量来存储有关shell会话和工作环境的信息,即在内存中存储数据,以便程序或在shell中运行的脚本能够轻松访问。
分为全局变量和局部变量
1.1 全局环境变量
对所有shell和子shell都可见
查看全局变量
env 或 printenv
显示个别环境变量的值
printenv HOME 或 echo $HOME
1.2 局部环境变量
只能在定义它们的进程中可见
显示当前进程下设置的所有环境变量
set # 会显示全局变量、局部变量、用户定义变量
二、设置用户定义变量
1.设置局部用户定义变量
变量名区分大小写,自己定义的变量一般用小写;只在当前shell中有效,其它shell和子shell都无效
定义一个叫my_variable的环境变量
my_variable=Hello # 变量名、等号和值之间没有空白格,有空格的话shell就会把值当成一个命令
echo $my_variable
含空格的需要加引号
my_variable='Hello World'
echo $my_variable
2.设置全局环境变量
定义一个叫my_variable的环境变量
my_variable='I am Global'
export my_variable
echo $my_variable
修改子shell中全局变量不会改变父shell中该变量的值(即父shell中变量未改变),子shell也无法用export命令改变父shell中全局环境变量的值
my_variable='I am Global'
export my_variable
echo $my_variable
bash
echo $my_variable
my_variable='Null'
export my_variable
echo $my_variable
# outputs Null
exit
echo $my_variable
# outputs I am Global
3.将环境变量设置多个值
mytesst=(one two three four)
echo $mytesst
# output one
echo ${mytesst[2]}
# output three
echo ${mytesst[*]}
# output one two three four
mytesst[2]=six
echo ${mytesst[*]}
.# output one two six four
unset mytesst[2]
echo ${mytesst[2]}
.# output 无输出
unset mytesst
三、删除环境变量
echo $my_variable
# outputs I am Global
unset my_variable
echo $my_variable
# outputs 无显示
同在子进程中修改环境变量一样,只在子进程中删除一个全局环境的变量只对子进程有用,该变量在父进程中仍可用。
四、设置PATH环境变量
PATH是一个环境变量,用于指定可执行程序的搜索路径。当我们在终端输入一个命令时,Linux会在PATH所包含的路径中寻找该命令的可执行文件,如果找到了就执行该命令,否则会提示找不到该命令。
查看环境变量
echo $PATH
环境变量以冒号分开
如果我们需要将某个路径加入到PATH中,可以使用以下命令:
export PATH=$PATH:/path/to/dir
但是,对PATH变量的修改只能持续到退出或重启系统,如果需要永久添加该路径,可以将该命令添加到用户的bashrc文件中
四、将环境变量持久化
启动文件:
/etc/profile
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
$HOME/.bashrc
在 Ubuntu 中,开机时会先执行/etc/profile文件和/etc/profile.d目录下的所有脚本,这些脚本是系统级别的配置文件,用于设置全局环境变量和系统级别的配置信息。
然后,在用户登录后,会执行用户主目录下的.bash_profile或.bash_login文件(如果存在),这些文件也是登录式 shell 的配置文件,用于设置个人环境变量和个人级别的配置信息。
如果这些文件不存在,则会执行.profile文件。最后,在启动 shell 时,会读取用户主目录下的.bashrc文件,用于设置交互式 shell 的配置信息。
因此,想要让 Ubuntu 系统在开机时读取自定义配置文件,应该将配置文件放置在/etc/profile.d目录下,或者修改/etc/profile文件,添加需要的配置信息。最好在/etc/profile.d目录下创建一个.sh文件,把所有新的或修改过的全局环境变量设置放置在这个文件。同样的,存储个人用户永久性变量的地方时.bashrc文件,可以将环境变量放在这里。
在 Ubuntu 中,通过图形界面打开的终端默认是非登录式 shell,不会执行读取用户的.bashrc文件等初始化操作。但是,如果在 Ubuntu 中打开终端时使用--login选项,就可以启动一个登录式 shell,该 shell 将执行读取用户.bashrc文件等初始化操作。
可以通过以下方式在 Ubuntu 中打开登录式 shell:
1. 在终端中执行bash --login命令。
2. 在 Ubuntu 中打开终端时,使用快捷键Ctrl + Alt + F1切换到控制台界面,在控制台中输入用户名和密码登录系统,此时启动的 shell 将是登录式 shell。
需要注意的是,登录式 shell 和非登录式 shell 在执行命令时可能会有一些区别。例如,登录式 shell 会执行.bash_profile文件,而非登录式 shell 则不会执行该文件。因此,在编写脚本时,需要根据实际情况选择合适的 shell。
总结
linux环境变量的设置和删除及永久设置,配置cuda环境变量能用到