これらの 50 年前の Linux コマンドは、依然として最新の代替コマンドを上回っています。

in tech

私たちが今でも毎日使用している Linux コマンドの多くは、1971 年に遡るバージョン 1 Unix に起源を持ちます。一部のコマンドは、純粋な処理速度、または可用性や柔軟性などの他の尺度において、現代の同等のコマンドよりも依然として優れています。

Unix の初期の時代から、厳しい競争に直面してもどのツールが生き残るかを知る旅に私と一緒に行きましょう。

猫 (1971)

とてもシンプルなので他に匹敵するものはありません!

git config ファイルの内容を表示する Linux cat コマンド。

このリストにある最も古いコマンドが、当然のことながら最も単純です。実際、cat は非常にシンプルなので改良するのがほぼ不可能であり、それが 55 年間もコアの Unix コマンドであり続けている理由です。

単一のファイル名を指定すると、cat はそのファイルの内容を出力するだけです。これは十分に便利なタスクですが、厳密には不要であり、しばしば「cat の無駄な使用」という批判を引き起こします。

の代わりに cat filename | command、シェルのリダイレクトを使用できます。 command ‹ filename

このユーティリティの名前は、2 つのものを結合することを意味する「concatenate」という単語に由来しており、ファイルの結合に最も役立ちますが、他のことも実行できます。より強力なファイル表示のた​​めに、less、more、bat など、さまざまなページャーが用意されています。

Bat コマンド (2018) は cat ではできない多くのことを実行できるため、ほとんどのインタラクティブな用途にはおそらくより良い選択肢ですが、単純なテキスト ファイルやスクリプトでの使用では、cat の圧倒的な速度と可用性に勝るものはありません。

メイク (1976)

ぎこちない構文によってこのツールの普及性が損なわれることはありません

OK、ということで、Make は誰にとってもお気に入りのツールである可能性は低いです。空白の処理により非常にエラーが発生しやすく、控えめに言っても、その基礎となる概念の多くは把握するのが困難です。しかし、その機能を考えると、Make は依然として非常に強力なオプションです。

基本的に、Make はファイルの無意味な再コンパイルを避けるために存在します。通常、これは C ソース コードを意味しますが、Make は、Markdown から PDF への変換やデータベース スキーマの更新など、予測可能なあらゆるファイル処理を処理できます。これは、理想的には、たとえば、ソース コードが変更されていない場合は再コンパイルする必要がないことを宣言する単純なロジックを使用して行われます。

当たり前のことのように聞こえるかもしれませんが、さまざまな依存関係を持つ数百、さらには数千のファイルを含む複雑なシステムでは、Make を使用するとビルド プロセスを大幅に高速化できます。

Make は、ほぼすべての Unix または Linux システムで利用できます。代替手段、特に言語固有の代替手段は存在しますが、Make は依然として汎用ビルド システムとして主流であり、ほとんどの C/C++ プロジェクトの標準であり続けています。

AWK (1977)

扱いにくいとは言えない強力な処理言語です。

awk コマンドは、/etc/passwd ファイルの 3 行ごとに特定のフィールドを抽出するために使用されます。

AWK はおそらく、最も実用性と人気の比率が高い Unix ツールです。それは非常に強力ですが、今日ではかなりニッチです。 1980 年代には、今日 grep などのツールが使用されているのと同様の方法で、データのフィルタリング、処理、レポート作成に一般的に使用されていました。しかし、AWK の人気に最も大きな影響を与えたのは 1990 年代で、より汎用性の高いプログラミング言語である Perl が広く採用されたときでした。

AWK プログラムはテキスト データをストリームとして処理し、各行を受信するたびに処理しますが、同様の最新のプログラムは、JSON データを処理する jq など、より構造化されたデータを操作する傾向があります。このアプローチには、処理が行われる前にデータ構造全体がメモリに読み込まれるため、パフォーマンスが大幅に低下するという欠点があります。

xargs (1980)

マルチコアが登場する数十年前にファイルの並列処理を可能にする

xargs コマンドは、find の出力を tar コマンドにパイプして一連のイメージをアーカイブするために使用されます。

多くの従来の Unix コマンドはシングルスレッドです。つまり、使用可能なすべてのコアを使用するのではなく、単一のコア上で実行されます。リソースを大量に消費するタスクの場合、これによりパフォーマンスが大幅に低下します。幸いなことに、xargs という解決策があります。

xargs コマンドは、コマンドラインの素晴らしい魔法です。値のリストをパイプ処理することで、動的なパラメーターのセットを使用して別のコマンドを実行できます。

find . -name "*.png" -print0 | xargs -0 tar -cvzf images.tar.gz

このコマンドは、「-cvzf」および「images.tar.gz」パラメーターを使用して tar を実行し、その後に find コマンドからパイプされたファイル名を指定します。したがって、find が 2 つの画像 (a.png と b.png) を見つけた場合、それは実行されます。 tar -cvzf image.tar.gz a.png b.png

-print0 オプションと -0 オプション (それぞれ find および xargs) を使用すると、スペースまたはその他の特殊文字を含むファイルが正しく処理されるようになります。

さらに優れているのは、xargs には -P オプションがあり、これを使用すると、複数のコアにまたがって実行する並列プロセスの数を指定できるようになります。実際に何が起こるかは、基礎となるカーネル スケジューラが何を行うかを決定するかによって異なりますが、このオプションを使用すると、複雑なコマンドを効率的に実行できる可能性が最も高くなります。

nproc コマンドを -P と組み合わせて使用​​すると、コアごとに 1 つのプロセスを自動的に実行できます。例: 探す 。 -type f -print0 | xargs -0 -P $(nproc) -n 1 コマンド

cURL (1996)

現在でもコマンドライン Web 作業の事実上の標準です

URL からの応答の内容を表示するcurlコマンド。

ファイルをダウンロードしたり、Web API からデータを取得したり、あるいは単に IP アドレスを確認したりする必要がある場合には、cURL が最適なツールです。この信じられないほど強力なコマンドを使用すると、URL でできることはほとんど何でもできます。また、その基礎となるライブラリは、膨大な数のソフトウェアのバックボーンです。

cURL はまだ 30 年しか経っていない比較的新参者であるにもかかわらず、競争を惹きつけています。 Hurl などの最新の代替手段の多くは、何よりもまず API クライアントですが、cURL の汎用の低レベルのアプローチは依然として比類のないものです。

HTTPie は優れた代替手段ですが、Python コードの起動が遅く、インターフェイスが優れているため解析コストがかかります。

古いツール(の一部)が最高です

Linux エコシステムは活気に満ちており、オープンソース開発はイノベーションと安定した成熟したプログラムの継続的なサポートの両方を促進します。 Rust のような言語が登場し、TUI などの代替インターフェイスへの関心が高まるにつれて、新しくエキサイティングなツールが常に登場しています。

過去からの信頼できるユーティリティを探し、それらを最新のプログラムと組み合わせて、充実したツールセットを作成します。

関連情報は以下のリンクからご確認いただけます

公式情報はこちら

関連記事

前の投稿
たった 12 行の CSS だけで、きれいで魅力的な Web サイトを構築できます。
次の投稿
「フレンズ」が好きなら、今すぐ観るべき映画が 1 つあります

関連記事