[Linux]: Hệ thống tệp tin linux

Bài viết sẽ đề cập tới hệ thống tệp tin trên Linux và các lệnh cơ bản thao tác với tệp.

1. Tồng quan về hệ thống tệp trên Linux

Trước hết hãy xem xét qua các thư mục của Ubuntu có gì nào:

1
2
3
4
5
6
7
8
9
10
/ (thư mục gốc)
– /bin : thư mục tệp chương trình cơ bản
– /boot : thư mục chứa hạt nhân của HĐH
– /etc : thư mục các tệp cấu hình
– /dev : thư mục các tệp thiết bị
– /home : thư mục chứa dữ liệu NSD
– /lib : thư viện hệ thống
– /usr : thư mục ứng dụng
– /var : thư mục dữ liệu cập nhật
– /proc

Tính đặc thù các tập tin của Linux

  • Quản lý dưới một khung nhìn của tệp cho cả thư mục và các loại tài nguyên hệ thống (ngoại vi, bảng phân chương đĩa).
  • Không có khái niệm phần mở rộng của tên tệp (kí tự '.' trong tên tệp được đối xử như mọi kí tự khác
  • Không dùng ổ đĩa logic trong cây thư mục.
  • '/' được dùng thay cho '\' trong đường dẫn thư mục

2. Lệnh cơ bản quản lý thư mục

Dăm ba lệnh thường dùng:

  • pwd
  • cd
  • ls –la [tên thư mục]
  • mkdir [-p] [tên thư mục mới]
  • rmdir [tên thư mục rỗng]

Các siêu kí tự:

  • * dùng để thay thế cho một chuỗi kí tự bất kì bao gồm cả xâu rỗng.
  • ? thay thế cho một kí tự bất kì.
  • [ ] được thay thế bởi một kí tự trong một tập kí tự cho trước.
  • [! ] được thay thế bởi một kí tự không có trong một tập kí tự cho trước.
1
2
3
4
5
6
7
8
9
10
$ ls -l *.[c,h]
-rw-r--r-- 1 tuananh user1 2451 Feb 7 07:30 myprog.c
-rw-r--r-- 1 tuananh user1 2451 Feb 7 07:30 myprog.h
$ ls -l *prog
drwxr-xr-- 2 tuananh user1 512 Feb 10 19:12 c_prog
drwxr-xr-- 2 tuananh user1 512 Feb 10 19:12 java_prog
$ ls -l .*
-rw-r--r-- 1 tuananh user1 451 Feb 7 07:30 .bashrc
-rw-r--r-- 1 tuananh user1 225 Feb 7 07:30 .bash_profile
-rw-r--r-- 1 tuananh user1 351 Feb 7 07:30 .bash_logout

3. Quản lý tệp

$cp file1 [...] dir: sao chép một hoặc nhiều tệp vào một thư mục.

$mv file1 [...] dir: di chuyển một hoặc nhiều tệp đến một thư mục.

$rm file1 [...].

  • Xoá một hoặc nhiều tệp
  • Khi sử dụng rm, nên có tùy chọn i để xác nhận có xóa tệp hay không (sẽ được confirm để tránh xóa nhầm)
  • $rf -rfi dir: xóa thư mục
  • Tuỳ chọn -R (recursive): sử dụng khá nhiều đó :D: cho phép sao chép/di chuyển/xoá toàn bộ thư mục bao gồm cả các thư mục con

4. Đọc nội dung file

4.1. Đọc nhanh một file, với các file không quá lớn

  • cat: xem nhanh một tệp
    (Dùng cho file nhỏ, xem nhanh thì lệnh này có vẻ OK)

4.2. Đọc file theo dòng, xem các dòng đầu hoặc các dòng cuối đối với file lớn

more: xem từng dòng.

tail: xem cuối tệp.

head: xem đầu tệp.

  • Với tailhead thì dùng để xem số dòng với tùy chọn -n
  • tail -n 10 result.txt => xem 10 dòng cuối file
  • Khi sử dụng tail, có tùy chọn -F theo dõi file thay đổi trực tiếp. Cái này cực kì hữu ích mỗi khi bạn đọc log của 1 hệ thống.

tail -F log_11_11_2019.txt.

vim, nano: có nhiều người giới thiệu less, tôi thấy vimnano lại thông dụng hơn =)). Vim khá hiệu quả, được tối ưu để mở các file có kích thước lớn (như không load hết nội dung cả file đó mà chỉ load các phần cần đọc, tối ưu xử lý).

4.3. Tạo, cập nhật

touch: tạo tệp mới, cập nhật tệp cũ

4.4. Output stdout to file

Ghi kết quả output của một lệnh ra file:

echo noi dung > [tên tệp]: xóa đi ghi lại nội dung vào file.

echo noi dung >> [tên tệp]: ghi thêm nội dung vào cuối file.

tail -n 10 result.txt >> new_result.txt: lấy nội dung 1 dòng cuối của file result cho vào file new_result.txt

Author

Ming

Posted on

2019-11-17

Updated on

2021-04-10

Licensed under

Comments