Ketika kita membahas Linux command line, maka artinya kita sedang membahas shell. Linux shell seringkali disebut bash shell yang kepanjangannya adalah Bourne Again Shell, yang diciptakan oleh Stephen Bourne saat menciptakan shell untuk sistem operasi UNIX.
Bash menjadi shell standar untuk seluruh linux distribution, namun shell lainnya juga tersedia seperti C shell (csh), Korn shell (ksh), ash Shell dan sebagainya. Bab ini akan fokus membahas penggunaan bash shell saja.
Shell adalah sebuah program interpreter yang menunggu perintah (Command), menerjemahkan perintah dan memproses perintah yang diberikan oleh user.
Ketika kita memulai program shell maka anda akan melihat simbol dollar ($), yang menandakan shell prompt sudah siap untuk digunakan.
~$
Di bawah ini adalah struktur command di dalam shell :
Perintah (Command) pertama yang akan kita pelajari adalah echo, silahkan eksekusi perintah di bawah ini :
~$ echo hello maudy
hello maudy
~$ echo hello world
hello world
Command adalah perintah yang akan kita berikan agar dieksekusi oleh shell. Untuk menguji perintah pertama kita, ketik perintah (Command) pada shell prompt whoami kemudian tekan Enter.
Perintah (Command) ini digunakan untuk mencetak nama pengguna sistem operasi linux yang sedang menggunakan shell. Linux command bersifat case sensitive.
Secara konvensi penulisan perintah (Command) ditulis menggunakan huruf kecil (lowercase). Selanjutnya kita akan mencoba perintah dasar yang paling sering digunakan di dalam shell.
Untuk mengetahui saat ini kita berada di posisi directory yang mana eksekusi perintah (command) pwd kemudian tekan enter.
~$ pwd
/home/ubuntu
Kita akan mencoba untuk pindah directory menuju /home directory menggunakan perintah (command) cd.
Untuk berpindah directory eksekusi perintah cd /home kemudian tekan enter.
~$ cd /home
/home$
Seketika kita langsung berpindah directory.
Untuk berpindah menuju root directory agar bisa melihat struktur filesystem linux eksekusi perintah cd / kemudian tekan enter.
~$ cd /
/$
Perhatikan posisi Present Working Directory (PWD) saat ini berada di dalam root directory yang ditandai dengan path xxx@xxx : /$.
Untuk melihat terdapat directory apa saja eksekusi perintah ls kemudian tekan enter.
~$ /$ ls
bin home lib64 opt sbin tmp vmlinuz.old
boot initrd.img lost+found proc snap usr
dev initrd.img.old media root srv var
etc lib mnt run sys vmlinuz
Perintah ini akan menampilkan daftar file (lists files) di dalam suatu directory.
Jika kita ubah kedalam tampilan visual kita bisa melihat terdapat banyak sekali sub-directory di dalam root directory. Kita akan membahas masing-masing directory di bab khusus.
Jika anda ingin mengetahui penjelasan setiap directories, eksekusi perintah di bawah ini :
~$ man hier
Menggunakan perintah change directory yaitu cd kita bisa mengeksplorasi setiap directory di atas, silahkan lakukan sendiri untuk latihan dan eksplorasi. Untuk membaca posisi anda saat ini gunakan perintah pwd.
Jika anda merasa tersesat eksekusi perintah di bawah ini :
~$ cd ~
Anda akan kembali lagi di halaman /home/ubuntu.
Pada sistem operasi linux alamat (path) dari directory menggunakan simbol forward slash (/) dan pada sistem operasi windows menggunakan simbol backward slash ().
Selain memahami konsep path directory pada linux yang mengunakan simbol forward slash (/), kita juga harus memahami konsep absolute path dan relative path.
Pada absolute path, alamat (path) ditulis secara lengkap misal /home/ubuntu
~$ cd /home/ubuntu
Pada relative path alamat tidak ditulis dengan lengkap, misal jika kita melakukan change directory menuju /var directory :
~$ cd /var
Selanjutnya kita dapat menggunakan alamat (path) log/cloud-init.log di dalam var directory tanpa perlu mengeksekusi menggunakan full path /var/log/cloud-init.log.Jadi jika perintah (command) di atas tidak menampilkan output apapun berarti dalam directory tersebut tidak terdapat visible file sama sekali.
Untuk melihat hidden file kita akan mempelajarinya di halaman selanjutnya, untuk itu pastikan kita kembali melakukan navigasi menuju directory home/ubuntu :
/$ cd home/ubuntu
~$
Setelah mempelajari Command (Perintah) kita akan mempelajari options atau command-line options (Opsi Perintah).
Opsi perintah atau biasa disebut command-line options digunakan agar perintah (Command) yang dieksekusi memiliki karakteristik tertentu. Untuk memberikan karakteristik perintah kita perlu menggunakan switches atau flags.
Pada perintah di atas kita menggunakan switches -a untuk melihat seluruh file termasuk hidden file. Perintah di atas akan memproduksi output berupa sekumpulan hidden files yang ditandai dengan ciri awalan nama file menggunakan simbol dot (.) :
~$ ls -a
. .bash_history .bashrc .gnupg .ssh
.. .bash_logout .cache .profile .sudo_as_admin_successful
Hidden File
Pada sistem operasi linux kita dapat membuat file yang terlihat (visible file) dan file yang tersembunyi (hidden file).
Perintah (command) ls digunakan untuk menampilkan daftar file yang terlihat saja (visible file) sementara command ls dengan options -a membantu kita melihat hidden file.
Simbol dot (.) artinya kita sedang berada dalam sebuah directory dan double dot (..) menandakan terdapat sebuah parent directory.
Switches atau flags dimulai dengan strip (single dash), atau kita juga bisa menggunakan opsi perintah menggunakan nama kepanjanganya dengan dua strip (two dash symbols).
Penggunaan single dash biasanya menggunakan 1 karakter tunggal sebagai singkatan (abbreviations) dari nama kepanjanganya. Sebagai contoh di bawah ini terdapat single-character command-line options :
- -a (single dash) atau --all (two dash)
- -l (single dash) atau --list (two dash)
- -t (single dash) atau --time (two dash)
- -h (single dash) atau --human (two dash)
Kita dapat menggunakan lebih dari satu options dalam satu perintah (Command) untuk mendapatkan karakteristik lainnya.
Sebagai contoh eksekusi perintah (Command) ini ls -alth kemudian tekan enter :
~$ ls -alth
total 36K
drwxr-xr-x 5 ubuntu ubuntu 4.0K Mar 15 04:53 .
-rw------- 1 ubuntu ubuntu 32 Mar 15 04:53 .bash_history
-rw-r--r-- 1 ubuntu ubuntu 0 Mar 15 04:53 .sudo_as_admin_successful
drwx------ 2 ubuntu ubuntu 4.0K Mar 15 01:01 .cache
drwx------ 3 ubuntu ubuntu 4.0K Mar 15 01:01 .gnupg
drwx------ 2 ubuntu ubuntu 4.0K Mar 14 19:41 .ssh
drwxr-xr-x 3 root root 4.0K Mar 14 19:41 ..
-rw-r--r-- 1 ubuntu ubuntu 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 ubuntu ubuntu 3.7K Apr 4 2018 .bashrc
-rw-r--r-- 1 ubuntu ubuntu 807 Apr 4 2018 .profile
Fungsi dari masing-masing switch :
- Option -l switch memberikan karakteristik pada perintah untuk menampilkan seluruh file dalam bentuk list lengkap dengan detil informasi lainnya seperti waktu pembuatan file (creation date).
- Option -t switch memberikan karakteristik pada perintah untuk mensortir file berdasarkan waktu modifikasi (modification date) dimulai dari yang terbaru diurutan paling atas/awal.
- Option -h stands memberikan karakteristik human readable, output akan menampilkan ukuran file yang lebih mudah dibaca dalam satuan Mega Bytes (MB) bukan dalam satuan bytes.
Arguments adalah informasi yang menjadi input untuk diproses sebuah command, sebelumnya kita sudah menggunakan arguments. Di bawah ini contoh Command, Options dan Arguments secara lengkap :
Selanjutnya kita akan belajar bagaimana membuat sebuah file, mengubah modification time, dan access time file dengan memanfaatkan command argument.
Setiap file yang kita ciptakan dalam sistem operasi linux memiliki modification time dan access time. Dengan perintah (Command) touch kita dapat membuat sebuah file, dan argument yang dibutuhkan adalah nama file yang akan di buat.
Untuk membuat file eksekusi perintah (Command) dan Argument di bawah ini :
~$ touch indonesia
Perintah (Command) touch hanya dapat digunakan untuk membuat file saja, tidak bisa digunakan untuk membuat sebuah directory. Selanjutnya eksekusi perintah ls -l untuk melihat waktu pembuatan file :
~$ ls -l
…
-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 26 13:22 indonesia
…
Waktu pembuatan file yaitu pada March 26 13:22, untuk mengubah modification time tambahkan options -m pada perintah (Command) touch.
Untuk mengubah modification time eksekusi perintah (Command) di bawah ini :
~$ touch -m indonesia
Jika sudah kita dapat memeriksanya dengan mengeksekusi perintah di bawah ini :
~$ ls -l
…
-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 26 13:25 indonesia
…
Modification time pada file indonesia kini berubah menjadi March 26 13:25, namun jika kita mengeksekusi perintah ls -lu kita dapat melihat waktu akses masih belum berubah :
~$ ls -lu
…
-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 26 13:22 indonesia
…
Untuk mengubah waktu access time tambahkan options -a pada perintah (Command) touch.
Untuk mengubah access time eksekusi perintah (Command) di bawah ini :
~$ touch -a indonesia
Jika sudah kita dapat memeriksanya dengan mengeksekusi perintah di bawah ini :
~$ ls -lu
…
-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 26 13:27 indonesia
…
Access time pada file indonesia kini sudah berubah.
Untuk membuat sebuah directory eksekusi perintah (Command) di bawah ini :
~$ mkdir maudy
Untuk melihat hasilnya eksekusi perintah (Command) di bawah ini:
$ ls
maudy
Kita juga dapat membuat 3 directories sekaligus dengan memanfaatkan multi-arguments seperti pada perintah (Command) di bawah ini :
~$ mkdir maudya ayunda faza
Untuk melihat hasilnya eksekusi perintah (Command) list :
~$ ls
ayunda faza maudy maudya
Kini terdapat 4 directories.
Untuk membuat sub-directory kita dapat menggunakan option -p, pada argument kita membuat full path /perahu/kertas/maudy. Silahkan coba eksekusi perintah (Command) di bawah ini :
~$ mkdir -p perahu/kertas/maudy
Untuk melihat hasilnya eksekusi perintah (Command) list :
~$ ls
ayunda faza maudy maudya perahu
ubuntu@xxx : ~$ cd perahu
ubuntu@xxx : ~$ ls
kertas
ubuntu@xxx : ~$ cd kertas
ubuntu@xxx : ~$ ls
maudy
Anda bisa mencobanya sebagai latihan.
Ada cara yang lebih mudah untuk mendapatkan informasi seluruh sub-directory dalam sebuah directory. Kita akan menggunakan perintah (Command) ls dengan option -R seperti di bawah ini :
~$ ls -R perahu
perahu:
kertas
perahu/kertas:
maudy
perahu/kertas/maudy:
Metode pencarian dilakukan secara rekursif menggunakan option -R (R kapital).
Jika kita ingin melihat perintah apa saja yang telah kita eksekusi sebelumnya gunakan perintah command di bawah ini :
~$ history
1 whoami
2 pwd
3 cd /
4 ls
…
Jika anda ingin mengeksekusi kembali perintah yang telah dilakukan misal perintah (Command) nomor satu, maka eksekusi !1 di dalam shell :
$ !1
ubuntu
Anda juga dapat menekan tombol arrow up and down dalam keyboard anda untuk mendapatkan Command History sebelumnya.