Linux untuk pemula - pemrograman shell
1. Pendahuluan
Apa itu shell ? shell adalah program (penterjemah perintah) yang menjembatani
user dengan sistem operasi dalam hal ini kernel (inti sistem operasi), umumnya
shell menyediakan prompt sebagai user interface, tempat dimana user mengetikkan
perintah-perintah yang diinginkan baik berupa perintah internal shell (internal
command), ataupun perintah eksekusi suatu file progam (eksternal command),
selain itu shell memungkinkan user menyusun sekumpulan perintah pada sebuah
atau beberapa file untuk dieksekusi sebagai program.
Macam - macam shell?
Tidak seperti sistem operasi lain yang hanya menyediakan satu atau
2 shell, sistem operasi dari keluarga unix misalnya linux sampai saat ini
dilengkapi oleh banyak shell dengan kumpulan perintah yang sangat banyak,
sehingga memungkinkan pemakai memilih shell mana yang paling baik untuk
membantu menyelesaikan pekerjaannya, atau dapat pula berpindah-pindah dari
shell yang satu ke shell yang lain dengan mudah, beberapa shell yang ada di
linux antara lain:
·
Bourne shell(sh),
·
C shell(csh),
·
Korn shell(ksh),
·
Bourne again shell(bash),
·
dsb.
Masing - masing shell mempunyai kelebihan dan kekurangan yang
mungkin lebih didasarkan pada kebutuhan pemakai yang makin hari makin
meningkat, untuk dokumentasi ini shell yang digunakan adalah bash shell dari
GNU, yang merupakan pengembangan dari Bourne shell dan mengambil beberapa
feature (keistimewaan) dari C shell serta Korn shell, Bash shell merupakan
shell yang cukup banyak digunakan pemakai linux karena kemudahan serta
banyaknya fasilitas perintah yang disediakan.versi bash shell yang saya gunakan
adalah 2.04
[fajar@linux$]echo $BASH_VERSION
bash 2.04.12(1)-release
Mungkin saat anda membaca dokumentasi ini versi terbaru dari bash
sudah dirilis dengan penambahan feature yang lain.
Yaitu menyusun atau mengelompokkan beberapa perintah shell
(internal atupun eksternal command) menjadi kumpulan perintah yang melakukan
tugas tertentu sesuai tujuan penyusunnya. Kelebihan shell di linux dibanding
sistem operasi lain adalah bahwa shell di linux memungkinkan kita untuk
menyusun serangkaian perintah seperti halnya bahasa pemrograman (interpreter
language), melakukan proses I/O, menyeleksi kondisi, looping, membuat fungsi,
dsb. adalah proses - proses yang umumnya dilakukan oleh suatu bahasa
pemrograman, jadi dengan shell di linux kita dapat membuat program seperti
halnya bahasa pemrograman, untuk pemrograman shell pemakai unix atau linux
menyebutnya sebagai script shell.
3. Kebutuhan Dasar
Sebelum mempelajari pemrograman Bash shell di linux sebaiknya anda
telah mengetahui dan menggunakan perintah - perintah dasar shell baik itu
internal command yang telah disediakan shell maupun eksternal command atau
utility, seperti :
·
cd, pwd, times, alias, umask, exit, logout, fg, bg, ls, mkdir,
rmdir, mv, cp, rm, clear, ...
·
utilitas seperti cat, cut, paste, chmod, lpr,...
·
redirection (cara mengirim output ke file atau menerima input dari
file), menggunakan operator redirect >, >>, <, <<, contohnya:
ls > data
hasil ls dikirim ke file data, jika file belum ada akan dibuat tetapi jika sudah ada isinya akan ditimpa.
hasil ls dikirim ke file data, jika file belum ada akan dibuat tetapi jika sudah ada isinya akan ditimpa.
ls >> data
hampir sama, bedanya jika file sudah ada maka isinya akan ditambah di akhir file.
hampir sama, bedanya jika file sudah ada maka isinya akan ditambah di akhir file.
cat < data
file data dijadikan input oleh perintah cat
file data dijadikan input oleh perintah cat
·
pipa (output suatu perintah menjadi input perintah lain),
operatornya : | , contoh:
ls -l | sort -s
ouput perintah ls -l (long) menjadi input perintah sort -s (urutkan secara descending), mending pake ls -l -r saja :-)
ouput perintah ls -l (long) menjadi input perintah sort -s (urutkan secara descending), mending pake ls -l -r saja :-)
ls -l | sort -s | more
cat <data | sort > databaru
·
Wildcard dengan karakter *, ?, [ ], contohnya:
ls i*
tampilkan semua file yang dimulai dengan i
tampilkan semua file yang dimulai dengan i
ls i?i
tampilkan file yang dimulai dengan i, kemudian sembarang karakter tunggal, dan diakhiri dengan i
tampilkan file yang dimulai dengan i, kemudian sembarang karakter tunggal, dan diakhiri dengan i
ls [ab]*
tampilkan file yang dimulai dengan salah satu karakter a atau b
tampilkan file yang dimulai dengan salah satu karakter a atau b
4. Simple Bash Script
Langkah awal sebaiknya periksa dulu shell
aktif anda, gunakan perintah ps (report process status)
[fajar@linux$]ps
PID TTY TIME CMD
219
tty1 00:00:00 bash
301
tty1 00:00:00 ps
bash adalah shell aktif di system saya, jika disystem anda berbeda
misalnya csh atau ksh ubahlah dengan perintah change shell
[fajar@linux$]chsh
Password:
New shell
[/bin/csh]:/bin/bash
Shell
changed
atau dengan mengetikkan bash
[fajar@linux$]bash
sekarang coba anda ketikkan perintah dibawah
ini pada prompt shell
echo "Script
shell pertamaku di linux"
[fajar@linux$]echo "Script shell pertamaku di
linux"
Script shell pertamaku di linux
string yang diapit tanda kutip ganda (double quoted) akan
ditampilkan pada layar anda, echo adalah statement (perintah) built-in bash yang berfungsi
menampilkan informasi ke standard output yang defaultnya adalah layar. jika
diinginkan mengulangi proses tersebut, anda akan mengetikkan kembali perintah
tadi, tapi dengan fasilitas history cukup menggunakan tombol panah kita sudah
dapat mengulangi perintah tersebut, bagaimana jika berupa kumpulan perintah
yang cukup banyak, tentunya dengan fasilitas hirtory kita akan kerepotan juga
mengulangi perintah yang diinginkan apalagi jika selang beberapa waktu mungkin
perintah-perintah tadi sudah tertimpa oleh perintah lain karena history
mempunyai kapasitas penyimpanan yang ditentukan. untuk itulah sebaiknya
perintah-perintah tsb disimpan ke sebuah file yang dapat kita panggil kapanpun
diinginkan.
coba ikuti langkah - langkah berikut:
1. Masuk ke editor anda, apakah memakai vi,pico,emacs,dsb...
2.
Ketikkan perintah berikut
#!/bin/bash
echo "Hello, apa khabar"
3.
simpan dengan nama file tes
4.
ubah permission file tes menggunakan chmod
[fajar@linux$]chmod 755 tes
5.
jalankan
[fajar@linux$]./tes
kapan saja anda mau mengeksekusinya tinggal memanggil file tes
tersebut, jika diinginkan mengeset direktory kerja anda sehingga terdaftar pada
search path ketikkan perintah berikut
PATH=$PATH:.
setelah itu script diatas dapat dijalankan dengan cara
[fajar@linux$]tes
Hello, apa khabar
tanda #! pada /bin/bash dalam script tes adalah perintah yang diterjemahkan ke kernel
linux untuk mengeksekusi path yang disertakan dalam hal ini program bash pada direktory /bin, sebenarnya tanpa
mengikutkan baris tersebut anda tetap dapat mengeksekusi script bash, dengan
catatan bash adalah shell aktif. atau dengan mengetikkan bash pada prompt
shell.
[fajar@linux$]bash tes
tentunya cara ini kurang efisien, menyertakan path program bash
diawal script kemudian merubah permission file sehingga dapat anda execusi
merupakan cara yang paling efisien.
Sekarang coba kita membuat script shell yang menampilkan informasi
berikut:
1.
Waktu system
2.
Info tentang anda
3.
jumlah pemakai yang sedang login di system
contoh
scriptnya:
#!/bin/bash
#myinfo
#membersihkan tampilan layar
clear
#menampilkan
informasi
echo -n
"Waktu system :"; date
echo -n
"Anda :"; whoami
echo -n
"Banyak pemakai :"; who | wc -l
sebelum dijalankan jangan lupa untuk
merubah permission file myinfo sehingga dapat dieksekusi oleh anda
[fajar@linux$]chmod
755 myinfo
[fajar@linux$]./myinfo
Waktu
system : Sat Nov 25 22:57:15 BORT 2001
Anda : fajar
Banyak
pemakai : 2
tentunya layout diatas akan disesuaikan
dengan system yang anda gunakan statement echo dengan opsi -n akan membuat posisi kursor untuk tidak berpindah
ke baris baru karena secara default statement echo akan mengakhiri proses pencetakan ke standar
output dengan karakter baris baru (newline), anda boleh mencoba tanpa
menggunakan opsi -n, dan lihat perbedaannya. opsi lain yang dapat
digunakan adalah -e (enable),
memungkinkan penggunaan backslash karakter atau karakter sekuen seperti pada
bahasa C atau perl, misalkan :
echo -e
"\abunyikan bell"
jika dijalankan akan mengeluarkan bunyi bell,
informasi opsi pada statement echo dan backslash karakter selengkapnya dapat dilihat via man di prompt shell.
[fajar@linux$]man
echo
Comments
Post a Comment
thanks