1 Dasar-dasar Linux & Shell Scripting
Setelah mempelajari modul ini, peserta dapat:
|
§ Mengenal
sejarah dan distro-distro Linux
§ Mengenal
perintah-perintah dasar Linux
§ Dapat menggunakan Vi sebagai Text Editor
§ Mengenal
jenis-jenis proses pada Linux
§ Mengenal
perintah atau utilitas Lanjut Linux
§ Mengatur struktur dan sistem Keamanan File &
Folder
§ Mengenal tipe-tipe shell dan dapat membuat
aplikasi sederhana menggunakan shell scripting
|
Pengenalan Linux
“Mengapa
Linux dilambangkan dengan Burung Pinguin ?”
Menurut cerita
Linus Torvalds, yaitu pencipta Linux pertama kali, pernah digigit oleh penguin
hingga demam panas. Dari kejadian tersebut ia melambangkan produk Linux-nya
dengan TuX, nama dari logo Linux yang berupa burung pinguin
tersebut.
APAKAH LINUX ITU?
Linux, sebuah kata yang semakin hari makin
populer di dunia komputer tetapi masih tetap asing di telinga orang awam. Untuk
lebih mudahnya dapat dikatakan bahwa:
§
Linux dapat menjadi pilihan dan alternatif
lain bagi yang menginginkan sistem operasi selain Windows.
§
Sistem operasi komputer adalah perangkat
lunak yang memungkinkan terjadinya komunikasi antara manusia dan komputer serta
memungkinkan aplikasi untuk berjalan di komputer. Linux, sering juga disebut
GNU/Linux merupakan sistem operasi yang mirip UNIX (=UNIX-clone) berisi
kernel Linux itu sendiri dan sekumpulan lengkap alat-alat dan program-program
lain yang kebanyakan di bawah naungan proyek GNU dari
§
Free Software Foundation atau
disingkat FSF. Tampilan grafis atau Graphical User Interface (GUI)
disediakan oleh XWindows System beserta kumpulan libraries dan alat-alatnya.
Sejarah Linux
Linux
dikembangkan oleh sejumlah pemrogram terbaik diseluruh dunia mencakup profesor, mahasiswa ilmu komputer,
administrator sistem komputer sampai perusahaan besar. Inti dari Linux itu
sendiri adalah KERNEL yang dikembangkan pada tahun 1991 oleh seorang mahasiswa
dari Universitas Helsinski Finlandia bernama Linus Torvalds. Pada
tahun 1991 itulah Linus mengumumkan tentang Linux di newsgroup.
Distribusi atau “Distro” Linux
Linux yang beredar di pasaran pada saat ini
sangat beragam. Tipe-tipe Linux yang
beragam tersebut dikenal dengan istilah “Distribution” atau “Distro”.
Secara umum, core dari semua sistem operasi Linux (Kernel) adalah
sama. Perbedaannya terletak pada environment sistem dan tools-tools
pembantu yang digunakan untuk mengkonfigurasi kernel dan struktur
filenya.
Beberapa
contoh Distro yang cukup terkenal antara lain :
§ RedHat
Linux
§ Mandrake
§ Debian
§
Suse
|
§ Caldera
Open Linux
§ Slackware
§ Linux
Router
§ Trustix
Merdeka (Linux
|
Distribusi Apa yang Paling Baik?
Tergantung kebutuhan dan situasi. Tidak ada
satu distribusi yang paling baik untuk semua orang. Beberapa distribusi
memiliki fokus tertentu, misalnya Linux Router untuk keperluan
router dan sejenisnya, Mandrake yang dioptimasi untuk prosesor
kelas Pentium, dan lain-lain. Perbedaan mendasar antara distribusi-distribusi tersebut adalah target
penggunaan, cara instalasi, program bawaan, dan tata letak files/directory.
Umumnya setelah selesai instalasi, perbedaan antar distribusi tersebut menjadi
tidak terlalu relevan. Linux itu sendiri adalah kernelnya saja, yang membuatnya
menjadi OS yang bisa digunakan adalah program-program pendukungnya.
Saran :
Untuk memilih distribusi yang tepat untuk Anda gunakan,
jika baru pertama kali menggunakan Linux: cari teman atau kenalan (atau user
group di daerah anda) yang menggunakan Linux, lalu gunakan distribusi yang
sama, ini untuk mempermudah jika anda menemui kesulitan bisa bertanya dengan
mudah.
|
Kelebihan Linux
§
Mempunyai banyak aplikasi dan dapat diperoleh
dengan harga murah bahkan dapat diduplikat dan masih tetap legal.
§ Linux
bersifat multitasking, artinya ia dapat menjalankan beberapa aplikasi
dalam waktu yang sama dan masing-masing aplikasi juga dapat melakukan beberapa
pekerjaan dalam waktu yang sama (multithreading).
§ Linux juga
bersifat multiuser, yang berarti lebih dari satu orang dapat menggunakan
Linux pada waktu yang bersamaan dan hal ini tentunya dilakukan dalam lingkungan
jaringan komputer.
§ Dengan hardware yang terbatas, Linux masih mampu
berjalan dengan baik.
§ Didesain dari awal sebagai sebuah sistem operasi yang stabil.
Oleh karena itu jarang sekali Linux mengalami kondisi crash dan apabila
itu terjadi maka penyebab utamanya adalah aplikasi yang berjalan di Linux atau
perangkat keras yang rusak.
Kekurangan Linux
§
Menggunakan Linux membutuhkan waktu, usaha
dan pikiran yang lebih dari sekedar menggunakan komputer. Tetapi hal tersebut
telah berubah dengan cepat karena sudah banyak usaha untuk mempermudah
penggunaan Linux seperti yang dikembangkan oleh KDE dengan tampilan ala
Windows-nya,GNOME yang memungkinkan tampilan GUI Linux yang indah dan dapat
diubah sesuai kehendak penggunanya.
§ Minimnya dukungan teknis yang baik serta terpercaya. Ini adalah citra masa lalu dan tetap menghantui
perkembangan Linux. Dengan semakin diterimanya Linux di kalangan pengembang
komputer maka semakin banyak pula perusahaan ataupun jasa-jasa dukungan teknis
untuk Linux.
Struktur File
Struktur inti dari sistem file pada
Linux dapat dilihat pada gambar berikut :
|
Bagi Anda yang telah “terbiasa”
dengan sistem operasi Windows untuk menyesuaikan diri dengan
aplikasi-aplikasi yang sering Anda gunakan di Sistem Operasi Linux, berikut ini
adalah tabel software Windows yang sama pada Linux :
Tabel-1: Daftar
Software Windows vs Linux:
Software
|
Windows
2000
|
Free
RedHat Linux
|
Office
|
Microsoft
Office 2000
|
§
StarOffice 6.0
§
OpenOffice
|
Word
Processor
|
Word
2000
|
§
StarWriter
§
AbiWord
|
Spreadsheet
|
Excel
2000
|
StarCalc
|
Presentation
|
PowerPoint
2000
|
StarImpress
|
Database
|
Access
2000
|
LAMP
intranet using PHP/MySQL
|
POP3
E-mail
|
Outlook
Express
|
Sylpheed
0.6.2-1
|
Browser
|
Internet
Explorer 5
|
§
Mozilla 0.9.4
§
Netscape Navigator
§
Konqueror (Kde)
|
FTP
|
WS_FTP
6
|
GFTP
2.0.7
|
Firewall
|
ZoneAlarm
Pro
|
Firestarter
0.7.1
|
PDF
Writer
|
Acrobat
Writer
|
StarWriter
|
CD-R
Recorder
|
Easy
CD Creator
|
Gtoaster
1.0Beta
|
Image
Viewer
|
ACDSee
3
|
GQView
0.8.1
|
Image
Editor
|
Fireworks
4
|
Gimp
1.2
|
PDF
Viewer
|
Acrobat
Reader
|
§
Acrobat Reader 4
§
xpdf 0.92
|
Archive
Utility
|
Winzip
8
|
Archiver
(ark 1.9)
|
MP3
Player
|
WinAmp
|
§
XMMS 1.2.4
§
Kde MultiMedia Player
|
Anti
Virus
|
Norton
Anti-Virus
|
Kaspersky Anti-Virus™
|
Programming
|
Visual
Basic
|
§
Jbuilder 6.0
§
Kylix
§ Python
|
Mengawali
Sesi Linux
Untuk mengawali sesi linux anda,
Anda harus memiliki account yang sudah didaftarkan oleh administrator(root)
server.
Nama Login umumnya dibatasi hingga 8
Karakter dan ditulis dengan huruf kecil.
Catatan:
Linux dan Unix merupakan sistem operasi yang
memperhatikan penulisan perintah pada Shell prompt secara case sensitive
(=artinya penulisan dengan huruf besar dan huruf kecil untuk kata yang sama,
memiliki makna yang berbeda).
|
Pada saat Anda mengetikkan password,
karakter yang Anda ketikkan tidak akan ditampilkan di layar.
Jika Nama Login dan Password sesuai dengan yang terdaftar di server, Anda
akan masuk ke dalam sistem dan akan
melihat tampilan sebagai berikut::
Home
Directory
Home Directory adalah direktori tempat menempatkan
semua file-file milik user bersangkutan. Direktori ini secara default
dibuat di bawah direktori “/home”. Pada saat user masuk ke
sistem, user akan langsung berada di “Home Directory” miliknya.
Catatan:
Bedakan definisi antara “Home
Directory” dengan “Directory Home”.
|
Password
Password
digunakan untuk menjaga akses user yang ingin masuk ke sistem.
Password dapat diubah
dengan syarat sebagai berikut:
§ Secara default, minimal 6 karakter
§ Password yang
diterima sistem adalah password yang mengandung huruf dan angka.
§ Sebaiknya
dipilih password yang susah ditebak oleh orang lain.
Tutorial-1: Merubah Password User
1.
Ketikkan perintah passwd:
[topiq@linux_server
topiq]$ passwd
Hasil:
2. Setelah menekan “Enter”, akan muncul perintah
seperti berikut ini:
3. Jika Anda telah mengikuti prosedur di atas dengan benar,
maka hasil yang akan ditampilkan adalah:
Passwd:
all authentication tokens updated succesfully
[topiq@Linux_server
topiq]$
Memeriksa
identitas User
Untuk
mengetahui informasi identitas user Anda dapat digunakan perintah id.
Tutorial-2: Informasi Identitas User
Ketik
Perintah:
[topiq@Linux_server
topiq]$id
Hasil:
Setiap
user memiliki satu Primary Group dan 15 Secondary Group.
Untuk mengetahui informasi identitas user lain
dapat digunakan:
Ketik
Perintah:
[topiq@Linux_server
topiq]$id yayat
Hasil:
Mengakhiri
sesi Linux
Untuk
mengakhiri sesi Linux Anda, dapat digunakan perintah :
[topiq@Linux_server
topiq]$exit
atau
Tekan Tombol “Ctrl + D” untuk mengakhiri sesi Linux Anda.
Info:
Jika Anda lupa password login, segera melapor ke
Administrator(root) Server Anda. Administrator
akan membuat password baru untuk Nama Login Anda.
|
Latihan
–1 :
1. Masuk ke sesi login Anda kemudian ganti password
Anda.
2. Mintalah Administrator untuk mengganti password
Anda, dan gunakan password baru tersebut untuk masuk ke sesi Linux Anda.
3.
Periksa user id, dan group id
Anda.
Linux Command Line
Pada
bagian ini, kita akan mempelajari perintah-perintah (command Line) yang
umum digunakan di Linux.
Format Standard Perintah pada Linux
:
[Shell
Prompt]$NamaPerintah [ option ] [ argumen ]
|
Contoh:
Peringatan:
§ Semua
Perintah Linux maupun UNIX, umumnya dituliskan dengan huruf kecil. Jika Anda salah menuliskan perintah, maka perintah akan
menghasilkan pesan error.
§ Untuk mengulangi perintah Linux sebelumnya pada Shell
prompt, gunakan Tanda panah ke atas.
|
Perintah-perintah dasar Linux antara
lain adalah :
Tutorial-3: Perintah pwd
Perintah pwd (print work directory) digunakan untuk
melihat posisi direktori dimana user
berada.
Ketik perintah:
[topiq@Linux_server
topiq]$pwd
Hasil
:
Tutorial-4: Perintah ls
Perintah ls (list) digunakan untuk melihat isi dari suatu direkori.
Ketik
perintah:
[topiq@Linux_server
topiq]$ls
Hasil
:
[topiq@Linux_server topiq]$ls
Tutorial-5:
Perintah ls dengan option all (-a)
Option
all digunakan untuk melihat semua file termasuk hidden file. Hidden file pada
Linux ditandai dengan Tanda Titik(.) di depan nama filenya (misal: .bashrc)
Ketik
perintah:
[topiq@Linux_server
topiq]$ls –a
Hasil
:
[topiq@Linux_server
topiq]$ls –a
Tutorial-6:
Perintah ls dengan dua option sekaligus (all dan long)
Option
long (-l) digunakan untuk melihat informasi file yang ada didalam
direktory secara lengkap.
Ketik perintah:
[topiq@Linux_server topiq]$ls –la
Hasil :
[topiq@Linux_server topiq]$ls –la
Tutorial-7:
Option Help
Option
Help (--help) digunakan untuk melihat semua option dari suatu
perintah. Untuk option Help diawali dengan tanda “double-dashed”(--).
Ketik
perintah:
[topiq@Linux_server
topiq]$ls –-help
Hasil
:
[topiq@Linux_server
topiq]$ls –-help
Tutorial-8: Perintah ls
dengan argumen NamaDirektori
Fungsi argumen adalah untuk membuat perintah lebih
spesifik. Pada perintah ls argumen yang digunakan adalah nama direktori yang
ingin dilihat isinya. Dalam satu perintah dapat dituliskan lebih dari satu
argumen.
Ketik perintah:
Hasil
:
[topiq@Linux_server
topiq]$ls –a /bin topiq
Tutorial-9:
Perintah who atau w
Perintah
who atau w digunakan untuk melihat siapa saja yang sedang aktif atau
login di server.
Ketik
perintah:
[topiq@Linux_server
topiq]$who
Hasil
:
Tutorial-10:
Perintah finger
§ Perintah finger hampir sama dengan who tetapi lebih
lengkap.
Ketik perintah:
[topiq@Linux_server topiq]$finger
Hasil
:
[topiq@Linux_server
topiq]$finger
§ Untuk melengkapi informasi user pada perintah
finger, gunakan perintah:
Ketik
perintah:
§ Untuk
melihat informasi seorang user (misal:topiq) secara spesifik, gunakan
perintah:
Ketik
perintah:
Sedangkan
untuk mengubah pesan “No Plan” dan “No
mail”, dapat dilakukan dengan membuat file “.plan” dan
“.forward” pada Home Directory user tersebut (misal: “topiq”
, untuk cara pembuatan file akan dibahas pada tutorial selanjutnya).
Tutorial-11: Mengirimkan Pesan pada user
lain
§ Untuk mengirimkan pesan pada user lain yang sedang
aktif dan terminal user tersebut tidak ditutup (Hasil Tutorial-9
pada bagian tty yang tidak bertanda *).
Format:
[Shell Prompt]$ write [
Nama_user_tujuan ] [ tty ]
|
§ Jika terdapat tanda * pada tty Anda untuk membuka
terminal Anda gunakan perintah:
Ketik
perintah:
[topiq@Linux_server
topiq]$mesg y
kemudian
gunakan perintah finger kembali untuk melihat apakah tanda * pada
tty telah hilang.
§
Sekarang coba Anda kirimkan pesan singkat kepada peserta lain yang sedang
login.
Ketik
perintah :
[topiq@Linux_server
topiq]$write yayat tty2
Catatan:
Jika user hanya login pada satu
terminal (tidak ada nama login yang sama pada terminal lain) cukup tuliskan
perintah write seperti berikut:
[topiq@Linux_server topiq]$write yayat
|
Lalu
tekan Enter, setelah muncul tampilan berikut dan posisi kursor berada di bawah Shell
Prompt, ketikkan Pesan Anda.
Langkah
1: [topiq@Linux_server
topiq]$write yayat
_
Langkah
2: [topiq@Linux_server
topiq]$write yayat
Hallo Yayat, Apa Kabar ? (Tekan “Enter” untuk Baris baru)
_
Langkah 3: Pesan tidak akan
dikirimkan sebelum Anda menekan Tombol “Ctrl + D” untuk mengakhiri dan
mengirim pesan.
Tutorial-12: Perintah cd
Perintah cd (current directory) digunakan untuk berpindah-pindah direktori.
Peritah cd selalu diiukuti dengan argumen nama direktory atau simbol yang
melabangkan suatu direktory tertentu. Simbol tersebut
secara default telah dikenal oleh Linux.
Tabel-2:
Daftar Simbol Perintah cd
Simbol
|
Keterangan
|
..
|
direktori yang berada satu level di atas direktori dimana Anda berada.
Contoh:
[topiq@Linux_server topiq]$cd ..
|
.
|
Direktori dimana
Anda berada (current directory).
|
~
atau
echo$Home
|
Home Directory user
yang sedang login
|
/
|
Root directory
(direktori yang paling atas/tertinggi)
|
Ketik
perintah:
[topiq@Linux_server topiq]$cd ..
Hasil
:
[topiq@Linux_server
/home]$pwd
/home
Tutorial-13: Perintah echo
Perintah echo digunakan untuk menampilkan teks ke layar.
Format:
[Shell Prompt]$ echo argumen
|
Nilai
argumen dapat berupa
§ Teks
:
Ketik
perintah:
[topiq@Linux_server
topiq]$echo test
Hasil
:
[topiq@Linux_server
topiq]$echo test
test
§ Variabel
:
Ketik
perintah:
A=12
[topiq@Linux_server topiq]$echo $A
Hasil :
[topiq@Linux_server topiq]$echo $A
12
Catatan:
Aturan penulisan variabel akan dibahas kembali pada
bagian “Shell Scripting”
Tutorial-14: Perintah man
Perintah man (manual) hampir mirip dengan
help. Perintah man lebih sering digunakan untuk manual perintah Linux
secara on-line.
Beberapa tipe penggunaan man antara lain :
a.
Perintah manual dari nama perintah
yang sudah pasti ada :
[topiq@Linux_server
/home]$ man copy
b. Perintah manual yang digunakan untuk mencari manual yang
mengandung kunci kata tertentu :
[topiq@Linux_server
/home]$man –k telnet
c.
Perintah manual yang menampilkan
manual perintah berdasarkan Bab atau section dari manual :
[topiq@Linux_server
/home]$man 8 swapon
Tabel-3 : Daftar Manual Perintah
berdasarkan Bab & Section
Bab
|
Isi
|
|
Bab
|
Isi
|
1
|
User commands
|
|
6
|
Games
|
2
|
Systems calls
|
|
7
|
Miscellaneous
|
3
|
Library calls
|
|
8
|
System commands
|
4
|
Devices
|
|
9
|
Kernel internals
|
5
|
File formats
|
|
0
|
Tcl/Tk commands
|
Ketik
perintah:
[topiq@Linux_server
topiq]$man cp
Hasil
:
[topiq@Linux_server
/home]$man cp
Untuk keluar
langsung dari perintah manual, tanpa harus melihat manual sampai akhir baris,
Tekan tombol “q”
Latihan-2
:
1. Tampilkan
(list) semua file yang terdapat di dalam direktori /bin, Home
Directory Anda, dan /etc secara bersamaan. Apa yang terjadi ?
2. Pindah ke direktori “/home”, periksa apakah Anda telah
berada di direktori “/home”. Jika Anda sudah berada di direktoi “/home” masuk
kembali ke Home directory Anda dengan menggunakan simbol pada Tabel-2.
3. Ulangi latihan No.2, namun gunakan nama Home directory
Anda dan diawali dengan simbol “..”
Petunjuk:
Misal Anda login sebagai user “topiq”,
masuk ke direktori topiq dari posisi Anda (direktori /home).
4. Lengkapi
informasi personal Anda melalui perintah “chfn”
5. Apakah
fungsi option –C pada perintah ls
?
6. Kirimkan
Pesan “Saya sudah belajar perintah dasar Linux” kepada peserta lain yang
sedang login.
Manipulasi Berkas
Perintah dasar untuk melakukan
manipulasi berkas antara lain:
Tutorial-15: Perintah cp
Perintah cp (copy) digunakan untuk
menyalin suatu file ke file lain atau beberapa file di salin ke satu folder
tertentu
Format:
[Shell Prompt]$cp [
option ] [ file_Asal ] [ file_Tujuan ]
[Shell Prompt]$cp [
option ] [ file1 ] [ file2 ] [ directory ]
|
Ketik
perintah:
Catatan:
Terdapat tiga cara penulisan nama file:
§ Full
Path Name : penulisan nama file lengkap mulai dari
direktory utama (/). Misal:
[topiq@Linux_server topiq]$cp /etc/passwd f1
file asal: passwd berada di direktori /etc.
file tujuan: f1 diletakkan di direktori topiq
§
Semi-Full Path Name :
penulisan nama file mulai dari current directory yang dilambangkan
dengan simbol “..”.
Misal:
[topiq@Linux_server
topiq]$cp ../folder1/f1 f2
file asal: f1 berada di direktori topiq /folder1.
file tujuan: f2 diletakkan di direktori topiq
§
Tanpa Full Path Name :penulisan
nama file hanya nama file tanpa direktory asal.
Misal:
[topiq@Linux_server
topiq]$cp f1 f2
file asal: f1 berada di direktori topiq
file tujuan: f2 diletakkan di direktori topiq
|
Lihat Hasil :
[topiq@Linux_server topiq]$ls -la
Tutorial-16:
Perintah mv
Perintah
mv (move) digunakan untuk merubah nama file atau memindahkan
file ke direktory lain.
Format:
Rubah Nama:
[Shell Prompt]$mv [ Nama_Lama ] [ Nama_Baru ]
Pindah File:
[Shell Prompt]$mv [
/dir_Asal/Nama_file ] [ /dir_tujuan ]
|
Ketik
perintah:
[topiq@Linux_server topiq]$mv f1 f2
Lihat Hasil :
[topiq@Linux_server topiq]$ls -la
Tutorial-17:
Perintah mkdir
Perintah
mkdir (make dir) digunakan untuk membuat direktory atau
sub-direktory.
Format:
Direktori:
[Shell Prompt]$mkdir [ dir1 ] [ dir2 ] [ dirN ]
Sub-Directory:
[Shell Prompt]$mkdir
[dir1] [dir1/sub-1] [dir1/sub-1/sub-sub1]
|
Catatan:
Untuk membuat sub-directory, terlebih
dahulu harus dibuat directory atasnya.
|
Ketik perintah:
[topiq@Linux_server topiq]$mkdir folder1
Lihat Hasil :
[topiq@Linux_server topiq]$ls -la
Tutorial-18:
Perintah rm
Perintah
rm (remove) digunakan untuk menghapus file atau folder.
Format:
[Shell Prompt]$rm
[option] [file1 atau dir1] [file2 atau dir2]
|
Catatan:
Untuk
mengeluarkan konfirmasi sebelum benar-benar dihapus, gunakan option –i (interactive).
|
Ketik perintah:
[topiq@Linux_server topiq]$rm –i f1
Lihat Hasil :
[topiq@Linux_server topiq]$ls -la
Tutorial-19: Perintah rmdir
Perintah rmdir (remove dir) digunakan
untuk menghapus folder. Perintah rmdir baru dapat digunakan jika folder
yang akan dihapus kosong.
Format:
[Shell Prompt]$rmdir
[option] [dir1] [dir2]
|
Menghapus
suatu direktori yang memiliki sub-direktori, terlebih dahulu harus dihapus
sub-direktori-nya, baru kemudian direktori utamanya.
Misal:
[topiq@Linux_server
topiq]$rmdir folder1/sub-folder2 folder1
|
Ketik perintah:
[topiq@Linux_server topiq]$rmdir folder1
Lihat Hasil :
[topiq@Linux_server topiq]$ls –la
info:
Jika Anda ingin
menghapus suatu direktori yang berisikan banyak file, tanpa harus menghapus
terlebih dahulu isi direktori-nya, Anda dapa menggunakan perintah rm
diikuti dengan option –R (Recursive) dan –f (force)
Misal:
[topiq@Linux_server topiq]$rm -Rf folder1
|
Tutorial-20:
Perintah grep
Perintah
grep digunakan untuk mencari kata atau suku kata tertentu dalam satu atau
beberapa file
Format:
[Shell Prompt]$grep kata_dicari
Nama_File
|
Catatan:
Untuk membuat sub-directory, terlebih
dahulu harus dibuat directory atasnya.
|
Ketik
perintah:
[topiq@Linux_server
topiq]$grep root /etc/passwd
Hasil
:
[topiq@Linux_server
topiq]$grep root /etc/passwd
root:x:0:3:Superuser:/root:/bin/csh
Ketik
perintah:
[topiq@Linux_server
topiq]$grep bash /etc/passwd
Hasil
:
[topiq@Linux_server topiq]$grep “:0:” /etc/passwd
topiq:x:500:3:Muhamad
Taufiq:topiq:/bin/bash
yayat:x:501:3:Yayat
Supriyatna:/home/yayat:/bin/bash
Tutorial-21:
Perintah cat dan more
Perintah
cat dan more digunakan untuk melihat isi suatu file . Perintah cat
akan menampilkan isi file dari baris pertama hingga baris terakhir. Perintah more
akan menampilkan isi file per layar.
Format:
[Shell Prompt]$cat nama_file1 nama_file2
[Shell Prompt]$more nama_file1 nama_file2
|
Ketik
perintah:
[topiq@Linux_server
topiq]$cat /etc/passwd
Hasil
:
[topiq@Linux_server topiq]$ cat /etc/passwd
Ketik
perintah:
[topiq@Linux_server
topiq]$more /etc/passwd
Hasil
:
[topiq@Linux_server topiq]$more /etc/passwd
Tutorial-22:
Perintah touch
Perintah
touch digunakan untuk membuat suatu file baru melalui command line di shell
prompt.
Format:
[Shell Prompt]$touch nama_file
|
Ketik
perintah:
[topiq@Linux_server
topiq]$touch f3
Lihat Hasil :
[topiq@Linux_server topiq]$ls -la
Latihan-3
:
1. Buat direktori dengan struktur seperti berikut dengan hanya
menggunakan satu perintah “mkdir” saja.
Periksa
Hasil perintah tersebut.
2. Hapus direktori folder2 dengan perintah “rmdir”.
Apa yang terjadi?
Kemudian gunakan perintah “rm –Rf nama_folder”.
3. Periksa apakah Nama Anda sudah terdaftar di file
/etc/passwd. File /etc/Passwd merupakan Database nama user yang ada di
server. File ini akan dibahas pada Modul: Linux System Administrator.
4. Salinlah file /etc/passwd dan /etc/grp ke
dalam direktori folder1
.
Text Editor dengan Vi (Vi Editor)
§ Vi
Editor
§ Pico
§ Emacs
§ Midnight Commander (MC) Editor
Pada
modul ini lebih ditekankan pada penggunan Vi Editor.
Alasannya :
Vi
Editor merupakan Text Editor yang umum digunakan pada setiap sistem operasi
Linux maupun Unix.
Mekanisme Kerja dari Vi adalah:
Perintah
ex merupakan perintah pada Vi Editor,
yang diawalin dengan Tanda “ : “.
Berikut ini Tombol yang digunakan
untuk melakukan editing pada Vi (command Mode à Editing
Mode) :
Tabel-4: Perintah Command
Mode pada Vi Editor
Instruksi Huruf yang digunakan
|
Kegunaannya
|
i
|
Memulai
pengetikan pada posisi cursor
|
I
|
Memulai
pengetikan pada awal baris kalimat
|
Tabel-4: Perintah Command Mode pada Vi Editor
Instruksi Huruf yang digunakan
|
Kegunaannya
|
a
|
Memulai pengetikan setelah posisi cursor
|
A
|
Memulai
pengetikan pada akhir baris kalimat
|
o
|
Memulai pengetikan pada baris baru di bawah
posisi cursor
|
O
|
Memulai pengetikan pada baris baru di atas
posisi cursor
|
x
|
Menghapus satu
karakter pada posisi kursor
|
X
|
Menghapus satu
karakter sebelum posisi kursor
|
dw
|
Menghapus satu kata, mulai dari posisi
cursor hingga spasi pertama yang ditemui.
|
dd
|
Menghapus satu
baris kalimat pada posisi kursor
|
D
|
Menghapus kalimat mulai dari posisi cursor hingga akhir baris kalimat.
|
u
|
Membatalkan
instruksi terakhir yang dilakukan
|
.
|
Mengulang perintah terakhir
|
r
|
Mengganti hanya
satu karakter pada posisi kursor
|
R
|
Menganti
beberapa karakter mulai dari posisi kursor sampai ditekan tombol “Esc”
|
nyy
|
Mengcopy n
baris kalimat pada posisi cursor, dengan n jumlah baris.
|
Y
|
Mengcopy satu baris kalimat pada posisi
cursor
|
p
|
Menampilkan
hasil copy dari instruksi “yy” atau “dd” diatas pada posisi
cursor
|
Tabel-5:
Perintah Ex ( : )
Instruksi Huruf yang digunakan
|
Kegunaannya
|
:w
|
Menyimpan File
|
:w nama_file
|
Menyimpan file dengan nama lain
|
:q
|
Keluar
|
:q!
|
Keluar tanpa disimpan (force quit)
|
:x
|
Disimpan dan keluar
|
:e nama_file
|
Membuat file baru
|
Tutorial-23: Membuat file Baru
dengan vi
Untuk membuat file baru atau melakukan editing file dalam
Vi Editor gunakan perintah dengan format berikut:
Format:
Membuat File
Baru:
[Shell Prompt]$vi nama_file_baru
Editing File:
[Shell Prompt]$vi nama_file
|
Catatan:
Nama file dapat terdiri atas 255 karakter (alfanumerik,
garis bawah, titik, koma dan karakter lainnya) kecuali karakter dibawah ini
tidak dapat dijadikan nama file :
& : | ? ‘ “ ` [ ] ( ) $ { } < > ^ # \ /
Ketik perintah:
[topiq@Linux_server topiq]$vi belajar-1
Hasil
:
Buatlah Kata “Tulisan Pertama Saya di
Program Vi”
Langkah 1:
|
Pada Tampilan di
atas Tekan Tombol “i” kecil pada Keyboard untuk masuk ke Editing Mode.
|
Langkah 2:
|
Kemudian Ketikkan kata-kata tersebut.
|
Langkah 3:
|
Setelah selesai
Pengetikkan, Tekan Tombol “ESC” untuk kembali ke Command Mode.
|
Langkah 4a:
|
Untuk Menyimpan
file, ketikkan :
:w
|
Langkah 4b:
|
Untuk Menyimpan file dan langsung keluar Vi Editor, ketikkan :
:wq
atau
Tekan Tombol “ZZ” dengan huruf besar
|
Tutorial-24: Manipulasi/Editing File
dengan Vi Editor
Untuk melakukan editing file dalam Vi Editor, dapat
digunakan perintah-perintah command mode (Tabel-4) atau perintah ex.
Buka kembali file “belajar-1” dengan Vi Editor.
Menyalin Baris:
Untuk menyalin satu baris kalimat pada file dapat
dilakukan dengan menekan tombol “yy”.
Langkahnya:
§
Pada Command Mode, Letakkan Kursor di baris yang akan disalin.
§ Tekan
Tombol “yy”
§ Letakkan
posisi kursor pada baris dimana hasil salinan akan ditampilkan
§
Tekan Tombol “p” untuk menampilkan hasil salinan.
Untuk menyalin lebih dari satu baris kalimat pada file
dapat dilakukan dengan menekan tombol “nyy”. Dengan
n merupakan jumlah baris yang akan disalin.
Langkahnya:
§
Pada Command Mode, Letakkan Kursor di posisi baris pertama dari sekelompok
baris yang akan disalin.
§
Misal Anda akan menyalin dua baris kalimat dari posisi kursor ke bawah,
Tekan Tombol “2yy”
§ Letakkan
posisi kursor pada baris dimana hasil salinan akan ditampilkan
§
Tekan Tombol “p” untuk menampilkan hasil salinan.
Catatan:
Perintah “p”
dapat dijalankan berulang-ulang, dengan catatan bahwa antara perintah “yy”
dan “p” tidak diselingi dengan perintah lain.
|
Menghapus atau memotong Baris dan kata:
Untuk menghapus/memotong satu baris kalimat pada file
dapat dilakukan dengan menekan tombol “dd”.
Langkahnya:
§
Pada Command Mode, Letakkan Kursor di baris yang akan dihapus.
§ Tekan
Tombol “dd”
Sedangkan untuk menghapus/memotong satu kata pada kalimat
dapat dilakukan dengan perintah “dw”.
Langkahnya:
§
Pada Command Mode, Letakkan Kursor di posisi karakter dimana kata akan
dihapus. Perintah “dw” akan menghapus dari posisi kursor hingga spasi
pertama yang dijumpai.
§ Tekan
Tombol “dw”
Catatan:
Setelah dihapus/dipotong kata atau kalimat dapat
ditampilkan kembali dengan perintah “p”
|
Tutorial-25: Mencari suatu kata
Untuk mencari suatu kata dalam suatu file dengan Vi
Editor dapat digunakan perintah “/” atau
“?”
Tutorial-26:
Menampilkan nomor baris
Unutk
mengetahui no baris dari suatu kalimat dalam file, dapat digunakan perintah ex
“:set number”, untuk menghilangkannya kembali ketik perintah “:set
nonumber”.
Catatan:
Untuk
melihat argumen lain dari perintah ex “:set”, gunakan perintah ex “:set
all”
|
Latihan-4
:
1. Buatlah
Kalimat berikut :
Selamat
Datang di Pasundan Training
Pasundan
Training merupakan Cisco
Systems Networking
Academy .
Pelatihan yang ditawarkan oleh Pasundan Training antara
lain adalah:
Basic
Training, Advanced Training dan High-End Training.
Simpanlah file dengan nama “belajar-2”
2. Ubahlah Kata “Datang” dengan Kata “Belajar”
3. Hapus
Kata “Basic Training,”.
4. Cari
Kata “ High-End”
Struktur File dan Keamanan Sistem File
Struktur File
Direktori
standard pada Linux setelah proses instalasi, sistem akan menciptakan suatu
struktur file yang baku dengan Struktur inti dari file dan direktori adalah
§ /etc
Berisi file-file
administratif, seperti file-file konfigurasi (*.conf),
file-file eksekusi atau script yang berguna untuk administrasi sistem.
§ /dev
Berisi file-file khusus yang
merepresentasikan Hardware di sistem Linux, seperti floppy(fd0), CD-rom(cdrom), mouse(mouse),
serial port(ttyS0 & ttyS1) dan peralatan lainnya.
Info:
Linux dan Unix
merupakan sistem operasi yang dibangun dalam bentuk file-file, hingga
peralatan pun direpresentasikan dalam bentuk file.
|
§ /bin
Berisi program standard Linux. Perintah-perintah
dasar Linux yang digunakan semua user diletakkan ke dalam direktori ini.
§ /sbin
Berisi program standard bagi administrator Linux.
Perintah-perintah dasar Linux yang digunakan hanya oleh administrator
diletakkan pada direktori ini.
§ /usr
Berisi program-program aplikasi Linux. Semua
program aplikasi pada Linux, seperti: X-Windows, Software-software, dan program
aplikasi lainnya, diletakkan pada direktori ini. (Sama seperti direktori
Program Files pada sistem Microsoft Windows)
§ /home
Berisi Home Direktory semua
user yang ada di sistem operasi Linux, kecuali user administrator (root). Home
Directory root diletakkan pada direktori
/root.
§ /tmp
Berisi file-file sementara,
dimana pada saat proses boot, file-file pada direktori ini akan dihapus.
§ /boot
Berisi file-file yang sangat
penting untuk proses boot, kernel vmlinuz
(file utama dalam proses booting Linux) disimpan di dalam direktori ini
§ /var
Direktori Variabel, artinya tempat penyimpanan LOG
(catatan hasil output program). Semua proses dalam sistem operasi Linux akan
dicatat dala file-file LOG di dalam direktori ini. Jika direktori ini penuh,
sistem akam berhenti berjalan (hang) karena sistem tidak dapat melakukan proses
pencatatan lagi. Oleh karena itu direktori ini penting sekali untuk
dimonitor.
§ /proc
Berisi informasi tentang kernel Linux , proses dan
virtual sistem file.
§ /mnt
direktori untuk melakukan mounting file. Mounting dilakukan untuk mengaktifkan suatu
peralatan penyimpanan (block device) agar dapat dibaca oleh Sistem seperti
floppy, cdrom, ataupun harddisk.
Tipe File
Tipe-tipe
file yang ada di dalam sistem operasi Linux antara lain:
§
File Biasa (-)
§
Direktori(d)
§
Block device(b)
File yang merepresentasikan peralatan Hardware
yang menggunakan transmisi data per block, seperti Hardisk, floppy,
CD-Rom dan Lain-lain.
§
Character devce( c)
File yang merepresentasikan
peralatan Hardware yang menggunakan transmisi data per character,
seperti terminal, modem dan lain-lain.
§
Named pipe (p)
File yang digunakan untuk komunikasi proses.
§
Symbolic Link(l)
File yang menjadi link atau
shortcuts bagi file lain.
§
Socket(s)
File yang digunakan untuk komunikasi data.
Ijin Akses
Sistem
operasi Linux merupakan sistemoperasi multiuser, dimana masing-masing user
mempunyai password tersendiri untuk dapat masuk ke sistem. Oleh karena itu,
setiap user mempunyai ijin akses tersendiri dalam mengakses file dan folder di
dalam sistem operasi Linux yang disebut dengan ijin akses.
Ijin
Akses dibagi dalam 3 bagian yaitu antara lain adalah:
§ Pemilik (owner)
§ Kelompok (Group)
§ Lainnya (Others)
Setiap peran dapat melakukan 3
bentuk operasi:
Untuk
File:
R
|
(Read)
|
=
|
Ijin
untuk membaca
|
W
|
(Write)
|
=
|
Ijin
untuk menulis
|
X
|
(Execute)
|
=
|
Ijin
untuk menjalankan Program
|
Untuk
Direktori:
R
|
(Read)
|
=
|
Ijin untuk membaca daftar file
dalam direktori
|
W
|
(Write)
|
=
|
Ijin untuk mengubah/membuat file
di direktori
|
X
|
(Execute)
|
=
|
Ijin untuk masuk ke direktori (cd)
|
Tutorial-27: Mengubah ijin akses
dengan perintah chmod
Pemilik file dan administrator(root) dapat mengubah ijin
akses sebagai berikut:
Format:
[shell prompt] $chmod
[ugoa] [= + -] [rwx] File(s)
[shell prompt] $chmod
[ugoa] [= + -] [rwx] Dir(s)
|
Keterangan :
u = user (akses untuk pemilik file)
g
= group (akses untuk anggota group)
o
= others (akses untuk user di luar group dan pemilik)
a
= all (user, group, dan others)
Ketik perintah:
[topiq@Linux_server topiq]$ls -l
Hasil
:
ijin
akses file “belajar-2” diubah menjadi “-rwxrwxrwx”:
Ketik
perintah:
[topiq@Linux_server
topiq]$chmod a=rwx belajar-2
Lihat
Hasil :
[topiq@Linux_server
topiq]$ls –l belajar-2
ijin
akses file “belajar-2” diubah kembali menjadi “-rwxr-xr-x”:
Ketik
perintah:
[topiq@Linux_server
topiq]$chmod g=rx,o=rx belajar-2
Lihat
Hasil :
[topiq@Linux_server
topiq]$ls –l belajar-2
Tutorial-28: chmod dengan
Format Oktal
Selain menggunakan karakter, perintah chmod juga dapat
menggunakan format oktal:
Format:
[shell prompt] $chmod [XYZ]
File(s)
[shell prompt] $chmod
[XYZ] Dir(s)
|
Keterangan :
X = karakter numerik yang mewakili ijin akses user
Y = karakter numerik yang mewakili ijin akses group
Z = karakter numerik yang mewakili ijin akses Other
Untuk
ijin akses bagian ijin akses (misal: user = rwx)
Ijin
Akses
|
r
|
w
|
x
|
|
Binary
|
1
|
1
|
1
|
111
|
Decimal
|
4
|
2
|
1
|
7
|
ijin
akses file “belajar-2” diubah menjadi “-rwxrwxrwx”:
Ketik perintah:
[topiq@Linux_server topiq]$chmod 777 belajar-2
Lihat
Hasil :
[topiq@Linux_server
topiq]$ls –l belajar-2
ijin
akses file “belajar-2” diubah kembali menjadi “-rwxr-xr-x”:
Ketik perintah:
[topiq@Linux_server topiq]$chmod 755 belajar-2
Lihat
Hasil :
[topiq@Linux_server
topiq]$ls –l belajar-2
Tutorial-29:
Mengubah kepemilikan dengan chown
Suatu
file dapat diubah kepemilikannya oleh pemilik file itu sendiri ataupun
administrator(root). File yang diberikan kepada user lain tidak dapat diakses
user lain tersebut jika ijin aksesnya tidak diberikan ke user tersebut.
Format:
[shell prompt] $chown pemilik_baru
File(s)
[shell prompt] $chown pemilik_baru
Dir(s)
|
Kepemilikan
file “belajar-2” diberikan kepada user lain (misal: “yayat”)
Ketik
perintah:
[topiq@Linux_server
topiq]$chown yayat belajar-2
Lihat
Hasil :
[topiq@Linux_server
topiq]$ls –l belajar-2
Karena
file “belajar-2” masih di Home directory Anda, user “yayat” tidak dapat
mengakses file tersebut. Salinlah file tersebut ke direktori yang dapat diakses oleh semua user. Misalnya
: direktori /(root)
Tutorial-30: Mengubah akses group
dengan chgrp
Suatu file dapat diubah akses group oleh pemilik file itu
sendiri ataupun administrator (root).
Format:
[shell prompt] $chgrp group_baru
File(s)
[shell prompt] $chgrp group_baru
Dir(s)
|
Akses
group “belajar-2” diberikan kepada group lain (misal: “root”)
Ketik
perintah:
[topiq@Linux_server
topiq]$chgrp root belajar-2
Lihat
Hasil :
[topiq@Linux_server
topiq]$ls –l belajar-2
Karena
file “belajar-2” masih di Home directory Anda, group “yayat” tidak dapat
mengakses file tersebut. Salinlah file tersebut ke direktori yang dapat diakses
oleh semua group. Misalnya : direktori /(root)
User Mask (umask)
Pada
saat Anda membuat suatu file atau folder, secara default ijin akses yang
diberikan tergantung dari nilai umask. Umask secara default oleh sistem
Linux adalah:
Ketik
perintah:
[topiq@Linux_server
topiq]$umask
Hasil:
[topiq@Linux_server
topiq]$umask
Artinya:
Tipe
file menjelaskan konfigurasi format ijin akses, jika nilainya 0 maka format
ijin akses dapat digunakan dalam format octal dan huruf.
Ijin akses default setiap file dan
folder yang baru berdasarkan nilai umask tersebut adalah:
Untuk
File:
Ijin
Akses maksimum File
|
666
|
|
|
Nilai
umask
|
002
|
|
|
Ijin
Akses Default
|
644
|
à
|
rw-r--r--
|
Untuk
Direktori:
Ijin
Akses maksimum File
|
777
|
|
|
Nilai
umask
|
002
|
|
|
Ijin
Akses Default
|
755
|
à
|
rwxr-xr-x
|
Tutorial-31:
Mengubah umask
Jika
umask diubah dari shell prompt jika user logout, nilai umask akan kembali lagi
ke default awal.
Format:
Melihat nilai
umask:
[shell prompt] $umask
Mengubah
Konfigurasi umask:
[shell prompt] $umask kode_umask
|
Ketik perintah:
[topiq@Linux_server topiq]$umask 027
Coba
Hasil :
[topiq@Linux_server
topiq]$touch coba_umask
Liha
Hasil :
[topiq@Linux_server
topiq]$ls –l coba_umask
Link
Link adalah sebuah teknik untuk memberikan
lebih dari satu nama file dengan data yang sama.
Tujuan
adalah :
meletakkan shortcuts suatu file yang berada di direktori yang memiliki
akses terbatas ke direktori yang dapat
diakses oleh semua orang.
Tipe
file Link :
§ Link
Biasa
Link biasa merupakan link suatu file ke file lain
dengan nama yang berbeda. Tetapi secara fisik di Hardisk, kedua file tersebut
disimpan di dalam penyimpanan block yang sama.
§ Link
Symbolic
Link Symbolic merupakan link suatu
file ke file lain dengan nama yang berbeda. File link tujuan merupakan
shortcuts dari file asal. (File Asal dan File tujuan merupakan dua file yang
berbeda). Link symbolic terjadi jika lokasi file tujuan berbeda
partisi secara fisik dengan lokasi file Asal.
Format:
Link Biasa:
[shell prompt] $ln file_asal
file_tujuan
Link Symbolic:
[shell prompt] $ln –s /direktori/file_asal
/direktori/file_tujuan
|
Catatan:
Untuk file Link Symbolic penulisan nama file harus dituliskan secara FULL
PATH, lengkap dengan nama direktori.
Misal
: Penulisan Full Path untuk file “test-1” pada struktur di bawah adalah:
FULL PATH:
/home/topiq/test-1
|
Tutorial-32:
Membuat Link Biasa
Buat
file asal:
[topiq@Linux_server topiq]$vi fasal-1
Isi file:
coba link
Ketik perintah:
[topiq@Linux_server topiq]$ln fasal-1 ftujuan-1
Liha Hasil :
[topiq@Linux_server topiq]$ls – i
Artinya:
Option – i pada perintaha ls
artinya menampilkan isi file pada direktori dimana user berada berikut
informasi inode. Inode adalah Alamat block penyimpanan
file di Hardisk.
Perhatikan nomor inode fasal-1 dan ftujuan-1!
Jika nomor inode sama berarti secara fisik file disimpan
ditempat yang sama atau file mempunyai dua nama. Jika salah satu file dihapus,
fisik file diblock tidak akan terhapus
Tutorial-33:
Membuat Link Symbolic
Buat
file asal:
[topiq@Linux_server topiq]$vi fasal-2
Isi
file:
coba
link symbolic
Ketik
perintah:
[topiq@Linux_server
topiq]$ln –s /home/topiq/fasal-2 /tmp/ftujuan-2
Lihat
Hasil :
[topiq@Linux_server
topiq]$ls – i /home/topiq/fasal-2
[topiq@Linux_server topiq]$ls – i /tmp/ftujuan-2
Artinya:
Perhatikan nomor inode fasal-2 dan ftujuan-2!
Jika nomor inode berbeda berarti secara fisik file
disimpan ditempat yang berbeda atau file ftujuan-2 merupakan shortcuts
bagi fasal-2. Jika file “fasal-2” dihapus,
maka link akan terputus (break).
File-file Shell
Shell
adalah “Command Executive”, artinya program yang menunggu
instruksi dari pemakai, memeriksa sintaks dari instruksi yang diberikan,
kemudian mengeksekusi perintah tersebut.
Tipe-tipe
Shell yang terdapat di dalam sistem Linux antara lain adalah:
§
/bin/sh : Bourne Shell, shell yang
dikembangkan oleh UNIX versi AT&T
(System-V).
§
/bin/csh : C-Shell, shell yang
dikembangkan oleh UNIX versi BSD( Berkeley Software Distribution).
§
/bin/bash : Bourne Again-Shell, shell
yang dikembangkan oleh Linux.
Perbedaan
antara ketiga shell tersebut adalah Environment . Masing-masing shell mempunyai
gaya tersendiri
dalam tools pembantu.
Contoh :
Pada
shell Bash, terdapat tools yang digunakan untuk memanggil perintah-perintah
sebelumnya, yaitu dengan cara menekan tanda panah ke atas.
Secara default, user akan masuk
shell bash. Untuk berganti-ganti Shell dapat dijalankan dengan cara mengetikan
nama shell-nya.
[topiq@Linux_server
topiq]$csh
Untuk kembali lagi ke shell bash:
[topiq@Linux_server
~topiq]$exit
File-file utama user yang terletak pada
Home Directory user, akan dijalankan pada saat user memulai sesi login dan
mengakhiri sesi login di Shell bash antara lain :
§ .bash_login : file utama yang akan dieksekusi oleh sistem pada
saat user login. Jika file ini tidak ditemukan sistem akan mencari file .bash_profile.
§ .bash_profile : file utama yang memiliki fungsi sama seperti .bash_login.
Info:
Umumnya pada Sistem Linux hanya
dicantumkan salah satu dari file tersebut tergantung dari tipe distro-nya.
§ .bashrc : file utama yang akan dieksekusi oleh sistem pada
saat user berpindah shell. Semua konfigurasi untuk user pada saat akan masuk
shell dijalankan terlebih dahulu. Jika Anda ingin menjalankan suatu aplikasi
pada saat Login, masukkan nama program pada file ini.
§ .bash_logout : file utama yang memiliki yang akan dijalankan
pada saat user Logout.
§ .bash_history : file utama yang menyimpan perintah-perintah
yang pernah dijalankan oleh user mulai dari saat pertama kali user menggunakan
Accountnya di server. Maksimum perintah yang disimpan dalam file ini
tergantunfg dari konfigurasi HISTSIZE pada file .bash_rc. Untuk
mengetahui ukuran history Anda, gunakan perintah:
[topiq@Linux_server topiq]$echo $HISTSIZE
Untuk melihat daftar history Anda, gunakan perintah:
[topiq@Linux_server
topiq]$history
Alur file yang dieksekusi pada Sesi Login
Apa
yang terjadi Jika semua file-file shell pada Home Directory di atas TERHAPUS?
Sistem
akan menjalankan konfigurasi umum bagi semua user yang terdapat pada file
/etc/profile dan /etc/bashrc. Kedua file ini merupakan konfigurasi file-file
shell yang umum digunakan untuk semua user dan akan dieksekusi paling awal pada
saay user memulai sesi Loginnya.
Alur eksekusi file pada sesi login adalah:
Jika
terdapat konfigurasi yang sama dengan nilai yang berbeda, nilai yang akan
digunakan adalah nilai konfigurasi yang dieksekusi paling akhir.
Misal:
Pada
file “/etc/bashrc” terdapat script yang menyatakan nilai umask untuk ses login
user adalah 002
Tetapi
pada file “.bashrc” pada Home Directory nilai umask adalah 027. Maka Nialai
yang akan diambil adalah nilai terakhir (027).
Proses dan Jobs
Proses I/O
Perintah-perintah yang dijalankan di Linux
melalui Shell prompt disebut sebagai suatu eksekusi program yang disebut dengan
Proses. Setiap proses di suatu sistem operasi, membutuhkan input untuk
menghasilkan Output.
Status
dari proses selalu dtandai dengan identitas khusus yang disebut dengan “Process
ID” (PID). Sistem operasi Linux berasal dari banyak sekali
proses, dimana setiap proses terkait satu dengan yang lainnya. Proses di Linux
diawali dengan PID = 1 (init
atau initialization Process). Dari proses PID=1 akan dihasilkan
anak proses yang lain, yaitu PID=2, PID=3 dan lain-lain. PID
tersebut akan menghasilkan anak proses lagi dan seterusnya. PID=1
sebagai induk proses dari PID=2 dan PID yang lain akan disebut sebagai PPID
(Parent PID)
Dalam sistem Operasi Linux, ada beberapa tipe input dan
Output:
Kode 0, 1,
dan 2 merupakan file descriptor
yang merepresentasikan :
0 =
|
Keyboard,
merupakan standard input sistem selain file.
|
1 =
|
Layar,
merupakan standard output dari proses yang bernilai exit benar selain file
|
2 =
|
Error
merupakan output dari hasi proses yang status exitnya adalah salah, selain
file
|
Tutorial-34:
Proses dengan input dari sistem
Ketik perintah:
[topiq@Linux_server topiq]$ps
Hasil
:
Tutorial-35:
Proses dengan input dari keyboard dan file
Umumnya
perintah-perintah di Linux memerlukan input dari keyboard dan file,seperti
perintah cp, mv, rm dan lain-lain. Salah satu ciri khas dari perintah dengan
input dari keyboard dan file, pada saat diketikkan perintah tanpa argumen sama
sekali, akan muncul pesan error.
Contoh:
Proses
dengan input dari keyboard:
Proses dengan input dari file:
Tutorial-36:
Proses dengan Output ke File (Redirection)
Selain
output ke layar, output Standard (Layar) dan output Error dapat dibelokkan (redirection)
ke suatu file.
Ketik
perintah:
Lihat
Hasil:
[topiq@Linux_server
topiq]$cat file3
“/etc/passwd” merupakan input dari proses “cat” dan
output-nya dimasukkan ke dalam file baru “f3”.
Tabel-6: Simbol untuk proses pembelokan (redirection):
Simbol
|
Info
Aksi
|
<0 atau <
|
Memasukkan file
input ke file output.
Contoh : $
cat file_output < file_input
|
1> atau >
|
Masukkan file
input ke file output. Jika file sudah ada maka isi dari file output akan di ganti dengan isi
dari file input.
Contoh: $
cat file_input > file_output
|
2>
|
Semua output
error yang dihasilkan dari proses sebelumnya akan dimasukkan ke dalam file
Contoh: $
ls /root 2> file_output
|
1>> atau
>>
|
Masukkan file
input ke file output. Jika file sudah ada maka isi dari file input akan
ditambahkan di baris terakhir dari file output
|
2>>
|
Semua output
error yang dihasilkan dari proses sebelumnya akan dimasukkan/ditambahkan ke
dalam file
|
Jika Anda ingin membelokkan Output dan Error dalam satu
command line. Dapat dilakukan dengan perintah berikut:
[topiq@Linux_server
topiq]$ls /root > hasil.txt 2>
error.txt
Untuk perintah yang lebih singkat :
[topiq@Linux_server
topiq]$ls /root 2>hasil.txt >&2
Artinya:
Output
Error dan Output Standard dimasukkan ke file
“hasil.txt” .
Piping
Perintah piping digunakan untuk melakukan filtering
perintah yang dijalankan.
Tutorial-37: Perintah Piping
Perintah piping bisa dilakukan, jika proses-2(perintah-2)
input-nya bukan dari sistem. Untuk Proses-2 dan proses-3 input-nya
harus dari keyboard atau file.
Ketik
perintah :
[topiq@Linux_server
topiq]$cat /etc/passwd|more
Untuk menampilkan hasil berikutnya :
§ Per
Layar : Tekan “Spasi”
§ Per
Baris: Tekan “Enter”
Manipulasi
Proses di Linux
Beberapa
tipe proses di Linux :
§
Foreground
Process
Proses yang berjalan di Shell
Prompt user yang sedang login.
§
Background
Process
Proses yang tidak berjalan di shell
prompt namun tetap berjalan di terminal user yang sedang login, tetapi
proses akan berhenti jika user keluar atau logout.
§
Daemon
Process
Proses yang menunggu permintaan
(request) dari proses lainnya dan menjalankan tugas sesuai dengan permintaan
tersebut. Bila tidak ada request maka program akan berada dalam
kondisi “stand-by”. Umumnya proses daemon di Linux berakhiran huruf “d”,
misal xinetd, httpd, named dan lain-lain.
Tutorial-38: Melihat Status Proses
Untuk melihat proses, dapat digunakan perintah ps
(process status). Kegunaan mengetahui status proses adalah user dapat
mengetahui dan mengatur proses yang sedang dijalankan. Informasi status proses
ini sangat berguna jika Anda menjadi seorang Administrator atau root nantinya.
Ketik perintah :
[topiq@Linux_server topiq]$ps
Hasilnya
:
Untuk
melihat status proses secara lengkap.
Ketik
perintah :
[topiq@Linux_server
topiq]$ps –Af|more
Hasilnya
:
[topiq@Linux_server
topiq]$ps –Af|more
Tanda “?” pada kolom TTY memiliki arti bahwa proses tidak
berjalan di Shell Prompt.
Tutorial-39: Background Process
Background process bertujuan untuk menjalankan proses
tidak di shell prompt, sehingga selam proses berlangsung, user dapat bekerja di
shell prompt. Biasanya ini dilakukan untuk proses yang waktu prosesnya
membutuhkan waktu yang cukup lama.
Ketik
perintah :
[topiq@Linux_server
topiq]$find –name passwd &
Hasilnya
:
[topiq@Linux_server
topiq]$ find –name passwd &
_
Tekan “Enter” untuk menampilkan Shell prompt kembali.
[topiq@Linux_server topiq]$
Catatan :
Perintah “find” akan dibahas secara lebih lengkap
di Utilitas Lanjut
Tanda “&” mempunyai arti:
Proses dijalankan di-background. Jika proses menghasilkan
output, output langsung ditampilkan di layar.
Contoh:
[topiq@Linux_server topiq]$
/etc/passwd
Jika dijalankan tanpa tanda “&” mempunyai arti:
Proses
dijalankan di-foreground. Pada saat proses foreground, shell prompt tidak dapat
digunakan hingga proses selesai.
Namun
proses dapat :
§ di-interupsi
dengan cara menekan Tombol “Ctr + C”.
Jika di-interupsi, proses tidak dapat dilanjutkan kembali.
§ di-stop
dengan cara menekan Tombol “Ctrl +Z”. Jika di-stop proses dapat dilanjutkan
kembali dengan menjalankan perintah jobs dan bg/fg (akan dibahas
pada bagian Jobs).
JOBS
Jobs
merupakan Eksekusi program/proses yang diberikan kepada kernel, baik proses background maupun foreground.
Tutorial-40:
Jobs
Untuk
menjalankan perintah jobs, cukup ketikkan perintah “jobs” pada
shell prompt.
Ketik
perintah :
[topiq@Linux_server
topiq]$jobs
Hasilnya
:
[topiq@Linux_server
topiq]$ jobs
[topiq@Linux_server topiq]$
Belum ada jobs yang dijalankan.
Buat suatu program sederhana yang akan dijalankan di
background maupun foreground.
Info:
Program Linux atau biasa disebut dengan Shell Programming, umumnya dibuat
dengan menggunakan perintah-perintah yang sudah disediakan di Sistem. (Pembahasan
Lebih Lengkap di bagian Shell Scripting)
Langkah pembuatan
Program:
1.
Buat file baru dengan nama prog-1:
[topiq@Linux_server topiq]$ vi prog-1
2.
Tuliskan Script berikut dalam file baru tersebut:
while
[ true ]
do
sleep
10
echo
“halo”
done
3.
Ubahlah ijin akses dari file agar dapat dieksekusi.
[topiq@Linux_server
topiq]$ chmod a+x prog-1
|
Jalankan Program :
[topiq@Linux_server topiq]$sh prog-1
Hasilnya :
[topiq@Linux_server topiq]$sh prog-1
_
Tekan “Ctrl + Z” untuk menghentikan proses diatas
Ketik
perintah :
Jalankan
Program di Foreground Process :
[topiq@Linux_server
topiq]$fg %1
Hasilnya
:
Tekan “Ctrl + Z” untuk menghentikan proses diatas
Jalankan Program di Background Process :
[topiq@Linux_server topiq]$bg %1
_
Tekan “Enter”
[topiq@Linux_server topiq]$
Ketik
perintah :
Untuk menghentikan
proses dibahas pada bagian Signal
Signal
Suatu proses dapat mengirim dan menerima sinyal dari dan ke
proses lainnya. Proses mengirim sinyal melalui instruksi “kill”.
Format:
[shell prompt] $kill
-[signal_number] PID
|
Tabel-7: Standard Signal Number pada Linux
No Signal
|
Nama
|
Deskripsi
|
1
|
SIGHUP
|
Hangup, signal
dikirim bila proses terputus, misalnya melalui putusnyan hubungan modem
|
2
|
SIGINT
|
Sinyal Interrupt, melalui Tombol “Ctrl + C”
|
3
|
SIGQUIT
|
Sinyal Quit, melalui Tombol “Ctrl + \”
|
9
|
SIGKILL
|
Sinyal Kill
menghentikan Proses
|
15
|
SIGTERM
|
Terminasi
Software
|
Untuk
signal number yang lain dapat dilihat pada manual dengan perintah:
[topiq@Linux_server topiq]$man P 7 signal
Tutorial-41:
Tahap-tahap penghentian proses
Lihat
PID dengan perintah :
[topiq@Linux_server
topiq]$ps -a
Hasilnya
:
Hentikan proses dengan perintah :
[topiq@Linux_server topiq]$kill –9 5874
Jika Anda menghentikan suatu proses dari induk prosesnya
(Parent Process), maka anak prosesnya akan ikut terhenti juga.
Jika Anda menjalankan kill dengan perintah:
[topiq@Linux_server topiq]$kill 5874
Secara default, signal yang dikirimkan adalah signal No.15
Tutorial-42: No Hangup
Pada saat menjalankan proses background, proses tersebut
akan berhenti jika Anda logout dari sesi login Linux Anda. Untuk menjaga agar proses tetap berjalan walaupun Anda
Logout, dapat dilakukan dengan perintah:
Format:
[shell prompt] $nohup nama_file
|
Pada
saat Anda login kembali, proses tidak lagi berjalan di Terminal (tty) anda,
tetapi berjalan di luar Shell Prompt.
Ketikkan
perintah :
[topiq@Linux_server
topiq]$nohup /home/topiq/prog-1 > nohup.out &
Hasilnya
:
Lihat Hasilnya :
Logout dari sistem kemudian masuk ke sesi login dan
jalankan perintah:
Dapat Anda lihat bahwa proses masih berjalan meskipun
tidak di terminal/shell prompt “pts/3”.
Latihan-4
:
5. Buatlah file dengan menggunakan perintah “cat”. Nama
file adalah “file_cat-1”.
Gunakan
: Redirection dengan input dari keyboard.
6. Tampilkan
proses yang dimiliki atau dijalankan oleh user Anda, kemudian di dalam file
“sesi_login.
Petunjuk:
gunakan redirection dan piping dari perintah: ps, grep dan
Utilitas Lanjut
Selain
perintah-perintah dasar yang sudah dibahas di bagian Perintah Dasar Linux,
diperlukan utilitas lain yang mendukung penggunaan linux.
Tutorial-43:
sort
Utilitas
sort(sortir) digunakan untuk menyusun isi suatu file berdasarkan pola/kriteria
tertentu.
Format:
[Shell Prompt]$ sort
[option] file(s)
|
Beberapa
option dari sort:
Option
|
Deskripsi
|
Fungsi
|
-r
|
Reverse
|
Menyusun isi file secara terbalik dari Z-A
|
-n
|
Numeric
|
Menyusun file berdasarkan nilai numerik (1, 10, 11)
|
Ketik perintah:
[topiq@Linux_server topiq]$sort –r /etc/passwd|more
Hasilnya:
Tutorial-44:
Utilitas cut
Utilitas
cut digunakan untuk
memotong/mengambil sekelompok kata atau karakter di dalam file.
Option
|
Deskripsi
|
Fungsi
|
-f
|
Fields
|
Memotong sejumlah
fields didalam file
|
-c
|
Character
|
Memotong sejumlah karakter didalam file
|
-d
|
delimiter
|
Pembatas fields
|
Utilitas cut dengan option –f selalu diikuti dengan
option –d, jika –d tidak ditentukan maka secara delimiter adalah “TAB”
Ketik
Perintah:
[topiq@Linux_server
topiq]$cut –d: -f5 /etc/passwd|more
Hasilnya:
Jika digunakan option –c (character), maka option –d
tidak dicantumkan.
Ketik Perintah:
[topiq@Linux_server
topiq]$date|cut –c1-3
Hasilnya:
Ketik
Perintah:
[topiq@Linux_server
topiq]$date
Hasilnya:
Tutorial-45:
Head
Utilitas
head digunakan untuk menampilkan isi file dari awal hingga akhir baris (jika
tanpa option secara default adalah sepuluh baris dari baris awal).
Format:
[Shell Prompt]$head
-[jumlah_baris] file(s)
|
Ketik
perintah:
[topiq@Linux_server
topiq]$head –3 /etc/passwd
Hasilnya:
Tutorial-46:
tail
Utilitas
tail digunakan untuk menampilkan isi file dari akhir hingga awal baris (jika
tanpa option secara default adalah sepuluh baris dari baris akhir).
Format:
[Shell Prompt]$tail [+
-][jumlah_baris] file(s)
|
Option +n adalah
baris yang ditampilkan dari n hingga ke baris terakhir
Option -n adalah
baris yang ditampilkan dari (baris terakhir ) – n hingga baris
terakhir.
Ketik perintah:
[topiq@Linux_server topiq]$tail +40 /etc/passwd
Hasilnya:
Ketik perintah:
[topiq@Linux_server topiq]$tail -4 /etc/passwd
Hasilnya:
Utilitas
find
Utilitas
find digunakan untuk mencari suatu file atau folder dengan kriteria tertentu.
Format:
[Shell Prompt]$find
[daftar-Dir] [ekspresi]
|
Option
|
Fungsi
|
-print
|
Menampilkan hasil pencarian ke output standard
|
-name Nama_file
|
Mencari suatu
file berdasarkan namanya
|
-type Tipe_File
|
Mencari file
berdasarkan tipe file
|
-links [+ -]n
|
Mencari file dengan jumlah links[lebih dari kurang dari] n
|
-user Nama_user
|
Mencari file yang
dimiliki oleh user “Nama_user”
|
-group Nama_group
|
Mencari file yang
boleh diakses oleh group “Nama_group”
|
-perm Mode_Oktal
|
Mencari file dengan ijin akses khusus
|
-newer nama_file
|
Mencari file yang
dibuat atau diakses setelah Nama_file dibuat atau diakses.
|
Tutorial-47:
penggunaan find pada shell prompt
§ Option
–print :
Perhatikan pesan Error yang ditampilkan pada layar.
Permissionn Denied
Untuk menghilangkan pesan Error tersebut, semua pesan
Error dibelokkan ke suatu file device yang tidak terdefinisi (sejenis Recycle
Bin) = /dev/null.Sehingga perintah diatas akan ditampilkan hasil dari
output Standard saja (hasil pencarian).
Perintah
menjadi:
[topiq@Linux_server
topiq]$find / -print 2>/dev/null
§ Option
–name: mencari file dengan nama prog-1
[topiq@Linux_server
topiq]$find /home –name prog-1 2>/dev/null
§ Option –type: mencari file dengan type direktori
[topiq@Linux_server
topiq]$find /home –type d 2>/dev/null
Tipe
Lain adalah :
-
|
file biasa
|
d
|
direktori
|
p
|
pipe
|
b
|
block device
|
s
|
socket
|
c
|
character device
|
§ Option –links: mencari file yang memiliki links sama
dengan 6
[topiq@Linux_server
topiq]$find /home –links 6 2>/dev/null
§ Option
–user: mencari file dan folder yang dimiliki oleh user “topiq”
[topiq@Linux_server
topiq]$find /home –user topiq 2>/dev/null
§ Option
–group: mencari file dan folder yang dapat diakses oleh group “topiq”
[topiq@Linux_server
topiq]$find /home –user topiq 2>/dev/null
§ Option
–perm: mencari file yang memiliki ijin akses –rwxr-xr-x
[topiq@Linux_server
topiq]$find /home –perm 755 2>/dev/null
§ Option
–newer: mencari file yang berusia lebih baru dari pada file “prog-1”
[topiq@Linux_server
topiq]$find /home –newer prog-1 2>/dev/null
Tutorial-48:
penggunaan find dengan ekspresi
§ Ekspresi
–exec : digunakan untuk mengeksekusi file yang ditemukan
§ Ekspresi –ok : sama seperti –exec namun diawali
dengan konfirmasi terlebih dahulu.
[topiq@Linux_server
topiq]$find /home –name f1 –ok rm {} \;
Latihan-5
:
7. Buatlah file dengan menggunakan perintah “cat”. Nama
file adalah “file_cat-1”.
Gunakan
: Redirection dengan input dari keyboard.
8. Tampilkan
proses yang dimiliki atau dijalankan oleh user Anda, kemudian di dalam file
“sesi_login.
Petunjuk:
gunakan redirection dan piping dari perintah: ps, grep dan
Shell Scripting
Shell scripting merupakan aplikasi pemrograman dengan Shell.
Fungsi-fungsi dan Alur logika yang digunakan sama seperti yang digunakan di
bahasa pemrograman yang lain.
Tujuan dari
Shell Scripting pada sistem operasi Linux:
§ Mengumpulkan
sejumlah perintah-perintah yang akan dieksekusi atau dijalankan secara
sekaligus dalam suatu file.
§
Mempermudah pekerjaan User dalam bekerja di Sistem
Operasi Linux
|
Struktur File
Program dalam Shell Scripting:
Header
|
:
|
merupakan pendefinisian letak kompiler
atau interpreter dari pemrograman Bash yang digunakan.
|
Comments
|
:
|
merupakan komentar yang ditambahkan
oleh pembuat program. Comments selalu diawali dengan tanda “#”.
|
Body
|
:
|
isi dari program yang dijalankan
sistem secara berurutan
|
Sistem Penamaan file
File Shell scripting dapat diberi nama apa saja. Tetapi
setelah diberikan nama tertentu, ijin akses dari file tersebut harus ditambah
dengan ijin akses Executable (x), agar dapat dijalankan user. Agar file
shell langsung diberikan ijin akses Executable(x) secara otomatis pada
saat penamaan file, nama file shell diberikan ekstensi “sh” dibelakang nama
file
Misal: prog-2.sh
Eksekusi Program
Untuk menjalankan/mengeksekusi program pada shell prompt dapat
dilakukan dalam beberapa cara, Program ditulis:
§ dalam bentuk FULL PATH
[topiq@Linux_server
topiq]$ /home/topiq/prog-2.sh
§ dengan diawali perintah “sh”
[topiq@Linux_server
topiq]$ sh prog-2.sh
§ diawali
simbol “./” (Tanda “.” Memiliki arti file berada didalam current
direktori).
[topiq@Linux_server topiq]$ ./prog-2.sh
§ Langsung dengan Nama Program
[topiq@Linux_server topiq]$ prog-2.sh
Untuk cara yang terakhir, dbutuhkan informasi PATH
dari sistem. Suatu program dapat dijalankan langsung dengan nama program saja,
jika direktori dimana program tersebut disimpan telah terdaftar didalam PATH
sistem.
Tutorial-49: Konfigurasi PATH
Ketik printah:
[topiq@Linux_server topiq]$ echo $PATH
Hasilnya:
[topiq@Linux_server topiq]$ echo $PATH
Jika direktori
dimana Anda menyimpan file-file Shell belum terdaftar dalam PATH, masukkan ke
dalam PATH.
Ketik printah:
[topiq@Linux_server topiq]$ PATH=$PATH:/home/topiq:.
“$PATH”
memiliki arti bahwa Konfigurasi PATH yang lama tetap dimasukkan.
“.” Memiliki arti bahwa current direktori
Lihat Hasil:
[topiq@Linux_server topiq]$ echo $PATH
Catatan:
Konfigurasi di atas hanya bersifat sementara, jika Anda Logout, konfigurasi
PATH akan kembali ke konfigurasi Awal.
Untuk
membuat konfigurasi PATH menjadi Permanent, definisikan PATH didalam
file .bashrc yang terdapat didalam Home Directory Anda.
Ketikkan script
berikut pada file .bashrc:
PATH=$PATH:/home/topiq:.
Agar
program Anda dapat diakses oleh banyak orang, Anda harus membuka ijin akses
Home Directory Anda agar dapat dieksekusi (x).
Jika
Anda tidak menginginkan user lain mengakses Home Directory Anda secara langsung
atau , Anda dapat membuat Link symbolic dari file program tersebut ke suatu
direktori yang umum, misalnya : direktori “/bin”
Variabel
Pada shell
scripting, variabel digunakan tanpa harus mendefinisikan terlebih dahulu tipe
dari variabel tersebut seperti dibahasa pemrograman umumnya.
Tutorial-50: Menampilkan Variabel
Buat program berikut:
#!/bin/sh
# prog-2 : program Nama
nama=olivia
lulus=”Mahasiswa yang lulus adalah $nama”
echo $lulus
Jalankan Program:
[topiq@Linux_server topiq]$ ./prog-2.sh
Pada contoh di
atas:
§ Variabel
harus dituliskan :
nama=olivia (BENAR)
nama
=olivia
(SALAH)
nama=
olivia
(SALAH)
§
Variabel dipanggil kembali dengan diawali tanda “$” kemudian diikuti
nama_variabel ($lulus)
§
Variabel yang mengandung spasi, harus ditutup dengan tanda petik “.
§
Pada saat memanggil variabel harus dituliskan secara case-sensitive,
variabel “$lulus” akan berbeda dengan variabel “$Lulus”
Sistem Linux telah memiliki variabel yang siap-pakai
(Built-in Variabel) dan dapat digunakan langsung oleh user. Daftar dari
variabel-variabel tersebut antara lain adalah:
Tabel-10: Built-in variabel
Variabel
|
Deskripsi
|
$HOME
|
Memberikan nilai Home Directory user yang
sedang Login
|
$PATH
|
Memberikan
informasi PATH dari direktori sistem.
|
$#
|
Jumlah Parameter
|
$$
|
Nomor PID
|
$*
|
Menampilkan
seluruh Argumen dari perintah
|
$?
|
Status Exit, variabel yang memberikan nilai
output dari suatu proses TRUE atau FALSE. TRUE jika bernilai 0 dan FALSE jika
bernilai ¹
0
|
\u
|
Nama user yang
sedang login
|
\h
|
Nama hostname
|
\W
|
Nama Working Directory
|
Nilai variabel juga dapat diambil dari perintah yang ada
di Sistem Linux.
Tutorial-51: Command Line Variabel
Buat program
berikut:
#!/bin/sh
# prog-3 : program
dengan Variabel Command
nama=`whoami`
echo “Nama Pengguna
Aktif adalah $nama”
Jalankan Program:
[topiq@Linux_server
topiq]$ ./prog-3.sh
Untuk variabel
yang diambil dari perintah di sistem Linux harus berada diantara tanda back-quote
(`) - tanda petik terbalik, disebelah Tombol Angka “1” pada keyboard.
Bukan Single-quote(‘).
Nilai variabel juga dapat diberikan secara langsung oleh
user pada saat program shell dijalankan (tidak didefinisikan di dalam body file
shell scripting).
Tutorial-52: Input
Variabel
Buat program
berikut:
#!/bin/sh
# prog-4 : program input
echo –n “Masukkan nama
Anda:”
read nama
echo “Nama Pengguna
Aktif adalah $nama”
Option –n
berfungsi untuk menahan agar kursor tetap sejajar dengan script, sehingga pada
saat memasukkan nilai input, tetap sejajar dengan output echo yang terakhir.
Contoh pada saat
program dijalankan :
Fungsi “read” adalah membaca input yang
dimasukkan dari keyboard dan dimasukkan sebagai nilai dari variabel “nama”
Jalankan Program:
[topiq@Linux_server
topiq]$ prog-4.sh
Command Line Arguments
Program Shell dapat mempunyai parameter/argumen maksimum
9 arumen. Masing-masing argumen akan direpresentasikan sebagai suatu variabel
mulai dari $1, $2, $3, $4, $5, $6, $7, $8, $9.
Sedangkan Program Shell direpresentasikan dengan $0.
Tutorial-53: Menampilkan Command
Line Argument
Buat program berikut:
#!/bin/sh
#
prog-5.sh : Parameter
echo
“Nama Program adalah $0”
echo
“Parameter 1 adalah $1”
echo
“Parameter 2 adalah $2”
echo
“Parameter 3 adalah $3”
echo
“Jumlah Parameter adalah $#”
echo
“Parameter yang dituliskan antara lain $*”
echo
“Nomor PID dari Program adalah $$”
Jalankan Program :
[topiq@Linux_server
topiq]$ prog-5.sh param1 param2 param3
Operasi Aritmetika
Operasi aritmatika dalam pemrograman shell seperti “+, *,
- atau /” dapat dilakukan dengan menggunakan
perintah berikut:
Tutorial-54: Operasi Aritmatika
dengan let
Buat program berikut:
#!/bin/sh
#
prog-6.sh : Operasi Aritmatika dengan let
echo
–n “Masukkan Nilai1 Pertama :”
read nilai1
echo –n “Masukkan Nilai1
Kedua :”
read nilai2
echo
“Pilih tipe operasi: ”
read
operasi
hasil=`let
$nilai1 $operasi $nilai2`
echo
“Hasilnya adalah $hasil”
Jalankan Program :
[topiq@Linux_server
topiq]$ prog-6.sh
Tutorial-55: Operasi Aritmatika
dengan expr
Operasi aritmatika untuk bilangan bulat saja.
Buat program berikut:
#!/bin/sh
#
prog-7.sh : Operasi Aritmatika dengan expr
echo
–n “Masukkan Nilai1 Pertama :”
read nilai1
echo –n “Masukkan Nilai1
Kedua :”
read nilai2
echo
“Pilih tipe operasi: ”
read
operasi
hasil=`expr
$nilai1 $operasi $nilai2`
echo
“Hasilnya adalah $hasil”
Jalankan Program :
[topiq@Linux_server
topiq]$ prog-7.sh
Info:
Untuk “expr”,
simbol operasi aritmatika yang digunakan:
Perkalian
|
\*
|
Pembagian
|
/
|
Penjumlahan
|
+
|
Pengurangan
|
-
|
Modulo/Sisa Bagi
|
%
|
Untuk
mengelompokkan suatu operasi Aritmatika pada “expr”, gunakan simbol “\(“ dan “\)” :
Contoh:
expr
\( 1 + 2 \) * 3
Tutorial-56:
Operasi Aritmatika dengan bc
Operasi aritmatika untuk bilangan pecahan.
Buat program berikut:
#!/bin/sh
#
prog-8.sh : Operasi Aritmatika dengan bc
echo
–n “Masukkan Nilai1 Pertama :”
read nilai1
echo –n “Masukkan Nilai1
Kedua :”
read nilai2
echo
“Pilih tipe operasi: ”
read
operasi
hasil=`bc <<**
scale=2
$nilai1 $operasi $nilai1
**`
echo “Hasilnya adalah
$hasil”
Info:
Scale berfungsi untuk menentukan jumlah angka dibelakang koma.
Simbol “**” merupakan simbol Here Documents.
Pada pemrograman shell, script akan langsung dieksekusi jika sistem menemukan
Command Return <CR>
atau “ENTER”. Untuk menahan agar sistem tidak melakukan
eksekusi terlebih dahulu sebelum semua nilai variabel masuk maka ekseskusi
ditahan dulu dengan menggunakan fungsi Here Documents. Simbol here documents
boleh diganti dengan simbol lain, misal : “@@@” , asalkan simbol
penutupnya sama dan diletakkan pada posisi kolom petama pada layar.
|
Jalankan Program :
[topiq@Linux_server
topiq]$ prog-8.sh
Debugging
Untuk melakukan pelacakan
(tracing/debug) terhadap program yang Error dapat dilakukan dengan perintah:
Jalankan Program :
[topiq@Linux_server
topiq]$ sh –x prog-8.sh
Pengkondisian
Untuk mengontrol
struktur kondisi dalam pemrograman Shell dapat digunakan struktur :
§ If-then, if-then-else, dan if-then-elif-then
Sintaks if-then:
if [kondisi]
then
statements
fi
|
Sintaks
if-then-else:
if [kondisi]
then
statements-1
else
statements-2
fi
|
atau
|
if [kondisi-1]
then
statements-1
else
if
[kondisi-2]
then
statements-2
else
statements-3
fi
fi
|
Sintaks if-then-elif-else:
if [kondisi-1]
then
statements-1
elif [kondisi-2]
then
statements-2
fi
|
Untuk mendukung pendefinisian kondisi digunakan :
§ Operator
Relasi :
Operator
|
Deskripsi
|
|
>
|
-gt
|
Lebih besar
|
<
|
-lt
|
Lebih kecil
|
>=
|
-ge
|
Lebis besar atau sama dengan
|
<=
|
-le
|
Lebih kecil atau
sama dengan
|
=
|
|
Pembanding
|
==
|
-eq
|
Sama dengan
|
!=
|
-ne
|
Tidak sama dengan
|
§ Operator
Logika :
Operator
|
Deskripsi
|
-a
|
AND
|
-o
|
OR
|
Tutorial-57: Program untuk mencari
suatu file dan tipenya
Buat program
berikut:
#!/bin/bash
# prog-cek.sh : Program cek file
if [ -f $1 ]
then
echo “$1 ada, dan suatu file biasa”
else
if [ -d
$1 ]
then
echo
“$1 ada, dan suatu directory”
else
echo
“$1 tidak ada”
fi
fi
Nilai f pada kondisi [ -f $1 ] dan
d pada kondisi [
-d $1 ] merupakan operator test
§ Operator
test :
Operator
|
Status
Exit = 0 (TRUE), Jika:
|
-f
nama_file
|
File ada, dan
tipe file = file biasa
|
-d
nama_file
|
File ada, dan
tipe file = directory
|
-r
nama_file
|
File ada, dan file dapat dibaca
|
-w
nama_file
|
File ada, dan
file dapat ditulis
|
-x
nama_file
|
File ada, dan
file dapat dieksekusi
|
-s
nama_file
|
File ada, dan
file tidak kosong
|
Jalankan Program :
[topiq@Linux_server
topiq]$ prog-cek.sh
Latihan-6:
Buatlah program yang digunakan untuk
menghitung pajak:
-
10 Juta
Pertama kena 15%
-
25 Juta
berikutnya(sisa) kena 25%
-
Bila masih ada
sisa, maka sisa tsb kena 35%
-
Simpan
dengan nama file “income.sh”
Contoh :
1. Gaji 8 Juta
PPH = 15% * 8 Juta
2. Gaji 15 Juta
PPH = (15% * 10 Juta) + (25% * (12-10)
Juta)
3. Gaji 60 Juta
PPH = (15% * 10 Juta) + (25% * 25
Juta) + (35% * (60-10-15) Juta)
Tutorial-58:
Program Salam
Buat program
berikut:
#!/bin/bash
# prog-salam.sh : Program Salam
jam=`date|cut –c12-13`
if [ $jam –ge 05 –a $jam –le 09 ]
then
clear
tput cup 11 30
tput blink
echo –n “Selamat Pagi”
read
tput sgr0
clear
else
if [ $jam
–gt 09 –a $jam –le 15 ]
then
clear
tput
cup 11 30
tput
blink
echo
–n “Selamat Siang”
read
tput
sgr0
clear
else
if
[ $jam –gt 15 –a $jam –le 18 ]
then
clear
tput
cup 11 30
tput
blink
echo
–n “Selamat Sore”
read
tput
sgr0
clear
else
clear
tput
cup 11 30
tput blink
echo –n “Selamat Malam”
read
tput
sgr0
clear
fi
fi
fi
Perintah tput digunakan untuk memanipulasi baris pada shell prompt
Format:
tput [option] [argumen]
|
option
|
Fungsi
|
cup x
y
|
Meletakkan posisi kursor di koordinat x,y pada Layar
|
blink
|
Membuat tampilan
terminal menjadi berkedip (blink)
|
Sgr0
|
Mengembalikan
semua perubahan ke kondisi Default
|
Untuk option yang lebih lengkap dapat dilihat
pada manual:
[topiq@Linux_server topiq]$ man tput
Jalankan Program :
[topiq@Linux_server
topiq]$ prog-salam.sh
§ case-in
Sintaks case-in
case string in
pilihan-1)
commands-1
;;
pilihan-2)
commands-2
;;
*)
default
commands
;;
esac
|
Tutorial-59:
Program Menu
Buat program
berikut:
#!/bin/bash
# prog-menu.sh: Program Menu
trap "" 1 2 3 15
cat <<**
Menu Pilihan:
1. Cek
File
2. Salam
3. Hitung
Income
4. Keluar
**
echo -n "Masukkan Pilihan Anda: "
read pilih
case $pilih in
1)prog-cek.sh;;
2)salam.sh
;;
3)income.sh ;;
4)exit ;;
*)clear ; echo "Anda Salah Pilih"
;;
esac
Perintah trap digunakan untuk mencegah agar program tidak dapat diinterupsi
dengan “CTRL + C” ataupun “Ctrl +Z” maupun di-kill dengan signal seperti di
atas. Fungsi tanda “petik”
merupakan tempat comments. Signal yang tidak dapat ditrap adalah signal no.9.
Jalankan Program :
[topiq@Linux_server
topiq]$ prog-menu.sh
Perulangan
Perulangan pada pemrograman Shell terbagi menjadi tiga
bagian :
§ while-do : Jika kondisi True, commands
dijalankan.
Sintaks:
while [kondisi]
do
commands
done
|
Tutorial-60:
Program Menu dengan Looping
Lengkapi program
prog-menu.sh:
#!/bin/bash
# prog-menu.sh: Program
Menu
trap "" 1 2 3 15
while :
do
clear
cat <<**
Menu Pilihan:
1. Jalankan Program Salam
2. Salin File
3.
Hitung Income
4. Keluar
**
echo -n "Masukkan Pilihan Anda: "
read pilih
case $pilih in
1)salam ;;
2)salin ;;
3)income ;;
4)exit ;;
*)clear ; echo "Anda Salah Pilih"
;;
esac
echo ""
echo -n "Tekan
Enter untuk Lanjut....!"
read
done
Perintah “while :” disebut sebagai “dummy instruction”, dimana
kondisi dari perulangan selalu dibuat TRUE (ditandai dengan simbol “:”
atau “ [ true ] “.)
Jalankan Program :
[topiq@Linux_server
topiq]$ prog-menu.sh
§ for-in :
Commands dijalankan sesuai dengan nilai variabel
Sintaks :
For variable in list
of values
do
commands
done
|
Tutorial-61:
Program dengan for-in
Buat program
berikut:
#!/bin/bash
# prog-forin.sh : Program dengan for-in
salam=”Selamat Pagi….”
for
ulang in dona namira tita
do
echo
“$salam $ulang”
done
Jalankan Program :
[topiq@Linux_server
topiq]$ prog-forin.sh
§ for-do : Sama seperti for-in tetapi tanpa list
of values.
Sintaks :
For variable
do
commands
done
|
Tutorial-62:
Program dengan for-do
Buat program
berikut:
#!/bin/bash
# prog-fordo.sh : Program dengan for-do
awal=”ini adalah file “
for ulang
do
echo
“$awal $ulang”
done
Jalankan Program :
[topiq@Linux_server
topiq]$ prog-fordo.sh /etc/passwd /etc/group
Untuk
Contoh Program Shell yang lain dapat dilihat pada Lampiran