linux的学习系列 5--环境变量
在Linux中,环境变量是一个很重要的概念。环境变量可以由系统、用户、Shell以及其他程序来设定。
变量就是一个可以被赋值的字符串,赋值范围包括数字、文本、文件名、设备以及其他类型的数据。
下面的例子,我们将为变量 TEST 赋值,然后使用 echo 命令输出:
$TEST="Linux Programming"
$echo $TEST
Linux Programming
注意:变量赋值时前面不能加 $ 符号,变量输出时必须要加 $ 前缀。退出 Shell 时,变量将消失。
登录系统后,Shell会有一个初始化的过程,用来设置环境变量。这个阶段,Shell会读取 /etc/profile 和 .profile 两个文件,过程如下:
- Shell首先检查 /etc/profile 文件是否存在,如果存在,就读取内容,否则就跳过,但是不会报错。
- 然后检查你的主目录(登录目录)中是否存在 .profile 文件,如果存在,就读取内容,否则就跳过,也不会报错。
读取完上面两个文件,Shell就会出现 $ 命令提示符:
$
出现这个提示符,就可以输入命令并调用相应的程序了。
注意:上面是Bourne Shell的初始化过程,bash 和 ksh 在初始化过程中还会检查其他文件。
.profile文件
/etc/profile文件包含了通用的Shell初始化信息,由Linux管理员维护,一般用户无权修改。
但是你可以修改主目录下的 .profile 文件,增加一些“私人定制”初始化信息,包括:
- 设置默认终端类型和外观样式;
- 设置 Shell 命令查找路径,即PATH变量;
- 设置命令提示符。
找到主目录下的 .profile 文件,使用 vi 编辑器打开并查看内容。
设置终端类型
一般情况下,我们使用的终端是由 login 或 getty 程序设置的,可能会不符合我们的习惯。
对于没有使用过的终端,可能会比较生疏,不习惯命令的输出样式,交互起来略显吃力。所以,一般用户会将终端设置成下面的类型:
$TERM=vt100
$
vt100 是 virtual terminate 100 的缩写。虚拟终端是一种假的终端,真正有自己的显示器和键盘的终端,会通过特殊电缆(如串口)连到计算机主机。vt100 是被绝大多数Linux系统所支持的一种虚拟终端规范,常用的还有ansi、xterm等。
设置PATH变量
在命令提示符下输入一个命令时,Shell 会根据 PATH 变量来查找该命令对应的程序,PATH变量指明了这些程序所在的路径。
一般情况下PATH变量的设置如下:
$PATH=/bin:/usr/bin
$
多个路径使用冒号(:)分隔。如果用户输入的命令在PATH设置的路径下没有找到,就会报错,例如:
$hello
hello: not found
$
PS1和PS2变量
PS1变量用来保存命令提示符,可以随意修改,如果你不习惯使用 $ 作为提示符,也可以改成其他字符。PS1变量被修改后,提示符会立即改变。
例如,把命令提示符设置成'=>':
$PS1='=>'
=>
=>
=>
也可以将提示信息设置成当前目录,例如:
=>PS1="[\u@\h \w]\$"
[root@ip-72-167-112-17 /var/www/tutorialspoint/Linux]$
[root@ip-72-167-112-17 /var/www/tutorialspoint/Linux]$
命令提示信息包含了用户名、主机名和当前目录。
下表中的转义字符可以被用作PS1的参数,丰富命令提示符信息。
| 转义字符 | 描述 |
|---|---|
| \t | 当前时间,格式为 HH:MM:SS |
| \d | 当前日期,格式为Weekday Month Date |
| \n | 换行 |
| \W | 当前所在目录 |
| \w | 当前所在目录的完整路径 |
| \u | 用户名 |
| \h | 主机名(IP地址) |
| # | 输入的命令的个数,每输入一个新的命令就会加1 |
| \$ | 如果是超级用户 root,提示符为#,否则为$。 |
“\s-\v\$”,显示出了shell的名称的版本
你可以在每次登录的时候修改提示符,也可以在 .profile 文件中增加 PS1 变量,这样每次登录时会自动修改提示符。
如果用户输入的命令不完整,Shell还会使用第二提示符来等待用户完成命令的输入。默认的第二命令提示符是 >,保存在 PS2 变量,可以随意修改。
一个非常长的命令可以通过在末尾加“\”使其分行显示。多行命令的默认提示符是“>”
下面的例子使用默认的第二命令提示符:
$ echo "this is a
> test"
this is a
test
$
下面的例子通过PS2变量改变提示符:
$ PS2="secondary prompt->"
$ echo "this is a
secondary prompt->test"
this is a
test
$
常用环境变量
下表列出了部分重要的环境变量,这些变量可以通过上面提到的方式修改。
| 变量 | 描述 |
|---|---|
| DISPLAY | 用来设置将图形显示到何处。 |
| HOME | 当前用户的主目录。 |
| IFS | 内部域分隔符。 |
| LANG | LANG可以让系统支持多语言。例如,将LANG设为pt_BR,则可以支持(巴西)葡萄牙语。 |
| PATH | 指定Shell命令的路径。 |
| PWD | 当前所在目录,即 cd 到的目录。 |
| RANDOM | 生成一个介于 0 和 32767 之间的随机数。 |
| TERM | 设置终端类型。 |
| TZ | 时区。可以是AST(大西洋标准时间)或GMT(格林尼治标准时间)等。 |
| UID | 以数字形式表示的当前用户ID,shell启动时会被初始化。 |
下面的例子中使用了部分环境变量:
$ echo $HOME
/root
]$ echo $DISPLAY $ echo $TERM
xterm
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/home/amrood/bin:/usr/local/bin
$
linux的学习系列 5--环境变量的更多相关文章
- Linux和Windows下查看环境变量方法对比
摘自:Linux和Windows下查看环境变量方法对比 一.查看所有环境变量的名称和值 Linux下:export Windows下:set 二.根据名称查该环境变量的值 Linux下:echo $环 ...
- linux和windows中设置环境变量经常使用命令
Linux和Windows下查看环境变量方法 一.查看全部环境变量的名称和值: Linux下:export Windows下:set 二.依据名称查该环境变量的值: Linux下:echo $环境变量 ...
- Linux中如何设置java环境变量
这里介绍Linux下如何设置java环境变量. 工具/原料 Linux java环境变量 方法/步骤 1 查看java的安装路径 查看java执行路径 配置java环境变量 java的安装 ...
- (转)Linux下设置和查看环境变量
原文地址:<Linux下设置和查看环境变量> Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1. 永久的:需要修改配置文件,变量永久生效. 2. 临时的:使用e ...
- java基础学习总结——java环境变量配置(转)
只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...
- Linux安装JDK并配置环境变量
Linux - 安装jdk并配置环境变量 1. 前往JDK官网, 地址:https://www.oracle.com/java/technologies/downloads/ 复制下载链接 2. ...
- linux —— 学习笔记(环境变量的设置)
目录 环境变量概要 与环境变量相关的文件 设置环境变量 注意以及相关 1.环境变量概要 环境变量,简单来说,是储存了环境信息的变量.它可以让你在不指明全部路径的情况下执行某脚本或某应用程序,比如在 l ...
- Linux学习笔记 1 环境变量 2 vi命令
1 环境变量篇 1.1 修改 查看 生效 系统环境变量 1 涉及系统环境变量的文件 --> .bash_profile --> /etc/profile 2 该文件位置 /root ...
- Linux学习,path,环境变量的配置
方法一: 1.查看当前环境变量配置的所与信息 echo $PATH 注意: echo是输出的意思 加$表示它是一个变量 2.配置环境命令 PATH="$PATH":comdir 注 ...
随机推荐
- POJ 2234 Matches Game(取火柴博弈1)
传送门 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...
- hdu_5821_Ball(贪心)
题目链接:hdu_5821_Ball 题意: 给你序列A和序列B,依次给你m个区间,每次你可以交换区间内的任意数,问最后能不能将A变成B 题解: 比赛当时没想到,智商被压制 1001: 假设有4个红球 ...
- Linux C/C++编译环境搭建
1. 配置GCC,LInux 在安装后已经有GCC了,但可能文件不全,我们可以利用 sudo apt-get install build-essential 安装 2. 安装文本编辑器 sudo ap ...
- CentOS系统使用配置文件修改IP地址详细教程
在VM虚拟机安装的centos系统,默认使用的是dhcp自动获取ip地址的方式,而我自己想用这个centos在局域网内搭建一个小型演示站点,这个自动获取ip地址的方式就明显不好了,那么centos如何 ...
- 深入JVM锁机制1-synchronized
目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea.本文并不比较synchronized与Loc ...
- 直接粘贴代码到网络上:command-line pastebins
软件作用 直接把管道里面的文字内容传到网站上面,然后反馈一个地址可以读取内容. 同类软件 wgetpaste dpaste pastebin pasteie 用法 介绍wgetpaste为例: GEN ...
- Python从json中提取数据
#json string:s = json.loads('{"name":"test", "type":{"name": ...
- 第二题 已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。采用List集合和随机数 2008 北京奥运会男足参赛国家: 科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚、日本,美国,中国,新西 兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利
import java.util.ArrayList; import java.util.List; import java.util.Random; public class List1 { pub ...
- web跨域问题
环境: win7_x64旗舰版.Google Chrome-v44.0.2403.155.node-v0.10.29.express-v3.2.5.jQuery-v1.8.3 一.跨域GET: 客户端 ...
- JavaScript(8)——JSON
JSON 啊呀呀,终于写到了JSON了.莫名的开心,虽然还是被说进度慢,不过,我不管,我就是开心.恩,好好学习,好好加油.(这是一段毫无逻辑的话,我也不知道说啥了) JSON是JavaScript的一 ...