说到历史,想达到的一个主要的目的如何去使用它,如何去利用它,要看历史有一个历史命令history,在这里可以看到按照顺序编号,一到三,后面都有一个完整的内容。
有一个带星号的,因为命令行被修改过,所以带星号,一般来说历史列表比较长,默认500条,如果上千条一屏看不完,这个时候可以输入另一个命令行。
如果快速的从历史当中找到需要的东西,如果从快捷键来说有这样的几种方式:第一个逆向搜索历史,按照ctrl+L键从最后历史往前搜索,输入H首先找到 history5。
第二ctrl+p,如果想访问最后的一个命令行,按ctr+P就出来了。
我们利用历史的命令不是特别的有用,这样估计会麻烦一点,会慢一点,有没有其他的好的方式引用,这些历史命令的得益于SL强大的机制,提供以下的几种方式引用历史命令,最常见的我们需要执行的上一条命令,可以用两个惊叹号引用。如果有一个软件我想装一下,但是权限失败了,我不想输入完整的命令行,就用两个惊叹号引用上一层命令,所以后面加两个叹号,就按照我们的要求去执行。
其实有的时候我们引用历史命令的时候,如果能记住历史命令和字符,可以用惊叹号和你记住的字符引用命令行。比如这个例子后面跟着三个字母从列表来找最出,找到最近的history,这个大家要注意是命令字符的开头,有的时候只能记住命令当中的字符可以用另外一种方式去引用,用一个惊叹号加一个问号,这样的方式引用,引用这个命令行包含的这个字符,我们举的例子一个惊叹包含的IS这两个,我们注意到之前是命令当中想变量的时候用IS可以引用过来。
前面说历史命令的时候大家还会记得通过数字同这个命令进行编号,所以我们要用心用这个命令可以通过编号完成。第10个编号一个惊叹号+编号10就会持续历史列表当中编号为10的命令。如果我想从历史列表从后往前执行,通过编号引用,可以在数字前面加一个符号,这个代表倒数引用。比如执行惊叹号2后面跟一个-2,就会去执行倒数第二条命令。前面说过通过两个惊叹号就是最后一条,它等价于惊叹号-1,就是倒数第一条命令。
有一个小的提示,如果你想通过编号的方式引用历史命令的话,可以在SL提示符里加上被所执行命令的提示,我们这儿/加一个惊叹号放在PH1变量里,在这儿你所执行的命令会在/左边显示出来,我这儿显示是1998,对于以后想重新用这个编号命令的话会有一些帮助。
最后引用历史命令的方式,用惊叹号加警号字符,这个引用方式是引用正在输入的命令行,就是当前的命令行,比如我这儿输入了CP filename,想拷贝一下,经常情况下会把文件名完整的输出来,如果用历史引用模式的话,我们可以简写一下,一个警号,一个冒号,这个是引用当前的历史命令,但是我们这儿后面还有一个冒号1,后面会说到是引用了这个命令行的第一个前面的word,我们这儿引用了filename。
完整引用历史命令行的话有这样的四种方式,最后一条命令行或者以某个字符开头,包含某个字符的命令行,或者命令行有数字编号,可以这样去引用。
其实有的时候我们利用用命令行的时候不光是想用完整的命令行,我们有的时候只想利用它的一部分,其他的部分不需要,这个有没有办法做到?也是可以的,在此我做了一张图,我称它为历史命令word选取图,一个完整的命令行是根据空格,分格,完整的命令行,从命令到参数到选项,空格分开都不会成为一部分,所以从命令开始算的起的话从0算起,命令本身就是0,下一个参数就是1,如果字符有引号是一个完整的整体。
下面我们就看一下,如何引用历史命令的某一部分,我是根据使用情况最多的情况来介绍的,我们首先介绍上一个命令就是最后一位参数,我们这儿用两个字符,一个是惊叹号,一个是(DOL),这个是名冷行的最后一部分。
如果想引用命令行第一个参数,惊叹号加头字符,这个也是来自于表达式里开头。
同样这个地方也可以用快捷键ctrl+alt+Y,可以引用命令行的第一个参数。
前面介绍的word如何分开的,如果我们把一个命令行看成一个数组的话,编程,每一个word就是数组的原数,一般是索引,再次我们也可以用索引引用命令行的某一个参数,这个例子我想创建三个文件,创建之后我想对第二个文件进行编辑,这个时候我就用惊叹号中间冒号隔开2,2就是第二个参数。其实有的时候不光是想得到某一处的word,有的时候还想得到连续的word,比如2到3,3到4,引用这样的参数的话可以用连隔符来引用。这个例子1到2引用前面的参数。
如果引用到最后的话用简写的方式后面加一个星号,引用用一个冒号,后面加星号,就是从第二个参数到最后一个参数。如果只是一个叹号加星号,就是所有的参数。