# 88: Unix tool là bạn

Nếu sắp bị đi đày đến một hoang đảo và buộc phải chọn giữa IDE và Unix tool, tôi sẽ ngay lập tức chọn Unix tool. Dưới đây là những lý do vì sao bạn nên thành thạo Unix tool.

Đầu tiên, IDE hướng tới các ngôn ngữ cụ thể, trong khi Unix tool có thể hoạt động với bất kỳ thứ gì xuất hiện ở dạng văn bản. Trong môi trường phát triển ngày nay, nơi các ngôn ngữ và ký hiệu mới xuất hiện hàng năm, học cách làm việc với Unix là một khoản đầu tư đáng giá.

Hơn nữa, trong khi IDE chỉ cung cấp những lệnh được nhà phát triển nghĩ ra, thì với Unix tool bạn có thể thực hiện bất kỳ tác vụ nào. Hãy nghĩ về chúng như các khối Lego (tiền- Bionicle cổ điển): Bạn tạo lệnh của riêng mình bằng cách kết hợp những Unix tool nhỏ nhưng linh hoạt.

Chẳng hạn, trình tự sau đây là một triển khai dựa trên văn bản phân tích chữ ký của Cunningham- một chuỗi các dấu chấm phẩy, dấu ngoặc và dấu ngoặc kép có thể tiết lộ rất nhiều về nội dung của tệp.

Ngoài ra, mỗi thao tác IDE bạn học được dành riêng cho nhiệm vụ đó, ví dụ thêm một bước mới trong cấu hình debug của dự án. Ngược lại, mài giũa kỹ năng sử dụng Unix tool giúp bạn làm việc hiệu quả hơn. Ví dụ, tôi đã dùng sed tool được sử dụng trong chuỗi lệnh trước đó để biến đổi bản dựng của dự án để biên dịch chéo trên bộ xử lý.

Unix tool được phát triển trong thời đại mà một máy tính nhiều người dùng có 128kB RAM. Sự khéo léo trong thiết kế của họ nghĩa là ngày nay họ có thể xử lý các tập dữ liệu khổng lồ cực kỳ hiệu quả. Hầu hết các công cụ hoạt động như bộ lọc, xử lý chỉ một dòng duy nhất tại thời điểm đó, tức là không có giới hạn về lượng dữ liệu có thể xử lý.

Bạn muốn tìm kiếm số lượng chỉnh sửa được lưu trữ trong bãi chứa nửa terabyte của Wikipedia tiếng Anh? Một thao tác đơn giản sẽ cho bạn câu trả lời. Nếu bạn thấy một chuỗi lệnh hữu ích, bạn có thể chuyển nó thành tập lệnh shell, sử dụng một số cấu trúc lập trình mạnh mẽ, chẳng hạn dẫn dữ liệu vào các vòng lặp và điều kiện. Ấn tượng hơn nữa, các lệnh Unix hoạt động như các đường ống, giống như các lệnh trước đó, sẽ tự phân phối trong số nhiều đơn vị xử lý của CPU đa lõi hiện đại.

Các triển khai open source và trình giả lập của Unix tool làm cho nó khả dụng ở mọi nơi, ngay cả trên các nền tảng bị hạn chế tài nguyên, như trình phát đa phương tiện hàng đầu hoặc bộ định tuyến DSL. Các thiết bị như vậy không có khả năng cung cấp giao diện người dùng mạnh mẽ, nhưng chúng thường bao gồm ứng dụng BusyBox, cung cấp các công cụ được sử dụng phổ biến nhất. Và nếu bạn đang phát triển trên Windows, Cygwin cung cấp tất cả Unix tool, cả dưới dạng thực thi và dạng source code.

Cuối cùng, nếu không có công cụ nào phù hợp với nhu cầu của bạn, thì bạn có thể dễ dàng để mở rộng thế giới của Unix tool. Chỉ cần viết một chương trình (bằng bất kỳ ngôn ngữ nào bạn thích) theo một vài quy tắc đơn giản: Chương trình của bạn chỉ thực hiện một nhiệm vụ duy nhất; nó nên đọc dữ liệu dưới dạng văn bản từ input tiêu chuẩn của nó; và nó sẽ hiển thị kết quả- không được đánh dấu bởi các tiêu đề hay nhiễu loạn khác ở output tiêu chuẩn. Các tham số ảnh hưởng đến hoạt động của công cụ được đưa vào dòng lệnh. Thực hiện các quy tắc này và “Trái đất và mọi thứ trong đó là của bạn”.