Linux学习笔记之Linux环境变量总结
0x00 概述
Linux是一个多用户多任务的操作系统,可以在Linux中为不同的用户设置不同的运行环境,具体做法是设置不同用户的环境变量。
0x01 Linux环境变量分类
按照生命周期来分,Linux环境变量可以分为两类:
# 1、永久的:需要用户修改相关的配置文件,变量永久生效。
# 2、临时的:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。
按照作用域来分,Linux环境变量可以分为:
# 1、系统环境变量:系统环境变量对该系统中所有用户都有效。
# 2、用户环境变量:顾名思义,这种类型的环境变量只对特定的用户有效。
0x02 Linux设置环境变量的方法
2.1 对所有用户生效(永久的)
在/etc/profile文件中添加变量
用vim在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
例如:编辑/etc/profile文件,添加CLASSPATH变量
vim /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行source /etc/profile不然只能在下次重进此用户时生效。
2.2 对单一用户生效(永久的)
在用户目录下的.bash_profile文件中增加变量
用vim ~/.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
vim ~/.bash.profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行$ source ~/.bash_profile不然只能在下次重进此用户时生效。
2.3 只对当前shell(BASH)有效(临时的)
在shell的命令行下直接使用
export 变量名=变量值定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。
0x03 Linux环境变量使用
3.1 Linux中常见的环境变量有:
- PATH:指定命令的搜索路径
# PATH声明用法:
PATH=$PAHT:<PATH 1>:<PATH 2>:<PATH 3>:--------:< PATH n >
export PATH
# 你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效。
# 可以利用echo $PATH查看当前当前系统PATH路径。
- HOME:指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)。
- HISTSIZE:指保存历史命令记录的条数。
- LOGNAME:指当前用户的登录名。
- HOSTNAME:指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的
- SHELL:指当前用户用的是哪种Shell。
- LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
- MAIL:指当前用户的邮件存放目录。
# 注意:上述变量的名字并不固定,如HOSTNAME在某些Linux系统中可能设置成HOST
3.2 Linux也提供了修改和查看环境变量的命令
下面通过几个实例来说明:
- echo 显示某个环境变量值 echo $PATH
- export 设置一个新的环境变量 export HELLO="hello" (可以无引号)
- env 显示所有环境变量
- set 显示本地定义的shell变量
- unset 清除环境变量 unset HELLO
- readonly 设置只读环境变量 readonly HELLO
3.3 C程序调用环境变量函数
- getenv()返回一个环境变量。
- setenv()设置一个环境变量。
- unsetenv()清除一个环境变量。
参考
Linux学习笔记之Linux环境变量总结的更多相关文章
- linux学习笔记:关于环境变量
(摘自https://blog.csdn.net/llzk_/article/details/53813266之后整合) 1.linux系统的条件 Linux是一个多用户的操作系统,每个用户登录系统时 ...
- linux学习笔记2 - linux常用命令
转载请标注原链接:http://www.cnblogs.com/xczyd/p/5543731.html 第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装lin ...
- Linux学习之十一、环境变量的功能
环境变量的功能 可以利用两个命令来查阅,分别是 env 与 export 呢! 范例一:列出目前的 shell 环境下的所有环境变量与其内容. [root@www ~]# env SHELL 告知我们 ...
- linux学习(七)环境变量、cp、mv、cat,less,more,head,tail
一.环境变量 环境变量其实就是$PATH: [root@iZ25lzba47vZ ~]# echo $PATH /usr/local/nginx/sbin:/usr/local/php/bin:/us ...
- Linux学习——shell编程之环境变量配置文件
小白学习,在学习中总结! shell编程之环境变量配置文件 一:环境变量配置文件 1 shell编程之环境变量配置 变量类型: 用户自定义变量(本地变量) 环境变量 :定义每个用户的操作环境,如pat ...
- Linux学习笔记7——linux中的静态库和动态库
一.静态库的编译 静态库的编译过程如下: 1.编译成目标文件 这里有一个可选项-static,调用格式:gcc -c -static 代码文件名.c 2.归档成静态库 A.归档的工具是ar工具,使用a ...
- linux学习笔记:linux常用的命令
2018-11-19 常见命令快速查询一览表 命令 功能 ls 列出目录内容 cat 链接文件并打印到标准输出设备上(通常用来 ...
- Linux学习笔记之Linux计划任务Crontab
0x00 cron 简介 cron 是 UNIX, SOLARIS,LINUX 下的一个十分有用的工具.通过 cron 脚本能使计划任务定期地在系统后台自动运行. 0x01 cron 命令 cront ...
- Linux学习笔记之Linux相关知识
[想成为某一方面的大神,没有捷径可走,只能不断的记录.练习.总结.coding……] notes:主要从网上摘录了一些关于Linux的历史以及一些相关内容,以便对Linux系统有一定的了解.这不但可以 ...
随机推荐
- MYSQL: set names utf8是什么意思?
set names utf8 是用于设置编码,可以再在建数据库的时候设置,也可以在创建表的时候设置,或只是对部分字段进行设置,而且在设置编码的时候,这些地方最好是一致的,这样能最大程度上避免数据记录出 ...
- 【LeetCode每天一题】Remove Nth Node From End of List(移除链表倒数第N个节点)
Given a linked list, remove the n-th node from the end of list and return its head. Example: ...
- centos 打包报错Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
参考: https://blog.csdn.net/salonzhou/article/details/8990237https://stackoverflow.com/questions/23358 ...
- [LeetCode] 276. Paint Fence_Easy tag: Dynamic Programming
There is a fence with n posts, each post can be painted with one of the k colors. You have to paint ...
- Linux下利用Valgrind工具进行内存泄露检测和性能分析
from http://www.linuxidc.com/Linux/2012-06/63754.htm Valgrind通常用来成分析程序性能及程序中的内存泄露错误 一 Valgrind工具集简绍 ...
- linux申请strace ,lstrace, ptrace, dtrace
ltrace命令是用来跟踪进程调用库函数的情况. ltrace -hUsage: ltrace [option ...] [command [arg ...]]Trace library calls ...
- .Net拾忆:HttpWebRequest/WebClient两种方式模拟Post
一.代码 1.HttpWebRequest public static string DoPost( string target, string content ) { try { string pa ...
- vue中兄弟组件间 的传值 bus(可以理解为公共交通)
点击大儿子(头部组件的年月日,下面的都要变化) 就相当于点击了年月日之后,下面的组件重新调接口,参数变化 1.首先随便哪儿写个bus.js 内容如下: import Vue from 'v ...
- 记录一则expdp任务异常处理案例
环境:AIX 6.1 + Oracle 10.2.0.4 现象:在XTTS迁移测试阶段,遇到执行几个expdp的导出任务,迟迟没有返回任何信息,对应日志无任何输出,查看任务状态: SQL> se ...
- 《2017年Q2中国城市研究报告
根据百度慧眼团队发布的<2017年Q2中国城市研究报告>,2017年第二季度人口吸引力排名前五的城市与第一季度相同,深圳继续保持第一的领先位置.