Membaca Exif Foto Digital

Tiap foto digital (sebelum modifikasi) membawa informasi teknis tentang proses pembuatan fotonya. Informasi tersebut antara lain tanggal foto tersebut dibuat, tipe kamera yang digunakan, kecepatan rana (shutter speed, aperture, kepekaan sensor (ISO), focal length lensa yang dipakai, ukuran file, dsb. Banyak juga kamera yang sudah memiliki kemampuan untuk menambahkan informasi nama pemilik kamera, copyright, atau bahkan koordinat lokasi foto tersebut diabadikan. Informasi teknis inilah yang kadang disebut sebagai metadata foto. Ada juga yang menyebutnya sebagai Exif Data.

Windows & Mac OSX sudah dilengkapi dengan fitur untuk membaca Exif data foto digital. Untuk menampilkan data Exif di Windows caranya sangat mudah, pada Windows Explorer cukup klik kanan pada foto yang ingin dilihat lalu klik Properties. Misalnya seperti pada contoh di bawah ini :

Contoh di atas diambil dari Windows 7, pada jendela Properties klik pada tab Details untuk melihat data Exif foto tersebut :

Sementara di Mac OSX Finder, caranya dengan klik kanan pada fotonya lalu klik Get Info. Caranya tadi bisa juga diganti dengan kombinasi tombol ⌘i .

Mac akan menampilkan jendela baru seperti tampilan di bawah ini :

Informasi Exif foto tersebut ada di bagian More Info. Sayangnya informasi yang muncul cukup terbatas. Alternatifnya kita juga bisa melihat informasi Exif foto dari aplikasi Preview. Bila kita sedang membuka foto menggunakan Mac Preview, kita bisa menggunakan kombinasi tombol yang sama (⌘i). Tampilan jendela yang muncul seperti di bawah ini :

Di Linux saya biasanya menggunakan perintah exiftool dari Terminal untuk membaca Exif data. Di Ubuntu Linux perintah exiftool ini tersedia dalam paket libimage-exiftool-perl. Cara pemakaiannya cukup mudah tinggal ketikkan exiftool lalu ikuti dengan nama file fotonya, misalnya seperti contoh di bawah ini :

ttirtawi@gbt733:~$ uname -a
Linux gbt733 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:32:08 UTC 2012 i686 i686 i686 GNU/Linux
ttirtawi@gbt733:~$ exiftool DSCF0068.JPG 
ExifTool Version Number         : 8.60
File Name                       : DSCF0068.JPG
Directory                       : .
File Size                       : 1373 kB
File Modification Date/Time     : 2014:01:19 21:09:32+07:00
File Permissions                : rwxrwxr-x
File Type                       : JPEG
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Profile CMM Type                : Lino
Profile Version                 : 2.1.0
Profile Class                   : Display Device Profile
Color Space Data                : RGB
Profile Connection Space        : XYZ
Profile Date Time               : 1998:02:09 06:49:00
Profile File Signature          : acsp
Primary Platform                : Microsoft Corporation
CMM Flags                       : Not Embedded, Independent
Device Manufacturer             : IEC
Device Model                    : sRGB
Device Attributes               : Reflective, Glossy, Positive, Color
Rendering Intent                : Perceptual
Connection Space Illuminant     : 0.9642 1 0.82491
Profile Creator                 : HP
Profile ID                      : 0
Profile Copyright               : Copyright (c) 1998 Hewlett-Packard Company
Profile Description             : sRGB IEC61966-2.1
Media White Point               : 0.95045 1 1.08905
Media Black Point               : 0 0 0
Red Matrix Column               : 0.43607 0.22249 0.01392
Green Matrix Column             : 0.38515 0.71687 0.09708
Blue Matrix Column              : 0.14307 0.06061 0.7141
Device Mfg Desc                 : IEC http://www.iec.ch
Device Model Desc               : IEC 61966-2.1 Default RGB colour space - sRGB
Viewing Cond Desc               : Reference Viewing Condition in IEC61966-2.1
Viewing Cond Illuminant         : 19.6445 20.3718 16.8089
Viewing Cond Surround           : 3.92889 4.07439 3.36179
Viewing Cond Illuminant Type    : D50
Luminance                       : 76.03647 80 87.12462
Measurement Observer            : CIE 1931
Measurement Backing             : 0 0 0
Measurement Geometry            : Unknown (0)
Measurement Flare               : 0.999%
Measurement Illuminant          : D65
Technology                      : Cathode Ray Tube Display
Red Tone Reproduction Curve     : (Binary data 2060 bytes, use -b option to extract)
Green Tone Reproduction Curve   : (Binary data 2060 bytes, use -b option to extract)
Blue Tone Reproduction Curve    : (Binary data 2060 bytes, use -b option to extract)
Exif Byte Order                 : Big-endian (Motorola, MM)
Make                            : FUJIFILM
Camera Model Name               : X100S
Orientation                     : Horizontal (normal)
X Resolution                    : 72
Y Resolution                    : 72
Resolution Unit                 : inches
Software                        : Digital Camera X100S Ver1.03
Modify Date                     : 2014:01:18 00:23:40
Copyright                       : 
Exposure Time                   : 1/40
F Number                        : 2.0
Exposure Program                : Aperture-priority AE
ISO                             : 1250
Sensitivity Type                : Standard Output Sensitivity
Exif Version                    : 0230
Date/Time Original              : 2014:01:18 00:23:40
Create Date                     : 2014:01:18 00:23:40
Components Configuration        : Y, Cb, Cr, -
Compressed Bits Per Pixel       : 3.2
Shutter Speed Value             : 1/39
Aperture Value                  : 2.0
Brightness Value                : -1.83
Exposure Compensation           : -0.33
Max Aperture Value              : 2.0
Metering Mode                   : Multi-segment
Light Source                    : Unknown
Flash                           : Off, Did not fire
Focal Length                    : 23.0 mm
Flashpix Version                : 0100
Color Space                     : sRGB
Exif Image Width                : 2104
Exif Image Height               : 2104
Focal Plane X Resolution        : 2092
Focal Plane Y Resolution        : 2092
Focal Plane Resolution Unit     : cm
Sensing Method                  : One-chip color area
File Source                     : Digital Camera
Custom Rendered                 : Normal
Exposure Mode                   : Auto
White Balance                   : Auto
Scene Capture Type              : Standard
Sharpness                       : Normal
Subject Distance Range          : Unknown
XMP Toolkit                     : XMP Core 5.4.0
Creator Tool                    : Digital Camera X100S Ver1.03
Date Created                    : 2014:01:18 00:23:40
Rights                          : 
Image Width                     : 2104
Image Height                    : 2104
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:2 (2 1)
Aperture                        : 2.0
Image Size                      : 2104x2104
Scale Factor To 35 mm Equivalent: 3.0
Shutter Speed                   : 1/40
Circle Of Confusion             : 0.010 mm
Field Of View                   : 28.9 deg
Focal Length                    : 23.0 mm (35 mm equivalent: 70.0 mm)
Hyperfocal Distance             : 26.78 m
Light Value                     : 3.7
ttirtawi@gbt733:~$

Aplikasi exiftool ini tersedia juga di Mac OSX, saya install exiftool di Mac melalui MacPorts. Saat ini yang tersedia di MacPorts adalah exiftool-5.16, nama paketnya adalah p5.16-image-exiftool. Ini contoh tampilan output exiftool di Mac OSX :

ttirtawi@macmini:oV5HwAWxTKubQFBq8dc7kw$ exiftool-5.16 DSC_1627.JPG 
ExifTool Version Number         : 9.06
File Name                       : DSC_1627.JPG
Directory                       : .
File Size                       : 1802 kB
File Modification Date/Time     : 2013:12:15 18:10:57+07:00
File Access Date/Time           : 2014:01:17 16:54:28+07:00
File Permissions                : rw-r--r--
File Type                       : JPEG
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Current IPTC Digest             : 5c2c0a36d65e204752971ce03e17cae2
Coded Character Set             : UTF8
Application Record Version      : 2
Special Instructions            : oV5HwAWxTKubQFBq8dc7kw
IPTC Digest                     : 5c2c0a36d65e204752971ce03e17cae2
Profile CMM Type                : Lino
Profile Version                 : 2.1.0
Profile Class                   : Display Device Profile
Color Space Data                : RGB
Profile Connection Space        : XYZ
Profile Date Time               : 1998:02:09 06:49:00
Profile File Signature          : acsp
Primary Platform                : Microsoft Corporation
CMM Flags                       : Not Embedded, Independent
Device Manufacturer             : IEC
Device Model                    : sRGB
Device Attributes               : Reflective, Glossy, Positive, Color
Rendering Intent                : Perceptual
Connection Space Illuminant     : 0.9642 1 0.82491
Profile Creator                 : HP
Profile ID                      : 0
Profile Copyright               : Copyright (c) 1998 Hewlett-Packard Company
Profile Description             : sRGB IEC61966-2.1
Media White Point               : 0.95045 1 1.08905
Media Black Point               : 0 0 0
Red Matrix Column               : 0.43607 0.22249 0.01392
Green Matrix Column             : 0.38515 0.71687 0.09708
Blue Matrix Column              : 0.14307 0.06061 0.7141
Device Mfg Desc                 : IEC http://www.iec.ch
Device Model Desc               : IEC 61966-2.1 Default RGB colour space - sRGB
Viewing Cond Desc               : Reference Viewing Condition in IEC61966-2.1
Viewing Cond Illuminant         : 19.6445 20.3718 16.8089
Viewing Cond Surround           : 3.92889 4.07439 3.36179
Viewing Cond Illuminant Type    : D50
Luminance                       : 76.03647 80 87.12462
Measurement Observer            : CIE 1931
Measurement Backing             : 0 0 0
Measurement Geometry            : Unknown (0)
Measurement Flare               : 0.999%
Measurement Illuminant          : D65
Technology                      : Cathode Ray Tube Display
Red Tone Reproduction Curve     : (Binary data 2060 bytes, use -b option to extract)
Green Tone Reproduction Curve   : (Binary data 2060 bytes, use -b option to extract)
Blue Tone Reproduction Curve    : (Binary data 2060 bytes, use -b option to extract)
Exif Byte Order                 : Big-endian (Motorola, MM)
Make                            : NIKON CORPORATION
Camera Model Name               : NIKON D7000
Orientation                     : Horizontal (normal)
X Resolution                    : 300
Y Resolution                    : 300
Resolution Unit                 : inches
Software                        : iPhoto 9.5.1
Modify Date                     : 2013:12:14 22:41:46
Artist                          : TEDY TIRTAWIDJAJA
Copyright                       : https://blog.tedytirta.info
Exposure Time                   : 1/160
F Number                        : 7.1
Exposure Program                : Manual
ISO                             : 250
Sensitivity Type                : Recommended Exposure Index
Exif Version                    : 0230
Date/Time Original              : 2013:12:14 22:41:46
Create Date                     : 2013:12:14 22:41:46
Components Configuration        : Y, Cb, Cr, -
Compressed Bits Per Pixel       : 4
Exposure Compensation           : 0
Max Aperture Value              : 1.7
Metering Mode                   : Multi-segment
Light Source                    : Unknown
Flash                           : On, Return detected
Focal Length                    : 35.0 mm
User Comment                    : 
Sub Sec Time                    : 10
Sub Sec Time Original           : 10
Sub Sec Time Digitized          : 10
Flashpix Version                : 0100
Color Space                     : sRGB
Exif Image Width                : 4916
Exif Image Height               : 1550
Sensing Method                  : One-chip color area
File Source                     : Digital Camera
Custom Rendered                 : Normal
Exposure Mode                   : Manual
White Balance                   : Auto
Digital Zoom Ratio              : 1
Focal Length In 35mm Format     : 52 mm
Scene Capture Type              : Standard
Gain Control                    : None
Contrast                        : Normal
Saturation                      : Normal
Sharpness                       : Normal
Subject Distance Range          : Unknown
XMP Toolkit                     : XMP Core 5.4.0
Lens Info                       : 35mm f/1.8
Image Number                    : 3698
Lens                            : AF-S DX Nikkor 35mm f/1.8G
Flash Compensation              : 0
Serial Number                   : 8187760
Creator                         : TEDY TIRTAWIDJAJA
Rights                          : https://blog.tedytirta.info
Instructions                    : oV5HwAWxTKubQFBq8dc7kw
Date Created                    : 2013:12:14 22:41:46
Creator Tool                    : iPhoto 9.5.1
Image Width                     : 4916
Image Height                    : 1550
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Aperture                        : 7.1
Image Size                      : 4916x1550
Scale Factor To 35 mm Equivalent: 1.5
Shutter Speed                   : 1/160
Create Date                     : 2013:12:14 22:41:46.10
Date/Time Original              : 2013:12:14 22:41:46.10
Modify Date                     : 2013:12:14 22:41:46.10
Circle Of Confusion             : 0.020 mm
Field Of View                   : 38.2 deg
Focal Length                    : 35.0 mm (35 mm equivalent: 52.0 mm)
Hyperfocal Distance             : 8.53 m
Lens ID                         : Unknown (-2147483648) 35mm
Light Value                     : 11.7
ttirtawi@macmini:oV5HwAWxTKubQFBq8dc7kw$

Solaris 10 : Unique Instance Error Pkgadd

Untuk menginstal paket di Solaris 10, saya biasanya menggunakan perintah pkgadd. Misalnya saya punya paket Wireshark yang saya dapat dari Internet. Untuk menginstalnya saya gunakan perintah seperti berikut ini :

root@testbed:/tmp# pkgadd -d wireshark-1.6.8-sol10-sparc-local 

The following packages are available:
  1  SMCwires     wireshark
                  (sparc) 1.6.8

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: 1

Processing package instance <SMCwires> from </tmp/wireshark-1.6.8-sol10-sparc-local>

wireshark(sparc) 1.6.8

Current administration requires that a unique instance of the
<SMCwires> package be created.  However, the maximum number of
instances of the package which may be supported at one time on the
same system has already been met.

No changes were made to the system.
root@testbed:/tmp# 

Ternyata muncul error seperti di atas, pkgadd menolak untuk menginstal Wireshark versi 1.6.8 karena sudah ada Wireshark versi lain. “Current administration requires that a unique instance”, itu tandanya saya perlu membuang dulu Wireshark versi lamanya. Membuang paket (uninstall) di Solaris 10, saya perlu menggunakan perintah pkgrm seperti contoh di bawah ini :

root@testbed:/tmp# pkgrm SMCwires

The following package is currently installed:
   SMCwires  wireshark
             (sparc) 1.6.4

Do you want to remove this package? [y,n,?,q] y

## Removing installed package instance <SMCwires>
## Verifying package <SMCwires> dependencies in global zone
## Processing package information.
## Removing pathnames in class <none>
/usr/local/share/wireshark/ws.css
/usr/local/share/wireshark/wireshark.html
/usr/local/share/wireshark/wireshark-filter.html
/usr/local/share/wireshark/wimaxasncp/dictionary.xml
/usr/local/share/wireshark/wimaxasncp/dictionary.dtd
/usr/local/share/wireshark/wimaxasncp
...
...
...
/usr/local/bin/wireshark
/usr/local/bin/tshark
/usr/local/bin/text2pcap
/usr/local/bin/rawshark
/usr/local/bin/randpkt
/usr/local/bin/mergecap
/usr/local/bin/idl2wrs
/usr/local/bin/editcap
/usr/local/bin/dumpcap
/usr/local/bin/dftest
/usr/local/bin/capinfos
/usr/local/bin <shared pathname not removed>
## Updating system information.

Removal of <SMCwires> was successful.
root@testbed:/tmp# 

Setelah Wireshark versi 1.6.4 tadi sukses di-uninstall, barulah Solaris mengijinkan saya menginstal Wireshark versi 1.6.8.

root@testbed:/tmp# pkgadd -d wireshark-1.6.8-sol10-sparc-local 
The following packages are available:
  1  SMCwires     wireshark
                  (sparc) 1.6.8

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: 1

Processing package instance <SMCwires> from </tmp/wireshark-1.6.8-sol10-sparc-local>

wireshark(sparc) 1.6.8
Gerald Combs et al
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
   7 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

Installing wireshark as <SMCwires>

## Installing part 1 of 1.
/usr/local/bin/capinfos
/usr/local/bin/dftest
/usr/local/bin/dumpcap
/usr/local/bin/editcap
/usr/local/bin/idl2wrs
/usr/local/bin/mergecap
/usr/local/bin/randpkt
/usr/local/bin/rawshark
/usr/local/bin/text2pcap
/usr/local/bin/tshark
/usr/local/bin/wireshark
...
...
...
/usr/local/share/wireshark/tshark.html
/usr/local/share/wireshark/wimaxasncp/dictionary.dtd
/usr/local/share/wireshark/wimaxasncp/dictionary.xml
/usr/local/share/wireshark/wireshark-filter.html
/usr/local/share/wireshark/wireshark.html
/usr/local/share/wireshark/ws.css
[ verifying class <none> ]

Installation of <SMCwires> was successful.
root@testbed:/tmp# 

Catatan Banjir 2014

Tidak terasa sudah setahun berlalu sejak Jakarta terkepung banjir. Beberapa hari ini hal yang sama berulang, Jakarta diguyur hujan terus menerus. Rekan saya yang tinggal di daerah Kelapa Gading menceritakan banyak genangan air yang cukup dalam di sana. Salah satu rekan saya juga terjebak di kantornya di Kelapa Gading tidak bisa pulang karena depan kantornya sudah tergenangi air & tidak bisa dilewati mobil.

Tadi sore saya keluar memutari Tomang, Cideng, Tanah Abang, Pejompongan, Senayan, lalu kembali lagi ke Tomang lewat Slipi. Semuanya terlihat kering & tidak terlihat ada genangan air.Di Slipi lalu lintasnya padat mulai Slipi Jaya. Ternyata ini efek dari penutupan jalan layang Tomang yang menuju ke Taman Anggrek. Rupanya seputaran Mal Citraland & Trisakti masih tergenang banjir. Di perempatan Tomang ada papan bertuliskan Grogol banjir seperti ini :

Persis seperti tahun lalu, kendaraan dari arah Mal Taman Anggrek diperbolehkan melawan arah menuju perempatan Tomang.

Sepanjang hari ini gerimis kecil baru turun 1x tadi siang. Sepertinya sekarang mitos banjir 5 tahunan di Jakarta sudah terpatahkan. Tidak hanya Jakarta yang kebanjiran, daerah lain seperti Pamanukan, Indramayu juga mengalami banjir. Bahkan yang mengejutkan Manado mengalami banjir yang cukup parah. Saudara saya mengabarkan bahwa 3 hari Manado banjir tanpa ada aliran listrik, telepon pun tidak bisa digunakan.

Semoga curah hujan kembali normal & banjir ini segera berlalu.

Daftar Paket & Isinya di Sistem Unix

Di lingkungan sistem operasi Unix, aplikasi (software) dikenal sebagai package (paket). Masing-masing varian Unix punya cara sendiri-sendiri untuk menampilkan daftar paket yang terinstal. Artikel ini saya tulis sebagai catatan untuk mengingat-ingat aneka macam cara menampilkan daftar paket di beberapa varian Unix.

Di Solaris 10 misalnya saya ingin melihat paket Wireshark saya menggunakan perintah pkginfo. Karena di Solaris 10 penamaan paket cukup unik, saya perlu melihat dulu apa nama paket yang terdaftar.

root@fda05:/# cat /etc/release 
                   Oracle Solaris 10 8/11 s10s_u10wos_17b SPARC
  Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
                            Assembled 23 August 2011
root@fda05:/# 
root@fda05:/# pkginfo | grep -i wireshark
application SMCwires                         wireshark
root@fda05:/#

Dari hasil pkginfo di atas, saya bisa lihat bahwa nama paket Wireshark adalah SMCwires. Lalu saya bisa cari detil informasi tentang paket SMCwires menggunakan perintah yang sama seperti berikut ini :

root@fda05:/# pkginfo -l SMCwires
   PKGINST:  SMCwires
      NAME:  wireshark
  CATEGORY:  application
      ARCH:  sparc
   VERSION:  1.6.8
   BASEDIR:  /usr/local
    VENDOR:  Gerald Combs et al
    PSTAMP:  Steve Christensen
  INSTDATE:  Jul 30 2012 03:08
     EMAIL:  steve@smc.vnet.net
    STATUS:  completely installed
     FILES:      518 installed pathnames
                   7 shared pathnames
                  33 directories
                 134 executables
              266776 blocks used (approx)
root@fda05:/#

Dengan menggunakan opsi -l saya bisa lihat versi paket yang terinstal, lokasi instalasi, dsb. Meskipun saya tahu lokasi paket tersebut ada di /usr/local, saya masih belum tahu file apa saja yang dimiliki oleh paket SMCwires. Untuk memeriksa file apa saja yang dimiliki oleh paket tersebut saya bisa menggunakan perintah pkgchk seperti berikut ini :

root@fda05:/# pkgchk -v SMCwires
/usr/local/bin
/usr/local/bin/capinfos
/usr/local/bin/dftest
/usr/local/bin/dumpcap
/usr/local/bin/editcap
/usr/local/bin/idl2wrs
/usr/local/bin/mergecap
/usr/local/bin/randpkt
/usr/local/bin/rawshark
/usr/local/bin/text2pcap
/usr/local/bin/tshark
/usr/local/bin/wireshark
/usr/local/doc
/usr/local/doc/wireshark
...
...
...
/usr/local/share/wireshark/tpncp
/usr/local/share/wireshark/tpncp/tpncp.dat
/usr/local/share/wireshark/tshark.html
/usr/local/share/wireshark/wimaxasncp
/usr/local/share/wireshark/wimaxasncp/dictionary.dtd
/usr/local/share/wireshark/wimaxasncp/dictionary.xml
/usr/local/share/wireshark/wireshark-filter.html
/usr/local/share/wireshark/wireshark.html
/usr/local/share/wireshark/ws.css
root@fda05:/#

Hasil perintah pkgchk tadi cukup panjang sehingga saya hanya tampilkan bagian awal & akhirnya saja.

Solaris 11 menggunakan pendekatan yang berbeda untuk menginvetarisir paket-paketnya. Kita perlu menggunakan perintah pkg list untuk melihat daftar paket yang terinstal di mesin Solaris 11. Misalnya seperti contoh berikut ini :

root@host02:/# cat /etc/release 
                            Oracle Solaris 11.1 SPARC
  Copyright (c) 1983, 2012, Oracle and/or its affiliates.  All rights reserved.
                           Assembled 19 September 2012
root@host02:/# 
root@host02:/# pkg list | grep wireshark
diagnostic/wireshark                              1.8.9-0.175.1.11.0.4.0     i--
diagnostic/wireshark/tshark                       1.8.9-0.175.1.11.0.4.0     i--
diagnostic/wireshark/wireshark-common             1.8.9-0.175.1.11.0.4.0     i--
root@host02:/#

Kalau di Solaris 10 kita menggunakan pkginfo di Solaris 11 kita menggunakan perintah pkg info (dengan spasi) untuk menampilkan detil informasi tentang suatu paket.

root@host02:/# pkg info wireshark
          Name: diagnostic/wireshark
       Summary: Graphical network protocol analyzer
      Category: Applications/Internet
         State: Installed
     Publisher: solaris
       Version: 1.8.9
 Build Release: 5.11
        Branch: 0.175.1.11.0.4.0
Packaging Date: Thu Sep 05 15:59:08 2013
          Size: 2.86 MB
          FMRI: pkg://solaris/diagnostic/wireshark@1.8.9,5.11-0.175.1.11.0.4.0:20130905T155908Z
root@host02:/#

Untuk melihat semua file yang dimiliki oleh Wireshark, Solaris 11 menyediakan perintah pkg contents seperti contoh di bawah ini :

root@host02:/# pkg contents  wireshark
PATH
usr
usr/sbin
usr/sbin/wireshark
usr/share
usr/share/applications
usr/share/applications/wireshark.desktop
usr/share/man
usr/share/man/man1
usr/share/man/man1/wireshark.1
usr/share/pixmaps
usr/share/pixmaps/wireshark.png
root@host02:/#

FreeBSD menggunakan perintah yang mirip dengan Solaris 11 untuk menampilkan informasi tentang suatu paket :

root@testbsd:~ # uname -a
FreeBSD testbsd 9.2-RELEASE FreeBSD 9.2-RELEASE #0 r255898: Thu Sep 26 22:50:31 UTC 2013     root@bake.isc.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
root@testbsd:~ # 
root@testbsd:~ # pkg_info | grep wireshark
wireshark-1.10.1    Powerful network analyzer/capture tool
root@testbsd:~ # pkg_info -L wireshark-1.10.1
Information for wireshark-1.10.1:

Files:
/usr/local/man/man1/capinfos.1.gz
/usr/local/man/man1/editcap.1.gz
/usr/local/man/man1/mergecap.1.gz
/usr/local/man/man1/rawshark.1.gz
/usr/local/man/man1/text2pcap.1.gz
/usr/local/man/man1/dftest.1.gz
/usr/local/man/man1/randpkt.1.gz
/usr/local/man/man1/reordercap.1.gz
/usr/local/man/man1/wireshark.1.gz
/usr/local/man/man1/dumpcap.1.gz
/usr/local/man/man1/tshark.1.gz
/usr/local/man/man4/wireshark-filter.4.gz
/usr/local/bin/capinfos
/usr/local/bin/dftest
/usr/local/bin/dumpcap
/usr/local/bin/editcap
/usr/local/bin/wireshark
/usr/local/bin/mergecap
/usr/local/bin/randpkt
/usr/local/bin/rawshark
/usr/local/bin/reordercap
/usr/local/bin/tshark
/usr/local/bin/text2pcap
...
...
... 
/usr/local/share/wireshark/tshark.html
/usr/local/share/wireshark/text2pcap.html
/usr/local/share/wireshark/tpncp/tpncp.dat
/usr/local/share/wireshark/wimaxasncp/dictionary.dtd
/usr/local/share/wireshark/wimaxasncp/dictionary.xml
/usr/local/share/wireshark/wireshark-filter.html
/usr/local/share/wireshark/wireshark.html
/usr/local/share/wireshark/ws.css
/usr/local/share/applications/wireshark.desktop

root@testbsd:~ #

Sementara di Ubuntu Linux (atau Debian) kita bisa menggunakan perintah dpkg -l untuk menampilkan semua paket yang terinstal.

ttirtawi@gbt733:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.10
Release:    12.10
Codename:   quantal
ttirtawi@gbt733:~$ 
ttirtawi@gbt733:~$ dpkg -l | grep wireshark
ii  libwireshark-data                    1.8.2-2                                   all          network packet dissection library -- data files
ii  libwireshark2                        1.8.2-2                                   i386         network packet dissection library -- shared library
ii  wireshark                            1.8.2-2                                   i386         network traffic analyzer - GTK+ version
ii  wireshark-common                     1.8.2-2                                   i386         network traffic analyzer - common files
ttirtawi@gbt733:~$

Informasi semua file yang dimiliki suatu paket dapat diperoleh dengan menjalankan perintah dpkg -L seperti contoh di bawah ini :

ttirtawi@gbt733:~$ dpkg -L wireshark
/.
/usr
/usr/share
/usr/share/applications
/usr/share/applications/wireshark.desktop
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/wireshark.1.gz
/usr/share/doc
/usr/share/doc/wireshark
/usr/share/doc/wireshark/copyright
/usr/share/pixmaps
/usr/share/pixmaps/wsicon32.xpm
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/scalable
/usr/share/icons/hicolor/scalable/apps
/usr/share/icons/hicolor/scalable/apps/wireshark.svg
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/48x48/apps/wireshark.png
/usr/share/menu
/usr/share/menu/wireshark
/usr/bin
/usr/bin/wireshark
/usr/share/doc/wireshark/README.Debian
/usr/share/doc/wireshark/changelog.Debian.gz
ttirtawi@gbt733:~$

Fedora Linux atau distro berbasis Red Hat umumnya menggunakan perintah rpm untuk segala hal yang berkaitan dengan paket-paket aplikasinya. Misalnya pada contoh di bawah ini, di Fedora 16 saya bisa menggunakan perintah rpm -qa untuk menampilkan semua paket yang terintal :

ttirtawi@appliance:~$ lsb_release -a
LSB Version:    :core-4.0-ia32:core-4.0-noarch
Distributor ID: Generic
Description:    Generic release 16 (Generic)
Release:    16
Codename:   Generic
ttirtawi@appliance:~$ 
ttirtawi@appliance:~$ rpm -qa | grep -i wireshark
wireshark-1.6.10-1.fc16.i686
ttirtawi@appliance:~$

Sama seperti contoh-contoh sebelumnya, untuk menampilkan informasi tentang semua file yang dimiliki oleh Wireshark saya bisa menggunakan perintah rpm -ql seperti ditunjukkan pada contoh di bawah ini :

ttirtawi@appliance:~$ rpm -ql wireshark
...
...
...
/usr/sbin/capinfos
/usr/sbin/dftest
/usr/sbin/dumpcap
/usr/sbin/editcap
/usr/sbin/mergecap
/usr/sbin/randpkt
/usr/sbin/rawshark
/usr/sbin/text2pcap
/usr/sbin/tshark
...
...
...
...
/usr/share/wireshark/rawshark.html
/usr/share/wireshark/services
/usr/share/wireshark/smi_modules
/usr/share/wireshark/text2pcap.html
/usr/share/wireshark/tpncp
/usr/share/wireshark/tpncp/tpncp.dat
/usr/share/wireshark/tshark.html
/usr/share/wireshark/wimaxasncp
/usr/share/wireshark/wimaxasncp/dictionary.dtd
/usr/share/wireshark/wimaxasncp/dictionary.xml
/usr/share/wireshark/wireshark-filter.html
/usr/share/wireshark/wireshark.html
/usr/share/wireshark/ws.css
ttirtawi@appliance:~$ rpm -qa | grep -i wireshark
wireshark-1.6.10-1.fc16.i686
ttirtawi@appliance:~$

Vim : Column Mode Edit

Salah satu fitur yang paling saya suka dari Vim adalah kemampuannya melakukan column mode edit. Saya pertama kali kenal fitur edit kolom ini dari UltaEdit (teks editor untuk Windows).

Vim menyebut mode edit kolom ini sebagai mode Visual Block.

Fitur ini sangat berguna antara lain untuk :

  • menyisipkan huruf/kata/kalimat yang sama pada beberapa baris sekaligus
  • menghapus huruf/kata/kalimat secara bersamaan pada beberapa baris sekaligus
  • menghapus beberapa baris teks sekaligus

Kata kuncinya adalah sekaligus; mempersingkat pekerjaan yang berulang untuk mengedit sebuah text file.

Yang paling sering saya gunakan misalnya menyisipkan tanda # pada beberapa baris sekaligus. Di beberapa bahasa pemrograman, seperti Bash script, tanda # dipakai untuk menandai baris-baris komentar (comments). Baris yang diawali dengan tanda # berarti dianggap bukan bagian utama program tersebut. Maka ada istilah comment out yang berarti menambahkan tanda # pada baris program untuk menjadikannya sebagai komentar. Dan sebaliknya ada juga istilah uncomment yang menunjuk pada penghapusan tanda #, mengubah komentar menjadi bagian utama dari program.

Biasanya saya perlu itu untuk mengabaikan dulu sementara beberapa baris program, bukan bermaksud menjadikannya sebagai komentar. Bisa dibayangkan bila ada puluhan/ratusan baris yang harus di-“comment out”, berapa kali saya harus mengetikkan tanda #. Nah dengan mode edit kolom tadi menambahkan tanda # jadi mudah, cukup dengan satu kali ketik & semua baris akan kena efeknya.

Berikut adalah contoh penggunaan mode Visual di Vim untuk menyisipkan teks pada beberapa baris sekaligus.

  1. Misalnya saya sedang mengedit file .bashrc. Saya ingin comment out fungsi converttohex seperti yang ditunjukkan pada tangkapan layar berikut ini :
  2. Yang pertama saya lakukan adalah tekan tombol Esc lalu ikuti dengan Control v.

    Akan muncul indikator “– VISUAL BLOCK –” di bagian bawah Vim.
  3. Lalu saya bisa menggunakan tombol panah atas/bawah untuk memilih baris mana saja yang akan saya edit.

    Pada contoh di atas saya ingin menyisipkan tanda # di awal setiap baris fungsi converttohex.
  4. Langkah berikutnya saya perlu menekan tombol Shift i untuk mulai menyisipkan teks. Setelah itu akan muncul indikator “– INSERT –” di bagian bawah Vim.

    Saat menggunakan Vi atau Vim, kita menggunakan tombol “i” (huruf i kecil) untuk mulai mengetikkan teks. Tapi saat sedang berada pada VISUAL BLOCK, kita harus menggunakan huruf I besar (tekan tombol Shift dan huruf i bersamaan) bila ingin mulai mengetikkan teks.
  5. Saya tinggal ketikkan tanda # sekali saja.

    Hmm, padahal tadi saya ingin menambahkan tanda # di beberapa baris sekaligus..kok yang muncul di layar hanya 1 tanda # di baris pertama?
  6. Langkah berikutnya adalah menekan tombol Esc. Ajaibnya begitu saya tekan tombol Esc, tanda # tadi muncul di semua baris yang sudah saya pilih :

Prinsip yang sama bisa dipakai untuk menghapus beberapa kata sekaligus seperti ini :

  1. Tekan tombol Control v lalu blok kolom yang ingin dihapus (gunakan tombol panah atas-bawah-kiri-kanan untuk memilih teksnya) :
  2. Lalu tekan tombol x untuk menghapus kolom yang sudah diblok tadi :

Kira-kira seperti itu cara menggunakan Vim dengan mode Visual Block untuk menambahkan atau menghapus teks pada beberapa baris sekaligus.