当前位置: 首页 > 科技观察

你不知道的Linux环境中的十个替代工具!

时间:2023-03-16 17:04:33 科技观察

在Linux操作系统下,我们经常使用cat命令连接多个文件并打印到标准输出,将几个文件合成一个目标文件,将几个文件追加到目标文件。最近我在GitHub上发现了一个名为“Bat”的类似命令,它是cat命令的替代品,具有一些非常酷的功能,如语法高亮、Git集成和自动分页。在本文中,我将介绍如何在Linux中安装和使用bat命令。01.bat安装batArchLinuxbat可以在ArchLinux操作系统的默认软件源中获取,可以使用pacman命令直接安装在任何基于Arch的系统上。pacman-SbatFedoradnfinstallbatmacOSbrewinstallbatUbuntu21.10我是通过Ubuntu环境安装bat的,在bat发布页面下载了.deb文件。您可以执行以下命令进行下载安装。sudoapt-getinstallwgetwgethttps://github.com/sharkdp/bat/releases/tag/v0.18.3/bat_0.18.3_amd64.debsudodpkg-ibat_0.18.3_amd64.deb其他系统可能需要从软件源编译安装,或参考GitHub上bat的OtherOS安装方法。使用bat命令使用bat命令与使用cat命令非常相似。使用bat命令新建文件:bat>jiaoben1.sh使用bat命令查看文件内容:batjiaoben1.sh使用bat命令同时查看多个文件:batjiaoben1.shjiaoben2.sh使用bat命令将多个文件的内容合并为一个在文件中:batjiaoben1.shjiaoben2.sh>test.txt上面介绍了bat如何新建一个文件,检查文件的内容,将多个文件的内容合并为一个文件。接下来,让我们看一下bat命令的一些非常酷的功能。bat命令支持大部分编程语言和标记语言的语法高亮,所以我们用cat和bat命令来显示jiaoben1.sh的内容,做个对比。可以看出,cat命令以纯文本显示文件内容,而bat命令显示语法高亮和整齐的文本对齐。从上面bat命令的输出可以看出有表格行。如果只想显示行号(不显示表格),可以使用-n参数来实现。虽然cat执行也会显示行号,但是bat执行还是没有。输出很漂亮。bat-njiaoben2.shbat命令支持Git集成,可以方便地查看和编辑Git仓库中的文件,bat和Git的连接可以在索引上显示修改。bat支持自动分页,这个功能也需要注意一下。支持分页是指当文件输出内容超出屏幕显示时,bat命令会自动将输出内容转移到less命令中,你将可以使用回车键逐页查看输出内容。使用空格键可以直接跳转到文末的最后一行。当您使用bat命令时,这些都不是必需的,它会自动传输跨越多个页面的文件的输出。batjiaoben3.sh与cat命令进行比较。在jiaoben3.sh中查看跨页文件内容时,提示会直接跳到文件的最后一页,看不到跨页文件开头和中间的内容。catjiaoben3.sh如果要用cat实现bat命令的效果,需要用cat的输出转给less命令,这样才能从头开始一页一页的查看内容。catjiaoben3.sh|less同样,在该方法中,可以使用回车键逐页查看输出,使用空格键直接跳转到文末最后一行。bat自定义主题目前有24个bat自定义主题,包括:Coldark-Cold、GitHub、MonokaiExtendedLight、OneHalfDark、Solarized(light)、TwoDark、VisualStudioDark+、base16、zenburn等;如果你不喜欢默认的主题,你也可以根据自己的风格进行修改,只需执行:bat--list-themes命令即可显示可用的主题。#bat--list-themesTheme:1337//Outputthesquareofanumber.fnprint_square(num:f64){letresult=f64::powf(num,2.0);println!("Thesquareof{:.2}是{:.2}。",num,result);}...比如你要选择Dracula主题,可以直接执行:bat--theme=Draculafilename如果你想永久改变某个主题,可以使用exportBAT_THEME="Dracula"在你的shell启动文件中使更改永久化。您可以使用--style参数选项来控制bat输出的外观。配置元素包括:行号、文件头、网格边框、Git修改以显示文件内容以外的内容,参数是逗号分隔的列表。--style=numbers,changes可用于仅显示Git修订版和行号,而不是网格和文件标题,设置BAT_STYLE环境变量以使这些更改永久生效。更多bat的使用方法,可以执行命令manbat或bat--help。此外,您还可以通过bat项目的GitHub仓库查看更多详情。用了bat以后,再也不想用cat了!02.duf在Linux环境下,我们知道df命令是用来显示磁盘分区上的可用磁盘空间的。默认显示单位为KB。您也可以使用此命令来获取硬盘占用了多少空间。多少空间等信息。#dfFilesystem1K-blocksUsedAvailableUse%Mountedon/dev/sda31843994049432641255997229%/tmpfs506176765061001%/dev/shm/dev/sda199150300036402732%/boot/dev/sr0436308843630880100%/media/CentOS_6.5_Final除此之外,du命令也是查看使用空间的,但与df命令不同的是linuxdu命令检查文件和目录磁盘使用的空间,与df命令还是有一些区别的。#du4./.abrt8./.dbus/session-bus12./.dbus4./.nautilus40./.local/share/gvfs-metadata24./.local/share/applications68./.local/share72./.local接下来给大家介绍一款终端工具,可以理解为Linux传统命令df和du——duf的集成版。duf是一个用Golang编写的跨平台磁盘使用工具,可让您轻松检查可用磁盘空间,对输出进行分类,并以用户友好的方式呈现,适用于Linux、Windows、macOS、Android、FreeBSD;Ubuntu安装方法:$sudoaptinstallgdebi#如果报错,Failedtofetchhttp://security.ubuntu.com......#sudoapt-getupdate$sudogdebiduf_0.5.0_linux_amd64.deb#先下载duf_0.5.0_linux_amd64.deb,下载地址为:https://github.com/muesli/duf/releases/download/v0.5.0/duf_0.5.0_linux_amd64.debMacOS安装方法:#先安装Homebrew,按照提示安装。/bin/zsh-c"$(curl-fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"#installdufbrewinstalldduf#orsudoportselfupdate&&sudoportinstalldufWindows安装方法:chocoinstallduf#orscoopinstalldduf安装完成后,即可直接使用duf也很简单。在不添加任何参数的情况下,将输出所有本地设备、任何已挂载的云存储设备以及任何其他特殊设备(包括临时存储位置等)的详细信息;$duf如果只想查看本地连接设备的详细信息,不想看其他的,可执行:$duf--onlylocal如果只想将输出信息按照大小按照特定顺序排序,可执行:$duf--sortsize更多参数用法:duf/home/some/file根据参数,则duf只会列出特定的设备和挂载点duf--all列出所有内容duf--hide-network隐藏网络文件系统,以及对应的--hide-fuse--hide-special--hide-loops--hide-bindsduf--inodeslistsinodesduf--outputmountpoint,size,usage指定(mountpoint,size,used,avail)对应的输出格式,usage,inodes,inodes_used,inodes_avail,inodes_usage,type,filesystem)duf--json输出json格式的duf--themelight如果duf不能正确检测终端颜色,可以设置一个主题duf--help查看所有duf03.tldr的可用命令对于初学者学习Linux,遇到最多最大的问题就是Linux操作系统下的命令和使用方法,包括各种参数,层出不穷。事实上,你根本不需要记住它们。使用时,可以通过man命令查找相关资料或查看相关文档。man手册也输出了很多信息,而且对于参数较多的命令,man手册阅读难度很大。这次给大家介绍一个工具:tldr,它的全称是:TooLong,Don'tRead,中文意思:太长了,读不下去。事实上,man命令的结果基本上太长了,无法阅读。您可以将tldr工具理解为man命令的简化帮助文档。它列出了一些最常用的Linux命令,非常容易理解。同时,tldr包含多种语言编写的客户端,如:C、Go、iOS、Python、nodejs等,您可以使用不同的客户端进行安装;我这里的环境是Ubuntu,需要先安装Node.js。然后按照下面的安装方式进行操作:sudoapt-getinstallnodejssudoapt-getinstallnpmsudonpminstall-gtldr执行完以上三个命令后,还需要再次执行tldr--update,将tldr更新到最新状态,然后就可以直接使用了;tldr--updatetldr使用:tldr命令的使用也很简单,tldr+你要查询的命令即可;04.htop显示进程在Linux操作系统上的运行状态信息。好帮手。htop可以说是top的优秀替代品。它是用C语言编写的,是一个跨平台的交互式进程监控工具,具有更好的视觉效果。更容易一目了然地了解当前系统的状态,允许垂直和水平滚动浏览进程列表以查看它们的完整命令行和内存和CPU消耗等相关信息。还显示系统范围的信息,例如平均负载或交换使用情况。显示的信息可通过图形设置进行配置,并且可以交互地排序和过滤,并且无需输入其PID即可完成与流程相关的任务,例如终止和重新处理。安装也很简单,只需要执行命令:aptinstallhtop即可完成。与top相比,htop具有明显的优势。除了功能更加齐全之外,它的配色也非常丰富,整体使用起来更加友好。05.glancesGlances是一个用Python编写的跨平台监控工具。它旨在通过curses或基于web的界面呈现大量的系统监控信息。信息根据用户界面的大小动态调整。它是GNU/Linux、BSD、MacOS和Windows操作系统的Top/htop替代品。它可以在客户端/服务器模式下工作,可以通过终端、Web界面或API(XML-RPC和RESTful)进行远程监控,统计数据也可以导出到文件或外部时间/值数据库。除了列出所有进程及其CPU和内存使用情况外,它还可以显示有关系统的其他信息,例如:网络和磁盘使用情况文件系统空间使用情况和来自不同传感器(如电池)的总空间数据以及列表最近消耗过多资源的进程。06.exa提到了ls命令,大家都很熟悉了。在Linux环境下,它的主要功能是列出当前目录下包含的文件和子目录。如果太多了,用ls命令不太好,因为输出的结果和你要找的文件不一致。第一:需要二次过滤搜索;第二:文件过多时,终端输出结果较慢;EXA是ls的现代替代品,ls是Unix和Linux操作系统附带的命令行程序,赋予它更多功能和更好的默认值。它使用颜色来区分文件类型和元数据。它理解符号链接、扩展属性和Git。它体积小、速度快,并且只有一个二进制文件。EXA与LS有何不同?终端屏幕不再是瓶颈:exa比ls更强大、更友好,输出也会更快;颜色:exa用了很多颜色;不与ls命令冲突EXA的特征颜色:文件类型列表及如何区分文件;网格视图:在与终端窗口大小相同的网格中显示文件;长期:在表格中显示文件及其元数据;树视图:在树中显示文件及其后代;Git集成:在存储库Git状态下查看文件;过滤器:隐藏列表中的文件,显示不可见的文件,并对输出进行排序;Xattrs:列出文件的扩展属性;Ubuntu21.10安装只需要执行命令:aptinstallexa。显示选项-1、--oneline:每行显示一个条目-G、--grid:将条目显示为网格(默认)-l、--long:显示扩展详细信息和属性-R、--recurse:递归到directory-T,--tree:以树的形式递归到目录中-x,--across:排序网格而不是向下排序-F,--classify:按文件名显示类型指示符--colo[u]r:何时使用终端颜色--colo[u]r-scale:清楚地突出显示文件大小级别--icons:显示图标--no-icons:不显示图标(总是覆盖--icons)过滤选项-a,--all:显示隐藏和“点”文件-d,--list-dirs:像普通文件一样列出目录-L,--level=(depth):限制递归深度-r,--reverse:反向排序-s,--sort=(field):按哪个字段排序--group-directories-first:在其他文件之前列出目录-D,--only-dirs:只列出目录--git-ignore:忽略.gitignore中提到的文件-I,--ignore-glob=(globs):要忽略的文件的glob模式(管道分隔)传递--all选项两次以显示两者。和..目录。关于EXA的更多信息,请参考:《一款开源替代 ls 的工具你值得拥有!》07.fdfd是一个在文件系统中查找条目的程序。它是find命令的简单、快速和用户友好的替代品。fd的目的不是替换find命令提供的所有内容。功能,但为大多数用例提供合理的默认值,并且在某些情况下非常有用。fd输出是彩色的,类似于某些ls模式,它是递归的,fd在包含Git存储库的目录中搜索源代码文件时会自动排除隐藏文件和目录,包括.,.git目录,以及.gitignore文件中的忽略模式。通常,搜索速度更快,并且在您第一次搜索时会提供更相关的结果。默认情况下,fd在当前目录中执行不区分大小写的模式搜索,但是,如果您的搜索模式包含大写字母,fd将以区分大小写的模式执行。当然,也可以覆盖默认值,但在许多情况下这是有利的。使用find进行相同的搜索还需要您提供额外的命令行参数。fd可用于许多Linux发行版,并且可以通过执行以下命令使用标准存储库安装在Ubuntu中:sudoaptinstallfd-find在Ubuntu操作系统中,命令是fdfind以避免与其他现有实用程序发生名称冲突,如果你想要它是fd,你可以设置一个别名:aliasfd=fdfind要使别名持久化并在重启后仍然可用,将它放在“.bashrc”或“.bash_aliases”文件中。使用不带参数选项的fd与ls类似,不同之处在于它还默认列出子目录中的文件。fdbat_0.18.3_amd64.debfd_8.3.0_amd64.debjiaoben1.shjiaoben2.shjiaoben3.shsnapsnap/firefoxsnap/firefox/631snap/firefox/731snap/firefox/commonsnap/firefox/currentsnap/snap-storesnap/snap-stores/57-snap558snap/snap-store/commonsnap/snap-store/currenttest.md在当前目录下搜索所有markdown文件(.md或.MD),find命令如下:find.-iname"*.md"./test.md做与fd相同的搜索:fd*.mdtest.md在某些情况下,fd需要额外的选项;例如,如果要包含隐藏文件和目录,则必须使用选项-H,该选项在find中没有。如果需要,关于如何使用fd的更多命令行参数选项,可以参考fdGitHub存储库。08.agack和ag是两个文本搜索工具,比自带的grep好用多了。在指定目录中搜??索文本时,不需要像grep那样指定各种命令行选项,输出结果中还会包含文件名和行号,搜索关键字会高亮显示。ag可以比grep和ack更快地递归搜索文件内容。Ubuntu21.10installag和ackapt-getinstallsilversearcher-agaptinstallackag命令常用参数ag-g(文件名):类似于find.-name(文件名)ag-ised:忽略大小写搜索包含sed的文本ag-Ased:搜索包含sed的文本,并在匹配内容后显示n行文本ag-Bsed:搜索包含sed的文本,并显示匹配内容前n行文本ag-Csed:搜索包含sed的文本,同时显示匹配内容及其前后n行文本内容ag-wsed:全匹配搜索,只搜索与搜索内容完全匹配的文本ag--javased:在java文件中搜索包含sed的文本ag--xmlsed:在XML文件中搜索使用包含sed的textag命令根据文件名,可以使用-g参数选项。ag-gjiaobenjiaoben2.shjiaoben1.shjiaoben3.sh在当前目录下搜索与sed关键字相关的文本。ag-wsedjiaoben1.sh10:sed-i'2d'"$new_filename"参数选项比较多,大家可以根据自己的实际场景使用。09.axelaxel是一款命令行多线程下载工具,下载文件时可以替代curl和wget。Ubuntu21.10安装axelapt-getinstallaxelaxel参数选项-n:指定线程数-o:指定保存为目录-s:指定每秒最大位数-q:静默模式case#axel-n10-o/tmp/http://mirrors.163.com/ubuntu/ls-lR.gz#exa/tmp/ls-lR.gz/tmp/ls-lR.gz可见我们也可以下载ls-lR.gz文件通常通过axel到/tmp目录。10.pydf在Linux系统下,我们可以使用df命令来显示磁盘相关信息。#df文件系统1K-块已用可用已用%挂载点tmpfs19918016601975201%/run/dev/sda31994609610317864858969255%/tmpfs99588409958840%/dev/shmtmpfs5120451161%/run/lock/dev/sda252425253445189082%/boot/efitmpfs1991761001990761%/run/user/1000/dev/sr0304344030434400100%/media/jacktian/Ubuntu21.10amd64tmpfs199176601991161%/run/user/0Ubuntu21.10installpydfaptinstallpydfpydf可以说是df的替代品,它以更简洁的方式显示磁盘使用情况。参考bat:https://github.com/sharkdp/batduf:https://github.com/muesli/duftldr:https://github.com/tldr-pages/tldrhtop:https://github.com/htop-dev/htopglances:https://github.com/nicolargo/glancesexa:https://github.com/ogham/exafd:https://github.com/sharkdp/fd/最后虽然我们在日常工作中,big大部分还是使用默认的基本命令工具。当你把它们换成上面介绍的10个备选工具时,相信它们在很多场景下还是非常有用的。当然,可能还有更多的Linux命令行替换工具,欢迎大家在下方留言区补充。以上就是今天要分享的全部内容。