Showing posts with label linux pemula. Show all posts
Showing posts with label linux pemula. Show all posts

Wednesday

Pemrograman Shell (Linux)




Shell adalah program (penterjemah perintah) yang menjembatani user dengan sistem operasi dalam hal ini kernel (inti sistem operasi), umumnya shell menyediakan prompt sebagai user interface, tempat dimana user mengetikkan perintah-perintah yang diinginkan baik berupa perintah internal shell (internal command), ataupun perintah eksekusi suatu file progam (eksternal command), selain itu shell memungkinkan user menyusun sekumpulan perintah pada sebuah atau beberapa file untuk dieksekusi sebagai program.

Tidak seperti sistem operasi lain yang hanya menyediakan satu atau 2 shell, sistem operasi dari keluarga unix misalnya linux sampai saat ini dilengkapi oleh banyak shell dengan kumpulan perintah yang sangat banyak, sehingga memungkinkan pemakai memilih shell mana yang paling baik untuk membantu menyelesaikan pekerjaannya, atau dapat pula berpindah-pindah dari shell yang satu ke shell yang lain dengan mudah, beberapa shell yang ada di linux antara lain:
  1. Bourne shell(sh),
  2. C shell(csh),
  3. Korn shell(ksh),
  4. Bourne again shell(bash), dsb.
Masing - masing shell mempunyai kelebihan dan kekurangan yang mungkin lebih didasarkan pada kebutuhan pemakai yang makin hari makin meningkat, untuk dokumentasi ini shell yang digunakan adalah bash shell dari GNU, yang merupakan pengembangan dari Bourne shell dan mengambil beberapa feature (keistimewaan) dari C shell serta Korn shell, Bash shell merupakan shell yang cukup banyak digunakan pemakai linux karena kemudahan serta banyaknya fasilitas perintah yang disediakan.versi bash shell yang akan dibahas adalah 2.04
[kompikita@linux$]echo $BASH_VERSION
bash 2.04.12(1)-release
Sebelum mempelajari pemrograman Bash shell di linux sebaiknya anda telah mengetahui dan menggunakan perintah - perintah dasar shell baik itu internal command yang telah disediakan shell maupun eksternal command atau utility, seperti
  • cd, pwd, times, alias, umask, exit, logout, fg, bg, ls, mkdir, rmdir, mv, cp, rm, clear, ...
  • utilitas seperti cat, cut, paste, chmod, lpr,...
  • redirection (cara mengirim output ke file atau menerima input dari file), menggunakan operator redirect >, >>, <, <<, contohnya:

    ls > data
    hasil ls dikirim ke file data, jika file belum ada akan dibuat tetapi jika sudah ada isinya akan ditimpa.

    ls >> data
    hampir sama, bedanya jika file sudah ada maka isinya akan ditambah di akhir file.

    cat < data
    file data dijadikan input oleh perintah cat
  • pipa (output suatu perintah menjadi input perintah lain), operatornya : | , contoh:

    ls -l | sort -s
    ouput perintah ls -l (long) menjadi input perintah sort -s (urutkan secara descending), mending pake ls -l -r saja :-)

    ls -l | sort -s | more

    cat <data | sort > databaru
  • Wildcard dengan karakter *, ?, [ ], contohnya:

    ls i*
    tampilkan semua file yang dimulai dengan i

    ls i?i
    tampilkan file yang dimulai dengan i, kemudian sembarang karakter tunggal, dan diakhiri dengan i

    ls [ab]*
    tampilkan file yang dimulai dengan salah satu karakter a atau b

Simple Bash Script
Langkah awal sebaiknya periksa dulu shell aktif anda, gunakan perintah ps (report process status)
[kompikita@linux$]ps
 PID TTY          TIME CMD
  219 tty1     00:00:00 bash
  301 tty1     00:00:00 ps
Bash adalah shell aktif di system saya, jika disystem anda berbeda misalnya csh atau ksh ubahlah dengan perintah change shell
[kompikita@linux$]chsh
Password:
New shell [/bin/csh]:/bin/bash
Shell changed
atau dengan mengetikkan bash
[kompikita@linux$]bash
sekarang coba anda ketikkan perintah dibawah ini pada prompt shell

echo "Script shell pertamaku di linux"
[kompikita@linux$]echo "Script shell pertamaku di linux"
Script shell pertamaku di linux

string yang diapit tanda kutip ganda (double quoted) akan ditampilkan pada layar anda, echo adalah statement (perintah) built-in bash yang berfungsi menampilkan informasi ke standard output yang defaultnya adalah layar. jika diinginkan mengulangi proses tersebut, anda akan mengetikkan kembali perintah tadi, tapi dengan fasilitas history cukup menggunakan tombol panah kita sudah dapat mengulangi perintah tersebut, bagaimana jika berupa kumpulan perintah yang cukup banyak, tentunya dengan fasilitas hirtory kita akan kerepotan juga mengulangi perintah yang diinginkan apalagi jika selang beberapa waktu mungkin perintah-perintah tadi sudah tertimpa oleh perintah lain karena history mempunyai kapasitas penyimpanan yang ditentukan. untuk itulah sebaiknya perintah-perintah tsb disimpan ke sebuah file yang dapat kita panggil kapanpun diinginkan.
coba ikuti langkah - langkah berikut:
  • Masuk ke editor anda, apakah memakai vi,pico,emacs,dsb...
  • ketikkan perintah berikut  
#!/bin/bash
echo "Hello, apa khabar"
  • simpan dengan nama file tes
  • ubah permission file tes menggunakan chmod
 
[kompikita@linux$]chmod 755 tes
  • jalankan 
[kompikita@linux$]./tes
kapan saja anda mau mengeksekusinya tinggal memanggil file tes tersebut, jika diinginkan mengeset direktory kerja anda sehingga terdaftar pada search path ketikkan perintah berikut
PATH=$PATH:.
setelah itu script diatas dapat dijalankan dengan cara
[kompikita@linux$]tes
Hello, apa khabar
tanda #! pada /bin/bash dalam script tes adalah perintah yang diterjemahkan ke kernel linux untuk mengeksekusi path yang disertakan dalam hal ini program bash pada direktory /bin, sebenarnya tanpa mengikutkan baris tersebut anda tetap dapat mengeksekusi script bash, dengan catatan bash adalah shell aktif. atau dengan mengetikkan bash pada prompt shell.
[kompikita@linux$]bash tes
tentunya cara ini kurang efisien, menyertakan path program bash diawal script kemudian merubah permission file sehingga dapat anda execusi merupakan cara yang paling efisien.
Sekarang coba kita membuat script shell yang menampilkan informasi berikut:
  • Waktu system
  • Info tentang anda
  • jumlah pemakai yang sedang login di system
contoh scriptnya:
#!/bin/bash
#myinfo

#membersihkan tampilan layar
clear           

#menampilkan informasi
echo -n "Waktu system   :"; date
echo -n "Anda           :"; whoami
echo -n "Banyak pemakai :"; who | wc -l
sebelum dijalankan jangan lupa untuk merubah permission file myinfo sehingga dapat dieksekusi oleh anda
[kompikita@linux$]chmod 755 myinfo
[kompikita@linux$]./myinfo
Waktu system   : Sat Nov 25  22:57:15 BORT 2001
Anda           : kompikita
Banyak pemakai : 2
tentunya layout diatas akan disesuaikan dengan system yang anda gunakan statement echo dengan opsi -n akan membuat posisi kursor untuk tidak berpindah ke baris baru karena secara default statement echo akan mengakhiri proses pencetakan ke standar output dengan karakter baris baru (newline), anda boleh mencoba tanpa menggunakan opsi -n, dan lihat perbedaannya. opsi lain yang dapat digunakan adalah -e (enable), memungkinkan penggunaan backslash karakter atau karakter sekuen seperti pada bahasa C atau perl, misalkan :
echo -e "\abunyikan bell"
jika dijalankan akan mengeluarkan bunyi bell, informasi opsi pada statement echo dan backslash karakter selengkapnya dapat dilihat via man di prompt shell.
[kompikita@linux$]man echo

Tuesday

Konfigurasi Jaringan Linux


Pada Jaringan Linux terdiri dari setting TCP/IP,Administrasi Jaringan dan dasar-dasar sistem konfigurasi yang terdapat dalam operating sistem Linux.Linux dapat mendukung perangkat jaringan ganda,jenis-jenis perangkat diberi nomor dan dimulai dari nol sampai keatas. Sebagai contoh,sebuah komputer yang menjalankan dua kartu ethernet akan memiliki dua perangkat berlabel / dev/eth0 dan / dev/eth1.
Mari kita pelajari tentang konfigurasi jaringan Linux.

File konfigurasi Jaringan TCP/IP LInux:
FileDeskripsi
/ Etc / resolve.conf Daftar server DNS untuk resolusi nama domain internet.
Pedoman halaman untuk: / etc / resolv.conf
/ Etc / hosts Daftar host untuk dieksekusi secara lokal (bukan oleh DNS).
Pedoman halaman untuk: / etc / hosts
/ Etc / nsswitch.conf Daftar urutan pencarian nama host. Biasanya melihat file lokal, NIS server, dan server DNS.
Pedoman halaman untuk: / etc / nsswitch.conf
Red Hat / Fedora / CentOS: / etc / sysconfig / network Menentukan konfigurasi jaringan. misalnya. Static IP, DHCP, NIS, dll
Red Hat / Fedora / CentOS: / etc/sysconfig/network-scripts/ifcfg- perangkat Menentukan informasi jaringan TCP.
Ubuntu / Debian: / etc / network / interfaces Menentukan konfigurasi jaringan dan perangkat. misalnya. Static IP dan info, DHCP, dll


Konfigurasi Resolusi File Domain
  • File: / etc / resolv.conf - konfigurasi resolver hostname
pencarian namadomain.com - Nama domain Anda atau domain ISP jika menggunakan server nama ISP
nameserver xxx.xxx.xxx.xxx - alamat IP dari server nama primer
nameserver xxx.xxx.xxx.xxx - alamat IP dari server nama sekunder
Contoh
domain kompikita.net
nameserver 202.158.3.6
nameserver 202.158.3.7
Perlu diperhatikan bahwa semua domain yang terdapat dalam baris search akan dicari untuk setiap nama host yang di-resolve. Sehingga jika anda ingin telnet ke host cctv maka untuk mendapatkan alamat IP untuk host cctv dicari alamat IP untuk cctv.intra.aki pertama kali, lalu cctv.cbn.net.id dan terakhir cctv. Begitupun jika untuk linux.or.id maka akan dicoba dulu linux.or.id.intra.aki, lalu linux.or.id.cbn.net.id dan terakhir linux.or.id. Sebaiknya anda tidak menaruh terlalu banyak domain di dalam baris search karena akan memakan waktu untuk mencari domain-domain tersebut.
Biasanya yang diperlukan hanyalah keyword nameserver karena keyword domain mengambil default dari nama host dan keyword search defaultnya berisi isi dari keyword domain.

  • File: / etc / hosts - pemetaan nama host dengan alamat IPnya
IP   nama.domain.lengkap   alias
Perlu diperhatikan bahwa jumlah spasi atau tab antara masing-masing kolom tidak berpengaruh, yang penting ada pemisahnya baik spasi atau tab.
Contoh
127.0.0.1       localhost.intra.aki     localhost
192.168.1.100   linux.intra.aki         linux
192.168.1.3     cctv.intra.aki          cctv
Selain mengedit secara langsung file /etc/hosts anda juga bisa mengeditnya melalui linuxconf.
  1. Jalankan linuxconf
  2. Pilih Config -> Networking -> Misc -> Information about other hosts
  3. Di dialog tersebut anda bisa menambah (Add) atau mengedit atau menghapus entry tertentu dengan menekan enter pada entry yang ingin diubah atau dihapus.
Testing setting DNS Client 
[kompikita@linux kompikita]$ host cctv

cctv.kompikita.net has address 192.168.1.3

 

[kompikita@linux kompikita]$ nslookup linux

Server:  localhost

Address:  127.0.0.1

 

Name:    linux.kompikita.net

Address:  192.168.1.100
Untuk nslookup anda juga bisa melakukan test secara interaktif contohnya:
[kompikita@linux kompikita]$ nslookup

Default Server:  localhost

Address:  127.0.0.1

 

> linux.or.id

Server:  localhost

Address:  127.0.0.1

 

Non-authoritative answer:

Name:    linux.or.id

Address:  64.29.24.175

 

> yahoo.com

Server:  localhost

Address:  127.0.0.1

 

*** localhost can't find yahoo.com: Non-existent host/domain
Tekan Ctrl+D untuk kembali ke shell