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:
- Apa itu bash shell?
- Apa itu skrip bash dan bagaimana cara mengidentifikasinya?
- Cara membuat skrip bash pertama Anda dan menjalankannya.
- Sintaks dasar skrip shell.
- Cara melihat skrip terjadwal sistem.
- 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
pernyataanif...then...else...fi
pernyataanif..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