5 Linux shell merupakan tool berbasis teks untuk berinteraksi dengan komputer.
6 Linux shell sering juga disebut dengan xterm, konsole, terminal, shell command,
7 ataupun shell. Shell ini merupakan antarmuka penghubung user dengan sistem.
8 Shell juga sering disebut dengan interpreter yang mengoperasikan sebuah loop
9 sederhana yakni menerima perintah, menginterpretasikan perintah, menjalankan
10 perintah, dan menunggu perintah masukan berikutnya. Berikut bagan loop
11 interpreter sederhana yang dijalankan oleh shell unix ataupun GNU/Linux.
13 .. figure:: images/interpreter-loop.png
15 :figclass: align-center
20 Bab ini akan menjelaskan shell command yang sering digunakan oleh pengguna
21 UNIX ataupun GNU/Linux.
23 Alasan Mengapa Menggunakan Linux Shell
24 --------------------------------------
26 Pada sistem operasi seperti Ms-Windows dan MacOS, penggunaan shell
27 command sudah mulai dikurangi atau bahkan dihilangkan sama sekali. Pada
28 beberapa sistem operasi seperti yang penulis sebutkan di atas, para penggunanya
29 semakin dimanja dengan penggunaan mode grafis (Graphical desktop) dan tidak
30 memperdulikan lagi penggunaan shell command tersebut.
32 Satu hal yang menarik dari sistem operasi GNU/linux adalah penggunaan shell
33 command tetap dipertahankan karena beberapa alasan berikut:
34 1. Kebanyakan konfigurasi sistem dapat dilakukan dari shell command.
35 2. Linux shell memberikan fleksibilitas terutama saat anda bekerja dengan
37 3. Untuk tindakan penyelamatan terhadap sebuah data atau recovery terhadap
38 sistem dan pekerjaan maintenance sistem pada single mode dapat anda
39 lakukan lewat shell command.
44 Pada Start Menu – System – Konsole
46 .. figure:: images/start-menu-kde.png
48 :figclass: align-center
53 Selain itu, anda juga dapat menggunakan shortcut key Alt + F2 sehingga akan
54 tampak jendela dialog Run Command berikut:
56 .. figure:: images/run-command-kde.png
58 :figclass: align-center
63 Pada jendela dialog di atas ketikkan konsole kemudian klik opsi Run.
64 Selanjutnya akan tampak shell berikut.
66 .. figure:: images/shell-konsole.png
68 :figclass: align-center
73 Karakter \`$` pada konsole sering disebut dengan prompt shell - karakter ini
74 menandakan bahwa sistem siap menerima perintah masukan.
76 Pada distribusi Debian GNU/Linux, prompt shell selalu menyertakan nama
77 direktori tempat anda berada saat ini. Karakter \`~` menandakan bahwa anda saat
78 ini sedang berada pada direktori home. Jika prompt shell anda terdapat tanda \`#`
79 ini menandakan bahwa anda saat ini sedang login sebagai superuser/root.
81 Patut untuk dicatat bahwa setiap perubahan yang anda lakukan pada user ini
82 berarti anda akan merubah sistem secara keseluruhan (harus berhati-hati
83 terutama dalam menghapus file).
85 Setiap sistem GNU/Linux minimal memiliki satu buah program shell yakni bash.
86 Bash ini singkatan dari Bourne Again Shell – Bourne merupakan nama
87 pembuat program shell ini.
89 Berikut Kata kunci yang sering digunakan untuk command line:
91 +------------+----------------------------------------------------------------------+
92 | Kata Kunci | Deskripsi |
93 +============+======================================================================+
94 | [BkSp] | Menghapus karakter ke arah kiri kursor |
95 +------------+----------------------------------------------------------------------+
96 | [Del] | Menghapus karakter dari posisi kursor ke arah kanan |
97 +------------+----------------------------------------------------------------------+
98 | [Enter/RET]| Eksekusi perintah yang ditulis pada shell |
99 +------------+----------------------------------------------------------------------+
100 | C-d | Fungsinya sama dengan [Del] |
101 +------------+----------------------------------------------------------------------+
102 | C-e | Memindahkan kursor ke posisi akhir |
103 +------------+----------------------------------------------------------------------+
104 | C-k | Menghapus perintah yang diketikkan ke shell mulai dari posisi kursor |
105 +------------+----------------------------------------------------------------------+
106 | C-l | Membersihkan layar shell/terminal |
107 +------------+----------------------------------------------------------------------+
108 | C-u | Menghapus seluruh perintah yang diketikkan ke shell |
109 +------------+----------------------------------------------------------------------+
111 Perintah tambahan yang sering digunakan pada shell/terminal, yaitu:
112 -------------------------------------------------------------------
114 **Mencari perintah terakhir yang anda masukkan dengan inisial tertentu**
119 (reverse-i-search)'` : h
121 Keluaran yang dihasilkan pada shell::
123 kari@debian:~$ echo selamat datang
125 **Menampilkan semua pekerjaan yang anda lakukan pada konsole/shell**
131 **Menampilkan daftar perintah yang anda ketikkan sebelumnya**
135 kari@debian:~$ history
137 **Mencari perintah dengan inisial tertentu**::
139 kari@debian:~$ history | grep nama_perintah
143 kari@debian:~$ history | grep clear
145 Perintah di atas akan menampilkan seluruh perintah \`clear` yang pernah anda
148 **Menampilkan Isi Direktori**
150 Untuk menampilkan isi dari sebuah direktori, anda dapat menggunakan perintah
151 \`ls` diikuti dengan opsi yang anda inginkan. Pada buku kami sebelumnya
152 (Debian GNU/Linux-red) telah dijelaskan sebagian opsi yang dapat disertakan
153 pada command line \`ls`. Untuk materi ini penulis akan melengkapi contoh
154 penggunaaan \`ls` seperti berikut ini.
156 **Menampilkan isi direktori termasuk direktori/file hidden**
160 kari@debian:~$ ls -a <direktori>
164 kari@debian:~$ ls -a /home/kari/
166 Keluaran perintah di atas adalah::
178 buku debian gnu jilid 2
180 **Menampilkan isi direktori/file dimana direktori akan ditampilkan dengan warna**
184 kari@debian:~$ ls --color <direktori>
188 kari@debian:~$ ls --color /home/kari/Projects
190 **Menampilkan isi direktori beserta tipe file/direktori yang dimiliki**
194 kari@debian:~$ ls --classify (atau -F) <direktori>
198 kari@debian:~$ ls --classify /usr/sbin/
200 Output perintah di atas adalah::
215 **Menampilkan direktori beserta subdirektori yang terdapat di dalamnya**
219 kari@debian:~$ ls --recursive (atau -R) <direktori>
223 kari@debian:~$ ls --recursive /home/kari
225 Output perintah di atas adalah::
229 ./OpenOffice.org1.1.0:
233 ./OpenOffice.org1.1.0/share/cde/types/ru.ANSI-1251:
239 **Menampilkan direktori/file dari yang terakhir kali dimodifikasi**
243 kari@debian:~$ ls -t <direktori>
247 kari@debian:~$ ls -t /home/kari/
249 Output perintah di atas adalah::
255 **Mengurutkan direktori/file sesuai dengan ekstensi file/direktorinya**
259 kari@debian:~$ ls -X <direktori>
263 kari@debian:~$ ls -X /home/kari/
265 Output perintah di atas adalah::
267 Desktop data presentasi
268 MyMusic gambar debian gnulinux
270 Aplikasi openoffice.org
271 Buku debian jilid 2 data.txt
274 **Identifikasi Tipe Direktori**
276 Untuk melihat tipe dari semua file yang ada di dalam sebuah direktori, perintah
277 yang digunakan adalah::
279 kari@debian:~$ file --help
281 Usage: file [OPTION...] [FILE...]
282 Determine type of FILEs.
284 --help display this help and exit
285 -v, --version output version information and exit
286 -m, --magic-file LIST use LIST as a colon-separated list of magic
288 -z, --uncompress try to look inside compressed files
289 -b, --brief do not prepend filenames to output lines
290 -c, --checking-printout print the parsed form of the magic file, use in
291 conjunction with -m to debug a new magic file
293 -e, --exclude TEST exclude TEST from the list of test to be
294 performed for file. Valid tests are:
295 ascii, apptype, compress, elf, soft, tar, tokens, troff
296 -f, --files-from FILE read the filenames to be examined from FILE
297 -F, --separator STRING use string as separator instead of `:'
298 -i, --mime output MIME type strings (--mime-type and
300 --apple output the Apple CREATOR/TYPE
301 --mime-type output the MIME type
302 --mime-encoding output the MIME encoding
303 -k, --keep-going don't stop at the first match
304 -l, --list list magic strength
305 -L, --dereference follow symlinks (default)
306 -h, --no-dereference don't follow symlinks
307 -n, --no-buffer do not buffer output
308 -N, --no-pad do not pad output
309 -0, --print0 terminate filenames with ASCII NUL
310 -p, --preserve-date preserve access times on files
311 -r, --raw don't translate unprintable chars to \ooo
312 -s, --special-files treat special (block/char devices) files as
314 -C, --compile compile file specified by -m
315 -d, --debug print debugging messages
317 Report bugs to http://bugs.gw.com/
321 kari@debian:~$ file -z /home/kari/
323 Output perintah di atas adalah::
331 Opsi `-z` digunakan agar file kompresi dan link simbolik dapat ditampilkan juga.
335 kari@debian:~$ file debian/splash_bottom.png
337 Output perintah di atas adalah::
339 debian/splash_bottom.png: PNG image data, 400 x 16, 8-bit/color
342 **Menampilkan Partisi Hardisk**
344 Untuk menampilkan partisi hardisk yang ada, perintah yang digunakan adalah::
346 debian:~# fdisk -l DISK
350 debian:~# fdisk -l /dev/hda
352 Disk /dev/sda: 320.1 GB, 320072933376 bytes
353 255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
354 Units = sectors of 1 * 512 = 512 bytes
355 Sector size (logical/physical): 512 bytes / 4096 bytes
356 I/O size (minimum/optimal): 4096 bytes / 4096 bytes
357 Disk identifier: 0x1795d527
359 Device Boot Start End Blocks Id System
360 /dev/sda1 * 124 625137344 312568610+ 5 Extended
361 /dev/sda5 126 41463764 20731819+ 83 Linux
362 /dev/sda6 41463828 84469769 21502971 83 Linux
363 /dev/sda7 84469833 88566344 2048256 82 Linux swap / Solaris
364 /dev/sda8 88566408 131572349 21502971 83 Linux
365 /dev/sda9 131572413 625137344 246782466 83 Linux
367 Atau dapat menggunakan perintah berikut::
369 debian:~# cat /proc/partitions
371 major minor #blocks name
382 **Membersihkan Layar Konsole**
384 Untuk membersihkan layar konsole anda, perintah yang digunakan adalah::
386 kari@debian:~$ clear (juga dapat menekan ctrl+L pada keyboard)
388 **Menggunakan Tab Completion**
390 Dengan menekan [tab] pada keyboard maka shell anda akan melengkapi
391 perintah yang anda inginkan. Anda juga dapat menggunakan tab completion ini
392 untuk mengecek kebenaran dari perintah yang inginkan.
396 Anda ingin mengetikkan perintah *chmod* pada konsole, mak anda tidak perlu
397 mengetikkan sampai huruf terakhir. Anda hanya perlu mengetikkan dua – tiga
398 huruf saja kemudian tekan **[tab]** pada keyboard.
402 kari@debian:~$ ch[tekan <tab>]
404 Setelah anda menekan tombol **[tab]** pada keyboard maka shell akan
405 melanjutkannya secara otomatis.
407 **Menampilkan Command History**
409 File .bash_history yang terletak di direktori home anda merupakan tempat
410 tersimpannya perintah-perintah yang telah anda ketikkan sebelumnya. Hal ini
411 bertujuan jika seandainya anda melupakan beberapa perintah yang pernah anda
412 gunakan sebelumnya. Anda hanya membuka file ini saja untuk melihatnya
417 kari@debian:~$ more .bash_history
420 Jika anda menggunakan user yang lain, maka command history pada user
421 sebelumnya tidak dapat anda lihat.
425 Menampilkan pemakaian disk oleh direktori tertentu.
433 Opsi \`-k` untuk menampilkan kapasitas file dalam kilobyte.
435 Output perintah di atas adalah::
437 12 ./.kde/share/config/session
438 8 ./.kde/share/config/colors
439 328 ./.kde/share/config
440 4 ./.kde/share/servicetypes
441 80 ./.kde/share/mimelnk/application
442 8 ./.kde/share/mimelnk/text
443 92 ./.kde/share/mimelnk
445 **Menampilkan kapasitas disk yang digunakan oleh direktori secara keseluruhan.**
451 Output perintah di atas adalah::
457 Perintah di atas untuk menampilkan kalender.
463 Output perintah di atas adalah::
473 Sedangkan untuk menampilkan seluruh bulan dalam tahun tertentu, maka
474 perintah yang digunakan adalah::
476 kari@debian:~$ cal 2004
480 Perintah di atas digunakan untuk memainkan musik pada konsole atau terminal.
484 kari@debian:~$ cd /lagu
485 kari@debian:/lagu$ mpg123 -z *
487 High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2,
489 Version 0.59q (2002/03/23). Written and copyrights by Joe Drew.
490 Uses code from various people. See 'README' for more!
491 THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN
493 Title : Negeri Di Awan Artist : Kla Project
495 Comment: Jomblo Maniac' Administratorz Genre :
497 Playing MPEG stream from kla - Negeri Di Awan.mp3 ...
498 MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
501 untuk pindah ke lagu berikutnya, anda tinggal menekan \`Ctrl+C` sedangkan
502 untuk mengakhirinya tekan \`Ctrl+Z`.
506 Menampilkan informasi sistem operasi yang digunakan pada sistem
510 kari@debian:~$ uname -sr
514 Opsi \`-sr` untuk menampilkan nama sistem operasi dan versi/release yang digunakan.
516 Output perintah di atas adalah::
520 Sedangkan untuk menampilkan seluruh informasi sistem secara lengkap, maka
521 perintah yang digunakan adalah::
523 kari@debian:~$ uname -a
525 Output perintah di atas adalah::
527 Linux debian 2.2.20 #1 Sat Apr 20 11:45:28 EST 2002 i686 unknown
529 **Copy dan Paste pada Shell**
531 Untuk melakukan copy dan paste pada konsole tidak berbeda dengan cara yang
532 dilakukan pada Xwindow. Anda hanya menyorot text yang ingin anda copy
533 kemudian klik kanan pada text tersebut kemudian sorot opsi copy.
535 .. figure:: images/copy-text1.png
537 :figclass: align-center
539 Selanjutnya posisikan kursor anda ke tempat di mana anda akan menyalin text
540 tersebut, Kemudian klik kanan pada kursor --> sorot opsi paste.
542 .. figure:: images/paste-text1.png
544 :figclass: align-center
546 **Menggunakan Command Alias**
548 Perintah Alias ini dapat anda gunakan untuk menyingkatkan perintah yang
553 kari@debian:~$ alias command_baru='command_asli'
557 kari@debian:~$ alias chdir='ls -xl /usr/sbin'
559 Sehingga jika anda ingin mengetikkan perintah \`ls -xl /usr/sbin` pada konsole,
560 anda cukup mengetikkan perintah \`chdir` saja.
566 **Menghapus Sebuah Alias**
568 Untuk menghapus alias yang anda telah buat sebelumnya, cukup dengan
571 kari@debian:~$ unalias chdir
573 **Menampilkan perintah Alias**
575 Untuk menampilkan perintah alias yang ada pada sistem anda, cukup dengan
576 mengetikkan perintah berikut::
580 Output perintah di atas adalah::
582 alias ls='ls --color=auto'
585 Ternyata pada sistem Debian kami telah menggunakan alias ls untuk perintah 'ls
588 **Menjalankan program di background**
590 Untuk menjalankan program di bagian belakang latar (background) dapat
591 menggunakan tanda/karakter (&) pada bagian akhir perintah yang anda ketikkan
596 kari@debian:~$ mpg123 -z * &
598 Tujuan dari penempatan eksekusi program di belakang latar agar anda tidak
599 perlu lagi membuka shell/terminal baru, cukup bekerja pada satu terminal saja.
601 **Mengembalikan eksekusi program ke *foreground***
607 atau jika anda ingin lebih spesifik lagi dengan menambahkan nomor
612 **Menampilkan Gambar pada X Window**
614 Tool yang dapat anda gunakan untuk menampilkan gambar atau image adalah
615 \`display` yang merupakan bagian dari tool \`ImageMagick`. Tool tersebut dapat
616 mengenali banyak format gambar seperti FlashPix, GIF/GIF87, JPEG,
617 PBM/PNM/PPM, PhotoCD, TGA, TIFF, TransFIG, dan XBM.
621 kari@debian:~$ display nama_file
625 kari@debian:~$ display silent-m.jpg
627 Berikut tampilan silent-m.jpg dengan ImageMagick.
629 .. figure:: images/silent-m.png
631 :figclass: align-center
633 **Menampilkan Koleksi Gambar pada X Window**
635 Tool \`display` juga dapat digunakan untuk menampilkan seluruh gambar pada
640 kari@debian:~$ display 'vid:letak-direktori'
644 \`vid` adalah singkatan dari *visual image directory*
648 kari@debian:~$ display 'vid:/windows/win_d/gambar/*.png'
650 Perintah di atas akan menampilkan seluruh gambar yang berformat \`jpg` pada
653 **Menempatkan Gambar pada Background**
655 Selain penggunaan tool \`display` untuk menampilkan gambar, tool ini juga dapat
656 menset gambar atau image sebagai gambar latar.
660 kari@debian:~$ display -window root silent-m.jpg
662 **Menampilkan Gambar pada Konsole**
664 Selain menampilkan gambar atau image pada X window, GNU/linux juga
665 menyediakan fasilitas yang dapat menampilkan gambar pada konsole atau shell.
666 Fasilitas yang dapat digunakan adalah 'zgv' dengan dukungan format seperti GIF,
667 JPEG, PNG, PBM/PNM/PPM, TGA, PCX.
671 kari@debian:~$ zgv /windows/win_d/silent-m.jpg
673 **Mengeksekusi beberapa command line secara bersamaan**
675 Untuk mengeksekusi command line secara bersamaan, anda dapat
676 menggunakan tanda (;) sebagai pemisah antar command line.
680 kari@debian:~$ cd /home/kari;ls -x
682 Perintah di atas membuat sistem anda akan pindah ke direktori /home/kari
683 kemudian langsung mengeksekusi perintah berikutnya yakni \`ls -x`.
685 **Menghentikan program yang sedang berjalan**
687 Untuk menghentikan program yang sedang berjalan pada konsole, anda dapat
688 cukup menekan **Ctrl-Z** pada keyboard.