60 Menit Belajar Script [Shell]

download 60 Menit Belajar Script [Shell]

of 29

description

Null

Transcript of 60 Menit Belajar Script [Shell]

Bab 1: PengantarLatar BelakangSalah satu alasan penulis menulis buku ini pada awalnya adalah untuk dokumentasi pribadi. Intinya sebagai batu pengingat jika suatu waktu lupa maka bisa membuka kembali catatan ini. Tak berapa lama, terbesit dalam benak penlis ungun mencoba berbagi pengetahuan serta pengaaman ini. Selanjutnya, ide tersebut penulis realisasikan dengan cara menuangkannya kedalam sebuah buku seferhana ini.Manfaat script belum begitu penulis rasakan secara mutlak ketika menangani jaringan yang kecil, atau sekedar tes di lab yang kecil. Namu, semua pandangan itu berubah ketika penulis menangani jaringan yang besar (skala enterprise).Ketika pertma kali penulis bekerja di lingkungan berinfrastruktur jaringan yang besar, supervisor meminta penulis untuk membackup konfigurasi beberapa switch merek cisci. Saat itu terjadi pemadaman listrik untukbeberapa blok gedung. Penulis hanya diberi 3 har. Penulis berfikir bahwa itu gampang sekali dan tidak perlu terburu-buru untuk menyelesaikannya, lagipulawaktu yang diberikan cukup lama. Disisi lain, proses backupp konfigurasi untuk switch/router dan access point relatif mudah dan sederhana, hanya dengan menjalankan beberapa command kemudian menyimpan konfigurasi, selesai.Anggapan itu semua hilang ketika penulis mencoba menghitung sendiri jumlah equipment yang harus di-backup. Penulis mencoba menghitung dari 3 blok gedung dan ternyata tiap gedung mempunyai I building switch sehingga jumlah total adalah 3 bah (masih mudah0. Selanjutnya, penulis tidak bisa membayangkan itu. Padahal, itu baru 3 blok building saja, bagaimana kalau satu zone ? dapat dipastikan jumlah building akan bisa lebih banyak lagi. Tak terbayangkan lagi, berapa jumlah toal perangkat jaringan. Belum lagi jika ada permintaan backup konfigurasi untuk gedung lainnya dan pemberitahuannya secara mendadak 1x24 jam.Melihat kondisi demikian, tidak mungkin penulis lakukan secara manual. Berangkat dari itulah kemudian penulis berfikir, sepertinya saya harus lebih serius untuk mengenal lebih jauh dan bercengkrama dengan script. Pada awalnya, belajar script memang begitu merepotkan dan tidak mengenakkan karena penulis belum terbiasa. Akan tetapi, bagaimanapun otomatisasi mutlak diperlukan untuk mempermudahkan pekerjaan administrasi jaringan.Dalam beberapa hari penulis mencoba membat otomatisasi dngan scripting. Pada akhirnya selesai juga meskipun masih sederhana. Namun yang terpenting adalah, penulis tidak perlu lagi bekerja secara manual dengan mengakses satu per satu switch dan access point yang berjumlah lebih dari seratus.Bagaimana buku ini disusunPenulis membagi buku ini menjadi beberapa bab, yang diharapkan dapat mempermudah para pembaca dalam memahami dan mengeksplorasi tiap bagian buku ini.Adapun buku ini terbagi menjadi 9 bab yaitu:Bab 2 PengantarBab I membahas latar belakang penulis dalam menulis buku ini, pengalaman penulis di lapangan, untuk siapa buku ini dibaca, dan keuntungan apa saja yang bisa diperoleh setelah membaca buku ini.Bab 2 Mengenal Script ShellBab 2 membahas bagaimana bekerja dengan script, yang diawali dengan penjelasan sekilas tentang beberapa variann shell. Selanjutnya, penulis akan membahas penggunaan salah satu shell tersebut untuk membangun script kemudian melakukan proses editing. Penglasan dilanjutkan pada cara membuat file baru lalu diakhiri dengan proses eksekusi script tersebut.Bab 3 Bekerja dengan fileBahasan dalam bab ini mencakup perintah-perintah apa saja yang sering digunakan dalam dunia scripting yaitu bagaimana bekerja di seputar file, beserta cara penggunaannya secara singkat. Secara garis besar, perintah perintah yang sering digunakan terdiri dari sintaks.Bab 4 Bekerja dengan SistemPokok bahasan ini merupakan kelanjutan dari bab sebelumnya. Agar kita menjadi lebih familiar, disini akan dikupas lebih dalam lagi mengenai perintah-perintah yang bekerja di sistem Linux/Unix.Bab 5 Bekerja dengan JaringanDalam bab ini, kita akan mengenal beberapa perintah jaringan, dan bagaimana cara bekerja dengan jaringan. Materi yang disajikan meliputi pemeriksaan perangkat antarmuka, pengujian konektivitas sera transfer file.Baba 6 Dasar ScriptSetelah pada bab terdahulu dibekali dengan tool dan pengetahuan perintah-perintah dasar Linux/Unix, pada bab ini Anda akan diajak untuk berpetualang lebih jauh lagi dengan dunia scripting. Materi yang dibahas meliputi bagaimana script itu tersusun, bagaimana mendfinisikan dan menggunakan variable, Input-Output, melakukan testing, operasi pengulangan, logika aritmeika dan masih banyak lagi.Bab 7 Perintah-perintah (lanjutan)Bab 7 membahas perintah-perintah lanjutan yang sengaja dijadikan dalam bab tersendiri. Penulis mempertimbangkan bahwa perintah ini mempunyai sifat sangat langka digunakan, namun sangat membantu sekali jika digunakan untuk pekerjaan otomatisasi. Selain itu, perintah ini bisa digunakan untuk penggunaan yang lebih advance (Lanjutan).Bab 8 Script untuk OtomatisasiPada bagian ini akan mengulas bagaimana script dibuat untuk otomatisasi dari permasalahan yang dihadapi dan bagaimana membuat otomatisasi script untuk bisa berinteraksi dengan perangkat jaringan. Materi yang dibahas meliputi otomatisasi script untuk memeriksa spasi HDD, bekerja dengan file, bekerja dengan file log, bekerja dengan Windows, dan backup konfigurasi Switch/Router.Bab 9 Bekerja dengan CygwinSetelah sekilas dibahas pada bab 8, disini penulis akan kembali membahas tentang Cygwin Unix emulator lebih jauh lagi. Di sini pembahasan dimulai dari bagaimana cara mendapatkan Cygwin, proses instalasinya dan juga cara kerja dari mesin emulator ini. Selain itu, disini akan menjelaskan pula bagaimana menambah suatu modul jika dalam proses awal instalasi belum terpasang.Untuk Siapa Buku Ini?Buku ini sengaja didesain sesederhana mungkin dan lebih ke arah praktis dengan mencoba memberikan contoh nyata yang dialami penulis di lapangan.Bahasannya dimulai dari dasar sampai tahap penerapan dan implementasi.Dengan membahas bagian dasar, penulis ingin buku ini menjadi konsumsi untuk kalangan pemula. Penulis ingin buku ini juga menjadi masukan dari pengalaman penulis di lapangan untuk kalangan yang telah mempunyaipengetahuan tentang script.Selain itu, buku ini bisa dipakai untuk administrator jaringan atau sistem yang sama sekali tidak tahu scripting, serta kalangan yang telah tahu dan ingin menambah khasanah pengetahuan tentang script ini. Beberapa contoh script yang digunakan tidak rumit.pembaca pun hanya perlu pengetahuan dasar di sistem operasi Linux/Unix (pemula) dan mengerti konsep dasar jaringan.Keuntungan Membaca Buku iniBagaimanapun dengan belajar dari nol, tentunya sangat banyak hambatan yang dihadapi. Pertama, kita harus memulainya dengan melakukan pencarian refernsi tulisan yang bisa dijadikan pegangan dan kadang kala beberapa sumber yang didapat sudah pada level advance/sxpert. Selai itu, kita juga harus mengenal dan menghafal berbagai macam sintaks penulisan perintah dan menyelesaikan tugas tugas. Secara langsung, hal ini menuntut kita untuk mencari cara tercepat untuk harus menyelesaikan pekerjaan dengan script juga.Melalui buku ini penulis akan memberikan cara mudah dan sederhana untuk menjawab berbagai hambatan tersebut di atas, untuk membantu kalangan awam dan pemula pada khususnya agar bisa belajar efisien dan to the point. Kompleksitas dan luasnya bahasan semua script serta variannya tidak semua bisa dibahas kedalam buku kecil uang sederhana ini. Akan tetapi, disini penulis berusaha merangkum beberapa bahasan tersebut sesederhana mungkin agar meudah dicerna, disertai dengan contoh-contoh yang lebih aplikatif.Keuntungan lainya adalah, buku ini berusaha menjelaskan pemakaian script untuk jaringan, khususnya ketika kita melakukan otomatisasi menggabungkan sistem dengan perangkat jaringan (baca: cisco), yang notabene adalah perangkat yang paling banyak digunakan untuk segala infrastruktur jaringan. Sejauh pengetahuan penulis, buku yang membahas hal ini, baik terbitan lokal maupun luar negeri, sangat langka dan sulit dijumpai.Kata kunci yang bisa didapat dengan membaca buku ini adalah mempercepat pemahaman dalam dunia scripting dan bisa efisien tentunya. Dalam buku ini, penulis juga sengaja melampirkan template program yang sekiranya bisa berguna bagi pembaca , baik untuk implementasi sekarang maupun di masa yang akan datang. Sekali lagi, penulis nerharap kumpulan tulisan ini bisa berguna bagi kaum awam dan pembaca yang telah berkecimpung dengan script.Selamat belajar dan mencoba.

Bab 2: Mengenal ScriptApakah Shell itu?Belajar script bukanlah hal yang rumit, apalagi jika anda telah mengenal linux lebih dulu. Dengan titik awal tersebut, hampir dipastikan anda tidak akan mengalami kesulitan yang cukup berarti untuk mengenal script lebih jauh.Jika kita mengenal lebih jauh dengan script maka ada banyak macam dari shell itu sendiri yang masing-masing memiliki beberapa cara dalam pendeklarasiannya. Bab ini berusaha memperkenalkan sekilas script-script tersebut. Akan tetapi, di sini penulis memutuskan hanya bourne shell yang akan digunakan untuk membangun script dalam buku ini.Selain penggunaanya tidak begitu susah, bourne shell juga sangat banyak digunakan. Dalam membangun script-script sederhana, bourne shell pun sudah cukup diandalkan.Ada beberapa varian dalam shell itu sendiri, yaitu:Bourne Shell#!/usr/bin/sh atau #!/bin/shKorn Shell#!/usr/bin/ksh atau #!/bin/kshC Shell#!/usr/bin/csh atau #!/bin/cshBourne Again Shell#!/usr/bin/bash atau #!/bin/bashBagaimana shell yang sedang kita gunakan?$shellKita pun dapat berpindah shell dengan cara:$chsh s /bin/shBourne Shell$chsh s /bin/cshC Shell$chsh s /bin/bashBourne Again Shell$chsh s /bin/kshKorn Shell

Memulai ScriptUntuk memulai belajar script, kita dapat menggunakan mesin Linux, Unix ataupun dengan menggunakan Linux emulator yang berjalan di mesin Windows. Sebelum menggunakan mesin Windows, kita harus menginstal terlebih dahulu program emulator untuk Unix/Linux di mesin Windows kita.Program yang dimaksud tersebut adalah Cygwin. Program emulator Linux ini banyak tersedia dengan versi gratis di Internet, seperti Cygwin dan U/WIN (secara khusus akan dibahas di bab 9).Untuk Cygwin bisa didownload dari situs ini.http://sources.redhat.com/cygwin/Untuk U/WIN bisa diambil dari link berikut.http://www.research.att.com/sw/tools/uwin/

Menyunting File Script (Editing)Proses penyuntingan dalam mesin Unix/Linux biasanya menggunakan editor vi. Jika kita bisa bekerja dengan menggunakan editor, seperti notepadm wordpad, emacs atau varian editor lainya yang cukup user friendly maka cara kerja editor vi ini akan berbeda.Perintah dalam modus Control ModeNavigasi Keyboard FungsihKe kiri satu karakterlKe kanan satu karakterwKe kanan satu katabke kiri satu kataeMenuju ke akhir kata0Kembali ke awal baris^Bergerak ke karakter pertama dalam satu baris:$Menuju ke akhir barisCtrl+bBerpindah satu layar sebelumnyactrl+fTurun satu bagian layark / -Kembali ke awal (ke belakang) satu barisj / +Berpindah ke depan satu barisGBerpindah ke baris yang diberikan (bisa berulang):nBerpindah ke baris n, :10 berpindah ke baris 10 :2,10 d adalah menghapus baris 2-10DuplikasiyyCopy baris dan harus diikuti dengan P atau P-paste, biasa dikenal dengan yank[n]yyn adalah jumlah baris yang akan di-yank, 5yy adalah copy 5 barisCtrl+PTempelkan baris yang tadi telah dilakukan copy-paste setelah melakukan yank sebelum kursorMenghapusddMenghapus satu baris di kursor aktif[n]ddn adalah jumlah baris yang akan dihapus 2dd adalah 2 baris yang akan dihapus (cut)dhMenghapus (Delete) satu karakter ke beleakangxMenghapus (Delete) satu karakter di posisi kursor aktifdlMenghapus (Delete) satu karakter di depannyadbMenghapus (Delete) satu kata ke belakangdwMenghapus (Delete) satu kata di depannyad$Menghapus (Delete) kalimat/kata sampai akhir barisd0Menghapus (Delete) kalimat/kata sampai akhir awal barisMencarisMengganti string, format s/kata sebelum/sesudah kata s/saya/anda/; mengganti kata saya dengan anda?stringMencari berdasar string yang dicari ke arah depan/stringMencari berdasar string yang dicari ke arah belakangnMencari kembali string yang sama (Find Next). Lakukan Shift+n untuk kembali ke pencarian sebelumnya.Menyimpan dan MembatalkanUMembatalkan perubahanq!Keluar tanpa simpan:wSimpan tanpa keluar:wqKeluar dan SimpanUntuk bisa memodifikasi, kita harus masuk ke Input Mode dengan menekan tombol [i] dan jika ingin keluar dari Input Mode (Kembali ke Control Mode), tekan tombol [ESC].Keyboard FungsiiMasukan text sebelum posisi karakter sekarangaMasukan text setelah posisi karakter sekaranglMasukan text pada posisi awal dari barisAMasukan text pada posisi akhir dari barisRMenimpa text yang ada dengan karakter baru dari kursor yang aktif

Membuat File BaruAda beberapa cara untuk membuat file baru, salahsatunya adalah dengan mengetik vi [NamaFile]. Setelah melakukan editing seperlunya kemudian keita keluar, misalnya dengan perintah :wq.Vi [NamaFile]Untuk keluar dan simpan diakhiri dengan::wqCara kedua bisa dicoba dengan perintah cat:cat > [NamaFile]Dan untuk keluarnya menggunakan Ctrl+DCara lain bisa juga dengan perintah ini:Touch NamaFile.shTouch akan membuat suatu file kosong.Untuk melihat dari isi folder bisa menggunakan perintah ls:$ls l

Menjalankan ScriptFile telah dibuat dan juga disunting. Langkah berikutnya adalah bagaimana menjalankan dan mengeksekusi script, yaitu apakah sesuai script yang telah kita buat dengan yang diharapkan. Untuk menjalankan atau mengeksekusinya, lakukan terlebih dulu dengan mengubah mode menjadi executable file (misal nama file yang telah dibuat: fileku.sh,$chmod +x file.sh).Selanjutnya tinggal mengeksekusi.$./file.sh$.fileku.shAda juga cara lain yang cukup sederhana jika sekiranya kita sudah ingin mengubah mode dari script kita. Berikut cara yang bisa anda lakukan.Sh fileku.shCatatan:Kita boleh saja memberi nama script dengan extension file, bukan .sh ataupun tidak dengan extension sama sekali.Contoh$vi scriptku.sh## Belajar script#ClearEcho Hello, Ini scriptku yang pertamaEksekusi tanpa mengubah modenya,Sh scriptkuAtau eksekusi dengan mengubah modenya terlebih dulu.$chmod + scriptku.shCara lain bisa dengan:$chmod 755 scriptku.shSelanjutnya, jalankan script.$./scriptku.sh

Bab 3: Bekerja Dengan FileSebelum melangkah lebih jauh lagi dengan script, ada baiknya kita dibekali dengan perintah-perintah (Commands) dalam Linux/Unix. Jika kita pernah membaca buku Linux yang khusus membahas command, pembahasannya pasti akan dijabarkan secara komprehensif, yang mungkin bisa mencapai hampir 1000 halaman.Namun, pada kesempatan kali ini tidaklah demikian. Penulis tidak akan memasukan semuanya. Penulis hanya mencoba mengambil seagian kecil dari perintah (commands) yang ada. Berdasarkan pengalaman penulis, perintah-perintah yang sering digunakan sebagai berikut.

Tampilkan Isi FilecatPerintah: cat [Opsi] FilePerintah ini untuk menampilkan output suatu file ke layer (display)$cat file.txtSebagai contoh, kita akan lakukan seperti ini:$cat file1.txt$cat file2.txt$cat file3.txt$cat file4.txt$cat file5.txtHasilnya akan sama, seperti data di atas:$cat file1.txt file2.txt file3.txt file4.txt file5.txtMenggabungkan dua buah file dengan perintah cat harus menggunakan redirect.$cat file1.txt file2.txt > file_gabungan.txtIsi file bisa juga dijadikan sebagai variabel.Lihat contoh di bawah ini.$cat_variable=cat $file.txtheadPerintah: head [opsi] FilePerintah ini untuk menampilkan atau mencetak bagian awal baris$head BackupScript.sh#!/bin/sh

# ####################### Script untuk backup config## Switch and Router## Namafile: backupSwitch.sh## ####################### Function## *********#Perintah berikut mirip dengan perintah less, di mana berfungsi untuk menampilkan 15 baris awal.$head -15 BackupScript.sh#!/bin/sh

# ####################### Script untuk backup config## Switch and Router## Namafile: backupSwitch.sh## ######################

# Function## *********#

# Function backup switchSwitch (){Echo

LessPerintah: less [Opsi] FilePerintah ini untuk menampilkan output di layer$less BackupScript.sh#!/bin/sh

# ####################### Script untuk backup config## Switch and Router## Namafile: backupSwitch.sh## ######################

# Function## *********#

# Function Switch backupap (){echo echo -- ##################################### --echo

# call Backupswitch.sh script./BackupSwitch.shecho echo Konfigurasi Switch telah disimpan ..echo echo -- 000 --"morePerintah: more [-num] [+/pola] [+ JumlahLine] FilePerintah ini mirip dengan perintah cat ataupun less, di mana berfungsi untuk menampilkan output di layer.$more BackupScript.sh#!/bin/sh

# ####################### Script untuk backup config## Switch and Router## Namafile: backupSwitch.sh## ######################

# Function## *********#

# Function Switch backupswitch (){echo echo -- ##################################### --echo

# call Backupswitch.sh script./BackupSwitch.shecho echo Konfigurasi Switch telah disimpan ..echo echo "-- More (13%)Dengan menggunakan opsi d maka akan lebih interaktif. Setelah mengeksekusi perintah ini maka akan menampilkan pesan.$more d BackupScript.sh#!/bin/sh

# ####################### Script untuk backup config## Switch and Router## Namafile: backupSwitch.sh## ######################

# Function## *********#

# Function Switch backupswitch (){echo echo -- ##################################### --echo

# call Backupswitch.sh script./BackupSwitch.shecho echo Konfigurasi Switch telah disimpan ..echo echo "-- More -- (13%) [Press space to continue, q to quit.]Menggunakan opsi +num[JumlahBaris] maka akan menampilkan mulai di baris ke-6.$more +num6 BackupScript.sh

# Namafile: backupSwitch.sh## ######################

# Function## *********#

# Function Switch backupswitch (){echo echo -- ##################################### --echo

# call Backupswitch.sh script./BackupSwitch.shecho echo Konfigurasi Switch telah disimpan ..echo echo -- 000 --"echo }

# Function Switch backup-- More -- (15%)Menggunakan opsi +/[string] dengan cara seperti ini akan menampilkan kata/string Function$more +/function BackupScript.sh

.. Skipping##########################

# Function## **********#

# Function Switch backupswitch (){echo echo -- ##################################### --echo

# call Backupswitch.sh script./BackupSwitch.shecho echo Konfigurasi Switch telah disimpan ..echo echo -- 000 --"echo }

# Function Switch backupSwitch ()tailPerintah: tail [Opsi] FilePerintah ini untuk menampilkan bagian isi file (baris-baris) yang terakhir.Contoh:Perintah tail tanpa opsi hanya menampilkan default (misal default 7 baris) baris terakhir saja. Bagaimana untuk menampilkan baris terakhir lebih dari 7 baris? Jika kita ingin menampilkan 15 baris terakhir dari sebuah file maka dapat ditulis sebagai berikut.$tail BackupScript.sh*)echo echo Pilihan anda salah, silahkan coba lagiecho ;;esacdone$tail -15 BackupScript.sh;;x)echo Exit ..exit 0;;*)echo echo Pilihan anda salah, silahkan coba lagiecho ;;esacdoneUntuk menggabungkan antara perintah head dan tail, caranya seperti ini:Sebagai contoh, lakukan head 30 baris dan output di pipe line dengan tail 10.Itu artinya menampilkan baris 20-30.Head -30 file.txt | tail -10touchPerintah: touch [Opsi] FilePerintah ini berfungsi untuk mengubah timestamp suatu file, atau juga bisa perintah untuk membuat file baru.touch -t200902041200.00 fileku.txtPerintah di atas akan mengubah timestamp fileku.txt menjadi format tanggal baru, dengan mengikuti aturan pola YYYYMMDDhhmm.ss, 2009 Feb 4 1300.00

DirektoriPwdPerintah: pwd [-LP]opsi-P: Nama path tidak dengan symbolic link-L: Nama path dengan symboic linkPerintah ini berfungsi untuk mengetahui direktori kerja kita sekarang berada.$pwdcdPerintah: cd [Opsi] DirektoriPerintah ini untuk berganti direktori atau path. Berikut beberapa contoh menggunakan perintah cdGanti direktori dari /home/Administrator ke /home/Administrator/contoh$cd /home/Administrator/contoh$pwdUntuk kembali ke direktori di atasnya (/home/Administrator):$cd ..$pwdUntuk kembali ke 2 level direktori sebelumnya (di atasnya):$cd ../..$pwdUntuk kembali ke perintah direktori sebelumnya (sebelum menjalankan cd ../..):$cd -$ pwdUntuk kembali ke direktori home:$cd /home/Administrator/contoh$pwd$cd ~$pwdmkdirPerintah: mkdir [Opsi] DirektoriPerintah ini untuk membuat suatu direktori (direktori latihan).$mkdir latihanMembuat 3 buah direktori sekaligus coba1 coba2 coba3:$mkdir coba1 coba2 coba3Membuat direktori secara hierarki, yaitu /kakek/ortu/anak:Mkdir p kakek/ortu/anak/, harus dipakai opsi pKakek(direktori kakek)^Ortu(subdirektori dari kakek)^Anak(subdirektori dari ortu)

Membandingkan FilecmpPerintah: cmp [Opsi] File1 File2Perintah ini untuk membandingkan file1 dan file2, karakter demi karakter. File1 adalah sebagai referensi terhadap File2 dan untuk menampilkan di baris mana jika terdapat diff, namun perintah ini lebih6, namun perintah ini lebih berdaya guna karena bisa membandingkan dan menampilkan perbedaan karakter demi karakter tersebut. Untuk itu, penggunaan cmp ini akan lebih bagus jika akan membandingkan 2 file yang relatif identik. Akan tetapi, perintah ini tidak bisa membandingkan file-file antar direktori, misalnya:/home/noc/file1 /home/noc2/file2- Contoh -$cat fileku1.txt$cat file2.txt$cmp fileku1.sh fileku2.sh > TestCmp_12.txt$cat TestCmp_12.txtDiffPerintah: diff [Opsi] File1 File2Perintah ini untuk membandingkan dua buah file atau 2 file dalam direktori yang berbeda dan akan menampilkan output perbedaannya saja.- Contoh -Data berikut diambil sama dari contoh di atas (penggunaan perintah cmp)$cat TestDiff_12.txtCatatan:cmp tidak dapat membandingkan dua buah direktori (hanya bisa membandingkan antar file). diff bisa membandingkan antar direktori.

NavigasiFindPerintah: find [path] [expresi]Perintah ini untuk mencari file dari kriteria/filter yang telah ditentukan.Me-list file dengan nama yang ditentukan: sales_document.docIn ./work and subfolders$find ./script name coba_script.shMencari file dengan ekstensi tertentu (misal *.doc dalam direktori dan sub direktori).$find . name *.docMencari file dengan ekstensi tertentu ( misal doc dalam direktori tertentu - /dokumen)$find ./dokumen name *.docMencari file berdasarkan kepemilikan file.$find . user basvileMe-list semua nama direktori dan subdirektori.$find . -type dGunakan opsi f jika tidak ingin me-list nama direktori.$find . -type fOperasi AND juga bisa dilakukan untuk mencari file, misalnya:Opsi -name dengan -name, mencari file dari direktori, tempat kita bekerja yang berekstensi txt dan dengan nama awal file manual.$find . -name *.txt -name manual*Opsi -name dengan -name, mencari file yang berawalan script milik basvile$find . -name script* -user basvileMencari file berdasarkan status file (Permission)$find . -perm 755Bagaimana melakukan negasi? (NOT).Contoh berikut adalah mencari file txt yang tidak diawali dengan kata script.$find . -name *.txt ! -name script*lsPerintah: ls [Opsi] FilePerintah ini untuk menampilkan file-file dalam direktori.Tampilan dengan berbagai opsi dapat dilihat pada contoh di bawah ini:$ls -xMenampilkan file secara horizontal$ls -pMenampilkan file secara melebar$ls -l /filekuMenampilkan file dengan tampilan lengkap dengan attributnya.$ls -a Menampilkan file, termasuk file yang tersembunyi (hidden file) dengan ciri nama file diawali dengan titik (.)$ls -alMenampilkan opsi -a dan -l, termasuk file yang tersembunyi (hidden)$ls *.txtMenampilkan file dengan wildcard file dengan ekstensi txt$ls /usr/binMenampilkan file yang ada di /usr/bin$ls -d */Menampilkan direktori-direktori$ls -r Menampilkan isi direktori dengan urutan terbalik.$ls -RMenampilkan direktori dan subdirektori secara recursive$ls -sMenampilkan isi berdasarkan ukuran file$ls -mMenampilkan file dengan koma sebagai pembagi$ls ~Menampilkan file yang ada di homewhereisPerintah: whereis [Opsi] FilePerintah ini untuk mengetahui path/letak dari suatu perintah dan juga halaman manual.$whereis gunzip$whereis perl$whereis -m mutt$whereis -s mutt$whereis b muttwhichPerintah: which [Opsi] NamaProgramPerintah ini untuk mengetahui path/letak dari suatu perintah.$which -a mutt$which -a perl$which perlsortPerintah: sort [Opsi] FilePerintah ini untuk mengurutkan data.Contoh :berdasarkan numerik (-n)$sort -n WinderTestDiff.32.txtMengurutkan berdasarkan numerik (Opsi -n) dan diurutkan secara terbalik (opsi -r), reserve:$sort -nr WinderTestDiff.32.txt

Duplikasi dan Menghapus File/DirektoricpPerintah: cp [Opsi] NamaFile NamaFile1Perintah ini untuk melakukan duplikasi pada file (Copy).Contoh:Copy file ke direktori tertentu dengan nama file yang berbeda.$cp file1 /home/script/file2Melakukan copy beberapa file ke direktori tertentu.$cp file2 file3 file4 /home/contoh_script/Copy semua fileke direktori lain.$cp dir1/* dir2/Menggunakan fasilitas wildcard (ekstensi file).$cp *.txt dir1rmPerintah: rm [Opsi] FilePerintah ini untuk menghapus file (delete).Menghapus file1 :$rm file1Menghapus beberapa file sekaligus (file1, file2, file3 dan file3):$rm file1 file2 file3Menghapus dengan wildcard sehingga perintahnya bisa dipersingkat:$rm file*Penghapusan bisa berakibat fatal. Oleh karena itu, Linux melengkapi opsinya dengan menanyakan/verifikasi, apakah benar suatu file akan dihapus. Untuk lebih mudahnya tetap menggunakan contoh di atas dengan opsi -i (Interactive).rm -i file*rm : remove file1?yrm : remove file2?yrm : remove file3?n jika file3 tidak mau dihapusMenghapus direktori secara hierarki direktori:/kakek/ortu/anakRmdir -p kakek/ortu/anakCara berikut akan menghapus langsung (tanpa prompt, tanpa pesan interaktif):$rm -rf [file/direktori]RmdirPerintah: rmdir [Opsi] DirektoriPerintah ini untuk menghapus direktori, dengan syarat direktori telah kosong (tidak ada file di dalamnya).Menghapus direktori my_dir/latihan/$rmdir my_dir/latihan/Menghapus dengan wildcard pun bisa dilakukan.Lihat contoh berikut.$rm dir -d sherll*/mvPerintah: mv [Opsi] FileAsal FileTargetPerintah mv ini bisa berarti mengganti nama file (rename) atau juga bisa memindahkan file (move).Contoh:Mengganti nama contoh.txt menjadi script.sh:$mv contoh.txt script.shMemindahkan file contoh.txt ke direktori (folder Documents):$mv contoh.txt ~/Documents/contoh.txtMengompres dan Mengekstaraksi FiletarPerintah: tar [Opsi] FileKompresi, kita coba menggabungkan beberapa file dalam /dataku/terbaru menjadi fileku.rar maka perintahnya:$tar cvf backup.tar /dataku/terbaru[opsi]C = createV = verboseF = file keluaran sebagai tarMengompres tar dalam format zip dengan variable tanggal dan waktu.$tar czvf my_backup.$(dat +%y%m%d-%H%M%S).tgz /users/basvileEkstraksi, Cara mengekstraksi dari file kompresan adalah kebalikan dari mengompres. Lwan dari opsi c = Create adalah x = Extract maka fileku.tar dapat diekstrak dengan perintah:$tar -xvf backup.targzip dan gunzipPerintah: gzip [[-]function] [Opsi] File Gunzip [[-]function] [Opsi] FileKompresi$gzip filekuEkstrak$ gunzip fileku.tar.gzTar xvf sysLog.tar

Catatan:File hasil kompresi berekstensi adalah *.zip, *.gzip, *.gzip, didesain untuk saling melengkapi tool kopresi file yang ada, bukan pengganti perintah tar.Bzip2Perintah: bzip2 FilePerintah ini memiliki fungsi yang sama seperti perintah di atas yaitu untuk mengkompres dan mengekstraksi file.$bzip2 filekuMengkompres file:#!/bin/shDATE=date +%y%m%d-%H%M%Star czvf $DATE.fileku.tgz

Bab 4: Bekerja Dengan SistemBekerja dengan script tidak akan terlepas dari cara kerja sistem Linux itu sendiri. Bab ini akan membahas perintah-perintah dalam Linux untuk sistem.Kepemilikan FilechownPerintah: chown [Opsi] PemilikBaru FilePerintah ini untuk mengganti kepemilikan user.Contoh:$chown admin CheckSpace.shHasilnya akan seperti berikut:$ls -l CheckSpace*Sementara itu, bagaimana untuk mengubah kepemilikan groupnya? Silahkan lihat perintah berikut ini.chgrpPerintah: chgrp [Opsi] [Group] FilePerintah ini untuk mengganti kepemilikan group.Contoh:Target kita adalah pada file CheckSpace.shHasilnya akan seperti ini: $chgrp admin CheckSpace.shLihat pula perubahan pada kepemilikan group ini.$ls -l CheckSpace*ChmodPerintah: chmod [Opsi] Mode [,Mode] File chmod [Opsi] Numeric_Mode FilePerintah ini uuntuk mengganti hak akses.Dalam Linux, setiap file mempunyai hak kepemilikan file (File Ownership). Untuk jelasnya sebagai berikut.drwxr-xr-x 2 sam user1 512 Jan 3 19:12 file1 A B C D E F Gdrwxr-xr-x

12345678910

1= jenis file:-=file;-1=link;-d=direktori;2, 3, 4= user ownership5, 6, 7= group ownership8, 9, 10= other ownershipB= jumlah link adalah 2 jika single user=1C= nama userD= sebagai group dengan nama User 1E= kapasitas dalam bytesF= format tanggal waktu modifikasiG= nama fileKita dapat melakukan perubahan hak akses suatu file. Perubahan bisa berupa memberikan akses lebih atau menambah hak berupa hak baca (read), tulis (write), eksekusi (execution) ataupun mengurangi hak-hak seperti di atas.Perintah yang digunakan adalah sebagai berikut.

siapa sebagai:u = user/pemilikg = untuk groupo = other/yang lain

Aksi sebagai:+ = memberikan akses/izin- = menghilangkan akses/izinAkses/perizinan sebagai:r(read), w(write), x(execute)

Selain itu, izin akses dapat dilakukan dengan cara penulisan oktal dan binary, yaitu seperti berikut.Perizinan yang diwakilkan dalam binari

Oktal01234567Binari000001010011100101110111Hak Akses- - -- - x- w -- w xr - -r - xr w -r w x

Tabel 1