Accessing the Command Line
Tags: ramadhanbersamaredhat
Published: 2024-03-23 08:02:31

**Pengantar ke Bash Shell**

Baris perintah adalah antarmuka berbasis teks yang dapat digunakan untuk memasukkan instruksi ke sistem komputer. Baris perintah Linux disediakan oleh sebuah program yang disebut shell. Berbagai pilihan untuk program shell telah dikembangkan selama bertahun-tahun, dan pengguna yang berbeda dapat dikonfigurasi untuk menggunakan shell yang berbeda. Namun, sebagian besar pengguna tetap menggunakan shell default saat ini.

Shell default untuk pengguna di Red Hat Enterprise Linux adalah GNU Bourne-Again Shell **(bash)**. Bash adalah versi perbaikan dari salah satu shell yang paling sukses digunakan pada sistem seperti UNIX, Bourne Shell **(sh)**.

Ketika shell digunakan secara interaktif, shell akan menampilkan sebuah string ketika menunggu perintah dari pengguna. Ini disebut prompt shell. Ketika pengguna biasa memulai shell, prompt default diakhiri dengan karakter $, seperti yang ditunjukkan di bawah ini.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qi10vt92qowngf2a4beb.png)

Karakter $ digantikan oleh karakter # jika shell berjalan sebagai superuser, root. Hal ini membuatnya lebih jelas bahwa ini adalah shell superuser, yang membantu menghindari kecelakaan dan kesalahan yang dapat memengaruhi keseluruhan sistem. Perintah shell superuser ditunjukkan di bawah ini.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1emgnfmvtmvyjlg32tzv.png)

Menggunakan **bash** untuk menjalankan perintah bisa sangat bermanfaat. Shell **bash** menyediakan bahasa skrip yang dapat mendukung otomatisasi tugas. Shell memiliki kemampuan tambahan yang dapat menyederhanakan atau memungkinkan operasi yang sulit dilakukan secara efisien dengan alat bantu grafis.

**Dasar-dasar Shell**

Perintah yang dimasukkan pada prompt shell memiliki tiga bagian dasar:

1. _Perintah_ untuk dijalankan
2. _Opsi_ untuk menyesuaikan perilaku perintah
3. _Argumen_, yang biasanya merupakan target dari perintah

_Perintah_ adalah nama program yang akan dijalankan. Perintah ini dapat diikuti oleh satu atau beberapa _opsi_, yang menyesuaikan perilaku perintah atau apa yang akan dilakukan. Opsi biasanya dimulai dengan satu atau dua tanda hubung (-a atau --all, misalnya) untuk membedakannya dari argumen. Perintah juga dapat diikuti oleh satu atau lebih _argumen_, yang sering kali mengindikasikan target yang harus dijalankan oleh perintah tersebut.

**Masuk ke Komputer Lokal**

Untuk menjalankan shell, Anda harus masuk ke komputer melalui terminal. Terminal adalah antarmuka berbasis teks yang digunakan untuk memasukkan perintah ke dalam dan mencetak output dari sistem komputer. Ada beberapa cara untuk melakukan hal ini.

Komputer mungkin memiliki keyboard dan layar perangkat keras untuk input dan output yang terhubung langsung dengannya. Anda dapat beralih di antara keduanya dengan menekan **Ctrl+Alt** dan tombol fungsi secara bersamaan. Lingkungan grafis juga berjalan pada konsol virtual. Untuk mendapatkan prompt shell, Anda harus memulai program terminal di lingkungan grafis. Prompt shell disediakan di jendela aplikasi program terminal grafis Anda.

Pada Red Hat Enterprise Linux 8, jika lingkungan grafis tersedia, layar login akan berjalan pada konsol virtual pertama, yang disebut tty1. Lima prompt login teks tambahan tersedia pada konsol virtual kedua hingga keenam. Layar login grafis terus berjalan pada konsol virtual pertama . Jika Anda sudah masuk ke sesi grafis, dan masuk sebagai pengguna lain pada layar login grafis atau menggunakan item menu **Switch User** untuk mengganti pengguna di lingkungan grafis tanpa keluar, lingkungan grafis lain akan dimulai untuk pengguna tersebut pada konsol virtual gratis berikutnya.

Bila Anda keluar dari lingkungan grafis, lingkungan tersebut akan keluar dan konsol fisik akan secara otomatis beralih kembali ke layar login grafis pada konsol virtual pertama. Server tanpa kepala tidak memiliki keyboard dan layar yang terhubung secara permanen.

**Masuk melalui Jaringan**

Pengguna dan administrator Linux sering kali perlu mendapatkan akses shell ke sistem jarak jauh dengan menyambungkannya melalui jaringan. Dalam lingkungan komputasi modern, banyak server tanpa kepala yang sebenarnya merupakan mesin virtual atau berjalan sebagai instance cloud publik atau privat. Sistem ini tidak berbentuk fisik dan tidak memiliki konsol perangkat keras yang nyata. Mereka bahkan mungkin tidak menyediakan akses ke konsol fisik atau konsol serial (simulasi).

Di Linux, cara paling umum untuk mendapatkan prompt shell pada sistem jarak jauh adalah dengan menggunakan Secure Shell (SSH). Sebagian besar sistem Linux (termasuk Red Hat Enterprise Linux) dan macOS menyediakan program baris perintah OpenSSH **ssh** untuk tujuan ini.

Dalam contoh ini, seorang pengguna dengan prompt shell pada host mesin menggunakan **ssh** untuk masuk ke sistem Linux jarak jauh remotehost sebagai pengguna remoteuser:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bp0qwna2wtfh9tpoo4op.png)

Perintah **ssh** mengenkripsi koneksi untuk mengamankan komunikasi dari penyadapan atau pembajakan kata sandi dan konten.

Beberapa sistem (seperti contoh cloud baru) tidak mengizinkan pengguna menggunakan kata sandi untuk masuk dengan **ssh** untuk keamanan yang lebih ketat. Cara alternatif untuk mengautentikasi ke mesin jarak jauh tanpa memasukkan kata sandi adalah melalui _autentikasi kunci publik._

Dengan metode autentikasi ini, pengguna memiliki berkas identitas khusus yang berisi _kunci privat_, yang setara dengan kata sandi, dan dirahasiakan. Akun mereka di server dikonfigurasikan dengan kunci publik yang cocok, yang tidak harus dirahasiakan. Ketika masuk, pengguna dapat mengonfigurasi **ssh** untuk menyediakan kunci privat dan jika kunci publik yang cocok dipasang pada akun di server jarak jauh tersebut, maka ia akan memasukkan mereka tanpa meminta kata sandi.

Pada contoh berikut, seorang pengguna dengan prompt shell pada host mesin masuk ke host jarak jauh sebagai remoteuser menggunakan ssh, menggunakan autentikasi kunci publik. Opsi -i digunakan untuk menentukan berkas kunci privat pengguna, yaitu mylab.pem. Kunci publik yang cocok sudah diatur sebagai kunci resmi dalam akun remoteuser.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9gd2x6ruja0jip4y0uqw.png)

Agar dapat berfungsi, berkas kunci privat harus dapat dibaca hanya oleh pengguna yang memiliki berkas tersebut. Pada contoh sebelumnya, di mana kunci privat berada pada berkas mylab.pem, perintah **chmod 600 mylab.pem** dapat digunakan untuk memastikan hal ini. Cara mengatur hak akses berkas akan dibahas secara lebih rinci pada bab selanjutnya.

Pengguna juga dapat mengkonfigurasi kunci privat yang dicoba secara otomatis, namun pembahasan tersebut berada di luar cakupan bagian ini. Referensi di akhir bagian ini berisi tautan ke informasi lebih lanjut tentang topik ini.

**Keluar**

Anda selesai menggunakan shell dan ingin keluar, Anda dapat memilih salah satu dari beberapa cara untuk mengakhiri sesi. Anda dapat memasukkan perintah **exit** untuk mengakhiri sesi shell yang sedang berjalan. Atau, akhiri Ketika sesi dengan menekan **Ctrl+D**.

Berikut ini adalah contoh pengguna yang keluar dari sesi SSH:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/unhzc7zgbo7nda5xtebu.png)