Sejarah Bash(Linux) dan Scripting pada Bash (Linux)
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
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).
Bash Scripting Linux
Pertama kita harus membuat satu perintah penerjemah pada awal baris pembuatan shell script.
#!/bin/bash
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
manex@ubuntub0x:~$ echo $[ 2 * 3 ]
6
manex@ubuntub0x:~$ echo $[ 3 + 5 ]
8
manex@ubuntub0x:~$ echo $[ 10 - 4 ]
6
manex@ubuntub0x:~$ sudo vim scriptsaya.sh
#!/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
#!/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