Cơ bản về lập trình Shell (Bash Script)
Shell Script là một tập hợp các lệnh được viết trong tệp văn bản và có thể thực thi bởi trình thông dịch shell (ví dụ: bash
, sh
, zsh
).
Bash (Bourne Again Shell) là một trong những shell phổ biến nhất trong Linux.
📝 1. Tạo và chạy một Bash Script cơ bản
1.1. Tạo một tệp script
Mở terminal và tạo một tệp script:
$ nano script.sh
Thêm nội dung sau:
#!/bin/bash
echo "Xin chào, đây là script đầu tiên của bạn!"
Lưu và đóng tệp (Ctrl + X
→ Y
→ Enter
).
1.2. Cấp quyền thực thi
$ chmod +x script.sh
1.3. Chạy script
$ ./script.sh
🎯 2. Cấu trúc cơ bản của Bash Script
2.1. Dòng khai báo shell (shebang
)
Dòng đầu tiên (#!/bin/bash
) cho biết script sẽ được thực thi bởi Bash.
#!/bin/bash
2.2. Biến trong Bash
2.2.1. Biến mặc định
- Khai báo biến
name="Hoàng Minh"
age=25
- Gọi biến
echo "Tên của tôi là $name và tôi $age tuổi."
- Chú ý: Không có khoảng trắng xung quanh
=
.
2.2.2. Biến môi trường
echo "Tên người dùng: $USER"
echo "Thư mục hiện tại: $PWD"
echo "Shell đang dùng: $SHELL"
2.2.3. Biến từ đầu vào ($1
, $2
, ... "$@"
)
Lấy đối số từ dòng lệnh:
#!/bin/bash
echo "Tham số đầu tiên: $1"
echo "Tham số thứ hai: $2"
echo "Tất cả tham số: $@"
Chạy với đối số:
$ ./script.sh XinChao 2024
🔄 3. Cấu trúc điều kiện
3.1. Câu lệnh if-else
#!/bin/bash
read -p "Nhập số: " num
if [ $num -gt 10 ]; then
echo "Số lớn hơn 10"
else
echo "Số nhỏ hơn hoặc bằng 10"
fi
Toán tử so sánh:
Toán tử | Ý nghĩa |
---|---|
-eq |
Bằng (== ) |
-ne |
Không bằng (!= ) |
-gt |
Lớn hơn (> ) |
-lt |
Nhỏ hơn (< ) |
-ge |
Lớn hơn hoặc bằng (>= ) |
-le |
Nhỏ hơn hoặc bằng (<= ) |
🔁 4. Vòng lặp
4.1. Vòng lặp for
#!/bin/bash
for i in {1..5}; do
echo "Lần lặp: $i"
done
4.2. Vòng lặp while
#!/bin/bash
count=1
while [ $count -le 5 ]; do
echo "Lần: $count"
((count++))
done
📂 5. Xử lý tệp và thư mục
5.1. Kiểm tra tệp/thư mục
#!/bin/bash
file="test.txt"
if [ -f "$file" ]; then
echo "Tệp tồn tại!"
else
echo "Tệp không tồn tại!"
fi
Toán tử | Ý nghĩa |
---|---|
-f |
Kiểm tra tệp có tồn tại |
-d |
Kiểm tra thư mục có tồn tại |
-e |
Kiểm tra tệp hoặc thư mục có tồn tại |
🎤 6. Nhập dữ liệu từ người dùng
#!/bin/bash
read -p "Nhập tên của bạn: " name
echo "Xin chào, $name!"
⚡ 7. Hàm trong Bash
#!/bin/bash
say_hello() {
echo "Xin chào, $1!"
}
say_hello "Minh"
⏳ 8. Script chạy nền & lập lịch
8.1. Chạy script nền
$ ./script.sh &
8.2. Lập lịch với cron
Mở cron:
$ crontab -e
Thêm:
0 * * * * /path/to/script.sh # Chạy mỗi giờ
📌 9. Một số lệnh hữu ích trong Bash
Lệnh | Mô tả |
---|---|
date |
Hiển thị ngày giờ hiện tại |
whoami |
Hiển thị user hiện tại |
pwd |
Hiển thị thư mục hiện tại |
ls |
Liệt kê thư mục |
grep |
Tìm kiếm nội dung trong tệp |
sed |
Chỉnh sửa dòng trong tệp |
awk |
Xử lý văn bản theo cột |
🎯 10. Ví dụ Script Thực Tế
10.1. Script sao lưu tệp
#!/bin/bash
src="/home/user/Documents"
dest="/home/user/backup_$(date +%Y%m%d).tar.gz"
tar -czf $dest $src
echo "Sao lưu xong: $dest"
10.2. Script kiểm tra kết nối mạng
#!/bin/bash
ping -c 1 google.com &> /dev/null
if [ $? -eq 0 ]; then
echo "Mạng đang hoạt động!"
else
echo "Mạng bị lỗi!"
fi
🎯 Tóm tắt
- Tạo script bằng cách viết tệp
.sh
. - Cấp quyền thực thi bằng
chmod +x
. - Sử dụng biến, vòng lặp, điều kiện trong script.
- Làm việc với tệp/thư mục và xử lý đầu vào từ người dùng.
- Tạo hàm và lập lịch tự động với cron.
All rights reserved