`
xidajiancun
  • 浏览: 457712 次
文章分类
社区版块
存档分类
最新评论

四天精通shell编程(二)

 
阅读更多

变量

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 数值运算

变量值默认都是字符串型,要想进行数值运算。以下三种任选一种


1declare方法

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代表小写字母az


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

附:这里13之后就不用加文件名了

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 指定颜色 #3039之间的数字

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=白色


例子5echo输出的小游戏

注: cat -A 文件名 显示文件隐,包括藏字符

取消dos文档的回车符,两种办法


1dos2unix 文档名 #unix2dos 方向相反


2vi -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编程技术。为了满足不同读者的需要,本书内容分为三个...初级读者可以从本书第一部分获得入门知识,中、高级读者可以越过第一部分,直接从第二部分和第三部分深入了解有关shell编程的知识。

    精通UNIX Shell脚本编程 第二版 免费 包含脚本文件

    精通UNIX Shell脚本编程 第二版 免费 真正的第二版,不拿第一版忽悠大家, 清晰 最好用的shell书籍,最全面的shell介绍

    shell编程指南shell编程指南shell编程指南shell编程指南

    shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南

    shell编程教程.chm

    初学者入门教程:Shell编程概述(二) shell编程-shell编程-分支语句(1) shell编程-shell编程-分支语句(2) shell编程-shell编程-循环语句(1) shell编程-shell编程-循环语句(2) Linux的shell...

    Linux Shell编程从初学到精通 第2版

    第1章 Shell脚本编程概述 1 第2章 Linux文件系统和文本编辑器 12 第3章 正则表达式 43 第4章 sed命令和awk编程 64 第5章 文件的排序、合并和分割 105 第6章 变量和引用 133 第7章 退出、测试、判断及操作符 ...

    Linux Shell编程从入门到精通

    本书由浅入深、循序渐进地详细讲解了LinuxShell编程的基本知识。这些基本知识包括Shell编程的基本知识、文本处理的工具和方法、正则表达式、Linux系统知识等。  本书旨在通过理清Linux Shell编程的脉络,从基本概念...

    shell编程从入门到精通

    详细介绍了shell编程的各部分内容,配以大量简单详细实例,让你用最少的时间达到shell编程从入门到精通的过程,无疑是学习shell编程的最佳选择~

    Linux下Shell编程从入门到精通视频教程.txt

    19、Shell编程之实战WEB界面展示二.mp4 18、Shell编程之实战WEB界面展示一.mp4 17、Shell编程之磁盘监控报警脚本.mp4 16、自动收集服务器硬件系统信息脚本.mp4 15、Shell批量监控服务发送邮件报警.mp4 14、Linux下...

    Linux下Shell从入门到精通完整版视频.zip

    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 编程shell 编程shell 编程...

    LINUX SHELL编程从初学到精通

    LINUX.SHELL编程从初学到精通,华清远见培训中心

    shell编程shell编程shell编程shell编程

    shell编程shell编程shell编程shell编程

    华清远见 Shell编程从入门到精通 中文版

    《linux shell编程从入门到精通》由浅入深、循序渐进地详细讲解了linux shell编程的基本知识。这些基本知识包括shell编程的基本知识、文本处理的工具和方法、正则表达式、linux系统知识等。  《linux shell编程从...

    Shell编程高级进阶系列视频.zip

    13Linux下Shell编程之While case演练 14Linux下Shell编程之While case演练 15Shell编程之函数及脚本案例讲解 16Shell编程之函数及脚本案例讲解 17Linux下Shell编程FIND、SED命令实战 18Linux下Shell编程FIND、SED...

    linux shell编程从初学到精通源码4-17全

    linux shell编程从初学到精通源码4-17全

    shell编程题目练习

    shell编程题目练习,练习基本的shell编程,学习脚本语言,提高效率

    Linux.Shell编程从入门到精通详解

    Linux.Shell编程从入门到精通详解

    shell编程 从入门到精通百度网盘下载地址.

    包括概述、linux文件系统、正则表达式、sed命令和awk编程、文件的排序、合并和分割、变量和引用、操作符、循环与结构化命令、变量的该机用法、I/O...函数、别名、列表和数组、shell脚本调试技术、bash shell编程范例等...

    Linux+Shell编程从入门到精通

    Linux+Shell编程从入门到精通.

    绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版 [16.3M]

    shell是一种完整的编程语言,易学易用;...第二四章 SHELL嵌入命令 第五部分 高级SHELL编程技巧 第二五章 深入讨论 第二六章 SHELL工具 第二七章 几个脚本例子 第二八章 运行级别脚本 第二九章 CGI脚本

Global site tag (gtag.js) - Google Analytics