Merge pull request #22 from blackshirt/master
[debian-id-ebook.git] / src / linux-shell.rst
blob5034fa8c3ab27e2bd4fae3aa2a8f1967b8d26fab
1 ===========
2 Linux Shell
3 ===========
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
14         :align: center
15         :figclass: align-center
16         
17         Interpreter loop
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
36 banyak file.
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.
41 Memulai Linux Shell
42 -------------------
44 Pada Start Menu – System – Konsole
46 .. figure:: images/start-menu-kde.png
47         :align: center
48         :figclass: align-center
49         
50         Start Menu
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
57         :align: center
58         :figclass: align-center
59         
60         Run command
63 Pada jendela dialog di atas ketikkan konsole kemudian klik opsi Run.
64 Selanjutnya akan tampak shell berikut.
66 .. figure:: images/shell-konsole.png
67         :align: center
68         :figclass: align-center
69         
70         Shell – Konsole
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**
118         kari@debian:~$ C-r
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**
129         kari@debian:~$ jobs
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
141 Misal::
143         kari@debian:~$ history | grep clear
145 Perintah di atas akan menampilkan seluruh perintah \`clear` yang pernah anda
146 jalankan sebelumnya.
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>
162 Misal::
164         kari@debian:~$ ls -a /home/kari/
166 Keluaran perintah di atas adalah::
168         .
169         ..
170         .AbiSuite
171         .DCOPserver_debian
172         .ICEauthority
173         .MCOP-random-seed
174         .gphoto
175         .gtk_themes
176         .gtkrc-kde
177         .kde3
178         buku debian gnu jilid 2
180 **Menampilkan isi direktori/file dimana direktori akan ditampilkan dengan warna**
184         kari@debian:~$ ls --color <direktori>
186 Misal::
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>
196 Misal::
198         kari@debian:~$ ls --classify /usr/sbin/
200 Output perintah di atas adalah::
202         MAKEFLOPPIES*
203         ab*
204         accessdb*
205         adduser*
206         addgroup@
207         data/
209 Keterangan::
211         * executable files
212         @ symbolic links
213         / directory
215 **Menampilkan direktori beserta subdirektori yang terdapat di dalamnya**
219         kari@debian:~$ ls --recursive (atau -R) <direktori>
221 Misal::
223         kari@debian:~$ ls --recursive /home/kari
225 Output perintah di atas adalah::
227         ./Desktop/Trash:
228         ./MyMusic:
229         ./OpenOffice.org1.1.0:
230         LICENSE
231         LICENSE.html
232         README
233         ./OpenOffice.org1.1.0/share/cde/types/ru.ANSI-1251:
234         calc.dt
235         calc.fp
236         draw.dt
237         draw.fp
239 **Menampilkan direktori/file dari yang terakhir kali dimodifikasi**
243         kari@debian:~$ ls -t <direktori>
245 Misal::
247         kari@debian:~$ ls -t /home/kari/
249 Output perintah di atas adalah::
250         
251         Data.txt        Projects
252         Desktop         kde
253         Aplikasi        MyMusic
255 **Mengurutkan direktori/file sesuai dengan ekstensi file/direktorinya**
259         kari@debian:~$ ls -X <direktori>
261 Misal::
263         kari@debian:~$ ls -X /home/kari/
265 Output perintah di atas adalah::
266         
267         Desktop                 data presentasi
268         MyMusic                 gambar debian gnulinux
269         Projects                kde
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
287                                        number files
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
292                                        before installing it
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
299                                        --mime-encoding)
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
313                                      ordinary ones
314           -C, --compile              compile file specified by -m
315           -d, --debug                print debugging messages
317         Report bugs to http://bugs.gw.com/
319 Contoh 1::
321         kari@debian:~$ file -z /home/kari/
323 Output perintah di atas adalah::
325         Desktop         directory
326         MyMusic         directory
327         Data.txt        ASCII text
328         Gambar          directory
330 .. Note::
331         Opsi `-z` digunakan agar file kompresi dan link simbolik dapat ditampilkan juga.
333 Contoh 2::
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
340         RGBA, non-interlaced
342 **Menampilkan Partisi Hardisk**
344 Untuk menampilkan partisi hardisk yang ada, perintah yang digunakan adalah::
346         debian:~# fdisk -l DISK
348 Misal::
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
373            8        0  312571224 sda
374            8        1          1 sda1
375            8        5   20731819 sda5
376            8        6   21502971 sda6
377            8        7    2048256 sda7
378            8        8   21502971 sda8
379            8        9  246782466 sda9
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.
394 **Misal:**
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
413 kembali.
417         kari@debian:~$ more .bash_history
419 .. Note::
420         Jika anda menggunakan user yang lain, maka command history pada user
421         sebelumnya tidak dapat anda lihat.
423 **du**
425 Menampilkan pemakaian disk oleh direktori tertentu.
427 Misal::
429         kari@debian:~$ du -k
431 Keterangan:
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.**
447 Misal::
448         
449         kari@debian:~$ du -s
451 Output perintah di atas adalah::
452         
453         373292
455 **cal**
457 Perintah di atas untuk menampilkan kalender.
459 Misal::
461         kari@debian:~$ cal
463 Output perintah di atas adalah::
465            Desember 2004      
466         Mi Se Se Ra Ka Ju Sa  
467                   1  2  3  4  
468          5  6  7  8  9 10 11  
469         12 13 14 15 16 17 18  
470         19 20 21 22 23 24 25  
471         26 27 28 29 30 31       
473 Sedangkan untuk menampilkan seluruh bulan dalam tahun tertentu, maka
474 perintah yang digunakan adalah::
476         kari@debian:~$ cal 2004
478 **mpg123**
480 Perintah di atas digunakan untuk memainkan musik pada konsole atau terminal.
482 Misal::
484         kari@debian:~$ cd /lagu
485         kari@debian:/lagu$ mpg123 -z *
486         
487         High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2,
488         and 3.
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
492         RISK!
493         Title  : Negeri Di Awan                 Artist : Kla Project
494         Album  :                                Year   : 1996
495         Comment: Jomblo Maniac' Administratorz  Genre  :
496         
497         Playing MPEG stream from kla - Negeri Di Awan.mp3 ...
498         MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
500 .. Note::
501         untuk pindah ke lagu berikutnya, anda tinggal menekan \`Ctrl+C` sedangkan
502         untuk mengakhirinya tekan \`Ctrl+Z`.
504 **uname**
506 Menampilkan informasi sistem operasi yang digunakan pada sistem
510         kari@debian:~$ uname -sr
512 Keterangan:
514 Opsi \`-sr` untuk menampilkan nama sistem operasi dan versi/release yang digunakan.
516 Output perintah di atas adalah::
518         Linux 2.2.20
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
536         :align: center
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
543         :align: center
544         :figclass: align-center
546 **Menggunakan Command Alias**
548 Perintah Alias ini dapat anda gunakan untuk menyingkatkan perintah yang
549 sering anda gunakan.
553         kari@debian:~$ alias command_baru='command_asli'
555 Misal::
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.
564         kari@debian:~$ chdir
566 **Menghapus Sebuah Alias**
568 Untuk menghapus alias yang anda telah buat sebelumnya, cukup dengan
569 perintah berikut::
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::
578         kari@debian:~$ alias
580 Output perintah di atas adalah::
582         alias ls='ls --color=auto'
584 .. Note::
585         Ternyata pada sistem Debian kami telah menggunakan alias ls untuk perintah 'ls
586         --color=auto'
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
592 pada konsole.
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***
605         kari@debian:~$ fg
607 atau jika anda ingin lebih spesifik lagi dengan menambahkan nomor
608 programnya::
610         kari@debian:~$ fg %1
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
623 Misal::
625         kari@debian:~$ display silent-m.jpg
627 Berikut tampilan silent-m.jpg dengan ImageMagick.
629 .. figure:: images/silent-m.png
630         :align: center
631         :figclass: align-center
633 **Menampilkan Koleksi Gambar pada X Window**
635 Tool \`display` juga dapat digunakan untuk menampilkan seluruh gambar pada
636 sebuah direktori
639         
640         kari@debian:~$ display 'vid:letak-direktori'
642 Keterangan:
644 \`vid` adalah singkatan dari *visual image directory*
646 Misal::
648         kari@debian:~$ display 'vid:/windows/win_d/gambar/*.png'
650 Perintah di atas akan menampilkan seluruh gambar yang berformat \`jpg` pada
651 direktori gambar.
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.
658 Misal::
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.