Ở một mức độ nào đó bạn có thể nói rằng. Nhưng điều đó không nhất thiết đúng. Tôi nghĩ bạn nên đọc nhiều hơn như 'khả năng đạt được nhiều hơn' với phương pháp thiết kế đơn giản. Và để đơn giản, bạn sẽ phải phân chia nhiệm vụ thành các phần dễ hiểu và dễ lắp ráp. Triết lý UNIX thẳng thắn với bạn, có thể được giải thích với ví dụ sau.
Tất cả các chương trình là một số loại thao tác dữ liệu! Và trong một số trường hợp lập trình cũng là chính thao tác lập trình (lập trình Meta). Bây giờ cách triết lý UNIX hoạt động là, Hãy tưởng tượng xử lý văn bản. Văn bản là gì? Văn bản là một số loại dữ liệu sau khi tất cả. Khi tập hợp thành định nghĩa có tổ chức, Văn bản cũng trở thành của XML và JSON. Văn bản cũng có thể là một danh sách các số, Văn bản cũng có thể là csv, tsv và những gì không! Trong Văn bản hoặc chuỗi khác có thể đại diện cho một vùng dữ liệu lập trình khổng lồ thực sự, chỉ vì bối cảnh của nó có thể xoắn và biến thành những gì chúng ta muốn!
Tất cả các chương trình yêu cầu tổ chức dữ liệu của một số loại. Tổ chức yêu cầu tìm kiếm ...
a. Ở đó bạn chỉ cần có 'grep', 'fgrep' và gia đình của nó để làm điều đó.
Khi bạn tìm kiếm, bạn cần thực hiện một số sắp xếp ..
b. Bây giờ chúng ta có lệnh 'sort' để làm điều đó.
Bạn vừa mới sắp xếp hai tệp, bây giờ bạn muốn so sánh chúng.
c. Bây giờ chúng tôi có 'diff', 'cmp' et al để làm điều đó.
Bạn vừa tìm thấy không có sự khác biệt giữa các tập tin. Bạn cần thêm dữ liệu có tổ chức bây giờ.
d. Bạn có 'mèo', đường ống và toán tử chuyển hướng để ghi vào một tệp.
Bạn cần phân tích cú pháp cụ thể hơn ..
e. Bạn có đầu, đuôi, nhiều hơn, ít hơn, cắt et al để làm điều đó ...
Tất cả điều này được khâu lại với nhau bằng cách sử dụng '|' để tạo ra thứ thực sự mạnh mẽ một thời gian mà không cần viết bất kỳ mã nào cả. Để tìm kiếm nhiều hơn và may bạn có ..
f. awk, vỏ và sed.
awk, shell và sed cung cấp cho bạn quyền kiểm soát văn bản nhiều hơn những gì cắt, diff et al có thể cung cấp cho bạn. Bạn đã bao giờ tự hỏi rằng lệnh1 | lệnh2 | lệnh3 ... loạt là một loại cơ chế dòng công việc. Khi kết hợp với If, điều này trở nên mạnh mẽ hơn.
Bây giờ đến nhiều niềm vui.
Bạn đã bao giờ nghe nói về một tiện ích được gọi là 'Perl' , thứ này mạnh đến mức bạn hầu như có thể thực hiện bất kỳ nhiệm vụ nào trong tay với ít công việc có thể tưởng tượng được. Được kết hợp với một tiện ích như DBM, bạn có thể thực hiện các yêu cầu bền bỉ thời gian nhỏ cho ứng dụng của mình. Hãy nhớ rằng chúng ta thậm chí chưa bước ra khỏi thế giới văn bản nhưng vẫn xoay sở được hầu hết các khía cạnh của môi trường lập trình.
Vì vậy, tôi nghĩ UNIX không chỉ là một hệ điều hành. Đây là một bộ sưu tập các công cụ và môi trường được thiết kế để giải quyết các vấn đề theo cách đơn giản nhất. Một cách đơn giản không nhất thiết ngụ ý sự đơn giản của việc thực hiện giải pháp. Nhưng sự đơn giản tự nó không đưa bạn đi xa.
Tôi đọc cái này ở đâu đó trên reddit.
"Nếu mục tiêu thiết kế duy nhất của bạn là đơn giản, bạn sẽ có được nhiều người dùng như Plan9"