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.