【Linux 基础】Linux 环境变量相关操作

环境变量分类:

系统层看变量分:系统环境变量、用户环境变量;

生命周期变量分:临时环境变量、永久环境变量;

 

与环境变量相关 shell 命令

  • 显示环境变量:env;printenv ;
  • 显示单个环境变量:echo $CC
  • 增加某个环境变量:export;

 

修改环境变量(临时或永久)

1.临时添加

例如更改CC, 可输入 Shell 命令:export CC=gcc

 

2.永久添加

有两种方法可以在linux上永久添加环境变量,一种是在当前使用者的登录文件中添加环境变量,另一种是在系统文件etc/profile中添加环境变量。

第一种方法:~/.bash_profile或者 ~/.bashrc当中添加(用户环境变量)

首先打开终端窗口,输入 vi ~/.bash_profile , 然后在其中输入:export PATH=/usr/bin:$PATH,其中/usr/bin是上步获得的环境变量,修改完成后输入:wq 保存并退出。

第二种方法:/etc/profile当中添加(系统环境变量)

在终端输入sudo vi /etc/profile 进入profile,然后在PATH一项之后输入:export PATH=/usr/bin:$PATH,保存并退出,

也可以写成 export PATH="$PATH:/usr/bin"

其中 “$” 符号为直接调取当前环境变量的值,

” 符号表示追加新的路径

使用source /etc/profile更新文件,此时环境变量就添加到了/etc/profile中。

最后,在终端中输入:echo $PATH ,可以看到添加环境变量的路径已添加进去,就完成了添加环境变量path的步骤。

 

扩展:/etc/profile 是什么?

/etc/profile是一个全局的shell配置文件,用于设置系统中所有用户的环境变量和初始配置。当用户登录时,系统会首先读取和执行该文件。 

/etc/profile文件的最后一部分通常会检查用户的个人配置文件,并加载其中的配置。代码段会检查用户的个人配置文件(~/.bash_profile、~/.bash_login和~/.profile),并加载其中的配置:

这样,用户可以在自己的个人配置文件中添加自定义的环境变量、别名、函数等。 需要注意的是,/etc/profile文件是一个系统级别的配置文件,只有root用户或具有sudo权限的用户才能编辑该文件。修改/etc/profile文件后,要重新登录或重新加载shell配置才能使更改生效。

请注意,在某些Linux发行版中,可能会使用其他文件来替代或补充/etc/profile文件的功能,例如/etc/bash.bashrc、/etc/environment等。因此,在具体的系统中,您可能还需要检查其他文件以完全了解系统的配置和环境变量设置。

 

扩展: .bash_profile 和 .bash_rc 又是什么?

在每个用户的home目录下,我们使用ls -a命令,就会看到以bash开始开头的四个隐藏文件。.bash_profile、.bashrc,.bash_logout和.bash_history。

那么这4个文件有什么作用呢?

  • .bash_profile:当你登入 shell 时执行的命令。一般会在 .bash_profile 文件中显式调用.bashrc,启动 bash 时首先会去读取  .profile 文件,这样 .bashrc 也就得到执行了,你的个性化设置也就生效了。
  • .bashrc:为每一个运行bash shell的用户执行此文件。当bash shell被打开时,该文件被读取,其中rc是“run configure”的简写。
  • .bash_history:记录之前输入的命令。
  • .bash_logout:当你退出 shell 时执行的命令。

 

再扩展:Linux中的配置文件在哪里?

①、系统默认配置文件目录

/etc目录是Linux系统中存放配置文件的主要目录之一。它是"etcetera"的缩写,意为"等等"或"其他",表示这个目录中包含了各种各样的配置文件。

在/etc目录下,可以找到许多重要的配置文件,例如:

1. /etc/passwd:存储用户账户信息,包括用户名、用户ID、用户所属组等。

2. /etc/group:存储用户组信息,包括组名、组ID和组成员。

3. /etc/hosts:用于配置主机名与IP地址的映射关系,常用于本地DNS解析。

4. /etc/resolv.conf:配置系统的DNS解析服务器。

5. /etc/fstab:定义系统的文件系统挂载点和选项。

6. /etc/ssh/sshd_config:SSH服务器的配置文件,用于设置SSH服务的行为和安全选项。

7. /etc/apt/sources.list:用于配置APT软件包管理器的软件源。

②、个人配置文件目录

除了系统级别配置文件,Linux也提供了个人级别的配置文件,这些配置文件存储在用户主目录下的隐藏文件里,以"."开头,例如~/.bashrc就是shell的配置文件。这些配置文件主要用于定义每个用户个人的环境变量,快捷键,以及个人化设置等。

~/.bashrc
~/.vimrc
~/.ssh/config

以.vimrc为例:

set autoindent    " 开启自动缩进
set smartindent   " 开启智能缩进
set expandtab     " 将Tab键自动转换为空格
set shiftwidth=4  " 设置缩进宽度为4

③、应用程序级别的配置文件目录

许多应用程序也需要配置文件来控制它们的行为,这些配置文件一般存放在在/usr/local、/opt等目录或者应用程序的安装目录中。

/usr/local/mysql/my.cnf
/opt/<应用程序>/config.ini

这些配置文件与系统级别的配置文件不同,它们只适用于特定的应用程序,因为每个应用程序都需要自己的配置文件,以便满足它们特定的需求。另外,这些配置文件是可以写入的,允许用户进行自定义修改。

总而言之,Linux配置文件的放置位置与其层次结构有关。不同级别的配置文件被存储在不同的位置以实现互不干涉、互不混淆的目的。了解了这些基本概念,有助于我们更好地配置和管理Linux操作系统。

 

环境变量应用

1. 添加 PATH 环境变量,设置交叉编译器时需要。

2. 设置 CC 环境变量,可以免去打编译器名字的麻烦。

posted @ 2023-08-11 16:06  FBshark  阅读(299)  评论(0编辑  收藏  举报