Lệnh Vi trong Linux
Lệnh Vi có chức năng soạn thảo, chỉnh sửa text dưới dạng Terminal và là một công cụ cần thiết cho người sử dụng hệ điều hành Linux.
Mở lệnh Vi
Vì là một ứng dụng có dạng Terminal nên bạn cần phải khởi động lệnh Vi bằng của sổ Terminal tương ứng.
*Cú pháp câu lệnh:
vi/path/to/file
Nếu file không có sẵn thì Vi sẽ tự tạo một file mới và đặt tên theo tên của tập tin bạn chỉ định mở.
*Lưu ý:
Trong trường hợp muốn điều chỉnh file hệ thống, bạn dùng
lệnh sudo trong Linux. Nếu hệ điều hành Linux không phải phên bản Ubuntu thì bạn thay sudo bằng su.
– Ví dụ: Bạn gõ câu lệnh
sudo vi /etc/fstab khi muốn chỉnh sửa file Fstab.
Chế độ Command
Khi ở chế độ Command, bạn có thể sử dụng phím mũi tên để di chuyển con trỏ, nhấn phím x để xóa ký tự ngay tại vị trí con trỏ và nhấn dd để xóa tất cả dòng ký tự. Ngoài ra, chế độ này cũng cho phép bạn sao chép, cắt hay lưu đoạn text. Bằng cách di chuyển con trỏ đến nội dung cần sao chép, rồi nhấn phím v, hoặc nhấn phím x để cắt. Tiếp đến, đưa con trỏ vào vị trí muốn dán đoạn text và nhấn phím p để hoàn tất việc paste nội dung.
Chế độ Insert
Trong chế độ này, lệnh Vi cho phép người dùng có thể tùy ý chèn thêm ký tự vào văn bản. Bạn chỉ việc nhấn nút I để chuyển sang chế độ Insert, tiếp đến nhập ký tự cần chèn. Cuối cùng, nhấn phím Escape (ESC) để về lại chế độ Command.
Saving và Quiting
Khi đang ở trong chế độ Command, bạn có thể lưu và thoát ứng dụng nhanh chóng. Bằng cách, gõ :wq để lưu tập tin đã thay đổi và đóng Vi.
Trong trường hợp, bạn muốn thực hiện thành 2 thao tác riêng lẻ thì gõ :w để hệ thống lưu file, sau đó gõ tiếp :q để thoát chương trình.
*Ghi chú: Vì lệnh Vi không cho phép người dùng đóng ứng dụng nếu file chưa lưu nên bạn gõ lệnh :q!, sau đó nhấn nút Enter để bỏ cảnh báo của hệ thống.
Các lệnh thông thường khác trong Vi
- Tùy chọn mở file ở chế độ chỉ cho phép đọc (Read only): vi -R file.
- Di chuyển các ký tự ở chế độ Command.
Có 2 cách để di chuyển các ký tự, đó là dùng các phím mũi tên lên, xuống, trái, phải hoặc sử dụng các phím chữ cái:
- k: Di chuyển con trỏ lên trên.
- j: Di chuyển con trỏ xuống dưới.
- h: Di chuyển con trỏ sang trái.
- l: Di chuyển con trỏ sang phải.
- i: Thêm văn bản, ký tự trước vị trí của con trỏ.
- l: Thêm văn bản, ký tự ở đầu dòng con trỏ đang đứng.
- a: Thêm văn bản, ký tự sau vị trí con trỏ.
- A: Thêm văn bản, ký tự ở cuối dòng con trỏ đang đứng.
- o: Tạo một dòng mới để nhập văn bản, ký tự bên dưới vị trí con trỏ.
- O: Tạo một dòng mới để nhập văn bản, ký tự bên trên vị trí con trỏ.
- x: Xóa ký tự, văn bản ở vị trí bên dưới con trỏ.
- X: Xóa ký tự, văn bản ở vị trí trước con trỏ.
- dd: Xóa dòng văn bản tại vị trí của con trỏ.
- cc: Xóa dòng văn bản và đưa người dùng sang chế độ Insert.
- r: Thay thế ký tự ngay vị trí bên dưới con trỏ.
Lệnh Vi trong Linux nâng cao
- <<: Cho phép tham gia vào dòng hiện tại và tiếp theo, cũng có khi tham gia vào nhiều dòng.
- >>: Căn dòng sang trái và được phép thay đổi một chiều rộng của dòng.
- :nr file: Xem file và chèn tập tin này sau dòng n.
- ~: Thay đổi kiểu viết hoa hoặc viết thường của ký tự ở vị trí bên dưới con trỏ.
- ^G: Nhấn tổ hợp phím CtrL + G để hiển thị tên file cùng với trạng thái hiện tại của nó.
- U: Khôi phục dòng về trạng thái trước khi con trỏ nhập vào dòng.
- u: Trở lại tác thay đổi cuối cùng của file. Còn nếu nhập “u” thêm một lần nữa sẽ thực hiện lại các thay đổi.
- J: Tính năng giống <<. Đó là tham gia vào dòng hiện tại và tiếp theo, trong đó một số có thể tham gia cùng lúc vào nhiều dòng.
- :f: Hiển thị vị trí tệp tin bằng tỉ lệ %, tên file và tổng số file.
- :f filename: Đổi tên file.
- :w filename: Viết vào filename.
- :e filename: Mở một tệp tin khác với tệp tin hiện tại.
- :cd dirname: Thay đổi thư mục đang làm việc thành dirname.
- :e #: Chuyển đổi giữa 2 tệp tin đã mở.
- :n: Dùng để chuyển đổi file kế tiếp trong chuỗi các file đang mở bằng lệnh Vi.
- :N: Dùng để chuyển đổi file liền trước của file hiện tại trong chuỗi các file đang mở bằng lệnh Vi.
- :r file: Xem file và chèn chúng sau dòng hiện tại.
Lệnh Grep trong Linux
Lệnh Grep đóng vai trò tìm chuỗi trong một file đã được chỉ định.
Tìm một chuỗi trong một file
Cách này cơ bản nhất trong lệnh Grep. Cú pháp câu lệnh:
$ grep “chuoi” ten_file
Sau khi nhập xong câu lệnh, màn hình command line sẽ hiển thị những dòng có chứa chuỗi trong file và highlight các dòng đó.
Tìm chuỗi trong nhiều file
Cú pháp câu lệnh:
$ grep “chuoi” file_pattern
Tìm kiếm không phân biệt chữ viết in hoa và thường
Khi chưa biết chắc chắn chuỗi tìm kiếm thì bạn khai báo thêm lựa chọn “-i” trong lệnh Grep để kết quả tìm kiếm mở rộng hơn, không phân biệt chữ viết in hoa hay thường.
Cú pháp:
$ grep -i “chuoi” ten_file
Tìm kiếm theo regular expression
Đây là dạng chỉ định biểu thức chính quy nhằm có thể tìm kiếm chuỗi trùng khớp với nó.
Cú pháp:
$ grep “regex_here” ten_file
Tìm chính xác với grep -w
Nếu như các cú pháp câu lệnh trên trả về kết quả mở rộng, chưa hoàn toàn chính xác như mong muốn, thì bạn nên thêm lựa chọn “-w” để nhận được đúng ký tự cần tìm.
Cú pháp:
$ grep -i “is” demo_file
Trong trường hợp file rất lớn, bạn có thể sử dụng câu lệnh để hiển thị dòng trước, sau, xung quanh dòng kết quả.
Cú pháp:
$ grep -<A, B hoặc C> “chuoi” demo_file
Trong đó:
– A: Viết tắt của từ after, tức là dòng sau.
– B: Viết tắt của từ before, tức là dòng trước.
– C: Có nghĩa là dòng xung quanh.
– n: Là một số tự nhiên dùng để chỉ định số dòng xem trước, sau, xung quanh là bao nhiêu.
Tìm các file ở toàn bộ các thư mục con
Cách này khá hữu ích khi bạn không nhớ tên file và không biết nó nằm ở thư mục nào. Bằng cách thêm lựa chọn “-r”, bạn sẽ có được toàn bộ các file trong tất cả các thư mục con theo đúng lựa chọn tìm kiếm.
Cú pháp:
$ grep -r “chuoi” *
Hoặc
$ grep -r “chuoi” file_name_*
Tìm kiếm ngược
Nếu muốn hiển thị các dòng không chứa từ khóa cần tìm thì bạn sử dụng cú pháp:
$ grep -v “chuoi” file_*
Đếm số kết quả
Khi bạn muốn đếm số lượng kết quả có trong file chỉ định thì thêm lựa chọn “-c” vào câu lệnh.
grep -c -w “INSERT” file_*
Trong trường hợp, bạn muốn xem từ khóa cần tìm xuất hiện ở file nào thì thêm lựa chọn “-l”.
Cú pháp:
$ grep -l -r -w “Error” *
Hiển thị số thứ tự của dòng kết quả
– Cú pháp câu lệnh:
$ grep -n -w “Error” file_name
– Kiểm tra sự hoạt động của một chương trình
Để thực hiện việc kiểm tra này, bạn sử dụng lệnh kép. Đó là câu lệnh có sự kết hợp giữa ps và grep.
*Ví dụ, nếu bạn muốn kiểm tra xem dịch vụ tomcat có hoạt động hay không thì dùng câu lệnh sau.
$ ps ux | grep tomcat
Lệnh Sort trong Linux
Lệnh Sort trong Linux có chức năng tương tự như excel, đó là sắp xếp các dòng nội dung theo thứ tự tăng dần hoặc giảm dần.
– Cú pháp:
sort <tuỳ chọn>
Nếu muốn xem tất cả các tùy chọn, bạn dùng lệnh “man sort” trong cú pháp câu lệnh sort, hoặc thêm “-n” để sắp xếp theo số thứ tự.
Lệnh Kill trong Linux
Đúng như tên gọi, lệnh Kill có nghĩa là bạn muốn hệ thống chấm dứt ứng dụng bị lỗi.
- Sigterm: Yêu cầu hệ thống cho một quá trình ngừng chạy. Đây cũng là tín hiệu để quá trình ngừng đúng cách, tức là nó phải thực hiện lưu lại toàn bộ tiến trình trước khi tắt.
- Sigkill: Ngừng quá trình ngay lập tức. Điều này có nghĩa, tiến trình không lưu các thay đổi và nó bị tắt đột ngột. Tất nhiên, hành động này dẫn đến kết quả bị mất dữ liệu.
– Cú pháp câu lệnh:
kill[tín hiệu hoặc tùy chọn] PID(s)
Mặc định, hệ thống sẽ sử dụng tín hiệu Sigterm. Nếu cấu hình mặc định bị thay đổi, bạn dùng cú pháp lệnh sau:
Kill Sigkill PID hoặc
kill -9 PID
Trong đó: -9 là tín hiệu Sigkill.
- Khi không thể nhận thức được PID của ứng dụng, bạn cho chạy lệnh: ps ux.
- Nếu bạn dùng lệnh kill cho nhiều quy trình thì câu lệnh là:
kill -9 PID1 PID2 PID3
- Bạn có thể thay Pkill cho PID để kill biểu thức chính quy mở rộng:
*Ví dụ: Bạn muốn giết trình duyệt firefox thì dùng câu lệnh
pkill firefox hoặc
pkill fire.
- Bạn cũng có thể liệt kê những tiến trình phù hợp để không làm hỏng chúng bằng cú pháp: pgrep -l [process name].
- Bạn dùng lệnh killall để tiêu diệt toàn bộ cá thể có trong một tiến trình.
*Ví dụ: Tiêu diệt mọi phiên bản cùa Firefox, câu lệnh sẽ là
killall firefox.
- Nếu muốn giết một ứng dụng chỉ định, bạn dùng lệnh xkill. Trong chế độ terminal, khi bạn gõ xkill, con trỏ sẽ trở thành cross. Tiếp đến, bạn chỉ cần nhấp vào ứng dụng bị lỗi để tiến hành tiêu diệt chúng.
Hoặc bạn cũng có thể kích hoạt chứng năng xkill bằng cách sử dụng thêm lối tắt bàn phím.
Lệnh rmdir trong Linux
Lệnh này được dùng để xóa các thư mục rỗng. Cú pháp:
rmdir tenthumuc
Khi bất kỳ thư mục nào có dữ liệu thì hệ thống chỉ tiến hành xóa thư mục rỗng, đồng thời, hiển thị thông báo lỗi không thể xóa đối với thư mục chứa dữ liệu.
Lệnh CP trong Linux
Lệnh này được dùng để sao chép một tập tin hay thư mục từ vị trí hiện tại đến vị trí khác.
– Cú pháp lệnh:
cp [option] [option2] source1 source2 destination
Các tùy chọn khác dùng trong lệnh CP:
- “-i”: Viết tắt của từ interactive, tức là xác nhận nếu file cần sao chép ghi đè lên file khác.
- “-r”: Viết tắt của từ recursive, tức là sao chép tất cả các thư mục con, lẫn tập tin có trong thư mục và giữ nguyên cấu trúc cây thư mục.
- “-v”: Viết tắt của từ verbose, cho phép hiển thị các tập tin đang sao chép.
Lệnh Sudo trong Linux
Lệnh Sudo được mệnh danh là lệnh “thần thánh” của Linux. Bởi nó có khả năng để quản trị viên ủy quyền cho thành viên được phép chạy một vài lệnh hệ thống.
Để ủy quyền cho thành viên, bạn cần đăng nhập bằng tài khoản user root.
- Bước 1: Tiến hành thêm user mới vào hệ thống
Cú pháp:
useradd username
- Bước 2: Cập nhật password cho user
Bạn thực hiện tạo password cho user mới thêm vào hệ thống.
Cú pháp:
passwd username
- Bước 3: Thêm user mới vào nhóm wheel
Cú pháp:
usermod -aG wheel username
- Bước 4: Truy cập sudo bằng tài khoản user mới
– Dùng lệnh su: su username
– Nhập sudo trước câu lệnh muốn chạy quyền super user:
sudo command_to_run
– Hệ thống sẽ yêu cầu bạn nhập mật khẩu đối với lần đầu chạy lệnh sudo.
– Bạn tiến hành cấu hình để user mới có thể thực hiện các lệnh hệ thống.
*Ví dụ:
Cấu hình user thực hiện nhiều lệnh với quyền root. Cú pháp câu lệnh:
user ALL=(root) /sbin/shutdown, /bin/kill, /etc/init.d/httpd
Thiết lập quyền cho user tắt máy mà không xác nhận mật khẩu. Cú pháp câu lệnh:
user localhost= NOPASSWD: /sbin/shutdown
Thiết lập quyền cho user có thể thực hiện một lệnh nào đó trong /usr/bin của máy linux1. Cú pháp câu lệnh:
user linux1 = /usr/bin/*
Nếu muốn xóa hoặc thêm user vào một nhóm bất kỳ thì bạn dùng câu lệnh sau:
sudo useradd username
sudo userdel username
sudo groupadd anewgrou
sudo groupdel anewgroup
Ngoài ra, còn một số cách dùng
các lệnh cơ bản trong Linux – Sudo như sau:
- Khi bạn muốn lệnh Sudo chạy với tư cách của user khác thì thêm “-u” vào câu lệnh và chỉ định tên của người dùng.
Cú pháp:
sudo -u username abc.
(Với abc là tên người dùng)
- Cập nhật phiên bản mới bằng lệnh Sudo: sudo yum update
- Chuyển sang user root: sudo -i -u root
Nguồn tham khảo :
https://hostingviet.vn/lenh-co-ban-trong-linux