• 命令行常用工具的替代品


    程序员离不开命令行,许多经典命令是每天必用的,比如lscd

    虽然它们很好用,但是由于历史原因,往往也有一些缺点,比如用法不符合直觉、难以配置,有些速度也不快。

    这些年,它们的替代品开始出现,而且越来越多,大家开始尝试使用现代语言,重新实现这些经典命令。本文总结一下这些替代品,其中有些真的很不错,值得你在自己的计算机上安装。

    一、exa

    exa 是ls命令的替代品,可以彩色输出目录内容,更容易辨识。

    
    $ exa --long --git
    

    上面命令中,参数--git表示输出文件的 Git 状态。

    • N:新文件
    • M:文件有变动
    • I:该文件被忽略

    除了平铺显示,exa还支持目录的树状显示。

    
    $ exa --tree --level=2
    

    exa本身是一个二进制文件,不需要安装,下载后直接使用,速度也相当快。

    同类软件还有 lsd,这里就不详细介绍了。

    二、broot

    broot 可以看作增强版的ls替代品,实际是一个终端里面的文件管理器。

    使用时,可以先列出当前目录的文件信息。

    
    $ br -sdph
    

    上面命令中,参数含义如下。

    • -s:显示文件体积
    • -d:显示文件时间
    • -p:显示文件权限
    • -h:显示隐藏文件。

    可以看到,它默认以树状结构,展开子目录。

    然后,在这个界面中,可以完成各种文件操作。

    • 搜索:输入搜索词
    • 复制:输入:cp <复制后的文件名>
    • 删除:输入:rm
    • 改名:输入:mv <新文件名>
    • 退出:输入:q

    甚至还可以预览文件:通过上下箭头选中文件,然后按下右箭头,就会打开外部关联程序;按下ctrl + →,则在当前窗口预览文件。

    三、zoxide

    zoxide 是 cd 命令的替代品,用来切换目录。

    它的用法与cd完全一样,进入目录/tmp就是下面的命令。

    
    $ z /tmp
    

    它的特色是部分匹配,可以只写路径的一部分,它自动找到最经常使用的匹配项。

    比如,你经常用它进入目录/tmp,那么以后只要输入z t,它就会自动将t匹配为/tmp,从而进入该目录。

    
    $ z t
    

    四、bat,fx,hexyl

    bat 是cat命令的替代品,输出文本文件的内容,并且带有cat所没有的代码高亮和行号。

    
    $ bat README.md
    

    如果浏览的是 JSON 文件,还可以使用 fx 或者 jq

    
    $ fx data.json
    

    如果浏览的是二进制文件,使用 hexyl

    
    $ hexyl example.jpg
    

    五、diff-so-fancy

    diff-so-fancy 是 git diff 的替代品,使得命令行的 diff 操作具有类似 GitHub 的页面效果。

    安装后,参考官方文档,将它配置为 Git 的默认 diff 工具就可以了。以后每次执行git diff,就会输出它的执行结果。

    同类项目还有 delta

    六、fd,fzf

    fd 是find命令的替代品,用于文件名搜索。

    它的用法比find更符合直觉。下面例子是搜索目录/tmp里面(包括子目录),所有含有dog的文件名。

    
    # find 的写法
    $ find /tmp -iname '*dog*'
    
    # fd 的写法
    $ fd dog /tmp
    

    上面两条命令一比较,就会发现fd简单很多。

    fd内部采用正则搜索,如果想使用模糊搜索,比如找出包含三个字符dog的文件名,则需要另外安装fzf

    
    $ find . -type f | fzf
    

    执行上面命令以后,再输入dog就可以了。

    七、ripgrep

    ripgrep 是grep命令的替代品,用来搜索文件内容。

    它跟grep的用法类似。下面例子是搜索当前目录里面,所有内容包含字符串foo的 Markdown 文件。

    
    # grep 的写法
    $ grep foo *.md
    
    # ripgrep 的写法
    $ rg foo *.md
    

    ripgrep的主要优势在于,默认带有行号和搜索词高亮,速度也更快。

    同类项目还有 ag

    八、McFly

    McFly 是ctrl-r的替代品,用来搜索 Shell 的操作历史。

    安装以后,只要按下ctrl-r,就会出现一个更好用的搜索界面。

    九、choose

    choose 是cut命令的替代品,用来选中指定的栏位。

    它的优势主要是语法更简单,比如输出文件的第一列。

    
    # cut 的写法
    $ cat data.txt | cut -d " " -f 1
    # or
    $ cut -d " " -f 1 data.txt
    
    # choose 的写法
    $ cat data.txt | choose 0
    # or
    $ choose 0 -i data.txt
    

    更多例子看下图。

    十、duf,ncdu

    duf 是df命令的替代品,用来显示磁盘占用情况。

    
    $ duf
    

    它是彩色的表格输出,更容易查看。

    ncdu 是du命令的替代品,用来显示每个目录占用的大小。

    
    $ ncdu
    

    你还可以上下移动,选中指定目录查看。

    同类项目还有 dust

    十一、htop,procs

    htop 是 top命令的替代品,用来显示系统的实时状态。它带有高亮输出,并可以切换不同的选项卡。

    
    $ htop
    

    同类项目还有 glancesgtopbottom

    procs 是ps命令的替代品,用来高亮显示进程信息。

    
    $ procs
    

    十二、httpie,dog

    httpie 是 curl 的替代品,用来发出 HTTP 请求。

    它的特点是语法更简单,并且服务器的返回内容会格式化高亮显示。

    下面是发出 PUT 请求的例子。

    
    # curl 的写法
    $ curl -X PUT -d hello=world example.com
    
    # httpie 的写法
    $ http PUT example.com hello=world 
    

    同类项目还有 curliexh

    dog 是dig命令的替代品,用来发出 DNS 查询。它的用法比dig简单多了。

    
    # 默认查询 A 记录
    $ dog example.net
    
    # 查询多个记录
    $ dog example.net A NS MX
    

    (完)

  • 相关阅读:
    阿里云自定义镜像保存规则
    linux常用命令
    SQL
    redis集群
    AOP中的通知
    mysql8.0无法给用户授权或提示You are not allowed to create a user with GRANT的问题
    ---Linux命令
    feign
    spring clud / dubbo
    Ajax嵌套问题
  • 原文地址:https://www.cnblogs.com/snake23/p/15954982.html
Copyright © 2020-2023  润新知