Apa itu Scripting Shell?
Menjadi pengguna Linux berarti Anda bermain-main dengan baris perintah. Suka atau tidak, hanya ada beberapa hal yang dilakukan jauh lebih mudah melalui antarmuka ini daripada dengan menunjuk dan mengklik. Semakin banyak Anda menggunakan dan mempelajari baris perintah, semakin Anda melihat potensinya. Nah, baris perintah itu sendiri adalah sebuah program: shell. Kebanyakan distro Linux saat ini menggunakan Bash, dan inilah yang sesungguhnya Anda masukkan ke dalam perintah.
Sekarang, beberapa dari Anda yang menggunakan Windows sebelum menggunakan Linux mungkin ingat file batch. Ini adalah file teks kecil yang dapat Anda isi dengan perintah untuk dieksekusi dan Windows akan menjalankannya secara bergantian. Ini adalah cara yang cerdas dan rapi untuk menyelesaikan beberapa hal, seperti menjalankan game di lab komputer sekolah menengah Anda ketika Anda tidak dapat membuka folder sistem atau membuat pintasan. Batch file di Windows, sementara berguna, adalah imitasi murah dari skrip shell.
Itu benar-benar kekuatan scripting, saya pikir. Anda bisa memprogram dengan perintah yang sudah Anda ketahui, sambil mempelajari pokok bahasa pemrograman utama. Perlu melakukan sesuatu yang berulang dan membosankan? Buat skrip! Butuh jalan pintas untuk perintah yang benar-benar rumit? Buat skrip! Ingin membangun antarmuka baris-perintah yang sangat mudah digunakan untuk sesuatu? Buat skrip!
Sebelum kamu memulai
Sebelum memulai seri scripting kami, mari kita bahas beberapa informasi dasar. Kami akan menggunakan bash shell, yang sebagian besar distro Linux digunakan secara native. Bash tersedia untuk pengguna Mac OS dan Cygwin di Windows juga. Karena sangat universal, Anda seharusnya dapat membuat skrip terlepas dari platform Anda. Selain itu, selama semua perintah yang direferensikan ada, skrip dapat bekerja pada banyak platform dengan sedikit atau tidak perlu tweaker.
Scripting dapat dengan mudah menggunakan hak istimewa "administrator" atau "superuser", jadi sebaiknya uji skrip sebelum Anda membuatnya berfungsi. Gunakan juga akal sehat, seperti memastikan Anda memiliki cadangan file yang akan Anda jalankan skripnya. Sangat penting juga untuk menggunakan opsi yang tepat, seperti –i untuk perintah rm, sehingga interaksi Anda diperlukan. Ini dapat mencegah beberapa kesalahan yang buruk. Karena itu, baca skrip yang Anda unduh dan berhati-hatilah dengan data yang Anda miliki, untuk berjaga-jaga jika ada yang salah.
Pada intinya, skrip adalah file teks biasa. Anda dapat menggunakan editor teks untuk menulisnya: gedit, emacs, vim, nano … Daftar ini terus berlanjut. Pastikan untuk menyimpannya sebagai teks biasa, bukan sebagai teks kaya, atau dokumen Word. Karena saya suka kemudahan penggunaan yang diberikan oleh nano, saya akan menggunakannya.
Izin Skrip dan Nama
Skrip dieksekusi seperti program, dan agar ini terjadi, mereka harus memiliki izin yang tepat. Anda dapat membuat skrip dieksekusi dengan menjalankan perintah berikut di atasnya:
chmod +x ~/somecrazyfolder/script1
Ini akan memungkinkan siapa pun menjalankan skrip tertentu. Jika Anda ingin membatasi penggunaannya hanya untuk pengguna Anda, Anda dapat menggunakan ini sebagai gantinya:
chmod u+x ~/somecrazyfolder/script1
Untuk menjalankan skrip ini, Anda harus melakukan cd ke direktori yang sesuai dan menjalankan skrip seperti ini:
cd ~/somecrazyfolder
./script1
Untuk membuat semuanya lebih nyaman, Anda dapat menempatkan skrip dalam folder "bin" di direktori home Anda:
~/bin
Di banyak distro modern, folder ini tidak lagi dibuat secara default, tetapi Anda dapat membuatnya. Ini biasanya tempat file yang dapat dieksekusi disimpan milik pengguna Anda dan bukan pengguna lain. Dengan menempatkan skrip di sini, Anda bisa menjalankannya dengan mengetikkan nama mereka, seperti perintah lain, daripada harus mengulang dan menggunakan awalan ‘./’.
Sebelum Anda memberi nama skrip, Anda harus mengikuti perintah berikut untuk memeriksa apakah Anda memiliki program yang diinstal yang menggunakan nama itu:
which [command]
Banyak orang menyebut skrip awal mereka "tes", dan ketika mereka mencoba menjalankannya di baris perintah, tidak ada yang terjadi. Ini karena konflik dengan perintah tes, yang tidak melakukan apa-apa tanpa argumen. Selalu pastikan nama skrip Anda tidak bertentangan dengan perintah, jika tidak Anda mungkin menemukan diri Anda melakukan hal-hal yang tidak ingin Anda lakukan!
Scripting Guidelines
- Setiap skrip harus dengan “#! / Bin / bash”
- Setiap baris baru adalah perintah baru
- Baris komentar dimulai dengan #
- Perintah dikelilingi oleh ()
Hack Hash-Bang
Ketika shell mem-parsing melalui file teks, cara paling langsung untuk mengidentifikasi file sebagai skrip adalah dengan membuat baris pertama Anda:
#!/bin/bash
Jika Anda menggunakan shell lain, gantikan jalurnya di sini. Baris komentar dimulai dengan hash (#), tetapi menambahkan bang (!) Dan path shell setelah itu adalah semacam hack yang akan melewati aturan komentar ini dan akan memaksa skrip untuk mengeksekusi dengan shell yang ditunjukkan oleh baris ini.
Baris Baru = Perintah Baru
Setiap baris baru harus dianggap sebagai perintah baru, atau komponen dari sistem yang lebih besar. Pernyataan if / then / else, misalnya, akan mengambil alih beberapa baris, tetapi setiap komponen dari sistem itu berada di baris baru. Jangan biarkan perintah mengalir ke baris berikutnya, karena ini dapat memotong perintah sebelumnya dan memberi Anda kesalahan pada baris berikutnya. Jika editor teks Anda melakukan itu, Anda harus mematikan pembungkusan teks agar berada di sisi yang aman. Anda dapat mematikan pembungkusan teks dalam bit nano dengan menekan ALT + L.
Komentar Seringkali dengan #s
Jika Anda memulai baris dengan #, garisnya diabaikan. Ini mengubahnya menjadi baris komentar, di mana Anda dapat mengingatkan diri Anda tentang apa output dari perintah sebelumnya, atau apa yang akan dilakukan oleh perintah berikutnya. Sekali lagi, matikan pembungkusan teks, atau bagikan komentar Anda menjadi beberapa baris yang semuanya dimulai dengan hash. Menggunakan banyak komentar adalah praktik yang baik untuk dijaga, karena memungkinkan Anda dan orang lain menyesuaikan skrip Anda dengan lebih mudah. Satu-satunya pengecualian adalah hack Hash-Bang yang disebutkan sebelumnya, jadi jangan ikuti #s dengan! S.;-)
Perintah-Perintah Dikelilingi Oleh Parenthes
Di masa tua, penggantian perintah dilakukan dengan tanda centang tunggal (`, berbagi kunci ~). Kami belum akan menyentuh hal ini, tetapi karena kebanyakan orang pergi dan menjelajahinya setelah mempelajari dasar-dasarnya, mungkin ide yang baik untuk menyebutkan bahwa Anda harus menggunakan tanda kurung sebagai gantinya. Ini terutama karena ketika Anda meletakkan - menempatkan perintah di dalam perintah lain - tanda kurung bekerja lebih baik.
Naskah Pertama Anda
Mari mulai dengan skrip sederhana yang memungkinkan Anda menyalin file dan menambahkan tanggal ke akhir namafile. Mari kita menyebutnya "datecp". Pertama, mari kita periksa untuk melihat apakah nama itu bertentangan dengan sesuatu:
Mari buat file kosong di folder ~ / bin:
touch ~/bin/datecp
nano ~/bin/datecp
Dan, mari lanjutkan dan masukkan prasyarat baris pertama, dan komentar tentang apa yang dilakukan skrip ini.
Apa yang akan kita masukkan keluar variabel? Nah, mari kita simpan tanggal dan waktu! Untuk melakukan ini, kami akan memanggil perintah tanggal.
Lihatlah screenshot di bawah ini untuk bagaimana membangun output dari perintah tanggal:
Mari gunakan iterasi terakhir dari perintah tanggal, "tanggal +% m_% d_% y-% H.% M.% S", dan gunakan itu di skrip kami.
Jika kita menyimpan skrip ini sekarang, kita bisa menjalankannya dan itu akan memberi kita output dari perintah tanggal seperti yang kita harapkan:
variable=$(command –options arguments)
Dan bagi kami, kami akan membangunnya seperti ini:
date_formatted=$(date +%m_%d_%y-%H.%M.%S)
Berikut ini contoh skrip dan hasilnya:
Mari kembali ke skrip kita. Mari kita tambahkan di bagian menyalin dari perintah.
cp –iv $1 $2.$date_formatted
Selanjutnya, Anda dapat melihat saya telah menambahkan opsi “$ 1”.Ketika scripting, tanda dolar ($) diikuti oleh angka akan menunjukkan argumen bernomor dari skrip ketika dipanggil. Misalnya, dalam perintah berikut:
cp –iv Trogdor2.mp3 ringtone.mp3
Argumen pertama adalah ‚ÄúTrogdor2.mp3‚Äù dan argumen kedua adalah‚ Äúringtone.mp3‚Äù.
Melihat kembali skrip kita, kita dapat melihat bahwa kita merujuk dua argumen:
Argumen kedua, $ 2, akan bertindak sebagai file output untuk perintah yang sama. Tetapi, Anda juga dapat melihat bahwa itu berbeda. Kami telah menambahkan jangka waktu dan kami mereferensi variabel “date_formatted” dari atas. Penasaran seperti apa ini?
Inilah yang terjadi ketika skrip dijalankan:
Sekarang ketika saya menjalankan perintah datecp, ia akan menjalankan skrip ini dan memungkinkan saya untuk menyalin file apa saja ke lokasi baru, dan secara otomatis menambahkan tanggal dan waktu untuk mengakhiri namafile. Berguna untuk mengarsipkan barang!
Shell scripting adalah inti dari pembuatan OS Anda untuk Anda. Anda tidak perlu mempelajari bahasa pemrograman baru untuk mewujudkannya juga. Coba scripting dengan beberapa perintah dasar di rumah dan mulailah memikirkan apa yang dapat Anda gunakan untuk ini.
Apakah Anda skrip? Punya saran untuk pemula? Bagikan pendapat Anda di komentar! Masih ada lagi yang akan datang dalam seri ini!