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编程还是要有编程思想在里面,因此,循序渐进很重要,先研 ...
随机推荐
- 微软:悬赏10万美金破解 Linux 系统
微软选择了 Linux 系统作为物联网平台,并且悬赏10万美金邀请黑客来进行破解. 当然,该悬赏计划不是针对所有的 Linux 系统,而是特别针对微软的物联网端对端安全平台Azure Sphere.本 ...
- JS实现PC端URL跳转到对应移动端URL
在做移动端网站时,有时因技术问题或其他原因无法制作响应式版面,而移动端页面只能放到子目录下,但是手机端通过搜索引擎进入网站电脑端子页面,无法匹配到移动端页面,使得用户体验很不好,即影响排名也影响转化. ...
- leetcode56之合并区间
题目描述: 给出一个区间的集合,请合并所有重叠的区间. 示例: 输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1, ...
- SpringBoot学习笔记(十五:OAuth2 )
@ 目录 一.OAuth 简介 1.什么是OAuth 2.OAuth 角色 3.OAuth 授权流程 4.OAuth授权模式 4.1.授权码 4.2.隐藏式 4.3.密码式 4.4.凭证式 二.实践 ...
- Java实现 LeetCode 801 使序列递增的最小交换次数 (DP)
801. 使序列递增的最小交换次数 我们有两个长度相等且不为空的整型数组 A 和 B . 我们可以交换 A[i] 和 B[i] 的元素.注意这两个元素在各自的序列中应该处于相同的位置. 在交换过一些元 ...
- Java实现 LeetCode 1两数之和
1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这 ...
- Java中BigDecimal类的常用方法
1.简介 BigDecimal类位于java.math.BigDecimal包下.使用此类可以完成大的小数操作,而且也可以使用此类进行精确的四舍五入,这一点在开发中经常使用. 对于不需要任何准确计算精 ...
- Java实现 蓝桥杯 算法训练 Multithreading
问题描述 现有如下一个算法: repeat ni times yi := y y := yi+1 end repeat 令n[1]为你需要算加法的第一个数字,n[2]为第二个,-n[N]为第N个数字( ...
- 机器学习——十大数据挖掘之一的决策树CART算法
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第23篇文章,我们今天分享的内容是十大数据挖掘算法之一的CART算法. CART算法全称是Classification ...
- tensorflow2.0学习笔记
今天我们开始学习tensorflow2.0,用一种简单和循循渐进的方式,带领大家亲身体验深度学习.学习的目录如下图所示: 1.简单的神经网络学习过程 1.1张量生成 1.2常用函数 1.3鸢尾花数据读 ...