GNU/Linux >> Belajar Linux >  >> Linux

Tutorial Pengenalan Bash Scripting dengan 5 Contoh Praktis

Serupa dengan seri Unix Sed dan Unix Awk yang sedang berjalan, kami akan memposting beberapa artikel tentang skrip Bash, yang akan mencakup semua teknik skrip bash dengan contoh praktis.

Shell adalah sebuah program, yang menginterpretasikan perintah pengguna. Perintah dapat langsung dimasukkan oleh pengguna atau dibaca dari file yang disebut skrip shell.

Shell disebut sebagai shell interaktif, ketika membaca input dari pengguna secara langsung.

Shell disebut sebagai shell non-interaktif, ketika ia membaca perintah dari file dan mengeksekusinya. Dalam hal ini, shell membaca setiap baris file skrip dari atas ke bawah, dan mengeksekusi setiap perintah seolah-olah telah diketik langsung oleh pengguna.

Cetak nilai variabel built in shell $-, untuk mengetahui apakah shell tersebut interaktif atau non-interaktif.

# echo $-
himBH

Catatan:variabel $- berisi "i" ketika shell interaktif .

Unix memiliki berbagai Shells. Bourne shell (sh), Bourne lagi shell (bash), C shell (csh), Korn shell (ksh), Tenex C shell (tcsh). Gunakan perintah which atau whereis unix untuk mencari tahu di mana shell tertentu berada seperti yang ditunjukkan di bawah ini.

# which bash
/bin/bash

# whereis bash
bash: /bin/bash /usr/share/man/man1/bash.1.gz

Anda dapat beralih di antara shell, dengan mengetikkan nama shell. Misalnya, ketik csh untuk beralih ke shell C.

Penulisan dan eksekusi skrip shell

Contoh 1. Skrip Hello World Bash

  1. Buat skrip dengan mengetikkan dua baris berikut ke dalam file menggunakan editor favorit Anda.
  2. $ cat helloworld.sh
    #!/bin/bash
    echo Hello World
  3. Anda dapat memilih nama apa saja untuk file tersebut. Nama file tidak boleh sama dengan perintah bawaan Unix.
  4. Skrip selalu dimulai dengan dua karakter '#!' yang disebut sebagai she-bang. Ini untuk menunjukkan bahwa file tersebut adalah skrip, dan harus dijalankan menggunakan interpreter (/bin/bash) yang ditentukan oleh baris pertama lainnya dalam file.
  5. Jalankan script seperti di bawah ini. Jika Anda mengalami masalah dalam menjalankan skrip shell, lihat tutorial eksekusi skrip shell
  6. $ bash helloworld.sh
    Hello World
  7. Saat Anda menjalankan perintah “bash helloworld.sh”, shell non-interaktif akan memulai dan meneruskan nama file sebagai argumen ke dalamnya.
  8. Baris pertama memberi tahu sistem operasi shell mana yang akan muncul untuk mengeksekusi skrip.
  9. Pada contoh di atas, bash interpreter yang menginterpretasikan skrip dan mengeksekusi perintah satu per satu dari atas ke bawah.
  10. Anda bahkan dapat menjalankan skrip, tanpa diawali "bash" dengan:
    • Ubah izin skrip agar Anda (Pengguna) dapat menjalankannya, dengan menggunakan perintah “chmod u+x helloworld.sh”.
    • Direktori yang berisi skrip harus disertakan dalam variabel lingkungan PATH. Jika tidak disertakan, Anda dapat menjalankan skrip dengan menentukan jalur absolut skrip.
  11. echo adalah perintah yang hanya menampilkan argumen yang kita berikan padanya. Ini juga digunakan untuk mencetak nilai variabel.

File Bash-Startup

Seperti yang telah kita bahas sebelumnya dalam urutan eksekusi untuk .bash_profile dan artikel file terkait, ketika bash dipanggil sebagai shell interaktif, bash pertama kali membaca dan mengeksekusi perintah dari /etc/profile. Jika /etc/profile tidak ada, ia membaca dan menjalankan perintah dari ~/.bash_profile, ~/.bash_login dan ~/.profile dalam urutan yang diberikan. Opsi –noprofile dapat digunakan ketika shell mulai menghambat perilaku ini.

Biasanya bash_profile Anda mengeksekusi ~/.bashrc. Jika Anda suka, Anda dapat menampilkan pesan selamat datang. Ini hanya berjalan ketika Anda pertama kali masuk. Anda dapat mengekspor variabel apa pun yang Anda inginkan, dan Anda dapat mengatur alias yang akan berjalan dan tersedia setelah Anda membuka shell. Saat shell login keluar, Bash membaca dan menjalankan perintah dari file ~/.bash_logout.

Contoh 2. Cetak pesan selamat datang saat Anda login

Ketik konten berikut di file bash_profile Anda. Jika file tidak ada, buat file dengan konten di bawah ini.

$ cat ~/.bash_profile
hname=`hostname`
echo "Welcome on $hname."

Saat Anda login ke shell interaktif, Anda akan melihat pesan selamat datang seperti yang ditunjukkan di bawah ini.

login as: root
root@dev-db's password:
Welcome on dev-db

Contoh 3. Cetak informasi terkait sistem

Saat Anda login ke shell interaktif, Anda dapat menampilkan nama kernel yang diinstal di server, versi bash, waktu aktif dan waktu di server.

$cat ~/.bash_profile
hname=`hostname`
echo "Welcome on $hname."

echo -e "Kernel Details: " `uname -smr`
echo -e "`bash --version`"
echo -ne "Uptime: "; uptime
echo -ne "Server time : "; date

Saat Anda meluncurkan shell interaktif, shell akan mencetak pesan seperti yang ditunjukkan di bawah ini.

login as: root
root@dev-db's password:
Welcome on dev-db

Kernel Information:  Linux 2.6.18-128 x86_64
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Uptime:  11:24:01 up 21 days, 13:15,  3 users,  load average: 0.08, 0.18, 0.11
Server time : Tue Feb 22 11:24:01 CET 2010

Contoh 4. Cetak detail login terakhir

Jika beberapa pengguna menggunakan mesin yang sama dengan login yang sama, maka detail seperti mesin dari mana login terakhir terjadi, dan waktu saat mereka login, akan menjadi detail yang paling berguna. Contoh ini mencetak detail login terakhir selama awal shell interaktif.

$ cat ~/.bash_profile
hname=`hostname`
echo "Welcome on $hname."

echo -e "Kernel Details: " `uname -smr`
echo -e "`bash --version`"
echo -ne "Uptime: "; uptime
echo -ne "Server time : "; date

log terakhir | grep "akar" | awk {'print "Login terakhir dari :"$3

print "Tanggal &Waktu Login Terakhir:",$4,$5,$6,$7,$8,$9;}'
Saat memulai, Anda akan mendapatkan pesan seperti di bawah ini.

login as: root
root@dev-db's password:
Welcome on dev-db

Kernel Information:  Linux 2.6.18-128 x86_64
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Uptime:  11:24:01 up 21 days, 13:15,  3 users,  load average: 0.08, 0.18, 0.11
Server time : Tue Feb 22 11:24:01 CET 2010

Login terakhir dari :sasikala-laptop

Tanggal &Waktu Login Terakhir:Sel 22 Feb 11:24:01 +0100 2010

Contoh 5. Ekspor variabel dan setel alias selama start-up

Perintah paling umum yang akan Anda gunakan di file .bashrc dan .bash_profile adalah perintah ekspor dan alias.

Alias ​​​​hanya mengganti satu bagian teks dengan yang lain. Saat Anda menjalankan alias, itu hanya mengganti apa yang Anda ketikkan dengan alias yang sama. Misalnya, jika Anda ingin mengatur alias untuk perintah ls untuk membuat daftar file/folder dengan warna, lakukan hal berikut:

alias ls 'ls --color=tty'

Jika Anda menambahkan perintah ini ke salah satu file start-up, Anda dapat menjalankan perintah ls, yang secara otomatis akan diganti dengan perintah ls –color=tty.

Perintah ekspor digunakan untuk mengatur variabel lingkungan. Berbagai variabel lingkungan digunakan oleh sistem, atau aplikasi lain. Mereka hanyalah cara mengatur parameter yang dapat dibaca oleh aplikasi/skrip apa pun. Jika Anda menyetel variabel tanpa perintah ekspor, variabel itu hanya ada untuk proses tertentu.

Dalam contoh di bawah ini, ia mengekspor variabel lingkungan HISTSIZE. Baris yang dimulai dengan # adalah baris komentar.

$ cat /etc/profile
alias ls 'ls --color=tty'

# Setup some environment variables.
export HISTSIZE=1000

PATH=$PATH:$HOME/bin:/usr/bin:/bin/usr:/sbin/etc

export PATH

export SVN_SH=${SVN_RSH-ssh}

Linux
  1. Penerjemah Shell mana yang Menjalankan Skrip Tanpa Shebang?

  2. Tutorial Awk:Memahami Variabel Awk dengan 3 Contoh Praktis

  3. Tutorial Bash Array Terbaik dengan 15 Contoh

  1. Cara Menulis Skrip Bash dengan Contoh

  2. Tutorial Status Keluar Bash Shell dengan Contoh Praktis

  3. 15 Perintah Bawaan Bash Shell yang Berguna (Dengan Contoh)

  1. Tutorial Bash HereDoc Dengan Contoh

  2. Shell Scripting Bagian I:Memulai dengan bash scripting

  3. Bash For Loop dengan contoh praktis