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
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.
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**
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**
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
127 kari@debian:~$ history | grep clear
129 Perintah di atas akan menampilkan seluruh perintah \`clear` yang pernah anda
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>
148 kari@debian:~$ ls -a /home/kari/
150 Keluaran perintah di atas adalah::
162 buku debian gnu jilid 2
164 **Menampilkan isi direktori/file dimana direktori akan ditampilkan dengan warna**
168 kari@debian:~$ ls --color <direktori>
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>
182 kari@debian:~$ ls --classify /usr/sbin/
184 Output perintah di atas adalah::
199 **Menampilkan direktori beserta subdirektori yang terdapat di dalamnya**
203 kari@debian:~$ ls --recursive (atau -R) <direktori>
207 kari@debian:~$ ls --recursive /home/kari
209 Output perintah di atas adalah::
213 ./OpenOffice.org1.1.0:
217 ./OpenOffice.org1.1.0/share/cde/types/ru.ANSI-1251:
223 **Menampilkan direktori/file dari yang terakhir kali dimodifikasi**
227 kari@debian:~$ ls -t <direktori>
231 kari@debian:~$ ls -t /home/kari/
233 Output perintah di atas adalah::
239 **Mengurutkan direktori/file sesuai dengan ekstensi file/direktorinya**
243 kari@debian:~$ ls -X <direktori>
247 kari@debian:~$ ls -X /home/kari/
249 Output perintah di atas adalah::
251 Desktop data presentasi
252 MyMusic gambar debian gnulinux
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
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
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
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
298 -C, --compile compile file specified by -m
299 -d, --debug print debugging messages
301 Report bugs to http://bugs.gw.com/
305 kari@debian:~$ file -z /home/kari/
307 Output perintah di atas adalah::
315 Opsi `-z` digunakan agar file kompresi dan link simbolik dapat ditampilkan juga.
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
326 **Menampilkan Partisi Hardisk**
328 Untuk menampilkan partisi hardisk yang ada, perintah yang digunakan adalah::
330 debian:~# fdisk -l DISK
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
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.
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
401 kari@debian:~$ more .bash_history
404 Jika anda menggunakan user yang lain, maka command history pada user
405 sebelumnya tidak dapat anda lihat.
409 Menampilkan pemakaian disk oleh direktori tertentu.
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.**
435 Output perintah di atas adalah::
441 Perintah di atas untuk menampilkan kalender.
447 Output perintah di atas adalah::
457 Sedangkan untuk menampilkan seluruh bulan dalam tahun tertentu, maka
458 perintah yang digunakan adalah::
460 kari@debian:~$ cal 2004
464 Perintah di atas digunakan untuk memainkan musik pada konsole atau terminal.
468 kari@debian:~$ cd /lagu
469 kari@debian:/lagu$ mpg123 -z *
471 High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2,
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
477 Title : Negeri Di Awan Artist : Kla Project
479 Comment: Jomblo Maniac' Administratorz Genre :
481 Playing MPEG stream from kla - Negeri Di Awan.mp3 ...
482 MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
485 untuk pindah ke lagu berikutnya, anda tinggal menekan \`Ctrl+C` sedangkan
486 untuk mengakhirinya tekan \`Ctrl+Z`.
490 Menampilkan informasi sistem operasi yang digunakan pada sistem
494 kari@debian:~$ uname -sr
498 Opsi \`-sr` untuk menampilkan nama sistem operasi dan versi/release yang digunakan.
500 Output perintah di atas adalah::
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
533 kari@debian:~$ alias command_baru='command_asli'
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.
546 **Menghapus Sebuah Alias**
548 Untuk menghapus alias yang anda telah buat sebelumnya, cukup dengan
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::
560 Output perintah di atas adalah::
562 alias ls='ls --color=auto'
565 Ternyata pada sistem Debian kami telah menggunakan alias ls untuk perintah 'ls
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
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***
587 atau jika anda ingin lebih spesifik lagi dengan menambahkan nomor
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
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
618 kari@debian:~$ display 'vid:letak-direktori'
622 \`vid` adalah singkatan dari *visual image directory*
626 kari@debian:~$ display 'vid:/windows/win_d/gambar/*.png'
628 Perintah di atas akan menampilkan seluruh gambar yang berformat \`jpg` pada
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.
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.