Catatan Ngoprek Harian Edisi 1


Bismillahirrahmanirrahim.

Ngoprek adalah bahasa slang untuk mengekspresikan tindakan mengatasi keterbatasan baik secara hardware maupun software dalam lingkup ilmu komputer. Sementara itu definisi saya. Tulisan ini tujuannya agar saya tidak membuang oprekan yang saya lakukan, sebagai rujukan jika qadarullah ada yang membutuhkan, dan sebagai bahan untuk posting blog saya. Saya ingin ini jadi catatan yang panjang dan menambah jumlah tutorial Linux berbahasa Indonesia. Semoga bermanfaat dan menginspirasi Anda untuk membuat catatan serupa.

1. Mengambil skrinsot dari lingkungan CLI murni

Tanpa X, tentu saya tidak bisa menjalankan Shutter atau KSnapshot atau GNOME Screenshot di Linux. Lalu bagaimana jika saya saat ini berada di tty1 yang notabene berada “di luar” X? Atau kalau X tidak ada sama sekali? Jawabannya mudah sekali. Instal saja program bernama fbcat. Perintahnya:

fbcat > gambar_tty.ppm

Skrinsot:

Format PPM ini walaupun berisi gambar piksel hitam putih, ukurannya besar sekali. Punya saya jadi 3 MB. Setelah dikonversi ke JPEG, jadi 42 KB.

2. Vim punya dua mode
Baru-baru ini saya terkesan sekali dengan Vim (text editor paling jos kata para hacker). Gara-gara pernyataan Pak Engkur (Kurniadi) di kanal #ubuntu-indonesia:

[17:38:08] <engkur> coba maenan consol text terus deh, pasti setuju pake vim lebih enak

Ternyata Vim betul-betul jos. Keren, andai Anda tahu. Oke, mulai. Vim atau vi itu, punya 2 modus. Yakni modus insert dan modus command. Pantas saja saya kesusahan pakai Vim lha wong saya tidak tahu adanya 2 modus ini. Vim itu tidak seperti Notepad, ia dibuat untuk penggunaan di lingkungan CLI murni. Jadi yang namanya shortcut key adalah segala-galanya di Vim. Bahkan arrow key saja tidak jalan sebagaimana di Notepad kalau pakai Vim. Shortcut key dilakukan hanya ketika Vim ada pada command mode, sedangkan memasukkan tulisan dilakukan hanya ketika Vim ada pada insert mode.

  • Command mode: tekan ‘Esc’, lalu langsung masukkan perintah
  • Insert mode: tekan ‘i’

Skrinsot:


Contoh perintah Vim: ‘:w’ untuk menyimpan (setara Ctrl+S) ‘:q’ untuk keluar (setara Ctrl+Q); Jangan masukkan tulisan apa pun ketika berada dalam modus command.

3. Vim rakus shortcut key
Masuklah dalam command mode, lalu ketik ini:

:w teks_dari_vim.txt

maka nanti tercipta sebuah berkas teks pada direktori tempat Vim dijalankan. Lihat gambar ini:

Perintah lainnya sangat banyak. Saya baru tahu perintah ini:

:h

Hasilnya adalah membuka Help milik Vim. Ini gambarnya:


Ingat, segala perintah Vim diawali dengan titik dua (:). Inilah yang membuat saya lama kebingungan dengan Vim. Selama ini saya tidak tahu kalau perintah Vim diawali dengan titik dua.

4. Vim dan HJKL sebagai panah
Ketika ada dalam modus command, HL itu untuk kiri-kanan, sedangkan JK untuk atas-bawah untuk kursor. Vim tidak menerima panah kiri-bawah-kanan-atas sebagai masukan pengatur posisi kursor.

5. ddrescue sebagai ganti dd untuk bakar ISO ke USB Flash Disk
Saya beberapa kali menggunakan dd untuk membuat liveusb untuk Linux. Namun yang saya sayangkan, tidak interaktif dia. Tidak ada progress bar ataupun sekadar keterangan sampai mana nge-burn-nya. Namun baru malam ini saya tahu ddrescue (dari akang @Yudha Priyana Hardjo) yang fungsinya serupa dd tetapi interaktif ada keterangan burning-nya cukup lengkap. Lagian, ddrescue ini sangat jauh lebih cepat daripada dd. Dan tidak mengakibatkan hang sebagaimana dd. Saya pakai ddrescue ini gara-gara saya gagal terus membuat liveusb untuk openSUSE. Walau akhirnya ddrescue ini gagal juga, sudahlah saya tulis saja sebagai hasil ngoprek.

$ ddrescue -fv openSUSE-12.3-KDE-Live-i686.iso /dev/sdc1 

Dengan bentuk umum:

$ ddrescue -fv $/path/iso/anda.iso $/path/flash/disk/anda

Cara mengetahui letak flash disk:

# fdisk -l

Catatan penting: jangan ddrescue kepada flash disk yang menancap di USB 3. Itu mengakibatkan hang Ubuntu seperti dd. Walau hang-nya tidak separah dd ketika membakar ke USB 3, tetapi sedikit mengganggu.

6. apt-get untuk trik praktis instalasi aplikasi Ubuntu offline
Mudah saja teorinya. Paksa apt-get untuk mengeluarkan lengkap daftar dependensi untuk suatu paket. Ambil daftar itu pakai grep dan cut, pasti jadi URL-URL. Lalu masukkan itu ke dalam berkas teks. Pergi ke warnet dan unduhlah semuanya pakai download manager (IDM atau uGet biar bisa semua dalam sekali klik). Perintahnya:

sudo apt-get –print-uris –yes install codeblocks | grep ^\’ | cut -d\’ -f2 > daftar_dependensi_codeblocks.txt

 

Jika sudah punya daftar_dependensi_codeblocks.txt, pergi ke warnet dan unduh semuanya. Masukkan semua .deb yang diperoleh ke dalam satu folder bernama codeblocks_Precise. Bawa pulang folder itu lalu pindahkan folder ke /home dan laksanakan perintah ini dalam folder itu:

sudo dpkg -i *.deb

atau pakai singkatan saya (buat alias dalam berkas .bashrc):

sdia

Maka aplikasi IDE canggih bernama Codeblocks terinstal dengan sempurna di Ubuntu saya dan installer-nya (folder codeblocks_Precise/) saya simpan untuk instalasi di komputer teman-teman atau instalasi di masa mendatang.

Catatan penting: Ganti nama codeblocks dengan nama paket yang dibutuhkan serta ganti Precise dengan nama versi Ubuntu.

Catatan penting 2: perhatikan /var/lib/dpkg/status karena ini sangat krusial dan bisa beda walau sama-sama Precise tapi lain komputer. Sebaiknya status milik kedua Precise di kedua komputer adalah sama agar dependensinya juga sama. Namun error dalam hal ini sangat jarang terjadi.

7. Cek versi kernel (bash)
Ternyata uname -a terlalu lengkap. Untuk spesifik langsung versi kernel, perintahnya uname -r.

8. Cek kondisi jaringan (bash)
Ternyata ada tool yang sangat bagus bernama nm-tool. Langsung terlihat kita pakai saluran mana untuk internetan. Modem saya terdeteksi berada pada ttyUSB0. Otomatis deteksi IP address kita dan IP address DNS yang kita pakai. Mudah.

9. Bagaimana cara membuat patch (edisi 1)?
Dengan diff dan patch. Dua alat ini tersedia di semua distro Linux dan sudah menjadi standar FOSS untuk membuat dan menerapkan patch. Dua alat ini hanya berlaku untuk membuat patch kode sumber, bukan biner.

Diff khusus untuk membuat patch (patch = versibaru – versi lama) sedangkan patch khusus untuk menerapkan patch (versibaru = versilama + patch). Bersambung…

10. Bagaimana cara membuat patch (edisi 2)?
Dengan bsdiff dan bspatch. Dua alat ini juga tersedia di semua distro Linux dan bisa dipakai khusus patching berkas biner.

Bsdiff khusus untuk membuat patch (patchbiner = versibarubiner – versilamabiner) sedangkan bspacth khusus untuk menerapkan patch (versibarubiner = versilamabiner + patchbiner). Bersambung…

11. OpenSUSE Live USB dengan dd
Sudah beberapa hari gagal memakai Unetbootindd, dan ddrescue. Kini saya berhasil masuk livesession openSUSE dengan perintah dd berikut:

dd if=openSUSE-12.3-KDE-Live-i686.iso of=/dev/sdb bs=4M; sync

Sedangkan perintah saya yang salah (dan membuat gagal berulang kali):
dd if=openSUSE-12.3-KDE-Live-i686.iso of=/dev/sdb1 bs=4M; sync

Perhatikan angka 1 (satu), jangan pernah dipakai kalau mau membakar ISO ke flash disk. Memang dd ini tidaklah interaktif, akan tetapi setidaknya berhasil membuat openSUSE Live USB yang dikatakan di forum openSUSE maupun Linuxquestion sendiri sebagai kemustahilan.

Skrinsot openSUSE sebagai buktinya:

12. Atur nomor IP secara manual
Seringkali justru lebih mudah mengubah nomor IP komputer kita secara manual. Caranya:

sudo ifconfig eth0 192.168.1.9

Ganti eth0 dengan wlan jika ingin mengubah nomor IP pada interface wlan. Sesuaikan interface.

13. Prinsip dasar instalasi aplikasi di Linux
Tahu syarat: harus ada 3 hal terpenting yaitu eksekutabel biner, shell script, dan berkas .desktop. Inilah kebutuhan paling minimum. Hanya dengan ini kita bisa menginstal aplikasi buatan kita tanpa memaketkannya ke DEB/RPM terlebih dahulu. Dan tidak usah susah-susah.

Tahu tempat/usr/bin/usr/lib, dan /usr/share/applications yang secara berurutan untuk shell script, eksekutabel biner, dan berkas .desktop. Mungkin aneh, kok malah biner ditaruh di lib bukan di bin? Namun ini sangat logis pada penjelasan berikut.

Tahu gunanya: eksekutabel biner adalah berkas paling penting yang semestinya seluruh berkas lain tidak dibutuhkan. Jika suatu berkas biner diletakkan di /usr/bin, maka otomatis saat itu juga jika namanya dipanggil dari shell, maka ia dieksekusi. Seperti inilah caranya semua program di Linux diinstal sebenarnya. Lihatlah bahwa di dalam /usr/bin ada ls, cd, cp, mv, dan semua program.

Shell script di sini adalah seperti shortcut di Windows. Ia berisi perintah untuk memanggil eksekutabel biner yang asli. Ia harus diberi hak eksekusi (chmod +x) sebelum digunakan. Ia kurang lebih seperti ini untuk memanggil program bernama metamorfosa:

#!/bin/bash
/usr/lib/metamorfosa

Sampai sini jelas bahwa justru shell script (bukan program aslinya) yang berada di /usr/bin. Program asli malah berada di /usr/lib yang dipanggil lewat jalan shell script dari /usr/bin. Di dalam /usr/bin justru tidak ada eksekutabel yang asli. Adanya cuma shell script. Dan sesungguhnya shell script-lah yang kita panggil ketika menggunakan perintah cp, ls, nmap, mv, mkdir, dan semuanya di Linux. Baru setelah shell script ini dipanggil, ia akan memanggil program aslinya. Keuntungan prinsip ini adalah sangat mudah untuk memanggil program apa pun dari dalam folder mana pun asal pakai terminal. Bahkan bisa autocomplete nama program KARENA program tersebut ada di /usr/bin. Walaupun tanpa restart, bash bisa mengenali namanya otomatis dan menyediakan autocomplete.

14. Menginstal modem CE682 di Precise Pangolin
Pertama: # modprobe
Kedua: # wvdialconf
Kaidah: jangan dibalik

15. Menghapus di Vim (26 September 2013)
x           menghapus satu karakter setelah kursor
X           menghapus satu karakter sebelum kursor
dd          menghapus satu baris
3dd         menghapus tiga baris ke bawah
5dd          menghapus lima baris ke bawah

Tentu saja semuanya dilakukan dalam modus command, bukan dalam modus insert.

________

Tulisan ini aslinya adalah catatan di akun fesbuk saya yang memang saya buat untuk mengumpulkan pecahan-pecahan oprekan yang tujuan akhirnya adalah posting di blog ini. 

3 thoughts on “Catatan Ngoprek Harian Edisi 1

  1. Ping balik: Catatan LaTeX Harian | RESTAVA

Dilarang menggunakan emotikon

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s