Accessing the Command Line
Tags: linux, bash
Published: 2024-03-31 14:34:07

**Accessing the Command Line
Objectives**
Setelah menyelesaikan bagian ini, Anda harus dapat masuk ke sistem Linux dan menjalankan perintah sederhana menggunakan shell.

**Introduction to the Bash Shell**
Sebuah baris perintah adalah antarmuka berbasis teks yang dapat digunakan untuk memasukkan instruksi ke sistem komputer. Baris perintah Linux disediakan oleh program yang disebut kerang. Berbagai opsi untuk program shell telah dikembangkan selama bertahun-tahun, dan pengguna yang berbeda dapat dikonfigurasi untuk menggunakan shell yang berbeda. Sebagian besar pengguna, bagaimanapun, tetap dengan 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 paling sukses yang digunakan pada sistem mirip UNIX, Bourne Shell (sh).

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

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

Karakter diganti dengan karakter jika shell berjalan sebagai superuser, . Ini membuatnya lebih jelas bahwa ini adalah shell superuser, yang membantu menghindari kecelakaan dan kesalahan yang dapat mempengaruhi seluruh sistem. Prompt shell superuser ditunjukkan di bawah ini. $#root

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

Menggunakan bash untuk menjalankan perintah bisa sangat kuat. Bash shell menyediakan bahasa scripting yang dapat mendukung otomatisasi tugas. Shell memiliki kemampuan tambahan yang dapat menyederhanakan atau memungkinkan operasi yang sulit dicapai secara efisien dengan alat grafis.

_NOTE_
Bash shell mirip dalam konsep dengan penerjemah baris perintah yang ditemukan di versi terbaru Microsoft Windows, cmd.exe, meskipun bash memiliki bahasa scripting yang lebih canggih. Ini juga mirip dengan Windows PowerShell di Windows 7 dan Windows Server 2008 R2 dan yang lebih baru. Administrator yang menggunakan Apple Mac yang menggunakan utilitas Terminal mungkin senang mencatat bahwa bash adalah shell default di macOS.

**Shell Basics**
Commands entered at the shell prompt have three basic parts:

- Command to run

- Options to adjust the behavior of the command

- Arguments, which are typically targets of the command
Si perintah adalah nama program yang akan dijalankan. Ini dapat diikuti oleh satu atau lebih Pilihan, yang menyesuaikan perilaku perintah atau apa yang akan dilakukannya. Opsi biasanya dimulai dengan satu atau dua tanda hubung ( atau , misalnya) untuk membedakannya dari argumen. Perintah juga dapat diikuti oleh satu atau lebih -a--allArgumen, yang sering menunjukkan target yang harus dioperasikan oleh perintah.

Misalnya, perintah usermod -L user01 memiliki perintah (usermod), opsi (), dan argumen (). Efek dari perintah ini adalah mengunci kata sandi akun pengguna. -Luser01user01

**Logging in to a Local Computer**
Untuk menjalankan shell, Anda harus masuk ke komputer pada Terminal. Terminal adalah antarmuka berbasis teks yang digunakan untuk memasukkan perintah ke dalam dan mencetak output dari sistem komputer. Ada beberapa cara untuk melakukan ini.

Komputer mungkin memiliki keyboard perangkat keras dan tampilan untuk input dan output yang terhubung langsung dengannya. Ini adalah mesin Linux Konsol fisik. Konsol fisik mendukung banyak Konsol virtual, yang dapat menjalankan terminal terpisah. Setiap konsol virtual mendukung sesi login independen. Anda dapat beralih di antara keduanya dengan menekan Ctrl + Alt dan tombol fungsi (F1 hingga F6) secara bersamaan. Sebagian besar konsol virtual ini menjalankan terminal yang menyediakan prompt login teks, dan jika Anda memasukkan nama pengguna dan kata sandi dengan benar, Anda akan masuk dan mendapatkan prompt shell.

Komputer mungkin menyediakan prompt login grafis di salah satu konsol virtual. Anda dapat menggunakan ini untuk masuk ke Lingkungan grafis. Lingkungan grafis juga berjalan pada konsol virtual. Untuk mendapatkan prompt shell, Anda harus memulai program terminal di lingkungan grafis. Shell prompt disediakan di jendela aplikasi program terminal grafis Anda.

_NOTE_
Banyak administrator sistem memilih untuk tidak menjalankan lingkungan grafis di server mereka. Hal ini memungkinkan sumber daya yang akan digunakan oleh lingkungan grafis untuk digunakan oleh layanan server sebagai gantinya.

Di Red Hat Enterprise Linux 8, jika lingkungan grafis tersedia, layar login akan berjalan pada konsol virtual pertama, yang disebut . Lima permintaan login teks tambahan tersedia di konsol virtual dua hingga enam. tty1

Jika Anda masuk menggunakan layar login grafis, lingkungan grafis Anda akan dimulai pada konsol virtual pertama yang saat ini tidak digunakan oleh sesi login. Biasanya, sesi grafis Anda akan menggantikan prompt login pada konsol virtual kedua (). Namun, jika konsol itu digunakan oleh sesi login teks aktif (bukan hanya prompt login), konsol virtual gratis berikutnya digunakan sebagai gantinya. tty2

Layar login grafis terus berjalan di konsol virtual pertama (). Jika Anda sudah masuk ke sesi grafis, dan masuk sebagai pengguna lain di layar masuk grafis atau menggunakan item menu Alihkan Pengguna untuk beralih pengguna di lingkungan grafis tanpa keluar, lingkungan grafis lain akan dimulai untuk pengguna tersebut di konsol virtual gratis berikutnya. tty1

Ketika Anda keluar dari lingkungan grafis, itu akan keluar dan konsol fisik akan secara otomatis beralih kembali ke layar login grafis pada konsol virtual pertama.

_NOTE_
Di Red Hat Enterprise Linux 6 dan 7, layar login grafis berjalan pada konsol virtual pertama, tetapi ketika Anda masuk ke lingkungan grafis awal Anda Menggantikan Layar login pada konsol virtual pertama alih-alih memulai pada konsol virtual baru.

Di Red Hat Enterprise Linux 5 dan sebelumnya, enam konsol virtual pertama selalu menyediakan permintaan login teks. Jika lingkungan grafis berjalan, itu ada di konsol virtual Tujuh (diakses melalui Ctrl + Alt + F7).

Sebuah Server tanpa kepala tidak memiliki keyboard dan layar yang terhubung secara permanen dengannya. Pusat data dapat diisi dengan banyak rak server tanpa kepala, dan tidak menyediakan masing-masing dengan keyboard dan layar menghemat ruang dan biaya. Untuk mengizinkan administrator masuk, server tanpa kepala mungkin memiliki prompt masuk yang disediakan oleh konsol serial, berjalan pada port serial yang terhubung ke server konsol jaringan untuk akses jarak jauh ke konsol serial.

Konsol serial biasanya akan digunakan untuk memperbaiki server jika kartu jaringannya sendiri menjadi salah dikonfigurasi dan masuk melalui koneksi jaringannya sendiri menjadi tidak mungkin. Namun, sebagian besar waktu, server tanpa kepala diakses dengan cara lain melalui jaringan.

**Logging in to a Local Computer**
Pengguna dan administrator Linux sering kali perlu mendapatkan akses shell ke sistem jarak jauh dengan menghubungkannya melalui jaringan. Dalam lingkungan komputasi modern, banyak server headless sebenarnya adalah mesin virtual atau berjalan sebagai instance cloud publik atau pribadi. Sistem ini tidak fisik dan tidak memiliki konsol perangkat keras nyata. Mereka bahkan mungkin tidak memberikan akses ke konsol fisik (simulasi) atau konsol serial mereka.

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, pengguna dengan prompt shell pada mesin menggunakan ssh untuk masuk ke sistem Linux jarak jauh sebagai pengguna: 
hostremotehostremoteuser

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

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

Beberapa sistem (seperti instance 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 otentikasi ini, pengguna memiliki file identitas khusus yang berisi Kunci Pribadi, yang setara dengan kata sandi, dan yang mereka rahasiakan. Akun mereka di server dikonfigurasi dengan pencocokan kunci publik, yang tidak harus dirahasiakan. Saat masuk, pengguna dapat mengonfigurasi ssh untuk memberikan kunci pribadi dan jika kunci publik yang cocok dipasang di akun itu di server jarak jauh itu, itu akan masuk tanpa meminta kata sandi.

Dalam contoh berikutnya, pengguna dengan perintah shell pada komputer masuk ke sebagai menggunakan ssh, menggunakan autentikasi kunci publik. Opsi ini digunakan untuk menentukan file kunci pribadi pengguna, yaitu . Kunci publik yang cocok sudah disiapkan sebagai kunci resmi di akun. hostremotehostremoteuser-imylab.pemremoteuser

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

Agar ini berfungsi, file kunci privat harus hanya dapat dibaca oleh pengguna yang memiliki file. Dalam contoh sebelumnya, di mana kunci privat ada dalam file, perintah chmod 600 mylab.pem dapat digunakan untuk memastikan ini. Cara mengatur izin file dibahas secara lebih rinci di bab selanjutnya. mylab.pem

Pengguna mungkin juga memiliki kunci privat yang dikonfigurasi yang dicoba secara otomatis, tetapi diskusi tersebut berada di luar cakupan bagian ini. Referensi di akhir bagian ini berisi tautan ke informasi lebih lanjut tentang topik ini.

_NOTE_
Pertama kali Anda masuk ke mesin baru, Anda akan diminta dengan peringatan dari ssh bahwa itu tidak dapat menetapkan keaslian host:

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

Setiap kali Anda terhubung ke host jarak jauh dengan ssh, host jarak jauh mengirimkan ssh miliknya Kunci host untuk mengautentikasi dirinya sendiri dan untuk membantu mengatur komunikasi terenkripsi. Perintah ssh membandingkannya dengan daftar kunci host yang disimpan untuk memastikannya tidak berubah. Jika kunci host telah berubah, ini mungkin menunjukkan bahwa seseorang mencoba berpura-pura menjadi host itu untuk membajak koneksi yang juga dikenal sebagai serangan man-in-the-middle. Di SSH, kunci host melindungi terhadap serangan man-in-the-middle, kunci host ini unik untuk setiap server, dan mereka perlu diubah secara berkala dan setiap kali kompromi dicurigai.

Anda akan mendapatkan peringatan ini jika mesin lokal Anda tidak memiliki kunci host yang disimpan untuk host jarak jauh. Jika Anda memasukkan , kunci host yang dikirim host jarak jauh akan diterima dan disimpan untuk referensi di masa mendatang. Login akan berlanjut, dan Anda seharusnya tidak melihat pesan ini lagi saat menghubungkan ke host ini. Jika Anda memasukkan , kunci host akan ditolak dan koneksi ditutup. yesno

Jika mesin lokal memiliki kunci host yang disimpan dan tidak cocok dengan yang sebenarnya dikirim oleh host jarak jauh, koneksi akan secara otomatis ditutup dengan peringatan.

**Logout**
Ketika Anda selesai menggunakan shell dan ingin berhenti, Anda dapat memilih salah satu dari beberapa cara untuk mengakhiri sesi. Anda dapat memasukkan perintah exit untuk mengakhiri sesi shell saat ini. Atau, selesaikan 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/4iv5jfidz0jw2hd0nfw6.png)