Tôi bối rối với thuật ngữ này. Sự khác biệt giữa shell, console và terminal là gì?
Tôi bối rối với thuật ngữ này. Sự khác biệt giữa shell, console và terminal là gì?
Câu trả lời:
Trong thế giới linux, tất cả chúng có thể trông giống nhau theo quan điểm của người dùng tại bàn phím. Sự khác biệt là cách chúng tương tác với nhau.
Các vỏ là chương trình thật xử lý lệnh và trả về đầu ra. Hầu hết các shell cũng quản lý các quá trình nền trước và nền, lịch sử lệnh và chỉnh sửa dòng lệnh. Các tính năng này (và nhiều tính năng khác) là tiêu chuẩn bash
, lớp vỏ phổ biến nhất trong các hệ thống linux hiện đại.
Một thiết bị đầu cuối đề cập đến một chương trình bao bọc chạy shell. Nhiều thập kỷ trước, đây là một thiết bị vật lý bao gồm ít hơn một màn hình và bàn phím. Khi các hệ thống unix / linux bổ sung các hệ thống đa xử lý và cửa sổ tốt hơn, khái niệm thiết bị đầu cuối này đã được trừu tượng hóa thành phần mềm. Bây giờ bạn có các chương trình như Gnome Terminal sẽ khởi chạy một cửa sổ trong môi trường cửa sổ Gnome sẽ chạy shell mà bạn có thể nhập lệnh.
Các giao diện điều khiển là một loại đặc biệt của thiết bị đầu cuối . Trong lịch sử, bàn điều khiển là một bàn phím và màn hình được cắm vào cổng bàn điều khiển nối tiếp chuyên dụng trên máy tính được sử dụng để liên lạc trực tiếp ở mức độ thấp với hệ điều hành. Các hệ thống linux hiện đại cung cấp bảng điều khiển ảo . Chúng được truy cập thông qua các tổ hợp phím (ví dụ Alt+ F1hoặc Ctrl+ Alt+ F1; các phím chức năng số bàn giao tiếp khác nhau) được xử lý ở mức thấp của hệ điều hành linux - điều này có nghĩa là không có dịch vụ đặc biệt nào cần được cài đặt và định cấu hình để chạy . Tương tác với bàn điều khiển cũng được thực hiện bằng chương trình shell .
Shell là một chương trình đưa ra lời nhắc và chờ bạn gõ lệnh. Nó thực thi chúng và sau đó in một dấu nhắc khác. Vì vậy, giống như CMD trong Windows, hoặc Bash trong Unix. Nó có thể chạy trong một thiết bị đầu cuối hoặc trên bàn điều khiển.
Một bàn điều khiển ban đầu là một vật lý, một bảng điều khiển. Trong thuật ngữ điện toán, nó thường có nghĩa là màn hình mà bạn nhìn thấy trước khi GUI khởi động hoặc sau khi kết thúc; đôi khi bạn có thể chuyển sang hiển thị nó thay vì GUI. Đó là nơi hệ điều hành in các thông báo lỗi. Trên máy tính nhiều người dùng, đó là màn hình thực sự được gắn vào máy tính. Chỉ cần làm bạn bối rối, trên Windows nó cũng có thể có nghĩa là một cửa sổ có vỏ lệnh trong đó, tức là một thiết bị đầu cuối.
Một thiết bị đầu cuối ban đầu cũng là phần cứng, được sử dụng để giao tiếp với máy tính. Ngày nay, nó thường đề cập đến một cửa sổ có dòng lệnh (shell), có thể xuất hiện trong cửa sổ GUI hoặc thay vì GUI.
Sự khác biệt giữa giao diện điều khiển và hệ vỏ là cái tôi chưa nắm bắt được, nhưng tôi có thể cho bạn biết thiết bị đầu cuối khác với vỏ như thế nào.
Thiết bị đầu cuối là ( theo Wikipedia ) "một giao diện máy tính nối tiếp để nhập và hiển thị văn bản. Thông tin được trình bày dưới dạng một loạt các ký tự được tạo trước được chọn".
Bạn có thể sử dụng một thiết bị đầu cuối để tương tác với trình bao, nhưng bạn cũng có thể sử dụng nó để tương tác với GUI dựa trên văn bản , đôi khi được gọi là Giao diện người dùng thiết bị đầu cuối . Ví dụ:
Trong mỗi trường hợp, các thành phần GUI được "vẽ" bằng văn bản thay vì pixel.
Để biết mô tả chi tiết hơn: https://askubfox.com/a/506628/130518
Tôi sẽ mô tả trường hợp sử dụng bình thường nhất cho điều này trong văn bản sau đây.
Một thiết bị đầu cuối sử dụng một vỏ. Một vỏ có thể chạy mà không cần thiết bị đầu cuối.
Liên quan đến các vật dụng hàng ngày:
Một cách khác để xem xét nó: Tai của bạn (đầu vào) và miệng (đầu ra) là các thiết bị đầu cuối cho âm thanh. Bộ não của bạn là thông dịch viên của những âm thanh đó bằng cách sử dụng một vỏ cụ thể (xử lý).
Thiết bị đầu cuối dành cho con người chúng ta, vì vậy chúng ta có thể đọc và ghi vào / từ vỏ. Shell có thể chạy trong các quy trình nền không yêu cầu tương tác của con người, ví dụ như công việc định kỳ và do đó không yêu cầu thiết bị đầu cuối.
Một vài ví dụ về thiết bị đầu cuối tồn tại:
Một vài ví dụ về đạn pháo tồn tại:
Tôi chỉ viết cách hai thứ này hoạt động bình thường, có những cách khác để chúng hoạt động, nhưng đó là cho người dùng cao cấp hơn.
Nghĩ đến bối cảnh khác, đó là sự phát triển.
Ngay cả khi bạn không có kiến thức sâu rộng về phát triển, bạn có thể biết những điều cơ bản, đó là: bạn chỉnh sửa chương trình, bạn gửi nó cho trình biên dịch hoặc trình thông dịch xây dựng ứng dụng đã biên dịch.
Bảng điều khiển giống như trình soạn thảo chương trình của bạn; nó giúp bạn bằng văn bản nhưng nó không thực sự thực hiện bất cứ điều gì: khi bạn hoàn thành, bạn gửi nó cho trình biên dịch cho điều đó.
Bạn có thể sử dụng trình soạn thảo ưa thích của mình, vim, gedit, emacs, notepad ++, Netbeans, eclise, v.v. nhưng cuối cùng chúng chỉ là các công cụ khác nhau: nếu bạn viết cùng một chương trình thì đầu ra sẽ giống nhau.
Trong ẩn dụ này, shell là trình biên dịch. Các lệnh được nhập vào thiết bị đầu cuối, được gửi đến shell để giải thích chúng và thực thi chúng ngay lập tức.
Vì vậy, trong khi các thiết bị đầu cuối chỉ là giao diện người dùng cho trình bao, thì trình bao chứa ngôn ngữ thực tế, như xảy ra đối với trình biên dịch.
Rõ ràng một thiết bị đầu cuối không chính xác là một trình soạn thảo văn bản, chủ yếu là vì nó không tạo ra một tệp mà gửi văn bản đến trình bao bên dưới và lấy đầu ra từ nó.
Và shell không phải là trình biên dịch, trên thực tế, nó diễn giải lệnh của bạn và thực thi nó ngay lập tức thay vì xây dựng một tệp thực thi.
Ngay cả sự khác biệt lớn này, tôi tìm thấy phép ẩn dụ này để giúp rất nhiều trong việc hiểu ý tưởng này.
Thực sự không có nhiều khác biệt. Quay trở lại khi "shell" là một chương trình, "terminal" là một trình bao bọc frontend cho chương trình này và "console" là kết nối vật lý với máy tính (bàn phím / màn hình).
Có một sự khác biệt tùy thuộc vào hệ điều hành bạn đang chạy. Shell "tiêu chuẩn" là BASH , thường có sẵn trên tất cả các hương vị của Linux / Unix. Windows sử dụng một vỏ hoàn toàn khác.
prompt
và thậm chícommand line
?