Sekilah Tentang Bash Shell
Bash adalah singkatan dari Bourne Again SHell. Shell adalah program yang menghubungkan antara inputan user dengan sistem operasi. Bash ini adalah shell yang paling umum digunakan pengguna Linux. Sekarang ini, program seperti shell ini sudah tergantikan oleh user interface yang lebih mudah digunakan. Pemrograman bash shell itu sendiri adalah pemrograman kumpulan perintah menggunakan script yang ditulis ke dalam bash shell, sehingga nantinya dapat dieksekusi oleh sistem operasi. Pemrograman menggunakan shell terutama bash shell berkembang terus sampai sekarang karena penggunaannya di kalangan system administrator sangat dibutuhkan.
Perintah-Perintah Dasar Di Bash Shell
cd : digunakan untuk berpindah ke direktori lain.
chmod : digunakan untuk mengatur hak akses suatu file atau direktori
clear : digunakan untuk membersihkan seluruh layar terminal
chmod : digunakan untuk mengatur hak akses suatu file atau direktori
clear : digunakan untuk membersihkan seluruh layar terminal
cp : digunakan untuk menyalin sebuah file
date : digunakan untuk menampilkan tanggal dan waktu
halt : digunakan untuk mematikan sistem
ls : digunakan untuk melihat isi dari suatu direktori
halt : digunakan untuk mematikan sistem
ls : digunakan untuk melihat isi dari suatu direktori
mkdir : digunakan untuk membuat direktori baru.
mv : untuk memindahkan file, bisa juga untuk merubah nama sebuah file.
nano : digunakan untuk text editor
nano : digunakan untuk text editor
passwd : digunakan untuk menggunakan password
pwd : digunakan untuk menampilkan nama direktori dimana Anda sedang berada
reboot : digunakan untuk menghidupkan ulang sistem/komputerrestart : menjalankan ulang service yang sedang berjalan.
pwd : digunakan untuk menampilkan nama direktori dimana Anda sedang berada
reboot : digunakan untuk menghidupkan ulang sistem/komputerrestart : menjalankan ulang service yang sedang berjalan.
rm : digunakan untuk menghapus file.
rmdir : digunakan untuk menghapus direktori
halt: digunakan untuk mematikan sistem
sudo : menjalankan perintah sebagai root
tar : digunakan untuk mengekstrak file dengan format *tar.gz *.tgz
touch : digunakan untuk membuat file baru dalam keadaan kosong.
halt: digunakan untuk mematikan sistem
sudo : menjalankan perintah sebagai root
tar : digunakan untuk mengekstrak file dengan format *tar.gz *.tgz
touch : digunakan untuk membuat file baru dalam keadaan kosong.
who : digunakan untuk melihat siapa saja yang sedang login
Selain perintah-perintah diatas masih ada lagi perintah-perintah lainnyayang disediakan oleh bash shell.
Bash Script Bilangan Prima
Sudah pada tau kan apa itu bilangan prima? Bilangan prima yaitu suatu bilangan yang hanya mempunyai faktor 1 dan bilangan itu sendiri. Seperti misalnya 2 yang hanya punya faktor 1 dan 2. Kemudian 5 yg hanya punya faktor 1 dan 5, begitu juga dengan bilangan 3, 7 , 13 dan lainnya.
Salah satu logika yang bisa kita gunakan untuk menentukan suatu bilangan merupakan bilangan prima atau bukan yaitu dengan cara : Memastikan bilangan tersebut tidak habis dibagi 2 sampai n-1. dengan syarat bilangan tersebut harus lebih besar dari 2.
Contoh misalnya 7, untuk menentukan 7 adalah bilangan prima atau bukan. Kita harus membagi bilangan 7 dengan 2,3,4,5 dan 6. Dan dari kelima bilangan tersebut tidak ada yg habis membagi 7 dengan demikian 7 adalah bilangan prima.
Contoh lain misalnya 8, kita bagi 8 dengan 2, 3, 4, 5, 6 dan 7. Dari keenam bilangan tersebut 2 dan 4 habis membagi 8 dengan demikian 8 bukanlah bilangan prima.
Dibawah ini adalah contoh penerapan logika untuk mencari bilangan prima sampai batas a dengan menggunakan bash script.
Salah satu logika yang bisa kita gunakan untuk menentukan suatu bilangan merupakan bilangan prima atau bukan yaitu dengan cara : Memastikan bilangan tersebut tidak habis dibagi 2 sampai n-1. dengan syarat bilangan tersebut harus lebih besar dari 2.
Contoh misalnya 7, untuk menentukan 7 adalah bilangan prima atau bukan. Kita harus membagi bilangan 7 dengan 2,3,4,5 dan 6. Dan dari kelima bilangan tersebut tidak ada yg habis membagi 7 dengan demikian 7 adalah bilangan prima.
Contoh lain misalnya 8, kita bagi 8 dengan 2, 3, 4, 5, 6 dan 7. Dari keenam bilangan tersebut 2 dan 4 habis membagi 8 dengan demikian 8 bukanlah bilangan prima.
Dibawah ini adalah contoh penerapan logika untuk mencari bilangan prima sampai batas a dengan menggunakan bash script.
#!/bin/bash
read a
for((i=2; i<=$a; i++));do
cek=0
for((j=2; j<i; j++));
do
if [ $((i%j)) -eq 0 ];
then
cek=1
break
fi
done
if [ $cek -eq 0 ]; then
printf "%d " $i
fi
done
printf "\n"
Contoh program saat dijalankan
Bash Scritp Untuk Mendownload, Merename dan memindahkan suatu berkas/direktori.
Contoh permasalahan:
Selain kuliah, Cayza juga merupakan seorang dokter praktik, dia memiliki 5 pasien yang harus rutin meminum obat. Sebagai dokter yg baik, Cayza ingin terus memantau sudah berapa jumlah obat yang sudah diminum oleh setiap pasien. Cayza harus mengunduh berkas "laporan minum obat pasien" yang berada di kantornya melalui alamat http://10.151.36.201/sisop/jadwal.txt. Setiap berkas yang diunduh otomatis diletakkan pada sebuah direktori yang namanya sesuai dengan tanggal bulan dan tahun saat ini dengan format dd_mm_yyyy (contoh: 11_12_2013). Berkasnya juga otomatis di-rename sesuai dengan jam, menit, dan detik ketika berkas tersebut diunduh dengan format HH_MM_SS (contoh: 17_18_19). Buatlah script untuk membantu Cayza dalam melakukan hal ini agar pekerjaannya berjalan lebih mudah hanya dalam sekali proses.
Dari deskripsi diatas langkah-langkah yg haru dilakukan yaitu
1. Mendapatkan waktu (kalender) saat program dijalankan yang direpresentasikan dalam jam_menit_detik dan juga tanggal_bulan_tahun
2. Membuat direktori sesuai tanggal download
3. Mendownload file dari alamat yg ditentukan
4. Mensave file hasil download dengan jam download
5. Memindahkan hasil download ke direktori yg sudah dibuat sebelumnya tadi.
Bash script
t=$(date +"%H_%M_%S")
d=$(date +"%m_%d_%Y")
mkdir -p "$d"
wget -O "$t" http://10.151.36.201/sisop/jadwal.txt
mv -i "$t" "$d"
Contoh program saat dijalankan
File hasil download dipindah ke folder
Bash Script untuk membaca file dan Menulis file
Contoh permasalahan:
Dalam file tersebut terdapat lima waktu pasien mendatangi Cayza untuk check up. Setiap harinya, semua pasien diperbolehkan minum obat mulai jam 6 pagi hingga jam 12 malam dengan selang waktu 3 jam sekali. Cayza harus mengetahui jumlah obat yang telah diminum oleh setiap pasien hingga waktu pasien check up pada hari itu. Oleh karena itu dia harus menambahkan keterangan jumlah obat yang sudah diminum setiap pasien hingga waktu check up pada berkas yang sudah diunduh sebelumnya. Buatlah script untuk membantu cayza dalam melakukan hal ini.
File sebelum script dijalankan:
08:00:01
10:30:34
11:32:46
15:30:10
17:22:30
Contoh file setelah script dijalankan:
08:00:01 - Pasien A Sudah Minum 1 obat
10:30:34 - Pasien B Sudah Minum 2 obat
11:32:46 - Pasien C Sudah Minum 2 obat
15:30:10 - Pasien D Sudah Minum 4 obat
17:22:30 - Pasien E Sudah Minum 4 obat
Dari deskripsi diatas logika yang dapat kita gunakan untuk menyelesaikannya yaitu
1. Membaca jam, menit dan detik yang terdapat di file secara baris perbaris
2. Menghitung jumlah obat yang diminum oleh pasien dengan cara mengurangi jam dengan 6 (jam pasien mulai minum obat) kemudian membagi dengan 3 (selang waktu pasien minum obat) kemudian ditambah dengan 1.
3. Menampilkan/menulis hasil perhitungan dan jam kedalam file.
Bash script
cd "$d"
t=$(date +"%H_%M_%S")
huruf=(A B C D E)
i=0
x="$t"
while IFS=":" read hour minute second; do
let "m=${hour#0}-6"
let "n=${m}/3+1"
if [ $m -lt 0 ]; then
let "n=0"
fi
echo "$hour:$minute:$second - Pasien ${huruf[$i]} Sudah Minum $n Obat" >> newfile
let "i++"
done < $x
mv newfile "$t"
File hasil keluaran
Mengarsipkan Berkas dan Membuat Log
Contoh permasalahan:
Cayza harus mengarsipkan folder berisi berkas yang sudah disunting dalam bentuk kompresi tar.gz. dengan format XZZ (X = kelas, ZZ = Nomor Kelompok), contoh: A01.tar.gz. Setiap kali terjadi pengarsipan, akan otomatis dicatat ke dalam log file dengan format nama file log_XZZ.txt (X = kelas, ZZ = Nomor Kelompok), contoh: log_A01.txt.
Langkah-langkah yang bisa kita gunakan untuk menyelesaikan permasalahan diatas yaitu:
1. Mendapatkan jam dan tanggal ketika program dijalankan untuk kperluan log
2. Menentukan file/berkas yang akan diarsiapkan
3. Melakukan proses penarsipan berkas
4. Mencetak jam, tanggal dan berkas yang diarsipkan kedalam log file
Bash Script
tn=$(date +"%H_%M_%S")
dn=$(date +"%m_%d_%Y")
in="$d"
cd -
class="B02"
file="log_$class.txt"
printf "File Archieved : " >> "$file"
tar -zcvf "$class".tar.gz $in >> "$file"
printf "Date : $dn ---- Time : $tn\n" >> "$file"
echo "ARCHIEVED SUCCES"
File hasil keluaran
isi berkas
isi log file
Bash Script Lengkap Untuk Permasalahan di atas
#!/bin/bash
t=$(date +"%H_%M_%S")
d=$(date +"%m_%d_%Y")
mkdir -p "$d"
wget -O "$t" http://10.151.36.201/sisop/jadwal.txt
mv -i "$t" "$d"
cd "$d"
huruf=(A B C D E)
i=0
x="$t"
while IFS=":" read hour minute second; do
let "m=${hour#0}-6"
let "n=${m}/3+1"
if [ $m -lt 0 ]; then
let "n=0"
fi
echo "$hour:$minute:$second - Pasien ${huruf[$i]} Sudah Minum $n Obat" >> newfile
let "i++"
done < $x
mv newfile "$t"
tn=$(date +"%H_%M_%S")
dn=$(date +"%m_%d_%Y")
in="$d"
cd -
class="B02"
file="log_$class.txt"
printf "File Archieved : " >> "$file"
tar -zcvf "$class".tar.gz $in >> "$file"
printf "Date : $dn ---- Time : $tn\n" >> "$file"
echo "ARCHIEVED SUCCES"
Semoga Bermanfaat :)
Tidak ada komentar:
Posting Komentar