ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:25.11KB ,
资源ID:4994295      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4994295.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Shell 笔记.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Shell 笔记.docx

1、Shell 笔记Shell 学习笔记1、使用print或者echo命令的双引号中引用变量值rootlocalhost # cat apple.sh#!/bin/bashfruit=applecount=5echo we have $count $fruit(s)相同于rootlocalhost # cat apple.sh#!/bin/bashfruit=applecount=5echo we have $count $fruit(s)2、设置变量#echo $PATH#export PATH=$PATH:/home/user/bin#echo $PATH3、或许字符长度#length=$#v

2、ar#var=1234546787966#echo $#var#134、识别当前的shell版本#echo $SHELL或者#echo $05、检查是否为超级用户rootlocalhost # cat aa.sh #!/bin/bashif $UID -ne 0 ; thenecho This is not root plese run as rootelseecho This is rootfi6、expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。格式为:expr Expression(命令读入Expression 参数,计算它

3、的值,然后将结果写入到标准输出)参数应用规则:用空格隔开每个项;用 (反斜杠) 放在 shell 特定的字符前面;对包含空格和其他特殊字符的字符串要用引号括起来expr用法实例讲解:(1)计算字串长度# expr length “this is a test”14(2)抓取字串# expr substr “this is a test” 3 5is is(3)抓取第一个字符数字串出现的位置# expr index “sarasara” a2(4)字串真实重现# expr quote sarasara(5)整数运算# expr 14 % 95# expr 10 + 1020# expr 1000

4、 + 9001900# expr 30 / 3 / 25# expr 30 * 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)90# expr 30 * 3expr: Syntax error(6)增量计数说明:expr在循环中用于增量计算。先将变量初始化为0, 反引号的用法为命令替代。 LOOP=0 LOOP=expr $LOOP + 1(7)数值测试说明:用expr测试一个数。如果试图计算非整数,则会返回错误。# rr=3.4# expr $rr + 1expr: non-numeric argument# rr=5# expr $rr + 16(8

5、)模式匹配说明:expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。# VALUE=account.doc# expr $VALUE : ‘.*在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。$expr $VALUE : (.*).docaccounts7、bc 命令:bc 命令是用于命令行计算器。 它类似基本的计算器。 使用这个计算器可以做基本的数学运算。-c仅通过编译。 bc命令的输出被发送到标准输出。-l定义数学函数并且初始化值为20,取代默认值0。filename文件名,它包含用于计算的计算器

6、命令,这不是必须的命令。8、let 命令 let命令可以直接执行基本的算术操作 当使用let时,变量名之前不需要添加$.例如:实战练习rootlocalhost # cat bb.sh #!/bin/bashno1=4no2=4let result=no1+no2echo $result9、整数运算:result =$ no1 + no 2 result = $ $no1 + 5 result= $( no1 + 50 )result=expr 3 + 4result=$(expr $no1 + 5)浮点运算echo 4 * 0.56 |bcrootlocalhost # cat cc.sh

7、#!/bin/bashno=54;result=echo $no * 0.68 |bc echo $result设定小数精度(数值范围)echo scale=2; 3/8 |bc进制转换十进制转换为二进制no=100echo obase=2;$no |bc二进制转换为十进制no= 1100100echo obase=10;$no bc计算平方以及平方根echo sqrt(100) |bcecho 1010 |bc10、玩转文件描述符和重定向0 stdin 标准输入1stdout 标准输出2stderr 标准错误echo a1 a1cp a1 a2;cp a2 a3chmod 000 a1cat

8、 a* 2err.txt11、teetee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。参数:-a或-append 附加到既有文件的后面,而非覆盖它-i-i或-ignore-interrupts 忽略中断信号。-help 在线帮助。-version 显示版本信息。查看以a开头的文件名,使用tee生成标准输入到out.txt文件,cat -n显示序列号cat a* |tee out.txt |cat -n查看以a开头的文件名,使用tee生成标准输入到out.txt文件加上-a追加文件,cat -n显示序列号cat a* |tee out.txt |cat -n重定向脚

9、本内部的文本块向文件的头部输入数据清空文件,追加rootlocalhost aa# cat log.txt LOG FILE HEADER This is a test log file Function: system statistics EOFrootlocalhost aa# cat log.txt LOG FILE HEADERThis is a test log fileFunction: system statistics自定义文件描述符使用exec命令创建自定义的文件描述符。通常来说有三种模式:只读模式截断模式追加模式操作符用于截断模式的文件写入(数据在目标文件内容被截断之后写

10、入)操作符用于追加模式的文件写入。为读取文件创建一个文件描述符echo this is a test line input.txt exec 3input.txtcat input.txt cat out.txt 2&1if $? -eq 0 ;thenecho $CMD executed successfullyelseecho $CMD exectued unsuccessfulyfiReadRead 是一个重要的bash命令,用于从键盘或标准输入中读取文本,我们可以使用read以交互的形式读取来自用户的输入Read -n 2 var 输入两个字符读入变量varRead -s var 以不

11、会显的方式输入密码Read -p Enter input: var 以Enter input:显示提示信息Read -d : var 以定界符:结束输入行字段分隔符和迭代器内部字段分隔符(IFS):是shell脚本中的一个重要概念,在处理文本数据时,她可是相当有用。我们将讨论把单个数据流划分成不同数据元素的定界符。内部字段分隔符是用于特定用途的定界符。IFS是存储定界符的环境变量。它是当前shell环境使用的默认定界字符串。迭代器:我们需要一个迭代字符串或者CSV逗号分割型数值。在前者中,我们使用IFS=.,在后者中则使用IFS=,实列rootlocalhost # cat ifs #!/bi

12、n/bashdate=name,sex,rollno,locationIFS=,#oldIFS=$IFSfor item in $datedoecho Item:$itemdone#IFS=$oldIFSrootlocalhost # bash ifs Item:nameItem:sexItem:rollnoItem:locationrootlocalhost #!/bin/bashIFS=:line=admin:x:500:500:/home/admin:/bin/bashcount=0for i in $line;do $count -eq 0 & user=$i $count -eq 6

13、 & shell=$ilet count+doneecho $users shell is $shellrootlocalhost # bash shel admins shell is /bin/bashLinux下seq的使用-f:用来格式化输出-s:用来指定分隔符号,默认是回车-w:输出同宽数列,不足的位数用0补齐rootgechong # seq -f 100%g 1010011002100310041005100610071008100910010rootgechong # seq 1 3 1014710rootgechong # seq -s + 101+2+3+4+5+6+7+8

14、+9+10rootgechong # seq -s + 100 | bc5050rootgechong # seq -w 1001020304050607080910一个简单的脚本实现1000以内偶数求和rootgechong # more test.sh#!/bin/sh# gechong_1106_sumfir=0;res=0;for i in $(seq $fir 2 1000); do res=$($res+$i);done;echo The result is :$res;For循环脚本名称叫test.sh 入参三个: 1 2 3运行test.sh 1 2 3后$*为1 2 3(一起

15、被引号包住)$为1 2 3(分别被包住)$#为3(参数数量) rootlocalhost # cat fora #!/bin/bashfor (i=1;i=10;i+);doecho $(expr $i*4);donerootlocalhost # cat for#!/bin/bashlist=1.2.3.4.5.6.7.8.9.10IFS=.for i in $listdoecho $idonerootlocalhost # cat aa#!/bin/bashfor i in 1.6do#set -x echo $i#set +xdoneecho script executedrootloc

16、alhost # cat one#!/bin/bashfor x in one two three fourdoecho number $xdonerootlocalhost # cat bb#!/bin/bashfor iii in $doecho you typed $iiidone用for循环在家目录下创建aaa1-aaa10,然后在aaa1-aaa10创建bbb1-bbb10的目录#!/bin/bashfor i in 1.10domkdir /home/aaa$icd /home/aaa$ifor l in 1.10domkdir /home/aaa$i/bbb$ldonedoneW

17、hile -lt,小于 -le,小于等于 -eq,等于 -ge,大于等于 -gt,大于 -ne,不等于循环输出1到10的数字#!/bin/bashmyvar=1while $myvar -le 10 do echo $myvar myvar=$( $myvar + 1 )done注:只要特定条件为真,”while” 语句就会执行当输入bye时结束shellrootlocalhost # cat as #!/bin/bash echo enter a number: read var while $var != bye do echo your input is : $var read var

18、done 取1到10的和rootlocalhost # cat dd#!/bin/bashdeclare -i i=1declare -i sum=0while (i=10)dolet sum+=ilet +idoneecho $sum行2-3,声明i和sum为整数型行4,如果条件测试:只要i值小于或者等于10,就执行循环。行6,sum+=i和sum=sum+i是一样的,sum累加上i。行7,i的值递增1,此行是改变条件测试的命令,一旦i大于10,可终止循环。行8,遇到done,回到行6去执行条件测试行9,显示sum的值为55Until(除非你想要执行无穷循环)取1到10的和rootlocal

19、host # cat dd #!/bin/bashdeclare -i i=1declare -i sum=0until (i=10)dolet sum+=ilet +idoneecho $sum#!/bin/bashmyvar=1until $myvar -gt 10 do echo $myvar myvar=$( $myvar + 1 )done变量自增,目前有五种方法#!/bin/bashi=0;while $i -lt 4 ;do echo $i; i=expr $i + 1; # let i+=1; # (i+); # i=$i+1; # i=$( $i + 1 )done比较和测试一:条件测试1.语法:test 条件表达式 或

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1