搜索命令,那么退出状态$

2019-07-16 作者:小鱼儿玄机30码   |   浏览(100)

最近一直在做Embedded Linux下的项目,平台是友善之臂Micro2440。不过有时会发现,因为开发板用的时间比较长了,实时时钟的电池会没电,于是造成系统时间设置发生错误。解决方法当然是要更换新的电池,可也要设置一下时间问题,主要的命令如下:

$?是返回脚本或者命令执行之后的退出状态,默认返回值是0或者1,0代表退出成功,无错误,1代表退出失败,某处有错误。也可以自己设置退出值,在脚本命令最后加上exit n,n表示任何一个整数,比如exit 100,那么退出状态$?=100。

行内搜索

行内搜索,也就是在当前行内进行搜索和移动,通常都与编辑命令一起使用。

  • fx -- 移动到下一个字符x的位置,光标停留在x字符上面
  • tx -- 移动到下一个字符x的位置,光标停留在x前一个字符上
  • Fx -- 移动到前一个字符x的位置,光标停留在x字符上面
  • Tx -- 移动到前一个字符x的位置,光标停留在x后一个字符上
  • ; -- 重复前一个搜索,向着同一方向,即原来向前就向前,原来向后就向后
  • , -- 重复前一个搜索,向着反方向

行内搜索通常与编辑一起使用:

  • dfx/dtx -- 删除到下一个字符x
  • yfx/ytx -- 复制到下一个字符x

首先了解下LVM的相关概念:

#date 2012.8.27-16:05:59

需要注意的是,直接使用$?只能使用一次,后面如果重复使用,返回的$?状态已经不是最开始的那个退出状态了。比如以下例子:

全局搜索

搜索,分为二个部分:一个是搜索命令,另一个是模式匹配;搜索命令就是各个编辑器所支持的启动搜索的方式,比如Windows的各种编辑器都是以对话框的形式。模式就是在对话框中输入的要匹配的字串集。本身字串的匹配功能有限,所以就有了专门用于模式匹配的正则表达式,它描述了模式匹配的一些规则,使用这些规则可以让匹配更加的强大和精准,多数编辑器都支持正则表达式,Vim也不例外,先讲一下搜索命令,然后再讲对正则表达式的支持。

LVM:逻辑卷管理器

#hwclock -w

(脚本1)someOder(返回值是100)

基本搜索命令

  • /pattern -- 向前搜索pattern,光标停留在第一个匹配的第一个字符上面。向前的意思是向下,或者向着行数增加的方向。Vim会亮显示所有的匹配,并将光标停留在当前位置的下一个匹配的首字符上
  • / -- 当不提供pattern时,会向前重复搜索上一个pattern,也就是向前重复搜索的意思,光标会跳到下一个匹配上面
  • ?pattern -- 与/pattern类似,只不过它是向后搜索,向着行数减少的方向。
  • ? -- 与/类似,是不过是向后重复搜索
  • n -- 向着同一方向重复搜索,原来向前就继续向前,原来向后就继续向后(当向前搜索时与/一样,当向后搜索时与?一样)
  • N -- 向着反方向重复搜索,原来向前就向后,原来向后就向前(向前时?一样,向后时/一样)
  • * -- 向前搜索光标所在的单词,只匹配整个单词,单词的定义是一串连续的字母,数字,标点,空白都是单词的分隔符。
  • # -- 向后搜索光标所在的单词,只匹配整个单词
  • /? 上下方向键 -- 像其他的命令提示符一样,方向键可以方便的引用历史搜索记录如,搜索记录为error, grape, that,那么按了/后,再按向上方向键:/that,再向上:/grape,向下:/that,再次按回车就可以搜索了。

Linux LVM 组织为物理卷(PV)、卷组(VG)和逻辑卷(LV)。

第一句的意思是设置系统时间为2012.8.27-16:05:59

(脚本2)echo $? (此命令执行后将会在终端输出100)

正则表达式

如前提及,模式匹配在搜索当中有重要的作用。正则表达式(Regular Expression)是专门用于描述搜索中的(Pattern)模式的。使用正则表达式来构建pattern可以让搜索更加强大和精准。有关正则表达式的详细内容可以参阅《Mastering Regular Expression》这本书。正则表达式仅是一种规范,但是各种常用的工具和编程语言都对正则表达式有不同程度的支持。正则表达式有二类:一是正常的字符,仅匹配自身,如"that",只能匹配"that";另一类就是具有特殊意义的元字符。不像基本字符,元字符具有特殊的含义,如.(句点)可以匹配任意除换行符外的单个字符。正则表达式就是学习各种元字符的使用。

Vim对正则表达式有很好的支持,它的常用元字符有:

物理卷:简称PV,物理卷可以是一个完整的硬盘,以可是硬盘中的某个分区,任何逻辑卷和卷组都是在物理卷的基础上建立.

第二句的意思是将系统时间写入到硬件实时时钟中

(脚本3)echo $? (另外再执行该命令,将会在终端输出0,其实现在这个退出状态值$?已经是脚本2的退出状态了),不再是脚本1里面的退出状态了。

通用匹配:

  • . -- 匹配任何除换行符外的单个字符
  • s -- 匹配一个空白符(space或tab)
  • S -- 一个非空白符
  • ^ -- 仅匹配行首,也即必须以模式开头
  • $ -- 仅匹配行尾,也即必须以模式结尾
  • < -- 匹配词首,单词定义为一连串的字母,标点空白和数字均视为分隔符
  • > -- 匹配词尾。
  • <...> -- 匹配整个单词(前面命令中的*和#就是用这个来只匹配单词)。当然<和>不必一起使用,可以分开使用

卷组:简称VG,卷组建立在物理卷上,一个卷组可包含一个物理卷或者多个物理卷

经过上面两句,重启后会发现,时间初始化将成功,时钟恢复正常。

所以这里一定要注意$?只能够使用一次。

限量符:

  • * -- 前一个字符出现0次或多次,如a*,可以匹配'', 'a', 'aa'或'aaa'等
  • -- 前一个字符出现1次或多次
  • = -- 前一个字符出现0次或1次
  • {n,m} -- 前一个字符出现n到m,如a{3,5},则可以匹配'aaa', 'aaaa'或'aaaaa'
  • {n} -- 前一个字符出现n次
  • {n,} -- 前一个字符出现n次到最多次数(32000)
  • {} -- 0次或多次,与*一致

逻辑卷:简称LV,逻辑卷建立在卷组之上,卷组的空间可用以创建多个逻辑卷,并且创建的逻辑卷可随意在卷组的空间范围内增减,逻辑卷的使用相当于物理磁盘分区.并可通过LVM实现一种称为快照的特性,可在不停止生产环境的前提下,创建快照,以实现某一时刻的数据备份。

图片 1

那么,如果我们要重复使用脚本1中的$?的值怎么办呢,很好办,用一个变量记住脚本1的$?值就可以了,代码如下:

操作符:

  • | -- 或,如ab|ba,则匹配'ab'或'ba'

下面为建立逻辑卷的相关步骤

var=$?

其他:

  • [...] -- 字符集,表达一组字符的集合,匹配其中任何一个字符

    如[abc],则匹配a或b或c。连续的字符可以用-代替如,[a-c]则匹配a或b或c,[0-9]匹配0到9中任何一个数字,[a-zA-Z]匹配任何一个字母。通常与限量符一起使用,如:/[a-z]{3,6},长度3到6的小写字串,/[0-9]{2,4}长度2到4的数字。

  • (...) -- 组合,把内部看成一个整体并保存起来以便后续引用。本身作用不大,要与其他元字符一起使用才能发挥其功效

  • n -- 其中n=1~9,对组合的引用,也即引用(...)中所匹配的内容

    如,/(that)1,则匹配thatthat;/([a-z]).1则匹配,aba, aoa, bcb等。

图片 2

一:建立物理卷

这样,就可以通过变量var重复使用脚本1的退出状态值了。

#fdisk /dev/sda

这个方法在判断一个脚本执行成功与否的时候很有用。

//在此我们创建一个3G的分区和一个7G的分区,当然大小可根据自己需要来设定,

图片 3

另,分区的id号一定要改为8e(LVM分区)

#pvcreate /dev/sda5 /dev/sda6

//将我们新建的2个分区创建为物理卷

#vgcreate –s 8M myvg /dev/sda5 /dev/sda6

本文由小鱼儿玄机30码发布于小鱼儿玄机30码,转载请注明出处:搜索命令,那么退出状态$

关键词: 小鱼儿玄机30码