从零开始的linux 第十章


老师:“都什么时候了,小编怎么还不更新博客!!”

(装作四处看风景)路人甲:“大概...小编..小编还在睡觉吧~~~”

wKiom1m80y2TLJ4JAABWG4W-oMM973.jpg

(↑听完小编在睡觉的消息后,老师的目光中散发出凶恶...不...慈爱的眼神)

于是...老师点燃一支烟,深吸了一口气,与路人甲等人换上校服离开了教室;整齐的着装,令人无法接近的气场,过往的车辆都会避其三分...

wKioL1m82KzAiLQVAAk5DERk2nE598.png

(  ↑   插     画    出自《偷星九月天》  

小编在睡梦中,隐约的感觉门外有杀气,扭头看了看床头桌子上的闹钟。我了个X....已经..下午四点了,小编课还没讲....小编深知..一切都结束了...在人生即将终结的时刻,最后再享受一下床的温暖.....看着门外的众人并没有破门而入,终于...小编还是躺在了床上...

于是乎。。。小编睁开眼睛的时候....不知怎么,就出现在了教师门前...而现在的时间,可能是...哇~~已经~~这个时间了...小编感觉再不讲课就要真的被杀掉惹~~~

wKioL1m83pjRGOPXAAGvzmVQcNk336.jpg

(  ↑   插     画    出自《偷星九月天》  

老师:“我教过这么多学生,水贴的很多,但像你这么水的,你还是第一个”


嘛~~~不要在意这些细节啦~~小编只是讲的比较细而已~~才没有水贴~~


好啦~~小编这就开始这一章的内容吧~~

上一章,小编详细的给大家讲了 history命令历史,以及命令历史对应的配置文件 ~/.bash_history,和命令历史中的环境变量: HISTSIZE,HISTFILE,HISTFILESIZE,HISTTIMEFORMAT,以及 HISTCONTROL :其取值还有:ignoredupsignorespaceignorebotherasedups。而这些变量的用法,小编就不做过多的介绍了~因为~~上一章已经简单介绍过啦~~


那么,命令历史大家掌握后,如何来调用这些命令历史呢?小编就给大家介绍一下:

  使用上一次使用过的命令,有四种方法:

    1、重复上一条命令,可按键盘上方向键的 ↑ 键,然后回车即可。(小编先在终端输入 ls 命令用作测试。)

wKiom1m85cuySXINAAAPzus8XKs851.png

输入完命令后,想再次输入相同的指令,按 ↑ 方向键,然后回车。连续按 ↑ 键,命令会一直向上调用:上一个,上上一个,上上上一个...等~~


    2、输入 !! 并回车即可~

wKiom1m85mqgYfnuAAARptvwNMo850.png


    3、输入 !-1 并回车~(其实这个,并不只是调用上一条命令,该命令调用的最近一次使用的第几条命令由后面的数字决定)

wKioL1m85vCzVmCEAAAZ-N5--v0911.png

输入 !-1 会调用上一条命令,输入 !-2 则会调用上上一条命令,以此类推~~


   4、按 ctrl+p 并回车(同样,连续按 p 会一直调用下去,意思就是:按两次 p 命令行会跳出上上一条命令)

wKiom1m86BjRSK-DAAAPUdbK0aM606.png


当然,调用命令历史的方法还有多种:

!:0 :执行前一条命令(去除参数)

什么是参数,小编在最开始说命令的基本格式的时候就已经告诉大家了,小编就不做过多的介绍啦~对于这个,小编还用 ls 命令来做实验,这次加上参数

wKioL1m86TeACJELAAAU6LVs_To139.png

小编第一次是要列出/app目录下的内容,而执行了 !:0 /app这个参数就被去掉了,还有,小编可没有敲回车~~这条命令的作用是 执行  执行  执行~~


Ctrl+n:显示当前历史中的下一条命令,但不执行~

这个命令,小编就不做演示啦~~因为...太没用了,这个命令是翻命令历史的时候,突然发现...要调用的命令翻过了,然后可以用这个命令向下翻。


Ctrl+j:执行当前命令

这个....小编也不演示了....要执行命令...我们不是有 回车键 吗....


!n:执行history历史中,输出对应序号n的命令.(这个...意思就是...执行命令历史中,执行过的命令开头第一个字母是 n 的命令,所有,这个 n 字母可以变的。比如,小编执行一个 pwd 命令,然后把 n 变成 p)

wKiom1m87QbQQw7wAAAM0klO2xA203.png


!-n:执行history历史中倒数第n条命令(注意咯,这里的 n 可是一个数字)

wKioL1m87T-gFfJoAAAIrJ1hlFY867.png


!string(字符):执行以指定字符开头的命令(其实这个调用方式就是小编刚才在讲 !n 的时候所说的)

wKiom1m87onCgJRaAAAJdUgDm90425.png


!?string:重复前一个包含string的命令

wKioL1m87t6BLQw4AAAPO2DKsKw147.png


!string:p :仅打印命令历史,但不执行

wKiom1m87_yw5LiyAAAHrRFCBps318.png

所谓打印,就是在终端上显示一下~~~


!$:p :打印输出!$(上一条命令的最后一个参数)的内容

wKioL1m88G6BXV0NAAANw44W0rk729.png

算了,小编还是在提醒一下什么是参数吧~~简单来说,就是除去 命令 和 命令选项的部分全是参数


!*:p :打印输出!*(上一条命令的所有参数)的内容

这个小编就不做演示了,与上面用法相同,只不过上一条命令有多个参数的时候,!* 将显示全部的参数,而 !$ 只显示最后一个参数


哇~~这么一看,调用命令历史的用法还挺多的嘛,现在小编才讲了一半~~算啦~~其他的都用不到,小编就把一些可能会用到的讲一下把~~~


COMMAND !^:用上一条命令的第一个参数作为本次输入命令的参数

wKioL1m88wORpCTfAAAPUq5JPr8235.png


COMMAND !$:用上一条命令的最后一个参数作为本次输入命令的参数

小编就不做示例啦~~用法与上面相同哦~~~


COMMAND !*:用上一条命令的全部参数作为本次输入命令的参数


COMMAND !:n :用上一条命令的第 n 个参数作为本次输入命令的参数

(注意咯,这里的 n 是一个具体的数字,输入的是 1 则调用上一条命令的第一个参数,2 则是调用的第二个参数...)


COMMAND !n:^ :调用第n条命令的第一个参数(注意咯,这里 n 也是具体的数)


COMMAND !n:$ :调用第n条命令的最后一个参数


COMMAND !n:m :调用第n条命令的第m个参数


COMMAND !n:* :调用第n条命令的所有参数


呼~好累,命令历史的调用不只是这些,还有...剩下的不多惹~~不多实际用途不大,小编就不讲咯~感兴趣的同学可以自己研究~~


关于命令历史的调用,小编接下来就把最实用的介绍一下吧:

ctrl+r:搜索命令历史

wKioL1m89l6gSUgAAAAEQuFg-oM893.png

当按下 ctrl+r 时,命令行提示符将会变成图上面这个样子,当小编输入要查询的命令的关键字时:

wKioL1m89rSCgCNHAAAFkOz0_fI229.png

命令行会自动跳出匹配到关键字的命令,若是我们要查找的命令,按 tab 键可确认。若想退出搜索,则:

ctrl+g:从历史搜索模式退出


对于调用上一条命令的最后一个参数,我们使用最多的还是:

Esc . :调用上一条命令的最后一个参数(按 Esc 键松开后再按 . )

这个...小编做示例表现不出效果~索性就不做啦~~留给同学们自己练习吧~~


好啦~~对于命令历史的调用,小编就介绍这么多吧~~其实大部分都没用哦~~~想调用命令历史的话,直接 按 方向键 的 上下箭头 即可~~但是后面这几个是有点用的~~~

wKioL1m9Bu7yf1XeAABxNpC-PLQ593.jpg

...你...你们要干嘛....别...别过来....小编..小编这就讲一些有用的....哇~~~路人甲~快救我..

(成功被路人甲救出来的小编....)

呼~~果然还是路人甲最好了~~~

(脸红)路人甲:“才不是因为我想救你,我只是觉得没人给同学们讲课了而已”

wKioL1m9CXnxqAflAANrKWWCCCk587.gif

(↑小编用意味深长的眼神看着路人甲):“傲娇~”

路人甲:“吵死啦!再不讲一些有用的,下次就不救你了”

好好好~~那么,小编就来讲一些能用到的~~


咳咳...介于路人甲想继续听小编讲课~~本来要完结的本章就追加一些内容吧~~这可是福利哦~~(吐槽:胡说!之前的博客都写4000字以上,现在才3000字,越来越偷懒了,还颜厚无耻的说是福利!)


嘛~~不要在意这些细节~~那么,接下来,小编就讲一下bash中的一些快捷键:

ctrl+l:清屏,或者clear

当我们命令的执行结果显示在终端上,过多时,我们可以用这些命令来清屏,可是经常使用的哦~~

wKiom1m9DNyCkswHAAAg7t15XUA687.png

wKiom1m9DTfy5QSrAAAElKSvbsU813.png

回车之后,将会看到屏幕中干干净净的~~~


ctrl+s:阻止屏幕输出,锁定

当我们使用了这个快捷键之后,之后在命令行进行的任何操作都不会在终端显示,但实际上,我们输入的内容以及执行。比如,小编现在使用这个快捷键,然后再操作:

wKiom1m9Ed3jWF17AAAEgKiMLn4252.png

↑使用快捷键后,小编对着键盘一顿乱打~~然后屏幕上什么都没有发生~~

↓解除锁定后

wKioL1m9EgTynMcUAAAFdG_6NE0570.png

这个用处,当我们工作时,防止别人偷学我们的技术~~可以将屏幕锁定然后...盲打~~那如何解除锁定呢?


ctrl+q:允许屏幕输出

使用完 ctrl+s 快捷键,向让终端恢复显示,再使用这个快捷键就好啦~~


ctrl+c:终止命令

这个快捷键是经常使用的,对于一些正在执行的命令,不想让它继续执行,我们就用这个快捷键来终止。


ctrl+z:挂起命令

所谓挂起,就是将正在执行的命令暂停,但不终止;暂停也只是在后台暂停运行,不会影响我们的其他操作。就向同学们用 windows 下载软件一样,将下载程序放在后台下载,想看进度时,双击图标将下载器调到前台。

那么,如何调到前台:

fg:将后台命令调到前台并运行

对于这个,小编就不再介绍啦~~毕竟是小编教出来的嘛~~可能能懂的~~


下面小编介绍的快捷键,小编这边给同学们做示例显示不出效果~~就由同学们自己下去练习吧~~才不是因为小编偷懒!


ctrl+a:光标移动到命令行的行首

ctrl+e:光标移动到命令号的行尾

ctrl+f:光标向右移动一个字符(按方向键的 → 键即可)

ctrl+b:光标向左移动一个字符(按方向键的 ← 键即可)

alt+f:光标向右移动一个单词尾(这个单词尾意思就是移动到下一个单词的尾部)

alt+b:光标向左移动一个单词首(移动到上一个单词的首部,但是,若当前光标在一个单词的尾部时,用这个快捷键依然会跳到当前单词的首部)

ctrl+xx:光标在当前位置和命令行行首之前切换

ctrl+u:从光标处删除至命令行首(将光标所处的位置到命令行行首中间的字符全部删除)

ctrl+k:从光标处删除至命令行尾(将光标所处的位置到命令行行尾中间的字符全部删除)

alt+r:删除当前整行

ctrl+w:从光标处向左删除至单词首

alt+d:从光标处向右删除至单词尾

ctrl+d:删除光标处的一个字符

ctrl+h:删除光标前的一个字符

ctrl+y:将删除的字符粘贴至光标后(前面的所有删除操作,都可以理解为剪切,可以用这个快捷键来粘贴)

alt+c:将光标所在处的字母改为大写,同时向右移动一位

alt+u:从光标处开始到单词的尾部的字符改为大写

alt+l:从光标处开始到单词的尾部的字符改为小写


好啦~~bash最基础的快捷键就介绍到这里啦~~

另外~!(敲黑板)注意咯~ Alt 组合的快捷键经常和其他软件冲突,会造成无法使用的现象~~可以设置其他软件上的快捷键来解决。


呼~~终于讲完了~~小编眼睛好痛~~小编要睡觉咯~休息一下(吐槽:你不是刚睡醒吗!)

wKioL1m9HLrCzA3rAAAJbKNiTg4765.jpg


                                      The END