Monday, November 10, 2014

LINUX SHELL - NEW

Apa itu Linux Shell?
•     Program yang menerjemahkan perintah
•     Mengijinkan user untuk mengeksekusi perintah dengan cara mengetiknya secara manual di terminal atau secara otomatis pada program yang disebut shell script.
•     Shell bukan sistem operasi tetapi cara untuk terhubung dengan sistem operasi dan menjalankan perintah

Apa itu BASH?
•     BASH = Bourne Again Shell
•     BASH adalah shell yang dibuat secara bebas menggantikan versi standard dari Bourne Shell (/bin/sh) yang semula dibuat oleh Steve Bourne untuk sistem UNIX.
•      BASH memiliki semua fitur yang ada di Bourne Shell, plus tambahan yang membuatnya lebih mudah digunakan dari command line.
•      Sejak BASH berbasis Free Software, kini ia diadopsi sebagai shell standar oleh sebagian besar sistem Linux

Apa perbedaan BASH dengan DOS Command Prompt?
•     Case Sensitivity : di Linux/UNIX, perintah-perintah dan nama-nama file itu case sensitive, berarti menulis “EXIT” berbeda dengan “exit”
•      “\” vs. “/”  : di DOS, garis miring “/” adalah command argument delimiter, sedangkan miring garis “\” adalah pemisah direktori. Di Linux/UNIX, “/” adalah pemisah direktori, dan “\” adalah escape character.
•      Filenames : di dunia DOS menggunakan “eight dot three” sebagai kaidah nama file, berarti semua file mengikuti format yang diperbolehkan hingga 8 karakter dalam nama file, diikuti oleh titik, diikuti oleh pilihan extensi, yang panjangnya hingga 3 karakter (contoh: FILENAME.TXT). Di Linux/UNIX, disana tidak ada hal seperti file extension. Titik dapat ditempatkan di bagian manapun di nama file dan “extensions” mungkin diartikan dengan berbeda oleh semua program atau tidak semuanya.

Karakter Spesial
•      "\" = Escape character. Jika anda menginginkan untuk menggunakan karakter spesial, anda harus “melepaskan” dengan miring garis terlebih dahulu. Contoh: touch /tmp/filename\*
•      "/" = Alat pemisah direktori, digunakan untuk memisahkan string dari nama direktori. Contoh: /usr/src/linux
•      "."Direktori saat ini. Dapat juga “menyembunyikan” file ketika diletakkan di karakter pertama pada nama file
•      ".."Parent Directory
•      "~" = Direktori home untuk user
•      "*" = Mewakili 0 atau banyak karakter dalam nama file, atau dengan sendirinya, semua file dalam direktori. Contoh: pic*2002 mewakili file pic2002, picJanuary2002, picFeb292002 dll
•      "[]" = Dapat digunakan untuk mewakili jarak dari nilai, misal: [0-9], [a-z], dll. Contoh: hello[0-9].txt mewakili nama hello0.txt, hello1.txt, dan hello2.txt
•      "?" = Mewakili karakter tunggal dalam nama file. Contoh: hello?.txt dapat mewakili hello1.txt, helloz.txt, tapi bukan hello22.txt
•      "|" = "Pipa". Mengalihkan output dari satu perintah menuju perintah lainnya. Contoh: ls | more
•      ">" = Mengalihkan output dari suatu perintah ke dalam file baru. Jika file sudah ada, maka akan ditulis ulang. Contoh: ls > file.txt
•      ">>" = Mengalihkan output dari suatu perintah menuju ke akhir dari suatu file yang sudah ada. Contoh: echo “praktikum SO ceria” >> file.txt
•      ";" = Command separator. Memungkinkan anda untuk mengeksekusi banyak perintah dalam satu baris. Contoh: cd /var/log ; less message
•      "&&" = Command separator seperti sebelumnya, hanya saja akan menjalankan perintah kedua jika perintah pertama dikerjakan tanpa ada error. Contoh: cd /var/logs && less message
•      "&" = Mengeksekusi suatu perintah di background, dan langsung mendapatkan shell anda kembali. Contoh: find / -name core > /tmp/corefile.txt &

Contoh perintah PATH:
/home/zayretro/myprogram
./program (mengeksekusi program di direktori anda saat ini)
~/bin/program (mengeksekusi program dari personal bin direktori)

Command Syntax
Perintah dapat berjalan sendiri, atau anda dapat menambahkan argumen untuk membuatnya berbeda. Seperti inilah tipikal penulisan command syntax:
command [-argument] [-argument] [--argument] [file]
contoh:
ls = menampilkan daftar file di current directory
ls -l = menampilkan daftar file dengan “long” format
ls -l -color = seperti diatas, dengan output berwarna
cat filename = menampilkan konten dari file
cat -n filename = menampilkan konten dari file, dengan nomer baris

Linux Help
Ketika anda menemukan kebuntuan dan memerlukan bantuan dengan perintah perintah di Linux, bantuan biasanya hanya dengan beberapa kata kunci. Bantuan pada perintah Linux yang paling sering digunakan biasanya dibangun ke dalam perintah itu sendiri. Tersedia melalui bantuan “man pages” dan “info pages” dan tentu saja internet.

Menggunakan perintah bantuan yang telah terpasang
Banyak perintah memiliki halaman “help” sederhana yang bisa dipanggil dengan special commands flags. Flags ini biasanya terlihat seperti “-h” atau “--help”.
Contoh: grep --help

Man Pages
Sumber terbaik untuk perintah yang paling lengkap dapat ditemukan pada halaman manual, dikenal dengan nama “man pages”. Untuk membaca halaman manual dari setiap perintah, cukup ketik “man program”.
Contoh: man ls manual mengenai perintah “ls” man man manual mengenai cara menggunakan halaman manual
Untuk mencari kata tertentu di halaman manual, ketik “/word”. Untuk keluar dari halaman manual, cukup tekan “Q”. Terkadang, anda lupa dengan nama dari perintah perintah di Linux dan anda perlu mencarinya.
Sebagai contoh, jika anda ingin mengetahui cara mengubah file permissions, anda dapat mencari halaman manual untuk kata “permission” seperti ini:
man -k permission
output dari perintah diatas kurang lebih seperti ini:
chmod (1) – change file access permissions
sekarang anda tahu bahwa “chmod” adalah perintah yang anda cari. Ketik “man chmod” akan menunjukkan kepada anda halaman manual tentang chmod.

Info Pages
Beberapa program, khususnya yang dirilis oleh Free Software Foundation, menggunakan halaman info sebagai sumber utama dokumentasinya. Halaman info sama dengan halaman manual, tapi yang ditampilkan bukan satu halaman panjang, melainkan berupa segmen yang lebih pendek dengan tautan menuju potongan-potongan informasi lainnya. Halaman info dapat diakses dengan perintah “info”, atau untuk beberapa distro Linux, “pinfo” (tampilan yang lebih baik). Contoh:  info df menampilkan halaman informasi dari “df”.

Referensi:
Modul Praktikum Sistem Operasi - Linux Shell

Monday, November 3, 2014

PROSES DAN MANAJEMEN PROSES DI LINUX


          Proses adalah program yang sedang dieksekusi. terdapat beberapa. Berikut adalah beberapa tipe proses yang ada :
1. Foreground adalah proses yang diciptakan melalui terminal
2. Batch adalah proses yang dijalankan secara sekuensial
3. Daemon adalah proses yang menunggu permintaan dari proses lainnya

Sinyal
          Sinyal merupakan bentuk instruksi yang dikirimkan atau diterima untuk menjalankan suatu proses. Dalam pengirimannya sinyal dikirim dengan format kill [-nomor sinyal] PID. Nomor sinyal berisikan 1 sampai dengan angka yang didfinisikan sistem.

Mengirim Sinyal
          Mengirim sinyal adalah memberitahukan bahwa ada sesuatu yang akan dikendalikan. sinyal dikirimkan dengan format kill [-nomor sinyal] PID dengan terlebih dahulu PID diketahui
untuk lebih jelasnya, mari kita simak beberapa hasil percobaan perintah mengenai manajemen proses.

Status Proses
         Seperti percobaan yang telah dilakukan, perintah ps digunakan untuk melihat proses yang ada. pada sebelah kiri terdapat PID, yaitu nomor identitas proses sedangkan TTY adalah nama terminal dimana proses tersebut sedang berlangsung. Untuk melihat proses elemen lainnya dapat menggunakan ps -u.
         Dapat dilihat dari gambar di atas %CPU adalah presentase CPU time yang digunakan dalam proses. %MEM adalah presentase penggunaan memori SIZE adalah jumlah memori yang digunakan. START adalah waktu yang menunjukkan kapan proses itu dijalankan. Berikut beberapa perintah beserta sedikit penjelasannya untuk mengetahui status proses:
$ ps -u <user>
Hanya melihat proses yang dilakukan pemakai, melihat proses secara spesifik.

$ps -a
Untuk melihat proses lain yang ada.
$ps -au
Memiliki fungsi yang sama dengan opsi -a yaitu untuk melihat proses lain yang ada.

Menampilkan Hubungan Proses Parent dan Child
Pada perintah di atas -e berfungsi untuk menampilkan proses dengan karakter garis (\dan)
         Seperti percobaan di atas. dapat kita lihat, bahwa perintah $pstree digunakan untuk melihat sistem dalam bentuk hirarki/parent. Untuk menampilkan hubungan proses parent dan child terdapat beberapa perintah lainnya seperti :
$ps -eH
Opsi e digunakan untuk memilih semua proses sedangkan H digunakan untuk menampilkan proses secara hierarki
$pstree | grep mingetty
Digunakan untuk menampilkan semua proses mingetty yang berjalan pada system berupa console virtual. selain menampilkan semua proses, proses dikelompokkan dalam satu baris dengan suatu angka sebagai jumlah proses yang brejalan.
$pstree -p
Opsi p digunakan untuk melihat semua PID
$pstree -h
Digunakan untuk menampilkan proses dan ansector yang terlihat tebal.

Menampilkan Status Proses Dengan Berbagai Status Format
         Perintah $ps -e | more, digunakan untuk menampilkan semua proses dalam bentuk 4 kolom. PID, TTY, TIME dan CMD.
         Perintah $ps -eo pid,ppid,%mem,cmd | more digunakan untuk menampilkan kolom PID, PPID dan MEM. PPID adalah proses ID dari proses Parent. sedangkan %MEM adalah informasi penggunaan memori yang digunakan. Terdapat beberapa perintah lain untuk melihat tampilan proses dalam berbagai format, berikut sedikit penjelasannya :
$ps -ax : opsi x digunakan untuk menampilakan proses yang tidak dihasilkan terminal
$ps -ef : untuk menampilkan semua proses dengan format data penuh
$ps -eo pid,cmd | more : menampilkan semua proses dalam format sesuai definisi user yang terdiri dari kolom PID dan CMD

Mengontrol Proses pada Shell
         Perintah jobs digunakan untuk melihat status proses
$yes : digunakan utnuk mengirim output yang tidak pernah berhenti. dan untuk menghentikannya menggunakan ctrl+c
$yes > /dev/null : maksudnya adalah membelokkan standart output ke /dev/null
kill %<nomor job> : digunakan untuk menghentikan job. nomor job adalah PID

top
         Dengan perintah top, kita bisa melihat proses-proses yang sedang dijalankan. Disini kita bisa melihat process id (PID) siapa yang menjalankannya, berapa memory yang digunakan, berapa cpu yang dibutuhkan, sudah berapa lama dijalankan, dll.
htop
         Memiliki fungsi yang sama dengan top, namun process ditampilkan dengan penuh warna sehingga lebih mudah dan lebih enak dilihat. Namun untuk menggunakan htop, kita harus menambahkannya sendiri di Ubuntu dapat ditambahkan dengan perintah:
sudo apt-get install htop -y
Sedangkan di Fedora ditambahkan dengan perintah:
sudo yum install htop -y

Referensi:
http://www.fedoraku.info/2014/11/manajemen-proses-linux-melalui-terminal-tugas-praktikum/
http://fandi-kurniawan.blogspot.com/2014/04/proses-dan-manajemen-proses-pada-linux.html