
Jika Anda bekerja pada sistem operasi (OS) Microsoft, Apple, atau Linux, Anda menggunakan shell script, mungkin tanpa menyadarinya. Faktanya, Anda berinteraksi dengan shell setiap kali menyalakan OS Linux Anda.
Shell script membantu programmer, data scientist, dan pengguna kasual menghemat waktu dan menghindari tugas berulang melalui otomatisasi. Misalnya, skrip dapat melakukan pencadangan harian, memasang patch, memantau sistem dan aktivitas, serta melakukan audit rutin.
Shell membaca perintah yang cukup intuitif bagi manusia dan mengubahnya menjadi sesuatu yang dapat dipahami sistem.
Apa itu Shell?
Shell adalah jenis program komputer yang disebut command-line interpreter yang memungkinkan pengguna Linux dan Unix mengendalikan sistem operasinya dengan antarmuka baris perintah. Shell memungkinkan pengguna berkomunikasi secara efisien dan langsung dengan sistem operasi mereka.
Shell scripting bukan satu bahasa tunggal, tetapi karena menggunakan beberapa perintah bahasa natural, ini mudah dipelajari bahkan tanpa latar belakang pemrograman. Namun, setiap dialek shell scripting dianggap sebagai bahasa, dan jika Anda merencanakan aktivitas yang lebih kompleks, shell memerlukan banyak latihan.
Shell scripting adalah salah satu cara termudah untuk menyiapkan otomatisasi. Dengan menggunakan perintah Linux atau Unix, shell scripting memberi data scientist, DevOps, dan TechOps struktur kontrol kondisi dan loop untuk mengulang perintah.
Shell script tidak selalu disebut dengan nama yang sama. Sh, Bash (yang paling umum), csh, dan tesh semuanya adalah shell script. Sementara di sistem operasi VM milik IBM, mereka disebut EXEC; di DOS, shell script disebut batch file.
Shell memiliki dua kategori, command-line shell dan graphical shell. Command-line shell diakses menggunakan antarmuka baris perintah di mana sistem menerima input berupa perintah yang dapat dibaca manusia dan kemudian menggunakan antarmuka baris perintah untuk menampilkan keluarannya.
Graphical shell menggunakan graphical user interface (GUI) untuk melakukan interaksi dan operasi penting seperti membuka, menutup, dan menyimpan file.
Berikut beberapa contoh perintah shell:
Untuk mengetahui Anda berada di direktori apa: pwd
Untuk mencari perintah di manual: man command
Untuk membuat berkas teks dapat digulir: less file 1 atau more file 1
Berbagai jenis shell
Bourne Shell
Meski namanya terdengar keren, Bourne shell tidak ada hubungannya dengan mata-mata dan kejar-kejaran mobil berkecepatan tinggi. Bourne shell, shell Unix paling umum kedua, dibuat pada 1979 oleh Stephen Bourne di Bell Labs. Seperti pendahulunya, Thompson shell, nama berkas eksekusi Bourne adalah sh.
Bourne shell adalah shell bawaan dari OS Solaris. Terlepas dari usianya, Bourne shell populer hingga kini karena cepat dan ringkas. Namun, Bourne shell tidak terlalu interaktif dan tidak dapat memanggil kembali command history. Shell ini juga tidak memiliki ekspresi logika dan aritmetika.
Prompt Bourne meliputi:
- Jalur penuh perintah:
/bin/shdan/sbin/sh - Bawaan pengguna non-root:
$ - Bawaan pengguna root:
#
command-line
C shell, nama berkas csh, dan pendahulunya bernama berkas tcsh, adalah shell Unix lain dari akhir 70-an. Shell ini dibuat oleh Bill Joy, yang saat itu merupakan mahasiswa pascasarjana dari University of California, Berkeley.
Tidak seperti Bourne shell, C shell bersifat interaktif dan mengenali command history dan aliases. C shell juga menyertakan sintaks ekspresi mirip C dan aritmetika bawaan.
Prompt command-line mencakup:
- Jalur penuh perintah:
/bin/csh - Hostname bawaan pengguna non-root:
% - Hostname bawaan pengguna root:
#
KornShell
KornShell, nama berkas ksh, dikembangkan pada awal 1980-an oleh David Korn di Bell Labs. KornShell mencakup banyak fitur dari C shell, dan merupakan super-set serta kompatibel mundur dengan Bourne shell.
KornShell berjalan lebih cepat daripada C-shell. Ia menjalankan skrip Bourne shell dan memiliki array, fungsi, dan fasilitas manipulasi string mirip C. Selain itu, ia memiliki aritmetika bawaan.
Prompt KornShell meliputi:
- Jalur penuh perintah:
/bin/ksh - Bawaan pengguna non-root: $
- Bawaan pengguna root: #
GNU Bourne-Again shell
GNU Bourne-Again, atau Bash, adalah alternatif open-source untuk Bourne shell. Shell ini dirancang oleh Brian Fox untuk Proyek GNU dan dirilis pada 1989. Selain sepenuhnya kompatibel dengan Bourne shell, ia mengambil banyak fitur terbaik dari KornShell dan C shell. GNU Bourne-Again shell memiliki tombol panah yang otomatis dipetakan untuk pengeditan dan pemanggilan ulang perintah.
Prompt GNU Bourne-Again meliputi:
- Jalur penuh perintah:
/bin/bash - Prompt bawaan pengguna non-root:
bash-x.xx$ - Bawaan pengguna root:
bash-x.xx#
Apa yang dilakukan shell scripting
Analogi ini memang sederhana, tetapi bayangkan shell script sebagai isi-otomatis untuk programmer. Alih-alih mengetik perintah satu per satu di keyboard, shell menggunakan rangkaian perintah dalam satu skrip yang dapat dijalankan pengguna cukup dengan nama berkas sederhana di baris perintah. Shell script melakukan eksekusi program, pembungkusan teks, dan manipulasi berkas.
Shell scripting dapat melakukan sejumlah tugas, termasuk memantau tugas seperti penggunaan disk, melakukan pencadangan, membuat alat perintah, memanipulasi berkas, menjalankan program, menautkan program, menyelesaikan batch, dan lain-lain.
Alternatif utama untuk shell
Di sistem operasi VM milik IBM, mereka disebut EXEC; di DOS, shell script disebut batch file. Itu semua tetaplah shell script. Bahasa skrip lain, seperti Javascript, Python, Perl, dan TCL juga merupakan bahasa skrip. Tidak mengherankan, para profesional komputer masing-masing memiliki favoritnya, dan kita akan membahas kelebihan dan kekurangan shell sebentar lagi.
Mengapa Shell begitu populer?
Shell umum terdapat di hampir setiap OS karena efisien dan mudah diperbarui. Shell memantau sistem komputer Anda dan melakukan pencadangan rutin tanpa perlu Anda pikirkan.
Tidak perlu berganti sintaks karena sintaks dan perintah shell identik dengan yang dimasukkan di baris perintah. Selain itu, menulis shell script itu mudah dan cepat: prosesnya mulai dengan cepat dan mudah di-debug.
Apa kelemahan Shell Script?
Shell script rentan terhadap kesalahan dan sulit didiagnosis saat terjadi masalah. Shell tidak dirancang untuk tugas yang kompleks atau besar, dan lambat saat dieksekusi. Selain itu, shell tidak banyak menawarkan struktur data, dan dapat terjadi kekeliruan sintaks atau desain.
Kapan Shell dibuat?
Shell script pertama dibuat pada awal 1960-an oleh staf komputer MIT bernama Louis Pouzin. Baris perintah pertamanya adalah RUNCOM, yang membebaskan ilmuwan komputer dari tugas berulang seperti mengompilasi, memperbarui, mengganti nama, dan memindahkan.
Meski Pouzin bukan ahli bahasa pemrograman, atau mungkin justru karena itu, ia percaya bahwa baris perintah dapat menjadi bahasa itu sendiri.
Menjelang pertengahan 1960-an, Pouzin bekerja sama dengan ilmuwan Inggris Christopher Strachey. Strachey merancang macro-generator yang menjadi dasar bagi bahasa perintah Pouzin, yang berjalan pada sistem operasi Multics yang saat itu mutakhir.
Asal-usul nama Shell
Pouzin menamai bahasa barunya "shell" karena merupakan lapisan terluar dari sistem operasi.
Fitur Shell
Shell populer di kalangan programmer karena ringkas. Namun, itu bukan berarti sederhana. Shell menawarkan sejumlah fitur, antara lain:
Pemrosesan latar belakang
Salah satu manfaat terbesar shell script adalah dapat berjalan di latar belakang. Bergantung pada perintah, shell dapat berjalan di latar depan atau latar belakang. Proses latar depan terlihat di layar dan hanya dapat berjalan secara berurutan.
Proses latar belakang tidak muncul di layar dan dapat berjalan tidak berurutan. Untuk menjalankan shell script di latar belakang, pengguna cukup menambahkan ampersand (&) di akhir skrip.
Substitusi wildcard
Substitusi wildcard memungkinkan sistem memproses lebih dari satu perintah sekaligus atau menemukan potongan frasa dari berkas teks. Misalnya, * memberi tahu sistem untuk mencocokkan string apa pun, bahkan string kosong. ? mencocokkan satu karakter, [example] mencocokkan karakter apa pun ("example" hanyalah contoh) dan [1-9] (contoh lain) menginstruksikan shell untuk mencocokkan karakter dalam rentang tersebut.
Alias perintah
Alias shell adalah perintah pintas. Beberapa alias berupa satu kata, dan lainnya satu huruf. Untuk melihat daftar alias, pengguna hanya perlu memasukkan ·alias.
Riwayat perintah
Ada banyak cara shell menghemat waktu dan tenaga, tetapi salah satu fitur yang sangat praktis adalah riwayat perintah. Alih-alih mengetik ulang perintah, perintah history menampilkan semua perintah yang digunakan selama sesi tersebut.
Substitusi nama berkas
Substitusi nama berkas juga dikenal sebagai "globbing." Saat sebuah kata berisi karakter seperti ?, *, atau [, atau diawali dengan ~, shell akan melihat kata tersebut sebagai pola dan akan diganti dengan daftar alfabetis nama berkas yang cocok dengan pola itu.
Pengalihan input/output
Pengalihan input/output (i/o) memungkinkan pengguna menukar standar input (stdin) dan standar output (stdout) untuk dihubungkan ke layar tampilan, keyboard, atau sebuah berkas.
Piping
Shell piping adalah jenis pengalihan lain yang mengirim keluaran dari suatu perintah/proses/program ke perintah/proses/program lain. Ini memungkinkan perintah/proses/program berjalan secara bersamaan dan memungkinkan transfer data berkelanjutan tanpa harus melalui layar tampilan atau berkas teks sementara.
Substitusi variabel shell
Saat shell menemukan ekspresi yang berisi karakter khusus, shell menerjemahkan kode tersebut menjadi sesuatu yang lebih mudah dikenali pengguna. Proses itu disebut substitusi variabel atau singkatnya variabel.
Variabel juga digunakan oleh programmer yang lebih berpengalaman. Jika, misalnya, seorang programmer tidak mengetahui nilai sebenarnya sebelum mengeksekusi program, ia dapat menggunakan variabel sebagai placeholder sebelum kode siap dijalankan.
Bagaimana Shell Berbeda
Ada dua jenis utama shell, "shell" (sh) dan "bash." Keduanya berjalan dalam sistem operasi Unix. Shell adalah nama generik untuk scripting di shell mana pun. Seperti namanya, bash (Bourne Again Shell) adalah shell yang ditingkatkan dan diperluas.
Bash menggunakan peningkatan untuk fungsionalitas lebih banyak, mendukung job control, lebih mudah digunakan daripada sh, dan mendukung riwayat perintah. Sh tidak mendukung riwayat perintah; skripnya bekerja di shell mana pun dan lebih portabel.
Bagaimana Shell Berkembang Selama Bertahun-tahun
Selama bertahun-tahun, shell telah berevolusi dan kurang lebih tetap sama. Bourne shell merupakan langkah maju besar dari Thompson shell asli, tetapi banyak fungsi asli yang tetap ada. Tentu, komputer dan ekspektasi kita semua telah berubah.
Secara potensial ada sebanyak shell seperti jumlah penggunanya; tetapi secara fundamental, ada dua jenis shell – command-line atau Bourne. Selain itu merupakan dialek alih-alih bahasa yang berbeda.
Shell Unix
Shell Unix adalah yang asli dan masih kuat hingga kini. Shell Unix bekerja pada sistem operasi Unix dan yang terkait Unix, seperti Mac.
command-line
command-line (csh) adalah shell Unix yang paling umum. command-line unggul untuk pekerjaan interaktif, termasuk alias, cdpath, job control, path hashing, directory stack, dan sebagainya. Shell ini juga menawarkan fitur pengeditan dan riwayat.
Tenex command-line
Tenex command-line (tcsh) dikembangkan oleh Ken Greer dari Caregia Melo University. Tenex dianggap sebagai peningkatan atas versi command-line asli. Berbeda dengan C asli, Tenex menawarkan pengeditan dan pelengkapan baris perintah, di antara fitur lainnya. Pada 1981, tsch bergabung dengan csh.
Korn shell
Korn shell (ksh) adalah shell Unix lain tetapi semacam kompromi antara C dan Bourne shell, dengan kompatibilitas mundur dengan yang terakhir. Korn shell dikembangkan pada awal 1980-an oleh David Korn di Bell Labs.
Bourne again shell
Bourne Again shell (Bash) adalah shell Unix open-source yang ditulis pada akhir 1990-an oleh Brian Fox untuk proyek GNU sebagai peningkatan atas Bourne shell.
Shell eksotis
Meski semuanya dibangun di atas C atau Bourne shell, para programmer telah merancang ratusan bahkan ribuan dialek berbeda. Sebagian berguna, sebagian lagi sekadar untuk bersenang-senang.
Siapa yang menggunakan Shell?
Hampir siapa pun yang menggunakan komputer mendapatkan manfaat dari shell, tetapi shell sangat bermanfaat bagi administrator sistem, orang DevOps, programmer, dan data scientist. Shell digunakan untuk mengotomatisasi tugas dan aplikasi, memasang paket, mencadangkan atau memulihkan data, dan tentu saja untuk pemrograman.
Contoh Shell
Shell bisa sesederhana atau serumit yang diinginkan pengguna. Salam bash sederhana, misalnya, berbunyi, echo “hello $USER”, sementara shell script kompleks hampir tak terbatas. Berikut beberapa contoh dasar:
Buat sebuah berkas di bash menggunakan editor yang sesuai. Di sini kita menggunakan editor vi.
$ vi example.shTekan tombol 'i' untuk mulai memasukkan kode:
#!/bin/bash
valid=true
count=1
while [ $valid ]
do
echo $count
if [ $count -eq 10 ];
then
break
fi
((count++))
done
Jalankan dengan menggunakan
bash example.sh $vi example2.sh#!/bin/bash
echo "Enter first number"
read x
echo "Enter second number"
read y
((sum=x+y))
echo "The result of addition = $sum"
bash example2.shKarier dengan Shell
Bukan sebagai jalur karier, pikirkan shell scripting sebagai alat yang berguna dalam gudang senjata seorang data scientist. Profesional data dari berbagai jenis perlu mengetahui banyak bahasa (atau setidaknya seharusnya), dan shell script membantu mereka menggunakan bahasa-bahasa tersebut dengan lebih efisien.
Meski begitu, beberapa perusahaan memiliki peran yang secara khusus memerlukan shell scripting. Gaji rata-rata sekitar $78.000. Meski demikian, shell script adalah batu loncatan menuju peran seperti administrator sistem, yang dapat menghasilkan gaji enam digit.
Kesimpulan
Shell seperti benang yang menghubungkan setiap bahasa pemrograman. Perintah yang kompleks diringkas menjadi singkat dan intuitif. Memahami shell adalah keterampilan penting bagi setiap data scientist atau insinyur komputer. Pelajari tentang shell di kursus Introduction to Shell dari DataCamp.
FAQ Shell
Apa itu kernel?
Kernel adalah bagian paling esensial dari sistem operasi. Kernel bertanggung jawab mengalokasikan memori dan waktu kepada program komputer, serta mengelola komunikasi dan penyimpanan berkas sebagai respons terhadap system call.
Apa itu shell?
Shell adalah antarmuka antara kernel dan pengguna.
Apa manfaat shell?
Kita sudah tahu bahwa shell efisien, dan menangani banyak tugas membosankan pengguna; namun lebih dari itu, shell memungkinkan pengguna menyesuaikan skrip agar sesuai dengan kebutuhan mereka sendiri.
Apa kelemahan shell?
Satu kesalahan saja bisa sangat mahal dan sulit diidentifikasi. Selain itu, shell tidak terlalu portabel antar sistem operasi.
Apa perbedaan antara Unix dan Linux?
Linux adalah klon Unix yang dikembangkan oleh Linus Torvalds. Linux bukanlah sistem operasi itu sendiri; Linux adalah kernel. Unix, bagaimanapun, mencakup kernel, shell, dan program-programnya.
Shell apa yang umum digunakan pada sistem Linux dan Unix?
Bash, atau Bourne Again shell, adalah shell yang paling umum digunakan, tetapi baik Linux maupun Unix juga mendukung command-line, KornShell, dan TCSH.
Apa itu sintaks shell?
Dalam bahasa natural, sintaks merujuk pada bagaimana kata dan frasa disusun. Sintaks shell mirip; ini merujuk pada urutan operasi.
Apa itu interpreter?
Interpreter menerjemahkan pernyataan tunggal ke dalam kode mesin.
Apa itu compiler?
Compiler menerjemahkan program tingkat tinggi ke dalam bahasa mesin yang lebih kompleks.
Bagaimana cara mengeksekusi berkas shell?
Atur izin dengan: chmod+x script-name-here.sh
Lalu, jalankan dengan: ./script-name-here.sh atau sh script-name-here.sh.
