GNU/Linux >> Belajar Linux >  >> Linux

Shell Scripting untuk Pemula – Cara Menulis Script Bash di Linux

Skrip shell adalah bagian penting dari otomatisasi proses di Linux. Scripting membantu Anda menulis urutan perintah dalam file dan kemudian menjalankannya.

Ini menghemat waktu Anda karena Anda tidak perlu menulis perintah tertentu lagi dan lagi. Anda dapat melakukan tugas harian secara efisien dan bahkan menjadwalkannya untuk eksekusi otomatis.

Anda juga dapat menyetel skrip tertentu untuk dijalankan saat pengaktifan seperti menampilkan pesan tertentu saat meluncurkan sesi baru atau menyetel variabel lingkungan tertentu.

Aplikasi dan penggunaan skrip sangat banyak, jadi mari selami.

Dalam artikel ini, Anda akan mempelajari:

  1. Apa itu bash shell?
  2. Apa itu skrip bash dan bagaimana cara mengidentifikasinya?
  3. Cara membuat skrip bash pertama Anda dan menjalankannya.
  4. Sintaks dasar skrip shell.
  5. Cara melihat skrip terjadwal sistem.
  6. Cara mengotomatiskan skrip dengan menjadwalkan melalui tugas cron.

Cara terbaik untuk belajar adalah dengan berlatih. Saya sangat mendorong Anda untuk mengikuti menggunakan Replit. Anda dapat mengakses shell Linux yang sedang berjalan dalam hitungan menit.

Pengantar Bash Shell

Baris perintah Linux disediakan oleh program yang disebut shell. Selama bertahun-tahun, program shell telah berkembang untuk memenuhi berbagai pilihan.

Pengguna yang berbeda dapat dikonfigurasi untuk menggunakan shell yang berbeda. Tetapi sebagian besar pengguna lebih memilih untuk tetap menggunakan shell default saat ini. Shell default untuk banyak distro Linux adalah GNU Bourne-Again Shell (bash). Bash digantikan oleh Bourne shell (sh ).

Saat Anda pertama kali meluncurkan shell, shell menggunakan skrip startup yang terletak di .bashrc atau .bash_profile file yang memungkinkan Anda untuk menyesuaikan perilaku shell.

Saat shell digunakan secara interaktif, shell akan menampilkan $ ketika menunggu perintah dari pengguna. Ini disebut prompt shell.

[username@host ~]$

Jika shell dijalankan sebagai root, prompt diubah menjadi # . Prompt shell superuser terlihat seperti ini:

[root@host ~]#

Bash sangat kuat karena dapat menyederhanakan operasi tertentu yang sulit dicapai secara efisien dengan GUI. Ingatlah bahwa sebagian besar server tidak memiliki GUI, dan yang terbaik adalah belajar menggunakan kekuatan antarmuka baris perintah (CLI).

Apa itu Skrip Bash?

Skrip bash adalah serangkaian perintah yang ditulis dalam file. Ini dibaca dan dieksekusi oleh program bash. Program dijalankan baris demi baris.

Misalnya, Anda dapat menavigasi ke jalur tertentu, membuat folder, dan menelurkan proses di dalamnya menggunakan baris perintah.

Anda dapat melakukan urutan langkah yang sama dengan menyimpan perintah dalam skrip bash dan menjalankannya. Anda dapat menjalankan skrip beberapa kali.

Bagaimana Anda Mengidentifikasi Skrip Bash?

Ekstensi file .sh .

Dengan konvensi penamaan, skrip bash diakhiri dengan .sh . Namun, skrip bash dapat berjalan dengan baik tanpa sh perpanjangan.

Skrip dimulai dengan bash bang.

Skrip juga diidentifikasi dengan shebang . Shebang adalah kombinasi dari bash # dan bang ! mengikuti jalur bash Shell. Ini adalah baris pertama skrip. Shebang memberitahu shell untuk mengeksekusinya melalui bash shell. Shebang hanyalah jalur absolut ke penerjemah bash.

Di bawah ini adalah contoh pernyataan Shebang.

#! /bin/bash

Jalur program bash dapat bervariasi. Kita akan lihat nanti bagaimana mengidentifikasinya.

Hak eksekusi

Skrip memiliki hak eksekusi untuk pengguna yang menjalankannya.

Hak eksekusi diwakili oleh x . Pada contoh di bawah, pengguna saya memiliki rwx (baca, tulis, jalankan) hak untuk file test_script.sh

Warna file

Skrip yang dapat dieksekusi muncul dalam warna yang berbeda dari file dan folder lainnya.

Dalam kasus saya, skrip dengan hak eksekusi tampak berwarna hijau.

Cara Membuat Skrip Bash Pertama Anda

Mari buat skrip sederhana di bash yang menampilkan Hello World .

Buat file bernama hello_world.sh

touch hello_world.sh

Temukan jalur ke bash shell Anda.

which bash

Dalam kasus saya, jalurnya adalah /usr/bin/bash dan saya akan memasukkan ini ke dalam shebang.

Tulis perintahnya.

Kami akan echo "halo dunia" ke konsol.

Skrip kita akan terlihat seperti ini:

#! usr/bin/bash
echo "Hello World"

Edit file hello_world.sh menggunakan editor teks pilihan Anda dan tambahkan baris di atas di dalamnya.

Berikan hak eksekusi kepada pengguna Anda.

Ubah izin file dan izinkan eksekusi skrip dengan menggunakan perintah di bawah ini:

chmod u+x hello_world.sh

chmod memodifikasi hak file yang ada untuk pengguna tertentu. Kami menambahkan +x untuk pengguna u .

Jalankan skrip.

Anda dapat menjalankan skrip dengan cara berikut:

./hello_world.sh

bash hello_world.sh .

Ini hasilnya:

Sintaks Dasar dari Bash Scripting

Sama seperti bahasa pemrograman lainnya, skrip bash mengikuti seperangkat aturan untuk membuat program yang dapat dimengerti oleh komputer. Pada bagian ini, kita akan mempelajari sintaks dari bash scripting.

Cara mendefinisikan variabel

Kita dapat mendefinisikan variabel dengan menggunakan sintaks variable_name=value . Untuk mendapatkan nilai variabel, tambahkan $ sebelum variabel.

#!/bin/bash
# A simple variable example
greeting=Hello
name=Tux
echo $greeting $name

Tux juga merupakan nama maskot Linux, penguin.

Ekspresi Aritmatika

Di bawah ini adalah operator yang didukung oleh bash untuk perhitungan matematis:

Operator Penggunaan
+ tambahan
- pengurangan
* perkalian
/ divisi
** perpangkatan
% modulus

Mari kita jalankan beberapa contoh.

Ekspresi numerik juga dapat dihitung dan disimpan dalam variabel menggunakan sintaks di bawah ini:

var=$((expression))

Mari kita coba sebuah contoh.

#!/bin/bash

var=$((3+9))
echo $var

Pecahan tidak dihitung dengan benar menggunakan metode di atas dan dipotong.

Untuk penghitungan desimal , kita dapat menggunakan bc perintah untuk mendapatkan output ke sejumlah tempat desimal tertentu. bc (Bash Calculator) adalah kalkulator baris perintah yang mendukung penghitungan hingga sejumlah titik desimal tertentu.

echo "scale=2;22/7" | bc

Dimana scale mendefinisikan jumlah tempat desimal yang diperlukan dalam output.

Cara membaca input pengguna

Terkadang Anda perlu mengumpulkan masukan pengguna dan melakukan operasi yang relevan.

Di bash, kita dapat mengambil input pengguna menggunakan read perintah.

read variable_name

Untuk meminta pengguna dengan pesan khusus, gunakan -p bendera.

read -p "Enter your age" variable_name

Contoh:

#!/bin/bash

echo "Enter a numner"
read a

echo "Enter a numner"
read b

var=$((a+b))
echo $var

Operator logika perbandingan numerik

Perbandingan digunakan untuk memeriksa apakah pernyataan bernilai true atau false . Kita dapat menggunakan operator yang ditunjukkan di bawah ini untuk membandingkan dua pernyataan:

Operasi Sintaks Penjelasan
Kesetaraan angka1 -persamaan angka2 apakah angka1 sama dengan angka2
Lebih besar dari sama dengan angka1 -ge angka2 adalah angka1 lebih besar dari sama dengan angka2
Lebih besar dari angka1 -gt angka2 angka1 lebih besar dari angka2
Kurang dari sama dengan num1 -le num2 adalah angka1 kurang dari sama dengan angka2
Kurang dari angka1 -lt angka2 angka1 lebih kecil dari angka2
Tidak Sama dengan angka1 -angka2 apakah angka1 tidak sama dengan angka2

Sintaks :

if [ conditions ]
    then
         commands
fi

Contoh :

Mari kita bandingkan dua angka dan temukan hubungannya:

read x
read y

if [ $x -gt $y ]
then
echo X is greater than Y
elif [ $x -lt $y ]
then
echo X is less than Y
elif [ $x -eq $y ]
then
echo X is equal to Y
fi

Keluaran:

Pernyataan Bersyarat (Pengambilan Keputusan)

Kondisi adalah ekspresi yang mengevaluasi ekspresi boolean (true atau false ). Untuk memeriksa kondisi, kita dapat menggunakan if , if-else , if-elif-else dan kondisi bersarang.

Struktur pernyataan kondisional adalah sebagai berikut:

  • if...then...fi pernyataan
  • if...then...else...fi pernyataan
  • if..elif..else..fi
  • if..then..else..if..then..fi..fi.. (Kondisi Bersarang)

Sintaks :

if [[ condition ]]
then
	statement
elif [[ condition ]]; then
	statement 
else
	do this by default
fi

Untuk membuat perbandingan yang bermakna, kita dapat menggunakan AND -a dan ATAU -o juga.

Pernyataan di bawah ini diterjemahkan menjadi:Jika a lebih besar dari 40 dan b kurang dari 6.

if [ $a -gt 40 -a $b -lt 6 ]

Contoh :Mari kita cari jenis segitiga dengan membaca panjang sisi-sisinya.

read a
read b
read c

if [ $a == $b -a $b == $c -a $a == $c ]
then
echo EQUILATERAL

elif [ $a == $b -o $b == $c -o $a == $c ]
then 
echo ISOSCELES
else
echo SCALENE

fi

Keluaran :

Kasus uji #1

Kasus uji #2

Kasus uji #3

Melompat dan melompati

Untuk loop memungkinkan Anda mengeksekusi pernyataan beberapa kali.

Perulangan dengan angka:

Pada contoh di bawah, perulangan akan diulang sebanyak 5 kali.

#!/bin/bash

for i in {1..5}
do
    echo $i
done

Perulangan dengan string:

Kita juga bisa mengulang string.

#!/bin/bash

for X in cyan magenta yellow  
do
	echo $X
done

Sementara loop

Perulangan while memeriksa kondisi dan perulangan sampai kondisi tetap true . Kita perlu memberikan pernyataan penghitung yang menambah penghitung untuk mengontrol eksekusi loop.

Pada contoh di bawah ini, (( i += 1 )) adalah pernyataan counter yang menambah nilai i .

Contoh:

#!/bin/bash
i=1
while [[ $i -le 10 ]] ; do
   echo "$i"
  (( i += 1 ))
done

Membaca file

Misalkan kita memiliki file sample_file.txt seperti yang ditunjukkan di bawah ini:

Kita dapat membaca file baris demi baris dan mencetak output di layar.

#!/bin/bash

LINE=1

while read -r CURRENT_LINE
	do
		echo "$LINE: $CURRENT_LINE"
    ((LINE++))
done < "sample_file.txt"

Keluaran:

Cara menjalankan perintah dengan centang kembali

Jika Anda perlu menyertakan output dari perintah kompleks dalam skrip Anda, Anda dapat menulis pernyataan di dalam tanda centang kembali.

Sintaks:

var=` commands `

Contoh :Misalkan kita ingin mendapatkan output dari daftar mountpoints dengan tmpfs atas nama mereka. Kita dapat membuat pernyataan seperti ini:df -h | grep tmpfs .

Untuk memasukkannya ke dalam skrip bash, kita bisa menyertakannya di back ticks.

#!/bin/bash

var=`df -h | grep tmpfs`
echo $var

Keluaran:

Cara mendapatkan argumen untuk skrip dari baris perintah

Dimungkinkan untuk memberikan argumen pada skrip saat dieksekusi.

$@ mewakili posisi parameter, mulai dari satu.

#!/bin/bash

for x in $@
do
    echo "Entered arg is $x"
done

Jalankan seperti ini:

./script arg1 arg2

Cara Mengotomatiskan Skrip dengan Menjadwalkan melalui cron Jobs

Cron adalah utilitas penjadwalan pekerjaan yang ada di sistem mirip Unix. Anda dapat menjadwalkan pekerjaan untuk dieksekusi harian, mingguan, bulanan, atau dalam waktu tertentu dalam sehari. Otomatisasi di Linux sangat bergantung pada tugas cron.

Di bawah ini adalah sintaks untuk menjadwalkan cron:

# Cron job example
* * * * * sh /path/to/script.sh

Di sini, * mewakili mewakili menit(s) jam(s) hari(s) bulan(s) hari kerja(s), masing-masing.

Berikut adalah beberapa contoh penjadwalan cron job.

JADWAL NILAI TERJADWAL
5 0 * 8 * Pada 00:05 di bulan Agustus.
5 4 * * 6 Pada 04:05 pada hari Minggu.
0 22 * ​​* 1-5 Pada pukul 22:00 setiap hari dalam seminggu dari Senin sampai Jumat.

Anda dapat mempelajari tentang cron secara mendetail di postingan blog ini.

Cara Memeriksa Skrip yang Ada di Sistem

Menggunakan crontab

crontab -l mencantumkan skrip yang sudah dijadwalkan untuk pengguna tertentu.

Menggunakan perintah find

find perintah membantu untuk menemukan file berdasarkan pola tertentu. Karena sebagian besar skrip diakhiri dengan .sh , kita dapat menggunakan skrip find seperti ini:

find . -type f -name "*.sh"

Dimana,

  • . mewakili direktori saat ini. Anda dapat mengubah jalurnya.
  • -type f menunjukkan bahwa jenis file yang kita cari adalah file berbasis teks.
  • *.sh memberitahu untuk mencocokkan semua file yang diakhiri dengan .sh .

Jika Anda tertarik untuk membaca tentang perintah find secara detail, periksa posting saya yang lain.

Menyelesaikan

Dalam tutorial ini kita mempelajari dasar-dasar skrip shell. Kami melihat contoh dan sintaks yang dapat membantu kami menulis program yang bermakna.

Apa hal favorit Anda yang Anda pelajari dari tutorial ini? Beri tahu saya di Twitter!

Anda dapat membaca postingan saya yang lain di sini.

Vektor kerja yang dibuat oleh macrovector - www.freepik.com


Linux
  1. Bagaimana Mengurai Json Dengan Shell Scripting Di Linux?

  2. Bagaimana Menguji Kepatuhan Posix Dari Skrip Shell?

  3. Cara menggemakan Baris Baru di Bash Shell Script

  1. 12 Contoh Bash For Loop untuk Scripting Shell Linux Anda

  2. Cara Menulis Script Init Linux Berdasarkan Standar Init LSB

  3. Cara menyandikan gambar base64 di linux bash / shell

  1. Skrip Linux:3 cara untuk while loop di Bash

  2. Bagaimana Membandingkan String di Bash Shell Scripting

  3. Bagaimana Linux menangani skrip shell?