Nov 16

Lệnh find:
Đầu tiên là tìm kiếm theo tên file: sử dụng tùy chọn -name, tùy chọn này chấp nhận các kí tự thay thế (meta-characters) và các biểu thức chính quy ( regex – regular expressions )
find . -name ‘*.nt’
find . -name ‘[Ss]*.nt’

Lệnh đầu tiên có cùng mục đích là tìm các file có đuôi ‘.nt’ trong folder hiện tại, lệnh thứ 2 tìm các file có tên bắt đầu là ‘s’ hoặc ‘S’ và kết thúc bằng ‘.nt’. Có thể bỏ “.” (current directory) bởi mặc định find sẽ tìm kiếm trong folder này.
Nên để pattern trong ” ‘ ‘ ” (single quote) để việc tìm kiếm chính xác hơn.
Tìm kiếm theo tên file có thêm một tùy chọn khác là -iname, tùy chọn này không phân biệt chữ hoa chữ thường (case insensitive). Khi đó thì kiếm pattern ‘foo’ thì sẽ các kết quả “Foo, FOO, fOo,…” cũng sẽ được chấp nhận.

Thứ hai là tìm kiếm theo kiểu file (looking for files by type): sử dụng đối số -type và theo sau là 1 trong các từ sau:
d Directory
f File
l Symbolic Link

find -type l
Và tất nhiên là có thể kết hợp với -name option.
find /bin -type l -name ‘*grep*’

Tiếp theo là tìm kiếm theo dung lượng chiếm giữ ( looking for file by sizes ): đối số -size.
Khuyên dùng những dạng dễ đọc như “Killobytes” “Megabytes” “Gigabytes” tương đương với “k” “M” “G”
Ví dụ tìm kiếm các file trong $HOME có dung lượng từ 10MB đến 20M
find $HOME -size +10M -size -20M

Tìm kiếm file theo thời gian: Có 3 tùy chọn chính là -mtime -atime và -ctime
-mtime thì kiếm theo thời gian sửa đổi, tùy chọn này không phân biệt thời gian sửa đổi và thời gian tạo.
-atime thì kiếm theo thời gian truy cập, theo man thì -atime sẽ không làm tốt nếu sử dụng kiếm folder, lúc đó sẽ dùng -ctime để thay thế. Nhưng mình vẫn chưa thấy sự khác nhau của -atime và -ctime. Tạm thời phần time này ghi chú nhiêu đấy thôi, để sau này có phát hiện mới sẽ bổ sung vào.

Tìm kiếm file theo quyền: -perm
Ở đây mình chỉ cần nhớ về quyền tính theo số.
Cú pháp: find -perm xxxx
Với xxxx là quyền chính xác của file, nếu thêm dấu “-” (minus) đằng trước thì sẽ tìm tất cả các file có quyền thấp nhất là xxxx, nếu sử dụng “+” (plus) thì tìm các file với quyền cao nhất là xxxx.

Tìm kiếm theo chủ sở hữu ( owner ) và nhóm ( group ): -user -group
Có thể tìm kiếm theo tên, hoặc theo số ID.
Có thêm 2 tùy chọn nữa là -nouser và -nogroup để kiếm những file mà không có chủ quyền (có thể là do user đã bị xóa khỏi hệ thống).

Sự khác nhau giữa -execxargs là -exec thực thi lệnh mỗi khi tìm thấy còn xargs sẽ thực thi vài file trong mỗi lần xử lý. Tuy nhiên có thể xargs gặp vấn đề với filename có chứa khoảng trắng (space).
So sánh tìm kiếm file mới hơn 1 file nào đó được chỉ định: -newer
Các biểu thức:
() để nhóm các biểu thức.
! và -not có cùng công dụng, phủ định kết quả. -not không tuân theo chuẩn POSIX
-a -and , 2 biểu thức liên tiếp cách nhau bởi khoảng trắng, kết quả tìm kiếm phải đúng với cả 2 biểu thức
-o -or, kết quả tìm kiếm đúng 1 trong 2 biểu thức.

Lệnh locate:
Lệnh này dùng để tìm kiếm theo tên, nhanh hơn rất nhiều so với find do đã được index sẵn lúc khởi động, vì vậy các thay đổi gần đây chưa được index thì có thể sẽ hiển thị kết quả sai. Để kiếm chính xác hơn tính đến thời điểm hiện tại thì sử dụng lệnh updatedb.
Ví dụ để tìm các source file của c: locate *.c

Để biết thêm chi tiết vui lòng đọc manpage.

Tagged with:
Nov 13

Phân vùng đĩa cứng tốt cũng giúp nhiều trong việc bảo vệ dữ liệu của server.

Giả sử ở đây bạn có đĩa cứng với dung lượng 30 GB (thay đổi tùy theo dung lượng ổ cứng bạn có), kiểu phân vùng đề nghị như sau:

	Disk	Size	Type	Mountpoint
/	sda	1GB	Primary	/
swap	sda	1GB	Primary	n.a.
/usr	sda	2GB	Logical	/usr
/tmp	sda	1GB	Logical	/tmp
/var	sda	10GB	Logical	/var
/srv	sda	10GB	Logical	/srv
/home	sda	5GB	Logical	/home

Ta phải tách phần server khỏi hệ điều hành, vì lỡ có chương trình nào đó gặp trục trặc tạo ra hàng đống file lỗi, hoặc do bị những kẻ tấn công tạo hàng đống file rác, hệ điều hành sẽ bị hỏng. Do đó, phần dữ liệu (/srv, /home), và log (/var) cần được để ở phân vùng riêng với hệ thống (/usr, /etc…)….
Đây chỉ là bài đề nghị cách phân vùng, bạn có thể thay đổi phù hợp với nhu cầu thực tế của hệ thống của bạn.

Tagged with:
Nov 12

Trong ubuntu mặc định sử dụng trình soạn thảo nano. Cái này nghe nói dễ xài nhưng với mình thì không dễ chút nào nên mình phải chuyển qua thằng khác (ở đây mình chọn vim).

Mở termainal và gõ lệnh:

sudo update-alternatives –config editor

Nó sẽ liệt kê các trình soạn thảo có sẵn trong máy, lúc đó chỉ cần chọn số tương ứng với trình soạn thảo yêu thích của bạn.

There are 4 choices for the alternative editor (providing /usr/bin/editor).

Selection    Path                Priority   Status
————————————————————
* 0            /bin/nano            40        auto mode
1            /bin/ed             -100       manual mode
2            /bin/nano            40        manual mode
3            /usr/bin/vim.basic   30        manual mode
4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode.

Như vậy là sau này chỉnh sửa các file sử dụng trình soạn thảo mặc định của máy – ví dụ visudo – thì vim sẽ được gọi. Hoặc dùng lệnh editor thì vim cũng được gọi.

Thêm 1 cái nữa là crontab, nó lại sử dụng một lệnh để chọn trình soạn thảo riêng, khi sử dụng crontab -e nó sẽ gọi chương trình đó, để thay đổi ta dùng lệnh select-editor.

Trong terminal lại sử dụng mặc định là bộ lệnh của emacs, nếu bạn muốn chuyển sang bộ lệnh của vi thì dùng lệnh:

set -o vi

Để chuyển lại như cũ thì gõ lại:

set -o emacs

Vim là bộ soạn thảo rất mạnh, nếu nắm vững nó sẽ tiết kiệm rất nhiều thời gian. Nghe nói emacs cũng mạnh nhưng chưa thử lần nào.

Hi vọng sẽ hoàn thành được loạt bài giới thiệu về vim. Khá nhiều lệnh.

Tagged with:
preload preload preload