Pengertian Shell Scripting dalam linux
SHELL SCRIPTING DALAM SISTIM OPERASI LINUX
Pertama-tama kita harus tahu apa itu shell scripting. Ini dia pengertian dari shell scripting:
"Shell Script is series of command written in plain text file. Shell script is just like batch file is MS-DOS but have more power than the MS-DOS batch file."
Terjemahan bebasnya kira2 begini:
shell script adalah beberapa perintah yang ditulis dengan plain text file. Shell script mirip sekali dengan batch file di MS-DOS hanya saja lebih powerfull.
Fungsi utama dari shell scripting adalah mengotomasi perintah2 yang sudah biasa kita gunakan sehingga kita tidak perlu menuliskan setiap kali dengan cara yang berulang dan lengkap, tapi cukup dengan fungsi yang telah kita buat. Tentu saja ini akan sangat menghemat waktu kita dalam melakukan pekerjaan administrasi sistem dan lainnya.
SHELL
Seperti yang kita sudah bahas sebelumnya, shell pada linux mirip sekali dengan MS-DOS . Shell merupakan command-line intepreter artinya untuk melakukan apapun harus dengan mengetikkan baris perintah.Jika kita sudah terbiasa dengan window manager(KDE, GNOME) Maka kita mungkin tidak terbiasa dengan shell ini namun semua tampilan manis dari window manager adalah kepanjangan tangan dari shell.
Perintah2 dasar:
Salah satu yang perlu diingat adalah bahwa linux diciptakan dengan menggunakan bahasa C , jadi penggunaan huruf besar dan kecil pada linux adalah case sensitive.
Pwd
pwd (present working direktory) ialah perintah untuk melihat direktory kerja sekarang atau mudahnya untuk melihat posisi kursor sekarang.
$ pwd
/home
cd (change directory)
cd digunakan untuk berpindah direktory. Sintaknya : cd nama_direktory.
$ cd daniel
ada trik mengenai perintah cd, ketika anda dihadapkan pada suatu kasus dimana nama direktori tersebut panjang dan jika di ketik terlalu lama dan rentang kesalahan ketik , maka cukup ketik satu atau beberapa huruf dan tekan tombol tab.
1. $ cd s # tekan tab hasilnya seperti dibawah ini
2. $ cd daniel/
Contoh diatas ingin berpindah ke direktory danielGinting, cukup dengan mengetikkan ‘cd s’ dan tekan tombol tab maka hasilnya akan seperti pada contoh kedua.Anda yang mulai menekuni dunia linux dan menginstall aplikasi under shell gunakan trik diatas. Perintah cd digunakan untuk berpindah direktori sedangkan untuk berpindah direktori diatas nya
$ pwd
/home/daniel/mail
$ cd .. #naik satu tingkat direktiry diatasnya
$ pwd
/home/daniel
su (subtitute user)
su digunakan untuk berpindah user (switch). Sintaknya : $su nama_user. Namun jika anda mengetikkan ‘su’ saja maka defaultnya switch ke root (administrator).
[daniel@danielGinting daniel]$ su
Password:
[root@danielGinting daniel]# Ingat password di linux tidak ditampilkan (no-echo).
ls (List)
Perintah ‘dir’ pada Dos digunakan untuk melihat isi directory begitu juga dengan di shell digunakan ‘ls’.
Namun di shell juga di kenal perintah ‘dir’ yang mempunyai output yang sama dengan ‘ls’.
Sintaknya : $ls
$ ls
Mail home mail mbox
Perintah di atas digunakan untuk menampilkan isi directory, seperti halnya pada windows di linux juga terdapat file hidden (nama file yang diawali dengan tanda titik berarti file hidden). Untuk menampilkan file hidden maka tambahkan atribut ‘-a’ pada ls. Huruf ‘a’ berarti menampilkan semua (all) file tanpa kecuali.
Sintaknya : $ls –a
$ ls -a
. .addressbook.lu .bash_profile .mh_profile Mail mbox .. .bash_history .bashrc .pinerc home .addressbook .bash_logout .emacs .screenrc mail
Untuk menampilkan file lengkap dengan ukuran , waktu di-create dan hak kepemilikan tambahkan atribut
‘-l’ (long).
$ ls -l
total 16 # nilai total dicari dari jumlah file keseluruhan termasuk file hidden (file yang tersembunyi) drwx------ 2 daniel daniel 4096 Aug 12 22:46 Mail drwxrwxr-x 2 daniel daniel 4096 Aug 15 08:37 home drwx------ 2 daniel daniel 4096 Aug 12 22:44 mail -rw------- 1 daniel daniel 1797 Aug 12 22:45 mbox
atribut ‘a’ dan ‘l’ juga dapat digabung dengan sintak $ls –al
cat (Concatenate)
cat digunakan untuk melihat isi file. Layaknya perintah ‘type’ di dos. Sintak : $ cat nama_file $ cat test.txt
mkdir (Make directory)
Perintah yang satu ini mempunyai fungsi yang sama dengan perintah ‘md’ pada Dos. Untuk membuat direktory ketik saja mkdir. Sintak : $mkdir nama_direktory
$ mkdir ilmu_komputer
$ ls
Mail home mail mbox ilmu_komputer test.txt
rmdir (remove directory)
Kebalikan dari mkdir, rmdir berfungsi menghapus direktory. Sintak : $rmdir nama_direktory
$rmdir pcplus
rm (remove)
Jika rmdir digunakan untuk menghapus direktory maka untuk menghapus (remove) file digunakan perintah rm. Sintak : $rm nama_file
$rm test.txt
cp (copy)
Untuk mengcopy file dalam satu direktory atau antar direktory secara umum mempunyai sintak :
$cp nama_file tujuan
$ cp test.txt pcplus/
keterangan perintah diatas yaitu file test.txt akan di copy ke direktory pcplus.
mv (move)
Membuat, menghapus file sudah anda pelajari. Sekarang perintah mv mempunyai dua makna artian yaitu
1. ‘mv’ untuk memindahkan file ke direktory lain sintak : $mv nama_file direktory_tujuan
$mv test.txt pcplus
file test.txt akan dipindahkan di direktory pcplus.
2. ‘mv’ digunakan untuk merubah ke nama file lain (rename). Sintak : $mv nama_file_lama nama_file-baru
$mv test.txt tess.txt
file test.txt akan di rename menjadi tess.txt.
more
Perintah terakhir ini sama funsinya dengan cat yaitu melihat isi file. Tapi sekarang akan ditunjukkan bagaimana menggabungkan isi dari 2 file menjadi satu tanpa menghapus masing-masing isi. Sekarang buat dua file yaitu : coba.txt dan test.txt $vi coba.txt
Tekan ‘i’ , ketikkan kalimat ‘kalimat ini saya tulis dari coba.txt’ , tekan tombol esc (escape) Ã titik dua
(:)Ã lanjutkan dengan ketik wq
$ cat coba.txt kalimat ini saya tulis dari coba.txt buat lagi file yang kedua dengan nama test.txt yang isinya ‘kalimat ini saya tulis dari test.txt’
$ cat test.txt kalimat ini saya tulis dari test.txt Nah, sekarang anda sudah mempunyai dua file coba.txt dan test.txt sekarang akan dicopy isi file dari coba.txt ke dalam test.txt
$more coba.txt >> test.txt
$ cat test.txt
kalimat ini saya tulis dari test.txt
kalimat ini saya tulis dari coba.txt
tanda >> berarti memasukkan suatu kejadian. Misalnya dari contoh diatas , perintah $more coba.txt >> test.txt berarti pertama kali yang dilakukan dengan perintah diatas ialah melihat isi file (more) dari coba.txt setelah itu hasil eksekusinya di masukkan (>>) ke test.txt. Tanda >> berarti tidak meng-overwrite isi file yang terdapat pada test.txt . Tetapi jika anda hanya menggunakan tanda > saja, maka isi file test.txt akan di hapus diganti dengan isi file coba.txt
$ more coba.txt > test.txt
$ cat test.txt
kalimat ini saya tulis dari coba.txt
Trik Shell :
• Untuk mencari file perintah yang digunakan locate
$locate nama_file
• jika ingin reboot (harus menjadi root dulu) lewat shell ketikkan perintah
#/sbin/reboot
Untuk shutdown
# /sbin/shutdown -h now
atribut –h berarti halt dan shutdown dilaksanakan sekarang (now).
• Untuk menghapus layer ketikkan ‘clear’
$clear # atau juga dapat dengan menekan ctrl+l.
Contoh
~Berikut ini contoh Shell interaktif dalam terminal consol Linux :
$ echo $PATH ‘enter’
/home/gsa12/bin:/usr/ucb:/usr/bin:/usr/local/bin:
Keterangan :
1. echo $PATH adalah perintah untuk menampilkan isi yang ada dalam variable yang bernama PATH. Variabel berisi daftar beberapa path yang dipisahkan dengan tanda ‘:’
~Tulis kode berikut ini langsung diterminal console
case “$-” in
*i*) echo inilah shell interaktif ;;
*) echo ini juga shell interaktif ;; esac
keluaran dari Shell interaktif tersebut adalah :
ini shell interaktif
KONSTRUKSI IF
if akan mengeksekusi instruksi-awal, dan exit status dari instruksi tersebut akan menjadi kondisi. Bila 0, maka instruksi selanjutnyua masuk ke dalam blok then. Bila tidak 0, maka alur program diteruskan setelah kunci kata fi.
if instruksi-awal
then
instruksi1
instruksi2
………………
Fi
KONSTRUKSI IF THEN ELSE
if instruksi1 then instruksi1.1 instruksi1.2 ……………… else instruksi2.1 instruksi2.2 ……………… fi
Bila status exit tidak sama dengan 0, maka kondisi menjadi FALSE dan instruksi setelah else akan dijalankan.
Contoh Sederhana
loginfo.sh echo –e “Tanggal dan jam saat ini : \c” date echo –e “Jumlah user saat ini : \c” who | wc –l echo –e “informasi personal : \c” whoami exit 0 fcount.sh ls –l | sed 1d | wc –l exit 0
contoh lain:
echo -n "Masukkan nama seekor binatang: " read BINATANG echo -n "Binatang $BINATANG memiliki " case $BINATANG in kuda | anjing | kucing) echo -n "empat" ;; ayam | burung echo -n "dua" ;; *) echo -n "tidak diketahui jumlah ;; esac echo " kakinya."
Contoh (for1.sh)
#!/bin/sh
for file in *.old
do
newf=`basename $file .old`
cp $file $newf.new
Contoh (while1.sh)
#!/bin/sh
while [ $# -gt 0 ]
do
echo $1
shift
0 komentar:
Posting Komentar