ディスカッション: ほとんどの人が使用しておらず、現在も使用している標準 UNIX ユーティリティ

XNUMX週間前、UNIXパイプラインの開発者であり、「コンポーネント指向プログラミング」の概念の創始者であるダグラス・マキロイ氏は、次のように述べた。 рассказал 広く使用されていない、興味深い珍しい UNIX プログラムについて説明します。 この出版物は、Hacker News に関する活発な議論を開始しました。 最も興味深いものを集めましたので、ディスカッションに参加していただければ幸いです。

ディスカッション: ほとんどの人が使用しておらず、現在も使用している標準 UNIX ユーティリティ
Фото— バージニアジョンソン — アンスプラッシュ

テキストを操作する

UNIX 系オペレーティング システムには、テキストを書式設定するための標準ツール セットが備わっています。 ユーティリティ 打ち間違え 文書のタイプミスを確認したり、 ハパックス - 資料に一度だけ登場する単語。 興味深いことに、タイプミスを見つけるためのプログラム 使用しません 辞書。 ファイル内の情報のみに依存し、トリグラム (XNUMX 文字のシーケンス) を使用して周波数分析を実行します。 この場合、必要なすべてのカウンター 格納されている 26x26x26 配列内。 Douglas McIlroy 氏によると、このメモリ量は、いくつかのシングルバイト カウンタを処理するのにかろうじて十分な量でした。 したがって、お金を節約するために、それらは対数形式で書かれました。

現在、タイプミスは、より現代的で正確な辞書ベースのスペル チェッカーに置き換えられています。 しかし、人々は今でもこの楽器のことを覚えています - 数年前の愛好家 紹介された Go でのタイプミスの実装。 リポジトリはまだ更新中です。

80 年代のドキュメントを操作するためのもう XNUMX つのツールは、パッケージです。 ライターのワークベンチ ベル研究所のロリンダ・チェリー氏とニーナ・マクドナルド氏より。 その構成 含まれる 品詞や文書スタイルを識別し、トートロジーや不必要に複雑な文を検索するためのツール。 ユーティリティは学生向けの補助として開発され、かつては 中古 アメリカのコロラド州立大学の学生たち。 しかし、Writer's Workbench はバージョン 7 Unix に含まれていなかったため、XNUMX 年代初頭までに忘れ去られていました。 しかし、この楽器は模倣者への道を歩み続けました。 文法 IBM PC用。

UNIX には、数式の操作を容易にする標準ツールも提供されています。 数式をフォーマットするための言語プリプロセッサがあります 。 式を表示するには、開発者が簡単な単語と記号で説明するだけで済むという事実が注目に値します。 キーワードを使用すると、数学記号を垂直方向および水平方向に移動したり、サイズやその他のパラメーターを変更したりできます。 この行をユーティリティに渡すと、次のようになります。

sum from { k = 1 } to N { k sup 2 }

出力により次の式が生成されます。

ディスカッション: ほとんどの人が使用しておらず、現在も使用している標準 UNIX ユーティリティ

1980 年代から 1990 年代の eqn 助けた IT スペシャリストはソフトウェアのマニュアルを作成します。 しかしその後、LaTeX システムに置き換えられました。 使用する ハブルさえも。 しかし、eqn は、UNIX のようなオペレーティング システムの一部として残り続けるこのクラスのツールとしては初めてです。

ファイルの操作

テーマ別スレッドで、Hacker News の住人は、ファイルを操作するためにめったに使用されないユーティリティがいくつかあることに気づきました。 それらの中の一つ あった 交信 それらを比較します。 これは簡略化されたアナログです 差分、スクリプトでの作業用に調整されています。 彼の написал リチャード・ストールマン自身とデヴィッド・マッケンジー。

プログラムの出力は XNUMX つの列で構成されます。 最初の列には最初のファイルに固有の値が含まれ、XNUMX 番目の列には XNUMX 番目のファイルに固有の値が含まれます。 XNUMX 番目の列には合計値が含まれます。 comm が正しく機能するには、比較されるドキュメントが語彙的に並べ替えられている必要があります。 そこで、サイト住人の一人が、 предложил 次の形式でユーティリティを操作します。

comm <(sort fileA.txt) <(sort fileB.txt)

Comm は単語のスペルをチェックするのに便利です。 参照辞書文書と比較するだけで十分です。 ファイルを並べ替える必要性に伴う微妙な点を考慮すると、次のことが考えられます。 ビュー、ストールマンとマッケンジーがこのユースケース専用にユーティリティを作成したことを示しています。

ディスカッション: ほとんどの人が使用しておらず、現在も使用している標準 UNIX ユーティリティ
Фото— マルニックス・ホーゲンドールン — アンスプラッシュ

HNのディスカッション参加者でもあります 彼が指摘しました オペレーターの能力 paste、それは彼にとって明らかではありませんでした。 これにより、出力時にデータ ストリームをインターリーブしたり、XNUMX つのストリームを XNUMX つの列に分割したりできます。

$ paste <( echo -e 'foonbar' ) <( echo -e 'baznqux' )
foo     baz
bar     qux
$ echo -e 'foonbarnbaznqux' | paste - -
foo     bar
baz     qux

ユーザーのXNUMX人 気づいた、これらの単純な操作を実行するには、最適なソリューションが使用されないことがよくあります。 FMT, ex そして終わり mlr с JOT и rs.

UNIX 系オペレーティング システムのどのような標準機能があなたにとって発見でしたか?

私たちが企業ブログで書いている内容は次のとおりです。

ディスカッション: ほとんどの人が使用しておらず、現在も使用している標準 UNIX ユーティリティ ドメインネームシステムはどのように進化したか: ARPANET 時代
ディスカッション: ほとんどの人が使用しておらず、現在も使用している標準 UNIX ユーティリティ ドメイン ネーム システムの歴史: 最初の DNS サーバー
ディスカッション: ほとんどの人が使用しておらず、現在も使用している標準 UNIX ユーティリティ DNS の歴史: ドメイン名が有料になったとき
ディスカッション: ほとんどの人が使用しておらず、現在も使用している標準 UNIX ユーティリティ ドメインネームシステムの歴史: プロトコル戦争

出所: habr.com

コメントを追加します