Hướng dẫn cho người mới bắt đầu viết kịch bản trên Linux
Bạn đã bao giờ muốn học "kịch bản" trong Linux chưa? Làm cho chúng dễ dàng hơn bạn nghĩ. Đôi khi các kịch bản (thường được gọi là các kịch bản shell hoặc bash) là các chương trình thực sự có mã phức tạp bên trong. Lần khác, họ chỉ là một danh sách dài các nhiệm vụ mà người dùng đặt lại với nhau để làm cho mọi thứ được thực hiện trong Linux nhanh hơn và dễ dàng hơn.
Trong bài viết này, chúng tôi đã quyết định thực hiện một hướng dẫn nhanh giải thích cách tạo một kịch bản lệnh shell cơ bản trong Linux. Hướng dẫn này sẽ không biến bạn thành một chuyên gia về Bash hay kịch bản. Thay vào đó, nó sẽ cho bạn thấy cách dễ dàng để bắt đầu (và các phương pháp hay nhất) trong Linux.
Tại sao bạn sẽ làm một kịch bản?
Tạo kịch bản trong Linux là một kỹ năng rất hữu ích để có. Ngay cả khi bạn không hoàn toàn hiểu Bash, bạn có thể sử dụng kiến thức hạn chế của thiết bị đầu cuối để tự động hóa và “thực hiện hàng loạt” một số tác vụ hoặc đơn giản là mở đồng thời nhiều ứng dụng.
Ví dụ: có thể bạn vừa xây dựng Arch Linux từ đầu. Hệ điều hành được cài đặt, cùng với tất cả các gói cơ bản, và nó có thể khởi động đến thiết bị đầu cuối khi hệ điều hành khởi động. Arch Linux cần thời gian để thiết lập, vì vậy quá trình này chưa hoàn tất.
Chính tại thời điểm này, người dùng có thể viết một kịch bản Bash và hoàn thành mọi thứ cùng một lúc. Không ai trong số này là lập trình hoặc nâng cao cho vấn đề đó. Tuy nhiên, với thực tế là người dùng hiểu đủ về cách mà Arch Linux hoạt động, họ có thể tự động hóa gần như toàn bộ quá trình thiết lập sau (môi trường máy tính, trình điều khiển, thiết lập người dùng, v.v.).
Giới hạn duy nhất đối với tập lệnh bash của bạn là kiến thức về Linux và Bash của riêng bạn! Làm cho chúng dễ dàng hơn bạn nghĩ.
Bắt đầu - Shebangs
Khi viết mã, mọi thứ cần phải được chỉ định và tài nguyên được tải. Khi kịch bản với trình bao, một số thứ cần phải được chỉ định là tốt. Trong bash scripting, nó được gọi là "shebang". Các shebang được sử dụng trong các kịch bản lệnh cho kịch bản thông dịch viên nào nên thực thi theo. Đây có thể là Bash hoặc bất kỳ tập lệnh nào khác có sẵn trong hệ thống của bạn. Hãy lưu ý rằng các ngôn ngữ khác nhau có các shebang riêng của chúng.
Ví dụ: Khi viết một kịch bản Python, shebang sẽ là #!/usr/bin/python
, v.v.
Bash có nhiều shebang khác nhau có thể được sử dụng, nhưng hầu hết người dùng có lẽ chỉ nhìn thấy #!/bin/bash
. Theo nguyên tắc chung, hãy sử dụng #!/bin/bash
khi viết một tập lệnh đơn giản và không có kế hoạch lấy nó ra khỏi Linux. Tất cả các bản phân phối Linux hiện đại đều có cùng phiên bản bash, và bash shell thường nằm ở cùng một chỗ.
Một shebang khác chứng minh rằng nó hữu ích là #!/usr/bin/env bash
shebang. Điều này được thiết kế cho tính di động và nên được sử dụng nếu kịch bản được thiết kế để chạy trên các hệ điều hành giống Unix khác (BSD, macOS, v.v.).
Thực hành tốt nhất
Viết kịch bản trong Bash có thể là một quá trình phức tạp nếu người viết làm theo cách đó. Thường xuyên hơn không, kịch bản chỉ là một tập hợp các hoạt động khác nhau. Di chuyển một tập tin, tải về một cái gì đó, cài đặt chương trình, và đó là loại điều.
- Hãy nhớ rằng Bash là một ngôn ngữ được thiết kế để thao tác các tệp và các quy trình trên hệ thống. Nếu Bash đáp ứng nhu cầu của bạn, điều đó là tốt. Tuy nhiên, hãy hiểu rằng đối với lập trình nâng cao, Bash thực sự không phải là lựa chọn đúng đắn, và tốt nhất là nên chuyển sang một thứ như Python.
- Làm cho kịch bản của bạn “SH” tương thích và ở định dạng “.sh” nếu kế hoạch là sử dụng các tập lệnh trên nhiều nền tảng Linux. Mặc dù các hệ điều hành giống UNIX khác có thể có các shell “bash-like”, nhưng một số hệ điều hành không có chút bash nào cả, và rất tốt để chuẩn bị cho việc này.
- Tìm hiểu shell Bash và cách nó hoạt động. Nó sẽ giúp bạn viết kịch bản của bạn tốt hơn.
- Luôn luôn sử dụng một shebang và quan trọng hơn: sử dụng đúng . Nó có thể có nghĩa là sự khác biệt giữa một kịch bản tốt và một kịch bản khủng khiếp không hoạt động đúng.
- Luôn luôn nhận xét mọi hoạt động. Trong sáu tháng, bạn có thể quay lại kịch bản và tự hỏi ý nghĩa của mọi thứ, vì vậy điều quan trọng là kịch bản của bạn được viết thành tài liệu và dễ hiểu (đối với bạn và bất kỳ ai khác có thể thấy nó).
- Làm cho mã của bạn có thể đọc được. Ngay cả khi kịch bản của bạn không phải là bất cứ điều gì phức tạp, nó vẫn có ý nghĩa, và làm cho chúng dễ dàng hơn bạn nghĩ.
- Kiểm tra tập lệnh của bạn để tìm lỗi trước khi đưa ra cho người khác. Đừng làm cho người khác kiểm tra lỗi cho bạn. Lý tưởng nhất, kịch bản nên hoạt động trước khi bạn gửi chúng ra để mọi người sử dụng.
Tạo kịch bản
Để bắt đầu kịch bản, tất cả những gì bạn cần là một trình soạn thảo văn bản. Bất kỳ trình soạn thảo văn bản đơn giản nào cũng sẽ làm - nó không phải là một trình soạn thảo phức tạp hoặc toàn diện. Trong ví dụ này, chúng ta sẽ tạo một kịch bản cập nhật Ubuntu đơn giản bằng Gedit.
#! / bin / bash
Phần đầu tiên của kịch bản là shebang, như đã đề cập trước đây. Điều này cho phép kịch bản thông báo cho người phiên dịch những gì nó nên sử dụng để hiểu mã.
Tiếp theo, hãy viết bình luận. Điều này sẽ cho phép bất kỳ ai sử dụng tập lệnh để hiểu mã có nghĩa là gì. Có thể thêm nhận xét vào tập lệnh bằng cách đặt ký hiệu “#”. Bất cứ điều gì sau khi nó sẽ không được chọn bởi kịch bản.
# Bản cập nhật Ubuntu đơn giản của tôi
Bây giờ là lúc để thêm mã vào tập lệnh. Trong trường hợp này, chúng tôi đang làm việc để tạo một tập lệnh bash sẽ chạy hai lệnh cập nhật của Ubuntu trong kế tiếp. Bắt đầu với lệnh cập nhật nguồn phần mềm.
sudo apt update
Phần thứ hai của kịch bản là apt upgrade
. Lệnh này cho phép các bản cập nhật đã kiểm tra trước đó được cài đặt. Thêm một -y
vào cuối để kịch bản sẽ không cần bất kỳ tương tác người dùng nào. Điều này sẽ cho phép lệnh tự cập nhật.
sudo apt upgrade -y
Lưu tập lệnh bằng phần mở rộng ".sh". Ví dụ: “myscript.sh.”
Để chạy tập lệnh, mở một terminal và gõ:
sudo chmod + x myscript.sh
Điều này sẽ đánh dấu kịch bản mới được tạo thành tệp thực thi. Làm điều này với các kịch bản không phải lúc nào cũng được yêu cầu, vì phần lớn Bash sẽ chạy nó. Bất kể, đây là một thực hành tốt khi kịch bản.
Để thực thi kịch bản mới được tạo, hãy chạy lệnh sau:
sudo bash myscript.sh.
Tiện ích tệp
Không có sự khác biệt trong phần mở rộng tệp cho tập lệnh. Đặt tên tệp có phần mở rộng tệp ".sh" sẽ ít ảnh hưởng đến cách chương trình "chạy". Một kịch bản Bash sẽ vẫn chạy mà không có phần mở rộng tập tin - các tệp văn bản trống và mọi thứ ở giữa chừng nào các lệnh và các đối số bên phải có mặt.
Mặc dù vỏ Bash bỏ qua các phần mở rộng của tệp, điều đó không có nghĩa là người viết kịch bản nên. Một số môi trường máy tính để bàn cho phép thiết lập các kịch bản lệnh shell để chạy lúc khởi động phụ thuộc vào tập lệnh để có phần mở rộng tệp ".sh" chính xác. Điều này cũng giúp cho mục đích tổ chức.
Khi nó đi xuống đến nó, hầu hết các kịch bản shell được lưu dưới dạng ".sh" tập tin cho tính di động. Chữ "sh" không liên quan gì đến bản thân Bash, và kịch bản có thể chạy với bất kỳ trình bao tương thích nào.
Ngoài ra, các tập lệnh có thể được lưu dưới dạng .bash, .ksh (vỏ korn Unix), vv Các phần mở rộng tệp này kém hơn và thực sự hạn chế tính hữu ích của tập lệnh. Điều này là do thực tế là chúng được thiết kế chỉ dành cho các vỏ sử dụng các phần mở rộng đó.
Tài nguyên mã
Đối với những người tìm kiếm các kịch bản Bash hữu ích, hãy kiểm tra Bash User Repository trên Reddit. Nó là một tập hợp các kịch bản gọn gàng và hữu ích được miễn phí để sử dụng và sửa đổi!
Ngoài ra, những người tìm kiếm để tìm hiểu bản chất tiên tiến của Bash và lập trình với trình bao nên kiểm tra Freecode. Trang web này có toàn bộ hướng dẫn bài học dạy mọi thứ cần biết về kịch bản lệnh Bash nâng cao.
Phần kết luận
Mặc dù kịch bản với Bash trên Linux không phải là một tính năng độc đáo (các máy Mac cũng bị bash), nó có xu hướng giúp người dùng Linux ra toàn diện hơn. Xem xét rất nhiều của Linux có thể được thực hiện theo thiết bị đầu cuối, học cách thao tác vỏ là rất hữu ích.
Bạn sử dụng kịch bản Bash nào trong Linux để làm cho cuộc sống của bạn dễ dàng hơn? Hãy cho chúng tôi biết dưới đây!
Hình ảnh nổi bật: Jm3