Workshop Labsi Pemrograman Shell Linux Husni husni@if.trunojoyo.ac.id husni.trunojoyo.ac.id
Garis Besar Shell Linux Pemrograman Shell Contoh-contoh
Shell Tempat interaksi antara pengguna dan Linux Penerjemah atau Pengeksekusi Program (Interpreter, Executor) Antarmuka teks (command line) Banyak digunakan untuk administrasi sistem dan mengelola file Hanya ada di sistem Unix (Linux). Windows tak punya tool canggih seperti di Linux Ditandai oleh prompt $ (user) atau # (root)
Menggunakan Shell Interaktif Satu atau lebih perintah shell diketik langsung pada prompt Hasil eksekusi ditampilkan langsung setelah (atau saat) eksekusi perintah Menulis skrip (shell scripting) Pengguna menulis beberapa baris kode (program, skrip) File skrip dieksekusi
Interaktif date; whoami; pwd ps top ls -la echo Kereeeen a=10; echo $a b=109; echo "B bernilai :" $b
Manual Perintah Shell Gunakan man man ls man ps man file Bagaimana mencari file dengan ekstensi tertentu? Misalnya *.jpg?
find. -name '*.jpg' file nama_file cat nama_file more nama_file grep keren nama_file man grep
Pipeline Echo aris joko faza fenny ubaid Echo aris joko faza fenny ubaid tr \n Echo aris joko faza fenny ubaid tr \n sort Echo aris joko faza fenny ubaid tr \n sort -r
Redirection date > sekarang.txt cat sekarang.txt date >> sekarang.txt cat sekarang.txt
Menulis Skrip Shell Tulis skrip menggunakan suatu Text Editor. Simpan sebagai file teks biasa, ekstensi.sh Ubah agar file skrip.sh tersebut bersifat executable: Baris pertama harus: #!/bin/bash Ubah agar exeutable: chmod +x nama_file.sh Eksekusi file skrip:. /nama_file.sh
Skrip Pertama: 01.sh Tulis 2 baris skrip berikut: #!/bin/bash echo "Halo, Saya belajar pemrograman shell Bash Linux." Simpan sebagai skrip01.sh Pada shell prompt, ketik: chmod +x skrip01.sh. /skrip01.sh
Contoh 02: 02.sh #!/bin/bash a=5.66 b=8.67 c=`echo $a + $b bc` echo "$a + $b = $c"
Contoh 03: 03.sh #!/bin/bash echo "Halo, $LOGNAME" echo "Tanggal sekarang `date`" echo "Pengguna: `who i am`" echo "Direktori aktif `pwd`"
Contoh 04: dir.sh #!/bin/bash echo Daftar file Anda: ; ls -l echo Thank U very Much ;
Contoh05 : secho.sh #!/bin/sh # Nama file skrip: kedua.sh # Apa yang dihasilkan skrip ini? echo "Halo dunia " # Halo dunia echo "Halo dunia " echo "Halo * dunia ; echo Halo * dunia echo Halo dunia; echo "Halo" dunia echo Halo " " dunia; echo "Halo \"*\" dunia " echo `halo` dunia; echo 'hello' dunia
Variabel Tidak dideklarasikan Tidak ada tipe data Tanpa spasi sebelum dan setelah = Case sensitive A=10; Nama= Nama anda ; nama = siapa anda
Contoh06: var1.sh #!/bin/sh # Nama file skrip: var1.sh MY_MESSAGE="Halo dunia" echo $MY_MESSAGE
Contoh07: var2.sh #!/bin/sh # Nama file skrip: var2.sh echo Siapa anda? read MY_NAME echo "Hello $MY_NAME - hope you're well."
Contoh08: var3.sh #!/bin/sh echo "MYVAR is: $MYVAR" MYVAR="hi there" echo "MYVAR is: $MYVAR" $ MYVAR=hello $ export MYVAR $./var3.sh
Contoh09: var4.sh #!/bin/sh echo "Siapa nama anda?" read USER_NAME echo "Halooo $USER_NAME" echo "Buat file bernama $USER_NAME_file" touch $USER_NAME_file
#!/bin/sh echo "Siapa nama anda?" read USER_NAME echo "Halooo $USER_NAME" echo "Buat file bernama ${USER_NAME}_file" touch ${USER_NAME}_file echo "Test 1 2 3" >> "${USER_NAME}_file" cat "${USER_NAME}_file"
Karakter Escape Bagaimana menampilkan Halo dunia? Bagaimana menampilkan Halo dunia $ echo "Halo dunia" $ echo "Halo \"dunia\"" $ echo "A quote is \", backslash is \\, backtick is \`." $ echo "A few spaces are ; dollar is \$. \$X is ${X}."
Perulangan (Looping) for do done while until
Contoh10: loop1.sh #!/bin/bash for i in 1 2 3 4 5 do echo "Welcome $i times" done for i in 1 2 3 4 5 dapat diganti for i in {1..5}
Contoh11: loop2.sh #!/bin/bash echo "Bash version ${BASH_VERSION}..." for i in {0..10..2} do echo "Welcome $i times" done
Bentuk 3 Ekspresi #!/bin/bash for (( c=1; c<=5; c++ )) do echo "Welcome $c times..." done
Infinite Loop #!/bin/bash for (( ; ; )) do echo "infinite loops [ hit CTRL+C to stop]" done
Looping: While #!/bin/bash x=1 while [ $x -le 5 ] do echo "Welcome $x times" x=$(( $x + 1 )) done
Looping: while #!/bin/bash COUNT=6 # bash while loop while [ $COUNT -gt 0 ]; do echo Value of count is: $COUNT let COUNT=COUNT-1 done
Faktorial #!/bin/bash counter=$1 factorial=1 while [ $counter -gt 0 ] do factorial=$(( $factorial * $counter )) counter=$(( $counter - 1 )) done echo $factorial
Looping: Until #!/bin/bash COUNT=0 until [ $COUNT -gt 5 ]; do echo Value of count is: $COUNT let COUNT=COUNT+1 done
Array #!/bin/bash ARRAY=( 'Debian Linux' 'Redhat Linux' Ubuntu Linux ) # ambil jumlah elemen array ELEMENTS=${#ARRAY[@]} for (( i=0;i<$elements;i++)); do echo ${ARRAY[${i}]} done
Test: if #!/bin/bash directory="./bashscripting" # cek direktori, atau atau tidak if [ -d $directory ]; then echo "Directory exists" else echo "Directory does not exists" fi
Perbandingan #!/bin/bash NUM1=2 NUM2=2 if [ $NUM1 -eq $NUM2 ]; then echo "Both Values are equal" else echo "Values are NOT equal" fi
Perbandingan #!/bin/bash NUM1=2 NUM2=1 if [ $NUM1 -eq $NUM2 ]; then echo "Both Values are equal" elif [ $NUM1 -gt $NUM2 ]; then echo "NUM1 is greater then NUM2" else echo "NUM2 is greater then NUM1" fi
Fungsi function name(){ Commands } ---- atau ---- name(){ Commands return $TRUE }
Fungsi /bin/bash function function_b { echo Function B. } function function_a { echo $1 } function function_d { echo Function D. } function function_c { echo $1 }
Memanggil Fungsi # Lewatkan parameter ke fungsi A function_a "Function A." function_b # Lewatkan parameter ke fungsi C function_c "Function C." function_d
Case #!/bin/bash echo "Apa bahasa favorit Anda?" echo "1) bash" echo "2) perl" echo "3) phyton" echo "4) c++" echo "5) Mene ketehe!" read case;
#simple case bash structure case $case in 1) echo "Anda memilih bash";; 2) echo "Anda memilih perl";; 3) echo "Anda memilih phyton";; 4) echo "Anda memilih c++";; 5) exit esac