Command Line Interface .. Kenapa kita harus mengenalnya ? Seperti yang anda tahu, Linux memiliki GUI (Graphical User Interface) seperti pada Windows atau Macintosh. Jadi kenapa kita harus menggunakan command line interface ?
GUI bisa dibilang sangat membantu untuk sebagian besar pekerjaan, tetapi pada saat tertentu GUI tidak dapat selalu menjadi prioritas utama dalam menyelesaikan pekerjaan. Pada awalnya memang terasa sedikit “menakutkan” melihat penggunaan command line, tetapi ketika anda sudah terbiasa dan merasakan nilai plusnya, anda akan bisa menyelesaikan pekerjaan pada komputer dengan cara yang paling efisien.
Apa itu “Shell” ?
Secara sederhana, shell adalah program penerima perintah yang diketikkan dari keyboard, dan mengantarnya ke sistem operasi untuk dieksekusi. Pada awal perkembangan komputer, shell adalah satu-satunya interface yang ada untuk keluarga UNIX, contohnya Linux. Saat ini kita memiliki GUI sebagai tandem untuk CLI (Command Line Interface).
Pada sebagian besar sistem Linux, program shell yang digunakan adalah “bash” (Bourne Again SHell), sebagai perkembangan dari shell UNIX : “sh“. Bash dibuat oleh Steve Bourne. Selain bash, ada beberapa program serupa seperti “ksh“, “tcsh“, dan “zsh“.
Apa itu Terminal ?
Terminal atau nama lainnya Terminal Emulator, adalah program yang menjadi perantara antara aku dan dia XD .. kita dengan shell. Ada beberapa jenis terminal yang dapat digunakan seperti : “gnome-terminal, “console“, “xterm“, “rxvt“, “kvt“, “nxterm“, “eterm“.
Menjalankan Terminal
– Pada baris pertama terdapat shell prompt (erase@ERASE-X450CC), dan command “uname” (untuk menampilkan informasi sistem operasi). Command adalah hal pertama yang selalu kita ketik saat menggunakan terminal.
– Baris kedua menampilkan output command “uname“.
– Pada baris ketiga, command “uname” ditambah dengan parameter “-a“. Ada parameter-parameter yang bisa ditambahkan ke command, salah satunya seperti “uname -a” (untuk menampilkan semua informasi sistem operasi yang tersedia). Antara command dan karakter pertama parameter harus terdapat spasi (” “). Parameter diawali dengan karakter dash (“-“).
– Baris keempat menampilkan output command “uname -a“. Terminal bisa menampilkan proses yang berlangsung, output, atau pesan sukses atau error jika terjadi kesalahan.
– Baris kelima menampilkan shell prompt kembali, ini artinya command terakhir sudah selesai dieksekusi dan kita bisa kembali menjalankan command lainnya. Jika pada saat proses eksekusi (ditandai dengan shell prompt yang belum muncul) kita memasukkan kembali command, maka command tersebut akan dieksekusi setelah proses yang sedang berlangsung selesai.
Untuk menghentikan proses eksekusi, gunakan escape character (CTRL + C). Untuk keluar dari terminal bisa menggunakan tombol close atau command “exit“.
*Note : Satu terminal tidak bisa menjalankan lebih dari satu command pada saat yang sama (harus berurutan). Escape character (Ctrl + C) digunakan untuk menghentikan command yang sedang dalam proses eksekusi. Untuk menjalankan lebih dari satu command secara bersamaan, kita harus membuka terminal kedua, ketiga dst.
Setiap Desktop Environment memiliki cara yang berbeda untuk membuka terminal. Tetapi pada umumnya terminal berada di menu “Applications -> System” atau “Applications -> Utilities” degan nama terminal atau terminal emulator atau console. Anda dapat membuka lebih dari satu terminal dalam satu desktop / workspace.
Saat terminal dibuka maka akan terlihat shell prompt yang berisi username dan nama komputer (diikuti dengan simbol dollar : “$”). Jika anda mengetikkan sesuatu yang tidak dimengerti komputer, maka akan muncul pesan command not found. Jika anda menekan tombol atas-bawah pada keyboard, maka akan muncul history command.
Pada karakter terakhir di shell prompt terdapat simbol “$”, ini artinya anda menggunakan user non root. Jika yang terlihat adalah simbol “#” itu artinya anda menggunakan user root atau superuser. Disarankan menggunakan user root hanya pada saat hak administratif dibutuhkan.
Penggunaan Mouse
Walaupun menggunakan CLI, penggunaan mouse bisa sangat membantu. Selain untuk scroll layar terminal, mouse bisa digunakan untuk meng-copy teks dari- dan ke- terminal. Selain itu, saat hendak mengetikkan path file atau direktori, daripada mengetikkan path nya secara manual, kita bisa drag file atau direktori target ke dalam terminal, dan path file atau direktori akan otomatis muncul di terminal.
Navigasi
Dalam kegiatan navigasi, ada 3 command yang umum digunakan, yaitu : “pwd” (print working directory), “cd” (change directory), “ls” (list files and directories). Seperti yang dijelaskan di post Linux vs Windows – “/” vs “C:\”, sistem Linux menggunakan “struktur direktori”. Direktori paling atas adalah direktori “/” (root).
*Note : Pada keluarga UNIX termasuk Linux, Command Line Interface bersifat case sensitive
1. pwd – print working directory
Dalam satu terminal, posisi kita akan selalu berada pada satu direktori. Dalam direktori ini kita bisa melihat file-file yang ada dan path ke direktori di atasnya (parent directory) atau direktori di bawahnya (subdirectory). Direktori dimana kita sedang berada disebut working directory. Jadi fungsi “pwd” adalah untuk menampilkan nama working directory.
Pada saat kita pertama kali masuk ke Linux, maka working directory secara default di-set ke direktori “Home” atau “/home/username”.
*Note : Direktori “Home” (direktori tempat file-file milik user berada) mempunyai path “/home/username”. Secara umum direktori “/home/username” biasa disebut dengan “Home” saja. Jangan terkecoh dengan mengartikan direktori “Home” adalah “/home”, karena hal ini salah. Direktori “Home” adalah “/home/username”.
ls – list files and directories
Untuk menampilkan file-file pada working directory (termasuk subdirectory), gunakan command “ls“.
cd – change directories
Untuk berpindah direktori (pindah working directory), kita gunakan command “cd” diikuti dengan path direktori tujuan. Path adalah rute yang digunakan di dalam sistem struktur direktori. Path dapat berupa absolute path atau relative path.
Absolute path
Absolute path dimulai dari direktori root hingga ke direktori tujuan secara step-by-step secara tepat. Contoh, pada Linux saya, direktori “Music” mempunyai path “/home/erase/Music”. Ini artinya pada direktori root (ditandai dengan simbol “/”) terdapat direktori “home” yang didalamnya terdapat direktori “erase” yang didalamnya terdapat direktori “Music” yang didalamnya terdapat koleksi lagu-lagu favorit saya XD.
Pada terminal, nama working directory akan selalu ditampilkan sebelum simbol “$” (atau “#” untuk mode root) sesuai dengan urutan path. Saat saya masih berada di direktori “Home”, terdapat simbol “~” sebelum simbol “$”. Begitu saya masuk ke direktori “Music”, terlihat nama “Music” ditambahkan di depan simbol “~” menjadi “~/Music” (ini sama artinya dengan path “/home/erase/Music”).
Jika kita menggunakan mode non root, maka simbol “~” mengacu ke direktori “Home” milik user (“home/username”). Jika kita menggunakan mode root, maka simbol “~” mengacu ke direktori “Home” milik root (“/root”). Jangan terkecoh antara direktori “Home” milik root (“/root”) dengan direktori root (“/”), karena merupakan dua direktori yang berbeda.
*Note : root memiliki direktori “Home” (“/root”) yang berbeda dengan direktori “root” (“/”). Untuk penjelasan yang lebih lengkap bisa dilihat di linfo.org
Jika dari direktori “Music” saya ingin kembali ke direktori “Home” (“home/username”), maka saya harus menjalankan command : “cd /home/erase“.
Jika dari direktori “Music” saya ingin ke direktori root, maka saya cukup mengetikkan command : “cd /”.
Relative path
Jika absolute path dimulai dari direktori root, relative path dimulai dari direktori tempat kita berada atau working directory. Untuk menggunakan relative path, digunakan simbol “.” (dot) atau “..” (dot dot). Simbol “.” mengarahkan ke subdirectory, dan simbol “..” mengarahkan ke parent directory dari working directory.
Dari direktori “Home”, saya akan kembali masuk ke direktori “Music” tetapi dengan menggunakan relative path dengan command : “cd ./Music”.
*Note : Kita juga bisa masuk ke subdirectory tanpa menggunakan “./”, dan langsung mengetikkan nama direktorinya. Dalam hal ini, shell mengasumsikan working directory sebagai “./”.
Jika dari direktori “Music” saya ingin kembali ke direktori “Home” (“home/username”), maka saya cukup menjalankan command : “cd ..“.
Jika dari direktori “Music” saya ingin ke direktori root, maka saya harus menjalankan 3 command “cd ..” secara berurutan.
Relative path menggunakan path yang bertahap dari path working directory. Tidak seperti absolue path yang bisa melompat / berpindah direktori dengan cukup satu baris command. Jadi yang mana yang lebih baik ? Jawabnya tergantung situasi, pada saat harus berpindah dari subdirectory paling bawah ke parent directory yang jauh di atas, tentu lebih baik menggunakan absolute path. Jika kita hanya ingin berpindah satu atau dua direktori di atas atau di bawah, tentu lebih efektif menggunakan relative path daripada absolute path yang mengharuskan mengetikkan path direktori secara lengkap dan tepat.
*Note :
Penggunaan absolute path untuk berpindah dari parent directory ke subdirectory yang jauh berada di bawah kurang disarankan, karena harus mengetikkan path dengan lengkap dan tepat. Tentu akan repot apalagi jika kita tidak ingat dengan setiap nama subdirectory-nya. Jika tetap ingin menggunakan absolute path, solusi terbaik adalah dengan mengkombinasikannya dengan GUI. Kita bisa drag direktori atau copy path langsung ke dalam terminal.
Menjalankan command “cd” tanpa parameter apapun, maka working directory akan berpindah ke direktori “Home”.
Menjalankan command “cd ~username”, maka working directory akan berpindah ke direktori “Home” milik username.
Menjalankan command “cd -“, maka working directory akan berpindah ke working directory sebelumnya.
Nama file yang diawali dengan simbol “.” (dot) adalah file yang memiliki attribute hidden. Saat menjalankan command “ls”, file hidden tidak akan terindeks kecuali dengan menggunakan tambahan parameter “-a” menjadi “ls -a”. Ada beberapa file hidden di direktori “Home” yang merupakan file konfigurasi Linux dan file konfigurasi dari aplikasi yang diinstall.
Linux tidak mengenal sistem “file extension”. Tidak seperti OS Windows yang menentukan program apa yang akan dibuka berdasarkan ekstensi file. Linux menentukan program apa yang akan dibuka berdasarkan isi file. Kita bebas memberi nama ekstensi file atau bahkan tidak memberi ekstensi sama sekali.
Walaupun Linux memberi kebebasan untuk hal pemberian nama file dengan berbagai tanda baca, ada baiknya untuk membatasi dengan 3 karakter saja : period / dot (“.”), dash (“-“), dan underscore (“_”). Sangat disarankan menggunakan karakter underscore (“_”) sebagai pengganti karakter (” “) atau spasi.
Reference : linuxcommand.org | ryanstutorials.net | linfo.org
Image (Kirito SAO) : goo.gl/9F1k5X