1. พื้นฐานของ Bash
Bash Shell คืออะไร
Bash (Bourne Again Shell) เป็นส่วนติดต่อบรรทัดคำสั่งที่ใช้กันอย่างแพร่หลายที่สุดในลินุกซ์ดิสทริบิวชัน เครื่องมือนี้ใช้งานง่ายและทรงพลัง มอบแพลตฟอร์มให้ผู้ใช้สามารถโต้ตอบกับระบบ เช่น การจัดการไฟล์ การรันโปรแกรม และการจัดการงานพื้นฐานต่าง ๆ ได้อย่างหลากหลาย
ข้อดีของ Bash
- ความสามารถในการเขียนสคริปต์ที่ทรงพลัง: Bash สามารถอัตโนมัติกระบวนการที่ซับซ้อนได้ด้วย shell script
- ได้รับการสนับสนุนอย่างกว้างขวาง: รองรับในระบบปฏิบัติการ Unix เกือบทั้งหมดและลินุกซ์ดิสทริบิวชันส่วนใหญ่
- ปรับแต่งได้สูง: ผู้ใช้สามารถปรับแต่งสภาพแวดล้อมให้ตรงกับสไตล์การทำงานของตนเองด้วย alias และ shell function
# ตัวอย่างคำสั่ง Bash พื้นฐาน
echo "Hello, World!"
2. คำสั่งพื้นฐานของ Bash
การจัดการไฟล์
ต่อไปนี้คือคำสั่งที่ใช้จัดการไฟล์ใน Bash ซึ่งใช้งานบ่อยที่สุด
ls
: แสดงรายการไฟล์และโฟลเดอร์ในไดเรกทอรีcd
: เปลี่ยนไดเรกทอรีcp
: คัดลอกไฟล์หรือไดเรกทอรีmv
: ย้ายหรือเปลี่ยนชื่อไฟล์rm
: ลบไฟล์
# แสดงรายละเอียดไฟล์ในไดเรกทอรี
ls -l
# ไปยังโฮมไดเรกทอรี
cd ~
# คัดลอกไฟล์
cp source.txt destination.txt
# ย้ายหรือเปลี่ยนชื่อไฟล์
mv old_name.txt new_name.txt
# ลบไฟล์
rm unwanted_file.txt
การดูข้อมูลระบบและจัดการโปรเซส
คำสั่งที่ใช้ตรวจสอบข้อมูลระบบและจัดการโปรเซสก็สำคัญเช่นกัน
ps
: แสดงโปรเซสที่กำลังทำงานอยู่top
: แสดงรายชื่อโปรเซสแบบเรียลไทม์และภาพรวมของระบบkill
: ส่งสัญญาณไปหยุดโปรเซส
# แสดงโปรเซสที่ทำงานอยู่
ps aux
# ดูสรุประบบและรายการโปรเซส
top
# หยุดโปรเซสที่มี PID 1234
kill 1234

3. วิธีเขียน Bash Script
โครงสร้างพื้นฐานของสคริปต์
Bash Script คือไฟล์ที่ประกอบด้วยคำสั่งหลายบรรทัด สามารถใช้เพื่ออัตโนมัติกระบวนการหรือชุดงานต่าง ๆ ได้
#!/bin/bash
# บรรทัดนี้เรียกว่า shebang ใช้กำหนด shell ที่จะตีความสคริปต์
echo "Hello, World!" # แสดงข้อความด้วยคำสั่ง echo
การใช้ตัวแปร
สามารถใช้ตัวแปรเพื่อเก็บข้อมูลและนำไปใช้ซ้ำภายในสคริปต์
#!/bin/bash
message="Hello, Bash Scripting!"
echo $message
เงื่อนไขและลูป
ใช้โครงสร้างเงื่อนไขและลูปเพื่อสร้างตรรกะที่ซับซ้อนหรือทำซ้ำงานเดิม ๆ
#!/bin/bash
# ตัวอย่าง if statement
if [ $1 -gt 100 ]
then
echo "The number is greater than 100."
else
echo "The number is 100 or less."
fi
# ตัวอย่าง for loop
for i in 1 2 3 4 5
do
echo "Looping ... number $i"
done
4. การทำงานอัตโนมัติด้วย Bash
ภาพรวมของการทำงานอัตโนมัติ
สามารถใช้ Bash Script เพื่อทำงานที่ต้องทำซ้ำ ๆ ให้เป็นอัตโนมัติ เช่น การสำรองข้อมูล ซิงก์ข้อมูล สร้างรายงาน ฯลฯ ช่วยลดภาระของผู้ดูแลระบบ
สคริปต์สำรองข้อมูลอัตโนมัติ
ตัวอย่างสคริปต์ด้านล่างจะสำรองโฟลเดอร์ที่กำหนดไว้เป็นประจำเพื่อปกป้องข้อมูล
#!/bin/bash
SRC_DIR="/home/user/documents"
DST_DIR="/backup/documents"
DATE=$(date +%Y%m%d)
# หากไม่มีไดเรกทอรีสำรองข้อมูล ให้สร้างขึ้นมา
if [ ! -d "$DST_DIR" ]; then
mkdir -p "$DST_DIR"
fi
# บีบอัดและสำรองข้อมูล
tar -czf "$DST_DIR/backup_$DATE.tar.gz" -C "$SRC_DIR" .
echo "Backup completed successfully."
รันสคริปต์อัตโนมัติด้วย cron job
ใช้ cron ตั้งให้สคริปต์สำรองข้อมูลด้านบนทำงานอัตโนมัติทุกวันตอน 2.00 น.
0 2 * * * /path/to/backup.sh
การจัดการข้อผิดพลาดและการแจ้งเตือน
เพิ่มการจัดการข้อผิดพลาดในกระบวนการสำรองข้อมูล และแจ้งเตือนผู้ดูแลเมื่อเกิดปัญหา
#!/bin/bash
SRC_DIR="/home/user/documents"
DST_DIR="/backup/documents"
LOG_FILE="/var/log/backup.log"
DATE=$(date +%Y%m%d)
if [ ! -d "$DST_DIR" ]; then
mkdir -p "$DST_DIR"
fi
if tar -czf "$DST_DIR/backup_$DATE.tar.gz" -C "$SRC_DIR" .; then
echo "Backup successful on $DATE" >> $LOG_FILE
else
echo "Backup failed on $DATE" | mail -s "Backup Failure" admin@example.com
fi