Xem Nhiều 4/2024 # Làm Việc Với Tập Tin Và Thư Mục Trên Linux # Top 0 Yêu Thích

Hệ điều hành Linux đã cung cấp nhiều lệnh để chúng ta có thể làm việc với tập tin và thư mục. Bài viết này sẽ giới thiệu với các bạn về cách tạo thư mục trên linux, tạo tập tin mới hoặc tập tin trống, xem nội dung của tập tin và tìm kiếm tập tin trên linux, thay đổi dấu thời gian của tập tin và di chuyển, xóa và đổi tên tập tin hoặc thư mục. Các lệnh này giúp bạn quản lý dữ liệu và tập tin của mình và đảm bảo rằng dữ liệu chính xác có sẵn tại đúng vị trí từ đây giúp cho các bạn có thể tự học linux một cách dể dàng hơn.

ls -[tùy chọn] [đường dẫn thư mục muốn xem]

Các tuỳ chọn phổ biến của lệnh ls:

-L

Hiển thị danh sách tập tin, thư mục (chỉ hiện thị tên).

-l

Hiển thị danh sách tập tin, thư mục (gồm nhiều cột: filename, size, date,….

-a

Liệt kê tất cả các tập tin, thư mục, bao gồm những tập tin ẩn.

-R

Liệt kê tất cả các tập tin, thư mục kể cả các tập tin, thư mục bên trong thư mục cha.

Ngoài ra chúng ta có thể sử dụng “man” để xem các tuỳ chọn của lệnh ls

1.1. Lệnh grep

Lệnh grep – lọc lại tên tập tin thư mục muốn xem

Lệnh ls -l của “/” cho kết quả nhiều thông tin, nếu muốn lọc lại tên tập tin thư mục muốn xem chỉ cần thêm grep.

Ví dụ 1: Muốn xem trong “/” có tập tin, thư mục nào có ký tự là pro thì thực hiện như sau:

Ví dụ 2: Muốn xem trong thư mục /etc có tập tin, thư mục nào có ký tự là yum thì thực hiện như sau:

Lệnh grep còn được dùng tìm kiếm chuỗi trong file:

grep " chuoi " tên file

Lệnh grep còn được dùng tìm kiếm chuỗi trong nhiều file cùng lúc:

grep " chuoi " file_pattern

Chú ý: Dùng ký hiệu “*” để thực hiện tìm kiếm nhiều tập tin cùng một lúc.

Ví dụ: Tìm kiếm chuỗi “yum” trong các file có đuôi .txt trong thư mục /root:

grep "yum" /root/*.txt

Lệnh cd dùng để đổi sang thư mục khác

Các lệnh cd thông dụng

Hoặc

cd ../.. : di chuyển về thư mục mẹ 2 lần

Lệnh cd không có tham số, sẽ đưa bạn về home directory, dù bất kể bạn đang ở đâu: cd hoặc cd ~

Lệnh cd dùng để quay về thư mục trước: cd -

Lệnh pwd chúng ta sẽ có ful path của thư mục mà chúng ta đang dùng ở hiện tại.

Lệnh mkdir được sử dụng để tạo một thư mục trong thư mục hiện tại:

mkdir [tên thư mục cần tạo]

Ví dụ: Tạo thư mục tên exampledir trong thư mục hiện tại:

mkdir exampledir

5.1: Xóa tập tin:

rm [đường dẫn]

Ví dụ: Xóa tập tin chúng tôi trong /usr/passwd:

rm chúng tôi

5.2: Xóa tập tin mà không cần hỏi:

rm -f [đường dẫn]

Ví dụ: Xóa tập tin chúng tôi trong /usr/passwd:

rm -f chúng tôi

5.3: Xóa thư mục:

rm -rf [đường dẫn]

Ví dụ: Xóa thư mục example trong /usr/bin:

rm -rf /usr/bin/example

5.4: Xóa thư mục rỗng:

rmdir [đường dẫn]

Ví dụ: Xóa thư mục dir trong /usr/bin: rmdir dir

6.1: Lệnh sao chép tập tin:

cp [đường dẫn nguồn] [đường dẫn đích]

Ví dụ: Sao chép tập tin chúng tôi trong thư mục /root sang /usr: cp chúng tôi /usr

6.2: Lệnh sao chép thư mục:

cp -R [đường dẫn nguồn] [đường dẫn đích]

Ví dụ: Sao chép thư mục /root/networks sang /usr/bin:

cp -r /root/networks /usr/bin

Lệnh mv thực hiện nhiệm vụ kép. Nó có thể thực hiện:

7.1:Cần đổi tên một tập tin

mv [đường dẫn với tên củ] [đường dẫn với tên mới]

Ví dụ: Đổi tên tập tin chúng tôi trong /root thành test.txt:

mv chúng tôi chúng tôi

7.2: Di chuyển một tập tin đến vị trí khác, trong khi đó nó có thể đổi tên cùng lúc.

mv [đường dẫn nguồn] [đường dẫn đích]

Ví dụ: Di chuyển và đổi tên tập tin chúng tôi trong /root sang /etc đổi tên thành chúng tôi mv chúng tôi /etc/test.txt

Lệnh touch thường được sử dụng để thiết lập hoặc cập nhật quyền truy cập, thay đổi và sửa đổi thời gian của tập chúng tôi mặc định, nó đặt lại dấu thời gian của tập tin để khớp với thời gian hiện tại.

Ngoài ra lệnh touch còn dùng để tạo tập tin rỗng.

touch [tên tập tin]

Ví dụ: Tạo tập tin tên test1.txt:

touch chúng tôi

Lệnh touch còn cung cấp một số tiện ích, như tuỳ chọn -t cho phép bạn đặt ngày thời gian của tệp.

touch -t [thoigian] [tên tập tin]

Ví dụ: Đặt thời gian cho tập tin myfile, ngày 9 tháng 12 và lúc 4 giờ chiều (12091600):

touch -t 12091600 myfile

Linux có nhiều chương trình cho phép soạn thảo văn bản như: vi, emacs, joe, pico,… chương trình soạn thảo văn bản thông dụng nhất đó là vi.

Khi vi khởi động sẽ ở chế độ dòng lệnh. Để chuyển đổi từ chế độ dòng lệnh sang chế độ soạn thảo thì nhấn phím insert. Để trở lại chế độ dòng lệnh thì chọn phím ESC.

vi [đường dẫn]

Ví dụ: Tạo tập tin chúng tôi và đặt trong thư mục /usr/bin với nội dung là ” dung trinh soan thao vi”

Bước 1: Dùng lệnh vi để tạo tập tin chúng tôi Nếu tập tin này đã có thì cũng dùng vi để mở và cũng theo cú pháp ở trên.

Bước 2: Nhấn phím i để nhập nội dung “dung trinh soan thao vi”.

Bước 3: Nhấn phím ESC để nhập một trong các yêu cầu sau:

Các câu lệnh và tác dụng trong chế độ dòng lệnh của trình soạn thảo vi:

^ hoặc 0

Dịch chuyển con trỏ đến vị trí bắt đầu của dòng hiện tại.

$

Dịch chuyển con trỏ đến vị trí kết thúc của dòng hiện tại.

i,a

Chèn văn bản ngay trước/sau vị trí con trỏ.

O

Mở một dòng mới ngay sau dòng hiện tại.

O

Mở một dòng mới ngay trước dòng hiện tại.

Dw

Xoá một từ (bao gồm cả ký tự trống ngay sau nó).

D

Xoá từ vị trí con trỏ đến kết thúc dòng.

d^

Xoá từ vị trí bắt đầu dòng đến vị trí ký tự trống hay ký tự bên trái con trỏ.

U

Huỷ bỏ thay đổi trước đó.

/pattern

Tìm xâu pattern. Theo hướng tiến.

Tìm xâu pattern, theo hướng lùi về đầu văn bản.

n,N

Lặp lại việc tìm kiếm theo cùng hướng/ngược hướng.

p, P

Dán đoạn văn bản vừa xoá vào trước/sau con trỏ.

Dd

Xóa dòng có con trỏ chạy.

:w

Ghi lại tất cả các thay đổi của file hiện tại và tiếp tục soạn thảo.

:q!

Kết thúc, không lưu trữ bất kỳ thay đổi.

:ZZ

Lưu thay đổi của file hiện tại và kết thúc.

Ghi vào dòng tiếp theo của tập tin có nội dung:

Chúng ta sử dụng các lệnh để xem tập tin:

cat

Dùng để xem các tập tin không quá dài.

tac

Dùng để xem nội dung của một tập tin ngước bắt đầu từ dòng cuối.

tess

Dùng để xem tập tin lớn hơn vì đây là chương trình phân trang.

tail

Dùng để in 10 dòng cuối của tập tin theo mặc định. Chúng ta có thể thay đổi số dòng bằng cách thêm -n vào sau tail, n là số dòng bạn muốn.

head

Dùng để in 10 dòng đầu của tập tin theo mặc định. Chúng ta có thể thay đổi số dòng bằng cách thêm -n vào sau head, n là số dòng bạn muốn.

find [đường dẫn] -name [tên cần tìm]

Ví dụ: Tìm vị trí của tập tin chúng tôi trong /etc:

find /etc/ -name chúng tôi

Chú ý: Có thể dùng ký hiệu “*” để thực hiện xóa, tìm kiếm, sao chép… nhiều tập tin cùng một lúc.

12.1: Tìm theo thời gian và size

Find có thêm cả phần lọc kết quả theo thời gian và size nữa.

12.1.1: Size

Ta có thể tìm những file có dung lượng tùy ý, bằng cách dùng -size. Một số option thường dùng:

Tìm tất cả các file nặng đúng 100 bytes:

find / -size 100c

Tìm các file nhỏ hơn 100 bytes:

find / -size -100c

Hoặc tìm các file nặng hơn 1GB:

find / -size +1G

12.1.2: Time

Access Time (thời điểm truy cập): Lần cuối cùng file được đọc hoặc ghi vào.

Modification Time (thời điểm chỉnh sửa): Lần cuối nội dung file được chỉnh sửa.

Change Time (thời điểm thay đổi): Lần cuối mà inode meta-data của file bị sửa.

Tương đương với các thông tin trên, ta dùng -atime, -mtime, -ctime, và cả “-” và “+” để lọc ra những thời gian trước hay sau thời điểm đó.

Để tìm các file được chỉnh sửa trong vòng 1 ngày trước:

find / -mtime 1

Tìm các file được truy cập trong ngày hôm qua:

find / -atime -1

Các file mà meta-data bị chỉnh sửa lần cuối là 3 ngày trước và hơn:

find / -ctime +3

Hoặc tìm theo phút chứ không phải ngày:

Lệnh trên sẽ tìm các file được chỉnh sửa trong vòng 1 phút trước.

Lệnh find còn có thể so sánh với 1 file, và trả về những file mới hơn:

find / -newer myfile

12.2: Tìm theo Owner và Permission

Chúng ta có thể tìm theo user hay group owner bằng -user và -group.

Tìm các file mà user “test” sở hữu:

find / -user test

Hoặc các file mà group “newgroup” sở hữu:

find / -group newgroup

Chúng ta cũng tìm được theo permission của file, bằng -perm

Tìm những file có permission 644:

find / -perm 644

hoặc những file có permission ít nhất 644, nghĩa là gồm cả các file có permisson là 744:

find / -perm -644

12.3: Kết hợp find và command khác

Chúng ta còn có thể kết hợp find và các command khác để xử lý những file vừa tìm được với -exec

find find_parameters -exec command_and_params {} ;

Tìm các file có permission là 644 và chmod sang 755:

find / -type f -perm 644 -print -exec chmod 755 {} ;

Tìm 1 file chúng tôi và xóa nó:

find . -type f -name "test.py" -exec rm -f {} ;

Hoặc xóa các file có đuôi .txt ở dir hiện tại:

find . -type f -name "*.txt" -exec rm -f {} ;

Nén và giải nén tập tin có đuôi là .gz

gzip [đường dẫn]

Ví dụ 1: Nén tập tin chúng tôi trong thư mục /usr/bin thành test.txt.gz:

gzip chúng tôi gunzip [đường dẫn]

Ví dụ 2: Giải nén tập tin chúng tôi trong thư mục /usr/bin:

gunzip chúng tôi

Lệnh locate giúp chúng ta tìm kiếm rất nhanh một file bất kì trên hệ thống Linux. Chúng ta thường dùng cú pháp như sau:

locate [tùy chọn] [name-file]

Chương trình locate có tên gói cài đặt là mlocate

Cú pháp cài đặt chương trình locate như sau:

Một số ví dụ về lệnh locate:

Ví dụ 1: Tìm một file với lệnh locate

[root@test1 ~]# locate chúng tôi /etc/sysctl.conf chúng tôi chúng tôi

Ví dụ 2: Hiển thị đếm số lượng kết quả sử dụng tùy chọn -c

[root@test1 ~]# locate chúng tôi /etc/sysctl.conf chúng tôi chúng tôi [root@test1 ~]# locate -c chúng tôi 3

Ví dụ 4: Hiển thị kết quả tên file chữ hoa chữ thường

Theo mặc định thì locate chỉ tìm ra những file có chữ thường. Nhưng trong một số trường hợp thì chúng ta muốn tìm kiếm file có chữ thường chữ hoa chúng ta sử dụng tùy chọn -i. Cú pháp như sau:

locate -i [name-file]

Ví dụ 5: Giới hạn kết quả xuất ra

[root@test1 ~]# locate passwd /etc/passwd /etc/passwd- /etc/pam.d/passwd /etc/security/opasswd /usr/bin/gpasswd /usr/bin/grub2-mkpasswd-pbkdf2 /usr/bin/passwd /usr/include/rpcsvc/yppasswd.h /usr/include/rpcsvc/yppasswd.x chúng tôi /usr/lib/python2.7/site-packages/cloudinit/sources/helpers/vmware/imc/config_passwd.py chúng tôi chúng tôi chúng tôi /usr/sbin/chpasswd /usr/sbin/lpasswd ...

Để giới hạn số lượng xuất ra chúng ta sử dụng tùy chọn -l. Ví dụ chúng ta muốn xuất 5 dòng thì chúng ta thực hiện như sau:

[root@test1 ~]# locate -l 5 passwd /etc/passwd /etc/passwd- /etc/pam.d/passwd /etc/security/opasswd /usr/bin/gpasswd

Để cập nhật lại dữ liệu cho locate chúng ta chay lệnh sau:

15.1. Lệnh which

Lệnh which xác định vị trí một chương trình trong đường dẫn của người dùng.

Một số cú pháp của lệnh which:

Tìm kiếm biến môi trường PATH và hiển thị vị trí của bất kỳ tập tin thực thi phù hợp nào

which [executable]

Nếu có nhiều tập tin thực thi khớp, hiển thị tất cả:

which -a [executable]

15.2 Lệnh whereis

Lệnh whereis rất hữu ích để tìm kiếm các trang nhị phân, nguồn các lệnh trong hệ thống Linux. Cú pháp như sau:

whereis [tuỳ chọn] [command]

Ví dụ 1: Nó định vị các trang nhị phân, nguồn và man của lệnh open và nó hiển thị các đường dẫn trong đó các trang nhị phân, lệnh man có sẵn trong hệ thống.

[root@test1 ~]# whereis open open: /usr/bin/open chúng tôi /usr/share/man/man3/open.3pm.gz [root@test1 ~]# whereis ls ls: /usr/bin/ls chúng tôi

Ví dụ 2: Xác định vị trí của tập tin nhị phân lệnh ls tuỳ chọn -b

[root@test1 ~]# whereis -b ls ls: /usr/bin/ls

Ví dụ 3: Xác định vị trí của trang man lệnh ls tuỳ chọn -m

[root@test1 ~]# whereis -m ls ls: chúng tôi

Lệnh type trong Linux được sử dụng để tìm hiểu một lệnh mà chúng ta nhập sẽ diễn giải là một lệnh tích hợp, lệnh bên ngoài hoặc bí danh(alias) của shell hiện tại. Cú pháp của lệnh này là:

type [tuỳ chọn] [command]

Ví dụ 1: Xem lệnh pwd là lệnh tích hợp, lệnh bên ngoài hay bí danh

[root@test1 ~]# type pwd pwd is a shell builtin

Qua kết quả trên cho chúng ta thấy lệnh pwd là một lệnh shell tích hợp.

[root@test1 ~]# type -a pwd pwd is a shell builtin pwd is /usr/bin/pwd