前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >linux/unix 上那些炫酷的命令行工具(一)

linux/unix 上那些炫酷的命令行工具(一)

作者头像
kunge
发布于 2019-12-22 07:24:06
发布于 2019-12-22 07:24:06
1.4K00
代码可运行
举报
文章被收录于专栏:码海码海
运行总次数:0
代码可运行

工欲善其事,必先利其器,作为一名手艺人, 我们应该利用好工具,以便将我们的时间用在更有效率的事情上,类 Linux 上很多原生的如 catgrep 等命令给我们带来了很多便利,但其实都或多或少有可以改进的地方,市面上其实出现了大量开发者开发的对这些原生做了很大改进的命令,比原生的命令更好用,大部分可以说是秒杀原生命令了,能让你事半功倍,强烈推荐

如何执行原生的命令

个人觉得即将介绍的命令很好用,完全可以替代原生命令,也设置了大量的 alias 语句来替代原生命令,不过每个人的习惯不一样,如果你觉得即将介绍的命令用得不习惯 ,想用回原生的命令也可以,按类似以下的操作即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\cat # 忽略所有 alias 为 cat 的命令 - explanation: https://stackoverflow.com/a/16506263/22617
# 或
command cat # 忽略所有函数和 aliases

废话不说,让我们看看哪此命令足以替代原生命令吧

bat > cat

原生的 cat 命令只是简单地打印某个文件的内容,但 bat 命令在此基础上还可以做到以下功能

  • 自动识别文件扩展名并进行高亮显示
  • 显示行号
  • 文件内容过长时自动分页
  • 如果文件内容过长,还可以用 / 来搜索相关的内容

功能演示如下

推荐用 alias 命令将 cat 设置成 bat

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alias cat='bat'

? 点击这里可安装 bat

fzf > ctrl+r

什么是 fzf 呢

It's an interactive Unix filter for command-line that can be used with any list; files, command history, processes, hostnames, bookmarks, git commits, etc.

它是一款使用 GO 语言编写的交互式的 Unix 命令行工具。可以用来查找任何列表内容、文件、历史命令、 本机绑定的host、 进程、 Git 分支、进程等。所有的命令行工具可以生成列表输出的都可以再通过管道 pipe 到 fzf 上进行搜索和查找

我们简单介绍一下它的查找历史命令的功能,查看历史输入的终端命令我们一般用 ctrl+r,在这方面,fzf 可以说是秒杀 ctrl+r了,ctrl+r 只能呼出最近一条包含输入字符串的历史命令,而且只能做精确匹配,而安装了 fzf 后,当呼出 ctrl+r 会显示所有包含输入字符串的命令(默认匹配最近一条符合搜索条件的命令),按上下箭头即可自由选择你想要的命令,而且支持模糊搜索,这个特性针对那些常常只是隐约记得历史命令的人特别有用,比如如果我隐约记得有个命令和 gitfinance 有关,我可以这么搜

当然如果你不需要模糊搜索也可以关掉

fzf 的功能远不止于此,与其他命令结合让你的效率飞速提升,自动补全功能完全秒杀默认的 tab 功能,再安装一个具有预览功能的 highlight插件,好用到爆炸,不信看以下功能展示

? 点击这里可安装 fzf

htop > top

top 命令可以说是查看进程与系统运行的利器了,不过 htop 不仅具备 top 的所有功能,还有一些 top 不具备但很实用的功能,简单列举几个

  • 显示每个 CPU 的负载情况,如果 CPU 是四核八线程的,会显示每个线程的负载情况,而且不同的指标用颜色区分开来,更直观,对用户更友好
  • 交互式
    1. 可以左右滑动显示此进程的所有信息与对应的 COMMAND,也可以上下滑动显示所有的进程信息,而 top 只能显示最消耗资源的进程列表
    2. 可以以树状图的方式查看进程对应的多个子线程或进程占用的文件
    1. 方便追踪进程的运行情况,如果我们要观察某个进程的运行情况,使用 top 没法定位某个进程,进程在屏幕上的显示会忽上忽下,每次 top 刷新我们都必须去用肉眼追踪我们正在观察的进程,很不方便(所有进程的颜色都一样),而用 htop 就简单了,我们可以按下空格键标记我们想要的进程,被标记的进程会高亮展示,同时按 F 可以保证被标记的进程出现在屏幕里
    2. 用 htop 可以直接给多个进程发信号,这样能很方便地实现像 kill 进程之类的操作,一般我们要 kill 掉某个进程要经过两个步骤: 1、输入 top 获得我们想要 kill 线程的 pid. 2、退出 top 输入 kill PID,由于 top 命令不能执行搜索功能,光是找 PID 这一步就够呛, 而用 htop 可以很轻易地做到,输入 htop 后,按 F3 输入进程名称进行查找,然后换空格选中此进程(也可以选中多个进程),再换 F9 选中左边的 SIGKILL 即可将选中的进程 kill 掉,以 kill 掉 htop 进程为例,操作如下

    可以看到效率上比 top 不知高了多少倍

我们可以设置 top 的 alias 以便利用 htop 的强大功能

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alias top="sudo htop" # alias top and fix high sierra bug

? 点击这里可安装 htop

diff-so-fancy > diff

默认的 git diff 显示不太友好,也不支持定制配色方案,而且仅能支持行级别的 diff, diff-so-fancy 默认的配色方案不仅是 human readable,而且支持字符级别的 diff,所以推荐 git diffdiff-so-fancy,默认的 diff 和 diff-so-fancy 对比如下

? 点击这里可安装配置 diff-so-fancy

fd > find

默认的 find 命令不太好用,查找命令比较复杂冗余,考虑以下三种情形

  1. 查找所有扩展名为 md 的后缀
  2. 查找所有文件名包含 cli 的文件
  3. 查找所有包含 cli 的文件中的单词数

我们来看下分别用 find 和 fd 的对比

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// use find
find . -type f -name "*.md"
find . -name '*cli*'
find ./ -type f -name "*php*" -exec wc -w {} +

// use fd
fd -e md 
fd md # all with .md extension
fd cli -x wc -w 

可以看到,用 fd 命令极简,更关键的是在文件多的情况下 fd 还有另一大优势:性能!fd 的搜索效率可以达到 find 的 20 倍以上? 点击这里可安装配置 fd

ncdu > du

ncdu 可以理解为是交互式的 du。我们一般用 du 来查找某个目录占用了多少磁盘空间,但如果我们需要查看这个目录下的子目录/文件占用了多少空间并对其进行排序 du 就无能为力了,而用 ncdu 的话我们只要在目录输入此命令即可显示按空间大小降序排序的所有文件/目录

而且比较方便的一点是 ncdu 是交互式的,如果我们还想看子目录里的文件/目录大小,只需要按上下箭头选中相关目录按回车即可查看子目录详情的空间占用情况,速度极快!另外也可删除文件,可以在选中子目录时执行相当于 cd 到此子目录的命令(此时会退出 ncdu , 并 cd 到此子目录)。还有一个比较骚的功能是点击 cmd + 选中的目录/文件可以打开当前目录/文件 我们可以为 du 设置 ncdu 的 alias,配上主题优雅很多

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// --color 设置主题,--rr 只读模式,防止执行 ncdu 时删除文件以及 cd 到某个子目录 
alias du="ncdu --color dark -rr -x --exclude .git --exclude node_modules"

效果如下

? 点击这里可安装配置 ncdu

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码海 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
5 款新型 Linux 命令行工具,实用!
点击关注公众号,Java干货及时送达 使用新的替代工具来改进旧的命令行工具。 在Linux/Unix系统的日常使用中,我们需要使用很多命令行工具来完成工作,以及理解和管理我们的系统,例如使用du来监视磁盘利用率、top来显示系统资源。有些工具已经有很长的历史了。例如,top于1984年首次发布,而du的首次问世可追溯至1971年。 多年来,这些工具已经过现代化的改造,并移植到了不同的系统中,但总的来说,它们仍然保留了最初的想法、外观和感觉。 这些工具都非常优秀,对于许多系统管理员的工作流程来说都是必不可少
Java技术栈
2022/03/03
1.1K0
22款终端生产力工具,效率飞起!
程序员在搞开发时,终端CLI工具的使用必不可少,往往都是生产力工具,所以今天在此给大家推荐一下比较好用的终端工具。先给大家列个推荐清单,如下图。
java思维导图
2020/10/29
1.3K0
25 个 Linux 下最炫酷又强大的命令行神器,你用过其中哪几个呢?
众所周知,我们在 Linux 下大多数时候是使用命令行来处理任务的。这样不但操作起来效率比较高,而且界面也比较炫酷。下面,我们就给大家推荐一些不但炫酷又好用的 Linux 命令行神器。
iMike
2019/09/10
2.8K1
25 个 Linux 下最炫酷又强大的命令行神器,你用过其中哪几个呢?
22款好用的CLI工具
作者根据多年的终端使用经验,详细介绍了一些实用的 CLI 工具,希望它们能帮读者提高生产力。
深度学习与Python
2020/08/07
2.3K0
22款好用的CLI工具
5个基本Linux命令行工具的现代化替代品
在日常使用 Linux/Unix 系统时,我们会使用许多命令行工具来完成我们的工作,并理解和管理我们的系统,像 du 用于监视磁盘利用率,top 用于显示系统资源。其中一些工具已经存在很长时间了。例如,top 于 1984 年首次发布,而 du 的首次发布要追溯到 1971 年。
用户2781897
2020/07/22
1.2K0
5个基本Linux命令行工具的现代化替代品
14 款命令行常用工具的替代品!
在 Linux 操作系统下,ls (list) 可以说是我们日常使用率较高的命令了,它主要用来显示目标列表,输出信息可以进行彩色加亮显示,以分区不同类型的文件。关于 ls[1] 的语法、选项、实例、扩展知识,这里就不详细介绍了。
杰哥的IT之旅
2022/03/31
2.2K0
14 款命令行常用工具的替代品!
Linux 环境下的替代工具
与传统的 Linux 包管理器(如 apt、yum)不同,Homebrew 的一大特点是它安装的软件包通常是用户级的(即不需要 root 权限)。这意味着你可以在没有管理员权限的环境下安装和管理软件,避免了与系统级包发生冲突的风险,也更容易管理版本和更新。
是山河呀
2025/01/26
1270
Linux命令行的艺术
熟练使用命令行是一种常常被忽视或被认为难以掌握的技能,但实际上,它可以提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时发现的一些关于命令行的使用的小技巧的摘要。有些小技巧是非常基础的,而另外一些则是相当复杂的甚至晦涩难懂的。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。 必读 涵盖范围: * 这篇文章对刚接触命令行的新手以及具有命令行使用经验的人都有用处。本文致力于做到覆盖面广(尽量包括一切重要的内容),具体(给出最常见的具体的例子)以及简
小小科
2018/05/03
7K0
10 款你不知道的 Linux 环境下的替代工具!
在 Linux 操作系统下,我们经常使用 cat 命令去连接多个文件并打印到标准输出,合成几个文件为一个目标文件,追加几个文件到目标文件中。
杰哥的IT之旅
2021/12/01
1.6K0
10 款你不知道的 Linux 环境下的替代工具!
一文了解十大 Linux 命令行工具!
作为一名程序员,Linux命令行是每天必用的工具。我整理了一些能够提高日常生产力的小工具。一些工具可以作为系统自带命令的替代品,另一些则提供操作系统没有的功能。希望能对大家有帮助。
昱良
2018/07/31
1.5K0
一文了解十大 Linux 命令行工具!
几个新一代命令行工具
新一代命令行工具的特点是语法简单,符合直觉。他们大多使用 rust 或者 go 编写。
爬虫技术学习
2023/03/06
4790
几个新一代命令行工具
蓝桥ROS机器人之命令行实践
参考网址: github.com/jlevy/the-art-of-command-line 直接选择简体中文实践即可。 github.com/jlevy/the-art-of-co
zhangrelay
2022/05/01
8600
蓝桥ROS机器人之命令行实践
5 款可替代 du 命令的工具!
上篇文章中,给大家介绍了《10 款你不知道的 Linux 环境下的替代工具!》主要包括:bat、duf、tldr、htop、glances、exa、fd、ag、axel、pydf 方面的内容及运用,后来我继续摸索,又发现一些很好的替代品并进行归纳。
杰哥的IT之旅
2021/12/09
1.4K0
5 款可替代 du 命令的工具!
推荐 18 个终端命令行工具,说实话我心动了
终端是程序员的必备工具之一,本文将介绍许多牛逼且实用的开源工具,本文仅对工具做基本介绍,不提供安装方法,因为这些工具的安装方法在项目的 github 首页上基本都会提供,在掘金上也能找到许多具体的使用教程。
猿天地
2021/07/30
1.2K0
每个Web开发者都该了解的12条命令行
在开发者的弹药箱里,命令行是最具生产力的工具之一。掌握它们可以给你的工作流程带来非常积极的影响。因为,许多日常任务都可以用一条命令然后按回车来解决。
葡萄城控件
2019/07/02
4430
每个Web开发者都该了解的12条命令行
10 款更先进的开源命令行工具
Linux 诞生于 1991 年,我们熟知的 ls、cd、ps 等命令也出生于那个年代。虽然它们都是 30 年前的产物,但是我们现在依旧每天都在用这些命令。
HelloGitHub
2022/09/26
9110
一篇文章学习 linux 命令[Github Star 3.8W+]
熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。
猿哥
2019/05/14
2.2K0
GitHub日收12000星,六个命令行工具引爆程序员圈!
我不知道我是怎么认识Broot的,但它很实用。当你打开一个小目录,并想要查看land的位置,那么tree功能可以优秀地完成这点。
浩说编程
2021/08/16
5470
GitHub日收12000星,六个命令行工具引爆程序员圈!
linux运维中的命令梳理(一)
在linux日常运维中,我们平时会用到很多常规的操作命令。 ------------------------------------------------------- 在修改文件后,执行下面操作进行代码提交到git: git add . git status #查看修改了哪些文件信息 git commit -m "edit message"
洗尽了浮华
2018/01/23
7.5K0
日拱一卒,麻省理工教你CS基础,那些酷炫无比的命令行工具
今天和大家继续聊聊麻省理工的missing semester,消失的学期,讲解那些不会在课上提及的工具和技术。
TechFlow-承志
2022/09/21
1.6K0
日拱一卒,麻省理工教你CS基础,那些酷炫无比的命令行工具
相关推荐
5 款新型 Linux 命令行工具,实用!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档