
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、linux shell系统简介对用户而言可以屏蔽系统的负责性。 对于系统而言可以防止用户的误操作或是故意的破坏。 用法较广的shell有标准的bourne shell (sh)、korn shell(ksh)、c shell (csh)、bourne again shell(bash)等。 查看当前环境所用shell:echo $shell shell的另一个重要特性是它自身就是一个说明型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell编程语言容易易学,任何在提醒符中能键入的都能放到一个可执行的shell程序中。 本质
2、上,shell 脚本是指令行指令容易的组合到一个文件里面。shell基本上是一个指令说明器,类似于dos下的。它接收用户指令,然后调用相应的应用程序。 进入shell脚本编程: 1.在一个名目下创建一个hello.sh文件 hello.sh 2.用法vi编辑器打开hello.sh vi hello.sh 3.按i键进入编辑模式 敲入: !/bin/sh /*shell脚本固定第一行,告知系统这个是shell文件 */ hello.sh /*shell的文件名称*/ to show hello to somebody /*功能部分 */ echo -n enter your name: read
3、 name echo hello,$nam! 4.保存推出vi 按esc键,按shift+冒号键,wq 5.给刚刚创建shell文件授权 u+x hello.sh 6.执行脚本 ./hello.sh 查看用户身份 用户名 文件查找用法 如: 文件内容查找用法 如:grep aa hello.sh 文件拜访权限 一个文件已经创建就有3种拜访形式 r表示文件刻度对应的八进制表示为4 w表示文件可写可以删除对应的八进制是2 x表示假如是程序的话表示可以执行对应的八进制是1 文件的类型 前缀 类型 前缀 类型 一般文件 l 链接(link)文件 b 块(block)设备文件 p 命名管道(pipe)文
4、件 c 字符(character)设备文件 s 本地套接口(socket) d 名目(directory) 一个文件由1个类型和9个权限位来描述,9个权限位分为3组,每组3个权限位,详细表示如下所示: -(类型) rwx(u:user文件的属主) rw-(g:group属主所在的组,属组) r-x(o:other 其他用户) a(以上三种人) 转变文件或是名目的权限 chmod u/g/o/a+/-/= 权限 文件或是名目名 +表示添加权限 -表示去掉指定权限 =表示清除之前的权限并给予新设定的权限 chmod允许8进制符合作为模式,转变权限 chmod peissioncode name/d
5、icname - rwx rw- r-x 该文件所具有的权限为 7(rwx)6(rw)5(rx)即765 r用4表示 w用2表示 x用1表 chmod实例 假设hello.c最初拥有rwxrwxrwx的权限 依次执行一下的指令: 指令 结果 含义 chmod a-x hello.c rw-rw-rw 收回全部用户的执行权限 chmod go-w hello.c rw-r-r- 收回同组用户和其他用户的写权限 chmod g+w hello.c rw-rw-r- 给予同组写的权限 chmod a= hello.c - 清除全部权限 chmod 666 hello.c rw-rw-rw- 给予全部
6、用户和写的权限 chmod 644 hello.c rw-r-r- 给予属主读、写权限,其他用户和属组读的权限 chmod 700 hello.c rwx- 给予属主读、写、执行的权限 chmod 660 hello.c rw-rw- 给予属主读写权限,同组用户读写权限 转变文件名目的属主 转变文件名目的属主 owner filename/dicname 如:chown dev hello.c 转变文件或名目的属组 chown group filename/dicname 如:chown devgroup hello.c 转变文件或是名目的属主和属组 chown owner:group fil
7、ename/dicname 如:chwon cloud:cloud hello.c 变量 保存临时信息 变量普通都用大写字母表示 用法echo可以显示单个变量的取值,要在变量前加$ 如: user= haison echo $user 假如设置变量时,不想转变其值,可以将变量设置为只读,只要在变量前加上readonly 用法指令可以显示本地全部定义的shell变量 变量名:清除变量的定义 变量的分类:本地变量(用户自定义的变量)、环境变量(用于全部用户定义的变量,用于用户进程前必需用法us of this script is :$? 文件状态测试 -d 名目 -r 可读 -f 常规文件 -w
8、可写 -l 符号衔接 -x 可执行 -s 文件长度大于0,非空 -u 文件有su位设置 示例: -s haison.c 0表示胜利,其他为失败,下同。 规律操作符 -a 规律与(and),操作符两边均为真,结果为真,否则为假。 -o 规律或(or),操作符两边一边为真,结果为真,否则为假。 ! 规律否,条件为假,结果为真,反之。 示例: -r haison.c a w hai.c 字符串测试 = 两个字符串相等 -z 空串 != 两个字符串不相等 -n 非空串 示例: -z $shell 数值测试 -eq 数值相等(equal to) -lt 第一个数小于其次个数( than) -ne 数值不
9、相等(not equal to) -le 第一个数小于等于其次个数 -gt 第一个数大于其次个数(greater than) -ge 第一个数大于等于其次个数 示例: 10 -eq 12 控制结构 挑选结构: if语句: if then ee 提供条件测试 case 语句:允许匹配模式、单词或值 循环结构: for:每次依次处理列表内的信息,直至循环耗尽。 until:不常用。条件在循环末尾,起码执行一次。 while:条件在循环头部。 示例 !/bin/sh iftest to show the method of if echo -e enter the first integer:c r
10、ead first echo -n enter the second integer: read second if $first -gt $second then echo $first is greater than $second elif $first -gt $second then echo $first is less than $second else echo $first is equal to $second fi 示例 !/bin/sh casetest to test the method of case user=whoami case $user in root)
11、echo you can do all the operations ; dave)echo you can do some operations ; *)echo sorry,you can not do anything ; esac !/bin/sh fortest to test the method of for counter=0 for files in * do counter= $counter + 1 done echo there are $counter files in 示例 !/bin/sh untiltest to test the mothod of until
12、 is_root=who|grep root until is_root do is_root=who|grep root 5 done echo watch it.root in! 示例 !/bin/sh whiletest to test the method of while counter=0 while $counter -lt 10 do echo $counter counter=expr $counter + 1 done while read line do echo $line done names.txt 函数 格式 函数名 () 指令 全部函数在用法前必需定义,这意味着
13、必 须将函数放在脚本开头部分,直至shell说明 器首次发觉它,才可以用法。 调用函数仅用法其函数名即可,要传给函 数的变量跟在函数后面。 函数里面定义的变量以下划线(_)开头。 函数可以放在同一个文件中作为一段代 码,也可以放在只包含函数的单独文件中,文 件也必需以!/bin/sh开始。 !/bin/sh funtest to test the fution date= hello() echo hello,today is $date hello !/bin/sh funtest to test the function . ./hello hello 注释和管道线 shell脚本中以 开
14、始的正文行表示注释. !/bin/bash this script is a test! 这些均是凝视,第一行必需有 管道线由|表示,前一个指令的输出正是后一个指令的输入 例如: rootlocalhost pro$ls -l | -l 指令与 表示第一个指令执行胜利其次个指令才会执行 指令| 内部变量 $ 传送给shell程序的位置参数的数量 $? 最后指令的完成码或者在shell程序内部执行的shell程序(返回值) $0 shell程序的名称 $* 调用shell程序时所传送的所有参数成的单字符串环境变量 (1)home:用户名目的全路径名。 /对应/home/cloud下,每个人可以分
15、离设置 (2)logname:即用户的注册名,由linux自动设置。 (3)mail:用户的系统信箱的路径。 (4)path:shell从中查找指令的名目列表 表达式 (2)?(问号),它匹配随意一个字符。 (3) (一对方括号),其中有一个字符组。其作用是匹配该字符组所限定的任何一个字符。 (4)!(赞叹号),假如它紧跟在一对方括号的左方括号之后,则表示不在一对方括号中所列出的字符。 (5)(幂次方号),只允放在一行的开头匹配字符串。 (6)$(美元号),只在行尾匹配字符串,它放在匹配单词的后面。 * 0次或是多次 + 1次或是多次 ? 0次会1次 字符串比较 s1=s2:假如s1等于s2,则测试条件为真; s1!=s2:假如s1不等于s2,则测试条件为真; -n s1:假如字符串s1长度大于0,则测试条件为真; -z s1:假如字符串s1长度等于0,则测试条件为真 数字比较 n1 eq n2 :假如n1等于n2,则测试条件为真; n1 ne n2:假如n1不等于n2,则测试条件为真; n1 gt n2:假如n1大于n2,则测试条件为真; n1 ge n2: 假如n1大于或等于n2,则测试条件为真; n1 lt n2: 假如n1小于n2,则测试条件为真; n1 le n2:假如n1小于或者等于n2,则测试条件为真。 文件条件测试 (3)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成人高等教育化学实验技能与安全考核试卷
- 森林公园绿色能源应用与节能减排考核试卷
- 农产品仓储与冷链物流体系建设考核试卷
- 教育与企业文化融合考核试卷
- 信托产品的市场接受度分析考核试卷
- 成人教育职业技能培训质量保障考核试卷
- 水力发电工程水工金属结构检测与评定考核试卷
- 语文园地七(教学设计)2024-2025学年统编版语文四年级上册
- 年度外部环境分析与经营策略计划
- 多彩幼儿园教学研究活动计划
- 2025年高考百日誓师大会校长致辞(二)
- 2025年高考数学复习核心考点(新高考专用)专题5.3平面向量的数量积及其应用【八大题型】特训(学生版+解析)
- 2025年中国万宝工程有限公司校园招聘笔试参考题库附带答案详解
- 2025年常州机电职业技术学院单招职业适应性测试题库有完整答案
- 2025年河南机电职业学院单招职业技能测试题库及参考答案
- 第11课《山地回忆》课件-2024-2025学年统编版语文七年级下册
- 2024年皖西卫生职业学院单招职业适应性测试题库及答案解析
- 石油工程设计大赛采油单项组
- 2024年湖南省长沙市中考数学试题(含解析)
- 部编人教版语文小学六年级下册第四单元主讲教材解读(集体备课)
- 回族做礼拜的念词集合6篇
评论
0/150
提交评论