hello world!
echo 'hello world!'
标准输入输出
1. 标准输入 文件描述符 0
2. 标准输出 文件描述符 1
3. 标准错误 文件描述符 2
输出重定向 -标准输出重定向
1. 命令 > file
2. 命令 >> file
输出重定向 -标准错误输出重定向
1. 错误命令 2> file
2. 错误命令 2>> file
输出重定向 -全部输出重定向
1. 命令 > file 2>&1
2. 命令 >> file 2>&1
3. 命令 &> file
4. 命令 &>> file
5. 命令 >> file1 2>> file2
输入重定向
命令 < 文件
wc < file.cfg
多命令顺序执行
1. 命令1;命令2;
2. 命令1&&命令2;
3. 命令1||命令2;
管道符
1. 命令1 | 命令2
netstat -an | grep ESTABLELISHED
通配符
1. ?
2. *
3. []
4. [-]
5. [^]
6. ''
echo 'name'
7. ""
8. `` #反引号(Esc上键),会调用其中的系统命令,即引用系统命令
echo `date`
9. $() #引用系统命令,同``
echo $(date)
10.
11. $
12. \
变量分类
1. 用户自定义变量:只在当前shell中生效,类似局部变量
2. 环境变量:保存和系统操作环境相关的数组,在所有shell中生效,类似全局变量,一般大写
3. 位置参数变量:向脚本中传递参数或者数据,变量名不能自定义,作用是固定的
4. 预定义变量:bash中已经定义好的变量,变量名不能自定义,作用也是固定的
用户自定义变量
1. 由字母数字下划线组成,但是不能以数字开头
name = $(date)
echo $name
2. bash中类型默认为字符串类型,如果要进行数值运算,要指定变量类型为数值型
3. 变量用等号连接,等号两侧不能有空格
4. 变量的值如果有空格,需要用双引号或者单引号引起来,如果包含!只能用单引号
5. 变量中的值可以"\"转义符
6. 如果需要增加变量的值,可以进行变量的叠加,格式为:"$变量名"或者${变量名}
aa=123
aa="$123"456
aa="${123}"456
7. set
8. unset variable
系统环境变量
1. 设置环境变量 export 变量名=变量值
2. 查询环境变量 env
3. 删除环境变量 unset variable
4. 显示PATH echo $PATH
5. PATH变量叠加 PATH='$PATH':/root/sh
6. 系统环境变量一般都是大写
系统提示符变量 PSI
位置参数变量
1. $n
sum=$(($1+$2))
echo "sum is : $sum"
2. $*
3. $@
for i in "$*"
do
echo $i
done
for y in "$@"
do
echo $y
done
1 2 3 4
1
2
3
4
4. $
预定义变量
1. $?
2. $$
3. $!
echo "$$"
find /root -name hello.sh &
echo "$!"
4. 接收键盘输入:read[选项][变量名]
-p:提示信息
-t:秒数,一直等待输入,超时返回
-n:字符数
-s:隐藏输入数据,适用于机密数据输入
read -t 30 -p "please input your name " name
echo $name
read -t 20 -p "please input your age " age
echo $age
read -n 1 -t 30 -p "[M/F]: " sex
echo $sex
数值运算
1. decare [+/-][选项] 变量名
- :给变量设定类型属性
+ : 取消变量的类型属性
-i: 将变量声明为整数型(integer)
-x:将变量声明为环境变量
-p:显示指定变量被声明的类型
aa=11
bb=12
declare -i cc=$aa+$bb
echo $cc
2. expr 或 let 数值运算工具
aa=11
bb=22
dd=$(expr $aa + $bb)
echo $dd
3. $((运算式)) 或 $[运算式]
aa=11
bb=22
ff=$(($aa+$bb))
ee=$[$aa+$bb]
echo $ff
echo $ee
运算符
变量测试与内容替换
环境变量配置文件
1. source 配置文件
2. 默认环境变量:PATH、HISTSIZE、PSI、HOSTNAME
3. 位置
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
~/.bash_profile
~/.bashrc
环境变量调用顺序
/etc/profile 作用
1. USER、LOGNAME、MAIL、PATH、HOSTNAME、HISTSIZE、umask
2. 调用/etc/profile.d/*.sh文件
~/.bash_profile 作用
1. 调用了~/.bashrc文件。
2. 在PATH变量后面加入了":$HOME/bin"
~/.bashrc 作用
1. 定义默认别名
2. 调用/etc/bashrc
/etc/bashrc 作用
1. PS1变量
2. umask
3. PATH变量
4. 调用/etc/profile.d/*.sh文件