Anda di halaman 1dari 27

BASH (UNIX SHELL)

OLEH:
Naomi Cindy Hermina Tampubolon
1.18.4.018

Pembimbing:

M. Harry K Saputra, S.T., M.T.I


NIK.  213.88.109

PROGRAM DIPLOMA IV TEKNIK INFORMATIKA


POLITEKNIK POS INDONESIA
BANDUNG
2019
DAFTAR ISI

DAFTAR ISI...................................................................................................................................................2
KATA PENGANTAR.......................................................................................................................................3
SEJARAH BASH (UNIX SHELL)...................................................................................................4
A.MACAM-MACAM BASH SHELL:............................................................................................6
1. Bash Shell....................................................................................................................................6
2. Tcsh (TC Shell)/ Csh Shell (C Shell)............................................................................................6
3. Ksh Shell (Korn Shell).................................................................................................................7
4. Zsh Shell (Z Shell)........................................................................................................................8
5. Fish..............................................................................................................................................9
The Bourne shell (sh)...........................................................................................................................9
B. PERINTAH DASAR PADA BASH SHELL..............................................................................10
1. $ date.........................................................................................................................................10
2. $ who.........................................................................................................................................10
3. $ pwd.........................................................................................................................................11
4. $ ls.............................................................................................................................................11
5. $ cat...........................................................................................................................................11
6. $ cat...........................................................................................................................................11
7. $ more........................................................................................................................................12
8. $ rm...........................................................................................................................................12
9. $ chmod.....................................................................................................................................12
10. $ wc.......................................................................................................................................12
C.VARIABLE..................................................................................................................................13
1. Environment Variable................................................................................................................13
2. Positional Parameter.....................................................................................................................13
3. User Defined Variable...............................................................................................................13
D.OPERATOR................................................................................................................................14
1. Operasi Hitungan Aritmatika.....................................................................................................14
2. Operator String :.......................................................................................................................16
3. Operator Bilangan Bulat...........................................................................................................16
4. Operator File.............................................................................................................................17
5. Operator Logika........................................................................................................................17
6. Operator Boolean......................................................................................................................17
E. KONDISI......................................................................................................................................18
1. IF...............................................................................................................................................18
2. IF ELSE.....................................................................................................................................18
3. IF ELIF ELSE............................................................................................................................19
4. CASE.........................................................................................................................................19
F. PERULANGAN...........................................................................................................................20
1. WHILE – DO.............................................................................................................................20
2. UNTIL – DO..............................................................................................................................20
3. FOR – IN...................................................................................................................................21
G.FUNGSI........................................................................................................................................23
1. Mengirim argument...................................................................................................................23
2. Cakupan Variable......................................................................................................................24
KATA PENGANTAR
Puji syukur kehadirat Allah SWT-Tuhan Yang Maha Esa atas segala
rahmatnya sehingga makalah ini dapat terselesaikan dengan baik adanya. Tidak
lupa saya juga mengucapkan banyak terimakasih atas bantuan dari pihak yang
telah berkontribusi dengan memberikan sumbangan baik materi maupun
pikirannya.

Dan harapan saya semoga makalah ini dapat menambah pengetahuan


dan pengalaman bagi para pembaca untuk ke depannya agar dapat memperbaiki
bentuk maupun menambah isi makalah agar menjadi lebih baik lagi. Sehingga saya
dapat memperbaiki makalah ini sebagai mana baiknya dan menjadi referensi yang
berguna bagi seluruh pembaca.

Karena keterbatasan pengetahuan maupun pengalaman saya, saya yakin


masih banyak kekurangan dalam makalah ini, Oleh karena itu saya sangat
mengharapkan saran dan kritik yang membangun dari pembaca demi
kesempurnaan makalah ini.
SEJARAH BASH (UNIX SHELL)
Brian Fox mulai membuat kode Bash pada 10 Januari 1988 setelah Richard
Stallman menjadi tidak puas dengan kurangnya kemajuan yang dibuat oleh
pengembang sebelumnya. Stallman dan Free Software Foundation (FSF)
menganggap shell gratis yang dapat menjalankan skrip shell yang ada sangat
strategis untuk sistem yang sepenuhnya bebas yang dibangun dari BSD dan kode
GNU sehingga ini adalah salah satu dari beberapa proyek yang mereka danai
sendiri, dengan Fox melakukan pekerjaan sebagai seorang karyawan FSF. Fox
merilis Bash sebagai beta, versi .99, pada 8 Juni 1989 dan tetap menjadi
pemelihara utama hingga sekitar pertengahan 1992 dan pertengahan 1994, ketika ia
di-PHK dari FSF dan tanggung jawabnya dialihkan ke kontributor awal lainnya,
Chet Ramey.
Sejak itu, Bash telah menjadi cangkang yang paling populer di kalangan
pengguna Linux, menjadi cangkang interaktif default pada berbagai distribusi
sistem operasi itu (walaupun cangkang Almquist mungkin cangkang pembuatan
skrip default) dan pada MacOS Apple. Bash juga telah porting ke Microsoft
Windows dan didistribusikan dengan Cygwin dan MinGW, ke DOS oleh proyek
DJGPP, ke Novell NetWare dan ke Android melalui berbagai aplikasi emulasi
terminal.
Pada bulan September 2014, Stéphane Chazelas, spesialis Unix / Linux,
menemukan bug keamanan dalam program tersebut. Bug tersebut, pertama kali
diungkapkan pada 24 September, bernama Shellshock dan diberi nomor CVE-
2014-6271, CVE-2014-6277 dan CVE-2014-7169. Bug itu dianggap parah, karena
skrip CGI menggunakan Bash bisa rentan, memungkinkan eksekusi kode arbitrer.
Bug ini terkait dengan bagaimana Bash meneruskan definisi fungsi ke subkulit
melalui variabel lingkungan.
Bash adalah shell Unix dan bahasa perintah yang ditulis oleh Brian Fox
untuk Proyek GNU sebagai pengganti perangkat lunak gratis untuk shell Bourne.
Pertama kali dirilis pada tahun 1989, ini telah digunakan secara luas sebagai shell
login default untuk sebagian besar distribusi Linux dan Apple MacOS Mojave dan
versi sebelumnya. Versi juga tersedia untuk Windows 10. Ini juga merupakan shell
pengguna default di Solaris 11.
Bash adalah pemroses perintah yang biasanya berjalan di jendela teks tempat
pengguna mengetik perintah yang menyebabkan tindakan. Bash juga dapat
membaca dan menjalankan perintah dari file, yang disebut skrip shell. Seperti
semua shell Unix, ini mendukung globbing nama file (pencocokan wildcard),
perpipaan, di sini dokumen, substitusi perintah, variabel, dan struktur kontrol untuk
pengujian dan iterasi kondisi. Kata kunci, sintaksis dan fitur dasar bahasa lainnya
semuanya disalin dari sh. Fitur lain, mis., Riwayat, disalin dari csh dan ksh. Bash
adalah shell yang sesuai dengan POSIX, tetapi dengan sejumlah ekstensi.
Shell utama pertama adalah shell Bourne (dinamai menurut penemunya,
Steven Bourne); itu termasuk dalam versi populer pertama UNIX, Versi 7, mulai
tahun 1979. Shell Bourne dikenal pada sistem sebagai sh. Meskipun UNIX telah
melalui banyak, banyak perubahan, shell Bourne masih populer dan pada dasarnya
tidak berubah. Beberapa utilitas UNIX dan fitur administrasi bergantung padanya.
Shell alternatif pertama yang banyak digunakan adalah shell C, atau csh. Ini ditulis
oleh Bill Joy di University of California di Berkeley sebagai bagian dari versi
Berkeley Software Distribution (BSD) dari UNIX yang keluar beberapa tahun
setelah Versi 7. Ini termasuk dalam versi UNIX terbaru.

Shell C mendapatkan namanya dari kemiripan perintahnya dalam Bahasa


Pemrograman C, yang membuat shell lebih mudah dipelajari oleh programmer
pada sistem UNIX. Ini mendukung sejumlah fitur sistem operasi (mis., Job
Control) yang unik untuk BSD UNIX tetapi sekarang telah dimigrasi ke sebagian
besar versi modern lainnya. Ini juga memiliki beberapa fitur penting (mis., Aliases)
yang membuatnya lebih mudah digunakan secara umum.

Dalam beberapa tahun terakhir sejumlah shell lain telah menjadi populer.
Yang paling menonjol dari ini adalah shell Korn. Produk ini menggabungkan fitur-
fitur terbaik dari shell Bourne dan C, ditambah banyak fitur-fiturnya sendiri. Shell
Korn mirip dengan bash dalam banyak hal; keduanya memiliki fitur berlimpah
yang membuatnya mudah untuk dikerjakan. Keuntungan bash adalah gratis.
A. MACAM-MACAM BASH SHELL:
1. Bash Shell
Bash adalah singkatan dari Bourne Again Shell dan itu adalah
shell default pada banyak distribusi Linux saat ini. Ini hampir selalu
tersedia di semua distribusi Linux. Salah satu pesaing Bash shell
adalah dash yang menjadi lebih populer oleh proyek Ubuntu. Ini juga
merupakan shell yang kompatibel dengan sh dan menawarkan
peningkatan praktis dibandingkan sh untuk pemrograman dan
penggunaan interaktif yang meliputi:
 Pengeditan baris perintah.
 Kontrol Pekerjaan.
 Riwayat perintah ukuran tidak terbatas.
 Fungsi dan Alias Shell.
 Array berindeks ukuran tidak terbatas.
 Aritmatika integer dalam basis apa pun mulai dari dua hingga
enam puluh empat.

2. Tcsh (TC Shell)/ Csh Shell (C Shell)


Tcsh ditingkatkan shell C, dapat digunakan sebagai shell login
interaktif dan prosesor perintah skrip shell. Csh adalah shell C yang
lebih baik. Ini paling populer dalam hal shell login dan interpreter
command shell. Tcsh memiliki fitur berikut:
 C seperti sintaksis.
 Editor baris perintah.
 Penyelesaian kata dan nama file yang dapat deprogram.
 Koreksi ejaan.
 Kontrol pekerjaan.

3. Ksh Shell (Korn Shell)


Ksh adalah singkatan dari Korn shell dan dirancang dan
dikembangkan oleh David G. Korn. Ini adalah bahasa pemrograman
tingkat tinggi yang lengkap, kuat, dan juga bahasa perintah interaktif
seperti banyak shell Linux Unix / GNU lainnya. Ksh kompatibel
dengan sh dan bash. Ksh meningkatkan pada Bourne shell dengan
menambahkan aritmatika floating-point, kontrol pekerjaan, perintah
aliasing dan penyelesaian perintah. AT&T memegang hak
kepemilikan untuk ksh sampai tahun 2000, ketika itu menjadi open
source.
4. Zsh Shell (Z Shell)
Zsh dirancang untuk bersifat interaktif dan menggabungkan
banyak fitur dari shell Linux Unix / GNU lainnya seperti bash, tcsh
dan ksh. Fitur yang paling umum di shell Zsh adalah koreksi ejaan,
penyelesaian baris perintah yang cerdas, modul pluggable yang
meningkatkan kemampuan shell, alias dengan akses global yang
memungkinkan pengguna untuk alias nama file atau apa pun selain
perintah saja dan dukungan bertema yang jauh lebih baik. Ini juga
merupakan bahasa scripting yang kuat seperti shell lain yang tersedia.
Fitur yang lebih baik dalam mendukung shell Zsh adalah bahwa jika
pengguna dikenal dengan shell Bash, sangat mudah untuk beralih ke
shell Zsh tanpa membiasakan diri dengan sintaks yang berbeda.
Padahal ia memiliki beberapa fitur unik yang meliputi:
 Pembuatan nama file.
 File startup.
 Login / Menonton logout.
 Komentar penutup.
 Indeks konsep.
 Indeks variable.
 Indeks fungsi.
 Indeks kunci dan banyak lagi yang dapat Anda temukan di
halaman manual.
5. Fish
Fish in adalah kepanjangan dari “friendly interactive shell” dan
ditulis pada tahun 2005. Ini dimaksudkan untuk sepenuhnya interaktif
dan ramah pengguna, sama seperti shell lainnya, ia memiliki beberapa
fitur yang cukup bagus yang meliputi:
 Kelengkapan halaman manual.
 Konfigurasi berbasis web.
 Saran otomatis.
 Sepenuhnya skrip dengan skrip bersih.
 Dukungan untuk teknologi terminal 256.
The Bourne shell (sh).

SH adalah shell standar Unix yang dibuat tahun 1979 oleh Stephen
Bourne dari AT&T dengan memakai bahasa pemrograman Algol. sh
terkenal karena sederhana, compact, and cepat. Kelemahannya adalah
kurang interkatif seperti tidak ada history, aliasing, dan job control.
Default prompt shell sh adalah $ (dolar)

Ringkasan
Ini tidak semua shell yang tersedia di Unix / GNU Linux tetapi mereka adalah
yang paling banyak digunakan selain dari yang sudah diinstal pada distribusi Linux
yang berbeda.
B. PERINTAH DASAR PADA BASH SHELL
Berikut adalah perintah dasar pada bash shell:
Perintah Kegunaan Contoh
date Menampilkan tanggal dan jam saat ini $ date
who Menampilkan siapa yang menggunakan sistem $ who
pwd Menampilkan direktori yang bekerja $ pwd
ls Menampilkan daftar file dalam direktori kerja $ ls
cat Membuat file text (ctrl+D untuk menyimpan file) $ cat > namafile
cat Menampilkan isi file $ cat namafile
more Menampilkan isi file dengan layar penuh $ more namafile
rm Menghapus nama file $ rm namafile
chmod Mengubah status sebuah file $ chmod +x namafile
wc Menghitung jumlah baris, kata atau karakter dari file $ wc namafile
yang diberikan
Penjelasan:

1. $ date
Menampilkan tanggal dan jam saat ini.

2. $ who
Menampilkan siapa yang menggunakan sistem.

3. $ pwd
Menampilkan direktori yang bekerja.
4. $ ls
Menampilkan daftar file dalam direktori kerja.

5. $ cat
Membuat file text.

Setelah itu ctrl+D untuk menyimpan file.

6. $ cat
Menampilkan nama file.

7. $ more
Menampilkan isi file dengan layar penuh
8. $ rm
Menghapus nama file.

9. $ chmod
Mengubah status sebuah file.

10. $ wc
Menghitung jumlah baris, kata atau karakter dari file yang diberikan.
C. VARIABLE
Variabel adalah tempat atau nilai yang berfungsi untuk menyimpan
sebuah data. Shell memungkinkan user untuk membuat, mendefinisikan dan
menghapus variabel.
Variabel dibagi menjadi 3 yaitu :
1. Environment Variable
Variabel lingkungan yang digunakan khusus oleh shell atau system
linux kita untuk proses kerja system seperti variabel PS1, PS2, HOME,
PATH, USER, SHELL,dsb...jika digunakan akan berdampak pada system,
misalkan variabel PS1 yang digunakan untuk mengeset prompt shell
pertama yaitu prompt tempat anda mengetikkan perintah - perintah shell
(defaultnya "\s-\v\$"), PS2 untuk prompt pelengkap perintah, prompt ini
akan ditampilkan jika perintah yang dimasukkan dianggap belum lengkap
oleh shell (defaultnya ">").
2. Positional Parameter
Parameter posisi yaitu variabel yang digunakan shell untuk menampung
argumen yang diberikan terhadap shell baik berupa argumen waktu
sebuah file dijalankan atau argumen yang dikirim ke subrutin. variabel
yang dimaksud adalah 1,2,3,dst.
3. User Defined Variable
Variabel yang didefinisikan sendiri oleh pembuat script sesuai dengan
kebutuhannya, beberapa hal yang perlu diperhatikan dalam
mendefenisikan variabel adalah:
 dimulai dengan huruf atau underscore
 hindari pemakaian spesial karakter seperti *,$,#,dll...
 bash bersifat case sensitive, maksudnya membedakan huruf besar dan
kecil, a berbeda dengan A, nama berbeda dengan Nama,NaMa,dsb..
D. OPERATOR
Operator-operator yang digunakan:
1. Operasi Hitungan Aritmatika
+ Untuk penjumlahan
– Untuk pengurangan
* Untuk perkalian
/ Untuk pembagian
% Untuk modulus/sisa hasil pembagian

a. Penjumlahan

Outputnya:

b. Pengurangan

Outputnya:
c. Perkalian

Outputnya:

d. Pembagian

Outputnya:

e. Sisa Bagi

Outputnya:
2. Operator String :
 string1 = string2 : Bernilai benar jika, string1 sama dengan string2.
 string1 != string2 : Bernilai benar jika, string1 tidak sama dengan
string2.
 string1 < string2 : Bernilai benar jika, string1 lebih kecil dari
string2.
 string1 > string2 : Bernilai benar jika, string1 lebih besar dari
string2.
 -n string1 : Bernilai benar jika, string1 memiliki panjang lebih dari
0 atau string1 tidak null.
 -z string1 : Bernilai benar jika, string1 null.

3. Operator Bilangan Bulat


 bil1 -eq bil2 BENAR jika bil1 sama dengan bil2
 bil1 -ne bil2 BENAR jika bil1 tidak sama dengan bil2
 bil1 -lt bil2 BENAR jika bil1 lebih kecil dari bil2
 bil1 -le bil2 BENAR jika bil1 lebih kecil atau sama dengan bil2
 bil1 -gt bil2 BENAR jika bil1 lebih besar dari bil2
 bil1 -ge bil2 BENAR jika bil1 lebih besar atau sama dengan bil2
-lt Untuk tanda lebih kecil <
-le Untuk tanda lebih kecil samadengan ≤
-eq Untuk tanda samadengan =
-gt Untuk tada lebih besar >
-ge Untuk tanda lebih besar sama dengan ≥
-ne Tidak sama dengan ≠
4. Operator File
 -file FILE TRUE mebegmbalikan benar jika file ada dan
merupakan file biasa.
 -d FILE TRUE benar jika file ada dan merupakan direktori
 -r FILE TRUE jika FILE ada dan izin baca aktif
 -w FILE TRUE jika FILE ada dan izin menulis aktif
 -x FILE TRUE jika FILE ada dan izin jalankan aktif
 -s FILE TRUE jika FILE ada dan tidak kosong.

5. Operator Logika
 ekspresi1 -o ekspresi2 = Benar jika salah satu ekpresi benar (atau,
||)
 ekspresi1 -a ekspresi2 = Benar jika ekspresi1 dan ekspresi2 benar
(dan, &&)
 ! eksperesi = mengembalikan benar jika tidak benar (tidak!)

6. Operator Boolean
 And && = kedua kondisi harus bernilai TRUE
 Or || = salah satu kondisi bias bernilai benar dan true bernilai false,
E. KONDISI

1. IF
Fungsi if ini hanya menjalankan 1 perintah tanpa ada alternaftif perintah.
Sehingga jika kondisi bernilai salah maka tidak ada output yang
dikeluarkan.

Outputnya:

2. IF ELSE
menjalankan perintah dengan ada alternatif perintah lainnya jika kondisi
sebelumnya bernilai salah.

Outputnya:
3. IF ELIF ELSE
menjalankan perintah dengan ada alternatif perintah lainnya jika kondisi
sebelumnya bernilai salah. Hasil dari penggunaan if…else… ini akan
selalu menghasilkan output ketika kondisinya Benar maupun Salah.

Outputnya:

4. CASE
Terkadang kita mungkin ingin mengambil jalur berbeda berdasarkan
variabel yang cocok dengan serangkaian pola. Kita bisa menggunakan
serangkaian pernyataan if dan elif tetapi itu akan segera tumbuh menjadi
tidak sehat. Untungnya ada pernyataan cases yang bisa membuat
semuanya lebih bersih. Agak sulit dijelaskan, jadi berikut ini beberapa
contoh untuk diilustrasikan:

Outputnya:
F. PERULANGAN
Perulangan (Loop) adalah instruksi program yang bertujuan untuk
mengulang beberapa baris perintah.
Macam-Macam Perulangan:

1. WHILE – DO
While digunakan untuk pengulangan instruksi, yang umumnya dibatasi
dengan suatu kondisi, selama kondisi tersebut TRUE. Maka pengulangan
terus dilakukan. Loop akan berhenti, bila kondisi FALSE, atau program
keluar dari blok while melalui exit atau break.

Outputnya:

2. UNTIL – DO
Perbedaan nya ialah pada WHILE akan melakukan perulangan selama
ekspresi kendali bernilai TRUE, dan berhenti jika ekpresi kendali bernilai
FALSE atau diberikan sebuah break dalam kode program. Sedangan Until
kebalikannya.
Ouputnya:

3. FOR – IN
For digunakan untuk pengulangan dengan menggunakan var yang pada
setiap pengulangan akan diganti denagan niali yang berbeda pada daftar
(list). Perulangan for bisa menyimpan parameter dalam bentuk string,
contohnya nama barang, nama orang, nama benda. Contoh: perulangan for
dengan parameter nama-nama artis K-POP.

Outputnya;
G.FUNGSI
Fungsi merupakan blok kode yang berisi statemen atau command tertentu.
FUngsi adalah program yang dapat dipanggil oleh program lainnya dengan
menggunakan notasi NamaFungsi(). Fungsi memberikan exit status ($?)
yang di nyatakan dengan return nr, atau nilai 0 sebagai default. Variabel
yang digunakan dalam sebuah fungsi tidak boleh sama dengan variable yang
di luar fungsi. Sehingga tidak terjadi variable berubah. Contoh :
#!/bin/bash
Function hello(){
Echo “Hello Word”
}
hello
hello

Untuk melakukan pemanggilan fungsi cukup menulis nama fungsinya saja.


1. Mengirim argument
Pada saat pemanggilan fungsi ditambahkan argument yang kemudian
argume tersebut dapat dibaca oleh fungsi sesuai dengan posisi
parameternya.
#!/bin/bash
Function hello(){
Echo hello $1
}
hello aby
hello amy
2. Cakupan Variable
Secara default variable bersifat globar yang artinya variable tersebut bias
dibaca dimana saja. Sementara variable yang hanya dapat dibaca oleh
fungsi yang mengdeklarasikannya disebut variable vocal.
#!/bin/bash
cetak(){
echo “Variable x = $x”
}
x=5
cetak
cetak $x

Output:
Variabel x = 5
Variabel x = 5

Anda mungkin juga menyukai