GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan Tepat Antara A 'terminal', A 'shell', A 'tty' Dan A 'konsol'?

Saya pikir istilah-istilah ini hampir merujuk pada hal yang sama, ketika digunakan secara longgar:

  • terminal
  • kulit
  • tty
  • konsol

Apa sebenarnya yang dimaksud dengan masing-masing istilah ini?

Jawaban yang Diterima:

Terminal berada di ujung kabel listrik, cangkang adalah rumah kura-kura, tty adalah singkatan yang aneh, dan konsol adalah sejenis kabinet.

Yah, secara etimologis.

Dalam terminologi unix, jawaban singkatnya adalah

  • terminal =tty =lingkungan input/output teks
  • konsol =terminal fisik
  • shell =penerjemah baris perintah

Konsol, terminal, dan tty terkait erat. Awalnya, itu berarti sebuah peralatan di mana Anda dapat berinteraksi dengan komputer:pada hari-hari awal unix, itu berarti perangkat bergaya 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 tampilan elektronik menjadi norma untuk terminal.

Dalam terminologi unix, sebuah tty adalah jenis file perangkat tertentu yang mengimplementasikan sejumlah perintah tambahan (ioctls) selain membaca dan menulis. Dalam arti yang paling umum, terminal identik dengan tty. Beberapa tty disediakan oleh kernel atas nama perangkat keras, misalnya dengan input yang berasal dari keyboard dan outputnya menuju ke layar mode teks, atau dengan input dan output yang dikirimkan melalui jalur serial. Tty lainnya, terkadang disebut pseudo-ttys , disediakan (melalui lapisan kernel tipis) oleh program yang disebut emulator terminal , seperti Xterm (berjalan di Sistem X Window), Screen (yang menyediakan lapisan isolasi antara program dan terminal lain), Ssh (yang menghubungkan terminal pada satu mesin dengan program pada komputer lain), Expect (untuk skrip terminal interaksi), dll.

Kata terminal juga dapat memiliki arti yang lebih tradisional dari perangkat yang digunakan untuk berinteraksi dengan komputer, biasanya dengan keyboard dan layar. Misalnya terminal X adalah sejenis thin client, komputer tujuan khusus yang hanya bertujuan untuk menggerakkan keyboard, layar, mouse, dan kadang-kadang periferal interaksi manusia lainnya, dengan aplikasi yang sebenarnya berjalan di komputer lain yang lebih kuat.

Konsol umumnya terminal dalam arti fisik yang menurut beberapa definisi terminal utama terhubung langsung ke mesin. Konsol muncul ke sistem operasi sebagai tty (diimplementasikan kernel). Pada beberapa sistem, seperti Linux dan FreeBSD, konsol muncul sebagai beberapa tty (kombinasi tombol khusus beralih di antara tty ini); hanya untuk membingungkan, nama yang diberikan untuk setiap tty tertentu dapat berupa “konsol”, ”konsol virtual”, ”terminal virtual”, dan variasi lainnya.

Sebuah kulit adalah antarmuka utama yang dilihat pengguna saat mereka masuk, 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.)

Terkait:Centos – Bagaimana cara menginstal Lingkungan Desktop di CentOS 7?

Di lingkaran unix, kulit memiliki spesialisasi yang berarti shell baris perintah, berpusat di sekitar memasukkan nama aplikasi yang ingin dijalankan, diikuti dengan nama file atau objek lain yang harus dijalankan oleh aplikasi, dan menekan tombol Enter. Jenis lingkungan lain tidak menggunakan kata "cangkang"; misalnya, sistem jendela melibatkan "manajer jendela" dan "lingkungan desktop", bukan "cangkang".

Ada banyak shell unix yang berbeda.
Shell populer untuk penggunaan interaktif termasuk Bash (default pada sebagian besar instalasi Linux), zsh (yang menekankan kekuatan dan kemampuan penyesuaian) dan fish (yang menekankan kesederhanaan).

Shell baris perintah menyertakan konstruksi kontrol aliran untuk menggabungkan perintah. Selain mengetik perintah pada prompt interaktif, pengguna dapat menulis skrip. Shell yang paling umum memiliki sintaks umum berdasarkan Bourne_shell. Saat membahas “pemrograman shell ”, cangkang hampir selalu tersirat sebagai cangkang bergaya Bourne. Beberapa shell yang sering digunakan untuk scripting tetapi tidak memiliki fitur interaktif lanjutan termasuk shell Korn (ksh) dan banyak varian ash. Hampir semua sistem mirip Unix memiliki shell bergaya Bourne yang diinstal sebagai /bin/sh , biasanya ash, ksh atau bash.

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

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

  • Input:terminal mengubah kunci menjadi urutan kontrol (mis. Kirie[D ). Shell mengubah urutan kontrol menjadi perintah (mis. e[Dbackward-char ).
  • Pengeditan baris, riwayat input, dan penyelesaian disediakan oleh shell.
    • Terminal mungkin menyediakan pengeditan baris, riwayat, dan penyelesaiannya sendiri, dan hanya mengirim baris ke shell ketika sudah siap untuk dieksekusi. Satu-satunya terminal umum yang beroperasi dengan cara ini adalah M-x shell di Emacs.
  • Output:shell mengeluarkan instruksi seperti “display foo ”, “ganti warna latar depan menjadi hijau”, “pindahkan kursor ke baris berikutnya”, dll. Terminal bertindak berdasarkan instruksi ini.
  • Promptnya murni konsep shell.
  • Shell tidak pernah melihat output dari perintah yang dijalankannya (kecuali diarahkan). Riwayat keluaran (scrollback) murni merupakan konsep terminal.
  • Salin-tempel antar-aplikasi disediakan oleh terminal (biasanya dengan mouse atau urutan tombol seperti Ctrl +Bergeser +V atau Shift +Sisipkan ). Shell mungkin juga memiliki mekanisme salin-tempel internalnya sendiri (mis. Meta +W dan Ctrl +Y ).
  • Kontrol pekerjaan (meluncurkan program di latar belakang dan mengelolanya) sebagian besar dilakukan oleh shell. Namun, terminal yang menangani kombinasi tombol seperti Ctrl +C untuk mematikan pekerjaan latar depan dan Ctrl +Z untuk menangguhkannya.

Linux
  1. Apa perbedaan antara nohup dan ampersand

  2. Apa perbedaan antara &> dan >&di bash?

  3. Perbedaan antara '{}' dan {} dalam perintah find?

  1. Perbedaan Antara Shell Login dan Shell Non-login?

  2. Apa perbedaan antara ls dan l?

  3. Perbedaan antara perintah dalam skrip bash dan perintah di terminal

  1. Perbedaan Penggunaan Antara Variabel Shell Dan Variabel Lingkungan?

  2. Apa Perbedaan Antara Sudo Su – Dan Sudo Su —?

  3. Perbedaan Getty dan Agetty?