黑基网 首页 服务器 Linux 查看内容

Linux shell 脚本

2015-4-16 11:53| 投稿: Linux

摘要: 一、初识脚本  shell:一类介于系统内核与用户之间的解释程序。 脚本:一类使用特定语言,按预设顺序执行的文件 批处理、宏、解释型程序 创建shell脚本: 理清任务过程--...
一、初识脚本  shell:一类介于系统内核与用户之间的解释程序。 脚本:一类使用特定语言,按预设顺序执行的文件 批处理、宏、解释型程序 创建shell脚本: 理清任务过程--整理执行语句--完善文件结构 1.任务目标    1.按任务顺序        1.执行环境 2.先做什么    2.必要的结构控制 2.必要的注释信息 3.再做什么    3.如何免交互        3.友好的提示 4.每一步如何实现 例子: 1)理清任务过程 1.添加一个名为zhangsan的用户 添加一个名为zhangsan的用户 useradd zhangsan 2.将用户zhangsan的口令设置为123456 passwd zhangsan 2)整理执行语句 useradd zhangsan echo 123456| passwd --stdin zhangsan 3)完善文件结构 脚本文件:uad.sh #!/bin/bash #2015-04-12,by Moon echo "正在创建用户账号zhangsan..." useradd zhangsan echo "正在为用户zhangsan设置密码..." echo 123456|passwd --stdin zhangsan  echo "创建成功。" 4)执行shell脚本 方法:1. chmod +x uad.sh              ./uad.sh          2.  sh/bash uad.sh          3.  source/. uad.sh 二、shell命令的组合运用 管道操作:将一端的命令输出交给另一端的命令处理  方向:单向 格式:命令1|命令2 例子: 1. find /etc -name "*.conf"  -type f  //查找以.conf结尾的文件  /etc/autofs_ldap_auth.conf  .. ..     find /etc -name "*.conf"  -type f | wc -l   //wc统计 -l按行统计     308  2. ps aux | grep httpd  //gerp 过滤只剩与httpd相关的信息 重定向:改变执行命令时的默认输入、输出  类型             |     操作符   |用途 重定向输入    |<               |从指定文件读取数据,而不是从键盘输入     重定向输出    | >、>>      |将输出结果覆盖、追加到指定文件 标准错误输出 |2>、2>>   |将错误信息覆盖、追加到指定文件 混合输出        |&>、&>> |将标准输出和错误信息覆盖、追加到指定文件 例子: 1. uname -r  //linux 内核版本信息 2.6.18-194.el5 uname -r > version.txt  //版本信息保存到了version.txt 2. cat version.txt version2.txt 2.6.18-194.el5 cat:version2.txt:没有那个文件或目录 cat version.txt version2.txt 2>error.txt   //把错误信息保存到error.txt中 2.6.18-194.el5 cat error.txt cat:version2.txt:没有那个文件或目录 逻辑分隔:处理多条命令之间的逻辑关系 逻辑与:&& 逻辑或:|| 顺序执行:: 例子: 1. echo "萝卜" && echo "白菜" 萝卜 白菜 echo "萝卜"||echo "白菜" 2. mkdir /mulu/a  2>/dev/null && echo "成功"    mkdir /mulu/a  2>/dev/null ||echo "失败"    失败! 3. cd /boot/grub:ls -lh grub.comf   //-h意味着便于人操作 三、使用变量 1.变量基本操作: 定义与赋值:格式:变量名=变量名 引用变量:格式:$变量名 、${变量名} 例子: Title = Moon  echo $Title  Moon    2、定界符号  双引号、单引号、反撇号  双引号:允许引用,\转义  单引号:禁止引用、转义  反撇号,或者$()  以命令输出进行替换    例子:  1.  echo "$Title group"  Moon group    echo '$Title group'  $Title group     2. uname -r   2.6.18-194.el5    Ver=`uname -r `  echo $ver  2.6.18-194.el5   3.常见的环境变量 用来记录/设置运行参数 系统赋值:USER、LOGNAME、HOME、SHELL、...... 用户操作: PATH、LANG、CLASSPATH、..... 例子: 1. env     #列出所有环境变量 HOSTNAME=pc05.benet.com SHELL=/bin/bash HOME=/root LOGNAM=root .. .. 2.echo $USER  $HOME SHELL  zhangsan /root  SHELL  echo $LANG  zh_CN.UTF-8 其他特殊变量: 由系统或脚本操控,不可直接赋值: $?:前一条命令的状态值,0为正常、非0异常 $0:脚本自身的程序名或路径 $1-$9:第一-第九个位置命令的参数 $* :命令行的所有位置参数的内容 $#:命令行的位置参数个数 例子: 1. mkdir  /mulua echo $? 0 mkdir /mulu/a mkdir:无法创建目录 “/mulu/a”:没有那个文件或目录 echo $? 1    2. cat test.sh #!/bin/bash echo “本程序名:$0” echo "执行时一共输入$#个位置参数" echo “其中第一个参数是:$1” echo “所有参数如下:$*” ./test.sh  Hello Everyday!    本程序名:./test.sh 执行时一共输入2个位置参数 其中第一个参数是:Helo 所有参数如下:Hello Everyday! 四、数值运算及处理 1.整数运算操作: 使用expr命令,计算表达式 格式:expr 数值1 操作符 数值2 使用$[]表达式,算式提换 格式:$[数值1 操作符 数值2] 例子: 1. expr 45+21 66 expr 45-21 23 expr 45\*21  #shell 中 把* 当成通配符,所以应该转义下 945 expr 45/21 2 expr 45%21 3 X=45;Y=21;expr $X-$Y 24 2. echo $[45+21]  66 echo $[45*21] 945 X=45;Y=21;echo $[X-Y] 24 2.几个数值处理技巧 变量的递更处理 格式:let 变量名++、 let变量名-- 使用随机数 RANDOM 变量 生成数字序列 格式:seq 首数 末数、 seq 首数 增量 末数 例子: 1. X=45;Y=21 let X++;echo $X 46 let Y--;echo $Y 20  let X+=2;echo $X  48 2. echo $RANDOM      #RANDOM 变量的取值范围为0-32767  4411 echo $RANDOM 26911 echo $[RANDOM%100] 54 echo $[RANDOM%100] 83 3. seq 3  #第一个数是从1 开始的 1 可以省略  1 2 3  seq 3 5 3  4  5  seq   3  2 10  3  5   7  9  小数运行操作: 将表达式给bc命令处理 例子: echo “45.67-21” | bc 24.62 echo "scale=4;10/3" | bc #通过scale来约束小数位 3.3333
小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论


新出炉

返回顶部