欧博电脑版:太高效了!玩了这么久的Linux,居然不知道这7个终端快捷键!

admin 4个月前 (05-23) 科技 42 0

人人好,我是良许。

作为 Linux 用户,人人一定在 Linux 终端下敲过无数的下令。有的下令很短,好比:lscdpwd 之类,这种下令人人毫无压力。然则,有些下令就对照长了,好比:

$ git push origin HEAD:refs/for/master

这个时刻,你要是敲错了哪怕是一个字母,是不是很溃逃?

以前我的作法是,若是敲错了下令,就把光标移动到错误的地方,再举行修改。信赖不仅是我,大部分的小伙伴都是这么干的吧。

下令对照短还好,万一下令很长,是不是很抓狂?

今天,良许就给人人先容 Bash 下 7 种可以提高下令输入的方式,万一输错了下令,可以高效纠正过来。

1. 获取下令最后的参数

!$

在 Bash 中,!$ 代表下令中的最后一个参数。我们来以下面的场景来说明这个符号的作用。如果我想把某个文件移动到另一个地方,但文件名写错了,好比:

$ mv /path/to/错误的文件 /some/other/place
mv: cannot stat '/path/to/错误的文件': No such file or directory

在这个情形下,我们会把光标移动到错误的文件名那里,然后将文件名修改准确。这种方式固然可以,但若何下令对照长,效率就会对照低。

在这个情形下,我们可以这样操作:

$ mv /path/to/对的文件 !$
mv /path/to/对的文件 /some/other/place

这样我们就不必再输入最后一个参数,若是这个参数很长,那效率的提高将是显而易见的。

2. 获取下令的第 n 个参数

!:n

我们经常会出现将下令的参数顺序放错的情形,好比:

$ tar -cvf afolder afolder.tar
tar: failed to open

这时刻通常情形下我们会把放错顺序的参数删掉,然后再输入准确的参数。这时刻若是参数很长的话,我估量你都有打爆屏幕的感动。

这时刻你可以这么操作:

$ !:0 !:1 !:3 !:2
tar -cvf afolder.tar afolder

完善解决问题!然则,那几个符号又是啥意思呢?

你仔细看的话,应该是能看出猫腻的。基于输错的谁人下令,!:0 实在就是 tar!:1 就是 -cvf!:2 就是 afold!:3 不用我说了吧?说白了,就是位置参数。

以是我们只要按位置参数把这几个元素重新排好顺序,就OK了,简朴吧?

PS: !: 示意的是最后一个位置元素。

3. 获取所有参数

!:1-$

一样平常来讲,一条下令的第一个元素就是详细的下令,后面跟的就是参数。若是我们要获取所有的参数,那就可以使用 !:1-$

好比说,我本想使用 tar 下令,但写成了 zip :

$ zip -cvf afolder.tar afolder

这时刻,你可以这么操作:

$ tar !:1-$

固然,若是你不想获取所有参数的话,也可以使用 !:1-2 ,或者 !:3-9 来获取参数子集,固然条件是你要有足够多的参数。

4. 获取倒数第n条下令的参数

!-n:$

在 Linux 下我们会敲大量的下令,一样平常来讲 ! 代表的是最后一条下令,它与 !-1 是相当的。如果我们想获取倒数第 n 条下令的参数,可以使用 !-n:$

好比,我们移动文件的时刻若是提醒文件不存在,我们一样平常会用 ls 下令去看一眼对应的目录下有啥文件:

$ mv /path/to/wrongfile /some/other/place
mv: cannot stat '/path/to/wrongfile': No such file or directory
$ ls /path/to/
rightfile

这时刻,我们再使用 !$ 将获取到 /path/to/ 这个元素,也就是当前最后一条下令的最后一个元素,然则我们需要的是倒数第二条下令的元素,要怎么办呢?

我们可以使用 !-2:$

$ mv /path/to/rightfile !-2:$
mv /path/to/rightfile /some/other/place

以是我们在下令切来切去的时刻,又需要之前的元素,就可以使用这个快捷键了。

2020 精选 阿里/腾讯等一线大厂 面试、简历、进阶、电子书 民众号「良许Linux」后台回复「资料」免费获取

5. 获取文件对应的目录

!$:h

如果我们想打包一个文件,然后提醒谁人文件不存在:

$ tar -cvf system.tar /etc/afile
 tar: /etc/afile: Cannot stat: No such file or directory
 tar: Error exit delayed from previous errors.

这个时刻,我们通常的作法是,进到 /etc 目录,然后看下那里面有啥文件。这样固然可以,但若是路径名很长的话,那你可能又想戳破屏幕了。

我们可以使用 !$:h 来获取最后一个参数对应的路径。现在最后一个参数是 /etc/afile ,afile 所对应的路径就是 /etc/ 。我们可以使用 !$:h 来获取最后一个参数对应的路径:

$ cd !$:h
cd /etc

6. 获取当前行第1个元素

!#:1

通常情形下,我们重命名一个文件,一样平常是这么写的:

$ mv /path/to/some/file /path/to/some/file.bak

这两个参数极其相似,只是后面一个加了个 .bak ,而我们就需要写两遍,太浪费时间了!我们可以使用 !#:1 来获取当前行的第一个参数,直接修改!

$ cp /path/to/some/file !#:1.bak
cp /path/to/some/file /path/to/some/file.bak

这样是不是可以少敲相当多的字母?

7. 替换下令中的字符串

!!:gs

这个操作就更厉害了,它可以直接替换之前下令的某些字符串。好比,我们有这样的一条下令:

$ echo my f key doef not work
my f key doef not work

若是我们想把 f 替换成 s ,可以这样操作:

$ !!:gs/f /s /
echo my s key does not work
my s key does not work

同样地,若是我们想把 does 改成 did ,可以这样:

$ !!:gs/does/did/
echo my s key did not work
my s key did not work

通过这种方式,就可以把下令中的关键词改成自己想要的内容。

小结

本文先容了 7 个可以提高下令输入效率的快捷键,熟练使用它们的话会到达事半功倍的效果。这几个方式还对照零星,若是你把他们放在一起的,一定还会发挥出更壮大的效果。

看完的都是真爱,点个赞再走呗?您的「三连」就是良许连续创作的最大动力!

  1. 关注原创民众号「良许Linux」,第一时间获取最新Linux干货!
  2. 民众号后台回复【资料】【面试】【简历】获取精选一线大厂面试、自我提升、简历等资料。
  3. 关注我的博客:lxlinux.net
,

欧博网址

www.cx11yj.cn欢迎进入欧博网址(Allbet Gaming),欧博网址开放会员注册、代理开户、电脑客户端下载、苹果安卓下载等业务。

|
Sunbet声明:该文看法仅代表作者自己,与本平台无关。转载请注明:欧博电脑版:太高效了!玩了这么久的Linux,居然不知道这7个终端快捷键!

网友评论

  • (*)

最新评论

标签列表

    文章归档

      站点信息

      • 文章总数:664
      • 页面总数:0
      • 分类总数:8
      • 标签总数:1145
      • 评论总数:250
      • 浏览总数:13424