Daftar Isi:
Sebagai pemrogram, kita Niscaya pernah menggunakan CLI (Command-Line Interface), setidaknya ketika hendak menginstall paket baru dengan package manager yang tersedia
di sistem operasi yang kita Guna. Kali ini, kita akan membahas lebih dalam apa itu CLI dan bagaimana penggunaannya Buat menunjang rutinitas pemrograman kita.
Istilah dalam CLI
Apa itu Command-Line Interface?
Command-Line Interface (CLI) adalah antarmuka dimana kita berinteraksi dengan komputer melalui baris-baris perintah berbentuk teks. Antarmuka CLI biasanya Eksis dalam
sebuah terminal atau sering disebut juga dengan console, sebuah program berbasis teks Buat menangkap input keyboard dan menampilkan hasilnya.
Pemrosesan perintah-perintah CLI dilakukan oleh sebuah interpreter atau shell
.
Apa itu shell
?
shell
adalah sebuah program Buat menerjemahkan (interpret) teks-teks perintah input dari user sehingga Dapat dieksekusi oleh sistem operasi.
cmd.exe dan PowerShell adalah Teladan interpreter Buat Command-Line yang Eksis di sistem operasi Windows, sedangkan bash, zsh, sh
adalah Teladan interpreter Command-Line di *nix seperti linux dan MacOS.
Manfaat menguasai CLI
Interaksi dengan server
Dalam proses pengembangan perangkat lunak, kita Niscaya akan bersentuhan dengan komputer server, terutama ketika masuk fase deployment dan maintenance.
Kebanyakan server yang berbasis linux hanya menyediakan CLI sebagai antarmuka Primer mereka.
Tanpa pengetahuan tentang CLI sebelumnya, Dapat dipastikan produktifitas kita akan Anjlok karena perlu “googling” Buat mencari perintah yang Akurat.
Peningkatan produktifitas
CLI Dapat meningkatkan produktifitas kita sebagai seseorang yang banyak mengetik karena CLI didesain Buat menggunakan keyboard sebagai alat intput Primer, sehingga,
tangan Bukan perlu terlalu banyak meninggalkan keyboard Buat melakukan apapun di dalamnya, misalnya mencari dan membuka berkas dengan mause. Dengan begitu, waktu
yang dibutuhkan Buat melakukan menyelesaikan sebuah pekerjaan Dapat lebih Segera.
Memudahkan multitasking
CLI Dapat mempermudah kita dalam multitasking dengan dukungan utilitas dari shell
-nya meskipun hanya dengan satu layar saja.
Menyantap sumber daya komputer secara langsung Sembari menjalankan program yang barus saja kita bangun dan membuka text editor Buat Membangun perubahan
di baris kode program adalah Teladan multitasking yang Dapat dilakukan di satu sesi CLI.
Selanjutnya, apa yang Dapat kita lakukan Buat meningkatkan kemampuan penggunaan CLI? Eksis beberapa hal yang akan kita bahas dalam tulisan ini.
Tetapi, kita akan Pusat perhatian pada CLI di sistem operasi *nix, linux dan MacOS yang lebih Standar dipakai di server maupun di komputer pribadi,
bahkan Windows pun sudah mempunyai subsistem linux (WSL) dimana kita Dapat menjalankan linux dalam Windows tanpa mesin virtual.
Tips menjadi produktif di CLI
Pilih shell
yang lebih ramah
bash
merupakan shell
bawaan dari kebanyakan distro linux yang Eksis, Tetapi Dapat dikatakan kalau bash
minim fitur dan relatif lebih susah Buat dikustomisasi.
Alternatifnya adalah zsh dengan beberapa fitur tambahan seperti command completion dan dukungan Buat penemaan prompt
sehingga lebih mudah Buat dikustomisasi.
Dukungan komunitas zsh
sangat aktif, salah satunya dengan adanya oh-my-zsh sebuah perangkat Buat mengatur konfigurasi zsh
kita.
fish shell adalah pilihan yang Dapat dipertimbangkan. Seperti zsh
, fish
mempunyai fitur yang lebih Berkualitas dari bash
seperti
command completion, Corak 24 bit, syntax highlighting.
fish
juga mempunya komunitas yang aktif, banyak tools dari komunitas yang Dapat dipakai Buat mengatur konfigurasinya, fisher
dan oh-my-fish adalah contohnya.
Membiasakan diri dengan perintah-perintah dasar CLI
Anatomi dari sebuah perintah CLI biasanya terbagi menjadi tiga bagian: perintah (command), opsi (options), dan argumen.
ls -al /home/nauval
Dari perintah diatas, ls
adalah perintahnya, -al
adalah options-nya, Lewat /home/budi
adalah argumennya.
Nyaris Segala perintah CLI mempunyai opsi Buat Buat menunjukkan petunjuk penggunaannya, biasanya dengan menambahkan opsi -h
atau --help
, misalnya ls --help
.
Buat manual yang lebih lengkap Dapat diakses dengan perintah man
Seperti sebuah bahasa, perintah CLI adalah kosa katanya. Semakin banyak kosa kata yang dikuasai, akan semakin Fasih juga komunikasinya.
Nanti kita akan sedikit membahas perintah-perintah yang banyak digunakan sehari-hari.
Membangun alias utuk mempersingkat perintah
Alias adalah Langkah Buat memperpendek perintah sehingga lebih efisien. Misalnya, Buat memasukkan (commit) perubahan dalam sebuah repositori git
maka kita perlu melakukan git add .
Lewat git commit
. Dengan Membangun alias kita Dapat Membangun sebuah perintah baru dengan menggabungkan kedua perintah diatas.
alias gac="git add . && git commit"
Dengan begitu kita hanya perlu mengetik perintah gac
pada CLI Buat Membangun menggantikan perintah aslinya yang lebih panjang.
Menggunakan editor teks berbasis CLI
Ketika berada dalam CLI, sering kali kita perlu Buat mengubah berkas yang Eksis atau Membangun file baru yang membutuhkan editor.
Salah satu teks editor berbasis CLI yang tersedia adalah vim
yang tersedia Nyaris di setiap sistem operasi berbasis *nix, sehingga kita
Bukan perlu belajar Kembali ketika berpindah ke komputer yang lain.
Perintah dalam vim
itu seperti sebuah bahasa yang menggunakan struktur yang terdiri dari kata benda (nouns), kata kerja (verbs),
dan kata keterangan (adverbs). Rumus paling sederhananya adalah
verb + noun
# dengan adverbs
verb + adverb + noun
- Verbs: aksi yang kita lakukan terhadap nouns
d
Buat deletec
Buat chagey
Buat yank atau salin (copy)v
Buat visually select per character (V
Buat memilih baris)
- Nouns: objek yang dikenai pekerjaan
w
Buat words
Buat sentence)
Buat sentence (Langkah lain)p
Buat paragraph}
Buat paragraph (Langkah lain)t
Buat tag (HTML/XML)
- Nouns (motions): selain sebagai objek, nouns Eksis yang dipakai Buat menggerakkan kursor
h
,j
,k
,l
Buat kiri, Rendah, atas, kananw
Buat bergerak ke awal kata selanjutnyae
Buat bergerak ke akhir kata selanjutnyab
Buat bergerak ke akhir awal sebelumnya$
Buat bergerak ke akhir Kepribadian pada sebuah baris0
Buat bergerak ke awal Kepribadian pada sebuah baris}
Buat bergerak ke paragraf selanjutnyagg
Buat bergerak ke awal BerkasG
Buat bergerak ke akhir Berkas
- Adjective: keterangan Buat mendeskripsikan perintah lebih lanjut
i
Buat inside (di dalam)a
Buat around (di Sekeliling)[0-9]
(nomor dari 0-9)
Teladan dari perintah dalam vim
berdasarkan rumus diatas:
# delete 2 words
d2w
# change inside "
ci"
# change around tag
cit
# copy inside paragraph
yip
Yang berbeda dari editor lainnya adalah vim
mempunyai tiga mode Primer:
normal
mode bawaan Buat melakukan perintah-perintah seperti hapus, menggerakkan kursor, salin, dan lain-lain.insert
mode Buat mengetik, dipicu dengan menekani
pada mode normal,esc
Buat keluar ke modenormal
visual
mode Buat memilih (menyeleksi) teks Buat dilakukan operasi lainnya seperti hapus, salin, dan lain-lain
Selain perintah-perintah di atas, Eksis beberapa perintah Krusial lainnya agar Dapat mengedit berkas:
:w
pada modenormal
Buat menyimpan (write) berkas:q
pada modenormal
Buat berhenti dan keluar darivim
(quit):q!
pada modenormal
Buat keluar tanpa menyimpan perubahan
Buat belajar vim
lebih lanjut secara interaktif Dapat menuju ke vim.is.
Neovim
Neovim (nvim
) adalah diperuntukkan sebagai pengganti vim
dengan berbagai tambahan fitur seperti klien LSP (Language Server Protocol)
bawaan Buat code completion, refaktor dan Pengawasan kode, serta lebih mudah Buat di-extend dengan Lua. Oleh karena itu, Neovim Dapat dikustomisasi menjadi IDE seperti VSCode.
Lazyvim adalah salah satu Ekspansi yang Dapat Membangun Neovim menjadi IDE moderen dalam sekejap.
Menggunakan tmux
terminal multiplexer Buat mempermudah multitasking
tmux
membolehkan kita Buat Membangun semacam “pseudo-terminal” dari satu terminal. Meskipun kita hanya membuka satu tab aplikasi terminal,
dengan tmux
kita Dapat Membangun semacam terminal-teminal lain di dalamnya. Ini akan sangat Berfaedah ketika kita Ingin menjalankan program dalam satu koneksi,
misalnya ketika sedang melakukan remote ssh
.
tmux
Bukan bergantung pada aplikasi terminal yang sedang berjalan, jadi ketika kita Bukan sengaja menutup aplikasi terminal, server tmux
akan tetap
berjalan dan kita cukup meng-attach ke server tmux
yang sedang berjalan dengan perintah tmux attach
.
tmux
bukan program bawaan dari linux ataupun MacOS, jadi kita perlu install terlebih dahulu.
# MacOS
brew install tmux
# Arch linux
pacman -S tmux
# RHEL or CentOS
yum install tmux
# Debian or Ubuntu
apt install tmux
Buat Membangun sebuah sesi tmux
baru kita perlu menjalankan perintah berikut
tmux new -s session-name>
Seperti program-program di linux lainnya, tmux
mempunyai keybinding yang dipakai Buat mengoperasikannya, antara lain:
ctrl+b
w
Buat menavigasi Segala jendela (window) yang Eksis di servertmux
ctrl+b
c
Buat Membangun (create) jendela baructrl+b
n
ataup
Buat Loncat ke jendela setelahnya atau sebelumnyactrl+b
%
Buat membagi sebuah jendela menjadi dua panel secara horizontalctrl+b
”
Buat membagi sebuah jendela menjadi dua panel secara vertikalctrl+b
x
menutup panel
tmux
juga Dapat dikonfigurasi Buat menyesuaikan kebutuhan kita, misalnya mengganti keybinding yang lebih mudah diingat, mengganti tema Corak, dan lain-lain.
Perintah-perintah dasar dalam CLI
Pada bagian ini kita akan berkenalan lebih jauh dengan beberapa perintah CLI yang Standar dan sering digunakan Berkualitas di lokal komputer maupun di komputer server.
Directori dan berkas
-
ls
Menyantap isi dari sebuah direktorils -l
: Menyantap isi directori dalam bentuk list beserta detailnya: pemilik, hak akses, terakhir diperbarui, filesize dalam bytels -a
menampilkan berkas dan direktori tersembunyi (all)ls -h
menampilkan ukuran file dalam format yang lebih mudah dibaca (human-readable) ketika disandingkan dengan-l
ls -t
mengurutkan berdasarkan waktu pembaruan (time) dari yang terbaruls -S
mengurutkan berdasarkan ukuran (size) dari yang terbesarls -r
membalikkan urutan (reverse order)
Opsi-opsi diatas Dapat digabungkan:
ls -ltr
Menyantap isi direktori dalam bentuk list dan diurutkan berdasarkan waktu pembaruan berkas tersebut dari yang terlama ke yang terbaruls -lSr
mengurutkan berkas dan direktori berdasarkan ukurannya dari yang terkecil ke yang terbesar
-
mv
memindahkan (move) direktori atau berkas dari satu tempat ke tempat yang lain, Dapat juga digunakan Buat mengubah nama direktori atau berkasmv /home/budi/some-file.txt /home/budi/other-file.txt
-
cp
copy berkas dari satu tempat ke tempat yang lain-
cp -r
copy direktori beserta Segala isinya secara rekursif (recursive)cp -r /home/budi/a-dir /home/budi/b-dir
Akan meng-copy
a-dir
beserta Segala isinya ke dalamb-dir
.
-
-
rm
menghapus sebuah berkas, Buat menghapus sebuah direktori kita gunakan opsi-r
rm -r /home/budi/a-dir
-
cd
masuk ke sebuah direktorycd /home/budi/a-dir
-
mkdir
Membangun direktory baru (make directory) -
touch
Membangun sebuah file Hampatouch new-file.txt
-
find
mencari file atau direktori berdasarkan Ungkapan yang diberikan. Sintaksis dari perintah ini adalahfind [path...] [expression]
path
menspesifikasikan satu atau lebih direktori tempat pencarian, defaultnya adalah direktori pada Ketika ituexpression
menentukan berkas dan direktori mana yang perlu dicari dan juga aksi yang dilakukan terhadap berkas/direktori tersebut
# mencari file dengan suffix *test.text di dalam direktori /path/to/test-find-dir # kemudian tampilkan hasilnya dalam bentuk detail list find /path/to/test-find-dir -name "*test.text" -ls
-
cat
Buat menampilkan isi dari sebuah berkascat text.txt
-
grep
menampilkan baris-baris yang sesuai dengan pola yang dispesifikasikan.grep [pattern] [file...]
-
less
menampilkan isi sebuah berkas per satu layar, Kalau isi dari berkas tersebut panjang maka yang ditampilkan hanya yang muat pada satu layar yang Eksis Ketika itu.
less
mirip denganmore
tapi dengan fitur yang lebih.less
biasanya digunakan Buat membuka berkas dengan ukuran yang besar seperti log aplikasi.Salah satu fitur yang Berfaedah di
less
adalah pencarian. Buat mencari sebuah kata/frasa dari baris sekarang ke depan, ketik/
Lewat kata yang dicari,
misalnya/granted
Lewat tekan enter,less
akan mencari kata granted dan akan menyorot kata yang sesuai bila ditemukan.
Buat berpindah ke hasil selanjutnya kita tekann
, Buat kembali ke hasil sebelumnya tekanN
.
Buat mencari dari baris sekarang ke belakang memakai?
dengan Langkah yang sama dengan pencarian ke depan.
Memonitor sumberdaya dari sebuah mesin
-
top
menampilkan penggunaan sumberdaya pada mesin komputer,htop
adalah versi yang lebih baru dengan penambahan interaksi user dan Corak -
free
menampilkan memory yang terpakai sekarang, menambahkan opsi-h
Membangun outputnya menjadi lebih mudah dibaca Insan (human-readable).Kolom yang perlu diperhatikan adalah
available
Kalau kita mau Paham seberapa RAM yang tersedia pada Ketika itu. -
du
menampilkan Taksiran ukuran dari sebuah direktori atau file.du -h /path/to/dir
Perintah diatas akan mengestimasi total ukuran dari direktori
path/to/dir
secara rekursif, Segala berkas yang Eksis di dalam direktori dan sub direktory akan dihitung -
df
menampilkan penggunaan hard disk berdasarkan file system-nya
Mengkombinasikan perintah-perintah
Kita Dapat mengkombinasi beberapa perintah CLI dalam satu baris eksekusi agar lebih efisien.
-
;
mengeksekusi Segala perintah tanpa Menyantap perintah sebelumnya gagal atau Bukancd logs; du -sh; df -h
Kalau salah satu perintah gagal, maka perintah selanjutnya akan tetap dieksekusi, ini Dapat Dapat menghasilkan hasil yang Bukan sesuai ekspektasi
-
&&
(operator AND) mengeksekusi perintah hanya Kalau perintah sebelumnya suksescd some-dir && pwd
pwd
hanya akan dieksekusi ketikacd some-dir
berhasil dieksekusi. -
||
(operator OR) mengeksekusi perintah selanjutnya hanya ketika perintah sebelumnya gagal (error)cd some-dir || echo "directory is missing"
Perintah diatas akan menampilkan pesan error Lewat mengeksekusi perintah selanjutnya, hasilnya akan seperti berikut:
cd: The directory 'some-dir' does not exist directory is missing
-
|
(operator pipe) mengarahkan keluaran dari perintah satu menjadi masukan perintah sesudahnyals | grep test
Baris diatas mengeksekusi
ls
Lewat hasil dari perintah tersebut akan diarahkan sebagai input dari perintah selanjutnyagrep test
.
Hasilnya adalah deretan direktori yang mempunyai kata test di namanya.
Penutup
CLI, apabila kita Dapat menggunakannya dengan Berkualitas Dapat menjadi lingkungan yang sangat efisien dan produktif.
Banyak tools ataupun program yang menunjang pekerjaan kita di CLI yang tak jarang Bukan Eksis padanannya dalam GUI.
Sebagai pemrogram, Segera atau Lamban kita akan bersentuhan dengan antar muka ini apalagi ketika berurusan dengan komputer server.
Jadi, pengetahuan tentang CLI dan bagaimana menggunakannya dengan efektif adalah sebuah investasi yang akan membuahkan hasil positif di kemudian hari.