Thứ Sáu, 31 tháng 10, 2014

[CLI] DU - Kiểm soát dung lượng folder/file.

Bài viết thưcj hiện trên:
thanhnt@Thanhnt:~$ lsb_release -r
Release:    12.04
DU là gì?
NAME
       du - estimate file space usage
DU là viết tắt của Disk Usage.
Hiểu một cách đơn giản, du command lines được sử dụng để kiểm tra Disk đã được sử dụng bao nhiêu dung lượng, dung lượng các file hoặc các file trong một thư mục....

 SYNOPSIS.
       du [OPTION]... [FILE]...
       du [OPTION]... --files0-from=F


[Linux] /dev/null - thùng rác vô tận.

Bạn đang sử dụng linux? chắc hẳn bạn đã nghe và sử dụng nhiều cụm từ /dev/null ? Vậy bạn đã bao giờ tự hỏi /dev/null là gì?
Bài viết này nêu nên một số vấn đề cơ bản về /dev/null.

1. /dev/null là một file, một file rất đặc biệt.
Trong linux, mọi thứ đều là file.
Đây là một điều rất cơ bản và quan trọng. Và theo định nghĩa về file:
” a block of arbitrary information, or resource for storing information”
Để kiểm tra, ta có thể gõ:

thanhnt@Thanhnt:~$ ls -la /dev/null
crw-rw-rw- 1 root root 1, 3 Oct 31 13:51 /dev/null

[CLI] command lines láp sờ nháp.

Bài viết này có mục đích lưu lại tên các lệnh tình cờ gặp hoặc các lệnh chưa được viết một cách chi tiết.

1. Head.
lệnh head in 10 dòng đầu tiên của một file ra màn hình.
in n dòng :
head -n filename

Thứ Năm, 30 tháng 10, 2014

[CLI] Sed - a stream editor.

Bài viết thực hiện trên:
thanhnt@Thanhnt:~$ lsb_release -r
Release:    12.04
Sed là gì?
NAME
       sed - stream editor for filtering and transforming text
Sed là viết tắt của stream editor.
Như bạn đã thấy, sed là một stream editor, một editor đặc biệt, có thể tìm kiếm và thay đổi một file một cách linh hoạt.

Một số câu lệnh với sed.

Stream là gì?

Với mình stream là một khái niệm khá mù mờ, dù đã đọc các tài liệu trên mạng, nhưng có thể tiếng anh chưa đủ trình nên... :D, nên nay quyết đi hỏi cho rõ ràng.
Tra từ điển em nó ra như thế này:
 
Trong video có kĩ thuật streaming, live stream là một kĩ thuật truyền tải hình ảnh 1 cách suôn sẻ, rành mạch, liên tục, ko đứt quãng ....
Ngoài ra còn có một số khái niệm như stream editor ...
Vậy ta có thể rút ra rằng, có thể hiểu stream ngắn gọn là:
stream - dòng dữ liệu, tín hiệu .... được truyền liên tục không đứt quãng.
Hết.
Thắc mắc dừng lại ở đây. Mong các bác cho ý kiến :D

Thứ Tư, 29 tháng 10, 2014

[CLI] Awk - phân tích text file và scaning pattern.

Bài viết thực hiện trên:
thanhnguyen@thanhnguyen:~$ lsb_release -r
Release: 12.04
AWK là gì?
Awk là một Programming language, nhằm mục đích xử lý các text file và scaning pattern ( quét mẫu). Ta có thể kết hợp awk với shell script hoặc sử dụng trực tiếp với command lines.

Awk làm việc như thế nào?
Awk phân tích mỗi dòng thành các trường (fields). Thông thường, các trường được phân cách với nhau bởi các spaces (tuy nhiên, bạn có thể thay đổi điều này với option -F).
$0 là toàn bộ các trường (cả dòng).
$1 là trường thứ nhất.
$2 là trường thứ 2.

Cú pháp.
Dạng cú pháp cơ bản của Awk là:
mẫu_1 { câu lệnh_1 };
mẫu_2 { câu lệnh_2 };
............

Một số câu lệnh với awk thường dùng:

1. In một file ra màn hình.
awk '{ print }' filename
hoặc:
awk '{ print $0 }' filename
2. In một trường bất kì của một dòng:
echo $line |awk '{ print $n }'
ví dụ:
$ echo một hai | awk '{print $1}' # sẽ cho ra:
một
3. Đối chiếu với một mẫu.
ví dụ hiển thị tất cả dòng từ file log của Apache nếu HTTP error code bằng 500 ( trường thứ 9 ($9) là logs status error code cho mỗi yêu cầu http ):
awk '$9 == 500 { print $0}' /var/log/httpd/access.log
hoặc:
cat /var/log/httpd/access.log | awk '$9 == 500 { print $0}'
4. In ra các dòng có từ aaa hoặc bbb trong một file.
awk '/aaa|bbb/' filename
5. Bạn cũng có thể dùng các các mệnh đề điều kiện với awk.
Ví dụ, kiểm tra một field thỏa mãn một điều kiện với if clause trước khi in nó ra.
awk '{if ($3 < 1980) print $3, " ",$5,$6,$7,$8}' filename
Một ví dụ khác:

trong ví dụ trên, chúng ta đã thấy được rằng, nếu muốn in ra nhiều trường cùng một lúc, bạn có thể ngăn cách chúng bởi các dấu ',' và khi in ra, chúng tương đương với 1 space. Khi không được ngăn cách với ',' chúng sẽ in liền sát nhau.
Nếu bạn muốn tăng khoảng cách, hoặc đặt các kí tự như ',', ..in ra giữa các trường, hãy đặt vào giữa chúng các space, hoặc các kí tự đó vào trong " " như trong ví dụ sau:


6. In ra nội dung bất kì của một file.
# In ra số dòng của một file.
awk 'END { print NR}' filename
# In ra dòng cuối của file.
awk 'END { print NR," ", $0}' filename
# In ra dòng n bất kì trong một file.
awk '{if (NR==n) print $0}' filename
awk "NR==n{print;exit}" filename

Trong ví dụ trên, ta có thể dễ dàng nhận ra rằng NR chỉ thứ tự của các dòng.

Để tìm hiểu thêm:
man awk
Bài viết chỉ nêu ra một vài ví dụ cơ bản với awk, rất mong nhận được sự đóng góp của các bạn để bổ xung thêm các trường hợp còn thiếu, giúp bài viết được hoàn thiện và hữu ích. Thanks all.

                                                                                        --- Thanks for reading ---