Command Line Interface viết tắt là CLI – là loại giao diện dòng lệnh. Loại giao diện này thường chỉ quen thuộc với các developer hơn, bởi lẽ đa số mọi người sẽ sử dụng GUI. Mặc dù CLI khó sử dụng hơn nhưng nó lại là một giao diện không thể thiếu đối với các developer. Hãy cùng Vietnix tìm hiểu rõ hơn CLI là gì, ưu nhược điểm của CLI; và lý do mà các developer nên làm quen với CLI nhé!
GUI và CLI là gì?
GUI (Graphical User Interface) là gì?
GUI là giao diện sử dụng ở dạng đồ họa. Đây là loại giao diện phổ biến, gần gũi với hầu hết người dùng. Tất cả các phần mềm mà trên giao diện xuất hiện các nút bấm, các menu và hình ảnh,… có cách sử dụng trực quan thì đều là GUI.
CLI (Command Line Interface) là gì?
CLI là giao diện dòng lệnh. Đây là loại giao diện ít phổ biến hơn, và không phải ai cũng biết. Bởi lẽ CLI có cách sử dụng không trực quan như GUI; không có nút bấm, không có các menu chỉ dẫn. Để tương tác với CLI bạn phải biết sử dụng dòng lệnh. Cho nên CLI khó sử dụng đối với những người mới bắt đầu. Ví dụ để bạn tạo ra một thư mục mới trên máy tính với GUI. Bạn sẽ cần “Nhấp chuột phải > New > New folder”; còn đối với CLI thì bạn phải gõ lệnh “mkdir ten-thu-muc”.
Nguồn gốc của CLI
CLI đã được sử dụng rất nhiều trong những năm 1960. Trước đó thì con người chỉ có một bàn phím là thiết bị đầu vào và màn hình máy tính chỉ có thể hiển thị thông tin dạng văn bản. Đối với các hệ điều hành như MS-DOS đều sử dụng CLI làm giao diện người dùng chuẩn.
Sau nhiều năm chỉ sử dụng bàn phím và việc sử dụng sai dòng lệch thường xuyên xảy ra cho nên chuột đã được phát minh. Điều này đã đánh dấu sự bắt đầu của phương pháp trỏ và nhấp chuột, và đây được coi là cách mới để tương tác với máy tính. Ngoài ra, các hệ điều hành cũng bắt đầu phát triển cách lập trình hấp dẫn hơn, sử dụng GUI. Ngày nay, GUI đã trở thành một cách lập trình phổ biến. Tuy nhiên, hầu hết các hệ điều hành vẫn cung cấp lập trình kết hợp giữa CLI và GUI.
Ưu và nhược điểm của CLI
Cùng Vietnix tìm hiểu những ưu và nhược điểm của CLI nhé!
Ưu điểm của CLI là gì?
CLI có những ưu điểm như sau:
- Có thể kiểm soát chi tiết một hệ điều hành hoặc ứng dụng;
- Quản lý nhanh hơn số lượng lớn các hệ điều hành;
- Có khả năng lưu trữ các tập lệnh để tự động hóa các tác vụ thường xuyên;
- Kiến thức cơ bản về giao diện dòng lệnh giúp khắc phục sự cố, chẳng hạn như sự cố kết nối mạng.
Nhược điểm của CLI là gì?
Bên cạnh những ưu điểm trên thì CLI có các nhược điểm sau:
- Sẽ không thân thiện với người dùng đầu cuối.
- Gặp khó khăn trong việc ghi nhớ các điều lệnh và cú pháp.
Tại sao cần có CLI?
Có thể thấy rằng việc sử dụng GUI dễ dàng hơn rất nhiều so với CLI. Tuy nhiên CLI vẫn rất cần thiết. Vậy lý do cần có CLI là gì?
Có 3 lý do cần phải có CLI:
- Thứ nhất, không phải phần mềm nào cũng có GUI để sử dụng: Bởi lẽ một phần mềm GUI sẽ tốn nhiều công sức và thời gian để lập trình ra hơn là CLI. Nên các nhà phát triển sẽ cân nhắc hơn việc sử dụng CLI nếu GUI không cần thiết. Ví dụ như các phần mềm chạy ẩn trên máy tính việc dành thời gian công sức để tạo GUI là không cần thiết.
- Thứ hai, không phải hệ điều hành nào cũng hỗ trợ GUI: Các hệ điều hành quen thuộc như là Windows, Android, iOS, macOs đều hỗ trợ GUI. Tuy nhiên có những hệ điều hành không hỗ trợ GUI như MS-DOS; hoặc là lược bỏ đi phần GUI như Linux cài trên các máy chủ ảo (VPS). Trong trường hợp không hỗ trợ GUI hoặc lược bỏ GUI thì người dùng chỉ còn cách sử dụng CLI.
- Thứ ba, CLI đơn giản hơn GUI: Mặc dù GUI dễ hiểu, dễ tiếp cận, dễ sử dụng hơn CLI. Nhưng GUI lại rườm rà hơn và cần nhiều bước để thực hiện. Ví dụ để xem địa chỉ IP của máy tính, bạn sẽ thực hiện các thao tác như Control panel > New working > …. Nhưng khi sử dụng CLI bạn chỉ cần gõ lệnh ifconfig (hoặc ipconfig tùy hệ điều hành) là đã có thể xem được.
Tại sao nên sử dụng CLI hơn là GUI?
CLI và GUL đều có những ưu, nhược điểm khác nhau. Vậy điều khiến chúng ta nên sử dụng CLI hơn là sử dụng GUI là gì?
- CLI tiêu tốn ít tài nguyên hơn: CLI là chương trình dựa vào text, cần rất ít tài nguyên của máy tính. Có nghĩa là với CLI, bạn có thể thực hiện các tác vụ tương tự với tài nguyên tối thiểu.
- Độ chính xác cao: Bạn có thể chỉ cần sử dụng một lệnh cụ thể để thực hiện điều bạn muốn làm một cách dễ dàng (miễn là bạn không gõ sai điều lệnh). Và khi bạn học những điều cơ bản thì việc viết cú pháp không còn quá khó khăn như tưởng tượng.
- Nhiệm vụ lặp đi lặp lại thân thiện: Hệ điều hành GUI có thể sẽ không cung cấp cho bạn tất cả các menu và các nút để thực hiện tất cả tác vụ. Nếu phải làm những công việc lặp đi lặp lại thì GUI sẽ khiến bạn choáng ngợp bởi việc lặp đi lặp lại các thao tác. Nhưng khi dùng CLI thì bạn chỉ cần dùng một lệnh. Ví dụ: khi bạn đang phải xử lý hàng trăm file trong một thư mục, CLI sẽ cho phép bạn sử dụng duy nhất một lệnh để tự động lặp lại dễ dàng.
- Mạnh mẽ: Hầu hết các hệ điều hành ngày nay đều ngăn bạn không được làm xáo trộn quy trình cốt lõi của hệ thống. Ví dụ Windows có system protection và MacOS có SIP (System Integrity Protection). Bạn không thể thực hiện một số nhiệm vụ được hệ thống bảo vệ. Tuy nhiên, với CLI, bạn lại có toàn quyền kiểm soát hệ thống của mình.
Tại sao developer nên làm quen với CLI?
Tiết kiệm nhiều thời gian thao tác nếu thành thạo
CLI khó để tiếp cận lúc ban đầu, nhưng khi đã quen dần thì việc sử dụng nó lại trở nên đơn giản. Nếu bạn sử dụng thành thạo được CLI, bạn có thể không cần dùng tới chuột; bởi lẽ các thao tác di chuyển con trỏ, thay đổi cửa sổ làm việc hoàn toàn có thể thực hiện từ bàn phím. Và tay phải của bạn sẽ không phải chuyển qua chuyển lại giữa bàn phím – chuột rồi lại chuột – bàn phím nữa, vừa trông chuyên nghiệp hơn mà lại tiết kiệm được kha khá thời gian trong công việc.
Hầu hết các tool cho developer đều là CLI
Trên thực tế, các tool dành cho developer đa phần đều là CLI. Ví dụ như là npm, yarn, composer, docker, git,… đều được ưu tiên sử dụng trên CLI hơn là trên GUI. Nguyên nhân chủ yếu là do các developer thì đều yêu thích sự đơn giản, nhanh chóng và linh hoạt. Để đáp ứng được các yêu cầu này thì CLI quả thực là sự lựa chọn tốt hơn GUI.
Developer có thể sẽ phải làm việc nhiều với các server Linux
Đa số các server đều sử dụng các bản phân phối của Linux làm hệ điều hành; và thường bị lược bỏ đi GUI. Cách duy nhất để giao tiếp với các server này là sử dụng CLI. Mặt khác, khi bạn làm developer thì ít nhiều gì cũng có lúc bạn động đến việc cấu hình, cài cắm thêm các gói, module cần thiết cho server chạy Linux. Cho nên việc phải sử dụng tới CLI là điều mà bạn sẽ không thể tránh khỏi.
Câu hỏi thường gặp
Ví dụ về giao diện dòng lệnh (CLI) là gì?
Ví dụ về điều này bao gồm Microsoft Windows, DOS Shell và Mouse Systems PowerPanel. CLI thường được thực hiện trong các thiết bị đầu cuối cũng có khả năng giao diện người dùng dựa trên văn bản hướng màn hình sử dụng địa chỉ con trỏ để đặt các ký hiệu trên màn hình hiển thị.
CLI có nhanh hơn GUI không?
CLI nhanh hơn GUI. Tốc độ của GUI chậm hơn CLI.
Linux có phải là GUI không?
Đúng. Cả Linux và UNIX đều có hệ thống GUI.
Lời kết
Qua bài viết trên, Vietnix đã giải thích rõ hơn cho bạn về khái niệm CLI là gì, phân biệt GUI với CLI, cũng như nêu rõ những ưu nhược điểm của CLI. Đồng thời cũng nêu ra những lý do mà các developer cần phải biết và làm quen với CLI. Mong rằng qua bài viết bạn sẽ hiểu rõ hơn về giao diện CLI này nhé!