CLI là gì? Tại sao developer nên làm quen với CLI

CLI là gì? Tại sao developer nên làm quen với CLI

Cli là gì

Chào các bạn,

Command line interface (CLI) là một loại giao diện khá quen thuộc đối với các anh em developer. Tuy nhiên lúc mới bắt đầu học lập trình, mình không thích sử dụng các tool trên CLI vì cảm thấy chúng khó sử dụng, khó tiếp cận hơn các tool sử dụng GUI. Nhưng càng về sau, do các tool sử dụng GUI không đáp ứng được nhu cầu công việc, buộc mình phải sử dụng tới CLI thì mình mới nhận ra rằng CLI có rất nhiều cái hay, cái lợi mà GUI không có.

Hơn nữa, mình nhận ra rằng developer thì nên biết cách sử dụng CLI hơn là không, tại sao lại như vậy thì các bạn hãy theo dõi bài viết này của mình nhé.

I. GUI và CLI

Mình giới thiệu qua một chút về CLI và GUI cho bạn nào chưa biết nhé.

GUI – Graphical User Interface: Là giao diện sử dụng ở dạng đồ họa, đây là loại giao diện phổ biến và gần gũi với hầu hết người dùng. Giao diện này mình dám chắc 100% ai cũng từng nhìn thấy và sử dụng rồi, có điều là mọi người có biết là mình vừa sử dụng nó hay không thôi. Hình dung đơn giản, thì 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, hình ảnh,… có cách sử dụng trực quan thì đều là GUI (bạn sẽ hiểu rõ thế nào là GUI hơn sau khi hiểu về CLI).

CLI – Command Line Interface: Là giao diện dòng lệnh, đây là loại giao diện mà không phải ai cũng biết, cũng như không phải ai cũng biết cách sử dụng.

CLI trên MAC

Đặc điểm chung của các phần mềm CLI là đều có cách sử dụng không mấy dễ chịu đối với người mới bắt đầu, do 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. Cách duy nhất để bạn tương tác với CLI là sử dụng dòng lệnh.

Ví dụ để tạo ra một thư mục mới trên máy tính với GUI. Bạn sẽ “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”.

Vấn đề lớn nhất của các bạn mới sử dụng CLI là do giao diện “xấu” nên nhìn không quen mắt, cách sử dụng khó do không biết hoặc không nhớ lệnh để thực hiện đúng yêu cầu.

II. Tại sao lại cần có CLI?

Mặc dù được cho là khó sử dụng hơn so với GUI, thế nhưng CLI vẫn có đất dụng võ, lý do là vì:

Không phải phần mềm nào cũng có GUI để sử dụng: Một phần mềm GUI sẽ tốn 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 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 chẳng hạn, có GUI hay không không quá quan trọng.

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 với chúng ta như là windows, android, ios, macOs đều hỗ trợ GUI nhưng bên cạnh đó có những hệ điều hành không hỗ trợ GUI như MS-DOS hoặc 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 như vậy thì chỉ còn một cách duy nhất để tương tác với máy tính là sử dụng CLI.

CLI đơn giản hơn GUI: GUI tuy dễ hiểu, dễ tiếp cận nhưng lại rườm rà, 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ẽ phải thực hiện một vài thao tác như vào “Control panel > New working > bla bla gì đó mà mình cũng không nhớ”, nhưng nếu sử dụng CLI thì bạn chỉ cần gõ lệnh ifconfig (hoặc ipconfig tùy hệ điều hành) là có thể xem được ngay. Không chỉ có thao tác xem địa chỉ IP, mà còn có nhiều thao tác nữa cho thấy rằng CLI tiện lợi hơn GUI.

III. Tại sao developer nên làm quen với CLI?

3.1 Tiết kiệm được nhiều thời gian thao tác nếu thành thạo

CLI tuy khó tiếp cận lúc ban đầu, nhưng khi quen tay thì mọi thứ lại trở nên đơn giản. Chưa kể nếu sử dụng thành thạo CLI, bạn có thể không cần dùng tới chuột do 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. 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 nhìn chuyên nghiệp hơn mà lại tiết kiệm được kha khá thời gian trong công việc.

3.2 Đa số các tool cho developer đều là CLI

Đúng vậy đó, các tool cho developer đa phần đều là CLI. Ví dụ điển hình 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 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 đó thì CLI là sự lựa chọn tốt hơn GUI. Nếu như bạn phản đối quan điểm này thì sẽ có cực kỳ ít tool cho bạn sử dụng, nên cách tốt nhất là nên học cách làm quen với CLI.

3.3 Có thể sẽ phải làm việc nhiều với các server Linux

Đa phần 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 phần GUI. Vậy chỉ còn cách sử dụng CLI để giao tiếp với các server này. Mặt khác, đã là 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, các module cần thiết cho server chạy Linux, nên bạn sẽ không thể tránh khỏi việc phải sử dụng tới CLI.

IV. Kết luận

Qua bài viết này, mình muốn đem tới cho các bạn những ưu điểm của CLI so với GUI, và lý do tại sao developer nên làm quen với CLI, tóm tắt lại có một vài ý quan trọng như sau

  • Không phải chỗ nào cũng có GUI cho bạn sử dụng
  • Các tool cho developer thì đa phần đều là CLI
  • Vận dụng CLI thành thạo sẽ tiết kiệm thời gian hơn là GUI

Bài viết được viết dựa trên kinh nghiệm cá nhân, xin nhận mọi gạch đá.

(*) Các bản phân phối của Linux: Là các hệ điều hành được phát triển dựa trên Linux (sử dụng Linux làm nhân) như Ubuntu, CentOS.

(*) Máy chủ ảo: Hay còn được gọi là VPS (Virtual Private Server), VPS được thực hiện bằng cách chia server thật (server vật lý) thành các server nhỏ có tính năng tương tự, chạy dưới dạng chia sẻ tài nguyên từ server thật. Mỗi server được chia nhỏ ra từ server thật đó được gọi là một VPS. Chi phí để triển khai một server thật thường rất tốn kém, nên các đơn vị cần server riêng thường lựa chọn VPS được cung cấp từ các nhà cung cấp uy tín khác.