Linux vi command

Khám phá sức mạnh của Vi: Chinh phục trình soạn thảo văn bản huyền thoại trên Linux

Bạn là một người dùng Linux? Bạn muốn làm chủ hệ thống của mình một cách toàn diện? Vậy thì không thể bỏ qua Vi, trình soạn thảo văn bản huyền thoại đã gắn liền với lịch sử phát triển của Linux. Mặc dù có vẻ "khó nhằn" với giao diện dòng lệnh, Vi (và phiên bản cải tiến Vim) lại ẩn chứa sức mạnh đáng kinh ngạc, giúp bạn chỉnh sửa file cấu hình, viết code, hay thậm chí là soạn thảo văn bản một cách nhanh chóng và hiệu quả.

Bài viết này sẽ là "kim chỉ nam" giúp bạn làm quen với Vi, từ những khái niệm cơ bản nhất đến những mẹo nâng cao, giúp bạn tự tin sử dụng Vi trong mọi tình huống. Hãy cùng khám phá thế giới Vi đầy thú vị này nhé!

Vi là gì? Tại sao Vi lại quan trọng?

Vi (Visual Editor) là một trình soạn thảo văn bản dựa trên dòng lệnh, được phát triển từ những năm 1970. Mặc dù có tuổi đời khá cao, Vi vẫn là một công cụ không thể thiếu trên hầu hết các hệ thống Unix và Linux. Lý do rất đơn giản: Vi cực kỳ nhẹ, ổn định, và luôn sẵn có, ngay cả trong những môi trường khắc nghiệt nhất.

Dưới đây là một vài lý do tại sao Vi lại quan trọng:

  • Luôn có mặt: Vi là một phần của tiêu chuẩn POSIX, có nghĩa là nó luôn được cài đặt sẵn trên hầu hết các hệ thống Unix và Linux.
  • Nhẹ và nhanh: Vi tiêu thụ rất ít tài nguyên hệ thống, giúp bạn chỉnh sửa file một cách nhanh chóng, ngay cả trên những máy chủ cấu hình yếu.
  • Mạnh mẽ và linh hoạt: Vi cung cấp nhiều tính năng mạnh mẽ, từ chỉnh sửa văn bản cơ bản đến soạn thảo code, hỗ trợ cú pháp, và nhiều hơn nữa.
  • Làm chủ hệ thống: Sử dụng Vi giúp bạn hiểu rõ hơn về cách hệ thống Linux hoạt động, và giúp bạn trở thành một người dùng Linux "thực thụ".

Các chế độ hoạt động của Vi

Vi hoạt động dựa trên các chế độ khác nhau, mỗi chế độ có một chức năng riêng. Điều này có thể gây bối rối cho người mới bắt đầu, nhưng một khi đã làm quen, bạn sẽ thấy đây là một cách tiếp cận rất hiệu quả.

Dưới đây là ba chế độ chính của Vi:

  • Chế độ Command (Lệnh): Đây là chế độ mặc định khi bạn mở Vi. Ở chế độ này, bạn có thể di chuyển con trỏ, xóa, sao chép, dán, và thực hiện các lệnh khác.
  • Chế độ Insert (Chèn): Ở chế độ này, bạn có thể nhập văn bản vào file. Để vào chế độ Insert, bạn có thể sử dụng các lệnh như i (chèn trước con trỏ), a (chèn sau con trỏ), hoặc o (mở một dòng mới bên dưới dòng hiện tại).
  • Chế độ Visual (Hình ảnh): Ở chế độ này, bạn có thể chọn một khối văn bản để thực hiện các thao tác như xóa, sao chép, hoặc dán. Để vào chế độ Visual, bạn có thể sử dụng lệnh v (chọn theo ký tự), V (chọn theo dòng), hoặc Ctrl+v (chọn theo khối).

Để chuyển từ chế độ Insert hoặc Visual về chế độ Command, bạn chỉ cần nhấn phím Esc.

Các lệnh cơ bản trong Vi

Để làm việc hiệu quả với Vi, bạn cần nắm vững một số lệnh cơ bản. Dưới đây là một số lệnh quan trọng nhất:

  • Di chuyển con trỏ:
    • h: Sang trái
    • j: Xuống dưới
    • k: Lên trên
    • l: Sang phải
    • w: Di chuyển đến từ tiếp theo
    • b: Di chuyển đến từ trước đó
    • 0: Di chuyển đến đầu dòng
    • $: Di chuyển đến cuối dòng
  • Chèn văn bản:
    • i: Chèn trước con trỏ
    • a: Chèn sau con trỏ
    • o: Mở một dòng mới bên dưới dòng hiện tại
    • O: Mở một dòng mới bên trên dòng hiện tại
  • Xóa văn bản:
    • x: Xóa ký tự tại vị trí con trỏ
    • dd: Xóa dòng hiện tại
    • dw: Xóa từ tại vị trí con trỏ
  • Sao chép và dán:
    • yy: Sao chép dòng hiện tại vào bộ nhớ đệm
    • p: Dán nội dung từ bộ nhớ đệm vào sau vị trí con trỏ
    • P: Dán nội dung từ bộ nhớ đệm vào trước vị trí con trỏ
  • Tìm kiếm:
    • /chuỗi_cần_tìm: Tìm kiếm chuỗi từ vị trí con trỏ đến cuối file
    • ?chuỗi_cần_tìm: Tìm kiếm chuỗi từ vị trí con trỏ đến đầu file
    • n: Tìm kiếm kết quả tiếp theo
    • N: Tìm kiếm kết quả trước đó
  • Lưu và thoát:
    • :w: Lưu file
    • :q: Thoát Vi
    • :wq: Lưu file và thoát Vi
    • :q!: Thoát Vi mà không lưu thay đổi

Đây chỉ là một vài lệnh cơ bản. Vi còn rất nhiều lệnh khác, giúp bạn thực hiện các thao tác phức tạp hơn. Bạn có thể tìm hiểu thêm về các lệnh này thông qua tài liệu hướng dẫn của Vi.

Ví dụ thực tế: Sử dụng Vi trong công việc hàng ngày

Để giúp bạn hiểu rõ hơn về cách sử dụng Vi, hãy xem xét một vài ví dụ thực tế:

  • Chỉnh sửa file cấu hình: Vi thường được sử dụng để chỉnh sửa các file cấu hình hệ thống, chẳng hạn như /etc/network/interfaces (cấu hình mạng) hoặc /etc/ssh/sshd_config (cấu hình SSH).
  • Soạn thảo code: Vi (và Vim) là một trình soạn thảo code mạnh mẽ, hỗ trợ cú pháp cho nhiều ngôn ngữ lập trình khác nhau.
  • Viết ghi chú nhanh: Vi có thể được sử dụng để viết ghi chú nhanh, tạo danh sách công việc, hoặc ghi lại các thông tin quan trọng.

Ví dụ cụ thể: Bạn cần chỉnh sửa file cấu hình SSH để cho phép đăng nhập bằng mật khẩu. Bạn có thể thực hiện các bước sau:

  1. Mở file /etc/ssh/sshd_config bằng Vi: vi /etc/ssh/sshd_config
  2. Tìm dòng PermitRootLogin prohibit-password (sử dụng lệnh /PermitRootLogin).
  3. Nhấn i để vào chế độ Insert.
  4. Sửa dòng này thành PermitRootLogin yes.
  5. Nhấn Esc để trở về chế độ Command.
  6. Lưu file và thoát Vi: :wq
  7. Khởi động lại dịch vụ SSH: sudo systemctl restart sshd

Vi vs. Vim: Sự khác biệt là gì?

Vim (Vi Improved) là một phiên bản cải tiến của Vi, được phát triển bởi Bram Moolenaar. Vim bổ sung nhiều tính năng so với Vi, bao gồm:

  • Hỗ trợ cú pháp: Vim hỗ trợ cú pháp cho nhiều ngôn ngữ lập trình khác nhau, giúp bạn viết code dễ dàng hơn.
  • Giao diện trực quan hơn: Vim có giao diện trực quan hơn Vi, với nhiều màu sắc và biểu tượng.
  • Hỗ trợ plugin: Vim hỗ trợ plugin, cho phép bạn mở rộng chức năng của trình soạn thảo.
  • Undo/Redo không giới hạn: Vim cho phép bạn hoàn tác và làm lại các thao tác không giới hạn.

Mặc dù Vim có nhiều tính năng hơn, Vi vẫn là một công cụ hữu ích trong nhiều trường hợp, đặc biệt là khi bạn cần một trình soạn thảo nhẹ và luôn sẵn có. Trong hầu hết các hệ thống Linux hiện đại, khi bạn gõ lệnh vi, thực tế bạn đang chạy Vim ở chế độ tương thích với Vi.

Bảng so sánh Vi và Vim

Tính năng Vi Vim
Hỗ trợ cú pháp Không
Giao diện Dòng lệnh đơn giản Trực quan hơn, có màu sắc
Hỗ trợ plugin Không
Undo/Redo Giới hạn Không giới hạn
Độ nhẹ Rất nhẹ Nhẹ
Tính sẵn có Luôn có mặt trên hầu hết các hệ thống Unix/Linux Thường có mặt, nhưng có thể cần cài đặt

FAQ: Những câu hỏi thường gặp về Vi

Làm thế nào để thoát Vi mà không lưu thay đổi?
Sử dụng lệnh :q!.
Làm thế nào để tìm kiếm một chuỗi trong Vi?
Sử dụng lệnh /chuỗi_cần_tìm (tìm kiếm từ vị trí con trỏ đến cuối file) hoặc ?chuỗi_cần_tìm (tìm kiếm từ vị trí con trỏ đến đầu file).
Làm thế nào để sao chép và dán một dòng trong Vi?
Sử dụng lệnh yy để sao chép dòng hiện tại, sau đó sử dụng lệnh p để dán sau vị trí con trỏ hoặc P để dán trước vị trí con trỏ.
Vi có hỗ trợ tab không?
Vi không hỗ trợ tab theo kiểu trình soạn thảo văn bản hiện đại. Tuy nhiên, Vim có hỗ trợ tab và nhiều tính năng khác.
Tôi nên học Vi hay Vim?
Nếu bạn mới bắt đầu, nên học Vim vì nó dễ sử dụng hơn và có nhiều tính năng hữu ích. Tuy nhiên, việc hiểu Vi vẫn quan trọng vì nó luôn có mặt trên các hệ thống Linux.

Kết luận: Vi - Công cụ không thể thiếu cho người dùng Linux

Mặc dù có thể hơi "khó nhằn" lúc ban đầu, Vi là một công cụ vô cùng mạnh mẽ và hữu ích cho bất kỳ người dùng Linux nào. Việc làm chủ Vi sẽ giúp bạn chỉnh sửa file cấu hình, viết code, và quản lý hệ thống một cách hiệu quả hơn. Hãy dành thời gian luyện tập và khám phá Vi, bạn sẽ không hối hận đâu!

Chúc bạn thành công trên con đường chinh phục Vi!

Last Updated : 22/08/2025