10 个让你在 UNIX 或 Linux 命令下效率倍增的基础技巧


图:Julia Evans的bash技巧

您是否曾经惊讶的看到有人在 UNIX 中工作的非常快,快速的发出命令并快速的完成任务?

是的,我曾见过几次,它总是激励我从那些超级明星开发人员那里学习。

在本文中,我分享了一些我在 Linux 中快速、高效地工作所遵循的 UNIX 命令实践。

我就职于金融服务行业,主要从事电子交易、衍生品、外汇、大宗商品等资产类别的线上股票期货交易应用的开发与支持。

我们所有的服务都运行在 Linux 服务器上,所以在 Linux 终端上高效、快速地工作对我们来说非常重要,这就是我在 Linux 中学习这些提高效率技巧的原因。

这篇文章与我之前写的关于 UNIX 中最基本的十个网络命令 以及 如何在 Linux 中使用 nslookup 命令 的文章类似。

如果你没有读过这两篇文章,你可以看看,它们对你来说或许有用。在本篇文章中,我将分享我在 UNIX 中快速和有效的工作的经验给大家。

10 个 UNIX 和 Linux 生产力的小技巧

如果你的服务器也是使用的 Linux,并且日复一日的工作中涉及 UNIX 命令 的大量搜索和操作,那么这些技巧将节省大量时间。

下面技巧是我在 UNIX 终端的经验,我总结为 10 个在 UNIX 下快速工作的技巧

为什么我要分享这个?

好吧,我期待着从你们那里获得更多的技巧来增强我的武器库,所以请分享您在 UNIX上的 工作方式,如何使用 Linux 和 Fedora 等其他(Ubuntu,CentOS 等)UNIX操作系统提供的大多数强大的Linux命令和shell实用程序。

请通过发表评论来分享您的经验,以使这篇文章有用并充分利用,并从彼此的经验中受益。

无论如何,让我们从这些有用的技巧开始:

1) 使用 ! 来执行最后一一条命令

这个技巧为我节省了平均 30% 的时间. 它可以在几分之一秒内多次触发同一条 UNIX 命令。

在知道这个技巧之前,我一直都是使用向上和向下箭头来查找命令,然后再执行它们,这浪费了我大量的时间, 但是,在我知道了这个技巧后,我仅仅需要记住执行的命令名称,例如 !ls 就可以重新执行你最后执行的 ls -lrt!vim 可以让你打开最后一个文件而无需键入完整的命令。

你可以在你的终端中体验下这个技巧,它绝对可以为你节省时间,并且在 bash shell 以外的 shell (例如 csh 或 ksh) 上也很有用,因为这些 shell 中,上下箭头通常不会为您提供以前的命令。

例如,在执行完 ls -l stocks.txt 命令之后,您可以通过 vi !$ 来使用 vim 编辑器打开 stocks.txt 文件。

2) 使用 !! 来执行最后一条命令

这是前一个技巧的扩展,用与执行最后执行的命令。因为它只涉及两个按键,对于同一个键,它的速度快的惊人。

对于向上和向下箭头并不会我们提供之前命令的 shell (例如 k shell 和 c shell) 这个命令也是可以正常运行的。 如果您经常出于调试目的而停止或启动服务器或Java应用程序,这个命令是非常有用的。

顺便说一下,如果您还不熟悉bash shell,我建议您看看bash shell脚本:初学者速成课程,它将教你从命令行到shell脚本的bash shell。

对于任何想成为Linux高级用户的人来说,这是一门非常有用的课程。

3) 使用 CTRL + R 重复上一个匹配命令

如果您还记得之前执行的命令,并且只是希望找到具有相同参数的命令并执行,那么这就是最好的选择。

这个是您需要记住的技巧。

只需要按下 CTRL + R 并输入您之前执行的命令中的某个单词即可找到该命令,然后按下 Enter 来执行这个命令。

如果您经常需要执行重复的命令,那么以上三个技巧将大量节省你的时间。

通过遵循上述三个技巧,我节省了将近50–60%的时间。 让我知道它如何对你们有用。

4) 使用历史命令工具获取高频使用的UNIX命令

这是我初学UNIX时获得的小窍门。这会是操作UNIX或编写 Shell 脚本 最有帮助的命令。

许多情况下,像启动,停止,检查日志,创建或发布都有确定的命令去完成这样的任务。

在系统运行或维护中,经常使用的命令,如果忘记了准确的命令格式。不用担心,命令行中执行 history | grep “keyword” 。将从运行机器中的历史命令中查到曾经运行过的准确的命令。

有一些环境变量,如: HISTSIZE 它定义了历史命令最大可保留历史命令有多少条命令。因此,历史命令可能足够多地保存了曾运行过的命令。

顺便提一句,若不熟悉基本的 Linux 命令,推荐通读学习 Shell Scripting: Discover How to Automate Command Line Tasks 使自己按它教的方式熟悉命令行的使用。

这会使你每当要完成手边的任务时,而想不出大概的命令时,节省你大量宝贵的上网查找的时间。

5) 在 grep 和 find 命令中使用正则表达式

grepfind 是类 UNIX 操作系统提供的最好的命令工具,几乎每个人都需要在系统中搜索。诸如:一个文件,一个目录,文件中某些固定的字词(例如:ERROR 或 Exception)等。如果能在 grepfind 命令中使用正则表达式,将会打很少的命令完成批量或复杂的任务。节省大量的输入时间。

举个例子,若知道 egrep 命令,就会使用 egrep “ERROR|Exception” *.xml 在xml文档中发现并找出包含 ERROR 或 Exception 字眼的行。而无需使用 grep 命令分别对这两个关键字词进行搜索,发送两次命令。

如果对 grep 和 find 命令有深入学习兴趣,可参见我之前的文章 10 examples of grep command10 examples of find commands in Linux.

在本文中已共享了许多关于这两个命令的有用的命令选项。这会对熟练使用这两个强大命令有许多帮助。

6) 使用管道替换输入运行2次命令

像上面所示简洁的小窍门,我猜地球人都知道。

若您例外,最好系统学习一些优秀的 Linux 课程,如: Linux 命令行基础 ,也许会发现,您还有其他的基础未知。

我个人的经验,参加一个优秀的课程系统学习进而提高的速度远胜于从只言片语的零碎里的探索。

另外,若您不介意从免费的资源中学习提高,可参见我的资源列表 5 个免费的 Linux 课程

7) 使用别名并在 Bash 配置文件或 bashrc 文件中定义自己使用的别名

不知您是否在其他人的机器上看到他(她)使用一些怪异的命令,而在您自己的机器上却无效。这些可能就是他(她)在自己的 .bashrc.profile 文件中定义的命令别名。

常常建立命令别名用于经常用到的命令。这些别名大多在 .bashrc 或 .profile 文件中定义。个人认为一些最重要的别名定义,例如:「l.」列出目录下所有隐藏文件。「ls」以最有用的选项列出目录下文件,相当于 ls -rltH

进一步参考 Linux 命令行接口 (CLI) 基础 。获知 Linux 系统开机登录过程及 .login, .profile.bashrc 文件在 Linux 和 bash shell 中的作用及用途。

顺便广告一下,您无需 Pluralsight 会员就可以看到本课程,Pluralsight 会员可是需要 $29/月 或 $299/年( 14% 优惠 )。我已有个年会员,建议所有的程序开发者也开一个。因为 Pluralsight 像 NetFlix 一样都是为软件程序员的振兴而奋斗的

它在最前沿的课题项目上有 5000+ 高质量的课程。由于我们程序员们每天都有新技术要学习进步, $299 这么便宜的一年投资,怎么想都要偷着乐了。

再顺便透露一句,它还提供 10天免费试用 。无任何付出,可以学习200分钟任何课程内容。当然,您现在就可以注册免费会员,开启免费试用之旅。

8) 使用 pushd, popd, cd -, ~ 在目录中驰骋

依俺的经验,在 UNIX shell命令行中,切换当前目录或操作深层目录文件这样的任务占据常规工作的50%的时间。尤其当您需要准确输入目标路径名时,您恰好又模糊时,将会使时间浪费得更多,工作效率大大降低。

所以,与其老实地输入冗长的路径名,不如想想如何有效利用以上的命令,如:pushdpopdcd -cd ~ 等。这些都是在 UNIX 中最好地在两个目录间切换的命令。

9) 最少敲键盘次数或增快敲键盘速度

键盘敲得少,工作完成快。

学会利用曾输入运行过的命令,在 bash 中,学会使用 Tab 键让 shell 自动完成输入命令的参数加快命令输入速度。

使用 Ctrl+R 组合键在历史命令里反向查找与您欲输入命令相近的命令,尤其是长命令。您只需修改很少的参数就可以完成命令的输入。

10) 不断学习新 Linux 命令

不断尝试学习更多的命令及深考其命令选项,使用得越熟练,越能极大减少在实际工作中思考的时间。可用 Ctrl+Z 组合键挂起任务,可用 fg 命令将挂起的任务调入前台,bg 命令调入后台。

在使用 vim 查看编辑多个文件或日志时,利用 Ctrl+Z 挂起当前文档,再用 fg %1fg %2 命令在多个 vim 编辑文档中切换。相比,每次使用 vim 打开、查看、关闭,然后再打开、查看、关闭,要提高至少10%的效率。

我希望这些 UNIX 命令技巧和实例,增强您在类 UNIX 系统上的工作体验及生产力,少量时间消耗,做到更多。提高工作效率。

若您欲寻找更多的资源,可进入 5天 Linux 的学习提升您的职业生涯 ,也可以跟随 Julia Evans 的 Twitter,她分享了许多的图表去帮助您有效记住基本 Linux 命令。

下面是她滑稽的一页去帮助记住有用的 bash 中的花招。

也许这张表令您见笑了。欢迎您分享您是如何在 UNIX 下工作的技巧或展示您的 UNIX 命令快速大招

拓展学习
写给程序员的5节免费 Linux 课程
Linux 命令行接口 (CLI) 基础
Linux 如何运行: 超级用户最应该知道的
Linux 的 curl 命令10个实例
Linux 的 lsof 命令10个实例
5天 Linux 的学习提升您的职业生涯
Shell 脚本: 发掘命令行自动运行并完成复杂任务的能力
Linux 管理员训练: 从菜鸟到高手

结语

十分感谢您耐心看完拙文。也许您会认为这么多不成系统的资料,无法切入。但当您在作业中实践过这些小技巧、小窍门,您会惊讶它们的高效。T

这是让您更多了解操作技巧的机会,并且还提供了许多有用的免费学习资源。也按照最佳原则筛选了一些收费资源,这些资源难以免费,但它们一定值回票价。

终会有一天,您拥有足够的知识去实践基本的 Linux 命令和运用那些技巧来提高您的作业效率。

祝您 Linux 旅程一路顺利! 那一定不是一段坦途,但跟随这些提示,您必会在成为高手的征途中节省大量的时间。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://medium.com/hackernoon/10-basic-t...

译文地址:https://learnku.com/server/t/35449

本帖已被设为精华帖!
本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!