Update index and remove empty line in linux-shell,
[debian-id-ebook.git] / src / linux-shell.rst
blob023a31a43e966a276f051f38b1ef5e264a662bcc
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 .. image:: images/interpreter-loop.png
15 Bab ini akan menjelaskan shell command yang sering digunakan oleh pengguna
16 UNIX ataupun GNU/Linux.
18 Alasan Mengapa Menggunakan Linux Shell
19 --------------------------------------
21 Pada sistem operasi seperti Ms-Windows dan MacOS, penggunaan shell
22 command sudah mulai dikurangi atau bahkan dihilangkan sama sekali. Pada
23 beberapa sistem operasi seperti yang penulis sebutkan di atas, para penggunanya
24 semakin dimanja dengan penggunaan mode grafis (Graphical desktop) dan tidak
25 memperdulikan lagi penggunaan shell command tersebut.
27 Satu hal yang menarik dari sistem operasi GNU/linux adalah penggunaan shell
28 command tetap dipertahankan karena beberapa alasan berikut:
29 1. Kebanyakan konfigurasi sistem dapat dilakukan dari shell command.
30 2. Linux shell memberikan fleksibilitas terutama saat anda bekerja dengan
31 banyak file.
32 3. Untuk tindakan penyelamatan terhadap sebuah data atau recovery terhadap
33 sistem dan pekerjaan maintenance sistem pada single mode dapat anda
34 lakukan lewat shell command.
36 Memulai Linux Shell
37 -------------------
39 Pada Start Menu – System – Konsole
41 .. image:: images/start-menu-kde.png
43 Atau pada panel klik ikon konsole seperti yang tampak pada gambar berikut:
45 .. image:: images/panel-kde.png
47 Selain itu, anda juga dapat menggunakan shortcut key Alt + F2 sehingga akan
48 tampak jendela dialog Run Command berikut:
50 .. image:: images/run-command-kde.png
52 Pada jendela dialog di atas ketikkan konsole kemudian klik opsi Run.
53 Selanjutnya akan tampak shell berikut.
55 .. image:: images/shell-konsole.png
57 Karakter \`$` pada konsole sering disebut dengan prompt shell - karakter ini
58 menandakan bahwa sistem siap menerima perintah masukan.
60 Pada distribusi Debian GNU/Linux, prompt shell selalu menyertakan nama
61 direktori tempat anda berada saat ini. Karakter \`~` menandakan bahwa anda saat
62 ini sedang berada pada direktori home. Jika prompt shell anda terdapat tanda \`#`
63 ini menandakan bahwa anda saat ini sedang login sebagai superuser/root.
65 Patut untuk dicatat bahwa setiap perubahan yang anda lakukan pada user ini
66 berarti anda akan merubah sistem secara keseluruhan (harus berhati-hati
67 terutama dalam menghapus file).
69 Setiap sistem GNU/Linux minimal memiliki satu buah program shell yakni bash.
70 Bash ini singkatan dari Bourne Again Shell – Bourne merupakan nama
71 pembuat program shell ini.
73 Berikut Kata kunci yang sering digunakan untuk command line:
75 +------------+----------------------------------------------------------------------+
76 | Kata Kunci | Deskripsi                                                            |
77 +============+======================================================================+
78 | [BkSp]     | Menghapus karakter ke arah kiri kursor                               |
79 +------------+----------------------------------------------------------------------+
80 | [Del]      | Menghapus karakter dari posisi kursor ke arah kanan                  |
81 +------------+----------------------------------------------------------------------+
82 | [Enter/RET]| Eksekusi perintah yang ditulis pada shell                            |
83 +------------+----------------------------------------------------------------------+
84 | C-d        | Fungsinya sama dengan [Del]                                          |
85 +------------+----------------------------------------------------------------------+
86 | C-e        | Memindahkan kursor ke posisi akhir                                   |
87 +------------+----------------------------------------------------------------------+
88 | C-k        | Menghapus perintah yang diketikkan ke shell mulai dari posisi kursor |
89 +------------+----------------------------------------------------------------------+
90 | C-l        | Membersihkan layar shell/terminal                                    |
91 +------------+----------------------------------------------------------------------+
92 | C-u        | Menghapus seluruh perintah yang diketikkan ke shell                  |
93 +------------+----------------------------------------------------------------------+
95 Perintah tambahan yang sering digunakan pada shell/terminal, yaitu:
96 -------------------------------------------------------------------
98 **Mencari perintah terakhir yang anda masukkan dengan inisial tertentu**
102         kari@debian:~$ C-r
103         (reverse-i-search)'` : h
105 Keluaran yang dihasilkan pada shell::
107         kari@debian:~$ echo selamat datang
109 **Menampilkan semua pekerjaan yang anda lakukan pada konsole/shell**
113         kari@debian:~$ jobs
115 **Menampilkan daftar perintah yang anda ketikkan sebelumnya**
119         kari@debian:~$ history
121 **Mencari perintah dengan inisial tertentu**::
123         kari@debian:~$ history | grep nama_perintah
125 Misal::
127         kari@debian:~$ history | grep clear
129 Perintah di atas akan menampilkan seluruh perintah \`clear` yang pernah anda
130 jalankan sebelumnya.
132 **Menampilkan Isi Direktori**
134 Untuk menampilkan isi dari sebuah direktori, anda dapat menggunakan perintah
135 \`ls` diikuti dengan opsi yang anda inginkan. Pada buku kami sebelumnya
136 (Debian GNU/Linux-red) telah dijelaskan sebagian opsi yang dapat disertakan
137 pada command line \`ls`. Untuk materi ini penulis akan melengkapi contoh
138 penggunaaan \`ls` seperti berikut ini.
140 **Menampilkan isi direktori termasuk direktori/file hidden**
144         kari@debian:~$ ls -a <direktori>
146 Misal::
148         kari@debian:~$ ls -a /home/kari/
150 Keluaran perintah di atas adalah::
152         .
153         ..
154         .AbiSuite
155         .DCOPserver_debian
156         .ICEauthority
157         .MCOP-random-seed
158         .gphoto
159         .gtk_themes
160         .gtkrc-kde
161         .kde3
162         buku debian gnu jilid 2
164 **Menampilkan isi direktori/file dimana direktori akan ditampilkan dengan warna**
168         kari@debian:~$ ls --color <direktori>
170 Misal::
172         kari@debian:~$ ls --color /home/kari/Projects
174 **Menampilkan isi direktori beserta tipe file/direktori yang dimiliki**
178         kari@debian:~$ ls --classify (atau -F) <direktori>
180 Misal::
182         kari@debian:~$ ls --classify /usr/sbin/
184 Output perintah di atas adalah::
186         MAKEFLOPPIES*
187         ab*
188         accessdb*
189         adduser*
190         addgroup@
191         data/
193 Keterangan::
195         * executable files
196         @ symbolic links
197         / directory
199 **Menampilkan direktori beserta subdirektori yang terdapat di dalamnya**
203         kari@debian:~$ ls --recursive (atau -R) <direktori>
205 Misal::
207         kari@debian:~$ ls --recursive /home/kari
209 Output perintah di atas adalah::
211         ./Desktop/Trash:
212         ./MyMusic:
213         ./OpenOffice.org1.1.0:
214         LICENSE
215         LICENSE.html
216         README
217         ./OpenOffice.org1.1.0/share/cde/types/ru.ANSI-1251:
218         calc.dt
219         calc.fp
220         draw.dt
221         draw.fp
223 **Menampilkan direktori/file dari yang terakhir kali dimodifikasi**
227         kari@debian:~$ ls -t <direktori>
229 Misal::
231         kari@debian:~$ ls -t /home/kari/
233 Output perintah di atas adalah::
234         
235         Data.txt        Projects
236         Desktop         kde
237         Aplikasi        MyMusic
239 **Mengurutkan direktori/file sesuai dengan ekstensi file/direktorinya**
243         kari@debian:~$ ls -X <direktori>
245 Misal::
247         kari@debian:~$ ls -X /home/kari/
249 Output perintah di atas adalah::
250         
251         Desktop                 data presentasi
252         MyMusic                 gambar debian gnulinux
253         Projects                kde
254         Aplikasi                openoffice.org
255         Buku debian jilid 2     data.txt
258 **Identifikasi Tipe Direktori**
260 Untuk melihat tipe dari semua file yang ada di dalam sebuah direktori, perintah
261 yang digunakan adalah::
263         kari@debian:~$ file --help
265         Usage: file [OPTION...] [FILE...]
266         Determine type of FILEs.
268               --help                 display this help and exit
269           -v, --version              output version information and exit
270           -m, --magic-file LIST      use LIST as a colon-separated list of magic
271                                        number files
272           -z, --uncompress           try to look inside compressed files
273           -b, --brief                do not prepend filenames to output lines
274           -c, --checking-printout    print the parsed form of the magic file, use in
275                                        conjunction with -m to debug a new magic file
276                                        before installing it
277           -e, --exclude TEST         exclude TEST from the list of test to be
278                                        performed for file. Valid tests are:
279                                        ascii, apptype, compress, elf, soft, tar, tokens, troff
280           -f, --files-from FILE      read the filenames to be examined from FILE
281           -F, --separator STRING     use string as separator instead of `:'
282           -i, --mime                 output MIME type strings (--mime-type and
283                                        --mime-encoding)
284               --apple                output the Apple CREATOR/TYPE
285               --mime-type            output the MIME type
286               --mime-encoding        output the MIME encoding
287           -k, --keep-going           don't stop at the first match
288           -l, --list                 list magic strength
289           -L, --dereference          follow symlinks (default)
290           -h, --no-dereference       don't follow symlinks
291           -n, --no-buffer            do not buffer output
292           -N, --no-pad               do not pad output
293           -0, --print0               terminate filenames with ASCII NUL
294           -p, --preserve-date        preserve access times on files
295           -r, --raw                  don't translate unprintable chars to \ooo
296           -s, --special-files        treat special (block/char devices) files as
297                                      ordinary ones
298           -C, --compile              compile file specified by -m
299           -d, --debug                print debugging messages
301         Report bugs to http://bugs.gw.com/
303 Contoh 1::
305         kari@debian:~$ file -z /home/kari/
307 Output perintah di atas adalah::
309         Desktop         directory
310         MyMusic         directory
311         Data.txt        ASCII text
312         Gambar          directory
314 .. Note::
315         Opsi `-z` digunakan agar file kompresi dan link simbolik dapat ditampilkan juga.
317 Contoh 2::
319         kari@debian:~$ file debian/splash_bottom.png
321 Output perintah di atas adalah::
323         debian/splash_bottom.png: PNG image data, 400 x 16, 8-bit/color
324         RGBA, non-interlaced
326 **Menampilkan Partisi Hardisk**
328 Untuk menampilkan partisi hardisk yang ada, perintah yang digunakan adalah::
330         debian:~# fdisk -l DISK
332 Misal::
334         debian:~# fdisk -l /dev/hda
336         Disk /dev/sda: 320.1 GB, 320072933376 bytes
337         255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
338         Units = sectors of 1 * 512 = 512 bytes
339         Sector size (logical/physical): 512 bytes / 4096 bytes
340         I/O size (minimum/optimal): 4096 bytes / 4096 bytes
341         Disk identifier: 0x1795d527
343            Device Boot      Start         End      Blocks   Id  System
344         /dev/sda1   *         124   625137344   312568610+   5  Extended
345         /dev/sda5             126    41463764    20731819+  83  Linux
346         /dev/sda6        41463828    84469769    21502971   83  Linux
347         /dev/sda7        84469833    88566344     2048256   82  Linux swap / Solaris
348         /dev/sda8        88566408   131572349    21502971   83  Linux
349         /dev/sda9       131572413   625137344   246782466   83  Linux
351 Atau dapat menggunakan perintah berikut::
353         debian:~# cat /proc/partitions
355         major minor  #blocks  name
357            8        0  312571224 sda
358            8        1          1 sda1
359            8        5   20731819 sda5
360            8        6   21502971 sda6
361            8        7    2048256 sda7
362            8        8   21502971 sda8
363            8        9  246782466 sda9
366 **Membersihkan Layar Konsole**
368 Untuk membersihkan layar konsole anda, perintah yang digunakan adalah::
370         kari@debian:~$ clear (juga dapat menekan ctrl+L pada keyboard)
372 **Menggunakan Tab Completion**
374 Dengan menekan [tab] pada keyboard maka shell anda akan melengkapi
375 perintah yang anda inginkan. Anda juga dapat menggunakan tab completion ini
376 untuk mengecek kebenaran dari perintah yang inginkan.
378 **Misal:**
380 Anda ingin mengetikkan perintah *chmod* pada konsole, mak anda tidak perlu
381 mengetikkan sampai huruf terakhir. Anda hanya perlu mengetikkan dua – tiga
382 huruf saja kemudian tekan **[tab]** pada keyboard.
386         kari@debian:~$ ch[tekan <tab>]
388 Setelah anda menekan tombol **[tab]** pada keyboard maka shell akan
389 melanjutkannya secara otomatis.
391 **Menampilkan Command History**
393 File .bash_history yang terletak di direktori home anda merupakan tempat
394 tersimpannya perintah-perintah yang telah anda ketikkan sebelumnya. Hal ini
395 bertujuan jika seandainya anda melupakan beberapa perintah yang pernah anda
396 gunakan sebelumnya. Anda hanya membuka file ini saja untuk melihatnya
397 kembali.
401         kari@debian:~$ more .bash_history
403 .. Note::
404         Jika anda menggunakan user yang lain, maka command history pada user
405         sebelumnya tidak dapat anda lihat.
407 **du**
409 Menampilkan pemakaian disk oleh direktori tertentu.
411 Misal::
413         kari@debian:~$ du -k
415 Keterangan:
417 Opsi \`-k` untuk menampilkan kapasitas file dalam kilobyte.
419 Output perintah di atas adalah::
421         12      ./.kde/share/config/session
422         8       ./.kde/share/config/colors
423         328     ./.kde/share/config
424         4       ./.kde/share/servicetypes
425         80      ./.kde/share/mimelnk/application
426         8       ./.kde/share/mimelnk/text
427         92      ./.kde/share/mimelnk
429 **Menampilkan kapasitas disk yang digunakan oleh direktori secara keseluruhan.**
431 Misal::
432         
433         kari@debian:~$ du -s
435 Output perintah di atas adalah::
436         
437         373292
439 **cal**
441 Perintah di atas untuk menampilkan kalender.
443 Misal::
445         kari@debian:~$ cal
447 Output perintah di atas adalah::
449            Desember 2004      
450         Mi Se Se Ra Ka Ju Sa  
451                   1  2  3  4  
452          5  6  7  8  9 10 11  
453         12 13 14 15 16 17 18  
454         19 20 21 22 23 24 25  
455         26 27 28 29 30 31       
457 Sedangkan untuk menampilkan seluruh bulan dalam tahun tertentu, maka
458 perintah yang digunakan adalah::
460         kari@debian:~$ cal 2004
462 **mpg123**
464 Perintah di atas digunakan untuk memainkan musik pada konsole atau terminal.
466 Misal::
468         kari@debian:~$ cd /lagu
469         kari@debian:/lagu$ mpg123 -z *
470         
471         High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2,
472         and 3.
473         Version 0.59q (2002/03/23). Written and copyrights by Joe Drew.
474         Uses code from various people. See 'README' for more!
475         THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN
476         RISK!
477         Title  : Negeri Di Awan                 Artist : Kla Project
478         Album  :                                Year   : 1996
479         Comment: Jomblo Maniac' Administratorz  Genre  :
480         
481         Playing MPEG stream from kla - Negeri Di Awan.mp3 ...
482         MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
484 .. Note::
485         untuk pindah ke lagu berikutnya, anda tinggal menekan \`Ctrl+C` sedangkan
486         untuk mengakhirinya tekan \`Ctrl+Z`.
488 **uname**
490 Menampilkan informasi sistem operasi yang digunakan pada sistem
494         kari@debian:~$ uname -sr
496 Keterangan:
498 Opsi \`-sr` untuk menampilkan nama sistem operasi dan versi/release yang digunakan.
500 Output perintah di atas adalah::
502         Linux 2.2.20
504 Sedangkan untuk menampilkan seluruh informasi sistem secara lengkap, maka
505 perintah yang digunakan adalah::
507         kari@debian:~$ uname -a
509 Output perintah di atas adalah::
511         Linux debian 2.2.20 #1 Sat Apr 20 11:45:28 EST 2002 i686 unknown
513 **Copy dan Paste pada Shell**
515 Untuk melakukan copy dan paste pada konsole tidak berbeda dengan cara yang
516 dilakukan pada Xwindow. Anda hanya menyorot text yang ingin anda copy
517 kemudian klik kanan pada text tersebut kemudian sorot opsi copy.
519 .. image:: images/copy-text1.png
521 Selanjutnya posisikan kursor anda ke tempat di mana anda akan menyalin text
522 tersebut, Kemudian klik kanan pada kursor --> sorot opsi paste.
524 .. image:: images/paste-text1.png
526 **Menggunakan Command Alias**
528 Perintah Alias ini dapat anda gunakan untuk menyingkatkan perintah yang
529 sering anda gunakan.
533         kari@debian:~$ alias command_baru='command_asli'
535 Misal::
537         kari@debian:~$ alias chdir='ls -xl /usr/sbin'
539 Sehingga jika anda ingin mengetikkan perintah \`ls -xl /usr/sbin` pada konsole,
540 anda cukup mengetikkan perintah \`chdir` saja.
544         kari@debian:~$ chdir
546 **Menghapus Sebuah Alias**
548 Untuk menghapus alias yang anda telah buat sebelumnya, cukup dengan
549 perintah berikut::
551         kari@debian:~$ unalias chdir
553 **Menampilkan perintah Alias**
555 Untuk menampilkan perintah alias yang ada pada sistem anda, cukup dengan
556 mengetikkan perintah berikut::
558         kari@debian:~$ alias
560 Output perintah di atas adalah::
562         alias ls='ls --color=auto'
564 .. Note::
565         Ternyata pada sistem Debian kami telah menggunakan alias ls untuk perintah 'ls
566         --color=auto'
568 **Menjalankan program di background**
570 Untuk menjalankan program di bagian belakang latar (background) dapat
571 menggunakan tanda/karakter (&) pada bagian akhir perintah yang anda ketikkan
572 pada konsole.
576         kari@debian:~$ mpg123 -z * &
578 Tujuan dari penempatan eksekusi program di belakang latar agar anda tidak
579 perlu lagi membuka shell/terminal baru, cukup bekerja pada satu terminal saja.
581 **Mengembalikan eksekusi program ke *foreground***
585         kari@debian:~$ fg
587 atau jika anda ingin lebih spesifik lagi dengan menambahkan nomor
588 programnya::
590         kari@debian:~$ fg %1
592 **Menampilkan Gambar pada X Window**
594 Tool yang dapat anda gunakan untuk menampilkan gambar atau image adalah
595 \`display` yang merupakan bagian dari tool \`ImageMagick`. Tool tersebut dapat
596 mengenali banyak format gambar seperti FlashPix, GIF/GIF87, JPEG,
597 PBM/PNM/PPM, PhotoCD, TGA, TIFF, TransFIG, dan XBM.
601         kari@debian:~$ display nama_file
603 Misal::
605         kari@debian:~$ display silent-m.jpg
607 Berikut tampilan silent-m.jpg dengan ImageMagick.
609 .. image:: images/silent-m.png
611 **Menampilkan Koleksi Gambar pada X Window**
613 Tool \`display` juga dapat digunakan untuk menampilkan seluruh gambar pada
614 sebuah direktori
617         
618         kari@debian:~$ display 'vid:letak-direktori'
620 Keterangan:
622 \`vid` adalah singkatan dari *visual image directory*
624 Misal::
626         kari@debian:~$ display 'vid:/windows/win_d/gambar/*.png'
628 Perintah di atas akan menampilkan seluruh gambar yang berformat \`jpg` pada
629 direktori gambar.
631 **Menempatkan Gambar pada Background**
633 Selain penggunaan tool \`display` untuk menampilkan gambar, tool ini juga dapat
634 menset gambar atau image sebagai gambar latar.
636 Misal::
638         kari@debian:~$ display -window root silent-m.jpg
640 **Menampilkan Gambar pada Konsole**
642 Selain menampilkan gambar atau image pada X window, GNU/linux juga
643 menyediakan fasilitas yang dapat menampilkan gambar pada konsole atau shell.
644 Fasilitas yang dapat digunakan adalah 'zgv' dengan dukungan format seperti GIF,
645 JPEG, PNG, PBM/PNM/PPM, TGA, PCX.
649         kari@debian:~$ zgv /windows/win_d/silent-m.jpg
651 **Mengeksekusi beberapa command line secara bersamaan**
653 Untuk mengeksekusi command line secara bersamaan, anda dapat 
654 menggunakan tanda (;) sebagai pemisah antar command line.
658         kari@debian:~$ cd /home/kari;ls -x
660 Perintah di atas membuat sistem anda akan pindah ke direktori /home/kari
661 kemudian langsung mengeksekusi perintah berikutnya yakni \`ls -x`.
663 **Menghentikan program yang sedang berjalan**
665 Untuk menghentikan program yang sedang berjalan pada konsole, anda dapat
666 cukup menekan **Ctrl-Z** pada keyboard.