より現代的な代替手段を古いコマンドライン ツールと併用すると、より楽しく、生産性も向上します。

日常業務では Linux Unixでは、ディスク使用量やシステムリソースの監視にduコマンドを使用するなど、多くのコマンドラインツールが用いられます。これらのツールの中には、長年使われているものもあります。例えば、topは1984年に登場し、duの最初のリリースは1971年に遡ります。
長年にわたり、これらのツールは近代化され、さまざまなシステムに移植されてきましたが、一般的には最初のバージョンから大きく進化しておらず、外観や使いやすさもあまり変わっていません。
これらは多くのシステム管理者にとって不可欠な優れたツールです。しかし、コミュニティはさらに多くの利点を提供する代替ツールを開発してきました。中には、単にモダンで魅力的なインターフェースを備えているだけのものもあれば、使いやすさを大幅に向上させたものもあります。この翻訳では、標準的なコマンドラインツールに代わる5つのツールについて解説します。 Linux.
1. ncdu 対 du
NCurses ディスク使用量 () は du に似ていますが、curses ライブラリに基づく対話型インターフェースを備えています。 ncdu は、ディスク領域の大部分を占めるディレクトリ構造を表示します。
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このツールを使用すると、たとえば、どのファイルがディスク領域を最も多く占有しているかを判断できます。左矢印キーを押すと前のディレクトリに移動できます。 ncdu では、d キーを押してファイルを削除できます。削除する前に確認を求められます。貴重なファイルを誤って失うことを防ぐために削除機能を無効にしたい場合は、-r オプションを使用して読み取り専用アクセス モードを有効にします: ncdu -r。
ncduは多くのプラットフォームとディストリビューションで利用可能です。 Linux例えば、dnf を使って公式リポジトリから直接 Fedora にインストールすることができます。
$ sudo dnf install ncdu2. htop と top
— は、top に似たインタラクティブなプロセス ビューアー ユーティリティですが、すぐに使用できる快適なユーザー エクスペリエンスを提供します。デフォルトでは、htop は top と同じ情報を表示しますが、より視覚的でカラフルな形式で表示されます。
デフォルトでは、htop は次のようになります。

トップとは異なります:

さらに、htop は上部にシステムの概要を表示し、下部にファンクション キーを使用してコマンドを起動するためのパネルを表示します。 F2 キーを押して設定画面を開き、設定することができます。設定では、色を変更したり、メトリックを追加または削除したり、概要パネルの表示オプションを変更したりできます。
最新バージョンの top の設定を微調整することで同様の使いやすさを実現できますが、htop は便利なデフォルト設定を提供するため、より実用的で使いやすくなります。
3. tldr vs 男性
tldr コマンドライン ツールは、コマンドに関する簡略化されたヘルプ情報 (主に例) を表示します。コミュニティによって開発された .
tldr は man の代わりになるものではないことに注意する価値があります。これは、標準的かつ最も完全なマニュアル ページ出力ツールです。しかし、場合によっては人間は不要です。コマンドの詳細な情報が必要ない場合は、その基本的な使用方法を覚えておくだけです。たとえば、curl コマンドのマニュアル ページには、約 3000 行が含まれています。 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 OUTPUTTLDR は「長すぎる」、「読み取れない」という意味です。つまり、冗長すぎるため一部のテキストが無視されました。マニュアル ページは便利ですが、長すぎる場合もあるため、このツールにはこの名前が適切です。
Fedora の場合、tldr は Python で書かれています。 dnf マネージャーを使用してインストールできます。通常、ツールを動作させるにはインターネット アクセスが必要です。しかし、Fedora の Python クライアントを使用すると、これらのページをダウンロードしてキャッシュし、オフラインでアクセスすることができます。
4. jq と 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 を実行して文字列名を検索します。
$ 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"このコマンドは、両方のコンテナの名前を表示します。 2 番目のコンテナの名前だけを探している場合は、配列要素のインデックスを式に追加します。
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"jq はデータ構造を認識しているため、ファイル形式がわずかに変更されても同じ結果が得られます。この場合、grep と sed は正しく動作しない可能性があります。
jq には多くの機能がありますが、それらを説明するには別の記事が必要です。詳細については、 jq または tldr。
5. fd と find の比較
— は find ユーティリティの簡略化された代替手段です。 Fd はそれを完全に置き換えることを意図したものではありません。デフォルトでは最も一般的な設定があり、これによってファイルの操作に対する一般的なアプローチが決まります。
たとえば、Git リポジトリ ディレクトリ内のファイルを検索する場合、fd は .git ディレクトリを含む隠しファイルとサブディレクトリを自動的に除外し、.gitignore ファイルのパターンを無視します。全体として、より関連性の高い結果を初回に提供することで、検索が高速化されます。
デフォルトでは、fd は現在のディレクトリ内で大文字と小文字を区別しない検索を実行し、出力を色分けします。 find コマンドを使用して同じ検索を行うには、コマンド ラインに追加のパラメータを入力する必要があります。たとえば、現在のディレクトリ内のすべての .md (または .MD) ファイルを検索するには、次のように find コマンドを記述します。
$ find . -iname "*.md"fd の場合は次のようになります。
$ fd .mdただし、場合によっては、fd に追加のオプションも必要になります。たとえば、隠しファイルとディレクトリを含める場合は -H オプションを使用する必要がありますが、これは通常、検索時には必要ありません。
fdは多くのディストリビューションで利用可能です。 LinuxFedoraでは、次のようにインストールできます。
$ sudo dnf install fd-find何も諦める必要はない
新しいコマンドラインツールを使っていますか? Linuxそれとも、古いものだけを使っているのでしょうか?でも、おそらく両方を組み合わせて使っているのではないでしょうか?ぜひコメント欄であなたの経験を共有してください。
広告の権利について
多くのお客様がすでにメリットを実感されています 壮大なサーバー!
それ 、CPU コア周波数は最大 3.4 GHz です。最大構成では、128 個の CPU コア、512 GB の RAM、4000 GB の NVMe という最大限の性能を発揮できます。急いで注文してください!
出所: habr.com
