Làm việc với các tệp tin thông qua cửa sổ terminal là một kỹ năng tối quan trọng mà bất kỳ ai sử dụng Linux cũng cần phải nắm vững. Bài hướng dẫn dưới đây sẽ giúp bạn hiểu rõ bản chất của hệ thống lưu trữ trên Linux, đồng thời bỏ túi những thủ thuật dùng lệnh để khởi tạo tệp tin một cách nhanh chóng và chuyên nghiệp.

1. File trong Linux là gì?
Trên nền tảng Linux, tệp tin (file) chính là đơn vị cơ bản nhất dùng để lưu giữ dữ liệu. Triết lý thiết kế của hệ điều hành này quy định “mọi thứ đều là một tệp tin”. Hàng loạt các tệp sẽ được gom chung vào các thư mục (directory). Kế tiếp, những thư mục này lại được sắp xếp theo một hệ thống phân cấp hình cây, gọi chung là hệ thống tập tin (filesystem).
Bên cạnh các dạng dữ liệu quen thuộc như hình ảnh, văn bản hay mã nguồn phần mềm, khái niệm “tệp tin” trong Linux còn bao trùm luôn cả các phân vùng ổ đĩa, các thư mục và thậm chí là các driver điều khiển linh kiện phần cứng.
2. 06 định dạng tệp tin cơ bản trong Linux
Trước khi thực hành gõ lệnh, bạn cần nắm rõ đặc thù của các định dạng tệp mà Linux đang hỗ trợ. Hiện nay, hệ thống này phân chia dữ liệu thành 06 nhóm chính:
- Tệp tin thông thường (Regular file): Đây là loại file phổ thông nhất, đảm nhận việc chứa nội dung thực tế như ảnh, video, âm thanh, văn bản hay các đoạn script. Điểm thú vị là trên Linux, nhóm file này có thể hoạt động bình thường dù bạn có đặt phần đuôi mở rộng (extension) cho nó hay không.
- Tệp tin thư mục (Directory file): Cơ sở dữ liệu của bạn được phân cấp gọn gàng là nhờ nhóm tệp này. Thay vì chứa nội dung trực tiếp, thư mục bản chất là những file đặc biệt chuyên lưu trữ tên và địa chỉ vị trí của các tệp tin con nằm bên trong nó.
- Tệp tin liên kết (Link file): Chức năng của loại tệp này giống như một lối tắt (shortcut) trỏ về một file gốc đang nằm ở khu vực khác. Chúng được chia làm hai phân nhánh: liên kết cứng (hard link) và liên kết mềm/tượng trưng (symbolic link).
- Tệp tin đặc biệt (Special file): Toàn bộ linh kiện vật lý (máy in, màn hình, ổ CD/DVD, ổ cứng…) đều được Linux nhận diện dưới dạng các tệp đặc biệt và gom chung vào đường dẫn
/dev. Nhóm này tiếp tục được chia nhỏ thành hai dạng: tệp xử lý theo ký tự (character) và tệp xử lý theo khối (block). - Tệp tin Socket: Khi các phần mềm cần “nói chuyện” và truyền tải dữ liệu cho nhau (hoặc kết nối với máy khách từ xa), chúng sẽ dùng tới socket. Mỗi socket luôn gắn liền với một cổng (port) và một địa chỉ IP nhất định để sẵn sàng đón nhận các kết nối đầu vào.
- Tệp tin Pipe đích danh (Named pipe file): Thường được gọi là file FIFO (Vào trước ra trước). Loại tệp này cực kỳ đặc biệt vì phần lõi Kernel chỉ xử lý chúng trên bộ nhớ tạm mà không hề ghi dữ liệu vật lý xuống ổ cứng. Chúng có thể được đặt ở bất cứ đâu trên hệ thống phân cấp.
Linux phân thành 6 loại file chính. Mỗi loại có ký hiệu riêng khi bạn chạy ls -l:
| Loại file | Ký hiệu | Mô tả |
|---|---|---|
| Regular file | - |
File thông thường: văn bản, ảnh, script, binary. Có thể có hoặc không có extension. |
| Directory file | d |
Thư mục — lưu tên và vị trí của các file bên trong, không lưu dữ liệu trực tiếp. |
| Link file | l |
Con trỏ tới file khác. Có hai dạng: hard link (cùng inode) và symbolic link (trỏ theo đường dẫn). |
| Special file | c hoặc b |
Đại diện cho thiết bị phần cứng. Character device (c) xử lý từng byte, block device (b) xử lý theo khối. Nằm trong /dev. |
| Socket file | s |
Điểm giao tiếp giữa các tiến trình hoặc giữa client và server cục bộ. Mỗi socket gắn với địa chỉ IP và số port. |
| Pipe file (FIFO) | p |
Kernel xử lý luồng dữ liệu theo kiểu First In First Out. Tồn tại ở bất kỳ đâu trong filesystem mà không ghi vào đĩa theo nghĩa thông thường. |
3. Điều kiện tiên quyết
Bạn cần có quyền truy cập vào terminal Linux. Nếu chưa có máy Linux, có 3 cách phổ biến để thực hành ngay:
- Cài một bản phân phối Linux (Ubuntu, Debian, Fedora…) trực tiếp hoặc qua máy ảo.
- Dùng WSL (Windows Subsystem for Linux) trên Windows 10/11 — gõ
wsltrong PowerShell là có ngay terminal Ubuntu. - Dùng Replit (replit.com) — tạo project Bash, terminal mở ngay trong trình duyệt, không cần cài gì.
Sau khi có terminal, kiểm tra thư mục hiện tại bằng pwd và liệt kê file bằng ls trước khi bắt đầu.
4. 9 Cách tạo File Linux bằng dòng lệnh
Lệnh 1 touch — Tạo nhanh file rỗng hoặc nhiều file cùng lúc
Hầu hết các bản phân phối Linux đều tích hợp sẵn tiện ích touch. Công năng nguyên bản của lệnh này là để cập nhật lại các siêu dữ liệu về thời gian của tệp (chẳng hạn như mốc thời gian truy cập hay chỉnh sửa cuối cùng). Dù vậy, touch lại được giới lập trình viên dùng chủ yếu để sinh ra một file rỗng hoàn toàn. Lưu ý, nếu tên file bạn định tạo đã có sẵn trong máy, lệnh này sẽ không ghi đè mất dữ liệu mà chỉ làm mới lại ngày giờ sửa đổi của file đó.
Để tạo một tệp tại vị trí hiện tại, bạn gõ:
Tạo một file:
touch filename.txt
Tạo nhiều file trong một lệnh:
touch filename1.txt filename2.txt filename3.txt
Tạo dãy file đánh số tự động từ 1 đến 10:
touch test_{1..10}.txt
Tạo dãy file theo bảng chữ cái từ a đến j:
touch test_{a..j}.txt
Kiểm tra kết quả:
ls
Một số cờ (option) hữu ích đi kèm với touch:
--version (hoặc -v): Xem thông tin phiên bản của công cụ.
--help: Mở bảng hướng dẫn sử dụng.
-a: Cập nhật lại mốc thời gian truy cập tệp.
-m: Cập nhật lại mốc thời gian sửa đổi tệp.
-no-dereference (hoặc -h): Chỉnh sửa mốc thời gian cho một file liên kết mềm.
-c (hoặc --no-create): Bỏ qua việc tạo file mới nếu phát hiện file chưa tồn tại.
--date=<string> (hoặc -d=<string>): Ép thời gian của tệp tuân theo một chuỗi ngày do bạn tự định nghĩa.
--reference=<file> (hoặc -r=<file>): Sao chép mốc thời gian từ một file mẫu sang.
-t<stamp>: Thiết lập mốc thời gian theo định dạng ngày/giờ cụ thể.
Do touch không hỗ trợ chèn văn bản, nó là công cụ hoàn hảo nhất để tạo nháp hàng loạt tệp trước khi bạn đi vào chỉnh sửa chi tiết.
touch phù hợp khi bạn cần tạo nhiều file placeholder để điền nội dung sau — ví dụ chuẩn bị cấu trúc dự án. Nó không mở editor nên không thể gõ nội dung trực tiếp.Lệnh 2 Toán tử chuyển hướng > — Tạo file rỗng hoặc ghi đè
Ký tự dấu lớn hơn (>) thường đóng vai trò đẩy kết quả của một lệnh nào đó vào trong tệp tin. Tuy nhiên, đứng độc lập, nó cũng có khả năng đẻ ra một tệp tin trống trơn:
> filename.txt
Lệnh 3 cat — Tạo file và nhập nội dung trực tiếp từ terminal
Dù nổi tiếng với khả năng đọc và ghép nối nội dung các file văn bản, cat hoàn toàn có thể biến hình thành một trình soạn thảo mini ngay trên Terminal. Để khởi tạo và viết dữ liệu, bạn gõ:
cat > cat.txt
Tiếp theo, hãy gõ đoạn văn bản dưới đây và ấn Enter:
This file has been created with cat command
Để lưu lại và thoát chế độ nhập, bạn bấm tổ hợp Ctrl + D. Cuối cùng, để xem thành quả, hãy gọi lại lệnh:
cat cat.txt
Lệnh 4 echo — Tạo file với một dòng văn bản cụ thể
Thông thường, echo có nhiệm vụ in ra màn hình Terminal những gì bạn ra lệnh. Nhưng khi kết hợp với toán tử điều hướng, nó sẽ sinh ra một file mới có chứa (hoặc không chứa) dữ liệu.
Tạo file rỗng:
echo -n > filename.txt
Tạo tệp và nhúng sẵn một dòng chữ vào trong:
echo "File text" > filename.txt
$, !, bash sẽ interpret chúng theo nghĩa khác.Lệnh 5 printf — Tạo file nhiều dòng với định dạng tùy chỉnh
Hoạt động khá giống echo, tuy nhiên printf cung cấp bộ khung tùy biến văn bản sâu hơn. Giả sử bạn muốn khởi tạo một file chứa sẵn cấu trúc văn bản chia làm hai dòng, hãy dùng cú pháp:
Tạo file hai dòng:
printf 'Some text\nSome more text' > filename.txt
Hoặc theo cú pháp nhiều dòng:
printf 'Some text
Some more text' > filename.txt
Khi cần tạo file config template hoặc file CSV đơn giản từ dòng lệnh, printf cho kết quả chính xác hơn echo nhờ format specifier.
Lệnh 6 fallocate — Tạo file có kích thước cố định
fallocate cấp phát không gian đĩa cho file ngay lập tức mà không cần ghi dữ liệu thực vào từng byte. Đây là lệnh dùng khi cần tạo file giả định kích thước cụ thể — thường phục vụ kiểm tra tốc độ ghi ổ cứng hoặc test giới hạn dung lượng.
fallocate -l 10MB filename
filename” là tên tệp bạn muốn đặt. Tham số -l yêu cầu hệ thống cấp phát một không gian cụ thể, và 10MB chính là kích thước file. Tùy theo nhu cầu, bạn có thể thay MB thành các đơn vị khổng lồ như TB, GB, hoặc dùng chữ M để biểu diễn chuẩn mebibyte.Lệnh 7 vim — Trình soạn thảo terminal đầy đủ tính năng
Vim (Vi IMproved) là trình soạn thảo văn bản mạnh nhất trong nhóm này. Gõ tên file sau lệnh vim để mở — nếu file chưa tồn tại, vim tự tạo khi bạn lưu:
vim filename.txt
Vim khởi động ở Normal mode — không thể gõ văn bản ngay.
Giao diện Vim xuất hiện, bạn phải bấm phím I (Insert) mới có thể gõ chữ. Sau khi soạn xong, ấn nút Esc để thoát chế độ nhập liệu, gõ cụm :wq và kết thúc bằng phím Enter để ghi đè và đóng ứng dụng.
Lệnh 8 vi — Phiên bản gốc có trên mọi hệ thống Unix/Linux
Vi là tiền thân của Vim, có mặt trên hầu hết mọi hệ thống Unix và Linux kể cả những bản tối giản nhất. Cú pháp giống Vim:
vi vi.txt
Nhấn i để vào Insert mode và bắt đầu nhập. Khi xong, nhấn Esc rồi gõ :wq để lưu và thoát.
Vi không có các tính năng nâng cao như syntax highlighting hay plugin như Vim. Dùng vi khi SSH vào server không cài sẵn vim hoặc nano.
Lệnh 9 nano — Trình soạn thảo terminal thân thiện nhất cho người mới
Nếu Vim hay Vi quá phức tạp, GNU nano chính là cứu cánh tuyệt vời bởi giao diện trực quan và dễ tiếp cận hơn. Mở Nano để tạo file bằng câu lệnh:
nano filename.txt
Tại đây, bạn cứ gõ văn bản tự do như dùng Word. Hoàn thành xong, hãy dùng tổ hợp Ctrl + S để lưu trữ dữ liệu và Ctrl + X để quay lại cửa sổ dòng lệnh.
Tóm lại, hệ sinh thái Linux trao cho bạn quyền kiểm soát vô tận đối với tệp tin, từ việc click chuột qua các thư mục đồ họa cho đến việc ứng biến linh hoạt qua hàng loạt tập lệnh mạnh mẽ trên Terminal.
Đang cần VPS tốc độ cao để thực hành?
InterData cung cấp VPS hiệu năng cao với SSD/NVMe với đa dạng hệ điều hành Ubuntu, CentOS, Debian,… — deploy trong vài phút, full root access, uptime cao. Thực hành các lệnh Linux trực tiếp trên môi trường thật, không lo lag hay giới hạn tài nguyên phù hợp chạy web, deploy ứng dụng, và thực hành Linux hàng ngày.
5. FAQ — Câu hỏi thường gặp
Tạo file trên Linux có cần quyền root không?
Không nhất thiết. Bạn chỉ cần quyền ghi (write permission) vào thư mục đích. Trong thư mục home của chính mình (~/), user thường có đầy đủ quyền. Chỉ khi tạo file trong /etc, /usr, hay các thư mục hệ thống mới cần sudo.
Sự khác nhau giữa touch và > khi tạo file?
touch an toàn hơn: nếu file đã tồn tại, nó chỉ cập nhật timestamp, không xóa nội dung bên trong. Còn > ghi đè hoàn toàn — file cũ có bao nhiêu nội dung cũng bị xóa sạch. Khi không chắc file có tồn tại chưa, dùng touch.
Làm sao tạo file ẩn trên Linux?
Đặt tên file bắt đầu bằng dấu chấm. Ví dụ: touch .env hoặc touch .gitignore. File ẩn không hiện trong ls thông thường, cần dùng ls -a để thấy.
Tạo file trong thư mục chưa tồn tại được không?
Không được trực tiếp. Bạn cần tạo thư mục trước bằng mkdir -p /đường/dẫn/ rồi mới tạo file bên trong. Hoặc dùng một lệnh kết hợp trong script.
fallocate tạo file nhanh hơn dd như thế nào?
fallocate chỉ báo với kernel cấp phát block trên đĩa chứ không thực sự ghi dữ liệu — nên tạo file 1GB mất chưa đến 1 giây. dd ghi từng byte thực vào đĩa, tốn thời gian tỷ lệ với kích thước file. Để benchmark tốc độ ghi thực sự, dùng dd. Để tạo file placeholder kích thước lớn nhanh, dùng fallocate.
