BÀI VIẾT

Hướng dẫn các lệnh cơ bản về quản lý tập tin trong Linux

4.3K
author Huỳnh Đình Hiếu - 2022-08-05 16:37:21 (GMT+7)

Giới thiệu

Trên Linux chúng ta quản lý file và thư mục bằng dòng lệnh, trong bài viết này sẽ hướng dẫn chúng ta các lệnh quản lý file cơ bản sẽ giúp chúng ta tạo và quản lý các file trên hệ thống.

Tổng quan về file trên hệ thống linux

File thông thường.

Đây là loại file phổ biến nhất, các file này chứa các thông tin mà chúng ta có thể đọc đươc, hướng dẫn chương trình và ký tự ASCII.

Ví dụ về các file thông thường bao gồm:

  • File văn bản đơn giản, file pdf
  • Các file đa phương tiện như file hình ảnh, nhạc và video
  • Tập tin nhị phân
  • File nén hoặc nén ...

File đặc biệt.

Đây là các file đại diện cho các thiết bị vật lý như ổ đĩa được gắn kết, máy in, ổ đĩa CD và bất kỳ thiết bị đầu vào và đầu ra I/O.

Thư mục.

Thư mục là một loại file đặc biệt lưu trữ cả file thông thường và file đặc biệt theo thứ tự phân cấp bắt đầu từ thư mục gốc (/). Thư mục tương đương với một thư mục trong hệ điều hành Windows. Thư mục được tạo bằng lệnh mkdir.

Cấu trúc phân cấp của Linux bắt đầu từ thư mục gốc và phân nhánh ra các thư mục khác như hình dưới. Linux Directory Structure Giải thích các thư mục.

  • Thư mục /root là thư mục chính cho người dùng gốc.

  • Thư mục /dev chứa các file thiết bị như /dev/sda.

  • Thư mục /boot chứa các file khởi động.

  • Thư mục /usr chứa các ứng dụng và tiện ích người dùng

  • Thư mục /var chứa các file log của các ứng dụng hệ thống khác nhau.

  • Thư mục / etc chứa các file cấu hình hệ thống.

  • Thư mục /home là nơi đặt các thư mục người dùng. Chúng bao gồm Máy tính để bàn, Tài liệu, Tải xuống, Nhạc, Công khai và Video.

  • Thư mục / opt chứa các gói ứng dụng bổ trợ.

  • Thư mục /media lưu trữ các file cho các thiết bị di động như ổ USB.

  • Thư mục /mnt chứa các thư mục con hoạt động như các điểm gắn kết tạm thời cho các thiết bị gắn kết như CD-ROM.

  • Thư mục /proc là một hệ thống file ảo chứa thông tin về các tiến trình hiện đang chạy.

  • Thư mục /bin chứa các file nhị phân lệnh của người dùng.

  • Thư mục /lib lưu trữ hình ảnh thư viện được chia sẻ và các mô-đun hạt nhân.

Lệnh pwd

pwd là một lệnh in ra thư mục làm việc hiện tại theo thứ tự phân cấp, bắt đầu bằng thư mục gốc trên cùng (/).

bash (non-root)
pwd
/root

Đầu ra chúng ta thấy chúng ta đang ở thư mục root, đường dẫn tuyệt đối là /root.

Lệnh cd

cd viết tắt của change directory, dùng để thay đổi hoặc điều hướng các thư mục.

Ví dụ để đều hướng đến thư mục /var/www chúng ta dùng lệnh như sau:

bash (non-root)
cd /var/www

Để đi lên trên một thư mục chúng ta hãy nối hai dấu chấm.

bash (non-root)
cd ..

Để quay lại thư mục chính, chúng ta hãy chạy lệnh cd mà không có bất kỳ đối số nào.

bash (non-root)
cd

Lệnh hiển thị danh sách các file/thư mục ls

Lệnh này hiển thị các file và thư mục ra màn hình.

bash (non-root)
ls

ls Như hình trên thì folder là màu xanh dương, và file thì màu trắng.

Nếu chúng ta muốn hiện đầy đủ thông tin về file, folder hơn thì chúng ta thêm tham số -l.

bash (non-root)
ls -l
Kết quả
total 20
drwxr-xr-x 2 root root 4096 Jul 18 11:50 123hostvn
-rw-r--r-- 1 root root   38 Jul 15 13:35 config
-rw-r--r-- 1 root root   33 Jul 15 13:36 config-example
drwxr-xr-x 2 root root 4096 Jul 14 15:54 dowload
drwx------ 3 root root 4096 Jul 11 09:57 snap

Để hiển thị các file ẩn, chúng ta dùng tham số -a. File ẩn là những file môi trường có bắt đầu bằng dấu . (ví dụ: ., .., .profile, .bashrc).

bash (non-root)
ls -a
Kết quả
.  ..  .bash_history  .bashrc  .cache  .config  .lesshst  .local  .mc  .profile  .python_history  .s3cfg  .ssh  .viminfo  .wget-hsts  123hostvn  config  config-example  dowload  snap

Ngoài ra, chúng ta có thể kết hợp nhiều tham số với nhau, ví dụ kết hợp tham số - l để hiện thị đầy đủ thông của file, folder và tham số - a để hiển thị file ẩn.

bash (non-root)
ls -la
Kết quả
total 128
drwx------  9 root root  4096 Jul 20 08:35 .
drwxr-xr-x 19 root root  4096 Jul 18 11:46 ..
-rw-------  1 root root 20493 Jul 19 22:52 .bash_history
-rw-r--r--  1 root root  3106 Oct 15  2021 .bashrc
drwx------  3 root root  4096 Jun  4 15:11 .cache
drwx------  3 root root  4096 Jun  4 14:13 .config
-rw-------  1 root root    20 Jul 19 14:01 .lesshst
drwxr-xr-x  3 root root  4096 Jul 11 08:23 .local
drwx------  5 root root  4096 Jul 13 19:58 .mc
-rw-r--r--  1 root root   161 Jul  9  2019 .profile
-rw-------  1 root root     0 Jun  4 15:05 .python_history
-rw-------  1 root root  2266 Jul 13 20:29 .s3cfg
drwx------  2 root root  4096 Jul 11 08:23 .ssh
-rw-------  1 root root 14246 Jun  4 15:13 .viminfo
-rw-r--r--  1 root root   364 Jul 14 16:09 .wget-hsts
-rw-r--r--  1 root root     3 Jul 19 11:08 123host.conf
-rw-r--r--  1 root root   113 Jul 19 16:59 123host.txt
-rw-r--r--  1 root root    65 Jul 19 15:32 123hostvn
-rw-r--r--  1 root root    38 Jul 15 13:35 config
-rw-r--r--  1 root root    33 Jul 15 13:36 config-example

Và chúng ta có thể kết hợp thêm tham số -h để hiển thị kích thước file dưới dạng Kilobyte, Megabyte, Gigabyte.

bash (non-root)
ls -lah
Kết quả
drwx------  9 root root 4.0K Jul 20 08:35 .
drwxr-xr-x 19 root root 4.0K Jul 18 11:46 ..
-rw-------  1 root root  21K Jul 19 22:52 .bash_history
-rw-r--r--  1 root root 3.1K Oct 15  2021 .bashrc
drwx------  3 root root 4.0K Jun  4 15:11 .cache
drwx------  3 root root 4.0K Jun  4 14:13 .config
-rw-------  1 root root   20 Jul 19 14:01 .lesshst
drwxr-xr-x  3 root root 4.0K Jul 11 08:23 .local
drwx------  5 root root 4.0K Jul 13 19:58 .mc
-rw-r--r--  1 root root  161 Jul  9  2019 .profile
-rw-------  1 root root    0 Jun  4 15:05 .python_history
-rw-------  1 root root 2.3K Jul 13 20:29 .s3cfg
drwx------  2 root root 4.0K Jul 11 08:23 .ssh
-rw-------  1 root root  14K Jun  4 15:13 .viminfo
-rw-r--r--  1 root root  364 Jul 14 16:09 .wget-hsts
-rw-r--r--  1 root root    3 Jul 19 11:08 123host.conf
-rw-r--r--  1 root root  113 Jul 19 16:59 123host.txt
-rw-r--r--  1 root root   65 Jul 19 15:32 123hostvn
-rw-r--r--  1 root root   38 Jul 15 13:35 config
-rw-r--r--  1 root root   33 Jul 15 13:36 config-example

Lệnh tạo file touch

bash (non-root)
touch 123hostvn
  • 123hostvn Là tên file chúng ta muốn tạo.

Tạo nhiều file mới touch.

Ngoài ra chúng ta có thể tạo nhiều file cùng một lúc, được cách nhau bằng dấu cách ví dụ như:

bash (non-root)
touch filename1 filename2 filename3

Lệnh copy file/thư mục cp

cp Là lệnh dùng để copy file, thư mục từ vị trí này sang vị trí khác.

Copy tập tin.

Để copy tập tin chúng ta dùng lệnh với cú pháp sau:

cp <file-path> <folder-path>

Ví dụ chúng ta copy file 123host.txt vào thư mục /var/www/demo-123host/ chúng ta dùng lệnh như sau:

bash (non-root)
cp 123host.txt /var/www/demo-123host/

Copy thư mục.

Để sao chép một thư mục, chúng ta thêm tham số -R để copy tất cả nội dung của thư mục với cú pháp như sau:

cp -R <folder-path> <folder-path>

Ví dụ chúng ta copy thư mục wordpress vào thư mục /var/www/demo-123host/ chúng ta dùng lệnh như sau:

bash (non-root)
cp -R /download/wordpress/ /var/www/demo-123host/

Lệnh di chuyển file/thư mục mv

mv là lệnh di chuyển file, thư mục từ vị trí này sang vị trí khác. Nó có thể dùng để đổi tên file, thư mục tùy thuộc vào cách chúng ta sử dụng.

Di chuyển file.

Để di chuyển file từ vị trí này sang vị trí khác, chúng ta dùng cú pháp lệnh như sau:

mv <file-path> <folder-path>

Ví dụ chúng ta muốn di chuyển file 123host.txt vào thư mục /var/www/demo-123host/ chúng ta dùng lệnh như sau:

bash (non-root)
mv 123host.txt /var/www/demo-123host/

Để đổi tên file chúng ta dùng cú pháp lệnh mv như sau:

mv <filename1> <filename2>

Ví dụ chúng ta muốn đổi tên file 123host.txt thành new-123host.txt chúng ta dùng lệnh như sau:

bash (non-root)
mv 123host.txt new-123host.txt

Ngoài ra, chúng ta có thể di chuyển và đổi tên file cùng một lúc bằng cách chỉ định thư mục đích và tên file khác. Ví dụ chúng ta di chuyển file config-example đến thư mục /var/www/demo-123host/ và đổi tên thành config chúng ta dùng lệnh như sau:

bash (non-root)
mv config-example /var/www/demo-123host/config

Di chuyển thư mục.

Để di chuyển thư mục từ vị trí này sang vị trí khác trên Linux chúng ta dùng cú pháp lệnh mv như sau:

mv <folder-path> <folder-path>

Ví dụ chúng ta di chuyển thư mục wordpress vào thư mục /var/www/demo-123host chúng ta dùng lệnh như sau:

bash (non-root)
mv /dowload/wordpress/ /var/www/demo-123host/

Chúng ta cũng có thể đổi tên thư mục với cú pháp như sau:

mv <foldername1> <foldername2>

Ví dụ chúng ta đổi tên thư mục 123host thành new-123host chúng ta dùng lệnh như sau:

bash (non-root)
mv 123host new-123host

Tương tự như file, chúng ta có thể di chuyển và đổi tên thư mục cùng một lúc bằng cách chỉ định thư mục đích và tên thư mục khác.

Ví dụ chúng ta muốn di chuyển thư mục wordpress vào thư mục /var/www/demo-123host/ và đổi tên thành public-html chúng ta sử dụng lệnh như sau:

bash (non-root)
mv /dowload/wordpress/ /var/www/demo-123host/public_html

Lệnh xóa file rm

Lệnh rm (xóa) cần phải cẩn thận vì trên linux một khi đã xóa file thì rất khó lấy lại được.

bash (non-root)
rm 123hostvn
  • 123hostvn: Là file chúng ta muốn xóa

Chúng ta còn có các tham số lệnh rm như sau

  • -i: Xác nhận mỗi tập tin trước khi xóa

  • -f: (force) xóa file không cần nhắc

Lệnh tạo thư mục mkdir

bash (non-root)
mkdir 123host
  • 123host: Là tên thư mục chúng ta muốn tạo

Tạo nhiều thư mục bằng mkdir.

Nếu chúng ta muốn tạo nhiều thư mục cùng lúc, chúng ta có thể thêm nhiều tên thư mục và cách nhau bởi dấu cách.

bash (non-root)
mkdir folder1 folder2 folder3

Tạo thư mục cha bằng mkdir.

Để tạo một thư mục kèm theo thư mục cấp cha của nó phải được tạo ra ngay cả khi cấp thư mục cha chưa tồn tại. Thì chúng ta hãy dùng tham số -p. Ví dụ như thư mục /123host-demo chưa được tạo, bây giờ chúng ta muốn tạo thư mục của nó /123host-demo/123hostvn thì lệnh sẽ tạo luôn thư mục cha và thư mục con.

bash (non-root)
mkdir -p /123host-demo/123hostvn

Cách cấp quyền khi tạo thư mục bằng mkdir

Để tạo một thư mục với phân quyền cụ thể, chúng ta sử dụng tham số -m.

bash (non-root)
mkdir -m 775 123hostvn

Ví dụ trên, chúng ta đã tạo ra thư mục 123host với quyền 755.

Nếu bạn dùng tham số -m mà không đi kèm giá trị phân quyền thì thư mục sẽ được tạo ra theo giá trị umask mặc định.

Hiển thị quá trình tạo thư mục.

Với tham -v của lệnh mkdir sẽ buộc lệnh phải in ra các thông tin như khởi tạo thư mục thành công hay không ? khởi tạo thất bại? thư mục đã tồn tại.

bash (non-root)
mkdir -v 123host-demo 123hostvn 123host
Kết quả
mkdir: created directory '123host-demo'
mkdir: cannot create directory ‘123hostvn’: File exists
mkdir: created directory '123host'

Lệnh xóa thư mục trong Linux rmdir hoặc rm

Để xóa thư mục trống thì chúng ta có thể sử dụng lệnh rmdir và rm như sau:

bash (non-root)
rm -d 123hostvn

Hoặc

bash (non-root)
rmdir 123hostvn
  • 123hostvn: là thư mục chúng ta muốn xóa

Để xóa thư mục có dữ liệu bên trong thì chúng ta dùng lệnh rm.

bash (non-root)
rm -rf 123hostvn
  • r: Là tham số xóa đệ quy.

  • f: (force) Để xóa mà không cần nhắc.

  • 123hostvn: Là thư mục chúng ta cần xóa.

Sự khác biệt giữa lệnh rmdirrm -r.

  • Lệnh rmdir chỉ dùng để xóa thư mục trống.

  • Lệnh rm -r dùng để xóa thư mục, và tất cả nội của nó.

Lệnh tìm kiêm vị trí file find và locate

Để tìm kiếm vị trí của một file cụ thể chúng ta sử dụng lệnh find hoặc locate

Lệnh find.

Lệnh find là lệnh tìm kiếm một file ở một vị trí cụ thể với 2 đối số đầu vào là đường dẫn thư mục cần tìm kiếm và tên file. Cú pháp như sau:

find </path/to/search> -name <filename>

Ví dụ chúng ta tìm kiếm file 123host.txt trong thư mục /var/www/demo-123host.

bash (non-root)
find /var/www/demo-123host -name 123host.txt
/var/www/demo-123host/public_html/123host.txt

Lệnh locate.

Lệnh locate, giống như lệnh find đóng vai trò tương tự là tìm kiếm file, nhưng chỉ lấy một đối số đầu vào là tên file như sau:

locate <filename>

Ví dụ chúng ta cần tìm kiếm file 123host.txt.

bash (non-root)
locate 123host.txt
/var/www/demo-123host/public_html/123host.txt

Lệnh locate tìm kiếm bằng cách sử dụng cơ sở dữ liệu của tất cả các tệp và thư mục có thể có trong hệ thống.

Lệnh locate nhanh hơn nhiều so với lệnh find. Tuy nhiên, lệnh find mạnh hơn nhiều và hoạt động trong các tình huống mà locate không tạo ra kết quả mong muốn.

Tổng kết

Chúng ta đã tìm hiểu xong các lệnh cơ bản về quản lý tập tin trong Linux, hy vọng nó sẽ giúp ích được cho các bạn quản lý tập tin trên Linux.


Bạn có làm được theo hướng dẫn này không?

Bài liên quan

Lệnh xác định vị trí của tệp hoặc thư mục trên Linux
Lệnh xác định vị trí của tệp hoặc thư mục trên Linux
Lệnh kiểm tra nhiều cổng port đang mở của một tên miền trên Linux
Lệnh kiểm tra nhiều cổng port đang mở của một tên miền trên Linux
Lệnh tạo một dãy số tăng dần trên Linux
Lệnh tạo một dãy số tăng dần trên Linux

Object Storage

Chuẩn S3, không giới hạn băng thông

Object Storage

Thuê Server Riêng

Chi phí thấp, cấu hình cao

Thuê Server Riêng
Thông tin tác giả
2 Bình luận

Tính năng đang được phát triển

Đang tải bình luận
Liên hệ chúng tôi