Hal Menarik dari Linux Shell Scripting untuk Developer
Di tengah banyaknya bahasa pemrograman modern, Linux shell scripting masih jadi skill yang “kecil tapi efeknya besar”.
Buat developer, shell script bukan cuma soal *.sh atau command terminal, tapi cara paling cepat untuk mengotomasi pekerjaan berulang, menghubungkan banyak tools, dan bikin workflow kerja jadi lebih rapi.
Kenapa shell scripting itu menarik?
1) Otomasi tugas repetitif dalam hitungan menit
Contoh klasik: setup project baru. Daripada ketik command yang sama berulang-ulang, kita cukup jalankan satu script.
#!/usr/bin/env bash
set -e
mkdir -p src tests docs
cp .env.example .env
npm install
npm run lint
echo "✅ Project siap dipakai"
Script sederhana kayak gini bisa hemat banyak waktu, apalagi kalau dilakukan setiap hari.
2) “Lem” untuk menggabungkan banyak tools
Shell scripting punya kekuatan unik: dia bisa jadi jembatan antar tool yang berbeda.
Misalnya, kamu bisa:
- ambil data via
curl - filter dengan
jqataugrep - simpan hasil ke file
- kirim notifikasi jika ada error
Semua itu bisa dikerjakan dalam satu alur script tanpa bikin service baru.
3) Cocok untuk server, CI/CD, dan DevOps
Banyak proses deploy dan maintenance server masih mengandalkan shell script karena:
- cepat ditulis
- mudah dijalankan di Linux mana pun
- minim dependency
Contoh penggunaan nyata:
- backup database harian
- rotate log
- health check service
- auto restart service saat gagal
Hal teknis yang bikin shell scripting powerful
1) Pipe dan redirection
Dengan pipe (|), output command bisa langsung jadi input command lain.
journalctl -u nginx --since "1 hour ago" | grep -i error | tail -n 20
Ini memudahkan proses investigasi log tanpa buka banyak aplikasi.
2) Variabel & parameter script
Script bisa reusable dengan menerima input dari user.
#!/usr/bin/env bash
name=${1:-developer}
echo "Halo, $name"
Jalankan:
./hello.sh apin
3) Exit code untuk kontrol alur
Shell command mengembalikan exit code (0 sukses, selain itu gagal). Ini penting untuk otomasi yang aman.
if npm test; then
echo "✅ Test lulus"
else
echo "❌ Test gagal"
exit 1
fi
4) Mode aman dengan set -euo pipefail
Best practice ini membantu script gagal lebih cepat dan jelas kalau ada error.
set -euo pipefail
-e: berhenti saat ada command gagal-u: error kalau pakai variabel yang belum didefinisikan-o pipefail: pipeline dianggap gagal jika salah satu command gagal
Contoh use case yang relevan untuk developer modern
1) Script jalankan quality check sebelum commit
#!/usr/bin/env bash
set -euo pipefail
npm run lint
npm run test
npm run build
echo "✅ Semua check lolos, siap commit"
2) Script monitoring resource server singkat
#!/usr/bin/env bash
echo "== Uptime =="
uptime
echo "\n== Memory =="
free -h
echo "\n== Disk =="
df -h
3) Script backup otomatis
#!/usr/bin/env bash
set -e
BACKUP_DIR="/srv/backup"
DATE=$(date +%F_%H-%M-%S)
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/app_$DATE.tar.gz" /srv/app
echo "✅ Backup selesai: $BACKUP_DIR/app_$DATE.tar.gz"
Batasan shell scripting (biar realistis)
Walau powerful, shell scripting bukan solusi untuk semuanya.
Kurang cocok jika:
- logika aplikasi sudah kompleks banget
- butuh struktur data rumit
- butuh maintainability jangka panjang ala aplikasi besar
Untuk kasus itu, biasanya lebih nyaman pindah ke Python/Go/Node, lalu shell script cukup dipakai sebagai orchestrator.
Tips biar script kamu tidak “rapuh”
- Selalu quote variabel:
"$VAR" - Pakai
shellcheckuntuk linting script - Beri logging yang jelas (
echobertahap) - Pisahkan script kecil per tujuan (deploy, backup, health-check)
- Simpan script penting di repo (versioned)
Penutup
Hal paling menarik dari Linux shell scripting adalah dampaknya yang besar dengan effort yang kecil.
Kamu tidak perlu jadi “shell wizard” dulu. Mulai dari script sederhana untuk tugas harian, lalu upgrade perlahan. Dalam beberapa minggu, biasanya workflow kamu akan terasa jauh lebih cepat, rapi, dan minim human error.
Kalau kamu developer yang sering kerja dengan Linux, belajar shell scripting itu bukan lagi bonus—tapi investasi skill yang sangat worth it.
Komentar
Memuat komentar...
Tulis Komentar