fbpx Cơ bản về Bash & Câu lệnh đơn giản | Ứng Dụng AI Trong Kỷ Nguyên Mới| Gen AI Skip to main content
bash

Cơ bản về Bash & Câu lệnh đơn giản

 

Buổi 1: Hello Bash

📄 Nội dung:

  • Tạo file script

  • In ra màn hình

  • Gán và sử dụng biến

#!/bin/bash                      # Dòng khai báo dùng shell bash để chạy
echo "Xin chào thế giới!"        # In ra màn hình
name="Người dùng"                # Gán giá trị cho biến 'name'
echo "Chào mừng, $name!"         # Sử dụng biến

📌 Giải thích:

  • #!/bin/bash: Khai báo "interpreter" của script là bash shell.

  • echo: Dùng để in chuỗi ra màn hình.

  • Biến không có dấu $ khi khai báo, nhưng khi gọi ra thì cần $.


Buổi 2: Câu lệnh điều kiện (if-else)

📄 Ví dụ kiểm tra quyền root:

#!/bin/bash

if [ "$EUID" -eq 0 ]; then
  echo "Bạn đang là root"
else
  echo "Bạn KHÔNG phải root"
fi

📌 Giải thích:

  • $EUID: Biến môi trường trả về UID của người dùng hiện tại.

  • [ "$EUID" -eq 0 ]: So sánh số nguyên, nếu bằng 0 => root.

  • then ... else ... fi: Cấu trúc điều kiện trong Bash.


Buổi 3: Nhập từ bàn phím

📄 Ví dụ yêu cầu nhập tên

#!/bin/bash

read -p "Nhập tên của bạn: " ten
echo "Xin chào $ten!"

📌 Giải thích:

  • read: Nhận giá trị từ bàn phím và lưu vào biến.

  • -p: Hiển thị prompt trước khi nhập.


🧭 Tuần 2: Vòng lặp & Tham số dòng lệnh


Buổi 4: Vòng lặp for & while

📄 In số từ 1 đến 5:

#!/bin/bash

for i in {1..5}; do
  echo "Số: $i"
done

📄 Lặp với while:

#!/bin/bash

i=1
while [ $i -le 5 ]; do
  echo "Lặp lần $i"
  ((i++))
done

📌 Giải thích:

  • {1..5}: Tạo dãy số.

  • while: Lặp khi điều kiện còn đúng.

  • ((i++)): Tăng biến i sau mỗi vòng lặp.


Buổi 5: Tham số dòng lệnh

📄 Ví dụ dùng $1, $2, $#

#!/bin/bash

echo "Tham số 1: $1"
echo "Tham số 2: $2"
echo "Tổng số tham số: $#"

📌 Giải thích:

  • $1, $2: Tham số đầu tiên, thứ hai khi gọi script.

  • $#: Tổng số tham số truyền vào script.

📄 Gọi script:

./script.sh Linus Torvalds

Buổi 6: Kiểm tra file và thư mục

📄 Kiểm tra file tồn tại

#!/bin/bash

file="myfile.txt"

if [ -f "$file" ]; then
  echo "$file tồn tại"
else
  echo "$file không tồn tại"
fi

📌 Giải thích:

  • -f: Kiểm tra có phải file thường không.


🧭 Tuần 3: Hàm, Menu, Tự động hóa


Buổi 7: Hàm trong Bash

📄 Ví dụ định nghĩa hàm:

#!/bin/bash

say_hello() {
  echo "Xin chào $1!"
}

say_hello "Admin"

📌 Giải thích:

  • say_hello là một hàm nhận 1 tham số.

  • $1 là tham số truyền vào hàm.


Buổi 8: Script tạo menu lựa chọn

📄 Menu đơn giản:

#!/bin/bash

echo "1. Xem ngày"
echo "2. Xem thư mục hiện tại"
read -p "Chọn tùy chọn (1/2): " choice

if [ "$choice" == "1" ]; then
  date
elif [ "$choice" == "2" ]; then
  pwd
else
  echo "Lựa chọn không hợp lệ"
fi

📌 Giải thích:

  • date: Hiển thị thời gian hiện tại.

  • pwd: In ra thư mục hiện tại.


Buổi 9: Script sao lưu thư mục

📄 Sao lưu /etc thành file tar

#!/bin/bash

backup_dir="/backup"
mkdir -p "$backup_dir"

tar -czf "$backup_dir/etc_backup_$(date +%F).tar.gz" /etc

echo "Đã sao lưu /etc vào $backup_dir"

📌 Giải thích:

  • mkdir -p: Tạo thư mục nếu chưa có.

  • tar -czf: Tạo file nén dạng .tar.gz

  • $(date +%F): Ngày hiện tại định dạng YYYY-MM-DD.


🧭 Tuần 4: Lập lịch và Hardening


Buổi 10: Lên lịch với Cron

📄 Thêm lịch chạy script mỗi ngày:

crontab -e

📄 Dòng thêm vào:

0 2 * * * /home/user/scripts/backup.sh

📌 Giải thích:

  • Chạy lúc 2h sáng mỗi ngày.

  • 0 2 * * *: (Phút, Giờ, Ngày, Tháng, Thứ)


Buổi 11: Tăng tính bảo mật cho script

📄 Gợi ý bảo mật:

  • Sử dụng set -e để dừng khi lỗi

  • Kiểm tra quyền user (chỉ cho root chạy)

  • Log thông tin

#!/bin/bash
set -e

if [ "$EUID" -ne 0 ]; then
  echo "Script này chỉ được chạy bởi root"
  exit 1
fi

echo "Chạy bởi root vào $(date)" >> /var/log/script.log

Buổi 12: Dự án nhỏ

📌 Bài tập cuối khóa: Viết một script kiểm tra các dịch vụ quan trọng (nginx, ssh, mysql) và gửi mail nếu có dịch vụ ngừng hoạt động.

Bạn có muốn mình hướng dẫn chi tiết bài tập này?


📦 BONUS: Công cụ hỗ trợ

Công cụ Mục đích
shellcheck Kiểm tra lỗi script
shfmt Format script gọn gàng
logrotate Quản lý log tự động

 

About

Công ty thiết kế web app chuyên thiết kế web và các dịch vụ maketing digital, seo, google adword...