Shell基础
shell概述
1 shell是什么
2 脚本执行方式
- 脚本例子
#!/bin/bash
#这是第一个shell脚本的注释
echo -e "\e[1;36m 从hello world开始 \e[0m"
- 赋予执行权限,直接运行
chmod 755 hello.sh
./hell.sh
- 通过bash调用执行脚本
bash hello.sh
Bash的基本功能
命名别名与快捷键
source ~/.bashrc
- ctrl+c 强制终止当前命令
- ctrl+l 清屏
- ctrl+a 光标移动打到命令行首
- ctrl+h 删除光标前的一个字符
- ctrl+u 从光标所在位置删除到行首
- ctrl+k 从光标所在位置删除到行尾
- ctrl+z 把命令放入后台
- ctrl+r 在历史命令中搜索
历史命令
输出重定向
- 标准输入输出
- 输出重定向
命令>文件
命令 >> 文件(追加)
2> (2是标准输出,记忆:犯2出错)
2>>
- 输入重定向< , <<
wc命令
多命令顺序执行
;,&& , ||
管道 |
shell中的特殊符号
http://www.cnblogs.com/ggjucheng/archive/2012/10/30/2746963.html
http://www.open-open.com/lib/view/open1434697711520.html
Shell变量
什么是变量与变量分类
变量,变量的命名规则
变量按照存储数据分类:字符串型,整型,浮点型,日期型等
在bash中默认都是字符串型的变量
1用户自定义变量
2环境变量
- 环境变量是全局变量
- 用户自定义变量 只在当前shell生效
pstree命令
set , unset , export , env
PATH变量 , PS1变量:命令提示符修改
\#查看PATH
echo $PATH
\#增加PATH
PATH = "$PATH":/root/sh
3位置参数变量
4预定义变量
shell变量详解
http://www.cnblogs.com/barrychiao/archive/2012/10/22/2733210.html
Shell运算符
1 算数运算符
+ , - , * , / , % , **
+= , -= , *= , /= , %=
let”“命令,注意除法运算
2 位运算符
<< , >> , & , | , ~ , ^
3 自增自减运算符
++ , - - (与C语言类似,1只能是变量,2前置,后置的区别)
4 数字常量
0(8进制)
0x(16进制)
2# , 8# , 16# 分别可以表示不同的进制
变量测试
http://www.jb51.net/article/52384.htm
正则与通配
通配符 ? * [] , 通配是完全匹配
find , ls , cp支持通配符,不支持 正则
grep awk sed可以支持正则,正则包含匹配
正则表达式元字符和格式:http://blog.chinaunix.net/uid-20422917-id-1682678.html
正则:http://www.cnblogs.com/kzloser/archive/2012/09/10/2677283.html
条件判断与控制结构
Shell条件判断:http://linglong2110.iteye.com/blog/746809
for while until
#!/bin/bash
# for 1
for i in 1 2 3 4
do
echo $i
done
# for 2
for i in $(seq 1 4)
do
echo $i
done
#for 3
for ((i=1; i<=4; i++))
do
echo $i
done
#!/bin/bash
i=1
s=0
while [ $i -le 100 ]
do
s=$(($s+$i))
i=$(($i+1))
done
echo "The sum is : $s"
#!/bin/bash
i=1
s=0
until [ $i -gt 100 ]
do
s=$(($s+$i))
i=$(($i+1))
done
echo "The sum is : $s"