Panduan Lengkap Bash Scripting di Ubuntu | Automasi & Pengoptimuman Pengurusan Tugas

1. Asas Bash

Apakah Bash Shell?

Bash (Bourne Again Shell) ialah antara antara muka baris perintah yang paling kerap digunakan dalam pengedaran Linux. Alat yang ringkas namun berkuasa ini menyediakan platform bagi pengguna untuk berinteraksi dengan sistem, membolehkan mereka melaksanakan tugas penting seperti operasi fail, pelaksanaan program, dan pengurusan tugas.

Kelebihan Bash

  • Keupayaan skrip yang kuat: Bash membolehkan pengguna mengautomasikan tugas-tugas kompleks menggunakan skrip shell.
  • Sokongan meluas: Ia disokong oleh kebanyakan sistem operasi berasaskan Unix dan distribusi Linux.
  • Kebolehsuaian tinggi: Pengguna boleh menyesuaikan persekitaran mereka mengikut aliran kerja mereka menggunakan alias dan fungsi shell.
# Simple Bash command example
echo "Hello, World!"

2. Perintah Bash Asas

Operasi Fail

Berikut adalah beberapa perintah operasi fail yang paling kerap digunakan dalam Bash.

  • ls: Senaraikan kandungan direktori.
  • cd: Tukar direktori.
  • cp: Menyalin fail atau direktori.
  • mv: Memindahkan atau menamakan semula fail.
  • rm: Memadam fail.
# Display detailed contents of a directory
ls -l

# Move to the home directory
cd ~

# Copy a file
cp source.txt destination.txt

# Move a file
mv old_name.txt new_name.txt

# Delete a file
rm unwanted_file.txt

Maklumat Sistem dan Pengurusan Proses

Menyemak maklumat sistem dan mengurus proses juga merupakan tugas penting.

  • ps: Memaparkan proses aktif.
  • top: Menunjukkan senarai proses secara masa nyata dan gambaran keseluruhan sistem.
  • kill: Menghantar isyarat untuk menamatkan proses.
# Display active processes
ps aux

# Show system overview and process list
top

# Terminate process with ID 1234
kill 1234

3. Menulis Skrip Bash

Struktur Skrip Asas

Skrip Bash ialah fail yang mengandungi pelbagai arahan. Dengan mencipta skrip, anda boleh mengautomatikkan dan melaksanakan satu siri operasi.

#!/bin/bash
# This line is called a shebang and specifies the shell interpreter for the script.

echo "Hello, World!"  # Displays a string using the echo command

Menggunakan Pembolehubah

Pembolehubah boleh digunakan untuk menyimpan dan menggunakan semula data dalam skrip.

#!/bin/bash
message="Hello, Bash Scripting!"
echo $message

Penyataan Bersyarat dan Gelung

Penyataan bersyarat dan gelung membantu mengendalikan logik yang kompleks serta tugas berulang.

#!/bin/bash
# Example of an if statement
if [ $1 -gt 100 ]
then
  echo "The number is greater than 100."
else
  echo "The number is 100 or less."
fi

# Example of a for loop
for i in 1 2 3 4 5
do
  echo "Looping ... number $i"
done

4. Mengautomasi Tugas dengan Bash

Gambaran Keseluruhan Automasi Tugas

Dengan menggunakan skrip Bash, anda boleh mengautomasi tugas rutin seperti sandaran sistem, penyegerakan data, dan penjanaan laporan dengan cekap, mengurangkan usaha yang diperlukan untuk pentadbiran sistem.

Skrip Sandaran Automatik

Untuk perlindungan data harian, skrip berikut secara berkala menyandarkan direktori yang ditentukan.

#!/bin/bash
SRC_DIR="/home/user/documents"
DST_DIR="/backup/documents"
DATE=$(date +%Y%m%d)

# Create the backup directory if it doesn't exist
if [ ! -d "$DST_DIR" ]; then
  mkdir -p "$DST_DIR"
fi

# Compress and back up the directory contents
tar -czf "$DST_DIR/backup_$DATE.tar.gz" -C "$SRC_DIR" .
echo "Backup completed successfully."

Menjalankan Skrip Secara Automatik dengan Kerja cron

Dengan menggunakan cron, anda boleh menjadualkan skrip sandaran di atas untuk dijalankan setiap hari pada pukul 2 pagi.

0 2 * * * /path/to/backup.sh

Pengendalian Ralat dan Notifikasi

Untuk mengendalikan ralat semasa proses sandaran, tambahkan pengesanan ralat dan hantar notifikasi kepada pentadbir apabila berlaku isu.

#!/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

5. Penyelesaian Masalah dan Ralat Biasa

Memahami dan Menangani Ralat Bash

Adalah biasa untuk menemui ralat semasa menjalankan skrip Bash. Bahagian ini menerangkan beberapa ralat biasa dan cara menyelesaikannya.

Ralat Perintah Tidak Ditemui

Ralat ini berlaku apabila perintah yang anda cuba jalankan tidak dipasang pada sistem atau laluan tidak ditetapkan dengan betul.

command not found
  • Penyelesaian: Semak sama ada arahan dipasang dan pastikan pembolehubah persekitaran $PATH ditetapkan dengan betul.

Ralat Kebenaran Ditolak

Ralat ini berlaku apabila anda tidak mempunyai kebenaran yang diperlukan untuk mengakses fail atau direktori.

Permission denied
  • Penyelesaian: Laksanakan operasi dengan akaun pengguna yang sesuai atau ubah kebenaran fail menggunakan arahan chmod atau chown

Ralat Sintaks

Ralat ini terjadi apabila terdapat sintaks yang tidak betul dalam skrip.

syntax error: unexpected end of file
  • Solution: Semak skrip dengan teliti dan betulkan sebarang ralat sintaks.

Ralat Fail Tidak Ditemui

Ralat ini berlaku apabila fail yang dinyatakan tidak wujud.

No such file or directory
  • Penyelesaian: Sahkan bahawa laluan fail adalah betul dan pastikan fail tersebut wujud.

Menggunakan Alat Penyahpepijatan

Untuk menyahpepijat skrip Bash, gunakan set -x, yang memaparkan setiap langkah perintah semasa ia dilaksanakan, memudahkan mengenal pasti ralat.

set -x  # Enable script debugging

6. Teknik Bash Lanjutan

Bekerja dengan Fungsi

Fungsi dalam skrip Bash membantu memodularkan kod dan menjadikannya boleh digunakan semula.

#!/bin/bash
# Define a function
greet() {
  echo "Hello, $1!"
}

# Call the function with an argument
greet "Alice"

Mengendalikan Input Pengguna

Skrip Bash boleh berinteraksi dengan pengguna dengan menerima input dari baris perintah.

#!/bin/bash
echo "Enter your name:"
read name
echo "Hello, $name!"

Bekerja dengan Tatasusunan

Bash menyokong tatasusunan, yang membolehkan anda menyimpan pelbagai nilai dalam satu pembolehubah.

#!/bin/bash
fruits=("Apple" "Banana" "Cherry")

# Accessing elements
echo "First fruit: ${fruits[0]}"

# Looping through an array
for fruit in "${fruits[@]}"; do
  echo "Fruit: $fruit"
done

Ekspresi Biasa dan Manipulasi Rentetan

Skrip Bash boleh memanipulasi rentetan dan memadankan corak menggunakan ekspresi biasa.

#!/bin/bash
text="Bash scripting is fun!"

# Extract a substring
echo "${text:0:4}"  # Output: Bash

# Replace a word
echo "${text//fun/exciting}"  # Output: Bash scripting is exciting!

7. Conclusion

Summary

Panduan ini merangkumi segala-galanya dari arahan Bash asas hingga penulisan skrip, automasi, dan penyelesaian masalah. Dengan menguasai Bash, anda dapat mengurus dan mengautomasikan tugas sistem dengan cekap.

Further Learning

  • Terokai teknik skrip lanjutan seperti penggantian proses dan paip bernama.
  • Pelajari tentang mengintegrasikan Bash dengan bahasa pengaturcaraan lain seperti Python.
  • Bereksperimen dengan tugas automasi dunia nyata untuk meningkatkan kemahiran skrip anda.

Dengan sentiasa meningkatkan kemahiran Bash anda, anda boleh menjadi pentadbir sistem atau pembangun yang lebih mahir.

年収訴求