Apa perbedaan antara shell, konsol, dan terminal?

188

Saya bingung dengan terminologi. Apa perbedaan antara shell, konsol, dan terminal?

cakar
sumber
8
dan bagaimana dengan promptdan bahkan command line?
n611x007
1
Lihatlah pertanyaan ini dari Unix & Linux: unix.stackexchange.com/questions/4126/…
Flimm
4
Istri saya berkata "layar hitam"
Kenji Noguchi

Jawaban:

168

Di dunia linux mereka semua bisa terlihat sama dari sudut pandang pengguna di keyboard. Perbedaannya terletak pada bagaimana mereka berinteraksi satu sama lain.

The shell adalah program yang benar-benar memproses perintah dan kembali output. Sebagian besar shell juga mengelola proses latar depan dan latar belakang, riwayat perintah dan pengeditan baris perintah. Fitur-fitur ini (dan banyak lagi) adalah standar dalam bash, shell paling umum dalam sistem linux modern.

Sebuah terminal mengacu program wrapper yang berjalan shell. Beberapa dekade yang lalu, ini adalah perangkat fisik yang terdiri dari sedikit lebih dari monitor dan keyboard. Ketika sistem unix / linux menambahkan sistem multiprocessing dan windowing yang lebih baik, konsep terminal ini disarikan ke dalam perangkat lunak. Sekarang Anda memiliki program seperti Terminal Gnome yang meluncurkan jendela di lingkungan jendela Gnome yang akan menjalankan shell di mana Anda dapat memasukkan perintah.

The konsol adalah semacam khusus terminal . Secara historis, konsol adalah keyboard tunggal dan monitor dicolokkan ke port serial konsol khusus pada komputer yang digunakan untuk komunikasi langsung pada tingkat rendah dengan sistem operasi. Sistem linux modern menyediakan konsol virtual . Ini diakses melalui kombinasi tombol (mis. Alt+ F1Atau Ctrl+ Alt+ F1; angka - angka fungsi tombol konsol yang berbeda) yang ditangani pada tingkat rendah dari sistem operasi linux - ini berarti bahwa tidak ada layanan khusus yang perlu diinstal dan dikonfigurasi untuk menjalankan . Berinteraksi dengan konsol juga dilakukan menggunakan program shell .

Doug Harris
sumber
1
Sebelum terminal adalah monitor dengan keyboard, mereka adalah teletype - semacam mesin tik listrik. en.wikipedia.org/wiki/Teleprinter
Kevin Panko
13
Konsol terkadang berarti "keyboard dan monitor yang terpasang secara fisik ke komputer ini." Misalnya, "Saya masuk dari konsol karena server tidak merespons ke jaringan."
Kevin Panko
1
@ Doug Harris: Bisakah Anda menambahkan beberapa gambar dari perangkat keras yang Anda bicarakan?
cakar
1
Ketika saya masih kuliah di akhir 1980-an, saya melakukan banyak pekerjaan pada terminal DEC VT220 - en.wikipedia.org/wiki/VT220 - Itu adalah contoh yang baik dari perangkat fisik yang saya jelaskan.
Doug Harris
5
Jadi, jika terminal dan konsol , di zaman modern, masing-masing diimplementasikan dalam perangkat lunak - apa perbedaan antara keduanya (sekarang)?
Gavin Hope
15

Shell adalah program yang memasang prompt dan menunggu Anda mengetik perintah. Itu mengeksekusi mereka dan kemudian mencetak prompt lain. Jadi, seperti CMD di Windows, atau Bash di Unix. Itu dapat berjalan di terminal atau di konsol.

Konsol pada awalnya adalah benda fisik, panel kontrol. Dalam istilah komputasi biasanya berarti tampilan yang Anda lihat sebelum GUI dimulai atau setelah selesai; Anda terkadang dapat beralih ke menampilkannya bukan GUI. Ini adalah tempat di mana sistem operasi mencetak pesan kesalahan. Pada komputer multi-pengguna, itu adalah tampilan yang sebenarnya melekat pada komputer. Hanya untuk membingungkan Anda, pada Windows juga bisa berarti jendela dengan shell perintah di dalamnya, yaitu terminal.

Terminal juga awalnya perangkat keras, yang digunakan untuk berkomunikasi dengan komputer. Saat ini biasanya merujuk ke jendela dengan baris perintah (shell), yang mungkin muncul di jendela GUI atau bukan GUI.

Peter Westlake
sumber
2

Terminal adalah antarmuka berbasis teks (mungkin ke shell)

Perbedaan antara konsol dan shell adalah yang belum saya pahami, tetapi saya dapat memberi tahu Anda bagaimana terminal berbeda dari shell.

The terminal adalah ( menurut Wikipedia ) "antarmuka komputer serial untuk entri teks dan tampilan. Informasi disajikan sebagai array dari karakter dibentuk pra-dipilih".

Anda dapat menggunakan terminal untuk berinteraksi dengan shell, tetapi Anda juga dapat menggunakannya untuk berinteraksi dengan GUI berbasis teks , kadang-kadang disebut Terminal User Interface . Sebagai contoh:

  • Vim memiliki elemen GUI termasuk nomor baris dan tab bernama
  • Nano memiliki elemen GUI termasuk menu bantuan perintah
  • Tmux memiliki elemen GUI termasuk bilah status dan garis pemisah antara panel
  • Minicom memiliki elemen GUI termasuk menu dan bilah status

Dalam setiap kasus, elemen GUI "digambar" dengan teks daripada piksel.

Nathan Long
sumber
Saya tidak yakin tentang definisi ini karena hanya berbasis teks. Dengan cara tertentu beberapa GUI dapat dianggap sebagai terminal imo.
jiggunjer
2

Untuk pemula pemula

Untuk keterangan lebih rinci: https://askubuntu.com/a/506628/130518

  • terminal = lingkungan input / output teks
  • konsol = terminal fisik
  • shell = juru bahasa baris perintah

Saya akan menjelaskan kasus penggunaan paling normal untuk ini dalam teks berikut.

Terminal menggunakan shell. Sebuah shell dapat berjalan tanpa terminal.

Untuk berhubungan dengan barang sehari-hari:

  • Terminal -> layar TV di rumah Anda
  • Shell -> Program yang berjalan di layar TV

Cara lain untuk melihatnya: Telinga Anda (input) dan mulut (output) adalah terminal untuk suara. Otak Anda adalah penafsir suara-suara itu menggunakan cangkang tertentu (pemrosesan).

Terminal itu untuk kita manusia, jadi kita bisa membaca dan menulis ke / dari shell. Kerang dapat berjalan dalam proses latar belakang yang tidak memerlukan interaksi manusia misalnya pekerjaan cron, dan karena itu tidak memerlukan terminal.

Beberapa contoh terminal yang ada:

  • Command prompt
  • guake
  • terminal gnome
  • terminator

Beberapa contoh kerang yang ada:

  • Pesta
  • sh (Bourne shell)
  • PowerShell [windows]
  • zsh (Z shell)

Saya hanya menulis bagaimana keduanya bekerja secara normal, ada cara lain mereka bekerja, tetapi itu untuk pengguna yang lebih maju.

Karl Morrison
sumber
1

Pikirkan konteks lain, yaitu pengembangan.
Sekalipun Anda tidak memiliki pengetahuan yang sangat mendalam tentang pengembangan, Anda mungkin mengetahui dasar-dasarnya, yaitu: Anda mengedit suatu program, Anda mengirimkannya ke kompiler atau ke juru bahasa yang membangun aplikasi yang dikompilasi.
Konsol seperti editor program Anda; itu membantu Anda secara tertulis tetapi tidak benar-benar mengeksekusi apa pun: ketika Anda selesai Anda mengirimkannya ke kompiler untuk itu.

Anda dapat menggunakan editor pilihan Anda, vim, gedit, emacs, notepad ++, Netbeans, eclise etc.etc tetapi pada akhirnya itu hanyalah alat yang berbeda: jika Anda menulis program yang sama hasilnya akan sama.
Dalam metafora ini, shell adalah kompiler. Perintah-perintah yang dimasukkan ke terminal, dikirim ke shell yang menafsirkannya dan mengeksekusinya segera.
Jadi, sementara terminal hanya ujung depan untuk shell, shell berisi bahasa aktual, seperti yang terjadi pada kompiler.

Jelas terminal bukan editor teks, terutama karena tidak menghasilkan file tetapi mengirim teks ke shell yang mendasarinya dan mengambil output dari itu.

Dan shell bukan kompiler, sebenarnya ia menginterpretasikan perintah Anda dan langsung mengeksekusi alih-alih membangun executable.

Walaupun ada perbedaan besar, saya menemukan metafora ini untuk membantu banyak dalam memahami ide ini.

AgostinoX
sumber
0

Sebenarnya tidak ada banyak perbedaan. Kembali ketika "shell" adalah sebuah program, "terminal" adalah pembungkus frontend untuk program ini, dan "konsol" adalah koneksi fisik ke komputer (keyboard / layar).

Ada perbedaan tergantung pada OS apa yang Anda jalankan. Shell "standar" adalah BASH , yang biasanya tersedia di semua jenis Linux / Unix. Windows menggunakan shell yang sama sekali berbeda.

Josh K.
sumber