二
变量
5
位置参数变量
$0命令自己
$1
第一个参数
$2
第二个参数
$9
第九个参数
例2:输出位置参数变量,脚本后要接参数
#!/bin/bash
echo"the command is $0"
echo"canshu1 is $1"
echo"canshu2 is $2"
6
预定义变量
$?
上一个命令的返回值:0
上一个命令正确执行;非0
上一个命令不正确
$#
统计命令之后的参数个数
$*
返回所有参数
$n
位置参数变量
例3:输出预定义变量
#!/bin/bash
#名字为:canshu.sh
echo"canshu zongshu $#"
echo"canshu liebiao: $*"
echo $?
附:
对其赋予执行权限:chmod755 canshu.sh
执行:./canshu.sh1 2 3 4 5 6
7
键盘读取命令
read -p “提示信息”
-t
等待时间 变量名
例子4:通过read读入变量值
#!/bin/bash
read-p "please input num1:" -t 30 test1
read-p "input num2:" -t 30 test2
sum=$(($test1 + $test2))
echo“num1 + num2 = $sum”
8
数值运算
变量值默认都是字符串型,要想进行数值运算。以下三种任选一种
1)declare方法
num1=123
num2=456
declare-i sum=$num1+$num2
2)sum=$(($num1 + $num2 )) #推荐
附:
$():
说明括号里为系统命令,他会执行系统的命令
3)sum=$(expr$num1 + $num2)
注意+左右必须空格,不然会发生错误如:打印:123+456#字符串叠加
4)运算符
+ - \* / %取余
附:
shell编程的目的是为了减轻系统管理员的任务
shell脚本可能写不出漂亮的界面,但是他不是用来干这个的→ 各种编程语言都有他特殊的应用面,比如说C语言就比VB在数值计算方面更加精确,而VB则在界面方面比C更胜一筹
shutdown-r now #系统重启
三 shell中常用命令
1
行提取命令grep
选项:
-v 反向选择
-n
提取时,显示行号
举例:
grep "[^a-z]hen" test.txt
oo前不是小写字母的行匹配。
注意:和开头没有关系
附:也可以结合以前的内容:grep-n
"[^a-z]hen" test_rule.txt
中括号代表一个字母,^代表取反,a-z代表小写字母a到z
grep “\.$” test.txt
匹配以.结尾的行
附:在正则表达式中$代表行尾;
\
代表转义符,表示,将其后紧跟字符的特殊含义消失!
Linux中行尾的空格附,也可以作为一个字符,一定要记住!这是一些脚本发生错误的原因!
grep "^[^A-Za-z]" test.txt
匹配不以字母开头的行
注意:所有字母不能这样写 A-z
附:
^在中括号外面代表行首
grep"^[^a-zA-Z]" test_rule.txt #这样也可以
grep “^$” test.txt
匹配空白行
grep "oo*" test.txt
匹配最少一个o
附:o*代表着*前面的这个o可以重复0到无数多次
还可以这样用:grep"hh*o"
test_rule.txt
这样:
grep"ooo" test_rule.txt
2
列提取命令
1)
cut
cut -d “分隔符”
-f
提取列 文件名
如:cut-d
":" -f 1,3 /etc/passwd
more/etc/passwd | grep "/bin/bash" | cut -d ":" -f1,3
提取passwd文件中可以登录的用户的用户名和UID
附:这里1,3之后就不用加文件名了
last
命令用于查看那个用户,在那个端口等信息下登录到系统,是一个日志命令
2)
awk
awk '条件{动作}'
last| awk '{printf $1 "\t" $3 "\n"}' # $1代表第一列
提取last显示结果的第一和第三列
\t tab键
\n
换行
\r
回车
附:也可以是:last| awk '{printf $1 "\t" $3 "\t" $4 "\n"}'
last| grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"| awk '{printf $1 "\t" $3
"\n"}'
在last中提取包含ip的行,然后,再在行中提取第一和第三列
awk内置变量
FS 指定分隔符
more/etc/passwd | awk 'BEGIN {FS=":"} {printf $1 "\t"$3 "\n"}'
读取passwd文件,以":"为分隔符,截取第一和第三列
BEGIN
在截取前使分隔符生效。如果没有BEGIN,那么第一行自定义的分隔符不生效
6 echo命令
echo -e “输出内容”
-e
识别格式化打印内容
echo -e “1\t2\t3”
打印tab键
echo -e "\e[1;31m this is red text \e[0m"
输出红色字体
\e[
格式标志
1;31m
指定颜色 #30到39之间的数字
0m
恢复颜色(重置)
附:30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=洋红,
36m=青色,37=白色
echo -e “\e[1;42 background \e[0m”
附:背景颜色:40=黑色,41=红色,42=绿色,43=黄色,44=蓝色,45=洋红,
46=青色,47=白色
例子5:echo输出的小游戏
注:
cat -A 文件名
显示文件隐,包括藏字符
取消dos文档的回车符,两种办法
1)dos2unix
文档名 #unix2dos
方向相反
2)vi
-b 文档
:%s/^M//g ^M使用
ctrl+v+m
输入
例6:数据备份
#!/bin/bash
DAY=`date+%Y%m%d` #
反引号!!!
#定义日期变量
附:DAT=$(date+%F) #
更方便且更漂亮,打印出:2013-12-21
SIZE=`du-sh /var/lib/mysql`
#定义mysql目录大小的变量,``符号可以换成$()
附:sudodu -sh /etc/ #
统计/etc/目录的大小
echo"Date: $DAY" >> /tmp/dbinfo.txt
#把日期输入信息文档
echo"Data Size: $SIZE" >> /tmp/dbinfo.txt
#把大小输入信息文档
cd/opt/dbbak
#切换目录
tarzcf mysqlbak-${DAY}.tar.gz /var/lib/mysql /tmp/dbinfo.txt
打包备份mysql目录,同时打包信息文档
附:在字母zc后加v会显示压缩过程
rm-f /tmp/dbinfo.txt
分享到:
相关推荐
本书由浅入深地介绍了shell编程技术。为了满足不同读者的需要,本书内容分为三个...初级读者可以从本书第一部分获得入门知识,中、高级读者可以越过第一部分,直接从第二部分和第三部分深入了解有关shell编程的知识。
精通UNIX Shell脚本编程 第二版 免费 真正的第二版,不拿第一版忽悠大家, 清晰 最好用的shell书籍,最全面的shell介绍
shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南
初学者入门教程:Shell编程概述(二) shell编程-shell编程-分支语句(1) shell编程-shell编程-分支语句(2) shell编程-shell编程-循环语句(1) shell编程-shell编程-循环语句(2) Linux的shell...
第1章 Shell脚本编程概述 1 第2章 Linux文件系统和文本编辑器 12 第3章 正则表达式 43 第4章 sed命令和awk编程 64 第5章 文件的排序、合并和分割 105 第6章 变量和引用 133 第7章 退出、测试、判断及操作符 ...
本书由浅入深、循序渐进地详细讲解了LinuxShell编程的基本知识。这些基本知识包括Shell编程的基本知识、文本处理的工具和方法、正则表达式、Linux系统知识等。 本书旨在通过理清Linux Shell编程的脉络,从基本概念...
详细介绍了shell编程的各部分内容,配以大量简单详细实例,让你用最少的时间达到shell编程从入门到精通的过程,无疑是学习shell编程的最佳选择~
19、Shell编程之实战WEB界面展示二.mp4 18、Shell编程之实战WEB界面展示一.mp4 17、Shell编程之磁盘监控报警脚本.mp4 16、自动收集服务器硬件系统信息脚本.mp4 15、Shell批量监控服务发送邮件报警.mp4 14、Linux下...
12.Shell编程四剑客及案例详解.mp4 13.Linux下自动化运维企业案例.mp4 14.Linux系统增量备份脚本.mp4 15.自动收集服务器硬件系统信息脚本.mp4 16.Shell编程之磁盘监控报警脚本_0.mp4 17.Shell批量监控服务发送邮件...
shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程...
LINUX.SHELL编程从初学到精通,华清远见培训中心
shell编程shell编程shell编程shell编程
《linux shell编程从入门到精通》由浅入深、循序渐进地详细讲解了linux shell编程的基本知识。这些基本知识包括shell编程的基本知识、文本处理的工具和方法、正则表达式、linux系统知识等。 《linux shell编程从...
13Linux下Shell编程之While case演练 14Linux下Shell编程之While case演练 15Shell编程之函数及脚本案例讲解 16Shell编程之函数及脚本案例讲解 17Linux下Shell编程FIND、SED命令实战 18Linux下Shell编程FIND、SED...
linux shell编程从初学到精通源码4-17全
shell编程题目练习,练习基本的shell编程,学习脚本语言,提高效率
Linux.Shell编程从入门到精通详解
包括概述、linux文件系统、正则表达式、sed命令和awk编程、文件的排序、合并和分割、变量和引用、操作符、循环与结构化命令、变量的该机用法、I/O...函数、别名、列表和数组、shell脚本调试技术、bash shell编程范例等...
Linux+Shell编程从入门到精通.
shell是一种完整的编程语言,易学易用;...第二四章 SHELL嵌入命令 第五部分 高级SHELL编程技巧 第二五章 深入讨论 第二六章 SHELL工具 第二七章 几个脚本例子 第二八章 运行级别脚本 第二九章 CGI脚本