Sejarah Bash(Linux) dan Scripting pada Bash (Linux)

Bash adalah shell Unix ditulis oleh Brian Fox untuk Proyek GNU sebagai pengganti perangkat lunak bebas untuk shell Bourne (sh). Dirilis pada tahun 1989,telah didistribusikan secara luas sebagai shell untuk GNU sistem operasi dan sebagai shell default pada Linux dan Mac OS X. Telah porting ke Microsoft Windows dan didistribusikan dengan Cygwin dan MinGW, untuk DOS oleh proyek DJGPP, untuk Novell NetWare dan Android melalui berbagai aplikasi emulasi terminal.


Bash (Unix shell)

Bash adalah prosesor perintah, biasanya dijalankan di jendela teks, yang memungkinkan pengguna untuk mengetik perintah yang menyebabkan tindakan. Bash juga dapat membaca perintah dari file, yang disebut naskah. Seperti semua kerang Unix, mendukung nama file wildcarding, pipa, di sini dokumen, substitusi perintah, variabel dan struktur kontrol untuk kondisi-pengujian dan iterasi. Kata kunci, sintaks dan fitur dasar lainnya bahasa semua disalin dari sh.

Fitur lainnya, misalnya, sejarah, disalin dari csh dan ksh. Bash adalah shell POSIX tetapi dengan sejumlah ekstensi. Nama itu sendiri adalah singkatan, pelesetan, dan deskripsi. Sebagai akronim, itu singkatan dari Bourne-lagi shell, mengacu pada tujuannya sebagai pengganti bebas untuk shell Bourne. Sebagai pun, itu menyatakan bahwa tujuan dalam frase yang terdengar mirip dengan dilahirkan kembali, sebuah istilah untuk spiritual kelahiran kembali. Nama ini juga deskriptif apa itu, bashing bersama


Brian Fox mulai coding Bash pada 10 Januari 1988 setelah Richard Stallman menjadi tidak puas dengan kurangnya kemajuan yang dibuat oleh pengembang sebelumnya.Stallman dan Free Software Foundation (FSF) dianggap sebagai shell gratis yang dapat berjalan yang ada script sh begitu strategis untuk sistem benar-benar bebas dibangun dari BSD dan GNU kode bahwa ini adalah salah satu dari beberapa proyek yang didanai mereka sendiri, dengan Fox melakukan pekerjaan sebagai pegawai FSF. Fox merilis Bash sebagai beta , versi .99, pada 7 Juni 1989 dan tetap pemelihara primer sampai suatu waktu antara pertengahan 1992 dan pertengahan 1994,ketika ia diberhentikan dari FSF dan tanggung jawabnya dialihkan untuk kontributor awal lain, Chet Ramev.


Sintaks perintah Bash adalah superset dari sintaks perintah shell Bourne. Sebagian besar dari Bourne shell script dapat dieksekusi oleh Bash tanpa modifikasi, dengan pengecualian dari Bourne shell script tersandung ke dalam perilaku pinggiran sintaks ditafsirkan secara berbeda di Bash atau mencoba untuk menjalankan perintah sistem yang cocok dengan Bash builtin baru, dll Bash sintaks perintah termasuk ide yang diambil dari shell Korn (ksh) dan shell C (csh) seperti mengedit baris perintah, sejarah perintah, direktori stack, yang $ RANDOM dan variabel $ PPID, dan POSIX substitusi perintah sintaks $ (...). Ketika digunakan sebagai perintah shell interaktif dan menekan tombol tab, Bash otomatis menggunakan baris perintah penyelesaian untuk mencocokkan nama-nama program yang sebagian diketik, nama file dan nama variabel. The Bash command-line sistem penyelesaian sangat fleksibel dan dapat disesuaikan, dan sering dikemas dengan fungsi yang lengkap dan argumen nama file untuk program tertentu dan tugas.


Sintaks Bash memiliki banyak ekstensi yang tidak memiliki Bourne shell. Bash dapat melakukan perhitungan bilangan bulat tanpa pemijahan proses eksternal, seperti shell Bourne. Bash menggunakan ((...)) perintah dan $ ((...)) sintaks variabel untuk tujuan ini. Sintaks Bash menyederhanakan I / O redirection dengan cara-cara yang tidak mungkin dalam shell Bourne tradisional. Sebagai contoh, Bash dapat mengarahkan output standar (stdout) dan standard error (stderr) pada saat yang sama menggunakan &> operator. Ini adalah sederhana untuk mengetik daripada Bourne shell setara 'perintah> File 2> & 1'. Bash mendukung proses substitusi menggunakan (perintah) sintaks <, yang menggantikan output dari (atau input ke) perintah mana nama file biasanya digunakan.


Bila menggunakan 'fungsi' kata kunci, deklarasi fungsi Bash tidak kompatibel dengan skrip Bourne / Korn / POSIX (Korn shell memiliki masalah yang sama saat menggunakan 'fungsi'), tapi Bash menerima sintaks deklarasi fungsi yang sama dengan Bourne dan Korn , dan POSIX conformant. Karena ini dan perbedaan lainnya, Bash script shell jarang runnable bawah Bourne atau Korn shell interpreter kecuali sengaja ditulis dengan kompatibilitas dalam pikiran, yang menjadi kurang umum sebagai Linux menjadi lebih luas. Tapi dalam modus POSIX, Bash kesesuaian dengan POSIX hampir sempurna.


Bash mendukung sini dokumen seperti Bourne shell selalu memiliki. Selain itu, sejak versi 2.05b Bash dapat mengarahkan input standar (stdin) dari "di sini string" menggunakan operator <<<. Bash 3.0 mendukung dalam proses pencocokan ekspresi reguler menggunakan sintaks mengingatkan Perl. Bash 4.0 memperkenalkan dukungan untuk array asosiatif Associative array memungkinkan dukungan palsu untuk multi-dimensi (diindeks) array, dengan cara yang mirip dengan AWK:


menyatakan-A a # mendeklarasikan array asosiatif 'a' berpura-pura array diindeks bi-dimensi


i = 1; j = 2 # menginisialisasi beberapa indeks


a [$ i, $ j] = 5 # nilai associate "5" ke tombol "$ i, $ j" (yaitu "1,2")


echo $ {a [$ i, $ j]} # print nilai yang tersimpan di kunci "$ i, $ j"


Ekspansi Brace

Ekspansi Brace, juga disebut adalah fitur disalin dari shell C yang menghasilkan satu set kombinasi alternatif. Hasil yang dihasilkan tidak perlu ada sebagai file. Hasil setiap string diperluas tidak diurutkan dan kiri ke urutan yang benar dipertahankan:


echo {p, c, d, b} ace e # ape ade abe


gema {a, b, c} {d, e, f} # ad ae af bd menjadi bf cd ce cf


Ekspansi Brace tidak boleh digunakan dalam skrip shell portabel, karena Bourne shell tidak akan menghasilkan output yang sama.


#! / Bin / sh 

# Sebuah shell tradisional tidak menghasilkan output yang sama


gema a {p, c, d, e} b # a {p, c, d, e} b

Ketika ekspansi brace dikombinasikan dengan wildcard, kawat gigi diperluas pertama, dan kemudian wildcard dihasilkan diganti normal. Oleh karena itu, daftar JPEG dan PNG gambar dalam direktori saat ini dapat diperoleh dengan:



ls * {jpg, jpeg, png} # mengembang untuk * jpeg jpg * png * -.... setelah itu, 

# Wildcard diproses 

Skrip startup 

Ketika Bash dimulai, mengeksekusi perintah dalam berbagai skrip.

Ketika memulai sebagai shell login interaktif:


Bash membaca dan mengeksekusi / etc / profile (jika ada). (Seringkali file ini panggilan / etc / bash.bashrc.)


Setelah membaca file tersebut, tampaknya untuk bash_profile ~ /., Bash_login ~ /., Dan profil agar ~ /., Dan membaca dan mengeksekusi yang pertama yang ada dan dapat dibaca.


Ketika shell login keluar:

Bash membaca dan mengeksekusi bash_logout ~ /. (Jika ada). 

Ketika memulai sebagai shell interaktif (tapi bukan shell login):


Bash membaca dan mengeksekusi bashrc ~ /. (Jika ada). Hal ini dapat dihambat dengan menggunakan opsi - norc. Opsi - File rcfile akan memaksa Bash untuk membaca dan mengeksekusi perintah dari file bukan bashrc ~ /.. 

 

Portabilitas

Menjalankan Bash dengan -. Opsi POSIX atau menyatakan set-o POSIX dalam naskah menyebabkan Bash agar sesuai sangat erat dengan standar POSIX 1003.2 [22] Bash script shell ditujukan untuk portabilitas setidaknya harus memperhitungkan Bourne shell itu bermaksud untuk ganti. Bash memiliki fitur tertentu bahwa Bourne shell tradisional kekurangan. Di antaranya adalah: [22]



Beberapa opsi diperpanjang doa 

Substitusi perintah dengan menggunakan $ () notasi (fitur ini adalah bagian dari POSIX 1003.2 standar meskipun)


Ekspansi Brace


Operasi array yang tertentu, dan array asosiatif


Tanda kurung ganda diperpanjang uji konstruk


The double-kurung aritmatika evaluasi membangun


Operasi manipulasi string tertentu


Substitusi proses


Sebuah operator Expression pencocokan Regular


Builtin-Bash spesifik


Coprocesses


Cara pintas keyboard 

Cara pintas berikut bekerja ketika menggunakan default (Emacs) binding kunci. Vi-binding dapat diaktifkan dengan menjalankan set-o vi. 

Catatan: Untuk cara pintas yang melibatkan ⎇ Alt, Anda mungkin dapat menggunakan ⎋ Esc gantinya. 

Catatan: Kadang-kadang, Anda harus menggunakan ⎋ Esc bukan ⎇ Alt, karena ⎇ konflik Alt shortcut dengan shortcut lain. Misalnya, dalam Trisquel 5.0 (distribusi Linux), menekan ⎇ Alt + f tidak akan memindahkan kursor maju satu kata, tapi akan mengaktifkan "File" pada menu jendela terminal.


Tab ↹: Autocompletes dari posisi kursor. 

⎈ Ctrl + a: Memindahkan kursor ke awal baris (setara dengan kunci ⇱ Home). 

⎈ Ctrl + b: Memindahkan kursor kembali satu karakter (setara dengan kunci ←). 

⎈ Ctrl + c: Mengirim sinyal SIGINT untuk tugas saat ini, yang dibatalkan dan menutup itu. 

⎈ Ctrl + d 

 

Mengirim penanda EOF, yang (kecuali dinonaktifkan oleh pilihan) menutup shell saat ini (setara dengan perintah exit). (Hanya jika tidak ada teks pada baris saat ini)

Jika ada teks pada baris saat ini, menghapus karakter saat ini (kemudian setara dengan tombol Delete).

⎈ Ctrl + e: (end) memindahkan kursor ke akhir baris (setara dengan kunci ⇲ End). 

⎈ Ctrl + f: Memindahkan kursor maju satu karakter (setara dengan → key). 

⎈ Ctrl + g: Abort penelitian dan mengembalikan garis asli. 

⎈ Ctrl + h: Menghapus karakter sebelumnya (sama seperti backspace). 

⎈ Ctrl + i: Setara dengan tombol tab. 

⎈ Ctrl + j: Setara dengan tombol enter. 

⎈ Ctrl + k: Menghapus isi baris setelah kursor dan copy ke clipboard. 

⎈ Ctrl + l: Menghapus isi layar (setara dengan perintah yang jelas). 

⎈ Ctrl + n: (berikutnya) mengingatkan perintah berikutnya (setara dengan ↓ kunci). 

⎈ Ctrl + o: Mengeksekusi ditemukan perintah dari sejarah, dan mengambil baris berikutnya relatif terhadap garis arus dari sejarah untuk mengedit. 

⎈ Ctrl + p: (sebelumnya) mengingat perintah sebelumnya (setara dengan ↑ kunci). 

⎈ Ctrl + r: (penelitian) mengingat perintah terakhir termasuk karakter tertentu (s). Kedua ⎈ Ctrl + r ingat perintah anterior berikutnya yang sesuai dengan penelitian 

⎈ Ctrl + s: Kembali ke perintah yang lebih baru selanjutnya dari penelitian ini (hati-hati untuk tidak melaksanakannya dari terminal karena perintah ini juga meluncurkan XOFF nya). Jika Anda berubah bahwa XOFF pengaturan, gunakan ⎈ Ctrl + q untuk kembali. 

⎈ Ctrl + t: Transpose sebelumnya dua karakter. 

⎈ Ctrl + u: Menghapus isi baris sebelum kursor dan copy ke clipboard. 

⎈ Ctrl + v: Jika input berikutnya juga urutan kontrol, ketik secara harfiah (misalnya * ⎈ Ctrl + v ⎈ jenis Ctrl + h "^ H", sebuah backspace literal.) 

⎈ Ctrl + w: Menghapus kata sebelum kursor dan copy ke clipboard. 

⎈ Ctrl + x ⎈ Ctrl + e: Mengedit baris saat ini dalam program EDITOR $, atau vi jika tidak terdefinisi.

⎈ Ctrl + x ⎈ Ctrl + r: Baca di isi file inputrc, dan memasukkan setiap binding atau penempatan variabel ditemukan di sana. 

⎈ Ctrl + x ⎈ Ctrl + u: undo Incremental, secara terpisah diingat untuk setiap baris. 

⎈ Ctrl + x ⎈ Ctrl + v: Menampilkan informasi versi tentang contoh saat bash. 

⎈ Ctrl + x ⎈ Ctrl + x: Alternate kursor dengan posisi lama. (C-x, karena x memiliki bentuk crossing).

⎈ Ctrl + y: (yank) menambahkan isi clipboard dari posisi kursor. 

⎈ Ctrl + z: Mengirim SIGTSTP sinyal untuk tugas saat ini, yang menunda itu. Untuk menjalankannya di latar seseorang dapat masuk bg. Untuk membawanya kembali dari latar belakang atau suspensi fg ['nama proses atau job id'] (foreground) dapat dikeluarkan. 

⎈ Ctrl + _: undo Incremental, secara terpisah diingat untuk setiap baris.


⎇ Alt + b: (mundur) memindahkan kursor mundur satu kata.


⎇ Alt + c: mengkapitalisasi karakter di bawah kursor dan bergerak ke akhir kata.


⎇ Alt + d: Memotong kata setelah kursor.


⎇ Alt + f: (forward) menggerakkan kursor maju satu kata.


⎇ Alt + l: Menurunkan kasus setiap karakter dari posisi kursor ke akhir kata saat ini.


⎇ Alt + r: Membatalkan perubahan dan menempatkan lini belakang seperti itu dalam sejarah.


⎇ Alt + u: mengkapitalisasi setiap karakter dari posisi kursor ke akhir kata saat ini.


⎇ Alt +. : Masukkan argumen terakhir dengan perintah sebelumnya (kata terakhir dari entri sejarah sebelumnya).

Karyawan Free Software Foundation telah menulis dan mempertahankan sejumlah paket perangkat lunak GNU. Dua yang terkenal adalah perpustakaan C dan shell .... Kami membiayai pengembangan program tersebut karena proyek GNU bukan hanya tentang alat atau lingkungan pengembangan. Tujuan kami adalah sistem operasi yang lengkap, dan program tersebut diatas diperlukan untuk tujuan tersebut. " 

 

Bash Scripting Linux

Pertama kita harus membuat satu perintah penerjemah pada awal baris pembuatan shell script.

#!/bin/bash

perintah diatas harus diletakkan diawal baris program shell. Ini menandakan bahwa, shell apapun yang aktif sekarang akan dapat mengeksekusi program kita dengan penerjemahan menggunakan bahasa Bourne Again Shell.Sekarang saya akan memberikan contoh untuk memulai pemrogramming BAsh shell ini.


manex@ubuntub0x:~$ echo "perintah ini untuk menampilkan tulisan"

perintah ini untuk menampilkan tulisan

manex@ubuntub0x:~$ read examp

perintah ini untuk menulis secara langsung pada shell

manex@ubuntub0x:~$ echo $examp

perintah ini untuk menulis secara langsung pada shell

Pada perintah diatas yang pertama yaitu “echo”, untuk memprint apa yang ktia ketikkan pada layar. Begitu juga dengan perintah “read”, pada penggunaan “read” sebelumnya kita membuat satu variabel yaitu “examp” yang nantinya akan kita panggil dengan menggunakan perintah “echo” seperti pada contoh diatas. Oya, “read” berfungsi untuk mengetik secara langsung pada layar.Perintah shell bash dalam linux juga dapat berfungsi layaknya seperti kalkulator.contohnya sebagai berikut:

 

 manex@ubuntub0x:~$ echo $[ 2 * 3 ]

6
manex@ubuntub0x:~$ echo $[ 3 + 5 ]

8
manex@ubuntub0x:~$ echo $[ 10 - 4 ]

6

program diatas untuk melakukan suatu penghitungan mulai dari perkalian, penjumlahan, dan pengurangan layaknya seperti kalkulator.Sekarang kita masuk pada pembuatan programnya, untuk membuat suatu program dari BAsh kita perlu yang namanya text editor seperti vi, vim, nano, etc, untuk menuliskan script yang akan kita gunakan. Pertama masuk dulu ke text editor anda, disini saya menggunakan vim sebagai text editor untuk pembuatan scriptnya


manex@ubuntub0x:~$ sudo vim scriptsaya.sh

setelah masuk pada text editor vim, anda tinggal menekan tombol “i” pada keyboard untuk memulai penulisan script



#!/bin/bash

inivariable="hai, darmanex"

inivariable2="ini script saya yang pertama"

echo "$inivariable"

echo "$inivariable2"

exit 0

setelah kita membuat script diatas, terlebih dahulu kita ubah permission-nya biar nantinya kita dapat mengeksekusi program yang telah kita buat tadi

manex@ubuntub0x:~$ sudo chmod 755 scriptsaya.sh

selanjutnya baru kita mengeksekusi program yang kita buat tadi

manex@ubuntub0x:~/$ ./scriptsaya.sh , maka akan muncul seperti dibawah ini
hai, darmanex

Saya akan memberikan contoh lagi yaitu untuk mengetahui username, tanggal hari ini, siapa yang menggunakan sistem dan direktori yang aktif saat ini. Berikut scriptnya


#!/bin/bash

echo "Hai, $LOGNAME"

echo "Tanggal saat ini `date`, berati hari ini ultahmu yak??"

echo “gak kok, ultahku udah lewat 24 mei kemaren”
echo "Pemakai sistem ini adalah `who i am`"

echo "Direktori yang aktif saat ini `pwd`"
exit 0

jangan lupa untuk merubah permission program yang telah kita buat seperti diatas

manex@ubuntub0x:~$ ./info.sh

Hai, manex

Tanggal saat ini Mon May 26 00:09:45 WIT 2008, berati hari ini ultahmu yak??

gak kok, ultahku udah lewat 24 mei kemaren

Pemakai sistem ini adalah manex pts/1 2008-05-25 22:53 (:0.0)

Direktori yang aktif saat ini /home/manex/



Daftar Agen Pulsa dan PPOB Gratis Di Sini

Next Post Previous Post
No Comment
Add Comment
comment url