Penggunaan Linux biasanya identik dengan command line interface (CLI) yang tampaknya agak sulit dipahami pengguna awam. Meskipun begitu, penggunaan CLI dalam manajemen server lebih disukai oleh SysAdmin karena banyak hal. Mulai dari lebih ringan dalam hal penggunaan resource dan juga banyak perintah atau yang bisa dilakukan dari CLI.
Apabila CLI adalah antarmukanya, Shell adalah programnya. Shell yang banyak digunakan di berbagai distribusi Linux -termasuk di Red Hat Enterprise Linux- adalah Bash (Bourne-Again Shell). Fungsi utama dari Shell adalah menyediakan antarmuka teks (CLI) agar pengguna dapat berinteraksi dengan kernel Linux.
Perintah Manusia -> Instruksi Mesin
Pada Shell, berlaku konsep “semuanya adalah file”. Bahkan perangkat hardware pun ditampilkan sebagai file. Penggunaan Shell juga memungkinkan beberapa keuntungan, seperti:
- Skalabilitas. Mengelola 1 vs 100 server effort-nya bisa saja mirip (misalnya dengan bantual tool tertentu).
- Reproduktibilitas. Perintah yang dillakukan bisa didokumentasikan dan juga digunakan ulang.
- Otomatisasi. Memungkinkan kita menjalankan kumpulan/kombinasi perintah yang dikemas dalam skrip (bisa dijadwalkan juga).
Indikator pada Shell
Di jendela Linux Shell, umumnya ada dua simbol yang bisa digunakan sebagai penanda kita sedang menggunakan akun apa. Contohnya sebagai berikut:
[user@host ~]$
[root@host ~]#
Tanda $ menandakan kita sedang menggunakan akun biasa. Sedangkan tanda # menandakan kita sedang menggunakan akun root, yaitu akun dengan privilege tertinggi.
Disarankan untuk tidak menggunakan akun root kecuali memang ada task yang mengharuskan penggunaan root.
Struktur Perintah Linux
Perintah di linux biasanya memiliki pola seperti ini:
command -option(s) --long-option arg1 arg2
command
: nama perintah (misalnyals, cd,grep
, dll)-option(s)
: opsi pendek (biasanya satu huruf. Seperti-l, -a
) dan biasanya bisa dikombinasikan.--long-option
: bentuk opsi yang lebih panjang (cenderung lebih desktiptif)arg1, arg2 ...
: argumen/ atau parameter yang diberikan (misalnya nama file/direktori).
Contohnya adalah kita bisa menggunakan perintah ls -alh
yang merupakan perintah ls
yang menggunakan opsi:
-a
, untuk menampilkan file teresembunyi-l
, untuk menampilkan hasil dalam bentuk list-h
, human-readable. U ntuk menampilkan ukuran file dalam format yang lebih mudah dikenali manusia (KB, MB, dll).
Jadi, perintah ls -alh
akan menampilkan isi dari suatu direktori, termasuk hidden files dalam bentuk list serta ukuran dari filenya ditampilkan dalam bentuk yang lebih mudah dibaca.
Ekosistem Shell
Bourne Again Shell (Bash) merupakan Shell default di mayoritas distro Linux. Termasuk RHEL, CentOS, Ubuntu, dan Debian.
Bash bisa dikatakan merupakan shell yang fleksibel serta memiliki banyak dukungan dokumentasi.
Bash juga bisa digunakan untuk membuat skrip.
Misalnya kita mau menjalankan kumpulan atau kombinasi perintah dan digabungkan dalam satu file skrip untuk dieksekusi.
Terkait Shell, ada istilah yang dinamakan Shebang. Shebang adalah baris pertama dari skrip di Linux yang fungsinya adalah memberitahu interpreter apa yang harus digunakan untuk menjalankan skrip tersebut.
Contoh Shebang yang biasa digunakan di Bash:
#!/bin/bash
Selain Bash, ada juga beberapa alternatif Shell lain yang bisa digunakan di Linux. Antara lain adalah zsh (Z Shell), fish (Friendly Interactive Shell), dan juga dash (Debian Almquist Shell).
Dokumentasi/Panduan di Linux
Dalam sistem Linux, umumnya program/perintah menyediakan dokumentasi atau panduan bawaan. Ada dua jenis yang paling sering:
Manual Page (man)
Kita bisa membuka dokumentasi dari perintah tertentu dengan menggunakan sintaks:
man [command]
Misalnya kita ingin membuka man page dari perintah ls
, kita bisa gunakan perintah man ls
dan nantinya akan muncul panduan atau dokumentasi lengkap yang berisi opsi-opsi yang bisa digunakan bersama perintah ls
.
Dan juga, man
juga memiliki man page-nya sendiri. Perintahnya adalah man man
.
–help
Opsi lain adalah menggunakan opsi --help
. Umumnya, perintah atau aplikasi CLI mendukung opsi ini. Format umumnya adalah sebagai berikut:
[perintah] --help
Contohnya, apabila kita ingin melihat bantuan dari perintah ls
, maka kita bisa menggunakan perintah ls --help
.
Apa Bedanya?
Perbedaan yang bisa dilihat cukup “mencolok” adalah man page isinya berupa dokumentasi lengkap sedangkan help lebih berupa panduan cepat.
man page juga ditampilkan sebagai “jendela tersendiri” (seperti kita sedang menggunakan menu less
) sedangkan help isinya langsung tampil di terminal.
Remote Shell dengan SSH
Di lingkungan enterprise biasanya server terletak di datacenter dan tidak memiliki monitor dan keyboard (headless). Maka dari itu, biasanya SysAdmin melakukan akses dari jarak jauh (remote access) untuk melakukan manajemen/kendali server.
Protokol jaringan yang biasa digunakan untuk remote access adalah Secure Shell (SSH). Dengan SSH, kita bisa melakukan kendali jarak jauh dan melakukan pekerjaan/manajemen pada server.
Berikut adalah sintaks dasar dari perintah SSL untuk remote access:
ssh username@alamat-server-tujuan
Keamanan SSH
Komunikasi data via SSH antara klien dan server terenktipsi. Jadi lebih aman dari serangan seperti man in the middle.
Untuk otentikasi, umumnya ada dua metode yang bisa digunakan:
- Password-based login. Menggunakan password seperti umumnya kalau kita masuk ke suatu sistem
- Key-based login. Lebih aman. Metode ini menggunakan mekanisme key pair (public & private key)
Kenapa SysAdmin Perlu Menguasai Shell?
Penggunaan Shell/CLI bisa menjadi hal penting atau “fondasi” pekerjaan dari seorang SysAdmin. Berikut alasannya:
- Otomatisasi. Penggunaan shell script salah satunya adalah untuk mengotomatisasi pekerjaan berulang. Seperti file backup, pembaruan sistem, monitoring resources, dan banyak lagi.
- Ketepatan. Penggunaan CLI biasanya lebih presisi dan memiliki kendali yang lebih besar dibandingkan dengan GUI. Penggunaan GUI juga biasanya tidak menampilkan detail penting (cenderung “membatasi” fleksibilitas).
- Resource-Friendly. Penggunaan GUI cenderung lebih besar daripada CLI. Penggunaan CLI lebih ringan untuk dijalankan di server, cocok untuk penggunaan/akses remote dan lebih cepat apabila koneksi jaringan terbatas.
Penutup
Memahami Shell bukan hanya tentang penggunaan perintah namun lebih ke pemahaman mengenai cara kerja sistem. Bagi seorang SysAdmin, Shell merupakan “senjata” dalam bekerja secara lebih efisien dan akurat.
CLI bisa digunakan untuk cakupan pekerjaan SysAdmin yang luas. Mulai dari instalasi, konfigurasi, server monitoring, juga troubleshooting. Walaupun tampilannya sederhana, namun kekuatannya “powerful” untuk melakukan banyak pekerjaaan teknis.
Tulisan kali ini sampai di sini dulu ya. Sampai jumpa. Bye.
Leave a Reply