Linux环境变量:shell环境变量以及在Ubuntu下设置环境变量

在远程的ubuntu系统的服务器上安装pytorch的过程中,对环境变量的认识有提升了一层,记录如下。

shell

什么是shell?

环境变量

到底什么是环境变量?

环境变量(environment variables)一般指在操作系统(Operate System, OS)总中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量用来配置操作系统或其他应用程序。

环境变量是操作系统的一个具有特定名字的对象,它包含一个或者多个应用程序所使用到的信息。

当要运行一个程序而没告诉它程序所在的完整路径时,系统会在当前目录下搜索该程序,其次就是到环境变量去找。

【举例说明】Linux中的cd,pwd,cp,mkdir等常见命令的两种执行方式:

pwd

以及

/usr/bin/pwd

pwd命令可以直接被执行的原因就是因为设置了环境变量,可以通过echo $PATH来查看环境变量下的PATH路径,比如:

echo $PATH

/home/face/bin:/home/face/.local/bin:/usr/local/ndk/android-ndk-r20:/usr/local/ndk/android-ndk-r20:/usr/local/android-sdk-linux/platform-tools:/usr/local/android-sdk-linux/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

shell 环境变量

环境变量有三种:

  • 局部环境变量:只对当前会话有效,未在任何配置文件中记录,并且通过一组特殊的命令创建和删除。
  • 用户环境变量:为特定用户定义的变量,并且在每次用户使用本地终端会话时或用户使用远程登录会话时加载。这些变量通常设置在并从一下配置文件加载:.bashrc,.bash_profile,.bash_login,.profile。这些文件存放于主目录。
  • 系统环境变量:为系统所有用户可用的变量。这些变量存在于以下文件:/etc/environment,/etc/profile,/etc/profile.d,/etc/bash.bashrc。这些变量在系统打开时加载。

设置环境变量

方法

注意:设置环境变量的方法,除了用export直接代码,也可以用vimvi打开系统文件,进入编辑模式后进行手动编辑。

export的意思就是将局部变量设置为环境变量

# 设置新路径(覆盖其它全部命令)
export PATH=/xxx/bin  
# 添加一个新的路径
export PATH=/xxx/bin:$PATH  
# 删除全部路径
unset PATH 

模式

大致来说,有两种设置变量的模式:
1、 设置临时变量作用于终端

什么是临时环境变量?
简单的理解就是你现在这个命令窗口的变量,等你新开一个命令窗口,那么这个变量就不复存在,无法使用。这样的概念类似于函数的局部变量无法全部使用的感觉一样。

# 设置新路径(覆盖其它全部命令)
export PATH=/xxx/bin  
# 添加一个新的路径
export PATH=/xxx/bin:$PATH  

2、 永久设置(作用于当前用户或者所有用户
(1)用于当前用户:

# 打开 .bashrc 文件
vim ~/.bashrc
# 一次添加多个路径,用冒号:分割
export PATH=<你要加入的路径1>:<你要加入的路径2>: ...... :$PATH
# 使环境变量立即生效
source ~/.bashrc 

(2)用于所有用户:

sudo vim /etc/profile 
export PATH=<你要加入的路径>:$PATH
# 使得更改立即生效
source /etc/profile

对于ubantu系统来说,主要包括用户目录下的 .bashrc 文件、系统目录下的 profile 文件以及Ubuntu 专有方式environment 文件四种方法。(一般来说前两者用的较多)
具体可参考 Ubuntu下设置环境变量及PATH的方法

一些细节

$:
HOME:
PATH:
这部分可以继续参考:环境变量那些事儿

附:当多个Python版本需要管理时,可以使用别名声明alias的用法

参考:

  1. Ubuntu下设置环境变量及PATH的方法
  2. Ubuntu环境变量那些事
  3. Shell 教程
  4. 【Ubuntu】Ubuntu设置和查看环境变量
  5. Ubuntu下三种方法设置环境变量

你可能感兴趣的:(Linux/Mac)