- 环境变量
- shell数学计算
- 玩转文件描述符与重定向
环境变量
环境变量也称为全局变量;可以在创建他们的shell及其派生出来的任意子进程shell中使用
环境变量可以分为自定义环境变量和bash内置的环境变量
环境变量可以在命令行中设置和创建,用户退出命令行时这些变量值就会丢失,想要永久保存环境变量,可以写在文件中
常用的系统自带的环境变量
[root@localhost ~]# env //查看当前工作环境下的环境变量
HOSTNAME=localhost
SHELL=/bin/bash
TERM=xterm
CATALINA_HOME=/opt/tomcat7
HISTSIZE=100000
IPROAPP_BACKUP_HOME=/root/backup/iProApp/
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;SUDO_USER=pstuser
SUDO_UID=1002
USERNAME=root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/jdk1.6/bin
MAIL=/var/spool/mail/pstuser
PWD=/home/pstuser
JAVA_HOME=/opt/jdk1.6
TOMCAT_SERVICE=tomcat7
LANG=en_US.UTF-8
SHLVL=1
SUDO_COMMAND=/bin/bash
HOME=/root
LOGNAME=root
CVS_RSH=ssh
LESSOPEN=||/usr/bin/lesspipe.sh %s
IPROAPP_HOME=/srv/iProApp
SUDO_GID=1001
G_BROKEN_FILENAMES=1
HISTTIMEFORMAT=%F %T
_=/bin/env
[root@localhost ~]# echo $USER //USER表示用户名称
root
[root@localhost ~]# echo $HOME //表示用户的宿主目录
/root
[root@localhost ~]# echo $LANG //表示语言和字符集
en_US.UTF-8
[root@localhost ~]# echo $PWD //表示当前所在的工作目录
/home/pstuser
[root@localhost ~]# echo $PATH //表示可执行程序的默认搜索路径
/sbin:/bin:/usr/sbin:/usr/bin:/opt/jdk1.6/bin
shell数学计算
1.let命令的使用
let命令可以直接执行基本的算术操作
[root@localhost ~]# b=2
[root@localhost ~]# c=4
[root@localhost ~]# let result=c\*b
[root@localhost ~]# echo $result
8
[root@localhost ~]# let result=c/b
[root@localhost ~]# echo $result
2
[root@localhost ~]# let result=c+b
[root@localhost ~]# echo $result
6
[root@localhost ~]# let result=c-b
[root@localhost ~]# echo $result
2
[root@localhost ~]# let result=c-c
[root@localhost ~]# echo $result
0
[root@localhost ~]# let result=b-c
[root@localhost ~]# echo $result
-2
let命令的其他用法如下:
自加操作:等同于let b=b+0
[root@localhost ~]# let b+=0
[root@localhost ~]# echo $b
2自减操作:等同于let b=b-1
[root@localhost ~]# let b-=1
[root@localhost ~]# echo $b
1
2.操作符[ ]的使用方法
[root@localhost ~]#a=7
[root@localhost ~]#b=2
[root@localhost ~]# result=$[ a + b ]
[root@localhost ~]# echo $result
9
3.操作符(( )) 的使用方法
[root@localhost ~]# echo $(( 1 + 1 ))
2
4.expr的用法
[root@localhost ~]# expr 1 - 1
0
[root@localhost ~]# expr 1 + 1
2
[root@localhost ~]# expr 1 / 1
1
[root@localhost ~]# expr 1 \* 1
1
[root@localhost ~]# expr 1 \* 2
2[root@localhost ~]# result=`expr 3 + 4`
[root@localhost ~]# echo $result
7
以上这些方法不支持浮点数,只能用于整数运算
在shell中做小数运算的(未用到便搜索一篇),可借鉴shell小数运算_好记性vs烂笔头的博客-CSDN博客_shell小数运算
玩转文件描述符与重定向
文件描述符是与某个打开的文件或数据流相关联的整数。文件描述符0、1以及2是系统预留的
0 —— stdin (标准输入) ----键盘
1 —— stdout(标准输出) ----显示器
2 —— stderr(标准错误) -----显示器
重定向
类型 | 操作符 | 用途 |
重定向输入 | < | 从指定的文件读取数据,而不是从键盘输入 |
重定向输出 | > />> | 将输出结果保存到指定的文件(覆盖原有内容)/ 将输出结果追加到指定的文件尾部 |
标准错误输出 | 2> /2>> | 将错误信息保存到指定的文件(覆盖原有内容)/ 将错误信息追加到指定的文件中 |
混合输出 | &> | 将标准错误,标准输出的内容保存到同一个文件中 |
重定向脚本内部的文本块
EOF是END Of File的缩写;表示自定义终止符,那么EOF就不是固定的,可以随意设置别名,在 linux按ctrl-d就代表EOF
<< :标准输入来自命令行的一对分隔号的中间内容.
> :输出重定向,会覆盖之前的内容
>> :输出重定向,进行追加,不会覆盖之前内容
举例如下:
[root@localhost ~]# cat <<EOF >log.txt
ip a
1234
> ifcon
> EOF
[root@localhost ~]# cat log.txt
ip a
1234
ifcon
别名举例:
[root@localhost ~]# cat <<GGG >log.txt
> 12345
> llll
> iuyt
> GGG
[root@localhost ~]# cat log.txt
12345
llll
iuyt