Diskusi: utilitas standar UNIX yang sedikit digunakan dan saat ini digunakan

Seminggu yang lalu, Douglas McIlroy, seorang pengembang pipa UNIX dan penulis konsep "pemrograman berorientasi komponen," berbicara tentang program UNIX yang menarik dan tidak biasa yang tidak banyak digunakan. Publikasi ini telah meluncurkan diskusi aktif tentang Hacker News. Kami telah mengumpulkan yang paling menarik dan akan senang jika Anda bergabung dalam diskusi.


Foto - Virginia Johnson - Unsplash

Bekerja dengan teks


Pada sistem operasi mirip UNIX, ada seperangkat alat standar untuk memformat teks. Utilitas salah ketik memungkinkan Anda untuk melihat dokumen untuk kesalahan ketik dan hapaks - kata-kata yang hanya muncul sekali sekali dalam materi. Menariknya, program ini tidak menggunakan kamus untuk mencari kesalahan ketik . Itu hanya bergantung pada informasi dalam file dan melakukan analisis frekuensi trigram (urutan tiga karakter). Dalam hal ini, semua penghitung yang diperlukan disimpan dalam array 26x26x26. Menurut Douglas McIlroy, jumlah memori ini hampir tidak cukup untuk beberapa counter byte tunggal. Oleh karena itu, untuk menyelamatkan mereka, mereka ditulis dalam bentuk logaritmik.

Saat ini, kesalahan ketik telah digantikan oleh pemeriksa ejaan berbasis kamus yang lebih modern dan akurat. Namun, alat ini masih diingat - beberapa tahun yang lalu, seorang penggila memperkenalkan implementasi kesalahan ketik di Go. Repositori masih diperbarui.

Alat dokumen tahun 80-an lainnya adalah Writer's Workbench dari Lorinda Cherry dan Nina McDonald dari Bell Labs. Ini termasuk alat untuk menentukan bagian gaya bicara dan dokumen, mencari tautologi dan kalimat yang terlalu rumit. Utilitas dikembangkan sebagai bantuan kepada siswa, dan pada satu waktu digunakansiswa di Colorado State University di Amerika Serikat. Tetapi pada awal tahun sembilan puluhan, Workbench Writer's telah dilupakan karena itu tidak termasuk dalam Versi 7 Unix. Namun, alat ini melanjutkan jalur peniru - misalnya, Grammatik untuk IBM PC.

UNIX juga memiliki alat standar untuk menyederhanakan pekerjaan dengan rumus. Ada preprocessor bahasa untuk memproses persamaan matematika eqn . Perlu dicatat bahwa untuk menampilkan formula, cukup bagi pengembang untuk menggambarkannya dengan kata dan simbol sederhana. Kata kunci memungkinkan Anda untuk menggeser tanda-tanda matematika secara vertikal dan horizontal, mengubah ukurannya dan parameter lainnya. Jika Anda melewatkan baris ke utilitas:

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

Formula berikut akan dihasilkan pada output:

k=1Nk2


Pada 1980-an dan 1990-an, eqn membantu profesional TI menulis manual perangkat lunak. Tetapi kemudian digantikan oleh sistem LaTeX, yang bahkan digunakan Habr. Tapi eqn adalah alat pertama dari kelas ini, yang tersisa dari OS mirip UNIX.

Bekerja dengan file


Dalam utas tematik, penghuni Hacker News mencatat beberapa utilitas yang jarang digunakan untuk bekerja dengan file. Salah satunya adalah kom untuk membandingkan mereka. Ini adalah analog diff yang disederhanakan , dipertajam untuk bekerja dalam skrip. Itu ditulis oleh Richard Stallman sendiri dengan David MacKenzie.

Output dari program ini terdiri dari tiga kolom. Kolom pertama berisi nilai-nilai yang unik untuk file pertama, yang kedua - unik untuk file kedua. Kolom ketiga termasuk nilai umum. Agar komunikasi berfungsi dengan benar, dokumen yang akan dibandingkan harus diurutkan secara leksikal. Oleh karena itu, salah satu penghuni situs menyarankan untuk bekerja dengan utilitas dalam bentuk berikut:

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

Comm berguna untuk memverifikasi ejaan kata. Cukup membandingkannya dengan dokumen kamus referensi. Mengingat kehalusan yang terkait dengan kebutuhan untuk mengurutkan file, diyakini bahwa Stallman dan Mackenzie menulis utilitas mereka secara eksklusif untuk kasus pengguna ini.


Foto - Marnix Hogendoorn - Unsplash

Juga, peserta diskusi di HN mencatat kemampuan operator tempel , yang tidak jelas baginya. Ini memungkinkan Anda untuk mengubah aliran data atau membagi satu aliran menjadi dua kolom selama output:

$ paste <( echo -e 'foo\nbar' ) <( echo -e 'baz\nqux' )
foo     baz
bar     qux
$ echo -e 'foo\nbar\nbaz\nqux' | paste - -
foo     bar
baz     qux

Satu pengguna mencatat bahwa seringkali ini bukan solusi yang paling optimal untuk digunakan: dimulai dengan fmt , ex dan diakhiri dengan mlr dengan jot dan rs .

Apa fitur standar dari sistem operasi mirip UNIX yang Anda temukan?

Apa yang kami tulis di blog perusahaan kami:

Bagaimana Sistem Nama Domain Dikembangkan: Era ARPANET
Sejarah Sistem Nama Domain: Server DNS Pertama
Sejarah DNS: Ketika Nama Domain Dibayar
Nama Domain Sejarah Sistem Sistem: Protokol "Perang"

All Articles