------------------------
1.0 APA ITU SHELL SCRIPT
------------------------
Dalam lingkungan unix, kata 'shell' mengacu pada semua program yang dapat
dijalankan pada command line. Jadi secara sederhana shell script merupakan
kumpulan perintah yang disimpan pada suatu file. Extensi umum yang digunakan
untuk shell script adalah '.sh', sebenarnya hal ini tidak mutlak karena
pada dasarnya unix mengabaikan extensi file.
Shell juga dapat mengacu pada program yang menangani command line itu
sendiri dalam sistem operasi UNIX program tersebut adalah Bourne Shell
(1978 - Steve Bourne) disingkat sh. Dalam sistem operasi GNU/Linux shell yang
menjadi standar adalah Bourne Again Shell(bash). Bash merupakan shell yang
kompatibel dengan sh dan memiliki lebih banyak fitur.
Jika anda ingin menguasai shell script tentu anda harus tahu dan hafal
sedikit banyak perintah dasar command line, seperti mengkopi file(cp),
merename file(mv), mencetak string (echo), melihat file(cat), dan beberapa
perintah dasar lainnya.
Shell script juga menyediakan beberapa fitur yang tersedia pada bahasa
pemrograman tingkat tinggi seperti variabel, percabangan dan perulangan.
Berikut ini adalah contoh sederhana penggunakan shell script:
pinguin@HP-Notebook:~$ nano hello.sh
#!/bin/sh
echo 'HELLO WORLD'
Untuk menjalankan ada dua cara, pertama melalui program shell itu sendiri
pinguin@HP-Notebook:~$ sh hello.sh
Kedua adalah mengeksekusinya secara independen, untuk melakukan hal tersebut
anda harus memberi permission 'execute' pada file.
pinguin@HP-Notebook:~$ chmod +x hello.sh
pinguin@HP-Notebook:~$ ./hello.sh
HELLO WORLD
Baris pertama #!/bin/sh adalah MUTLAK diperlukan dan HARUS diletakkan pada
BARIS PERTAMA agar file yang anda buat dikenali sistem sebagai shell script.
Tanda '#!' sering disebut 'shebang' operator. Tanda tersebut menandakan
bahwa file tersebut adalah shell script. Sisanya misal '/bin/sh' adalah
lokasi file binari atau program. Dalam contoh kita menggunakan program
bash '/bin/sh' atau '/bin/bash'.
Tanda # jika tidak terletak pada baris dan kolom paling awal akan dianggap
sebagai komentar oleh shell.
------------
1.1 Variabel
------------
Pemberian variabel pada shell script bersifat 'dynamic typing' karena
shell script tidak mengenal adanya tipe data. Pada shell script dikenal
dua istilah variabel yaitu SYSTEM VARIABLE(SV) dan USER DEFINED VARIABLE
(UDV). SV adalah kumpulan variabel yang telah dideklarasikan secara otomatis
oleh shell, sedangkan UDV adalah variabel yang kita buat sendiri. Contoh dari
variabel SV adalah HOME, SHELL, RANDOM, OSTYPE, dan masih banyak yang lain.
Dalam membuat variabel ada beberapa aturan yang harus dipenuhi agar variabel
tersebut dianggap valid oleh shell, syntax untuk penamaan variabel adalah:
nama_variabel=NILAI
Perhatikan bahwa tidak ada spasi antara nama_variabel dengan tanda '=' juga
dengan NILAI. Ini adalah suatu KEHARUSAN. Berikut adalah beberapa aturan
tentang penamaan variabel:
1. Variabel HARUS diawali ABJAD atau _ (tidak dapat diawali angka)
2. Variabel dapat terdiri dari karakter alphanumeric dan _
3. Variabel bersifat CaSe SeNsItIvE
4. Jika isi variabel mengandung spasi sebaiknya apit dengan tanda petik (')
atau (").
5. Gunakan escape character (\) untuk karakter non-literal
seperti (\', \$, \?, dll)
Untuk mencetak nilai dari suatu variabel digunakan tanda dollar ($) didepan
nama variabel, contoh:
pinguin@HP-Notebook:~$ a='Hello '
pinguin@HP-Notebook:~$ b='World!'
pinguin@HP-Notebook:~$ echo $a$b
Hello World!
pinguin@HP-Notebook:~$ echo ${a}${b}
Hello World!
Cara yang terakhir adalah cara yang disarankan untuk menghindari kesalahan
dalam melakukan concat string.
Jika anda ingin menyimpan output dari suatu perintah kedalam suatu variabel
gunakan tanda backtick (`). Contoh, kita akan melihat isi direktori home
lalu menyimpannya dalam variabel isi_home.
pinguin@HP-Notebook:~$ isi_home=`ls /home`
pinguin@HP-Notebook:~$ echo $isi_home
Dalam shel juga terdapat SPECIAL VARIABEL untuk mendapatkan exit status dari
suatu program. Pada UNIX setiap program dinyatakan selesai TANPA error
apabila exit statusnya SAMA DENGAN 0. Selain itu maka program tersebut
selesai tapi dengan error. Variabel tersebut adalah "$?".
pinguin@HP-Notebook:~$ ls /home
pinguin@HP-Notebook:~$ echo $?
0
pinguin@HP-Notebook:~$ ls /file/ngawur
pinguin@HP-Notebook:~$ echo $?
2
Angka 2(TIDAK SAMA DENGAN 0) menunjukkan bahwa program ls keluar dengan
status terjadi error. Penggunaan exit sangat penting saat kita membuat
shell script yang kompleks, dimana didalamnya kita banyak menggunakan
program lain.
------------------------------
1.2 Command Line dan Argument
------------------------------
Ketika berbicara shell script kita pasti berhubungan dengan command line.
Apabila berbicara tentang command line pasti berhubungan dengan argument.
Apaliba berbicara tentang argument.....cukup....cukup.... nanti malah sampai
sejarah kerajaan majapahit nantinya 🙂
Perintah-perintah command line umumnya memerlukan minimal satu buah argumen
agar dapat mengerjakan tugasnya secara optimal. Apa itu argument? secara
sederhana argumen adalah text/character yang ditempatkan setelah nama program
dengan pemisah minimal satu spasi.
Contoh berikut mengilustrasikan pemberian dua argument pada perinta copy file
`cp`. Perintah cp memerlukan dua argument yaitu 1)lokasi file awal
2)lokasi file tujuan
pinguin@HP-Notebook:~$ cp /foo/bar /tmp/bar
^ ^
argument-1 argument-2
Pada sistem Linux dikenal dua istilah argument short style(UNIX style) dan
long style(GNU Style). Hampir setiap program command line pada linux
menyediakan dua opsi tersebut saat memberikan argument. Penulisan argument
UNIX style biasanya hanya terdiri dari satu huruf contoh '-l' pada perintah
`ls`.
pinguin@HP-Notebook:~$ ls -l
Sedangkan GNU style umumnya terdiri dari minimal sebuah kata contoh
'--all' pada perintah `ls`.
pinguin@HP-Notebook:~$ ls --all
Untuk membaca argument dalam shell script digunakan special variabel yaitu
$0, $1, $2,...$9. Variabel $0 adalah nama program itu sendiri.
CATATAN:
Untuk mengetahui jumlah argument yang diinputkan user gunakan variabel $#,
sedangkan untuk mendapatkan seluruh argument gunakan variabel $*.
LATIHAN:
Buat sebuah shell script untuk menampilkan nama user, nama tersebut
diinput melalui argument ke-1
JAWAB:
pinguin@HP-Notebook:~$ nano nama.sh
#!/bin/sh
nama=$1
echo 'Halo '$nama', selamat datang!'
pinguin@HP-Notebook:~$ chmod +x nama.sh
pinguin@HP-Notebook:~$ ./nama.sh STMIK
Halo STMIK, selamat datang!
pinguin@HP-Notebook:~$ ./nama.sh STMIK NH Jambi
Halo STMIK, selamat datang!
pinguin@HP-Notebook:~$ ./nama.sh 'STMIK NH Jambi'
Halo STMIK NH Jambi, selamat datang!
CATATAN:
Untuk menyimpan file pada nano Tekan CTRL-O lalu jika ingin keluar tekan
CTRL-X.
--------------------------
1.3 Perhitungan Aritmatik
--------------------------
Untuk melakukan perhitungan aritmatik, shell tidak memiliki kemampuan
built-in, tetapi meminta bantuan program lain yaitu `expr`. Program expr
berfungsi untuk mengevaluasi suatu expresi baik itu perbandingan string
atau operasi aritmatik sederhana.
Operator aritmatik yang disediakan expr antaran lain:
+-----------+-----------------------------------------------------------+
| Operator | KETERANGAN |
+-----------+-----------------------------------------------------------+
| + | Operator Penjumlahan contoh: expr 1 + 1 |
+-----------+-----------------------------------------------------------+
| - | Operator Pengurangan contoh: expr 10 - 9 |
+-----------+-----------------------------------------------------------+
| * | Operator Perkalian contoh: expr 10 \* 10 |
+-----------+-----------------------------------------------------------+
| / | Operator Pembagian contoh: expr 10 / 2 |
+-----------+-----------------------------------------------------------+
| % | Operator Modulus contoh: expr 15 % 3 |
+-----------+-----------------------------------------------------------+
Selain digunakan untuk perhitungan aritmatik, perintah `expr` juga cukup
handal untuk melakukan manipulasi string, untuk lebih jelas silahkan lihat
halaman manual dari expr dengan mengetikkan `man expr`.
LATIHAN:
Buatlah sebuah shell script untuk menghitung nilai dari argument-1 dikali
argument-2 ditambah argument-3!
JAWABAN:
Secara matematis perhitungannya adalah
(argument-1 + argument-2) + argument-3.
Tidak seperti bahasa tingkat tinggi, pada shell script untuk memberi
prioritas pada suatu perhitungan kita menggunakan tanda $[ ... ]. Jadi
perhitungannya menjadi
$[ argument-1 + argument-3 ] + argument-3
Keuntungan lain ketika kita menggunakan tanda $[...] adalah kita tidak perlu
melakukan escaping character pada tanda perkalian(*). Berikut ini adalah
shell scriptnya.
pinguin@HP-Notebook:~$ nano hitung.sh
#!/bin/sh
bil1=$1
bil2=$2
bil3=$3
echo -n "HASIL DARI $bil1 * $bil2 + $bil3 = "
echo `expr $[ $bil1 * $bil2 ] + $bil3`
pinguin@HP-Notebook:~$ chmod +x hitung.sh
pinguin@HP-Notebook:~$ ./hitung.sh 10 10 10
HASIL DARI 10 * 10 + 10 = 110
---------------
1.4 User Input
---------------
Selain melalui argument pada command line, cara lain untuk mendapatkan input
dari user adalah melalui STANDARD INPUT (STDIN). Dimana user langsung
mengetikkan isi dari suatu nilai yang program inginkan.
Untuk mendapatkan input dari user dapat digunakan perintah `read`. Perintah
read tidak begitu berguna jika kita tidak menyimpan hasil inputan tersebut
kedalam sebuah variabel. Untuk menyimpan hasil inputan kita harus memberi
satu argument pada perintah read. Argument inilah yang akan menyimpan nilai
yang diinputkan. Contoh,
pinguin@HP-Notebook:~$ read a
10
pinguin@HP-Notebook:~$ read b
5
pinguin@HP-Notebook:~$ expr $a \* $b
50
LATIHAN:
Sama dengan latihan sebelumnya, hanya saja kali ini gunakan perintah read
untuk membaca setiap bilangan yang diinputkan user.
JAWABAN:
pinguin@HP-Notebook:~$ nano hitung2.sh
#!/bin/sh
# deklarasikan variabel dengan nilai NULL
bil1=
bil2=
bil3=
echo -n 'Masukkan bilangan-1: '
read bil1
echo -n 'Masukkan bilangan-2: '
read bil2
echo -n 'Masukkan bilangan-3: '
read bil3
echo ''
echo -n "Hasil dari $bil1 * $bil2 + $bil3 = "
echo `expr $[ $bil1 * $bil2 ] + $bil3`
pinguin@HP-Notebook:~$ chmod +x hitung2.sh
pinguin@HP-Notebook:~$ ./hitung2
Masukkan bilangan-1: 10
Masukkan bilangan-2: 10
Masukkan bilangan-3: 10
Hasil dari 10 * 10 + 10 = 110
----------
1.5 Piping
----------
Piping merupakan penggabungan dua atau lebih perintah dimana output dari
perintah sebelumnya digunakan sebagai input untuk perintah selanjutnya.
Simbol yang digunakan untuk membatasi perintah yang satu dengan yang lain
adalah tanda pipe "|". Berikut adalah beberapa contoh sederhana penggunaan
piping pada command line.
pinguin@HP-Notebook:~$ cat /etc/passwd | wc -l
pinguin@HP-Notebook:~$ cat /etc/passwd | sort -r
pinguin@HP-Notebook:~$ cat /etc/passwd | grep "/bin/sh/" | wc -l
---------------
1.6 Redirection
---------------
Secara umum jika kita ingin mengambil inputan maka kita mengambil dari
STANDARD INPUT (STDIN) yaitu keyboard. Sedangkan hasil output program yang
tercetak di layar monitor kita disebut STANDARD OUTPUT (STDOUT). Hampir sama
dengan STDOUT, error yang dihasilkan program juga ditampilkan lewat monitor
biasa disebut STANDARD ERROR (STDERR). Setiap standard mempunyai kode file
descriptor sendiri-sendiri diantaranya:
- STDIN => File Descriptor: 0
- STDOUT => File Descriptor: 1
- STDERR => File Descriptor: 2
Dengan mengetahui file descriptor tersebut kita dapat melakukan redirection
(pengalihan), misal dari dari STDOUT menjadi STDERR atau sebaliknya.
Terdapat tiga simbol untuk melakukan redirection diantarnya:
1.
Simbol: ">"
Keterangan: Simbol tersebut akan meredirect output ke dalam suatu file. Jika
file tersebut belum ada maka akan buat secara otomatis, jika
file sudah ada ada maka isinya akan di-overwrite/ditimpa.
2.
Simbol: ">>"
Keterangan: Hampir sama dengan ">" hanya saja jika file sudah ada, maka file
isi tersebut tidak dioverwrite tetapi ditambah.
3.
Simbol: "<"
Keterangan: Simbol "<" artinya input tidak diambil dari STDIN melainkan dari
sebuah file.
Sebagai contoh sederhana, ketika anda mengetikkan perintah `ls /nama/dir`
maka secara default program ls akan menampilkan output ke STDOUT yaitu
layar monitor. Jika kita ingin meredirect output yang dihasilkan kedalam
sebuah file maka kita dapat menggunakan simbol ">" atau ">>". Intinya segala
STDOUT dapat dilakukan redirect.
pinguin@HP-Notebook:~$ echo 'DAFTAR ISI FOLDER LUG' > /tmp/data.txt
pinguin@HP-Notebook:~$ ls /home/lugstikom >> /tmp/data.txt
Untuk contoh "<" kita akan menggunakan program tr, program ini dapat kita
gunakan untuk manipulasi teks. Input yang akan kita berikan ke tr adalah
dari sebuah file, nantinya teks yang ada pada file tersebut akan di-UPPER
CASE semua.
pinguin@HP-Notebook:~$ echo 'stmik nh jambi' > /tmp/stmik.txt
pinguin@HP-Notebook:~$ tr "[a-z]" "[A-Z]" < /tmp/stmik.txt
STMIK NH Jambi
Selain meredirect ke file kita juga dapat melakukan redirect ke file
descriptor lain. Misal dari STDOUT ke STDERR atau sebaliknya.
pinguin@HP-Notebook:~$ rm /file/ngawur 2>&1
pinguin@HP-Notebook:~$ ls / 1>&2
-----------
1.7 FUNGSI
-----------
Hampir sama dengan bahasa pemrograman tingkat tinggi, pada shell script juga
dikenal istilah fungsi. Dimana dengan adanya fungsi kita dapat membagi
kode kita ke dalam sub-sub yang lebih kecil. Hal ini sangat berguna jika kita
membangun sebuah program shell script yang cukup kompleks. Syntax penggunaan
fungsi pada shell script adalah:
function nama-fungsi()
{
perintah
...
...
return
}
LATIHAN:
Buatlah shell script untuk mencetak banner seperti output berikut:
pinguin@HP-Notebook:~$ ./fungsi.sh
==============================
SELAMAT DATANG DI LUG-STMIK
==============================
HARI INI: Rabu, 14-05-2008
Tulisan "SELAMAT blabla..." diletakkan dalam fungsi tersendiri, begitu pula
fungsi untuk mencetak tanggal. Fungsi mencetak tanggal nantinya akan
dipanggil didalam fungsi yang mencetak tulisan "SELAMAT...".
JAWAB:
pinguin@HP-Notebook:~$ nano fungsi.sh
#!/bin/sh
function indo_date() {
echo `date +"%A, %d-%m-%Y"`
return
}
function welcome() {
echo "=============================="
echo " SELAMAT DATANG DI LUG-STMIK"
echo "=============================="
echo -n "HARI INI: "
indo_date
return
}
welcome
pinguin@HP-Notebook:~$ chmod +x fungsi.sh
Apakah fungsi pada shell script juga menerima parameter? YA tapi dengan
sedikit "nyeleneh". Kenapa? jika pada bahasa pemrograman umumnya parameter
diletakkan diantara tanda (), tidak demikian dengan shell script. Cara
pengambilan parameter pada shell script sama dengan pengambilan argument
pada program shell script itu sendiri. Jadi kita dapat menggunakan variabel
$*, $#, $0, $1, dan seterusnya.
Dibawah ini adalah contoh pembuatan fungsi untuk mengubah text menjadi
UPPER-CASE.
pinguin@HP-Notebook:~$ nano fungsi2.sh
#!/bin/sh
function toUpperCase() {
teks=$*
echo $teks | tr "[a-z]" "[A-Z]"
return
}
echo -n "Masukkan teks(lowercase): "
read foo
toUpperCase $foo
pinguin@HP-Notebook:~$ chmod +x fungsi2.sh
pinguin@HP-Notebook:~$ ./fungsi2.sh
Masukkan teks(lowercase): ini lower case
INI LOWER CASE
Pada contoh diatas kita menggunakan variabel $* untuk mengambil parameter
bukan $1 atau $2 dkk karena yang akan diinputkan user kemungkinan mengandung
dua kata atau lebih. Jadi jika kita menggunakan variabel $1 maka yang terbaca
hanya kata pertama. Untuk itu kita gunakan variabel $* yang akan membaca
semua parameter.
---------------
2.0 Percabangan
---------------
Dengan menggunakan percabangan/branching maka kita dapat mengontrol alur
dari shell script yang kita buat. Hal ini memungkinkan kita untuk menulis
program yang sangat kompleks pada shell script. Syntax penggunaan percabangan
pada shell script adalah:
if kondisi
then
...
...
fi
-----------
if kondisi
then
...
...
else
...
...
fi
-----------
if kondisi1
then
...
...
elif kondisi1
...
...
elif kondisi-n
...
...
else
...
...
fi
--------------
case $variabel in
pattern1) perintah
...
perintah;;
pattern1) perintah
...
perintah;;
*) perintah
...
perintah;;
esac
Untuk melakukan perbandingan kondisi pada data kita dapat menggunakan
perintah `test`(man test) atau meletakkannya dalam blok [ ].
Berikut ini adalah operator yang dapat digunakan untuk membandingkan data
NUMERIK:
+------------+-----------------------------------+
| OPERATOR | KETERANGAN |
+------------+-----------------------------------+
| -eq | SAMA DENGAN (=) |
+------------+-----------------------------------+
| -ne | TIDAK SAMA DENGAN (!=) |
+------------+-----------------------------------+
| -gt | LEBIH BESAR (>) |
+------------+-----------------------------------+
| -ge | LEBIH BESAR ATAU SAMA DENGAN (>=) |
+------------+-----------------------------------+
| -lt | KURANG DARI (<) |
+------------+-----------------------------------+
| -le | KURANG DARI ATAU SAMA DENGAN (<=) |
+------------+-----------------------------------+
-------------------
2.1 if...then...fi
------------------
pinguin@HP-Notebook:~$ nano if-then-fi.sh
#!/bin/sh
num_arg=$#
bil1=$1
bil2=$2
function help() {
echo 'Penggunaan: '
echo "$0 bil1 bil2"
echo ''
echo Dimana bil1 dan bil2 harus angka genap.
return
}
function cek_arg() {
if test $num_arg -lt 2
then
help
exit 1 # keluar dengan exit status 1
fi
if [ `expr $bil1 % 2` -ne 0 ] ; then
help
exit 1
fi
if [ `expr $bil2 % 2` -ne 0 ]
then
help
exit 1
fi
return
}
cek_arg
echo 'Argument anda adalah '$bil1' dan '$bil2
exit 0
pinguin@HP-Notebook:~$ chmod +x if-then-fi.sh
pinguin@HP-Notebook:~$ ./if-then-fi.sh
Penggunaan:
./if-then-fi.sh bil1 bil2
Dimana bil1 dan bil2 harus angka genap.
pinguin@HP-Notebook:~$ echo $?
1
pinguin@HP-Notebook:~$ ./if-then-fi.sh 2 4
Argument anda adalah 2 dan 4
pinguin@HP-Notebook:~$ echo $?
0
Perintah exit pada shell script dapat digunakan untuk keluar langsung dari
program. Pada contoh diatas, jika terdapat kesalahan kita keluar dengan exit
status 1( bukan 0 ) artinya program selesai tapi dengan error. Error status
tidak harus 1 tapi bisa sembarang angka asal BUKAN 0.
-------------------------
2.2 if...then...else...fi
-------------------------
Statement pada blok else akan dieksekusi jika kondisi pada pada blok if
bernilai false.
pinguin@HP-Notebook:~$ nano if-else.sh
#!/bin/sh
if test $1 -ge 0
then
echo "Argument bernilai positif"
else
echo "Argument bernilai negatif"
fi
pinguin@HP-Notebook:~$ chmod +x if-else.sh
pinguin@HP-Notebook:~$ ./if-else 10
Argument bernilai positif
pinguin@HP-Notebook:~$ ./if-else -2
Argument bernilai negatif
--------------------------------
2.3 if...then...elif...else...fi
--------------------------------
Statement elif digunakan jika kita ingin memilih lebih dari dua kondisi.
pinguin@HP-Notebook:~$ nano if-elif.sh
#!/bin/sh
pilih=
teks="Sistem operasi pilihan anda adalah "
echo "Pilih Sistem Operasi Anda: "
echo "1. Linux"
echo "2. Mac OS"
echo "3. FreeBSD"
echo "4. Lainnya"
echo ""
echo -n "Masukkan pilihan: "
read pilih
if [ $pilih = "1" ] ; then
echo "${teks}Linux"
elif [ $pilih = "2" ] ; then
echo "${teks}Mac OS"
elif [ $pilih = "3" ] ; then
echo "${teks}FreeBSD"
else
echo "Anda memilih sistem operasi lain"
fi
pinguin@HP-Notebook:~$ chmod +x if-elif.sh
pinguin@HP-Notebook:~$ ./if-elif.sh
Pilih Sistem Operasi Anda:
1. Linux
2. Mac OS
3. FreeBSD
4. Lainnya
Masukkan pilihan: 3
Sistem operasi pilihan anda adalah FreeBSD
-------------
2.5 Nested If
-------------
Pada shell script anda juga dapat meletakkan blok if didalam if atau istilah
"kerennya" nested if. Berikut adalah contoh sederhana penggunaannya.
pinguin@HP-Notebook:~$ nano nested-if.sh
#!/bin/bash
bil=$1
if [ `expr $bil % 2` -eq 0 ] ; then
if [ $bil -ge 0 ] ; then
echo "Angka yang anda masukkan genap dan >= 0"
else
echo "Angka yang anda masukkan genap dan < 0"
fi
else
if [ $bil -ge 0 ] ; then
echo "Angka yang anda masukkan ganjil dan >= 0"
else
echo "Angka yang anda masukkan ganjil dan < 0"
fi
fi
pinguin@HP-Notebook:~$ sh nested-if.sh 10
Angka yang anda masukkan genap dan >= 0
pinguin@HP-Notebook:~$ sh nested-if.sh -5
Angka yang anda masukkan ganjil dan < 0
--------------------
2.6 case...in...esac
--------------------
Perintah case hampir sama dengan if-then-elif-else-fi karena dapat memilih
dari banyak kondisi. Sebagian orang lebih suka menggunakan case...esac
dibanding multi level-if karena lebih mudah dibaca.
Pada contoh dibawah ini adalah modifikasi dari contoh if-then-elif-else-fi
yang pernah dibahas sebelumnya menggunakan case...in...esac.
pinguin@HP-Notebook:~$ nano case.sh
#!/bin/sh
pilih=
teks="Sistem operasi pilihan anda adalah "
echo "Pilih Sistem Operasi Anda: "
echo "1. Linux"
echo "2. Mac OS"
echo "3. FreeBSD"
echo "4. Lainnya"
echo ""
echo -n "Masukkan pilihan: "
read pilih
case $pilih in
"1") echo "${teks}Linux";;
"2") echo "${teks}Mac OS";;
"3") echo "${teks}FreeBSD";;
*) echo "Anda memilih sistem operasi lain";;
esac
pinguin@HP-Notebook:~$ sh case.sh
Pilih Sistem Operasi Anda:
1. Linux
2. Mac OS
3. FreeBSD
4. Lainnya
Masukkan pilihan: 1
Sistem operasi pilihan anda adalah Linux
--------------------------
2.7 Menangkap Error Status
--------------------------
Seperti yang pernah dijelaskan sebelumnya bahwa untuk melihat error status
dari suatu perintah kita gunakan special variable "$?". Error status ini
dapat kita gunakan untuk melihat apakah perintah yang kita jalankan berjalan
tanpa error atau tidak. Error status terdiri dari dua flag yaitu:
+-----------+-----------------+
| NO. ERROR | STATUS PROGRAM |
+-----------+-----------------+
| 0 | OK |
+-----------+-----------------+
| !=0 | TERJADI ERROR |
+-----------+-----------------+
NOTE: != artinya TIDAK SAMA DENGAN
Setelah anda mengetahui bagaimana menggunakan percabangan pada shell script
maka kita dapat menggunakanya untuk menangkap error status yang dihasilkan
oleh suatu program.
pinguin@HP-Notebook:~$ nano error-status.sh
#!/bin/sh
perintah=`rm /file/ngawur 2>/dev/null`
if [ $? -eq 0 ] ; then
echo "PERINTAH SUKSES, EXIT STATUS: $?"
else
echo "PERINTAH GAGAL, EXIT STATUS: $?"
fi
ls / 1>/dev/null
if [ $? -eq 0 ] ; then
echo "PERINTAH SUKSES, EXIT STATUS: $?"
else
echo "PERINTAH SUKSES, EXIT STATUS: $?"
fi
lug@stikom.edu:~$ sh error-status.sh
PERINTAH GAGAL, EXIT STATUS: 1
PERINTAH SUKSES, EXIT STATUS: 0
Pada contoh diatas STDERR dan STDOUT semuanya di-redirect ke /dev/null. Hal
ini agar output perintah rm dan ls tidak muncul dilayar. /dev/null adalah
semacam file "blackhole" yang dapat kita gunakan untuk mengririm semua output
yang tidak kita inginkan.
CATATAN:
Variabel $? hanya berisi error status dari perintah yang TERAKHIR KALI
dijalankan.
----------------------------------
3.0 Perulangan dalam Shell Script
----------------------------------
Perbedaan utama kita, manusia dengan komputer adalah jika kita melakukan
suatu pekerjaan berulang-ulang maka rasa bosan pasti datang. Tidak demikian
dengan komputer, komputer melakukan hal-hal yang sama sebanyak 1 juta kali
pun dia akan dengan "senang hati" melakukannya.
Perulangan atau looping adalah pengeksekusian suatu blok perintah selama
kondisi yang digunakan masih bernilai TRUE. Saya yakin anda pernah disuruh
orang tua anda waktu kecil untuk berhitung 1 - 10. Dimana jika sudah melebihi
10 anda harus berhenti berhitung karena kondisi meminta anda untuk berhenti
pada saat mencapai sepuluh.
Analogi sederhana diatas dapat menggambarkan bagaimana suatu looping bekerja.
Dalam shell script terdapat dua tipe perulangan yaitu:
- for loop
- for...do...done
- for...in...do...done
- while loop
Umumnnya perulangan `for` digunakan apabila kita sudah tahu batas perulangan
yang akan kita lakukan. Syntax penulisannya adalah:
for nama_variabel in list
do
...
...
done
-------------------------
for (( expr1; expr2; expr3 ))
do
...
...
done
-------------------
3.1 for...do...done
-------------------
Berikut adalah contoh untuk penggunaan for...do...done.
pinguin@HP-Notebook:~$ nano for.sh
#!/bin/sh
for (( i=0; i<=5; i++ ))
do
echo "PENALTI KE-$i GOL"!!!
done
pinguin@HP-Notebook:~$ sh for.sh
PENALTI KE-1 GOL!!!
PENALTI KE-2 GOL!!!
PENALTI KE-3 GOL!!!
PENALTI KE-4 GOL!!!
PENALTI KE-5 GOL!!!
------------------------
3.2 for...in...do...done
------------------------
Pada for-in terdapat perbedaan cara penggunaan, pada for-in kita melakukan
perulangan berdasarkan data yang ada pada list. Dimana setiap list dipisahkan
oleh tanda spasi. Berikut adalah contohnya:
pinguin@HP-Notebook:~$ nano for-in.sh
#!/bin/sh
for i in 1 2 3 4 5 ; do
echo -n "$i "
done
echo ''
for abjad in "A B C D E" ; do
echo -n "$abjad "
done
echo ''
pinguin@HP-Notebook:~$ sh for-in.sh
1 2 3 4 5
A B C D E
---------------------
3.3 while...do...done
---------------------
Bentuk perulangan lain yang juga sering digunakan adalah while. Perulangan
menggunakan while lebih difokuskan jika kita memang belum mengetahui batas
perulangan yang dilakukan. Syntax penggunaan while adalah sebagai berikut:
while [ kondisi ]
do
...
...
done
Berikut adalah contoh penggunaannya:
pinguin@HP-Notebook:~$ nano while.sh
#!/bin/sh
i=5
while [ $i -ge 1 ]
do
echo "$i Mod 2 = "`expr $i % 2`
i=`expr $i - 1`
done
pinguin@HP-Notebook:~$ sh while.sh
5 Mod 2 = 1
4 Mod 2 = 0
3 Mod 2 = 1
2 Mod 2 = 0
1 Mod 2 = 1
-------------------------
3.4 Percabangan Bersarang
-------------------------
Suatu percabangan dapat berisi perbacabangan yang lain misalnya for didalam
for atau while didalam while atau kombinasi keduanya. Nah bentuk inilah yang
dinamakan percabangan bersarang(nested loop). Jumlah banyaknya nested loop
dapat dikatakan tidak terbatas.
Anda sebagai pemrogram bebas dapat memasukkan
sebanyak mungkin percabangan bersarang, tapi tentu dengan berbagai
pertimbangan teknis. Umumnya maksimal perbacangan bersarang yang sering
penulis gunakan adalah tiga, namun pada beberapa kondisi bisa lebih dari itu.
Jadi itu semua relatif terhadap anda sebagai pemrogram dan kondisi yang
anda hadapi.
Contoh berikut menunjukkan percabangan bersarang menggunakan for dengan
kedalaman dua level.
pinguin@HP-Notebook:~$ nano nested-for.sh
#!/bin/sh
for (( i=1; i<=5; i++ ))
do
for (( j=1; j<=5; j++ ))
do
echo -n "$i "
done
echo ""
done
pinguin@HP-Notebook:~$ sh nested-for.sh
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
Membuat contoh kasus kalkulator sederhana menggunakan Bash Shell.
dengan kasus :
Bilangan Pertama =
Bilangan Kedua =
Operator =
buka terminal atau tekan ctrl + alt + T.
pinguin@HP-Notebook:~$ nano calc.sh
maka akan keluar command edit pada terminal linux, masukan script berikut pada command terminal.
! /bin/bash
echo "----Calc----"
echo -n "Bilangan 1 : "
read bil1
echo -n "Bilangan 2 : "
read bil2
echo -n "Operator : "
read op
if [ $op = + ]
then
echo "$bil1 $op $bil2 = expr $bil1 + $bil2"
elif [ $op = - ]
then
echo "$bil1 $op $bil2 = expr $bil1 - $bil2"
elif [ $op = / ]
then
echo "$bil1 $op $bil2 = expr $bil1 / $bil2"
elif [ $op = x ]
then
echo "$bil1 $op $bil2 = expr $bil1 \* $bil2"
fi
kemudian ctrl + x
tekan Y
dan enter...
untuk menjalankannya anda ketikan
pinguin@HP-Notebook:~$ chmod +x nano calc.sh
pinguin@HP-Notebook:~$ ./calc.sh
sekian dan terima kasih,
download link disini
https://drive.google.com/open?id=1jl6nUCAooeAbmFY_S7WNlHdGCIPh15dp
---------
REFERENSI
---------
http://www.freeos.com/guides/lsst/
http://en.wikipedia.org/wiki/Shell_script
http://ilmukomputer.com/2007/03/06/membaca-proses-dengan-shell-script/
Kategori: Linux
Perintah Dasar Linux
Perintah Dasar
Shell merupakan antar muka antara user dengan kernel. Tugas
utama shell adalah menerima perintah dari user kemudian
mengirimkan kepada kernel untuk dieksekusi. Sebagai tempat di
mana user dapat memberikan perintah, shell akan memberikan
sebuah prompt. Prompt shell juga sering digunakan untuk
membedakan super user (root) dengan user biasa (ordinary user).
Bentuk dari prompt shell pada bourne again shell yang akan kita
gunakan adalah sebagai berikut:
pinguin@HP_Notebook:~$
Keterangannya:
pinguin : nama user yang sedang menggunakan shell
HP_Notebook : nama host
$ : prompt untuk menandakan user biasa, jika mengunakan super user akan berbentuk #.
Option merupakan pilihan yang dapat digunakan untuk memberikan
hasil tertentu dari suatu perintah.
Argument merupakan sesuatu yang akan diproses oleh perintah,
misalnya nama file atau nama direktori. Penjelasan masing-masing
perintah akan dipersingkat saja, untuk mengetahui lebih detail lagi
fungsi-fungsi suatu perintah, dapat digunakan perintah man.
Beberapa perintah dasar yang biasa digunakan adalah:
How to Install CentOS 7 Step by Step with Screenshots
CentOS (Community Enterprise Operating System) is forked from RedHat Linux, a Linux Distro fine-tuned for servers. Finally, the much awaited CentOS 7 is out.
Step 1: Download The ISO Image
To get a copy of CentOS 7 download from its source mirror. CentOS 7 is now shipping for 64 bit platforms, and currently there is no 32 bit ISO image. This is primarily due to the fact that most servers in production are 64 bit.
Step 2: Make A bootable Drive
After you have downloaded the ISO image, make a bootable USB drive. Since Centos 6.5, you can create usb drive bootable by simply transferring iso file to usb using dd command. As we found Unetbootin no longer works for CentOS 7.
# dd if=/iso/CentOS-7-x86_64-DVD-1602-99.iso of=/dev/sdb
* /dev/sdb is the usb device and make sure you have atleast 4.3 GB space.
Step 3: Begin Installation

To begin installation, click on the Install to Hard Drive icon on the desktop.
Step 4: Select Language And Keyboard
Select your preferred language as well as the Keyboard type you have. Take care not forget to choose the correct keyboard or else you will end up with a few scrambled keys.

Step 5: Change The Installation Destination
By default the Anaconda installer will choose automatic partitioning for your hard disk. Click on the Installation Destination icon to change this to custom partitioning.


Click on the hard drive you want to install CentOS 7 and under the Other Storage Options, choose I will configure partitioning then click Done.
Step 6: Select The Partitioning Scheme
Next select the partitioning scheme to use for the mount points. In this case choose Standard Partition.

Step 7: Create A Swap Space

You can create a swap space from one of the partitions and set the
desired capacity, which is dependent on the RAM you have. Choose the
File System for swap space as swap, and click on Reformat, though
reformatting is optional. You can also name your swap space to whatever
name you like but a name like swap is more descriptive.
Step 8: Create A Mount Point
The next step is to create a mount point where the root partition will be installed. Depending on your requirements you might need to put the boot, home and root partition on different mount points. For this case we shall have only one mount point /.
After this set the Label and Desired Capacity to whatever you wish. A rule of thumb is to use descriptive names for the Label especially if the computer is to be used by different system administrators.
Choose the file system as ext4 and click on reformat.

Step 9: Accept Changes

After completing Step 7 and Step 8
successfully click on Done button. A prompt window will appear with a
summary of changes that will take place. If you are satisfied with them
click Accept changes.
Step 10: Set Date And Time

Click on the clock icon under the localization menu and select a time zone from the map of the world, then click Done.
Step 11: Begin Installation

Now after configuring the System and Localization settings you can click on the Begin Installation button.

Installation will begin immediately and as it proceeds you need to set up a User account as well as the root password.
Step 12: Set Up Root Password
Click on the root password option and enter a password and confirmation of the same then click Done.

Step 13: Create a User Account

The next step is to create a user
account. Enter the correct details and if this is the administrator
account, tick Make this user administrator and Require a password to use
this account for security purposes.
Step 14: Complete Installation

The installer should complete installing the software and the bootloader. Have a look on how to Set Linux Grub Password with Examples.
Once complete you should get a success message, after which you can click quit.
Logout from the Live system and login to your new installation.

Finally once you login to your CentOS 7 accept the EULA agreement and enjoy!
New Features in CentOS 7
The following are some of the notable feature in CentOS 7:
Gnome 3 Desktop Environment
CentOS 7 comes with Gnome 3 which is very convenient when you have a touch screen.

It also comes with Gnome Classic for those that want the look and feel of Gnome 2.

CentOS 7 comes with GRUB 2 which solves dual booting problems with other Linux distros that have been using GRUB 2, like Ubuntu. This is an improvement from CentOS 6.5 which used GRUB Legacy and was a problem when dual booting. Now you can do your installation without concerns of GRUB issues.
CentOS 7 has support for the xfs file system which is suitable especially in a distributed type of environment. XFS is known for its ability to handle parallel I/O compared to ext4.
CentOS 7 will also be shipping with MariaDB, a replacement for MySQL.
Conclusion
CentOS 7 has greatly improved from version 6.5 and now is easier to adopt it as a Desktop OS compared to its predecessor. For those that probably cannot keep up with Fedora releases every 6 months, CentOS 7 is a good consideration. Try it out today!
Ubuntu 18.04 LTS Desktop Installation Guide
Good News for Ubuntu fans ,after all the wait canonical has released its latest and stable version of Ubuntu 18.04 LTS on 26th April 2018. Code name for this release is “Bionic Beaver” and it has come up with various interesting features. In this article, we will be looking about how to install Ubuntu 18.04 LTS in a desktop with screenshots.
Ubuntu 18.04 LTS – New Features:
Ubuntu 18.04 LTS has been released with a lot of new features and improvements, some of the important features are listed below:
- Support and Updates of Ubuntu 18.04 LTS for next 5 Years (April 2023)
- New latest and stable Linux Kernel version 4.15
- Installer offer a new option of “minimal Installation”
- Updated LibreOffice 6.0
- The Bionic Beaver supports attractive and beautiful color emojis
- 18.04 LTS also comes with a new Suru icon theme that will make your desktop much more colorful
- Updated GNOME (3.28) desktop environment
- XORG is the new default display server and replaces Wayland
- Fast and improved boot speed
- Along with other major improvements and bug fixes
Minimum System Requirement for Ubuntu 18.04 LTS (Desktop)
- 2 GB RAM
- Dual Core Processor (2 GH)
- 25 GB free Hard disk space
- Installer Media (DVD or USB)
- (optional) Internet Connectivity if you are planning to download third party software and updates during the installation
Step-by-Step Guide to Install Ubuntu 18.04 LTS on your Laptop or Desktop
Step 1) Download Ubuntu 18.04 LTS ISO File
Please make sure you have the latest version of Ubuntu 18.04 LTS, If not, please download the ISO file from the link here
https://www.ubuntu.com/download/desktop
Since Ubuntu 18.04 LTS only comes in a 64-bit edition, so you can install it on a system that supports 64-bit architecture.
Step 2) Create a Bootable Disk
Once the ISO file is downloaded then next step is to burn the downloaded ISO image into the USB/DVD or flash drive to boot the computer from that drive.
Also make sure you change the boot sequence so that system boots using the bootable CD/DVD or flash drive.
Step 3) Boot from USB/DVD or Flash Drive
Once the system is booted using the bootable disk, you can see the following screen presented before you with options including “Try Ubuntu” and “Install Ubuntu” as shown in the image below,

Even though when you click “Try Ubuntu” you can have a sneak peek into the 18.04 LTS without installing it in your system, our goal here is to install Ubuntu 18.04 LTS in your system. So click “Install Ubuntu” to continue with the installation process.
Step 4) Choose your Keyboard layout
Choose your favorite keyboard layout and click “Continue”. By default English (US) keyboard is selected and if you want to change, you can change here and click “Continue”,

Step 5) Preparing to Install Ubuntu and other Software
In the next screen, you’ll be provided following beneath options including:
- Type of Installation: Normal Installation or Minimal installation, If you want a minimal installation then select second option otherwise go for the Normal Installation. In my case I am doing Normal Installation
- Download Updates While Installing Ubuntu (select this option if your system has internet connectivity during installation)
- Install third party software for graphics and Wi-Fi hardware, MP3 and additional media formats Select this option if your system has internet connectivity)

click on “Continue” to proceed with installation
Step 6) Select the appropriate Installation Type
Next the installer presents you with the following installation options including:
- Erase Disk and Install Ubuntu
- Encrypt the new Ubuntu installation for security
- Use LVM with the new Ubuntu installation
- Something Else
Where,
Erase Disk and Install Ubuntu – Choose this option if your system is going to have only Ubuntu and erasing anything other than that is not a problem. This ensures a fresh copy of Ubuntu 18.04 LTS is installed in your system.
Encrypt the new Ubuntu installation for security – Choose this option if you are looking for extended security for your disks as your disks will be completely encrypted. If you are beginner, then it is better not to worry about this option.
Use LVM with the new Ubuntu installation – Choose this option if you want to use LVM based file systems.
Something Else – Choose this option if you are advanced user and you want to manually create your own partitions and want to install Ubuntu along with existing OS (May be Windows or other Linux Flavor)
In this article, we will be creating our custom partitions on a hard disk of 40 GB and the following partitions are to be created:
- /boot 1 GB (ext4 files system)
- /home 18 GB (ext4 file system)
- / 12 GB (ext4 file system)
- /var 6 GB (ext4 file system)
- Swap 2 GB

Now, Choose “Something Else” and Click on continue
You can see the available disk size for Ubuntu in the next window as shown below:
Now in order to create your own partitions, click on “New Partition Table”


Click on Continue
Create /boot partition of size 1GB, Select the free space and then Click on the “+” symbol to create a new partition

Click on “OK”
Let’s create /home partition of size 18 GB,

In the same way create / & /var file system of size 12 GB & 6 GB respectively


Now create last partition as swap of size 2 GB,

Click on OK
Once you are done with the partition creation task , then click on “Install Now” option to proceed with the installation


Now click on “Continue” to write all the changes to the disks
Step 7) Select Your Time zone
Choose your favorite time zone and then click on “Continue”
Step 8) Provide your User Credentials
In the next screen you will be prompted to provide your user credentials. In this screen provide your name, computer name, username and the password to login into Ubuntu 18.04 LTS
Click “Continue” to begin the installation process.
Step 9) Start Installing Ubuntu 18.04 LTS
The installation of Ubuntu 18.04 LTS starts now and will take around 5-10 mins depending on the speed of your computer,
Step 10) Restart Your System
Once the installation is completed, remove the USB/DVD from the drive and Click “Restart Now” to restart your system.

Step:11) Login to Your Ubuntu 18.04 desktop
Once your system has been rebooted after the installation then you will get the beneath login screen, enter the User name and password that you have set during installation (Step 8)
And that concludes our step by step installation guide for Ubuntu 18.04 LTS and it’s all up to you now to explore the exciting features of Ubuntu 18.04 LTS and have fun
How to Install Wine 4.0 on Ubuntu 18.04 & 16.04 LTS
Wine 4.0 Stable Released. Wine team has announced the latest stable release 4.0.1 on May 15, 2019. Its source code is available for download from its official site. You may also use the package manager to install wine. Wine is an Open Source implementation of the Windows API and will always be free software. Approximately half of the source code is written by its volunteers, and remaining effort sponsored by commercial interests, especially CodeWeavers.

This article will help you to install Wine 4.0 Stable Release on Ubuntu 18.10, 18.04 LTS & 16.04 LTS systems using the apt-get package manager.
Step 1 – Setup PPA
First of all, If you are running with 64-bit system enable 32-bit architecture. Also, install the key which was used to sign packages of wine.
sudo dpkg --add-architecture i386 wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
Use one of the following commands to enable Wine apt repository in your system based on your operating system and version.
### Ubuntu 19.04 sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ disco main' ### Ubuntu 18.04 sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main' ### Ubuntu 16.04 sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main'
Step 2 – Install Wine on Ubuntu
Use below commands to install Wine packages from the apt repository. The –install-recommends option will install all the recommended packages by winehq stable versions on your Ubuntu system.
sudo apt-get update sudo apt-get install --install-recommends winehq-stable
If you face unmet dependencies error during installation, use the following commands to install winehq using aptitude.
sudo apt-get install aptitude sudo aptitude install winehq-stable
Step 3 – Check Wine Version
Wine installation successfully completed. Use the following command to check the version of wine installed on your system.
wine --version wine-4.0.1
How to Use Wine (Optional)?
To use wine we need to login to the GUI desktop of your Ubuntu system. After that Download a windows .exe file like PuTTY on your system and open it with Wine as below screenshot or use following command.
wine putty.exe
You can also launch by right click on the application and click Open With Wine Windows Program as shown in below screenshot.
Mengenal Distro Linux Dan Turunannya
Mengenal
Macam-Macam Distro Linux dan Turunannya –
Distro? apaan tuh? yang jual baju itu ya? ckkkkkk….bukan bro… di
Linux, Distro Linux itu singkatan dari Distribusi Linux, adalah
sebutan untuk sistem operasi komputer dan aplikasinya, merupakan
keluarga Unix yang menggunakan kernel Linux.
Distribusi
Linux bisa berupa perangkat lunak bebas dan bisa juga berupa
perangkat lunak komersial seperti Red Hat Enterprise, SuSE, dan
lain-lain.
Ada banyak distribusi atau distro Linux yang telah muncul. Beberapa bertahan dan besar, bahkan sampai menghasilkan distro turunan, contohnya Distro Debian GNU/Linux. Distro ini telah menghasilkan puluhan distro anak, antara lain Ubuntu, Knoppix, Xandros, DSL, dan sebagainya.
Beberapa Contoh Distro Linux
1. Ubuntu
Ubuntu
merupakan distro Linux yang paling populer diantara distro-distro
lainnya. Sifatnya yang stabil serta user friendly membuatnya sangat
diminati oleh publik. Ubuntu juga merupakan distro Linux yang paling
cocok bagi pengguna awam yang baru belajar menggunakan Linux, karena
memang distro inilah yang paling gampang pengoperasiannya. Dukungan
komunitas yang besar membuat anda tidak akan pernah kehabisan tempat
untuk bertanya.
2.
Opensuse
Opensuse
pertama kali dipublikasikan pada tahun 1992 oleh 4 orang maniak Linux
berkebangsaan jerman. Project mereka diberikan nama SUSE yang
merupakan kepanjangan dari (Software und System Entwicklung). Edisi
yang tersedia saat ini adalah openSuse dan Suse Linux Enterprise.
3.
Fedora
Fedora
pertama kali dirilis pada tahun 1995, dikembangkan oleh 2 orang yang
bernama Bob Young dan Marc Ewing dibawah nama perusahaan Red Hat
Linux. Walaupun dirilis sudah sejak lama namun fedora baru mulai
populer pada tahun 2004. Edisi yang tersedia dari distro ini adalah
fedora dan Red Hat enterprise.
4.
Debian
Debian
GNU Linux pertama kali di publikasikan 1993. Pembuatnya adalah Ian
Murdock. Debian GNU Linux merupakan sebuah project non-komersil yang
dikembangkan secara bersama-sama oleh ratusan programmer diwaktu
senggang mereka. Debian tumbuh menjadi distro yang besar dan populer,
memiliki komunitas yang besar, serta menelurkan berbagai macam
distro-distro turunan.
5.
Mandriva
Mandriva
linux pertama kali diluncurkan pada tahun 1998 oleh Gael Duval
dibawah nama Mandrake Linux. Pada awalnya mandriva merupakan hasil
olahan dari Red Hat dengan berbagai sentuhan tambahan, namun lambat
laun mandriva memiliki fungsi-fungsi sendiri yang membuatnya lebih
user friendly.
6.
LinuxMint
LinuxMint
yang merupakan distro berbasis ubuntu, pertama kali diluncurkan pada
tahun 2006 oleh seorang kelahiran perancis yang bernama Clement
Lefebvre.
7.
PclinuxOS
Pertama
kali diluncurkan pada tahun 2005 oleh Bill Reynolds atau lebih
dikenal dengan julukan “texstar”. Sebelum Bill Reynolds
menciptakan PclinuxOS, ternyata texstar adalah salah satu developer
yang cukup terkenal dari Mandrake Linux. Edisi yang tersedia adalah
MiniMe, Junior and BigDaddy.
8.
Slackware
Distro
yang diciptakan oleh Patrick Volkerding pada tahun 1992 ini,
merupakan salah satu distro Linux lawas yang berhasil bertahan hingga
kini dan bahkan menjadi salah satu distro yang paling populer.
9.
Gentoo Linux
Gento
disusun pada tahun 2000 oleh Daniel Robbins. Ide dasar dari distro
ini adalah mengizinkan user untuk meng-compile sendiri source code
dari Linux ataupun aplikasi program ke sistem milik mereka.
Sebenarnya distro yang satu ini diperuntukkan bagi user-user level
lanjut dengan jam terbang yang sudah tinggi.
10.
Centos
Centos
pertama kali dipublikasikan pada tahun 2003. Centos merupakan hasil
re-build source code RedHat Enterprise Linux oleh sebuah komunitas.
Tujuan distro ini adalah untuk menciptakan sebuah distro yang
menyediakan update secara cepat.
Dan
masih banyak lagi distro-distro yang lainnya seperti Sabily yang
diperuntukkan bagi user muslim dan distro-distro lokal seperti Garuda
OS.
Oke
sekarang kita lanjut turunan dari distro distro linux
Distribusi bebas berbasis Debian
- 64Studio
- Adamantix
- Amber Linux
- BeatrIX
- Bonzai Linux
- Debian
- Debian-BR-CDD
- DeveLinux
- Dreamlinux
- Elive
- Finnix
- GenieOS
- Gnoppix
- gOS linux
- Guadalinex
- Hiweed
- Kalango
- Kanotix
- Knoppix
- Kuliax (sebuah distro Linux yang dikembangkan Indonesia)
- Kurumin
- LinEx
- Loco Linux
- MeNTOPPIX
- Morphix
- NepaLinux
- PingOO
- Skolelinux
- Sun Wah RAYS LX
- Symphony OS
- Ubuntu
- Gethux Linux (sebuah distro Linux yang dikembangkan Indonesia)
- BlankOn Linux (sebuah distro Linux yang dikembangkan Indonesia)
- Dewalinux (sebuah distro Linux yang dikembangkan Indonesia)
- linux mint
- Briker (sebuah distro Linux yang dikembangkan Indonesia)
- Edubuntu
- Kubuntu
- Xubuntu
- De2
- Xandros
- Zen Linux
Distribusi berbasiskan RPM
- aLinux
- ALT Linux
- Annvix
- Ark Linux
- ASPLinux
- Aurox
- Berry Linux
- BLAG Linux and GNU
- BlankOn versi pertama (sebuah distro Linux yang dikembangkan Indonesia)
- Caixa Mágica
- cAos Linux
- CentOS
- Cobind
- Conectiva
- EduLinux
- Engarde Secure Linux
- Fox Linux
- IGOS Nusantara (sebuah distro linux yang dikembangkan Indonesia)
- Linux Mobile System
- Magic Linux
- Mandriva Linux (dahulu bernama Mandrake Linux)
- NOPPENLINUX
- PCLinuxOS
- PCQLinux2005
- PLD Linux Distribution
- QiLinux
- Red Hat Linux:
- Fedora Core
- Red Flag Linux
- Scientific Linux
- Vine Linux
- White Box Enterprise Linux
- Yellow Dog Linux
- Sesco Linux
- SUSE Linux
- Tinfoil Hat Linux
- Trustix
- Ulteo
- YOPER (“Your Operating System”)
Distribusi bebas berbasis Slackware
- AliXe
- Austrumi
- BackTrack
- Bluewhite64 Linux
- CD Forum Linux (sebuah distro Linux yang dikembangkan Indonesia)
- College Linux
- Cytrun Linux
- DARKSTAR
- DeepStyle
- easys GNU/Linux
- Frugalware
- Hardened Linux
- Kate OS
- MooLux
- Plamo Linux
- SLAX
- Sauver
- Singkong Linux (sebuah distro Linux yang dikembangkan Indonesia)
- Slackintosh
- Slackware
- Slamd64
- Splack Linux
- targeT Linux (sebuah distro Linux yang dikembangkan Indonesia)
- Topologi Linux
- Truva Linux
- Ultima Linux
- Vector Linux
- Wolvix
- 0x7F GNU/Linux
- ZenCafe Linux (sebuah distro Linux yang dikembangkan Indonesia)
- Zenwalk Linux (dulu MiniSlack)
Distribusi bebas berbasis lainnya
Distribusi ini menggunakan sistem manajemen paket sendiri atau gabungan, dan adayang tidak menggunakan manajemen paket.
- Arch Linux (dengan sistem manajemen paket Pacman)
- Coyote Linux (distro Router/firewall)
- CRUX (menggunakan manajemen paket berbasis tar.gz yang sederhana, BSD-style initscripts)
- DD-WRT (embedded firewall)
- DeLi Linux (kombinasi Slackware dan CRUX)
- Devil-Linux (distro firewall/router/server)
- DSLinux (Linux untuk Nintendo DS)
- dyne:bolic (instalasi software baru cukup dengan menyalin [copy] ke direktori tertentu)
- Familiar Linux (distro untuk iPAQ handhelds)
- Fli4l (distro yang muat dalam satu floppy disk)
- Foresight Linux (menggunakan sistem manajemen paket Conary)
- FREESCO (router)
- GeeXboX (media center)
- GoboLinux (manajemen paket sendiri yang menggunakan symlink)
- Hikarunix (distro khusus untuk main Go)
- IPCop (distro Router/firewall)
- iPodLinux (linux untuk Apple iPod berbasis µCLinux kernel)
- Jlime (distro untuk HP Jornada 6xx dan 7xx dan NEC MobilePro 900(c) handhelds)
- Lunar Linux (distro berbasis source code)
- MCC Interim Linux (mungkin ini distro Linux pertama; dibuat oleh Manchester Computing Centre di bulan February 1992)
- MkLinux (distro untuk PowerPC, menjalankan Linux kernel sebagai server di atas Mach microkernel)
- Mobilinux (buatan Montavista untuk smartphones)
- MontaVista Linux (embedded systems distro buatan MontaVista Software)
- NASLite (distro floppy-disk untuk menjalankan perangkat Network Attached Storage / NAS)
- Nitix (autonomic server buatan Net Integration Technologies Inc.)
- OpenWrt (embedded firewall)
- Pardus (buatan Turki; menggunakan sistem manajemen paket PISI, dan COMAR configuration framework)
- PS2 Linux (distro Sony Computer Entertainment unuk PlayStation 2 video game console)
- Puppy Linux (sistem manajemen paket PetGet dan DotPup; tapi mulai versi 3 juga bisa menggunakan paket Slackware)
- Rocks Cluster Distribution (untuk computer cluster = gabungan beberapa komputer menjadi satu super komputer)
- rPath (menggunakan sistem manajemen paket Conary)
- Sentry Firewall (firewall, server sistem)
- SliTaz GNU/Linux
- Smallfoot
- SmoothWall (router/firewall)
- Softlanding Linux System (salah satu distro tertua, dibangun tahun 1992-1994; basis awal Slackware)
- Sorcerer (berbasis source code)
- Source Mage GNU/Linux (berbasis source code)
- Tinfoil Hat Linux (distro floppy-disk)
- tomsrtbt (root boot disk)
Distribusi
Linux terjadi dikarenakan adanya berbagai keperluan, tentunya
disesuaikan dengan Perkembangan Hardware dan Tingkat keperluan
penggunanya.
Terima
kasih sudah berkunjung dan ditunggu kunjungan selanjutnya.

