Vi – Trình soạn thảo văn bản cổ điển

Trình soạn thảo “vi” là một trình soạn thảo cổ điển và phổ biến nhất trong các distro Linux. Bất cứ ai dùng Linux thì cũng đã “gõ” muốn mòn lệnh cái lệnh “vi” này, sở dĩ tại sao nó được sử dụng rộng rãi nhiều đến vậy bởi vì nó hầu như có sẵn trong hầu hết các bản Distro linux, ngoài ra “vi” còn thân thiện với người dùng. 

Ngày nay, ngoài “vi” ra chúng ta còn có sẵn các phiên bản nâng cấp của trình soạn thảo “vi”, phiên bản phổ biến nhất sau thời kì hậu “vi” có thể được nhắc tới là “vim”. Một số trình soạn thảo văn bản khác là “elvis”, “nvi”, “nano” “vile”. Hãy cũng nhau tìm hiểu thêm về trình soạn thảo “vi” nhé!

Xin chào mình là "vi"

Tóm tắt nội dung

Chế độ lệnh trong “vi”

Command mode và Insert mode

Command mode

Chế độ lệnh - Chế độ này cho phép bạn thực hiện các tác vụ quản trị như lưu tệp, thực hiện lệnh, di chuyển con trỏ, cut và past các dòng hoặc từ, cũng như tìm và thay thế. Trong chế độ này, bất cứ điều gì bạn nhập đều được hiểu là một lệnh.

Insert mode

Chế độ này cho phép bạn chèn văn bản vào tệp. Mọi thứ được nhập trong chế độ này được hiểu là đầu vào và được đặt trong tệp.

Trình soạn thảo “vi” luôn bắt đầu ở chế độ Command mode.
Để nhập văn bản, bạn phải ở chế độ Insert mode, chỉ cần nhấn phím i để chuyển sang chế độ Insert mode. Để thoát khỏi Insert mode, hãy nhấn phím Esc, phím này sẽ đưa bạn trở lại chế độ Command mode.

Tìm kiếm file theo tên không đầy đủ
				
					#Tìm kiếm tất cả các file bắt đầu bằng halovu
find / -name halovu*
				
			
Tìm kiếm file với phần mở rộng
				
					#Tìm kiếm tất cả các file có phần mở rộng là .php
find /thu_muc_can_tim -name *.php
				
			
Tìm kiếm file ẩn, tìm kiếm file ẩn với phần mở rộng
				
					#Tìm kiếm tất cả các file ẩn
find /thu_muc_can_tim ".*"

#Tìm kiếm tất cả các file ẩn với phần mở rộng là txt
find /thu_muc_can_tim ".*.txt"

#Tìm kiếm tất cả các file ẩn với phần mở rộng là txt và hiển thị ra màn hình 
find /thu_muc_can_tim ".*.txt" -ls
				
			
Tìm kiếm file với owner
				
					#Tìm kiếm tất cả các file với owner là halovu
find /thu_muc_can_tim -user halovu

#Tìm kiếm tất cả các file có phần mở rộng là *.php có onwer là user halovu và nằm trong thư mục /var/www
find /var/www -user halovu -name "*.php"
				
			
Tìm kiếm file với group
				
					#Tìm kiếm tất cả các file với group là halovu
find /thu_muc_can_tim -group halovu

#Tìm kiếm tất cả các file *.c thuộc về group "halovu" và nằm trong thư mục cần tìm
find /thu_muc_can_tim -group halovu -name "*.c"

#Tìm tất cả các file nhạc *.mp4 thuộc group "halovu" và nằm trong thư mục cần tìm
 find /thu_muc_can_tim -name "*.mp4" -group halovu
				
			
Tìm kiếm file được phân quyền là 644
				
					#Tìm kiếm tại thư mục hiện tại các file được phân quyền là 644
find . -type f -perm 644 
				
			
Tìm kiếm file chỉ có quyền read
				
					#Tìm kiếm tại thư mục hiện tại các file chỉ có quyền read
find . -type f -perm /u=r
				
			
Tìm kiếm file rỗng
				
					#Tìm kiếm tại thư mục hiện tại các file rỗng
find . -type f -empty
				
			
Tìm kiếm file được chỉnh sửa trong vòng “x” ngày
				
					#Tìm kiếm tại thư mục hiện tại các file được chỉnh sửa trong vòng 7 ngày
find . -mtime 7

#Tìm kiếm tại thư mục hiện tại các file được chỉnh sửa trong vòng 5 phút
find . -mmin 5

#Tìm kiếm tại thư mục hiện tại các file được chỉnh sửa trong vòng 30 ngày và bỏ qua các file ẩn
find . -mtime 30 -not -path '*/\.*'
				
			
Tìm kiếm file được chỉnh sửa trong khoảng “x” ngày
				
					#Tìm kiếm tại thư mục hiện tại các file được chỉnh sửa trong vòng 7 ngày tới 14 ngày
find . -mtime +7 -mtime -14
				
			
Tìm kiếm file được tạo ra trong vòng “x” phút
				
					#Tìm kiếm tại thư mục hiện tại các file được tạo ra trong vòng 5 phút
find . -type f -cmin -5

#Tìm kiếm tại thư mục hiện tại các file được tạo ra trong vòng 90 phút
find . -type f -cmin -90
				
			
Tìm kiếm file có dung lượng 100M và trong khoảng cho phép
				
					#Tìm kiếm tại thư mục hiện tại các file có dung lượng là 100M
find . -size 100M

#Tìm kiếm tại thư mục hiện tại các file có dung lượng trong khoảng từ 50M cho đến 100M
find . -size +50M -size -100M
				
			

Thao tác tìm kiếm với thư mục

Tìm kiếm thư mục theo tên đầy đủ
				
					#Tìm kiếm thư mục hiện tại với thư mục có tên là halovu
find . -type d -name halovu

#Tìm kiếm trên nhiều thư mục với thư mục có tên là halovu
find /opt /usr /var -type d -name halovu
				
			

Thao tác tìm kiếm nâng cao, kết hợp với các lệnh khác

Tìm kiếm file từ ngày “x” đến ngày “y” và thống kê dung lượng
				
					#Tìm kiếm tất cả các file trong thư mục /dump từ ngày 01-01-2021 tới ngày 01-01-2022 sau đó thống kê dung lượng.
find dump/ -type f -newermt "2021-01-01" ! -newermt "2022-01-01" -print0 | du -hc --files0-from - | tail -n 1

				
			
Tìm kiếm file từ ngày “x” đến ngày “y” và tiến hành xóa
				
					#Tìm kiếm tất cả các file trong thư mục /dump từ ngày 01-01-2021 tới ngày 01-01-2022 sau đó xóa để giải phóng dung lượng
find dump/ -type f -newermt "2021-01-01" ! -newermt "2022-01-01" -exec rm -rf {} \;

				
			
Tìm kiếm các file có dung lượng cao nhất
				
					#Tìm kiếm top 10 các file có dung lượng lớn nhất
find /dump -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

				
			
Tìm kiếm file thỏa điều kiện và copy đến một thư mục khác
				
					#Tìm kiếm các file có phần mở rộng là *.php và tiến hàng copy sang thư mục /beta
find . -name '*.php' -exec cp --parents {} /beta \; 

				
			
Tìm kiếm file thỏa điều kiện và tiến hành chmod 644
				
					#Tìm kiếm các file có phần mở rộng là *.html và tiến hàng chmod 644
find . -type f -name '*.html' -exec chmod 644 {} \;
				
			
Tìm kiếm file có chứa nội dung cần tìm
				
					#Tìm kiếm các file có chứa nội dung "halovu"
find . -type f -exec grep -r 'halovu' {} \;
				
			
Tìm kiếm file theo tên hoặc có phần mở rộng hoặc có kích thước
				
					#Tìm kiếm các file có phần mở rộng là *.html hoặc có tên bắt đầu bằng file00 hoặc những file có kích thước lớn hơn 2M
find . \( -name '*.html' -o -name 'file00*' -o -size +2M \)
				
			

Như vậy là các bạn đã đi cùng mình thực hiện những dòng lệnh “find” lý thú này. Trong bài viết không sao tránh khỏi những sai sót, mong các bạn có thể bỏ qua cũng như góp ý cho mình tại khung bình luận bên dưới.

Hẹn gặp lại các bạn trong những bài viết sau. 

See you soon!

0 0 votes
Article Rating
Nhận thông báo qua email
Nhận thông báo cho
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x