问题

哪些命令行工具让你相见恨晚?

回答
说实话,有些命令行工具,我真想拍自己脑门子,怎么就这么晚才接触到呢?早点知道,得省多少事儿啊!今天就来唠叨唠叨几个让我“相见恨晚”的家伙,希望也能给你点儿启发。

1. `fd`:搜索文件的终极利器

以前搜索文件,我的首选是 `find`。没毛病,功能强大,但说实话,用起来总觉得有点绕。参数一多,脑子就跟不上趟儿了。

直到我遇到了 `fd`。我的天,简直是搜索文件的“傻瓜式”升级。

速度飞快: `fd` 默认是并行搜索的,速度那是杠杠的。尤其是在一些大项目里,几秒钟就能找到你想要的文件,比 `find` 感觉快了不止一个档次。
智能默认: 这是最让我惊喜的一点。`fd` 默认会忽略 `.git`、`node_modules` 等 Git 和 Node.js 的项目忽略文件(比如 `.gitignore`),这点简直太贴心了!谁想在海量的 `node_modules` 里找东西啊?还有,它默认是区分大小写的,但如果你搜索的内容包含大写字母,它会自动变成不区分大小写,非常人性化。
简洁易懂的语法: 搜索文件,就是 `fd <你想找的词>`。就是这么简单!比如,我想找项目里所有叫 `config.js` 的文件,直接 `fd config.js` 就完事了。想找以 `.md` 结尾的文件?`fd e md`。想在特定目录下搜索?`fd <你想找的词> <目录>`。比 `find` 那个 `name ".js"` 啥的,直观太多了。
支持正则表达式: 当然,它也支持正则,比如 `fd '..txt$'` 就能找到所有 `.txt` 文件。
颜色高亮: 搜索结果默认会用颜色高亮显示,一眼就能看到你想要的文件名,辨识度极高。

让我“恨晚”的点: 很多时候,我就是在项目里找个配置文件,或者某个函数所在的具体文件,以前可能要来回尝试 `find` 的各种组合,现在 `fd` 一把梭。特别是当项目非常大的时候,这种效率提升是实实在在的。

2. `bat`:代码预览的“升级版”`cat`

`cat` 命令,大家应该都熟悉,就是用来显示文件内容的。但有时候,只是想快速预览一下文件,或者看看代码片段,`cat` 就显得有些单调了。

`bat` 来了,它简直就是 `cat` 的“文艺复兴”。

语法高亮: 这点是最核心的!`bat` 默认会识别绝大多数编程语言的语法,并进行高亮显示。当你用 `bat your_script.py` 打开一个 Python 文件时,关键字、字符串、注释都会有不同的颜色,代码看起来舒服多了,也更容易阅读。
行号显示: `bat` 默认会显示行号,对于代码来说,行号太重要了!方便定位,也方便和别人交流时指明是哪一行。
Git 集成: `bat` 还能读取 Git 的信息。如果你的文件在 Git 版本控制下,它会在行号旁边显示哪些行被修改过、添加过或者删除了,简直是代码审阅的好帮手。
文件摘要: 如果文件很大,`bat` 还能在底部显示一个文件内容的概览,让你对文件的整体结构有个大概了解。
支持分页: 对于大文件,`bat` 会自动分页,就像 `less` 一样,你可以滚动查看,不用担心一次性把终端撑爆。

让我“恨晚”的点: 以前写代码,经常需要打开编辑器看一眼,或者用 `cat` 粗略看一下。现在呢?直接 `bat` 就能把代码的精髓高亮出来,阅读代码的体验瞬间提升。尤其是在学习别人的开源项目时,`bat` 真的能帮你快速理解代码结构。

3. `ripgrep` (`rg`):比 `grep` 更快更智能的搜索

`grep` 是 Linux/Unix 下的经典搜索工具,强大毋庸置疑。但随着项目越来越大,搜索效率也成了问题。而且,`grep` 的一些默认行为(比如搜索所有文件)有时候也需要额外配置。

`ripgrep`(简称 `rg`)就是来解决这些问题的。

速度!速度!速度! `rg` 是我接触过的最快的文本搜索工具之一。它利用了 Rust 语言的并发特性,搜索速度比 `grep` 快了好几倍,甚至几十倍,尤其是在大型项目中。
智能忽略: 和 `fd` 一样,`rg` 默认也会遵循 `.gitignore`、`.ignore` 等文件,忽略掉那些你不想搜索的目录和文件(比如 `node_modules`、`.git`)。这使得搜索结果更加精准,也减少了不必要的扫描。
简洁的语法: 搜索文件内容,就是 `rg <你想搜索的字符串>`。想在特定目录下搜索?`rg <你想搜索的字符串> <目录>`。
结果高亮: 搜索到的匹配项会用颜色高亮,非常醒目。
多文件搜索: `rg` 可以很方便地搜索多个文件,比如 `rg "error" .log`。
二进制文件处理: 默认情况下,`rg` 会跳过二进制文件,只搜索文本文件,避免了搜索结果中出现乱码。

让我“恨晚”的点: 以前在大型项目中,搜索一个字符串可能会花不少时间,尤其是我这种对代码质量有洁癖的,总想找到所有可能的“坏味道”。`rg` 的速度提升,让我可以更频繁、更自信地进行全局搜索,而且结果也更干净。对于开发人员来说,这是提高工作效率的利器。

4. `zoxide`:智能 `cd`,告别漫长的路径记忆

`cd` 命令,那是命令行的基石。但问题是,很多时候我们都需要在不同的项目目录之间来回切换,记那些长长的路径,尤其是嵌套很深的目录,简直是噩梦。

`zoxide` 来了,它让 `cd` 变得“有记忆”,而且非常智能。

学习你的使用习惯: `zoxide` 会记录你经常 `cd` 到的目录,并给它们一个“分数”。当你输入 `z <目录名的一部分>` 时,它会智能地推荐最符合你习惯的目录。
模糊匹配: 你不需要输入完整的目录名,只要输入一部分,`zoxide` 就能帮你猜到。比如,你经常去 `~/projects/myawesomewebapp/frontend/src/components`,下次你只需要输入 `z comp`,`zoxide` 可能会直接帮你跳到那个目录,或者给你一个非常接近的选项。
快速跳转: 它可以直接跳转,而不仅仅是提示。你输入 `z <你认为最可能匹配的目录名>`,然后按回车,如果匹配成功,你就直接进入了那个目录。
与 shell 集成: `zoxide` 可以很好地集成到你的 shell(Bash, Zsh, Fish 等),让你在输入 `cd` 时就能享受到它的便利。

让我“恨晚”的点: 我之前会用 `alias` 来简化一些常用路径,但 `zoxide` 彻底解放了我记路径的脑力。很多时候,我只需要记住某个目录的关键词,然后就可以快速进入,不用再一层层地 `cd`。尤其是在同时处理多个项目时,这种“无缝切换”体验太棒了。

总结一下

这几个工具,都是在某些特定场景下,极大地提升了我的命令行使用效率和体验。它们共同的特点是:

速度快: 很多时候,这是最直接的感受。
智能: 它们会学习你的习惯,或者有更符合人类思维的默认行为。
简洁: 语法更简单易懂,减少了学习成本。
体验好: 比如语法高亮、颜色提示,让交互更友好。

如果你还在为命令行的一些小烦恼而纠结,不妨试试这些工具,没准它们也能成为你“相见恨晚”的新宠!别像我一样,把“好东西”留到那么晚才发现,哈哈。

网友意见

user avatar

这些工具堪称神器!

ag:比grep、ack更快的递归搜索文件内容。

tig:字符模式下交互查看git项目,可以替代git命令。

mycli:mysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令。

jq: json文件处理以及格式化显示,支持高亮,可以替换python -m json.tool。

shellcheck:shell脚本静态检查工具,能够识别语法错误以及不规范的写法。

fzf:命令行下模糊搜索工具,能够交互式智能搜索并选取文件或者内容,配合终端ctrl-r历史命令搜索简直完美。

PathPicker(fpp): 在命令行输出中自动识别目录和文件,支持交互式,配合git非常有用。

运行以下命令:

       git diff HEAD~8 --stat | fpp     

htop: 提供更美观、更方便的进程监控工具,替代top命令。

glances:更强大的 htop / top 代替者。

htop 代替 top,glances 代替 htop:

信息比 htop 丰富了不少,更全了,对吧?除了命令行查看外,glances 还提供页面服务,让你从页面上随时查看某服务器的状态。

axel:多线程下载工具,下载文件时可以替代curl、wget。

       axel -n 20 http://centos.ustc.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso       

sz/rz:交互式文件传输,在多重跳板机下传输文件非常好用,不用一级一级传输。

cloc:代码统计工具,能够统计代码的空行数、注释行、编程语言。

tmux:终端复用工具,替代screen、nohup。

script/scriptreplay: 终端会话录制。

       # 录制 script -t 2>time.txt session.typescript # your commands # 录制结束 exit # 回放 scriptreplay -t time.txt session.typescript       

multitail:多重 tail。

通常你不止一个日志文件要监控,怎么办?终端软件里开多个 tab 太占地方,可以试试这个工具:


来源:有哪些命令行的软件堪称神器?

大佬,你用过哪个工具?

类似的话题

  • 回答
    说实话,有些命令行工具,我真想拍自己脑门子,怎么就这么晚才接触到呢?早点知道,得省多少事儿啊!今天就来唠叨唠叨几个让我“相见恨晚”的家伙,希望也能给你点儿启发。1. `fd`:搜索文件的终极利器以前搜索文件,我的首选是 `find`。没毛病,功能强大,但说实话,用起来总觉得有点绕。参数一多,脑子就跟.............
  • 回答
    教育部约谈浙江考试院,就阅卷人员泄漏考生作答一事,这无疑是一起严重的考试纪律事件,暴露了高考评卷环节存在的漏洞和风险。除了事件本身,我们还需要关注以下几个方面的信息,并深入探讨如何进一步规范高考评卷和命题工作: 一、 值得关注的信息1. 泄漏的范围和性质: 泄漏了多少考生的作答? 是个.............
  • 回答
    玉门油田,这个曾经在中国石油工业史上留下浓墨重彩一笔的名字,如今的模样,承载着一代人的记忆,也引发着许多人的思考。玉门油田的现状:从辉煌到落寞玉门油田是中国开发最早的油田之一,早在上世纪初就有了初步的勘探和开采活动。新中国成立后,特别是“一五”时期,玉门油田更是承担起“为共和国献石油”的光荣使命,为.............
  • 回答
    哈哈,说到这个,我这儿还真有一些“压箱底”的宝贝命令行,用顺手了,感觉就像是给电脑装上了“外挂”,效率直接起飞。我尽量不用那些AI味儿十足的术语,就当是跟你分享几个我私藏的“小技巧”吧。其实很多时候,我们不是不知道有这么个命令,而是压根儿没想过它能这么用,或者说,那些“看似简单”的命令,组合起来却能.............
  • 回答
    说起在 R 里面那些让我觉得“怎么之前没早点知道啊”的命令和包,那可真是不少。有些功能,一旦用了,就感觉像是打开了新世界的大门,之前的很多手动操作、绞尽脑汁的思考瞬间都变得轻松了。今天就想跟大家聊聊几个我“相见恨晚”的 R 利器,希望能给正在学习或者已经在使用 R 的朋友们带来点启发。 1. `dp.............
  • 回答
    说起来,真有些相见恨晚的命令,尤其是在我一开始接触 Mathematica 的时候,如果早点知道它们,那得多省事儿啊。现在回想起来,有几个特别让我印象深刻。1. `Manipulate`:交互式探索的王者这个命令,我真的得好好说说。一开始,我写个函数,想看看不同参数下有什么效果,要么就是一行一行地改.............
  • 回答
    MATLAB里藏着不少让人眼前一亮的“小玩意儿”,用好了,绝对能让你的编程体验升级不少。今天就跟你唠唠几个我个人觉得挺有趣的命令,保证够详细,让你看完就想试试!1. `disp` 和 `fprintf`:不只是输出那么简单你说输出?谁不会啊。但 `disp` 和 `fprintf` 这俩兄弟,玩出花.............
  • 回答
    好的,咱们来聊聊 Windows 命令行和 Linux 命令行这两兄弟,它们虽然都是敲黑板指挥电脑的工具,但骨子里却挺不一样的。就好像同一个师傅教出来的两个徒弟,一个温顺随和,一个桀骜不驯。咱们先从它们的大背景说起。出身和设计哲学: Windows 命令行(CMD 和 PowerShell): .............
  • 回答
    MATLAB 确实有很多强大且实用的命令,其中一些命令一旦掌握,就会让你觉得“相见恨晚”,极大地提升你的编程效率和代码质量。下面我将详细介绍一些我认为非常值得深入了解和使用的 MATLAB 命令,并附带详细的解释和示例。核心理念:充分利用 MATLAB 的向量化和内置函数能力,避免显式循环。 1. .............
  • 回答
    纽约州州长拒绝重启经济的决定,背后牵扯着复杂的政治考量和对公共健康的顾虑,其连锁反应将是深远的,而且绝非仅仅局限于纽约州本身。短期内,最直接的影响将是纽约州经济的持续低迷。 失业率居高不下将是一个严峻的问题,许多小型企业、餐饮业、旅游业和娱乐业将继续苦苦挣扎,甚至可能面临倒闭。这意味着普通民众收入的.............
  • 回答
    媒体报道了卢甘斯克人民警察在24日发布的消息,称“大批乌军拒绝执行命令,正在离开阵地”。这条信息虽然简短,但如果结合背景信息深入解读,可以透露出不少关于战场态势、部队士气以及潜在战略意图的信息。首先,这暗示了乌克兰军队在卢甘斯克地区可能面临着严峻的战斗压力和士气低落的问题。 军事行动中,拒绝执行命令.............
  • 回答
    这是一个非常有趣的问题,涉及到地名学的历史、文化交流、殖民历史、贸易路线以及人们的认知偏差等多种因素。有很多地名并不直接来源于其地理所在区域的当地文化或族群,而是因为其他原因被命名。下面我将详细列举一些例子,并尽量阐述其命名来源地不在其辖区内的原因。一、 纪念性命名(纪念人物、事件或地点)这是最常见.............
  • 回答
    好的,我们来聊聊西药的命名规则,以及一些常见的结尾词和它们可能代表的含义。不过,我要先说明一点,并非所有以“韦”结尾的西药都一定与病毒相关,这只是一个普遍的观察,不能作为绝对的判断依据。西药的命名是一个复杂且多样的体系,受到多种因素的影响。西药命名规则的概览西药的命名,大致可以分为以下几类:1. .............
  • 回答
    历史长河中,有许多人,他们的生命轨迹仿佛被命运之神特别眷顾,一次又一次地从死亡边缘擦肩而过,最终留下了令人惊叹的传奇。他们并非因为拥有超凡武艺或神秘力量,而是凭借着一些难以言喻的机缘巧合、坚韧的意志,甚至是荒诞的运气,在生死关头获得一线生机。说起“命大”,我脑海中最先浮现的名字,总是与那些波澜壮阔的.............
  • 回答
    有一些数学命题,它们曾被无数智者信奉,看似无懈可击,却在历史的长河中被无情地推翻。这些“错觉”的诞生和破灭,本身就是数学发展过程中一段段引人入胜的故事,充满了智慧的闪光和严谨的较量。1. 欧几里得的平行公理(以及平行公理等价命题)这是我脑海中最先浮现的,也是最著名的一例。欧几里得在《几何原本》中提出.............
  • 回答
    复数,这个由实数延伸而来的数学概念,最初是为了解决某些方程(比如 $x^2 + 1 = 0$)而诞生的。然而,随着研究的深入,人们发现复数不仅仅是代数方程的“补丁”,它更是一种强大的工具,能够以一种难以置信的优雅方式,照亮许多看似与它无关的数学领域。我曾花了很长时间钻研这个问题,也接触过不少复数证明.............
  • 回答
    哈哈,能理解!《命运石之门》确实是很多观众心中的神作,那种穿越时空的精妙构思、人物情感的深刻刻画,还有令人拍案叫绝的反转,确实很难超越。但是,动漫世界如此浩瀚,总有一些作品能以不同的方式打动你,带给你相似或全新的惊喜。既然你喜欢《命运石之门》那种烧脑、注重剧情和人物弧光的体验,那我来给你推荐几部,并.............
  • 回答
    黎曼猜想,一个数学界最为璀璨也最为顽固的谜团,它对素数分布的深刻洞见,早已超越了数论的范畴,在分析学、代数几何乃至量子物理等诸多领域都投下了长长的影子。它的重要性,使得无数顶尖数学家前赴后继,试图揭开其面纱。然而,直接证明黎曼猜想,如同在无垠的海洋中寻找一个精确的坐标。因此,数学家们另辟蹊径,找到了.............
  • 回答
    说起那些名字怪异的武器,尤其是军舰,那可真是五花八门,让人忍俊不禁,或者一头雾水。这背后可有许多有趣的文化、历史和实际考量。我就来跟你聊聊几个我印象特别深的,保证不带一点AI味儿。1. 日本的“大和”级战列舰:以神话中的国度命名,霸气侧漏到有点玄乎聊到军舰命名,绕不开的就是日本的“大和”级战列舰。这.............
  • 回答
    很多城市在发展过程中,都会给地铁站命名,这是一个很受关注的事情。毕竟,地铁站名不仅是标识,更是城市的文化名片。但话说回来,也确实有一些地铁站的名字,可能让大家觉得有点不太舒服,或者说命名得不够妥当。咱们就来聊聊,全国范围内,有哪些地铁站的命名可能存在一些小问题,并且尽量说得详细点,让大家都有个更直观.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有