linux shell编程技巧
1,shell 特性
history 用法 连续敲两个!! 代表输入history
!$代表上一条命令的最后一个参数
! 数字代表执行数字数的命令
!vi 代表从history 从下向上数,最近一条vi开头的命令
$!
2,tab用于命令补全
如果按完以后不动,那就连续按两下tab
3,alias 用于取别名 ,用于给经常使用的命令取别名
4,* 代表通配符,ls[12].txt 打开1或者2中的一个文件,表示任选其一
?代表,只有一个
>代表重定向,>>代表追加<代表反向重定向
5.|代表管道命令,将一个结果的输出结果作为参数传给管道后边
也就是将前面命令的输出作为后面命令的输入
6,crtl+Z表示暂停命令 sleep 表示休眠,jobs表示查看当前被暂停的命令
fg + 编号表示继续 带有+的表示优先恢复
ctrl+C代表的是终止进程
7,env 打印出系统的一些内置的变量
8,export 全局声明变量 给变量赋值
vi sh01.sh 创建shell 脚本
#!/bin/bash --脚本的起始位置
date +%Y%n%d --正文内容
echo 'i am chinese'
:wq保存退出
-rw-r--r-- 1 root root 48 9月 26 13:04 sh01.sh
第一位是代表的文件类型
接下来三位代表的是root用户权限
同组其他成员权限
其他组成员的执行权限
改变权限 chmod
4+2+1 分别代表三位2进制的和
改变颜色,说明可以执行
执行shell脚本的命令
./ --执行当前目录下的文件 输出执行结果,或者没有结果
例:判断某个文件是否存在
判断某个文件夹是否存在
[[email protected] scripts]# chmod +x sh02.sh --添加执行权限
[[email protected] scripts]# sh sh02.sh 执行文件
/u01/actlog/user_20161128.log
[[email protected] scripts]#
在shell中语句前面加#表示注释
注意是中括号 不是分号
正则用法^ 代表以。。。开头 $代表以 。。。结尾
命令
ls /u01/actlog|grep ^user|grep log$|wc -l
代表求复合条件的行数
shell 的大于小于命令
> -gt ,= -eq < -lt
循环语句
#!/bin/bash
for x in `ls /home` ---一定要注意这个单引号
do
echo $x
done
~
seq 数字表示生成数字个的序列
数字运算
cat /dev/null > sh03.sh --表示把空替换sh03.sh中的全部内容
反引号位于tab 键的上面``
$# 表示参数的个数
$0 表示 调用方式 例如 ./sh
echo$#求总和
if [ "x$1" = "x" ]; then
exit -1;
fi;
crontab -l --查看当前用户下的任务计划
crontab -e --编辑任务
分钟 小时 日 月 周
*/1 * * * * (/root/scripts/sh01.sh 1000)>> sh04.out 2 >&1 &---错误输出到2
每分钟执行一次sh01.sh这个脚本
$ 可以取变量的值,可以放在双引号里面
也可以几点到几点执行 。。。