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

[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

2. Đặt điểm của /dev/null
/dev/null (còn gọi là “the null device”) là một file có đặt điểm là vứt bỏ (discards) mọi dữ liệu mà người dùng ghi vào trong nó (thường thông qua các lệnh chuyển hướng của shell hay các lệnh mv, cp,…). Và vì file này không lưu gì vào trong cả nên kết quả câu lệnh không xuất ra bất cứ cái gì.
Tuy nhiên, nếu bạn gõ sai lệnh hoặc lệnh không thể thực hiện, thì ouput thông báo vẫn sẽ được hiện ra ngoài màn hình:
thanhnt@Thanhnt:~$ sudo echo 'haha' > /dev/null
thanhnt@Thanhnt:~$ grep -k 'haha' > /dev/null
grep: invalid option -- 'k'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
Người ta xem như nó là một “lỗ đen” trong máy tính, có tác dụng thu nhận mọi thứ và không giới hạn, nhưng không trả lại cái gì cả

3. Ưu điểm  và sử dụng.
- Các gói tin nào không phù hợp thường được firewall chuyển vào trong /dev/null.
- Trong các chương trình bắt buộc phải có đầu ra dữ liệu, nhưng vì bảo mật bạn không muốn nó xuất hiện các thông tin đầu ra ví dụ .bash_history của root thì cũng có thể dùng /dev/null.
...................

Vậy ta có thể kết luận:
/dev/null là một cái thùng rác vô tận và rất có ích. :D

                                                                --- Thanks for reading ---

2 nhận xét:

  1. > Nếu bạn gõ sai lệnh hoặc lệnh không thể thực hiện, thì ouput thông báo sẽ được hiện ra ngoài màn hình:

    không hiểu mục đích chỗ này muốn nói gì?

    Có phải muốn:

    thanhnt@Thanhnt:~$ grep -k 'haha' 2> /dev/null
    ?


    For fun: http://devnull-as-a-service.com/

    Trả lờiXóa
  2. hôm trc, mình dùng firefox trong thư mục home của mình luôn xuất hiện file

    "C:\nppdf32Log\debuglog.txt" mà lại trên ubuntu (thấy lạ)

    gúc gồ thì biết phải vào file /opt/Adobe/Reader9/Browser/intellinux/nppdf.so

    thay "C:\nppdf32Log\debuglog.txt" thành "/dev/null"

    cứ làm theo, chả hiểu /dev/null là gì

    hôm nay mới biết!

    Trả lờiXóa