• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:5-款新型-Linux-命令行工具实用

java 搞代码 3年前 (2022-01-27) 55次浏览 已收录 0个评论

应用新的代替工具来改良旧的命令行工具。

在Linux/Unix零碎的日常应用中,咱们须要应用很多命令行工具来实现工作,以及了解和治理咱们的零碎,例如应用du来监督磁盘利用率、top来显示系统资源。有些工具曾经有很长的历史了。例如,top于1984年首次公布,而du的首次问世可追溯至1971年。

多年来,这些工具曾经过现代化的革新,并移植到了不同的零碎中,但总的来说,它们依然保留了最后的想法、外观和感觉。

这些工具都十分优良,对于许多系统管理员的工作流程来说都是必不可少的。但近年来,开源社区开发了不少更具劣势的代替工具。尽管有些工具金玉其外;败絮其中,但有些则大大提高了实用性,成为了古代零碎的绝佳抉择。 在本文中,我将介绍五种规范Linux命令行工具的替代品。

du的代替:ncdu

NCurses磁盘使用率(NCurses DiskUsage,即ncdu)工具提供了与du相似的后果,但其基于curses的交互式界面能够显示耗费了大部分磁盘空间的目录。

首先Ncdu须要花一些工夫剖析磁盘,而后依照最罕用的程序显示目录或文件,如下所示:

ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help
--- /home/rgerardi ------------------------------------------------------------
   96.7 GiB [##########] /libvirt
   33.9 GiB [###       ] /.crc
    7.0 GiB [          ] /Projects
.   4.7 GiB [          ] /Downloads
.   3.9 GiB [          ] /.local
    2.5 GiB [          ] /.minishift
    2.4 GiB [          ] /.vagrant.d
.   1.9 GiB [          ] /.config
.   1.8 GiB [          ] /.cache
    1.7 GiB [          ] /Videos
    1.1 GiB [          ] /go
  692.6 MiB [          ] /Documents
. 591.5 MiB [          ] /tmp
  139.2 MiB [          ] /.var
  104.4 MiB [          ] /.oh-my-zsh
   82.0 MiB [          ] /scripts
   55.8 MiB [          ] /.mozilla
   54.6 MiB [          ] /.kube
   41.8 MiB [          ] /.vim
   31.5 MiB [          ] /.ansible
   31.3 MiB [          ] /.gem
   26.5 MiB [          ] /.VIM_UNDO_FILES
   15.3 MiB [          ] /Personal
    2.6 MiB [          ]  .ansible_module_generated
    1.4 MiB [          ] /backgrounds
  944.0 KiB [          ] /Pictures
  644.0 KiB [          ]  .zsh_history
  536.0 KiB [          ] /.ansible_async
 Total disk usage: 159.4 GiB  Apparent size: 280.8 GiB  Items: 561540

你能够通过方向键导航到每个后果。如果在选中的后果上按下Enter,则ncdu将显示该目录的内容:

--- /home/rgerardi/libvirt ----------------------------------------------------
                         /..
   91.3 GiB [##########] /images
    5.3 GiB [          ] /media

你能够深刻各个目录,找出哪些文件占用的磁盘空间最多。应用左方向键能够返回到上一个目录。在默认状况下,你能够按d键删除文件,但在删除文件之前ncdu会要求确认。如果你想禁止删除操作以避免发生意外,则能够通过-r选项设置只读拜访:ncdu -r。

ncdu可用于许多平台和Linux发行版。例如,你能够应用dnf从官网代码库间接将其装置在Fedora上:

$ sudo dnf install ncdu

更多无关该工具的信息,请参见:https://dev.yorhel.nl/ncdu。

top的代替:htop

htop是一个相似于top的交互式过程浏览器,提供了更好的用户体验。在默认状况下,htop显示的各项指标与top雷同,而且是丑陋的黑白。

默认的htop如下所示:

与默认的top相比:

此外,htop的顶部还提供了零碎的概述信息,底部的命令栏则显示了功能键命令,你还能够按下F2进入设置页面来自定义界面。在设置页面中,你能够更改其色彩,增加或删除指标、更改概述栏的显示选项。

尽管top的最新版本也能够通过配置取得类似的后果,但htop提供的默认配置更为正当,作为一个过程浏览器更加易于应用。

如果想理解无关该项目标更多信息,请查看htop主页(https://hisham.hm/htop/)。

举荐一个 Spring Boot 基础教程及实战示例:
https://github.com/javastacks…

man的代替:tldr

tldr命令行工具显示能够简化的命令文档,而且大部分文档都提供示例。它是tldr pages我的项目(https://tldr.sh/)的客户端。

这个工具不是man的替代品。man pages依然是许多工具的标准以及残缺的信息源。然而,在某些状况下,man的内容太多了。有时,你不须要无关命令的所有信息。你只须要记住根本选项。例如,curl命令的man page简直有3,000行。相比之下,curl的tldr只有40行,如下所示:

$ tldr curl

# curl
  Transfers data from or to a server.
  Supports most protocols, including HTTP, FTP, and POP3.
  More information: <https://curl.haxx.se>.

- Download the contents of an URL to a file:

  curl http://example.com -o filename

- Download a file, saving the output under the filename indicated by the URL:

  curl -O http://example.com/filename

- Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:

  curl -O -L -C - http://example.com/filename

- Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):

  curl -d 'name=bob' http://example.com/form                                                                                            
- Send a request with an extra header, using a custom HTTP method:

  curl -H 'X-My-Header: 123' -X PUT http://example.com                                                                                  
- Send data in JSON format, specifying the appropriate content-type header:

  curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234

... TRUNCATED OUTPUT

TLDR的全称是“too long; didn’tread”(太长;未读),这是一句网络流行语,示意文章太长。这个名字非常适合这个汇总工具,因为manpages尽管十分实用,但内容太长。

在Fedora中,tldr客户端是用Python编写的。你能够应用dnf装置。无关其余客户端选项,请参见tldr pages我的项目(https://tldr.sh/)。

通常,tldr工具须要拜访互联网能力查问tldr页面。Fedora中的Python客户端容许你下载和缓存这些页面以供离线拜访。

无关tldr的更多信息,请运行tldr tldr。另外,Linux 系列面试题和答案全副整顿好了,微信搜寻Java技术栈,在后盾发送:面试,能够在线浏览。

用sed/grep查找JSON数据的代替:jq

jq是JSON的命令行处理器。就像sed或grep一样,但次要是为了解决JSON数据。如果你是日常工作须要应用JSON的开发人员或系统管理员,那么这是你的工具箱中必不可少的工具。

与通用文本处理工具(例如grep和sed)相比,jq的次要长处在于它理解JSON数据结构,你能够通过一个表达式创立简单的查问。

举例说明,假如你正在尝试在下列JSON文件中查找容器的名称:

{
  "apiVersion": "v1",
  "kind": "Pod",
  "metadata": {
    "labels": {
      "app": "myapp"
    },
    "name": "myapp",
    "namespace": "project1"
  },
  "spec": {
    "containers": [
      {
        "command": [
          "sleep",
          "3000"
        ],
        "image": "busybox",
        "imagePullPolicy": "IfNotPresent",
        "name": "busybox"
      },
      {
        "name": "nginx",
        "image": "nginx",
        "resources": {},
        "imagePullPolicy": "IfNotPresent"
      }
    ],
    "restartPolicy": "Never"
  }
}

如果你利用grep间接查问name,则后果为:

$ grep name k8s-pod.json
        "name": "myapp",
        "namespace": "project1"
                "name": "busybox"
                "name": "nginx",

grep会返回所有蕴含单词name的行。你能够在grep中增加一些其余选项来限度查问后果,并通过正则表达式操作找到容器的名称。在应用jq取得所需后果时,你只须要应用一个模仿向下导航数据结构的表达式,如下所示:

$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"

该命令会返回两个容器的名称。如果你只想查看第二个容器的名称,则能够在表达式中增加数组元素索引:

$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"

因为jq可能了解数据结构,所以即便文件格式稍有变动,它也能够提供雷同的后果。但对于grep和se来说,格局稍有变动提供的后果就会齐全不同。

jq还有很多性能,我须要用另写一篇文章能力介绍其所有的性能。无关更多信息,请参见jq我的项目页面(https://stedolan.github.io/jq/)、manpages或tldr jq。

find的代替:fd

fd是find命令的一种简略疾速的代替。它的目标不是替换find的性能,而是提供一些正当的默认值,在某些状况下十分有用。

例如,在蕴含Git代码库的目录中搜寻源代码文件时,fd会主动排除暗藏的文件和目录(包含.git目录),并疏忽.gitignore文件中的模式。通常,它能够更快地查问,并提供相关度更高的后果。

在默认状况下,fd会针对当前目录执行不辨别大小写的模式搜寻,并输入黑白的后果。应用find进行的雷同搜寻时,你须要提供其余命令行参数。例如,搜寻当前目录中所有的markdown文件(即.md或.MD文件),find命令如下所示:

$ find . -iname "*.md"$ find . -iname "*.md"

而如下fd搜寻可能返回雷同的后果:

$ fd .md

在有些状况下,fd也须要其余选项。例如,如果想让搜寻包含暗藏的文件和目录,则必须应用选项-H,而find则不须要。

fd可用于许多Linux发行版。在Fedora中装置fd可应用规范代码库:

$ sudo dnf install fd-find

无关更多信息,请请见fd的GitHub代码库(https://github.com/sharkdp/fd/)。

优良的代替工具与久经考验的实用程序

只管我还是习惯应用旧工具,尤其是在近程连贯到服务器时,但新的代替工具提供了额定的益处,而且在许多状况下都很有帮忙性。特地是帮忙我在Linux台式机和笔记本电脑上治理和工作。

你是否应用其余工具来解决工作流程?请在下方留言。

原文:https://opensource.com/articl…

作者:Ricardo Gerardi

译者:弯月,责编:屠敏

出品:CSDN(ID:CSDNnews)

近期热文举荐:

1.1,000+ 道 Java面试题及答案整顿(2021最新版)

2.别在再满屏的 if/ else 了,试试策略模式,真香!!

3.卧槽!Java 中的 xx ≠ null 是什么新语法?

4.Spring Boot 2.5 重磅公布,光明模式太炸了!

5.《Java开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞+转发哦!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:5-款新型-Linux-命令行工具实用

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址