Một số lệnh hữu ích cơ bản
Chúng tôi đã cung cấp cho bạn một phân tích cơ bản về các kịch bản lệnh shell và một phác thảo dựa trên ví dụ về các vòng lặp, nhưng hãy nhớ xem các bài viết đó nếu bạn đã bỏ lỡ hướng dẫn kịch bản trình bao của chúng tôi.
Dòng lệnh là tuyệt vời vì nhiều lý do, và chuyển hướng là một trong những điểm nổi bật nhất. Nếu bạn phải ghi chép và tái tạo đầu ra của mọi lệnh để thực hiện thêm hành động hoặc sử dụng nó cho cái gì khác, thì tất cả chúng ta đã phát điên từ lâu rồi. Chuyển hướng cho phép chúng tôi sử dụng đầu ra đó và lưu nó hoặc ngay lập tức sử dụng nó làm đầu vào cho một lệnh khác. Chúng tôi cũng có thể sử dụng tệp làm đầu vào cho các lệnh khác.
Trước khi tiếp tục, chúng ta hãy xem xét một số lệnh cơ bản có thể được sử dụng ở nhiều nơi khác nhau.
tiếng vang - Lệnh này chỉ cần in (hiển thị) toàn bộ đối số của nó trên dòng lệnh dưới dạng đầu ra
echo argument with spaces
con mèo - Lệnh này hiển thị nội dung của tệp văn bản dưới dạng đầu ra.
cat file_to_be_read
Giả sử chúng ta tạo tệp văn bản này bằng nano:
Khi chúng ta sử dụng lệnh cat trên tập tin, chúng ta có thể thấy nó là đầu ra.
grep pattern file
Chuyển hướng đầu ra
Để chuyển hướng đầu ra của lệnh tới một tệp, chúng tôi sử dụng ký tự đặc biệt, ký hiệu lớn hơn (>).
Hãy thay đổi danh sách của chúng ta, phải không? Nhập lệnh sau:
echo pepperoni > list
Cũng lưu ý rằng các nội dung trước đó của "danh sách" đã bị xóa. Thử lại lần nữa:
echo yellow peppers >> list
Hãy lấy đầu ra của một lệnh và đặt nó vào một tệp:
ls –al / > ~/rootlist
Đường ống, hoặc chuỗi
Đường ống được đặt tên như vậy bởi vì nó sử dụng đường ống, (|; được chia sẻ với phím trên hầu hết bàn phím). Về cơ bản, nó lấy đầu ra của một lệnh và cấp dữ liệu trực tiếp cho một lệnh khác. Bạn có thể tạo các chuỗi lệnh dài để có được đầu ra mong muốn rất cụ thể theo cách này và rất thuận tiện cho các lệnh như grep.
Như bạn có thể thấy, grep phân biệt chữ hoa chữ thường. Bạn có thể sử dụng cờ “-i” để làm cho nó bỏ qua trường hợp.
Chuyển hướng đầu vào
Bạn cũng có thể lấy đầu vào từ các tệp cho các lệnh bằng cách sử dụng ký hiệu nhỏ hơn (<).
cat < list
Giả sử chúng tôi muốn lọc bất kỳ từ nào có "pep" trong từ tệp "danh sách" hiện tại của chúng tôi thành tệp mới có tên là "bản sửa đổi".
grep pep < list > revisions
grep pep < list | sort > revisions
Điều này sẽ sử dụng "pep" làm cụm từ tìm kiếm từ danh sách "danh sách", sắp xếp theo thứ tự bảng chữ cái (tất cả các cụm từ viết hoa được theo sau bởi tất cả các từ viết thường), sau đó xuất nó vào tệp "sửa đổi".
Để minh họa lệnh sắp xếp, hãy xem ví dụ sau:
Một kịch bản đơn giản
Hãy tạo tập lệnh có dạng sau:
script searchterm listfile
Nó sẽ mất thời hạn và sử dụng grep để tìm kiếm thông qua một tập tin danh sách, sắp xếp các kết quả, và sau đó xuất chúng sang một tập tin khác.
Theo như phân loại đi, bạn có thể làm nhiều hơn là chỉ sắp xếp theo thứ tự bảng chữ cái. Hãy xem trang hướng dẫn sử dụng một số lệnh sau:
- tsort - một chức năng phân loại topo tiên tiến hơn
- tr - cho phép bạn ánh xạ các ký tự cụ thể cho các ký tự khác và phiên âm giữa chúng.
- uniq - loại bỏ bất kỳ không độc đáo nào (đọc: trùng lặp)
- awk - một ngôn ngữ / chức năng xử lý văn bản thực sự tiên tiến có thể được sử dụng để tách các trường trong tên tệp
- các lệnh cut, paste / join - hữu ích cho việc cô lập các trường từ các tệp văn bản và thêm dữ liệu mới vào các cột
- tìm kiếm - tìm kiếm như grep, nhưng sử dụng tệp từ điển (có thể do người dùng chỉ định) để tra cứu
- wc - cho phép bạn đếm số lượng từ, số lượng dòng, số ký tự và hơn thế nữa
Chúng tôi đã xem xét một số thông tin cơ bản hơn ngày hôm nay có thể hữu ích trên dòng lệnh như trong các tập lệnh. Dữ liệu dựa trên văn bản thường là trung tâm của những thứ chúng tôi sử dụng hàng ngày, do đó, có thể làm việc với nó, tìm kiếm và thao tác nó là chìa khóa.
Một số kịch bản yêu thích của bạn là gì? Bạn có tập lệnh đặc biệt nào cho các tệp dựa trên văn bản không? Chia sẻ những gì bạn biết trong phần bình luận!