欢迎来到天天文库
浏览记录
ID:48060415
大小:1.73 MB
页数:146页
时间:2019-05-06
《unixshell编程基础培训(基础篇).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、UnixShell编程基础篇北京神州数码思特奇信息技术股份有限公司研究院课程目标熟练编写UnixShell程序内容提纲Shell介绍Shell脚本介绍Shell特性正则表达式变量与运算符Shell的输入与输出Shell函数脚本调试高级编程技巧Shell工具SHELL介绍Shell-UNIX命令解释器问题引入:DOS系统的命令由command负责执行,并且对重覆性或多个命令运行可写成批处理文件,只要执行这个批处理文件就等於执行这些命令。UNIX系统如何处理?Shell:shell是一种命令语言,同时又是一种程序设计语言。UNIX系统利用shell命令解释器
2、(command-languageinterpreter),完成用户输入命令的执行,是用户与系统交互的界面,是命令与kernel之间的接口。shell接收用户输入的命令,对命令作出解释,然后发送给kernel执行之。shell是一个解释型的程序设计语言。shell程序(脚本)相当于dos的批处理文件,可简单到只有一条命令,也可以包括循环、条件语句、数学运算、控制结构的程序,完成复杂的管理任务。Shell-UNIX命令解释器SHELL脚本介绍Shell脚本介绍为什么使用Shell脚本?批量命令重复、条件等控制Shell脚本的基本内容#!/bin/sh第一行
3、注释:#第二行变量第三行条件判断、循环第四行脚本的运行方式chmod?+x脚本./脚本文件名Shell脚本介绍示例:hello.sh#!/bin/bash#这是一个基本的shell脚本op="helloworld"echo$opSHELL特性Shell特性别名命令替换管道重定向后台处理模式匹配变量特殊字符别名aliasEg:aliasll=`ls-alh`命令替换myfile的内容如下:marmfindfile实现替换如下:ls`catmyfile`-al后台处理什么是后台?一个终端可以同时运行多个程序用法:nohupcommand&可以再后台运行此命令
4、示例:nohubtar-czf要压缩的文件名压缩后的文件名&查看后台命令使用:jobs–l变量示例:#!/bin/bash#这是一个基本的shell脚本printchar=“helloworld”echo$printchar变量用来存储信息管道(
5、)把一个命令的输出连接到另一个命令的输入。示例:ls
6、sortcatfunc.txt
7、grep-v^#重定向(<>)与管道相关,可以改变程序运行的输入来源和输出地点示例:sortmyfile_test.txt模式匹配显示以txt为扩展名的
8、文件或显示以a开头的文件,这种情况称为模式匹配。实现方式:正则表达式如:ls*.txt特殊字符分号(;):允许在一行上放多个命令。eg:cd~/backup ;mkdirstartup ;cp~/.*startup/.&:命令后执行。括号():创建成组的命令。竖杆(
9、):管道标示符。<>&:表示重定向。*?[]!:表示模式匹配。$:变量名的开头。#:表示注释(第一行除外)。空格,制表符,换行符:当做空白。$((...)):对括号内的表达式求值eg:#!/bin/shx=0while["$x"-ne10];doecho$xx=$(($x+1))doneex
10、it0特殊字符**:两个星号在运算时代表"次方"的意思eg:"sus=2**3"echo"sus=$sus"$sus=8{}大括号:用法一:通配符扩展eg:lsmy_{finger,toe}s这条命令相当于如下命令的组合:lsmy_fingersmy_toeseg:mkdir{userA,userB,userC}-{home,bin,data}用法二:可用于语句块的构造。'string'单引号和"string"双引号双引号:如果想在定义的变量中加入空格,就必须使用单引号或双引号,单、双引号的区别在于双引号转义特殊字符而单引号不转义特殊字符eg:$heyy
11、ou=home$echo'$heyyou'$$heyyou($没有转义)eg:$heyyou=home$echo"$heyyou"$home($转义了输出了heyyou变量的值)特殊字符单引号:由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。例如:单引号:由双引号括起来的字符,除$,,'和"这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待。[root@localhost/]#String="$PATH\"$PATH"[root@localhost/]#echo$Str
12、ing/usr/kerberos/sbin:/usr/kerberos/bin:
此文档下载收益归作者所有