Tôi là người mới bắt đầu tập lệnh bash. Tôi muốn tạo tập lệnh bash để cài đặt cài đặt và định cấu hình nội dung trên hộp linux của mình theo cách tự động.
Giả sử tôi muốn chỉnh sửa
/etc/yum.repos.d/epel.repo
bởi kịch bản bash
Những gì tôi muốn làm là như sau
- Mở tệp /etc/yum.repos.d/epel.repo
- Tìm phần [epel]
- Thêm mức ưu tiên dòng = 10 ngay sau khi dòng được bật = 1 trong phần epel
Đối với phần đầu tiên tôi đã thêm
yum install nano
nano /etc/yum.repos.d/epel.repo
Câu hỏi của tôi là làm thế nào để thực hiện phần 2 và 3 với tập lệnh bash bằng cách sử dụng nano (nếu có thể, trong trường hợp không thể thì hãy cho tôi xem với sed)
Ngoài ra tại một số điểm tôi sẽ phải sửa đổi các biến trong tệp Ví dụ:
- enable = 0 để kích hoạt = 1
- Kiểm tra = "1" để Kiểm tra = "0"
- Thêm văn bản trong một dòng. Hàm = to function = "text1", "text2"
- Thêm một số văn bản vào một tập tin và lưu nó (với nano)
Tôi biết yêu cầu của nó nhưng tôi cần phải tạo nó cho một người bạn không quản lý máy chủ. Thật không may, tôi không có thời gian để nghiên cứu kịch bản bash từ đầu khi gần đến. Tôi sẽ sử dụng các ví dụ của bạn để viết kịch bản.
Các bạn cảm ơn vì tất cả các câu trả lời tôi đã thực hiện thành công hầu hết các kịch bản bash
Tuy nhiên tôi có một vấn đề khác Giả sử tôi muốn sửa đổi nginx.conf bằng sed Chúng tôi sẽ xử lý worker_ Processes
Bây giờ tôi muốn sử dụng sed để làm như sau 1.Tìm sự xuất hiện đầu tiên của worker_processes
conf đó và thay thế văn bản bằngworker_processes 4;
Lưu ý đặc biệt ở đây: Đây chỉ là một ví dụ. Nó có thể xảy ra rằng conf chứa worker_ Processes 1; . Đây là một phần khó khăn. Tôi muốn một lệnh sed tìm trường hợp khớp wHOLE FIRST của từ worker_ Processes , xóa dòng văn bản nơi tìm thấy từ đó và dán vào worker_processes 4;
đó rồi lưu tệp. Đây là phương pháp đáng tin cậy nhất tôi mặc dù khi chỉnh sửa tệp (không có nguy cơ phá vỡ bất kỳ conf nào
Một đề nghị cuối cùng tôi đã sử dụng sed -i 's / enable = 0 / enable = 1 / g' /etc/yum.repose.d/remi.repo để thay đổi enable = 0 thành enable = 1 trong phần [remi] trong remi .repo. Tuy nhiên, tôi có cảm giác rằng nó có thể sửa đổi tất cả enable = 0 trong tệp đó, điều này sẽ phá hỏng máy chủ. Ai đó có thể đề xuất một mã tốt hơn.
Một thứ khác tôi không chắc chắn: PI muốn chỉnh sửa một tệp có nội dung này là Kiểm tra văn bản = "0" (Có, nó có dấu ngoặc kép và tôi cần giữ lại) Nó nên được sửa đổi từ Kiểm tra = "0" thành Kiểm tra = " 1 "(có dấu ngoặc kép)
Ngoài ra tôi cần thêm một số văn bản có dấu ngoặc kép ở cuối tệp với sed Giống như "Cảm ơn Quanta" (có trích dẫn) Đối với php, bạn đặt \ với dấu ngoặc kép, không biết cách thực hiện cho bash
Một điều nữa
tôi cần sửa đổi một dòng trong một conf nhưng tôi không nhớ toàn bộ văn bản cần thay thế là gì
Giống như nó lắng nghe = một cái gì đó; , tôi muốn sửa đổi nó để nghe = /tmp/php5-fpm.sock;
Big ngón tay cái lên cho lượng tử
Cảm ơn những người hỗ trợ tuyệt vời