




kok电子竞技权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
kok电子竞技:文档简介
1、主要内容,Shell简介 Shell基本语法 Shell脚本基本编程 Shell脚本高级部分,Shell简介Shell概念,什么是Shell? Shell是一个命令解释器,可以用来启动、停止、编写程序。它是操作系统最外面一层,负责管理用户与操作系统之间的交互,例如等待用户输入,向操作系统解释用户的输入,以及处理各种操作系统的输出结果。,Shell简介Shell概念,Shell是用户和UNIX/Linux操作系统内核程序间的一个接口。,Shell简介Shell种类及历史,Bourne shell(sh):Stephen Bourne,1979 Bourne Again Shell(bash) C
2、 shell (csh): Billjoy,70年代末期 Korn Shell(ksh): DavidKorn,80年代中期,Shell简介Linux Shell,支持Bourne shell、C shell和Korn shell 标准shell为bash 向下兼容Bourne shell 工作控制(job control) 别名功能(alias) 命令历史(command history) 命令列编辑功能 提供更丰富的变量类型、命令与控制结构,Shell简介Shell作用,最主要的功用:解释用户在命令提示符下输入的指令。 提供个性化的用户环境。通常在shell的初始化文件中完成。(.bash
3、_profile、.bash_login、.bash_cshrc等)这些特性包括:设置变量、搜寻路径、权限、提示符等。 解释性的程序语言。Shell程序命令文件。由列在文件内的命令所构成:UNIX命令和基本的程序结构。,Shell简介Shell功能,命令行解释功能 Shell试图解释命令行输入的一行字符。其基本格式: command arguments 启动程序 启动命令行中要求的程序。实际是内核执行该程序。 输入/输出重定向 $ ls-l a.txt 管道连接 管道是输入输出重定向的特例,它将命令的输出直接连到另一个命令的输入。 $who|wc -l,Shell简介Shell功能,文件名置换
4、 比如命令: $echo * 命令的执行结果如下图所示:,Shell简介Shell功能,变量维护 定义变量,使用变量等。 环境控制 用户个人环境的设置,包括用户的home目录、 用户终端类型及PATH路径等。,$LOOKUP=/usr/mydir $echo $LOOKUP /usr/mydir $echo LOOKUP LOOKUP,Shell简介Shell功能,Shell简介Shell功能,Shell编程 将Linux命令与各种流程控制和条件判断来组合命令与变量赋值,就可以进行Shell编程。,Shell基本语法Shell脚本的执行,Shell脚本的例子,#!/bin/bash LOG_D
5、IR=/var/log # 如果使用变量,当然比把代码写死的好. cd $LOG_DIR cat /dev/null messages cat /dev/null wtmp echo Logs cleaned up. exit #,指明该脚本执行需要的命令解释器,定义变量,执行UNIX内部命令,退出Shell程序,Shell基本语法Shell脚本的执行,#!/bin/bash 在 Linux 系统中默认是 Bash #! 后边给出的路径名必须是正确的,否则将会出现一个错误消息,通常是 “Command not found”。 #!“也可以被忽略,不过这样脚本无法使用 shell 内建 的指令。
6、 如果在脚本 #!行,那么 bash 将把它认为是一个一般 的注释行.,Shell基本语法Shell脚本的执行,Shell脚本的执行 sh scriptname bash scriptname. 不推荐使用 sh scriptname,因为这禁用了脚本 stdin 中读数据的功能. 更方便的方法是让脚本通过 chmod命令可以修改,然后./scriptname测试它.,chmod 555 scriptname (允许任何人都具有可读和执行权限) chmod +rx scriptname (允许任何人都具有可读和执行权限) chmod u+rx scriptname (只给脚本可读和执行权限),
7、Shell基本语法Shell脚本的执行,为什么不直接使用 scriptname 来调用脚本? 如果你当前的目录下($PWD)正好有你想要执行的脚本,为什么它运行不了呢?失败的原因是,出于安全考虑,当前目录并没有被加在用户的$PATH 变量中.因此,在当前目录下调用脚本 ./scriptname 这种形式.,Shell脚本的退出及退出状态,exit 命令被用来结束脚本。 exit n .当n为0时表示执行成功,非0通常表示一个错误码。 脚本中将错误码n传递给BASH。 脚本中若无exit语句,则其返回状态由最后一条语句执行的状态决定。 $?读取最后执行命令的退出码 特定的退出码都有预定的含义,用
8、户不应该在自己的脚本中使用它 .,Shell脚本的退出及退出状态,1 #!/bin/bash 2 3 echo hello 4 echo $? # 返回0,因为执行成功 5 6 lskdf # 不认识的命令. 7 echo $? # 返回非0 值,因为失败了. 8 9 echo 10 11 exit 113 # 将返回113 给 shell. 12 # To verify this, type echo $? after script terminates. 12 # 为了验证这个,在脚本 echo $?,Shell基本语法特殊字符,# 字符 注释,行首以#开头为注释(#!是个例外) 注释也可
9、以存在于本行命令的后边 .,# This line is a comment. $echo #aabbb $,echo 命令中被转义的#是不能作为注释的. 同样的,#也可以出现在特定的参数替换结 构中或者是数字常量表达式中,echo The # here does not begin a comment. echo The # here does not begin a comment. echo The # here does not begin a comment. echo The # 这里开始一个注释 echo $PATH#*: # 参数替换,不是一个注释 echo $( 2#1010
10、11 ) # 数制转换,不是一个注释,Shell基本语法特殊字符,; 命令分隔符,可以用来在一行中来写多个命令。,$echo hello; echo there hello there,; 终止case选项,Shell基本语法特殊字符,. 命令等价于 source命令。 source filename args命令 .字符匹配, 的一部分,用来匹配任何的单个字符. “ 双引号 括起来的字符除$、和双引号之外都将作为普通字符对待。 单引号括起来的字符均作为普通字符出现。 , 逗号链接了一系列的算术操作,虽然里边所有的内容都被运行了,但只有最后一项被返回.,$string=$PATH $
11、echo string $PATH,$string=“$PATH” $echo string $/usr/bin:/home/sxlyq,Shell基本语法特殊字符, 转义字符,如X 等价于X或X 后置引用,命令替换。其对应于键盘左上角的符号。其所括字符串在被Shell解释时,首先执行其中的命令并将其结果代替该命令。,$let t2 = (a = 9, 15 / 3) $echo $t2;echo $a $5 $9,$pwd /home/sxlyq $string=“current directory is pwd” $echo $string Current directory is /ho
12、me/sxlyq,echo $A 显示为$A 如果不加将显示为1234 echo 显示为 echo 显示为双引号 echo 显示为,Shell基本语法特殊字符,反引号的功能是命令替换,将反引号中的字符串做为命令来执行,shell编程时经常用它将系统命令的执行结果赋给一个变量 A=date echo $A 显示的不是date而是当时的时间串 如有一文件A的内容如下 ABCDEFG 1234456 abcdefg B=cat A|grep 234 # 检索文件A中含有字符串234的行 echo $B 将显示为1234456,Shell基本语法特殊字符,: 空命令,等价于“NOP”(no op,一个
13、什么也不干的命令),与shell 的内建命令(true)作用相同。“:”命令是一个 bash 的内建命令,它的返回值为 0,就是 shell 返回的 true. * 万能匹配字符,用于文件名匹配或者是中。 *代表任何字符串。但文件名前的.和路径名中的/必须显示匹配。比如*不能匹配.file而”.*” 才能匹配。 ?代表单个字符。 代表指定的一个字符的范围。 abc a, b, c三者中之一 a-n 从a到n的任一字符,$ echo * abs-book.sgml add-drive.sh agram.sh alias.sh,Shell基本语法特殊字符,判断下面使用了通配符的字符串能否
14、匹配“reportfile” * ? r*f* r?f? *report*file ?eportfil? *report*file ?eport*? opqr*eport*,Shell基本语法特殊字符, 代码块.又被称为内部组.事实上,这个结构创建了一个匿名的函数. 但是与函数不同的是,在其中声明的变量,对于脚本其他部分的代码是可见的。如:,a=123 a=321; echo a = $a # a = 321 (说明在代码块中对变量 a 所作的修改,影响了外边的变量 a),Shell基本语法特殊字符, echo x;echo y $X=$Y Y=y;echo x;echo y,Shell基本语
15、法内部变量,内部变量也是在Shell执行前就定义的变量,但其只能被使用而无法被修改或重定义。 $# 位置参数的数量 $* 所有位置参数的内容 $?命令执行后返回的状态 $当前进程的进程号最常见的用途是作为暂存文件的名称,以保证不会重复。 $! 后台运行的最后一个进程号 $0 当前执行的进程名,Shell基本语法位置参数变量,由shell在程序运行时设置。是在命令行中按照各自的位置决定的变量,程序名之后输入的参数,之间用空格分割,第一个参数可使用$1取得,以此类推,$0表示当前Shell程序的进程名。 共10个位置参数变量,从程序名开始依次为第09个 Shift命令递归访问参数,Shell基本语
16、法位置参数变量,shift shift 命令重新分配位置参数,其实就是向左移动一个位置. $1 - $2, $2 - $3, $3 - $4, 等等. 老的$1 将消失,但是$0(脚本名)是不会改变的.如果你使用了大量的位置参数,那么 shift 命令允许你存取超过 10 个参数.虽然表示法也允许这样.,Shell基本语法参数置换变量,根据不同条件给变量赋予不同的值。 变量=$参数-word,$parameter:-default如果设置了参数,则用参数的值置换变量的值,否则用word置换。这两者大部分情况下相同。 变量=$参数=word,$parameter:=default如果设置了参数,
17、则用参数的值置换变量的值,否则把变量设置成word,然后再用word替换参数的值。 变量=$参数?Word如果设置了参数,则用参数的值置换变量的值,否则就显示word并从shell中退出,如果省略了word,则显示标准信息。该种方式常用于出错指示。 变量=$参数+word 如果设置了参数,则用word置换变量,否则不进行置换而使用 null字符串。,Shell基本语法变量表达式,TEST命令: test condition或者condition 命令进行条件测试。 用在以下四种情况: 字符比较 数值的比较 文件操作 逻辑操作,Shell基本语法变量表达式,字符比较,Shell基本语法变量表达式,整数操作符,Shell基本语法变量表达式,文件操作符,Shell基本语法变量表达式,逻辑操作符,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
kok电子竞技:最新文档
- 人事经理兼职合同范例
- 数字经济下的会计角色转变计划
- 创造性课堂教学的探索计划
- 肿瘤护理宣教科普
- 创建领先的教育品牌计划
- 人教kok电子竞技七kok电子竞技上册教学设计2.1.2 海洋对人类的影响001
- 电气安全培训知识课件
- 实践基地与社区合作项目计划
- 第二单元第11课《网络安全基础》教学设计 2023-2024学年青岛kok电子竞技(2019)初中信息技术第一册
- 胃癌术后胰瘘护理
- 人教kok电子竞技五kok电子竞技数学下册全册教案含教学反思
- 2022国家供暖规定法规
- 【历史】三国两晋南北朝时期的科技与文化(课件) 2024-2025学年七kok电子竞技历史上(部编kok电子竞技2024)
- 2025年园林绿化工(高级)考试题库及答案
- 2024春四kok电子竞技上下册音乐测试专项测试题及答案
- 多发伤骨折护理查房
- 中建二测考试题库及答案
- 中建预制构件吊装安全专项施工方案
- 华东师范大学《外国人文经典(下)》2021-2022学年第一学期期末试卷
- 基础护理及病房管理
- 办理拆迁事项委托书
评论
0/150
提交评论