CLI là gì?
CLI là viết tắt của “Command Line Interface”, có thể hiểu là “Giao diện dòng lệnh”. CLI là một phương thức để tương tác với máy tính hoặc hệ điều hành thông qua việc nhập lệnh bằng văn bản vào dòng lệnh. Thay vì sử dụng giao diện đồ họa (GUI) với các nút bấm và hình ảnh, CLI yêu cầu người dùng nhập lệnh hoặc câu lệnh cụ thể để thực hiện các tác vụ như chạy chương trình, quản lý tập tin, cài đặt hệ thống và thực hiện các tác vụ khác trên máy tính.
Sử dụng được CLI có thể nói là một trong những điều bắt buộc một lập trình viên phải biết, với CLI người dùng có thể thực hiện các tác vụ phức tạp, nâng cao khả năng tự động hóa và cho phép người dùng tùy chỉnh và kiểm soát chi tiết hơn về hệ thống.
Chắc hẳn ai cũng đã tiếp xúc với Command Prompt (CMD) hoặc PowerShell trên Windows hoặc Bash trên các HĐH Unix base
Khó khăn khi sử dụng CLI
-
Không có giao diện đồ hoạ (GUI):
Việc đột nhiên chuyển từ những cửa sổ có thể tương tác, kéo thả, chọn những tuỳ chọn trực quan trên màn hình sang gõ lệnh vào một cái màn hình đen ngòm với những dòng chữ đủ màu sắc chạy qua lại chắc hẳn không hề dễ dàng.
-
Phụ thuộc vào việc ghi nhớ lệnh:
Sử dụng CLI đòi hỏi người dùng phải ghi nhớ các lệnh và cú pháp tương ứng. Điều này có thể là một thách thức đối với người mới bắt đầu hoặc người không sử dụng CLI thường xuyên. Việc ghi nhớ cú pháp và tùy chọn của từng lệnh có thể trở nên phức tạp và dễ gây nhầm lẫn.
-
Thao tác không trực quan:
Với CLI, người dùng không thể thấy trực tiếp các tùy chọn, tập tin và thư mục đang làm việc. Thay vào đó, họ phải nhập các lệnh và xem kết quả trả về từ hệ thống. Điều này có thể khiến việc thao tác và tìm hiểu về cấu trúc thư mục và tệp tin trở nên khó khăn hơn so với việc sử dụng giao diện đồ họa.
Tại sao lại cần biết sử dụng CLI
GUI quả thực dễ sử dụng hơn nhiều so với CLI, tuy nhiên CLI đem lại nhiều lợi ích hơn chúng ta tưởng.
-
Không phải phần mềm nào cũng có GUI:
Việc xây dựng một phần mềm có GUI là việc tốn rất nhiều công sức khi phải tối ưu cả UI lẫn UX, và có những công việc không nhất thiết cần giao diện nên GUI có thể không phải là lựa chọn thích hợp.
Với góc độ của mình - một người làm về Security, trong quá trình học tập và làm việc thì thật sự thời gian sử dụng CLI phải chiếm đến 80%, những tool tự động hoá, những script, v.v. tất cả đều hoạt động trên CLI.
-
Hiệu suất cao:
CLI thường có thể thực thi nhanh hơn so với GUI. Việc chỉ cần nhập lệnh và thực hiện các tác vụ thông qua bàn phím giúp tiết kiệm thời gian so với việc tìm kiếm và di chuột qua các tùy chọn và nút bấm.
-
Hỗ trợ tốt cho các tác vụ hệ thống:
CLI thường cung cấp các công cụ mạnh mẽ để quản lý và thao tác với hệ thống, tập tin và dịch vụ. Người dùng có thể khám phá và tùy chỉnh hệ thống một cách chi tiết hơn, cũng như tiếp cận các công cụ và tài nguyên mạnh mẽ hơn để giải quyết các vấn đề hệ thống.
VD: để xem được 1 file ẩn trên windows mình còn chả nhớ các bước cụ thể nhưng với bash, mình chỉ cần
ls -la
là toàn bộ file ẩn hay không cũng hiển thị ra cho mình. -
Không HĐH nào cũng dùng GUI;
Có những HĐH như MS-DOS không hỗ trợ GUI, những server cũng thường lược bỏ phần GUI nên trong những trường hợp như thế này chúng ta chỉ có thể dùng CLI thay thế.
Làm quen CLI dễ dàng với ZSH
Việc chuyển từ GUI sang CLI quả thực khó khăn vì thế nên có một công cụ hỗ trợ thì chúng ta sẽ cảm thấy dễ đi phần nào.
Một điều khó chịu khi sử dụng CLI là việc di chuyển giữa các thư mục ví dụ như bạn muốn vào thư mục con folder-1
thì bạn phải gõ gần xong tên folder-1
ra rồi chọn tab mới có thể cd
vào:
Ngoài ra còn rất nhiều lợi ích khác của zsh so với bash như thêm plugin đổi theme, gợi ý câu lệnh, hoàn thành câu lệnh và về performance thì zsh cũng tốt hơn bash.
Cài đặt ZSH
Ở bài viết này mình sẽ chỉ hướng dẫn cài trên hệ điều hành Unix (mình đang sử dụng Ubuntu server).
sudo apt-get install zsh -ychsh -s $(which zsh)
Hai lệnh trên sẽ tự tải và cài đặt zsh và chuyển Shell mặc định sang zsh.
Cài đặt Oh My Zsh
Oh My Zsh là plugin giúp quản lý config của zsh (vì nó có quá nhiều plugin/theme đi kèm mà)
yes | sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Chỉ cần chạy lệnh trên (có thể sẽ yêu cầu nhập mật khẩu) thì Oh My Zsh sẽ được cài vào máy bạn. Lúc này bạn có thể tận hưởng vô vàn plugin và theme được zsh hỗ trợ.
-
Theme:
Kho theme siêu to khổng lồ các bạn có thể tìm thấy ở đây. Để sử dụng theme các bạn cần sửa đổi giá trị của
ZSH_THEME=
trong file.zshrc
Trong ảnh là mình đang sử dụng
nano
một CLI text editor khá dễ dùng. Chỉ cần nhập lệnhnano .zshrc
rồi dùng phím mũi tên di chuyển xuống và sửa giá trị sau đó logout và login lại là theme sẽ được đổi. Như hình dưới là mình sử dụng themebira
đã quen với terminal bên Kali =)) -
Plugin:
Cũng như sửa theme, sửa plugin thì cũng trong file .zshrc
nhưng là giá trị của trường plugin
ở dưới hình mình đang sử dụng 3 plugin là git, zsh-autosuggestions, zsh-syntax-highlighting và command-not-found. Trong đó có 2 plugin chưa được oh my zsh cài sẵn là:
-
zsh-autosuggestions: gợi ý các lệnh khi bạn nhập dựa trên lịch sử và số lần hoàn thành
Terminal window git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions -
zsh-syntax-highlighting: cải thiện syntax highlighting cho zsh
Terminal window git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Lời kết
Vậy là mình đã hướng dẫn xong việc cài Zsh, Oh My Zsh để có thể dễ dàng làm quen hơn với CLI. Khi bắt đầu sử dụng CLI hãy nhớ rằng việc làm quen với nó có thể mất một chút thời gian và cần sự thực hành để trở nên thành thạo. Tuy vậy nắm vững nó sẽ giúp tương tác và quản lý hệ thống một cách hiệu quả. Chúc các bạn sẽ sớm sử dụng thành thạo CLI!