![低レベルのコマンドと高レベルのコマンドはどういう意味ですか? [閉鎖]](https://linux33.com/image/111145/%E4%BD%8E%E3%83%AC%E3%83%99%E3%83%AB%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A8%E9%AB%98%E3%83%AC%E3%83%99%E3%83%AB%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AF%E3%81%A9%E3%81%86%E3%81%84%E3%81%86%E6%84%8F%E5%91%B3%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
useradd
との違いは、低レベルのコマンドですが、高レベルのコマンドです。同様に、との違いadduser
は低レベルのコマンドですが、高レベルのコマンドです。同様に、他のコマンドもたくさんあります(:high level、:low-level)。低レベルと高レベルは正確に何を意味しますか?抽象的な?useradd
adduser
netstat
ss
ss
netstat
apt
apt-get
答え1
これは抽象的な数量に関連するあいまいな概念です。
低レベルのコマンドは、生データ、カーネルインタフェースなどに最も近い。良いことは、それを使用するときに多くの制御力があるということです。これは、問題が発生した場合や奇妙なことをする必要がある場合に便利です。低レベルのコマンドの出力は通常、スクリプトを使用して解析する方が簡単です(ほとんどの場合これが目的です)。欠点は、自分が何をしているのかを知る必要があることです。このツールには知識がほとんど含まれていません。すべてが頭の中になければなりません(または目の前にあるメモ...)。
高レベルのコマンドは多くの詳細を抽象化し、知識をツールに適用します。これにより、一般的に使いやすくなります。欠点は、時々あなたが奇妙なことをしたいので、彼らはあなたが望むことを行うことができないということです。あるいは、何かが間違っていると把握するのは難しいかもしれません。なぜ動作しません。
これは二分法ではなく連続体です。おそらく、カーネルから生データをダンプするための最低レベルのツールがありますが、ほぼ常により多くの抽象化を追加できます。
たとえば、ps
(Linuxの場合)、/proc
出力はps l $$
シンプルで有能なシステム管理者が簡単に理解できます。しかし、これを試してみてくださいcat /proc/$$/stat
:
$ cat /proc/$$/stat
11026 (bash) S 11024 11026 11026 34843 12425 4194304 3972 3748 0 2 12 2 3 1 20 0 1 0 69581565 25628672 2101 18446744073709551615 4194304 5242068 140731668323552 0 0 0 65536 3670020 1266777851 0 0 0 17 2 0 0 3 0 0 7341384 7388228 9216000 140731668326960 140731668326965 140731668326965 140731668328430 0
このディレクトリには他の多くのファイルがあり、そのいくつかはより良い(しかしまだ低いレベルの)形式を持っています。しかし、ps
その中に多くの知識があることは明らかです。これらのフィールド(一部)が何を意味するのか、どのように見事に表示するのかなどを知っています。これはps
、同じソースからデータを取得するよりも高いレベルの抽象化ですが、まだより高いレベルの抽象化です。しかし、時には行くべき時もあります。そこにはない多くの情報(など)があります。cat
/proc/pid/
top
/proc/pid/
ps
しかし、少しあいまいです。人々ごとに、特定の命令が連続体のどこに属するかについて異なる意見があります。