Bài 18. Các thao tác tạo và sử dụng bash script
Trong bài viết này, chúng ta sẽ cùng nhau làm việc với Bash Script trong Linux. Sức mạnh của "Bash Script" đến từ các cú pháp gần tương tự như một ngôn ngữ lập trình, "system admin" có thể tận dụng "Bash Script" cho các công việc tự động hóa, công việc lặp lại nhiều lần. Nó giúp chúng ta tối ưu được thời gian vận hành.
Mục lục:
- Chuẩn bị.
- Các thao tác tạo và sử dụng"Bash Script"
- Lời kết.
1. Chuẩn bị
- Đã cài đặt máy ảo Ubuntu trên Oracle VM VirtualBox
- Đã thực hiện thiết lập SSH tới máy chủ Ubuntu, sẵn sàng nhập lệnh
2. Tạo và sử dụng Bash Script
- Đầu tiên là các bạn khởi động máy chủ Ubuntu và kết nối với máy chủ thông qua SSH Key như bài trước, ví dụ:
ssh -i ~/.ssh/xboxuser_rsa [email protected]
2.1: Tạo tệp tin bash script cơ bản:
- Tạo tệp tin "myscript.sh" trong thư mục home của người dùng
touch ~/myscript.sh
- Viết nội dung cho "script", bạn có thể sử dụng một editor bất kỳ, vim hoặc nano, và thêm nội dung cho tệp "myscript.sh"
#!/bin/bash echo "Hello, world!" #!/bin/bash n=10 if [ $n -lt 10 ]; then echo "It is a one digit number" else echo "It is a two digit number" fi
- Cấp quyền thực thi cho tệp tin
chmod +x ~/myscript.sh
- Chạy script đã tạo
~/myscript.sh # các câu lệnh tương tự cho phép chạy script # /home/devops/myscript.sh # ./myscript.sh
2.2: Tạo bash script lưu tập tin và thư mục vào một thư mục đích:
- Tạo tệp tin "save_script.sh" trong thư mục home của người dùng
touch ~/save_script.sh
- Viết nội dung cho "save_script", bạn có thể sử dụng một editor bất kỳ, vim hoặc nano, và thêm nội dung cho tệp "save_script.sh"
#!/bin/bash
# Script name: backup.sh
# Author: [Your Name]
# Description: This script backs up files and directories to a specified destination folder.
# Check if the correct number of arguments is provided
if [ $# -lt 2 ]; then
echo "Usage: $0 <source> <destination>"
exit 1
fi
# Source directory
source_dir="$1"
# Destination directory
destination_dir="$2"
# Check if source directory exists
if [ ! -d "$source_dir" ]; then
echo "Source directory '$source_dir' not found."
exit 1
fi
# Check if destination directory exists, if not create it
if [ ! -d "$destination_dir" ]; then
echo "Destination directory '$destination_dir' not found. Creating it..."
mkdir -p "$destination_dir"
fi
# Create a backup directory with current timestamp
backup_dir="$destination_dir/backup_$(date +%Y%m%d_%H%M%S)"
mkdir "$backup_dir"
# Backup files and directories
echo "Backing up files and directories from '$source_dir' to '$backup_dir'..."
cp -r "$source_dir"/* "$backup_dir"
echo "Backup completed successfully."
- Cấp quyền thực thi cho tệp tin
chmod +x ~/save_script.sh
- Chạy script đã tạo
~/save_script.sh
3. Lời kết
- Qua việc tìm hiểu và thực hành viết bash script, bạn có thể nắm vững được cú pháp cơ bản của bash, các lệnh điều kiện, và các kỹ thuật tương tác với hệ thống và người dùng. Từ việc đơn giản nhất như in ra một chuỗi lời chào đến các kịch bản phức tạp như sao lưu dữ liệu, bash script có thể được tùy chỉnh và mở rộng theo nhu cầu cụ thể của mỗi người dùng.
Tác giả: Đỗ Thiên Giang
Chú ý: Tất cả các bài viết trên TEDU.COM.VN đều thuộc bản quyền TEDU, yêu cầu dẫn nguồn khi trích lại trên website khác.
Bài viết liên quan
Lộ trình Fullstack .NET Developer 2026
Chào bạn, bước sang năm 2026, lộ trình của một Fullstack .NET Developer đã có những thay đổi quan trọng để thích nghi với sự lên ngôi của AI, điện toán đám mây và phiên bản .NET 10 (LTS) vừa ra mắt cuối năm 2025.
Đọc thêm
TỔNG QUAN LÝ THUYẾT & THÀNH PHẦN CỐT LÕI SYSTEM DESIGN
Các lý thuyết cốt lõi trong System Design
Đọc thêm
Cẩm nang Big-O: Thước đo hiệu năng thuật toán trong C#
Hiểu rõ Big-O từ O(1) đến O(n!) qua ví dụ C# thuần. Bí quyết tối ưu code, chọn đúng cấu trúc dữ liệu để hệ thống luôn chạy nhanh và ổn định.
Đọc thêm
Bản Đồ Tư Duy Cho Dev: Giải Mã Cấu Trúc Dữ Liệu & Giải Thuật Cốt Lõi
Đọc thêm
Các mẫu thiết kế (design patterns) phổ biến trong kiến trúc Microservices.
Các mẫu thiết kế (design patterns) phổ biến trong kiến trúc Microservices.
Đọc thêm
Hướng dẫn Bind Jenkins vào IIS trên Windows bằng Reverse Proxy
Cho phép truy cập Jenkins từ một subdomain (ví dụ jenkins.tedu.com.vn) thay vì phải gõ http://localhost:8080.
Đọc thêm
Hiểu về AI, LLM, RAG và Agentic RAG trong 15 phút
Trong vài năm gần đây, trí tuệ nhân tạo (AI) đã bùng nổ mạnh mẽ và trở thành tâm điểm của cả thế giới công nghệ. Nhưng đi kèm với nó là hàng loạt khái niệm mới như LLM, RAG, hay Agentic RAG khiến nhiều người mới bắt đầu cảm thấy lúng túng.
Đọc thêm
Hướng dẫn tự triển khai N8N trên CentOS bằng Docker Compose và NGINX
N8N là công cụ mã nguồn mở cho phép bạn tự động hóa quy trình làm việc (workflow automation) và tích hợp nhiều dịch vụ khác nhau mà không cần phải lập trình.
Đọc thêm
Hướng dẫn phân tích độ phức tạp thuật toán chi tiết
Độ phức tạp của giải thuật là một cách để đánh giá hiệu quả của một giải thuật dựa trên hai yếu tố chính là độ phức tạp thời gian và độ phức tạp không gian.
Đọc thêm
Bài 6. Các thao tác với XPath và Selector trong Selenium
Bài viết này hướng dẫn bạn làm việc XPath và Css Selector trong Selenium.
Đọc thêm