Maison  >  Article  >  Tutoriel système  >  Partagez 5 alternatives modernes aux outils de ligne de commande Linux de base

Partagez 5 alternatives modernes aux outils de ligne de commande Linux de base

WBOY
WBOYavant
2024-02-05 12:10:12931parcourir

Lorsque nous utilisons quotidiennement les systèmes Linux/Unix, nous utilisons souvent divers outils de ligne de commande pour gérer le système et comprendre son fonctionnement. Par exemple, la commande du est utilisée pour surveiller l'utilisation du disque et la commande top est utilisée pour afficher les ressources système. Certains de ces outils existent depuis longtemps, comme la commande top, lancée pour la première fois en 1984, et la commande du, lancée pour la première fois en 1971.

Après des années de développement, ces outils ont progressivement évolué de leurs formes originales vers des versions modernes et ont été portés sur différents systèmes. Cependant, malgré les changements modernes, ces outils conservent leurs idées originales et leur expérience utilisateur.

Ces outils sont très importants et indispensables au flux de travail de l'administrateur système. Cependant, au cours des dernières années, la communauté open source a développé des outils alternatifs apportant des avantages supplémentaires. Certains des nouveaux outils peuvent être flashy, mais d'autres améliorent considérablement la convivialité, ce qui en fait le meilleur choix sur les systèmes modernes. Voici cinq alternatives aux outils de ligne de commande Linux standard.

1. ncdu en remplacement de du

L'outil NCurses Disk Utilization (ncdu) fournit des fonctionnalités similaires à celles du du, mais sous la forme d'une interface interactive basée sur les malédictions. Il se concentre principalement sur les répertoires qui occupent plus d’espace disque.

Utilisez ncdu, l'analyse du disque prendra un certain temps et affichera les résultats en fonction des répertoires ou fichiers que vous utilisez fréquemment, comme ceci :

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

Utilisez les touches fléchées pour accéder à chaque entrée. Si vous appuyez sur Entrée sur une entrée du répertoire, ncdu affichera le contenu de ce répertoire :

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

Vous pouvez l'utiliser pour explorer les répertoires et trouver les fichiers qui occupent le plus d'espace disque, en utilisant la touche fléchée gauche pour remonter d'un niveau. Par défaut, vous pouvez utiliser ncdu pour supprimer des fichiers en appuyant sur la touche d, et il confirmera la demande de suppression avec vous avant la suppression. Si vous souhaitez désactiver ce comportement pour éviter les accidents, utilisez l'option -r pour un accès en lecture seule : ncdu -r.

ncdu est disponible sur de nombreuses plateformes et distributions Linux. Par exemple, vous pouvez l'installer sur Fedora directement depuis le dépôt officiel en utilisant dnf :

$ sudo dnf install ncdu

Pour en savoir plus sur cet outil, consultez la page ncdu.

https://dev.yorhel.nl/ncdu

2htop comme meilleur remplacement

htop est un visualiseur de processus interactif similaire à top, mais il offre une meilleure expérience utilisateur prête à l'emploi. Par défaut, htop affiche les mêmes indicateurs que top dans des couleurs agréables.

Par défaut, htop ressemble à ceci :

Partagez 5 alternatives modernes aux outils de ligne de commande Linux de base

En revanche, les valeurs par défaut sont les suivantes :

Partagez 5 alternatives modernes aux outils de ligne de commande Linux de base

De plus, htop fournit des informations de présentation du système en haut et une barre de commandes en bas. Vous pouvez utiliser les touches de fonction pour déclencher des commandes. De plus, vous pouvez également appuyer sur F2 pour accéder à l'interface des paramètres afin de la personnaliser. Vous pouvez changer sa couleur, ajouter ou supprimer des indicateurs ou modifier les options d'affichage de la barre de présentation.

Bien qu'avec la dernière version de top, vous puissiez également obtenir des résultats similaires grâce à la configuration, htop fournit une configuration par défaut plus raisonnable, ce qui en fait un visualiseur de processus magnifique et facile à utiliser.

Pour en savoir plus sur ce projet, consultez la page d'accueil de htop.

https://hisham.hm/htop/

3 tldr en remplacement de l'homme

L'outil de ligne de commande

tldr affiche des informations simplifiées sur l'utilisation des commandes, comprenant principalement des exemples. Il sert de client pour les pages tldr du projet communautaire.

Cet outil ne peut pas remplacer l’homme. Les pages de manuel restent une source d'informations canonique et complète pour de nombreux outils. Cependant, dans certains cas, l’homme fournit trop d’informations. Parfois, vous n'avez pas besoin de toutes les informations sur une commande ; vous essayez simplement de vous souvenir des options de base. Par exemple, la page de manuel de la commande curl compte près de 3 000 lignes. En revanche, la page tldr de curl ne fait que 40 lignes et ressemble à ceci :

$ tldr curl
# curl
  Transfers data from or to a server.
  Supports most protocols, including HTTP, FTP, and POP3.
  More information: .
- 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 est l'abréviation de l'argot Internet « trop longtemps ; je n'ai pas lu », qui fait référence au résumé d'un très long article. Ce nom est approprié pour cet outil car les pages de manuel, bien qu'utiles, sont parfois trop longues.

Dans Fedora, le client tldr est écrit en Python. Vous pouvez l'installer en utilisant dnf. Pour en savoir plus sur les autres options client, consultez la page du projet tldr pages.

https://tldr.sh/

De manière générale, les outils tldr nécessitent un accès à Internet pour afficher les pages tldr. Le client Python de Fedora vous permet de télécharger et de mettre en cache ces pages pour un accès hors ligne.

Pour en savoir plus sur tldr, vous pouvez utiliser tldr tldr.

4 jq en remplacement de sed/grep

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 和 sed 就可能提供不同的结果。

jq 有许多特性,要介绍所有这些特性的话,需要另写一篇文章。要了解更多信息,请参阅 jq 项目页、man 页面或 tldr jq。

https://stedolan.github.io/jq/

5作为 find 替代品的 fd

fd 是 find 命令的一个简单而快速的替代品。它的目的不是取代 find 提供的全部功能;相反,它提供了一些合理的默认值,在某些情况下非常有用。

例如,在包含 Git 存储库的目录中搜索源代码文件时,fd 会自动排除隐藏的文件和目录,包括. .git 目录,并忽略.gitignore 文件中的模式。一般来说,它的搜索速度更快,而且第一次搜索时提供了更多相关的结果。

默认情况下,fd 在当前目录中执行不区分大小写的模式搜索,输出是彩色的。使用 find 进行相同的搜索需要你提供额外的命令行参数。例如,在当前目录中搜索所有的 markdown 文件(.md 或.MD ),find 命令如下:

$ find . -iname "*.md"

使用 fd 进行同样的搜索:

$ fd .md

在某些情况下,fd 需要额外的选项;例如,如果你想包含隐藏文件和目录,则必须使用选项 -H,而这在 find 中是不需要的。

fd 可用于许多 Linux 发行版。执行以下命令,可以使用标准存储库在 Fedora 中安装:

$ sudo dnf install fd-find

要了解更多信息,请查阅 fd GitHub 存储库。

https://github.com/sharkdp/fd/

6其他替代品

虽然我仍然经常使用所有旧的基本工具,特别是在远程连接到服务器时,但这些替代品额外提供了一些在许多场景中都非常有用的好处。特别是,它们对我在 Linux 台式机和笔记本电脑上的工作帮助很大。

你的工作流中是否使用了其他工具?欢迎在下面的评论区补充。

7作者介绍

Ricardo Gerardi 是加拿大红帽公司的高级顾问,他专门从事基于 Ansible 和 Openshift 的 IT 自动化。他有丰富的电信行业经验,曾在 TELUS 担任高级架构师,并曾在 IBM 巴西和 IBM 加拿大担任网络管理解决方案的高级顾问和售前专家长达 13 年。Ricardo 是一个超过 20 年的 Linux 爱好者。他目前感兴趣的是用 Go 编程来破解东西……

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer