Apa perbedaan antara Terminal, Konsol, Shell, dan Baris Perintah?

211

Apa perbedaan antara Terminal, Konsol, Shell, dan Baris Perintah?

Akiva
sumber
1
(1/2) Agen Cool sebagian besar benar, tetapi definisi Konsol yang dia berikan adalah yang sudah ketinggalan zaman, mengingat topik ini. Tautannya memiliki informasi yang benar, jika Anda mengikutinya. Baca seluruh definisi di tautannya. Konsol digunakan secara longgar untuk mengartikan banyak hal serupa, tetapi yang paling penting itu biasanya mengacu pada perangkat input dan output manusia LOKAL TERLIBAT, misalnya keyboard, layar, dan mungkin mouse.
0xSheepdog
1
(2/2) Ini mungkin tampak seperti titik yang bertele-tele, tetapi sebagai systemadmin berpengalaman, saya akan memberitahu Anda bahwa itu tidak benar . Ketika suatu sistem memiliki masalah dan tampaknya benar-benar crash / down / offline, Anda harus memeriksa konsol fisik sistem untuk melihat apakah masih berfungsi, tetapi hanya kehilangan konektivitas jaringan. Detail kecil ini bisa menghemat atau membebani Anda data, pemrosesan informasi, dll. Pedantic, ya. Tapi penting.
0xSheepdog
6
@ 0xSheepdog Anda mungkin ingin memperluas komentar ini menjadi jawaban lengkap (termasuk definisi atau penjelasan untuk istilah lain juga), diposting seperti itu. Tidaklah buruk jika sebuah pertanyaan memiliki beberapa jawaban (kecuali mungkin ketika mereka menyampaikan informasi yang persis sama dan dengan cara yang sama). Saya tidak yakin mengapa praktik penting memeriksa mesin secara lokal sebenarnya bergantung pada mengetahui / menyebut antarmuka manusia fisiknya sebagai konsol, tetapi mungkin ada argumen bahwa itu penting untuk komunikasi yang efektif dengan kolega atau menggunakan dokumentasi. (Anda mungkin memperjelas hal itu dalam jawaban Anda.)
Eliah Kagan
4
Karena hubungan mereka yang erat (lihat semua jawaban yang baik) istilah-istilah ini kadang-kadang digunakan secara sinonim, yang mungkin membuat Anda bertanya.
Markus

Jawaban:

143

Jawaban singkat:

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

Jawaban panjang:

Konsol dan terminal terkait erat. Awalnya, mereka berarti peralatan yang dapat digunakan untuk berinteraksi dengan komputer: di masa-masa awal unix, itu berarti perangkat gaya teleprinter yang menyerupai mesin tik, kadang-kadang disebut teletypewriter, atau "tty" dalam singkatan. Nama "terminal" berasal dari sudut pandang elektronik, dan nama "konsol" dari sudut pandang furnitur. Sangat awal dalam sejarah unix, keyboard dan display elektronik menjadi norma untuk terminal.

Terminal

Dalam terminologi unix, terminal adalah jenis khusus file perangkat yang mengimplementasikan sejumlah perintah tambahan ( ioctls ) di luar baca dan tulis. Beberapa terminal disediakan oleh kernel atas nama perangkat perangkat keras, misalnya dengan input yang berasal dari keyboard dan output ke layar mode teks, atau dengan input dan output yang dikirim melalui saluran serial. Terminal lain, kadang-kadang disebut pseudo-terminal atau pseudo-ttys, disediakan (melalui lapisan kernel tipis) oleh program yang disebut emulator terminal . Beberapa jenis emulator terminal meliputi:

  • Aplikasi GUI yang berjalan di Sistem X Window : Xterm , Terminal Gnome, Konsole, Terminator, dll.
  • Layar dan tmux , yang menyediakan lapisan isolasi antara program dan terminal lain
  • Ssh , yang menghubungkan terminal pada satu mesin dengan program di komputer lain
  • Harapkan , untuk interaksi terminal scripting

Terminal kata juga dapat memiliki makna yang lebih tradisional dari perangkat yang digunakan untuk berinteraksi dengan komputer, biasanya dengan keyboard dan tampilan. Misalnya terminal X adalah sejenis thin client , komputer tujuan khusus yang hanya bertujuan menggerakkan papan ketik, layar, mouse, dan terkadang perangkat periferal manusia lainnya, dengan aplikasi aktual berjalan di komputer lain yang lebih kuat.

Menghibur

Sebuah konsol umumnya merupakan terminal dalam arti fisik yang oleh beberapa definisi terminal utama langsung terhubung ke mesin. Konsol muncul ke sistem operasi sebagai terminal (yang diimplementasikan kernel). Pada beberapa sistem, seperti Linux dan FreeBSD, konsol muncul sebagai beberapa terminal (ttys) (kombinasi tombol khusus beralih antara terminal-terminal ini); hanya untuk membingungkan masalah, nama yang diberikan untuk setiap terminal tertentu dapat menjadi "konsol", "konsol virtual", "terminal virtual", dan variasi lainnya.

Lihat juga Mengapa Terminal Virtual "virtual", dan apa / mengapa / di mana Terminal "nyata"? .

Baris perintah [antarmuka]

Sebuah baris perintah adalah sebuah antarmuka di mana pengguna jenis perintah (yang dinyatakan sebagai urutan karakter - biasanya nama perintah diikuti oleh beberapa parameter) dan menekan Returntombol untuk menjalankan perintah itu.

Kulit

Sebuah shell adalah antarmuka utama yang dilihat pengguna saat log in, yang tujuan utamanya adalah untuk memulai program lain. (Saya tidak tahu apakah metafora aslinya adalah bahwa shell adalah lingkungan rumah bagi pengguna, atau bahwa shell adalah tempat program lain berjalan.)

Dalam lingkaran unix, shell memiliki spesialisasi untuk shell command-line , berpusat di sekitar memasukkan nama aplikasi yang ingin dimulai, diikuti dengan nama file atau objek lain yang harus ditindaklanjuti oleh aplikasi, dan menekan tombol Enter. Jenis lingkungan lain (dengan pengecualian terbaru Gnome Shell) biasanya tidak menggunakan kata "shell"; misalnya, sistem jendela melibatkan " manajer jendela " dan " lingkungan desktop ", bukan "shell".

Ada banyak shell unix yang berbeda. Shell default Ubuntu adalah Bash (seperti kebanyakan distribusi Linux lainnya). Alternatif populer termasuk zsh (yang menekankan daya dan kemampuan penyesuaian) dan ikan (yang menekankan kesederhanaan).

Cangkang baris perintah termasuk konstruksi kontrol aliran untuk menggabungkan perintah. Selain mengetik perintah pada prompt interaktif, pengguna dapat menulis skrip. Kerang yang paling umum memiliki sintaksis umum berdasarkan pada Bourne_shell . Ketika membahas " pemrograman shell ", shell hampir selalu tersirat menjadi shell gaya Bourne. Beberapa shell yang sering digunakan untuk scripting tetapi tidak memiliki fitur interaktif canggih termasuk shell Korn (ksh) dan banyak varian abu . Hampir semua sistem mirip Unix memiliki shell bergaya Bourne yang diinstal sebagai /bin/sh, biasanya ash, ksh, atau bash. Di Ubuntu, /bin/shadalah Dash , varian abu (dipilih karena lebih cepat dan menggunakan lebih sedikit memori daripada bash).

Dalam administrasi sistem unix, shell pengguna adalah program yang dipanggil ketika mereka login. Akun pengguna normal memiliki shell baris perintah, tetapi pengguna dengan akses terbatas mungkin memiliki shell terbatas atau beberapa perintah khusus lainnya (misalnya untuk transfer file -hanya akun).


Pembagian kerja antara terminal dan shell tidak sepenuhnya jelas. Inilah tugas utama mereka.

  • Input: terminal mengubah kunci menjadi urutan kontrol (misalnya Left\e[D). Shell mengubah urutan kontrol menjadi perintah (misalnya \e[Dbackward-char).
  • Edisi baris, riwayat masukan dan penyelesaian disediakan oleh shell.
    • Terminal mungkin menyediakan edisi baris, riwayat, dan penyelesaian sendiri, dan hanya mengirim baris ke shell ketika sudah siap untuk dieksekusi. Satu-satunya terminal umum yang beroperasi dengan cara ini adalah M-x shelldi Emacs.
  • Output: shell memancarkan instruksi seperti "display foo", "alihkan warna foreground menjadi hijau", "pindahkan kursor ke baris berikutnya", dll. Terminal bertindak berdasarkan instruksi ini.
  • Prompt adalah murni konsep shell.
  • Shell tidak pernah melihat output dari perintah yang dijalankannya (kecuali dialihkan). Output history (scrollback) adalah murni konsep terminal.
  • Copy-paste antar-aplikasi disediakan oleh terminal (biasanya dengan urutan tetikus atau mouse seperti Ctrl+ Shift+ Vatau Shift+ Insert). Shell juga dapat memiliki mekanisme copy-paste internal (misalnya Meta+ Wdan Ctrl+ Y).
  • Kontrol pekerjaan (meluncurkan program di latar belakang dan mengelolanya) sebagian besar dilakukan oleh shell. Namun, terminallah yang menangani kombinasi kunci seperti Ctrl+ Cuntuk mematikan pekerjaan latar depan dan Ctrl+ Zuntuk menangguhkannya.

Daur ulang dari Unix & Linux

Gilles
sumber
1
Saya harus tidak setuju dengan Anda tentang terminal sebagai istilah yang tepat untuk file perangkat terminal, dan / atau kode penanganan terminal di kernel (tty ioctls, mentah / matang, pengeditan garis dasar). terminal = barang yang menangani kode pelarian, mengubah penekanan tombol menjadi karakter, dan menggambar di layar (atau mencetak pada kertas / pita). Lihat jawaban saya untuk lebih jelasnya.
Peter Cordes
2
@PeterCordes Pada tingkat detail ini, tidak ada perbedaan. POSIX mendefinisikan terminal sebagai sinonim untuk perangkat terminal , dalam arti file perangkat. Itulah arti Unix. Itu memang menjadi barang daripada menangani kode melarikan diri, mengubah penekanan tombol menjadi karakter dan menggambar di layar (atau mentransmisikan melalui jaringan, atau log ke file, dll.).
Gilles
2
hrm, ya terminal tidak terbiasa dalam hal itu juga. Dengan asumsi bahwa ada terminal emulator, atau port serial dengan alat terminal yang terhubung dengannya, di salah satu ujung perangkat terminal yang ditangani oleh kernel. Penanganan kernel tty (dalam mode matang) hanya menangani beberapa kode kontrol (sinyal pada ^ c, baris diedit pada ^ u / ^? (Hapus). Saya mencoba menggambar garis antara kode tty dan bagian Linux yang mengimplementasikan terminal VT100 seperti pada kartu grafis dan USB / ps2 / aT Keyboard Anda dapat mengkompilasi Linux tanpa itu, tapi bukan tanpa tty..
Peter Cordes
3
@PeterCordes Dalam konfigurasi kernel, dukungan untuk terminal dapat diabaikan (ini berguna untuk beberapa sistem tertanam yang jarang terjadi di mana memori sangat ketat); itu dikendalikan oleh CONFIG_TTY. Dukungan untuk emulator terminal (lebih tepatnya disebut terminal semu - "terminal emulator" tidak selalu mencakup telnetd, layar, mengharapkan, ...) dikontrol oleh CONFIG_UNIX98_PTYS. Dukungan untuk tampilan mode teks PC dan keyboard atau sejenisnya dikendalikan oleh CONFIG_VT. Lihat drivers/tty/Kconfigdi sumber kernel.
Gilles
2
Ups, saya tidak memiliki sumber kernel baru-baru ini. CONFIG_TTY hanya ditambahkan pada 2012. Pokoknya, ya mudah-mudahan itu membantu siapa pun yang mencoba membungkus kepala mereka di sekitar potongan puzzle yang berbeda, dan bagaimana mereka cocok bersama.
Peter Cordes
60

Representasi visual.

Terminal

Sesuatu yang bisa Anda duduki, dan bekerja seperti bos.

Terminal

Menghibur

Beberapa perangkat keras yang melakukan banyak hal.

Menghibur

Contoh lain dari konsol, adalah konsol video game seperti Super Nintendo [tempat Anda dapat bermain Actraiser]

Kulit

Pada dasarnya aplikasi untuk menjalankan perintah.

KulitKulit

Command Line [Antarmuka]

Pada dasarnya apa pun yang Anda masukkan perintah.

CLICLI

Akiva
sumber
8
Anda mencuri ide saya - pada dasarnya saya akan memberikan jawaban yang sama. Jadi, Anda dapat memiliki upvote. Maksudnya tentu saja bahwa sementara istilah-istilah ini sebagian besar identik hari ini, istilah-istilah seperti "terminal" dan "konsol" berasal dari konsep komputasi yang lebih tua.
thomasrutter
2
Usaha yang bagus. Sederhana dan mudah
A Umar Mukthar
19

Dari Proyek Informasi Linux :

Terminal : Secara teknis, jendela terminal, juga disebut sebagai emulator terminal, adalah jendela hanya teks dalam antarmuka pengguna grafis (GUI) yang mengemulasi konsol.

Dalam kata-kata Kami Aplikasi GUI, dari mana kami dapat mengakses konsol pengguna.

Konsol : panel instrumen yang berisi kontrol untuk komputer

Shell : Shell adalah program yang menyediakan antarmuka pengguna tradisional, hanya teks untuk Linux dan sistem operasi mirip Unix lainnya

Command-Line : Baris perintah adalah ruang di sebelah kanan prompt perintah pada mode tampilan semua teks pada monitor komputer (biasanya panel CRT atau LCD) di mana pengguna memasukkan perintah dan data

rɑːdʒɑ
sumber
5
"Terminal" adalah layar fisik-saja. Apa yang Anda katakan sebenarnya adalah "terminal emulator".
Pengguna Terdaftar
2
@RegisteredUser Emulator terminal adalah sejenis terminal. Terminal kata tidak terbatas pada terminal fisik (kata yang biasa untuk itu adalah konsol ).
Gilles
2
Definisi baris perintah ini salah. Baris perintah tidak terbatas pada mode tampilan semua teks.
Gilles
1
@Gilles Saya telah mengambilnya dari One web-Link. Anda telah menyebutkan jawaban yang tepat baik-baik saja.
rɑːdʒɑ
5
@ AgentCool Saya tidak mempertanyakan kemampuan Anda untuk menyalin-menempel. Saya mempertanyakan pilihan sumber Anda. Apa yang Anda posting adalah tanggung jawab Anda, apakah Anda menulisnya atau tidak.
Gilles
15

Jawabannya di sini sepertinya sangat bagus. Namun mereka terlalu kering dan teknis untuk seleraku jadi saya akan coba.

Terminal adalah akhir dari sesuatu - di mana terminal berakhir. Misalnya jika Anda naik kereta bawah tanah di beberapa kota, stasiun tempat Anda turun adalah terminal Anda. Atau di bandara tempat orang keluar ketika mereka mencapai negara tujuan mereka dianggap terminal. Alasan terminal di bandara saat ini adalah tempat Anda membawa orang naik dan tempat Anda menurunkan mereka karena alasan ekonomi yang jelas.

Tujuan komputer adalah untuk mendapatkan data, melakukan sesuatu dengannya, dan memuntahkan hasilnya. Dengan demikian terminal adalah perangkat apa pun dari mana Anda bisa mendapatkan hasil perhitungan (layar misalnya). Kebetulan di komputer pertama Anda biasanya memiliki input (keyboard) dan output (layar) sebagai satu perangkat. Karena itu, terminal saat ini dianggap sebagai perangkat input / output. Mouse, keyboard, layar, kamera, semuanya adalah terminal.

Shell adalah masalah OS. Di komputer Anda memiliki kernel yang pada Ubuntu misalnya adalah bagian Linux. Sekarang karena kernel benar-benar tingkat rendah, sebuah shell disediakan - sebuah program yang memungkinkan pengguna berinteraksi dengan kernel dengan cara yang mudah. Itulah BASH misalnya.

Konsol adalah (dari kamus)

permukaan datar yang berisi kontrol untuk mesin, peralatan listrik, dll.

Itu sebabnya di industri musik papan dengan semua tombol, atau dalam pesawat ulang-alik tabel perintah, mereka semua dianggap konsol. Super Nintendo dan PS2 juga disebut konsol secara historis sejak perangkat hiburan pertama seperti kotak dengan banyak tombol pada mereka.

Baris perintah hanyalah antarmuka - kebalikan dari GUI. Yaitu ada dua jenis antarmuka di komputer; CLI (antarmuka baris perintah) dan GUI (antarmuka pengguna grafis). Perbedaan utama adalah bahwa yang pertama mendapat input dari keyboard sedangkan yang kedua mendapat input dari mouse.

Pithikos
sumber
1
Apa maksud Anda "kebalikan dari GUI"?
Koray Tugay
2
Sebaliknya saya berarti Anda memiliki CLI atau GUI. Saya telah mengklarifikasi sekarang sedikit lebih dalam jawabannya.
Pithikos
12

Untuk meringkas jawaban saya:

Shell adalah program yang processesmemerintahkan dan returnsmenghasilkan, seperti bash di Linux.

Terminal adalah sebuah program yang runmerupakan shell , di masa lalu itu adalah perangkat fisik (Sebelum terminal yang monitor dengan keyboard, mereka teletypes ) dan kemudian konsep dipindahkan ke perangkat lunak , seperti Gnome-Terminal .

Jadi saya membuka Gnome-Terminal , muncul jendela hitam yang menjalankan Shell sehingga saya dapat menjalankan perintah saya.

Konsol adalah semacam terminal khusus , itu juga merupakan perangkat Fisik. contoh di Linux kami memiliki virtual consoleyang saya dapat mengaksesnya dengan kombinasi Ctrl+ Alt+ F1 to F7.

Konsol terkadang berarti papan ketik dan monitor yang terpasang secara fisik ke komputer ini.

nux
sumber
11

Istilah-istilah ini sering disatukan, sehingga orang menggunakan salah satu istilah untuk merujuk pada koleksi. (Yaitu biasanya jelas dari konteks bahwa mereka berarti jendela terminal yang menyediakan antarmuka ke shell baris perintah).

Untuk mencegah hal ini menjadi bertele-tele, saya hanya akan mengatakan xterm sebagai stand-in untuk XTerm / Gnome Terminal / Konsole / mrxvt / etc / etc. Sama untuk bash.

Konsol memiliki banyak arti khusus lainnya, jadi biarkan saja untuk saat ini.

Terminal : Sesuatu yang menyediakan interaksi manusia dengan program melalui aliran dua arah ASCII / UTF8 / karakter lain, biasanya dengan VT100 atau pemrosesan kode melarikan diri serupa. (Misalnya, backspace, hapus, tombol panah, dll. Menghasilkan kode escape. Program dapat mencetak kode escape untuk memindahkan kursor di sekitar layar terminal, beralih ke teks tebal, dan / atau warna, hapus atau gulir layar, dll.) Di Dulu, ini sering merupakan alat khusus dengan layar dan keyboard dan port serial. Sekarang, biasanya program seperti xterm.

Ada file perangkat untuk program membaca / menulis dari / ke terminal, dan terminal virtual juga memiliki sisi lain dapat diakses sebagai file perangkat. Di sinilah xterm menulis input Anda sehingga bash dapat membacanya.

Setiap terminal, termasuk yang virtual, menyediakan pengeditan garis dasar ketika sedang dalam mode dimasak (bukan mentah). Ini ditangani oleh kode kernel. Ini bash yang menyediakan pengeditan garis yang dapat Anda lakukan dengan tombol panah. (Coba jalankan catdan ketikkan jika Anda ingin melihat seperti apa pengeditan baris yang disediakan kernel. Backspace berfungsi, dan beberapa hal lainnya sesuai pengaturan stty Anda.)

Meskipun ada banyak kode kernel di belakang perangkat terminal, itu akan disebut sebagai kode penanganan terminal, bukan sebagai terminal itu sendiri.

Sunting: Gilles telah meyakinkan saya bahwa merujuk tty sebagai terminal adalah penggunaan yang tepat. Terminal Emulator, dan program interaktif yang dijalankan terhubung ke terminal, semuanya tergantung pada terminal semantik yang diimplementasikan oleh kernel. (Sebagian besar perilaku ini distandarisasi oleh POSIX, dan sama di Linux / * BSD / Unix lainnya.) Editor teks layar penuh tergantung pada perilaku barang Unix serta penanganan kode pelarian kursor-gerakan, dan banyak fitur lainnya, dari emulator terminal.

Namun, VT100 fisik dengan layar, keyboard, dan port serial adalah turunan dari terminal. Itu tidak memerlukan kernel Unix di ujung lain dari port serialnya harus lengkap. Sesuatu yang sama sekali berbeda dapat mengirimkannya kode pelarian dan teks ASCII, dan menerima hal yang sama darinya. Itu hanya akan menjadi VT100, bukan terminal Unix. Emulator terminal plus semantik tty Unix merupakan paket lengkap dari terminal Unix yang biasanya dijalankan oleh program seperti bash.

Baris perintah adalah gaya antarmuka pengguna, tempat Anda mengetik sesuatu, lalu tekan kembali untuk membuat sesuatu terjadi. Ini juga digunakan sebagai singkatan untuk shell command-line, seperti bash atau MS-DOS, tetapi Anda juga dapat mengatakan "ini adalah alat command line" tentang sesuatu seperti fdisk. Mempertimbangkan hanya program yang menggunakan terminal untuk UI mereka, dua keluarga utama adalah baris perintah dan teks layar penuh (misalnya editor seperti vi atau emacs -nw).

Program baris perintah yang biasanya berjalan pada terminal hampir selalu masih bekerja dengan input dan output mereka diarahkan ke file, tetapi program layar penuh berbasis terminal seperti editor atau klien email bersifat interaktif saja, dan tidak akan berfungsi.

Sebuah shell adalah program untuk memulai program lain. Dalam konteks Unix, itu biasa berarti shell command-line (yaitu shell Bourne atau setara shell C). Shell Unix juga dapat membaca input dari file, yaitu skrip shell. Mereka adalah bahasa pemrograman penuh, dengan variabel, loop, dan conditional, dan banyak program ditulis dalam bash (atau dengan hanya /bin/shfitur shell POSIX, untuk portabilitas lebih). Anda juga bisa menulis cepat for i in *.something; do some_program "$i";done di shell interaktif.

Menyatukan semuanya, sebuah shell seperti bash (atau program apa pun yang Anda mulai dengan menjalankan perintah shell) akan menerima karakter dari /dev/pts/Nperangkat terminal setelah xterm menulis input Anda ke sisi terminal pseudo-terminal. Jika Anda menjalankan cat, lalu tekan ^c, kode tty kernel akan bertindak pada ^cdan mengirim SIGINTproses foreground pada terminal itu. (Perhatikan penggunaan terminaldalam konteks ini berarti tty Unix, bukan emulator terminal atau sesuatu yang dihubungkan ke port serial.) Hal ini terjadi karena shell menempatkan terminal ke mode "matang" sebelum memulai program apa pun, yang berarti kernel bekerja pada beberapa kontrol- urutan (Kode tty masih tidak ada hubungannya dengan penanganan kode escape VT100, hanya beberapa kode kontrol ASCII rendah.) Jika alih-alih xterm, Anda menggunakan terminal teks konsol Linux, maka kernel IS melakukan emulasi VT100, dan menangani semua hal itu. Linux dapat dikompilasi tanpa dukungan terminal teks konsol virtual, tetapi tidak tanpa dukungan tty.

Konsol kadang-kadang digunakan sebagai sinonim untuk terminal (KDE bahkan memiliki emulator terminal yang disebut Konsole).

Seperti yang ditunjukkan oleh 0xSheepdog, ia juga memiliki arti lain: perangkat keras interaksi manusia yang dilekatkan secara lokal.

Dalam konteks kernel, konsol memiliki makna spesifik lain: itu adalah terminal tempat pesan boot ditulis. Ini bisa menjadi port serial. Biasanya, tentu saja, ini adalah konsol teks yang diterapkan oleh kernel di atas driver untuk perangkat keras grafis dan keyboard USB / ps2 / AT. Jika Anda mem-boot Linux dengan console=tty0 console=ttyS0,115200n8di baris perintah, Anda akan mendapatkan pesan-pesan kernel pada layar Anda DAN pada port serial.

Linux mengimplementasikan konsol virtual ( /dev/tty1ke N ). Anda dapat menukar yang mana yang dikendalikan oleh layar / keyboard fisik Anda dengan Ctrl+ Alt+ . Distro Linux tipikal buat 6, dan mulai semuanya, jadi walaupun Anda tidak bisa atau tidak ingin memulai X11, Anda bisa masuk 6 kali dan membalik di antara perintah, halaman manual, dan apa pun, tanpa menjalankan program seperti layar. Linux (kernel) menyertakan emulator terminal gaya-VT100 untuk menyediakan antarmuka terminal melalui layar dan keyboard Anda pada konsol virtual.FNgetty

6 terminal virtual standar dengan prompt login adalah alasan Ctrl+ Alt+ F7membuat Anda kembali ke sesi X11 Anda: server X mengambil konsol virtual berikutnya yang tersedia. (Server X terbuka /dev/input/...secara langsung, alih-alih mendapatkan penekanan tombol dari Anda /dev/tty7.)

Jadi, "swap ke konsol teks" berarti menekan Ctrl+ Alt+ F1dan menggunakan terminal itu. Kembali ketika komputer lambat dan tidak memiliki banyak RAM, beberapa orang menghabiskan banyak waktu mereka di konsol teks, karena mereka cepat, Anda dapat mengatur font yang bagus, dan bahkan mengubah ukuran terminal untuk memiliki karakter yang lebih kecil, tetapi memiliki lebih banyak di layar sekaligus. Alt+ Leftdan Alt+ Rightswap ke prev / console berikutnya. (X11 menonaktifkan ini untuk konsolnya, tentu saja, hanya menyisakan Ctrl+ Alt+ kombo.)FN

Jadi konsol adalah satu-satunya istilah yang tidak memiliki makna teknis tunggal yang jelas. Ini memiliki beberapa yang berbeda. (Tergantung pada apa yang Anda rasakan tentang terminal yang tepat vs terminal plus penanganan tty, Anda dapat mengatakan bahwa terminal juga memiliki banyak makna.)

Peter Cordes
sumber
2
Konsol berarti terminal fisik "utama" tidak hanya dalam konteks kernel. Arti yang sama dalam /dev/console. Konsol tidak terlalu ambigu - meskipun kadang-kadang digunakan dalam pengertian terminal yang lebih umum , itu sangat jarang (lebih jarang daripada terminal yang digunakan secara khusus berarti konsol).
Gilles
1
benar, ya, gema foo | sudo tee / dev / console> / dev / null akan mencetak pada layar, jika VT Anda saat ini dalam mode teks (termasuk konsol framebuffer, bukan hanya secara VGA textmode). Jika Anda boot dengan konsol pada port serial, saya pikir itu akan pergi ke sana. Anda bisa mengatakan bahwa / dev / console itu file perangkat untuk apa pun kernel memperlakukan sebagai konsol sistem. Tidak ada hal lain dalam sistem yang perlu memiliki gagasan bahwa ada konsol tty sama sekali (kecuali untuk hal-hal boot-recovery yang memulai shell pada konsol TTY jika sistem gagal untuk boot ke mode multi-pengguna. Biasanya dari initrd)
Peter Cordes
1
Server xorg X (string / usr / bin / Xorg) tidak menggunakan / dev / console untuk mendapatkan akses perangkat keras. Itu menggunakan / dev / tty0, dan / dev / tty% d, dan / dev / vc /% d, untuk mengatur dirinya sendiri pada VT-nya sendiri. Saya cukup yakin Xorg akan tetap bekerja dengan baik pada PC yang boot dengan konsol kernel pada port serial. Dan terminal virtual mode teks akan tetap berfungsi. Semakin saya mempertimbangkan hal ini, semakin saya condong ke arah melihat konsol dalam konteks kernel hanya sebagai terminal khusus, dipilih pada saat boot. (Linux sebenarnya dapat menampilkan pesan konsolnya pada beberapa terminal sekaligus, jika Anda memintanya.)
Peter Cordes
6

Saya berpikir bahwa pada masa awal komputer berbagi waktu, setiap pengguna memiliki terminal (ketika mereka bisa mendapatkannya!), Tetapi hanya operator sistem yang memiliki konsol. Konsol dapat digunakan untuk tugas-tugas seperti me-reboot mesin atau mendapatkan diagnostik sistem yang tidak mungkin dari terminal pengguna. Konsolnya ada di ruang mesin, bagian intrinsik dari komputer, sedangkan terminalnya bisa jarak jauh. Konsol juga akan mencakup lampu dan sakelar perangkat keras, bukan hanya input dan output teks.

Saya akan mengatakan bahwa baris perintah adalah area di mana pengguna dapat mengetik perintah, sedangkan shell adalah program yang mengartikan / mematuhi perintah itu. Istilah "shell" sangat khusus untuk turunan Unix; "command-line" lebih banyak dalam tradisi Windows / DOS. Setara pada mainframe biasanya disebut "bahasa kontrol pekerjaan".

Jelas, perbedaan asli ini menjadi kabur seiring waktu seiring perubahan teknologi.

Michael Kay
sumber
3

Mencoba jawaban singkat sentris-pengguna:

command line - baris tempat Anda memasukkan perintah. Biasanya ini digunakan untuk memberitahu bahwa Anda perlu menjalankan sesuatu di jendela mode teks (antarmuka baris perintah) yang disediakan oleh sistem operasi Anda.

shell - program aktual yang dijalankan oleh sistem operasi untuk memproses hal-hal yang Anda masukkan command line. Karena itulah namanya - shell yang mudah digunakan untuk inti OS yang tidak ramah. Ini memberikan prompt perintah, seperti $atau >, menjalankan perintah dan aplikasi sendiri. Anda selalu bekerja melalui shellprogram dan tidak pernah beroperasi dengan konsol atau terminal secara langsung.

konsol - adalah jendela tempat program mode teks Anda berjalan. Jendela ini memproses penekanan tombol, tahu itu lebar dan tinggi. Bisa fullscreen.

terminal - adalah beberapa perangkat dengan tampilan untuk manusia yang menerima aliran input karakter dan menunjukkannya. Tidak ada umpan balik kepada pengguna tentang tinggi atau lebar (hanya retasan) atau penekanan tombol keyboard - hanya karakter yang bepergian ke sana. Terminal memproses urutan khusus dalam aliran ini untuk membuat benda-benda berwarna, membersihkan layar dan melakukan hal-hal buruk lainnya. Terminal tidak rata, karena mudah untuk mengacaukan berbagai hal jika file yang Anda perpip ke keluaran berisi urutan khusus itu. Mereka populer di jaringan dan antarmuka debug perangkat, karena Anda hanya perlu aliran tunggal untuk mengirim output dan mengontrol perangkat output dan Anda bisa langsung tapke percakapan tanpa perlu menginisialisasi atau membuat jendela.

konsol serial - adalah konsol yang memproses aliran input seperti terminal.

techtonik anatoly
sumber
3

Ini adalah topik yang tidak jelas, karena persyaratannya sangat ambigu. Saya sangat merekomendasikan membaca tautan yang saya berikan di seluruh jawaban ini, yang juga merupakan sumber saya untuk jawaban ini.

Sebuah shell adalah lapisan di atas kernel:

  • Ini menafsirkan perintah yang dimasukkan oleh pengguna, dan memprosesnya. Shell memiliki akses ke kernel, tidak seperti pengguna. Pengguna hanya dapat mengakses kernel melalui memasukkan perintah menggunakan shell, dan dengan menggunakan proses (yaitu menjalankan program). Program menggunakan panggilan sistem untuk mengakses fungsionalitas kernel. Semua panggilan sistem bersama-sama membentuk API sistem.
  • Contoh shell diberikan dalam definisi terminal kedua.

Sebuah terminal memiliki banyak arti:

  • (1) Terminal teks . Ini adalah kombinasi dari monitor layar dan keyboard. Kabel menghubungkan terminal ke komputer (seringkali secara tidak langsung). Itu disebut terminal karena terletak di ujung terminal kabel ini. Terminal-terminal ini biasanya secara fisik terpisah dari komputer, karena pada masa lalu banyak terminal yang terhubung ke satu mainframe / komputer, sehingga banyak pengguna dapat memiliki akses ke komputer pada saat yang sama.
  • (2) Jendela terminal alias terminal emulator . Di Linux, jendela terminal adalah emulasi konsol, yang terkandung dalam jendela GUI. Ini adalah CLI tempat Anda mengetik teks, dan input ini dibaca oleh shell yang Anda gunakan. Ada banyak jenis shell (mis. Bash, dash, ksh88) dan terminal (mis. Konsole, gnome).
  • (3) Untuk penjelasan tentang terminal palsu , lihat ini . Ini adalah sepasang 'file perangkat' yang digunakan untuk komunikasi antara suatu proses dan emulator terminal.

Sebuah konsol memiliki banyak arti:

  • (1) panel instrumen yang berisi kontrol untuk komputer.
  • (2) Sistem konsol alias konsol komputer . Ini adalah kombinasi dari monitor layar dan keyboard yang terhubung ke komputer. Ini identik dengan apa yang kita sebut 'terminal teks'. Kadang-kadang juga perangkat input pengguna lain seperti mouse adalah bagian dari konsol.
  • (3) Antarmuka baris perintah yang mencakup layar penuh. Ini berbeda dengan jendela terminal, yang merupakan GUI dengan X di sudut kanan atas untuk menutupnya. Ini adalah dua mode tampilan untuk CLI (antarmuka baris perintah) dalam sistem mirip Unix. Sama halnya dengan jendela terminal, konsol dapat menjalankan banyak shell juga.

Seringkali, sistem operasi memungkinkan Anda untuk menjalankan beberapa konsol pada konsol fisik (konsol definisi 2). Ini disebut konsol virtual alias terminal virtual , dan dapat diakses melalui kombinasi ctrl+ alt+ Fx. Misalnya, jika Anda ingin membuka konsol virtual ke-3, Anda menggunakan kombinasi ctrl+ alt+ F3.

Konsol (definisi 3) mungkin tampak bagi Anda sebagai anakronisme, tetapi para ahli harus merasa nyaman menggunakannya, karena ada banyak OS yang tidak mendukung GUI. Juga, jika GUI berhenti merespons, konsol mungkin masih berfungsi.

pengguna1534664
sumber
2

Sebagian besar terminal saat ini adalah emulator terminal yang benar-benar berbicara . Ini adalah jenis peran dalam cara kerja sistem seperti UNIX dan pada saat yang sama antarmuka dasar yang ditawarkan oleh sistem. Sebenarnya semuanya, termasuk GUI dibangun di atasnya.
"Terminal" bahasa sehari-hari juga dapat merujuk pada titik akhir dalam jaringan komputer dengan topografi bintang.

Konsol mengacu pada antarmuka (perangkat keras) untuk terminal. Yaitu ada konsol serial dan saat ini sebagian besar yang virtual .
Jendela bahasa sehari-hari disebut "konsol" -jendela adalah shell, terhubung ke terminal sistem, melalui konsol virtual.

Kembali pada hari ketika komputer mahal fasilitas mungkin memiliki satu komputer yang sebenarnya dan beberapa terminal yang menghubungkannya, melalui kabel serial ("konsol serial"). OS, operasi, dll. Dilakukan pada Komputer fisik, input dan output yang terjadi pada konsol.
Anda dapat beralih antar terminal virtual dengan menekan CTRL+ ALT+ F1(hingga F6): sisa waktu itu.
Saat ini konsep "thin client" kembali ke arah pemusatan sejumlah besar sumber daya dan menyediakan perangkat keras yang cukup untuk menyediakan antarmuka canggih di tempat kerja yang sebenarnya.

shell adalah "mesin" yang Anda lihat di terminal. Ini menyediakan interop dengan sistem itu sendiri dan menambahkan fitur bagus seperti pelengkapan otomatis, variabel dll.
Ini menerjemahkan bolak-balik antara OS / kernel aktual yang menggunakan panggilan sistem dan Anda. Panggilan sistem tanpa shell mirip dengan coding assemblerdan shell setidaknya memberi Anda C.

command line mengacu pada metode pertukaran input dan output melalui jendela teks. Sebenarnya garis di mana Anda ketik adalah yang (saat ini) baris perintah. Metode secara umum lebih tepat disebut sebagai antarmuka baris perintah atau CLI.

  1. inti
  2. menawarkan terminal
  3. terminal terhubung melalui konsol
  4. konsol menjalankan shell
  5. perintah dan output dipertukarkan melalui baris perintah (antarmuka)
Menandai
sumber
1
Instruksi baris perintah tidak dipahami oleh kernel, tetapi oleh shell. “Kerangka kerja inti dari instruksi yang dipahami oleh kernel” adalah panggilan sistem. "Antarmuka baris perintah UNIX dasar" adalah shell, tidak ada pemisahan antara itu dan "fitur bagus". “Terminal-emulator-window” bukanlah konsol.
Gilles
1
@Gilles disesuaikan. Jelas ada beberapa hal yang membingungkan di sana.
Markus