/ Soal dan Jawaban Ujian Akhir Semester Shell Script Linux
23 May 2025
09
35
Shell script adalah sekumpulan perintah yang ditulis dalam bahasa shell, seperti bash, yang dapat dijalankan secara berturut-turut. Shell script biasanya digunakan untuk menjalankan tindakan yang berulang-ulang, seperti mengatur server, atau mengelola file dan direktori.
Shell script juga bisa digunakan untuk menjalankan perintah-perintah yang ada di sistem operasi secara otomatis. Contohnya, sebuah shell script bisa digunakan untuk mengekstrak file zip, mengirim email, atau mengatur firewall.
1.Buatlah shell script untuk mengelompokkan kelas alamat IP!
shell script
#!/bin/bash
# Daftar pengelompokkan IP address
ips=("10.0.0.1" "172.16.0.1" "192.168.0.1" "100.64.0.1" "198.51.100.1")
# Mengelompokkan IP addresses kelas A
echo "Kelas A:"
for ip in "${ips[@]}"; do
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
octet1=$(echo "$ip" | cut -d"." -f1)
if [[ $octet1 -ge 1 ]] && [[ $octet1 -le 126 ]]; then
echo "$ip"
fi
fi
done
# Mengelompokkan IP addresses kelas B
echo "Kelas B:"
for ip in "${ips[@]}"; do
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
octet1=$(echo "$ip" | cut -d"." -f1)
if [[ $octet1 -ge 128 ]] && [[ $octet1 -le 191 ]]; then
echo "$ip"
fi
fi
done
# Mengelompokkan IP addresses kelas C
echo "Kelas C:"
for ip in "${ips[@]}"; do
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
octet1=$(echo "$ip" | cut -d"." -f1)
if [[ $octet1 -ge 192 ]] && [[ $octet1 -le 223 ]]; then
echo "$ip"
fi
fi
done
# Mengelompokkan IP addresses kelas D
echo "Kelas D:"
for ip in "${ips[@]}"; do
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
octet1=$(echo "$ip" | cut -d"." -f1)
if [[ $octet1 -ge 224 ]] && [[ $octet1 -le 239 ]]; then
echo "$ip"
fi
fi
done
# Mengelompokkan IP addresses kelas E
echo "Kelas E:"
for ip in "${ips[@]}"; do
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
octet1=$(echo "$ip" | cut -d"." -f1)
if [[ $octet1 -ge 240 ]] && [[ $octet1 -le 255 ]]; then
echo "$ip"
fi
fi
done
# Pengelompokkan IP private
echo "Pengelompokkan IP private:"
for ip in "${ips[@]}"; do
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
octet1=$(echo "$ip" | cut -d"." -f1)
if [[ $octet1 -eq 10 ]] || [[ $octet1 -eq 172 ]] || [[ $octet1 -eq 192 ]]; then
echo "$ip"
fi
fi
done
# Pengelompokkan IP Publik
echo "Pengelompokkan IP publik:"
for ip in "${ips[@]}"; do
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
octet1=$(echo "$ip" | cut -d"." -f1)
if [[ $octet1 -ne 10 ]] && [[ $octet1 -ne 172 ]] && [[ $octet1 -ne 192 ]]; then
echo "$ip"
fi
fi
done
# Input IP address
read -p "Masukkan alamat IP: " ip
# Verifikasi jika alamat IP yang di input tidak valid
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
octet1=$(echo "$ip" | cut -d"." -f1)
octet2=$(echo "$ip" | cut -d"." -f2)
octet3=$(echo "$ip" | cut -d"." -f3)
octet4=$(echo "$ip" | cut -d"." -f4)
# Check if the IP address is private
if [[ $ip =~ ^(10\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[0-1]\.|192\.168\.) ]]; then
echo "$ip adalah IP private"
else
echo "$ip adalah ip publik"
fi
if [[ $octet1 -le 255 ]] && [[ $octet2 -le 255 ]] && [[ $octet3 -le 255 ]] && [[ $octet4 -le 255 ]]; then
echo "Alamat IP valid."
else
echo "Alamat IP tidak valid."
fi
else
echo "Alamat IP tidak valid."
fi
eksekusi script di terminal linux
bash ./classIP.sh
Penjelasan pengelompokkan IP kelas A sampai E
Pada shell script untuk mengelompokkan alamat IP ke dalam kelas A, pertama-tama akan dibuat list “ips” yang berisi daftar alamat IP yang akan dikelompokkan. Kemudian, akan ditampilkan pesan yang menandakan bahwa alamat IP kelas A akan ditampilkan.
Setelah itu, akan dilakukan looping terhadap setiap alamat IP pada list “ips”. Untuk setiap alamat IP, akan dilakukan verifikasi apakah format alamat IP yang dimasukkan valid dengan menggunakan perintah if [[$ip =~ ^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$]]. Jika valid, maka akan dilanjutkan ke proses selanjutnya.
Kemudian, akan diambil nilai octet pertama dari alamat IP yang dimasukkan dengan menggunakan perintah octet1=$(echo “$ip” | cut -d”.” -f1). Nilai octet pertama ini kemudian akan dibandingkan dengan rentang 1 sampai 126 untuk memverifikasi apakah alamat IP tersebut termasuk dalam kelas A. Jika sesuai dengan kriteria kelas A, maka alamat IP tersebut akan ditampilkan dengan menggunakan perintah echo “$ip”.
Proses ini akan terus dilakukan untuk setiap alamat IP pada list “ips” sampai proses looping selesai.
Penjelasan pengelompokkan IP Private dan IP Publik
Pada shell script yang diberikan untuk mengelompokkan alamat IP private dan IP publik, pertama-tama dilakukan pemverifikasian terhadap format alamat IP. Jika format alamat IP valid, maka akan dilakukan pembagian ke dalam dua kelompok yaitu IP private dan IP publik.
Kriteria alamat IP private adalah alamat IP yang dimulai dengan 10.0.0.0/8, 172.16.0.0/12, atau 192.168.0.0/16. Selain itu, dianggap sebagai IP publik.
Untuk setiap alamat IP yang terverifikasi valid, akan dilakukan pembagian ke dalam dua kelompok tersebut dengan menggunakan perintah if. Jika sesuai dengan kriteria IP private, maka alamat IP tersebut akan ditampilkan pada kelompok IP private. Sebaliknya, jika sesuai dengan kriteria IP publik, maka alamat IP tersebut akan ditampilkan pada kelompok IP publik.
Pada akhir shell script, akan ditampilkan daftar alamat IP yang sudah dikelompokkan ke dalam IP private dan IP publik.
Penjelasan alamat IP yang di input valid atau tidak valid
Secara keseluruhan, shell script tersebut akan memverifikasi apakah alamat IP yang dimasukkan memiliki format yang valid.
2.Buatlah shell script untuk membuat user linux!
shell script
#!/bin/bash
# Buat 3 user dengan nama ali, hasan, dan badu
useradd ali
useradd hasan
useradd badu
# konfigurasi password untuk setiap user yang telah dibuat
echo "password-ali" | passwd --stdin ali
echo "password-hasan" | passwd --stdin hasan
echo "password-badu" | passwd --stdin badu
# Menampilkan hasil pembuatan user (ali, hasan, dan badu)
echo "Nama user:"
echo "ali"
echo "hasan"
echo "badu"
sleep 3
# Menampilkan hasil konfigurasi password user
echo "Ini password user 'ali', 'hasan', 'badu':"
echo "$(getent shadow ali)"
echo "$(getent shadow hasan)"
echo "$(getent shadow badu)"
# Menampilkan detail home directory dari user yang dibuat
echo "Direktori home user:"
echo "ali: $(getent passwd ali | cut -d: -f6)"
echo "hasan: $(getent passwd hasan | cut -d: -f6)"
echo "badu: $(getent passwd badu | cut -d: -f6)"
sleep 3
Perintah eksekusi script di terminal linux
bash ./buat-user-linux.sh
Penjelasan shell script
3.Buatlah shell script untuk mengotomatisasi penginstalan dan konfigurasi ssh
Shell Script Untuk Distro Ubuntu/Debian/kali/mint
#!/bin/bash
# Menginstalasi layanan SSH
apt-get update
apt-get install -y openssh-server
# Menjalankan layanan SSH
systemctl start ssh
# Memverifikasi status layanan SSH
systemctl status ssh
Shell Script Untuk Distro RedHat Enterprise Linux; Fedora; CentOS; Oracle Enterprise Linux; Scientific, CERN; SUSE, OpenSUSE.
#!/bin/bash
# Menginstalasi layanan SSH
yum install -y openssh-server
# Menjalankan layanan SSH
systemctl start sshd
systemctl enable sshd
# Memverifikasi status layanan SSH
systemctl status sshd
Perintah eksekusi Script di terminal linux
bash ./SSHService.sh
Penjelasan Script
Buat kamu yang punya tugas terkait Linux atau Shell Script, bisa banget joki tugas Linux di sini, selain dibantu mengerjakan, kita juga bantu jelaskan pada dokumen terpisah.
Order bisa langsung via whatsapp admin ya, jelaskan tugas yang akan dikerjakan dan juga deadline nya, admin akan membalas whatsapp kamu beserta rincian yang harus kamu bayar. Tenang saja, pembayaran boleh dp 50% dan sisanya bisa kamu bayar setelah tugas selesai dikerjakan.
“Tugas selesai hati pun senang”
Masukkan email kamu untuk mendapatkan berita terbaru dari stacktugas.id dan dapatkan diskon 20% untuk jasa coding terlaris kami.
Kami tidak akan pernah mengirimkan email spam.
Panduan lengkap membuat aplikasi pencatat sederhana menggunakan Flutter, SQLite, dan SharedPreferences
Proyek ini adalah aplikasi JavaFX sederhana yang memiliki halaman login dan inventory untuk manajemen vinyl menggunakan MVC pattern.
Source code dan tutorial kompresi citra dengan Color-Embedded Grayscale Image dengan Python