第34周-鸟哥的Linux私房菜基础篇第三版- 第十三章、Shell Scripts
2016-11-17 21:45
162 查看
1、Linux系统的启动接口在/etc/init.d/目录下,目录下的所有档案都是scripts.
重新启动系统注册表档:/etc/init.d/syslogd restart 其中syslogd就是script
2、简单入侵检测功能:
系统注册表档案,记录系统的异状,可用抵挡砍站软件的shell script
3、撰写程序要点:
a、必须以#!/bin/bash 开头,其中的bash表示用bash的语法,它可自行加载相关环境配置文件(~/.bashrc);
b、写“功能,版本信息,作者及联络方式,版权宣告方式,建档日期,历史记录等”;
c、环境变量的宣告,主要是PATH和LANG;
d、exit 0,代表离开script并且传回一个0,若接着下达echo $,可得到0值。(在此也可自定义错误信息)。
4、写第一个shell script:
例1:对谈式脚本,变量可由用户决定。如输入姓、名,输出全称。
例2:随日期变化:利用date进行档案的建立
重新启动系统注册表档:/etc/init.d/syslogd restart 其中syslogd就是script
2、简单入侵检测功能:
系统注册表档案,记录系统的异状,可用抵挡砍站软件的shell script
3、撰写程序要点:
a、必须以#!/bin/bash 开头,其中的bash表示用bash的语法,它可自行加载相关环境配置文件(~/.bashrc);
b、写“功能,版本信息,作者及联络方式,版权宣告方式,建档日期,历史记录等”;
c、环境变量的宣告,主要是PATH和LANG;
d、exit 0,代表离开script并且传回一个0,若接着下达echo $,可得到0值。(在此也可自定义错误信息)。
4、写第一个shell script:
mkdir scripts;cd scripts vim sh01.sh #!/bin/bash # program: # This program shows"Hello world!" in your screen. # History: # 2016/11/18 Shawn First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH echo -e "Hello World! \a \n" exit 0
例1:对谈式脚本,变量可由用户决定。如输入姓、名,输出全称。
vim sh02.sh #!/bin/bash #program: # User input his first name and last name ,Program shows his fullname. #History: #2016/11/18 Shawn First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH read -p "Please input your firstname:" firstname #提示使用者输入 read -p "Please input your lastname:" lastname #提示使用者输入 echo -e "\nYour full name is: $firstname $lastname" #结果输出到屏幕 exit 0
例2:随日期变化:利用date进行档案的建立
vim sh03.sh #!/bin/bash #program: # Program creats three files,which named by user's input and date command. #History: #2016/11/18 Shawn First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH #使用者输入文件名,取得fileuser这个变量 echo -e "I will use 'touch' command to creat 3 files." #纯显示信息 read -p "Please input your filename:" fileuser #利用变量功能分析档名是否有设定? filename=${fileuser:-"filename"} #开始判断是否配置文件名,【:】表示变量未设定则后面将其替换 date1=$(date --date='2 days ago' +%Y%m%d) #前两天的日期 date2=$(date --date='1 days ago' +%Y%m%d) #前一天的日期 date3=$(date +%Y%m%d) #今天的日期 file1=${filename}${date1} #底下三行在配置文件名 file2=${filename}${date2} file3=${filename}${date3} #建立档名 touch "$file1" touch "$file2" touch "$file3" #创建文件的命令有touch、vi、cat、mv、less等。 #vim内删除光标以下的行:Ndd例3、数值计算:加减乘除
vim sh04.sh #!/bin/bash #program: # User inputs 2 integer numbers;program will cross these two numbers. #History: #2016/11/18 Shawn First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH echo -e "Your SHOULD input 2 numbers,I will cross them!\n" read -p "first number:" firstnum read -p "second number:" secnum total=$(($firstnum*$secnum)) echo -e "\n The result of $firstnum x $secnum is == > $total" exit 0 #var=$((运算内容)) ——好处是两个小括号内可以加上空格符 #也可以用【declare -i total=$firstnum*$secnum】例4、test检测功能
vim sh05.sh #!/bin/bash #program: # User input a filename, program will check the flowing: # 1.) exist? 2.) file/directory? 3.) file permissions #History: #2016/11/20 Shawn First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH echo -e "Please input a filename,I will check the filename's type and \ permission. \n\n" read -p "Please input your filename:" name #判断是否真的有输入字符串 test -z $filename && echo "You must input a filename." && exit 0 #判断档案是否存在,不存在则显示信息并退出 test ! -e $filename && echo "The filename '$filename' DO NOT exits" && exit #判断文件类型与权限 test -f $filename && filetype="$regulare file" test -d $filename && filetype="directory" test -r $filename && perm="readable" test -w $filename && perm="$perm writable" test -x $filename && perm="$perm executable" #开始输出信息! echo "The filename:$filename is a $filetype" echo "And the permissions are:$perm"例5、[ ]的检测功能
vim sh06.sh #!/bin/bash #program: # This program shows the user's choice #History: #2016/11/20 Shawn First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH read -p "Please input (Y/N):" yn [ "$yn" == "Y" -o "$yn" =="y" ] && echo "OK,continue" && exit 0 [ "$yn" == "N" -o "$yn" =="n" ] && echo "Oh,interrupt" && exit 0 echo "I don't know what your choice is" && exit 0 #其中的-o是或的意思,表示连结两个判断
相关文章推荐
- 鸟哥的Linux私房菜基础学习篇(第三版)之第十三章:shell scripts
- 第十三章、学习 Shell Scripts
- 《汇编语言》(第三版)王爽第十三章实验13.1个人方法记录
- Hadoop: the definitive guide 第三版 拾遗 第十三章 之HBase起步
- 第32周-鸟哥的Linux私房菜基础篇第三版-第十章、vim 程序编辑器-2
- Hadoop: the definitive guide 第三版 拾遗 第十三章 之HBase起步
- 第32周-鸟哥的Linux私房菜基础篇第三版-第十一章 认识与学习BASH
- 鸟哥的Linux私房菜基础篇第三版(全书完)CHM版
- Linux鸟哥私房菜学习笔记_第十三章 Shell Scripts
- 鸟哥的Linux私房菜基础篇第三版
- 第29周-鸟哥的Linux私房菜基础篇第三版-第五章 首次登入与在线求助 man page
- 第31周-鸟哥的Linux私房菜基础篇第三版-第九章、档案与文件系统的压缩与打包
- 鸟哥的Linux私房菜(基础篇)- 第十三章、学习 Shell Scripts
- 第29周-鸟哥的Linux私房菜基础篇第三版-第四章 安装CentOS
- 鸟哥的Linux私房菜基础篇第三版
- 鸟哥的LINUX私房菜基础篇第三版 阅读笔记 四 档案的文件系统的压缩和打包
- 第29周-鸟哥的Linux私房菜基础篇第三版-第六章 Linux 的档案权限与目彔配置
- 第十三章、学习 Shell Scripts
- 第29周-鸟哥的Linux私房菜基础篇第三版-绪论
- 鸟哥的LINUX私房菜基础篇第三版 阅读笔记 一