shell编程之系统环境变量2
本课程是《Tony老师聊shell——变量》课程的延续,主要介绍Linux shell编程基础中的运算符。包括declare命令、数值运算方法和变量测试。首先在declare命令中介绍了数值型和数组类型的声明,然后介绍了运算符的详细使用,最后对不同场景下的变量进行了测试。

接下来分析下系统常见的环境变量
点后面加上空格+配置文件等价于source 配置文件
常见的系统环境变量的配置

/bin/ : 存放系统命令的目录,普通用户和超级用户都可以执行. 不过放在/bin下的命令在单用户模式下也可以执行 .
/sbin/: 保存和系统环境设置相关的命令,只有超级用户可以使用这些命令进行系统环境设置,但是有些命令可以允许普通用户查看.
/usr/bin/: 存放系统命令的目录,普通用户和超级用户都可以执行.这些命令和系统无关,在单用户模式下不能执行.
/usr/sbin/: 存放根文件系统不必要的系统管理命令,例如多数服务程序.只有超级用户可以使用.
/boot/: 系统启动目录,保存系统启动相关文件.如内核文件和启动引导程序.
/dev/: 设备文件保存位置.
/etc/: 配置文件保存位置.系统内所有采用默认安装(rpm安装)的服务的配置文件全部都保存在这个目录当中.如用户的账号和密码,服务的启动脚本.常用服务的配置文件等.
/home/: 普通用户的家目录.建立每个用户时,每个用户要有一个默认的登录位置,这个位置就是这个用户的家目录.所有普通用户的家目录就是在/home下建立一个和用户名相同的目录.如user1的家目录就是/home/user1
/lib/ 系统调用的函数库保存位置
/lost+found/ 当系统意外崩溃或意外关机,而产生一些文件碎片放在这里.当系统启动的过程中fsck工具会检查这里,并修复已损坏的文件系统.这个目录只在每个分区中出现,例如/lost+found 就是根分区的备份恢复目录,/boot/lost+found 就是/boot分区的备份恢复目录.
/media/ 挂载目录,系统建议是用来挂载媒体设备的,例如软盘和光盘.
/mnt/ 挂载目录,早期linux中只有这一个挂载目录,并没有细分,现在这个目录系统建议挂载额外设备,例如U盘,移动硬盘和其他操作系统的分区
/misc/ 挂载目录. 系统建议用来挂载NFS服务的共享目录.
/opt/ 第三方安装的软件保存位置. 这个目录就是放置和安装其他软件的位置
/proc/ 虚拟文件系统,该目录中的数据并不保存到硬盘当中,而是保存到内存当中. 主要保存系统的内核,进程.外部设备状态和网络状态灯.如/proc/cpuinfo 是保存cpu信息的,/proc/devices是保存设备驱动的列表的,/proc/filesystems是保存文件系统列表的, /proc/net是保存网络协议信息的
/sys/ 虚拟文件系统,和/proc目录相似,都是保存在内存当中的,主要是保存于内核相关信息的.
/root/ 超级用户的家目录.普通用户家目录在"/home"下,超级用户家目录直接在 / 下.
/srv/ 服务数据目录.一些系统服务启动之后,可以在这个目录中保存所需要的数据
/tmp/ 临时目录.系统存在临时文件的目录. 该目录下所有用户都可以访问和写入,建议此目录中不能存放重要数据,最好每次开机都可以把该目录清空
/usr/ 系统软件资源目录."unix softwre resource"的缩写,存在系统软件资源的目录.系统中安装的软件大多数保存在这里.
/var/ 动态数据保存位置.主要保存缓存,日志已经软件运行所产生的文件
Bash_profile和.bashrc存在在家目录下,~表示家目录
[root@localhost home]# cd ~
[root@localhost ~]# pwd
/root
[root@localhost ~]#
修改家目录下的配置文件,只对当前用户有效,修改/etc目录下的文件对所有的目录都有效
Profile 、profile和bashrc是存在/etc目录下。

正常的登录流程:输入用户名和密码
加载顺序:第一条线:/etc/profile ->/etc/profile.d/*sh/->
第二条线:/etc/profile->~/.bash_profile->~/.bashrc
如果是非正常登录,不输入用户名和密码,例如在root用户下使用su切换到普通用户,不需要输入用户名和密码,加载的顺序如下
/etc/bashrc->/etc/profile.d/*.sh->/etc/profile.d/lang.sh

Jdk的环境变量配置文件就在这里执行的:
#java environment
export JAVAHOME=/usr/local/jdk/jdk1..0_80
export CLASSPATH=.:${JAVAHOME}/jre/lib/rt.jar:${JAVAHOME}/lib/dt.jar:${JAVAHOME}/lib/tools.jar
export PATH=$PATH:${JAVAHOME}/bin
第一把JAVAHOME声明为系统环境变量
第二把CLASSPATH声明为环境变量
第三:把${JAVAHOME}/bin添加到系统环境变量中,$PATH:${JAVAHOME}/bin表示把把${JAVAHOME}/bin叠加到系统环境变量中,环境变量以:分隔符进行分割
变量的叠加
[root@localhost ~]# x=123
[root@localhost ~]# x="$x"456
[root@localhost ~]# echo $x
123456
[root@localhost ~]#
PATH变量是在/etc/profile文件中定义和声明的
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$
else
PATH=$:$PATH
fi
esac
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
shell编程之系统环境变量2的更多相关文章
- shell编程之系统环境变量
点后面加上空格+配置文件等价于source 配置文件 常见的系统环境变量的配置 Bash_profile和.bashrc存在在家目录下,~表示家目录 [root@localhost home]# cd ...
- 01 shell编程规范与变量
前言: 大家对shell脚本应该都不算陌生了,如果突然问你什么是shell脚本?是干什么用的?由什么组成以及怎么使用?变量的概念是什么?作用范围是什么?变量间的算术运算怎么表示?你能很容易答出来吗 本 ...
- Linux学习——shell编程之环境变量配置文件
小白学习,在学习中总结! shell编程之环境变量配置文件 一:环境变量配置文件 1 shell编程之环境变量配置 变量类型: 用户自定义变量(本地变量) 环境变量 :定义每个用户的操作环境,如pat ...
- shell编程下 特殊变量、test / [ ]判断、循环、脚本排错
第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~]# cat /server/scripts/show2.sh #!/bin/ ...
- 【转】shell编程下 特殊变量、test / [ ]判断、循环、脚本排错
[转]shell编程下 特殊变量.test / [ ]判断.循环.脚本排错 第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~] ...
- Shell 编程基础之变量和环境变量
一.变量赋值和引用 Shell 编程中,使用变量无需事先声明,同时变量的命名不惜遵循如下规则: 首个字符必须为字母(a-z,A-Z)或者_ 变量名中间不能有空格,可以使用_连接 不能使用其他表达符号 ...
- shell编程之环境变量
在shell编程里我们首先接触到的是环境变量,常用命令说明 1. 使用echo命令查看单个环境变量.例如: echo $PATH 2. 使用env查看所有环境变量.例如: env 3. 使用set查看 ...
- Linux编程 13 (系统环境变量位置, 环境变量持久化)
一.系统环境变量位置 在上章中,知道了如何修改系统环境变量,如PATH变量,以及创建自己的全局环境变量和局部环境变量.这篇学习怎么让环境变量的作用持久化.在此之前,先了解下系统环境变量文件会在哪些位置 ...
- SHELL编程规范与变量
shell相比标准开发语言比如JAVA,C,C++来说还是比较简单的,其实就是一堆命令的集合而已,初学者从简单的shell脚本学起,至于shell编程还是要有编程思想在里面,因此,循序渐进很重要,先研 ...
随机推荐
- MVC案例
MVC案例分析: - 没有业务层,直接Servlet调用Dao,所以也没有业务操作.所有在DAO直接获取Connection对象 -采用MVCDs设计模式 -使用到的技术: mvc设计模式:JSP ...
- lunix如何查看防火墙是否关闭和关闭开启防火墙命令
查看防火墙是否关闭的命令如下: 1.通过 /etc/init.d/iptables status 或者 service iptables status命令 2.通过 iptables -L命令 查看 ...
- STM32读取匿名光流数据——与Guidance的光流和超声波做对比测试
使用两个串口同时读取匿名光流和Guidance数据:用以比较两个光流的效果 Github链接:https://github.com/W-yt/YuTian_Pro/tree/master/Guidan ...
- Java实现 LeetCode 409 最长回文串
409. 最长回文串 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意 ...
- Java实现 蓝桥杯VIP 算法提高 字符串跳步
问题描述 给定一个字符串,你需要从第start位开始每隔step位输出字符串对应位置上的字符. 输入格式 第一行一个只包含小写字母的字符串. 第二行两个非负整数start和step,意义见上. 输出格 ...
- Java实现 蓝桥杯VIP 算法提高 复数求和
算法提高 复数求和 时间限制:1.0s 内存限制:512.0MB 从键盘读入n个复数(实部和虚部都为整数)用链表存储,遍历链表求出n个复数的和并输出. 样例输入: 3 3 4 5 2 1 3 样例输出 ...
- Java实现 LeetCode 95 不同的二叉搜索树 II(二)
95. 不同的二叉搜索树 II 给定一个整数 n,生成所有由 1 - n 为节点所组成的二叉搜索树. 示例: 输入: 3 输出: [ [1,null,3,2], [3,2,null,1], [3,1, ...
- Java实现 LeetCode 43 字符串相乘
43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2& ...
- OAuth + Security - 6 - 自定义授权模式
我们知道OAuth2的官方提供了四种令牌的获取,简化模式,授权码模式,密码模式,客户端模式.其中密码模式中仅仅支持我们通过用户名和密码的方式获取令牌,那么我们如何去实现一个我们自己的令牌获取的模式呢? ...
- 2个线程A-B-A-B或者B-A-B-A循环输出
代码: /** * 两个线程循环打印输出a-b-a-b */ public class AandBforTOthread { private static Object o = new Object( ...