Apa perbedaan antara Terminal, Konsol, Shell, dan Baris Perintah?
Apa perbedaan antara Terminal, Konsol, Shell, dan Baris Perintah?
Jawaban:
Jawaban singkat:
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.
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:
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.
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"? .
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.
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/sh
adalah 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.
\e[D
). Shell mengubah urutan kontrol menjadi perintah (misalnya \e[D
→ backward-char
).M-x shell
di Emacs.foo
", "alihkan warna foreground menjadi hijau", "pindahkan kursor ke baris berikutnya", dll. Terminal bertindak berdasarkan instruksi ini.Daur ulang dari Unix & Linux
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/Kconfig
di sumber kernel.
Representasi visual.
Sesuatu yang bisa Anda duduki, dan bekerja seperti bos.
Beberapa perangkat keras yang melakukan banyak hal.
Contoh lain dari konsol, adalah konsol video game seperti Super Nintendo [tempat Anda dapat bermain Actraiser]
Pada dasarnya aplikasi untuk menjalankan perintah.
Pada dasarnya apa pun yang Anda masukkan perintah.
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
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.
Untuk meringkas jawaban saya:
Shell adalah program yang processes
memerintahkan dan returns
menghasilkan, seperti bash di Linux.
Terminal adalah sebuah program yang run
merupakan 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 console
yang saya dapat mengaksesnya dengan kombinasi Ctrl+ Alt+ F1 to F7.
Konsol terkadang berarti papan ketik dan monitor yang terpasang secara fisik ke komputer ini.
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 cat
dan 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/sh
fitur 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/N
perangkat terminal setelah xterm menulis input Anda ke sisi terminal pseudo-terminal. Jika Anda menjalankan cat
, lalu tekan ^c
, kode tty kernel akan bertindak pada ^c
dan mengirim SIGINT
proses 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,115200n8
di baris perintah, Anda akan mendapatkan pesan-pesan kernel pada layar Anda DAN pada port serial.
Linux mengimplementasikan konsol virtual ( /dev/tty1
ke 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.)
/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).
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.
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 shell
program 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 tap
ke percakapan tanpa perlu menginisialisasi atau membuat jendela.
konsol serial - adalah konsol yang memproses aliran input seperti terminal.
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:
Sebuah terminal memiliki banyak arti:
Sebuah konsol memiliki banyak arti:
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.
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 assembler
dan 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.