Khi sử dụng hệ điều hành Unix/Linux, việc quản lý file là một kỹ năng quan trọng mà mọi lập trình viên cần nắm vững. Hệ điều hành này không chỉ nổi bật bởi tính ổn định và hiệu suất mà còn bởi cấu trúc quản lý file và thư mục logic. Bài viết này sẽ hướng dẫn chi tiết cách quản lý file trong môi trường Unix/Linux, từ cấu trúc thư mục đến các lệnh quan trọng mà bạn cần nắm được.
1. Cấu trúc thư mục trong Unix/Linux
Cấu trúc thư mục trong Unix/Linux được tổ chức theo một cấu trúc cây gọi là hệ thống file.
Khi làm việc với Unix, người dùng thường tương tác chủ yếu với các file. Dưới đây là một số thư mục quan trọng mà bạn cần chú ý:
/bin: Chứa các lệnh cơ bản được sử dụng bởi tất cả người dùng.
/etc: Nơi lưu trữ các file cấu hình hệ thống.
/home: Thư mục cá nhân của người dùng.
/var: Chứa dữ liệu thay đổi thường xuyên.
Mỗi thư mục đều đóng vai trò quan trọng trong việc duy trì và quản lý hệ thống. Việc hiểu rõ cấu trúc thư mục này sẽ giúp người dùng và quản trị viên hệ thống tương tác một cách hiệu quả.
>>> Xem thêm các bài viết về Unix/Linux
Quản lý tiến trình trong Unix/Linux
Điều khiển vòng lặp trong Unix/Linux
2. Các lệnh cơ bản quản lý file trong Unix/Linux
2.1. Hiển thị danh sách file và thư mục
Lệnh ls
là một trong những lệnh đơn giản nhất nhưng cực kỳ hữu ích. Nó được sử dụng để liệt kê nội dung của thư mục hiện tại hoặc một thư mục cụ thể.
Cú pháp:
$ ls [tùy chọn] [đường dẫn]
Tùy chọn | Miêu tả |
- | File thường chẳng hạn như một file văn bản ASCII, nhị phân hoặc đường link cứng. |
b | Nhóm file đặc biệt. nhóm file thiết bị đầu vào/đầu ra ví dụ như một đĩa cứng vật lý. |
c | File ký tự đặc biệt. File thiết bị đầu vào/đầu ra thô ví dụ như một đĩa cứng vật lý. |
d | Là thư mục mà chứa một danh sách các file và thư mục khác. |
l | File liên kết ký tự. Kết nối trên bất kỳ một file thường nào. |
p | Pipe được đặt tên. Một cơ cấu để giao tiếp liên tiến trình. |
s | Socket được sử dụng cho giao tiếp liên tiến trình. |
Ví dụ:
$ ls -l
Hiển thị thông tin chi tiết về file và thư mục bao gồm quyền truy cập, số liên kết, tên chủ sở hữu, tên nhóm, kích thước, ngày sửa đổi và tên.
$ ls -d
Hiển thị thông tin về thư mục chứa, không hiển thị nội dung của thư mục.
2.2. Sao chép file hoặc thư mục
Lệnh cp
dùng để sao chép file hoặc thư mục từ một vị trí đến vị trí khác.
Cú pháp:
$ cp [tùy chọn] nguồn đích
Ví dụ:
$ cp file.txt /đường/dẫn/mục-đích
2.3. Di chuyển/Đổi tên file hoặc thư mục
Lệnh mv
được sử dụng để di chuyển file hoặc thư mục từ một vị trí đến vị trí khác hoặc đổi tên chúng.
Cú pháp:
$ mv [tùy chọn] nguồn đích
Ví dụ:
$ mv file.txt /đường/dẫn/mục-đích
2.4. Xóa file hoặc thư mục
Lệnh rm
được sử dụng để xóa file hoặc thư mục. Lưu ý rằng nó là một lệnh mạnh mẽ và không có tính năng khôi phục.
Cú pháp:
$ rm [tùy chọn] tên-file-thư-mục
Ví dụ:
$ rm file.txt
3. Quyền truy cập và thay đổi quyền trong Unix/Linux
Trong hệ điều hành Unix/Linux, quyền truy cập (permissions) đóng một vai trò quan trọng trong việc bảo vệ dữ liệu và hệ thống. Các quyền truy cập xác định ai có quyền thực hiện các hành động như đọc, ghi, hoặc thực thi trên file hoặc thư mục.
3.1. Quyền truy cập cơ bản
Trong Unix/Linux, có 3 loại quyền truy cập cơ bản cho mỗi file hoặc thư mục:
Read (r): Cho phép đọc nội dung của file hoặc xem danh sách các file trong thư mục.
Write (w): Cho phép sửa đổi, thêm mới hoặc xóa file trong trường hợp thư mục.
Execute (x): Cho phép chạy file (đối với file thực thi) hoặc truy cập vào thư mục.
3.2. Chủ sở hữu, nhóm và người dùng khác
Mỗi file và thư mục có quyền truy cập riêng cho chủ sở hữu (owner), nhóm (group), và người dùng khác (others).
Chủ sở hữu (owner): Người sở hữu file hoặc thư mục, người tạo ra chúng.
Nhóm (group): Nhóm mà file hoặc thư mục thuộc về. Nhiều người dùng có thể thuộc cùng một nhóm.
Người dùng khác (others): Tất cả những người dùng khác không thuộc chủ sở hữu hoặc nhóm.
3.3. Thay đổi quyền truy cập
Bằng cách sử dụng lệnh chmod
sẽ giúp bạn thay đổi quyền truy cập của file hoặc thư mục mà bạn mong muốn.
Cú pháp:
$ chmod [quyền] [tên-file-thư-mục]
Trong đó, quyền có thể được biểu diễn theo dạng số hoặc biểu diễn mô tả.
Ví dụ:
Biểu diễn theo dạng số: $ chmod 755 file.txt
(7 = rwx, 5 = r-x, 5 = r-x)
Biểu diễn mô tả: $ chmod u=rwx,g=rx,o=rx file.txt
Biểu diễn số thường được sử dụng để thay đổi quyền truy cập bằng cách sử dụng ba chữ số. Mỗi chữ số đại diện cho quyền của một nhóm (owner, group, others) theo thứ tự: read (4), write (2), execute (1). Các quyền cộng lại để tạo ra một số từ 0 đến 7.
Ví dụ:
$ chmod 764 file.txt
Chủ sở hữu có quyền rwx (4+2+1), nhóm có quyền rw- (4+2), người dùng khác có quyền r– (4)
4. Một số lệnh hữu ích giúp quản lý file trong Unix/Linux
4.1. Tìm kiếm file và thư mục
Lệnh find
giúp bạn tìm kiếm file và thư mục dựa trên các tiêu chí nhất định như tên file, loại file, kích thước, v.v.
Cú pháp:
$ find [đường-dẫn] -name [tên-file]
Ví dụ:
$ find /home/user -name "file.txt"
4.2. Tìm kiếm nội dung trong file
Lệnh grep
tìm kiếm các dòng trong file có nội dung khớp với một chuỗi cụ thể.
Cú pháp:
$ grep "chuỗi-tìm-kiếm" [tên-file]
Ví dụ:
$ grep "error" log.txt
4.3. Hiển thị nội dung của một file
Lệnh cat
có thể giúp bạn quan sát nội dung của file.
Cú pháp:
$ cat [tùy chọn] [tên-file]
Ví dụ:
$ cat file.txt
Bạn có thể thêm tùy chọn -b
để hiển thị thêm số dòng của file.
Ví dụ:
$ cat -b file.txt
4.4. Tạo một file hoặc một thư mục
Lệnh mkdir
giúp tạo một file hoặc một thư mục mà bạn muốn.
Cú pháp:
$ mkdir tên-thư-mục
Ví dụ:
$ mkdir documents
Tổng kết
Trên đây là tổng quan về cách quản lý file trong Unix/Linux và các lệnh cơ bản giúp bạn dễ dàng thao tác và quản lý chúng trong hệ điều hành của mình. Hãy lưu ý về cách quản lý quyền truy cập của các thư mục vì việc hiểu rõ về nó sẽ giúp bảo vệ dữ liệu và duy trì an toàn cho hệ thống của bạn.
>>> Xem thêm các bài tại đây:
DNS là gì? Các loại DNS phổ biến và cách sử dụng
Hướng dẫn cài đặt k8s Kubernetes Cluster
Cài đặt cấu hình cân bằng tải với HaProxy và Docker
Stringee Communication APIs là giải pháp cung cấp các tính năng giao tiếp như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài CSKH cho phép tích hợp trực tiếp vào ứng dụng/website của doanh nghiệp nhanh chóng. Nhờ đó giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.
Bộ API giao tiếp của Stringee hiện đang được tin dùng bởi các doanh nghiệp ở mọi quy mô, lĩnh vực ngành nghề như TPBank, VOVBacsi24, VNDirect, Shinhan Finance, Ahamove, Logivan, Homedy, Adavigo, bTaskee…
Quý bạn đọc quan tâm xin mời đăng ký NHẬN TƯ VẤN TẠI ĐÂY: