Chúng tôi sử dụng Linux ls
ra lệnh mỗi ngày mà không cần suy nghĩ về nó. Đó là một điều đáng tiếc. Hãy chú ý một chút và bạn sẽ tìm thấy nhiều tùy chọn hữu ích — bao gồm một số tùy chọn bạn nên thêm vào kho vũ khí dòng lệnh của mình.
ls Liệt kê Tệp và Thư mục
Các ls
lệnh có lẽ là lệnh đầu tiên mà hầu hết người dùng Linux gặp phải. Những người trong chúng ta, những người lo lắng về dòng lệnh sử dụng nó ngày này qua ngày khác mà không hề nghĩ về nó. Điều đó có thể giải thích tại sao lệnh này có nhiều thứ hơn hầu hết người dùng nhận ra. Chúng tôi liệt kê các tệp với nó để xem có gì trong một thư mục. Chúng tôi liệt kê các tệp ở định dạng dài khi chúng tôi muốn xem các quyền trên một tệp. Ngoài ra, nó ít được xem xét.
Các ls
lệnh là một trong những lệnh với vô số tùy chọn. Có lẽ đây là một phần của vấn đề. Có rất nhiều lựa chọn, làm thế nào để bạn sàng lọc chúng để tìm ra những lựa chọn hữu ích? Và sau khi tìm thấy chúng, bạn nhớ chúng như thế nào?
Hoán vị hữu ích của ls
lệnh với các chuỗi tùy chọn và tham số của chúng là những ứng cử viên hoàn hảo cho bí danh. Trên thực tế, trong hầu hết các bản phân phối, những gì bạn nghĩ là “trần trụi” ls
lệnh thực sự là một bí danh. Trong số những thứ khác, type
lệnh có thể được sử dụng để hiển thị định nghĩa cơ bản của bí danh. Hãy xem định nghĩa của ls
:
gõ ls
Các --color=auto
các tham số được đưa vào tự động mỗi khi bạn sử dụng ls
chỉ huy. Đây là những gì cung cấp các màu khác nhau cho các loại tệp khác nhau trong danh sách.
LIÊN QUAN: Cách tạo Bí danh và Hàm Shell trên Linux
Danh sách ls đơn giản
Tất cả những ai đã dành thời gian sử dụng thiết bị đầu cuối Linux đều biết rằng, theo mặc định, ls
liệt kê các tệp và thư mục trong thư mục hiện tại.
ls
Nếu bạn muốn danh sách của mình được tạo thành một cột duy nhất, hãy sử dụng -1
(một tệp trên mỗi dòng) tùy chọn:
ls -1
Chúng ta sẽ thảo luận về tên tệp trông kỳ lạ đó ở đầu danh sách trong một phút nữa.
Sử dụng ls trên các thư mục khác nhau
Có ls
liệt kê các tệp trong thư mục khác với thư mục hiện tại, chuyển đường dẫn đến thư mục để ls
trên dòng lệnh. Bạn cũng có thể chuyển nhiều thư mục tới ls
và liệt kê chúng lần lượt. Đây, chúng tôi đang hỏi ls
để liệt kê các tệp trong hai thư mục, một thư mục có tên là “Help” và thư mục kia có tên là “gc_help”.
ls Help gc_help
Khi nào ls
đã liệt kê nội dung của thư mục đầu tiên nó liệt kê nội dung của thư mục thứ hai. Nó in tên của từng thư mục khi nó xử lý chúng:
Sử dụng các mẫu tệp
Để liệt kê một cách có chọn lọc một tập hợp các tệp, hãy sử dụng khớp mẫu. Dấu chấm hỏi “?
“Sẽ đại diện cho bất kỳ ký tự đơn nào và dấu hoa thị”*
”Sẽ đại diện cho bất kỳ chuỗi ký tự nào. Để liệt kê bất kỳ tệp hoặc thư mục nào có tên bắt đầu bằng “ip_”, hãy sử dụng định dạng sau:
ls ip_*
Để liệt kê các tệp có phần mở rộng “.c”, hãy sử dụng định dạng sau:
ls *.c
Bạn cũng có thể dùng ls
với grep
, Và sử dụng grep
khả năng kết hợp mẫu của. Hãy tìm bất kỳ tệp nào có chuỗi “_pin_” trong tên của chúng:
ls | grep _pin_
Điều này gần giống với việc sử dụng ls
của riêng nó, với hai ký tự đại diện:
ls | grep _pin_
ls *_pin_*
Tại sao hầu hết giống nhau? Lưu ý các bố cục khác nhau. grep
buộc đầu ra thành một tên tệp duy nhất trên mỗi định dạng dòng.
Ký tự không in
Có thể tìm thấy cho mình một tên tệp có ký tự không in được hoặc ký tự điều khiển trong tên tệp của nó. Thông thường, điều này có thể xảy ra khi bạn mở rộng tệp lưu trữ mà bạn đã tải xuống từ web hoặc truy xuất kho lưu trữ git và tác giả ban đầu đã mắc lỗi khi tạo tệp nhưng không phát hiện ra tệp đó.
Tệp kỳ lạ của chúng tôi là một trong những tệp sau:
Nếu chúng ta nhìn vào nó trong trình duyệt tệp và nhấn “F2” để đổi tên nó, các ký tự không in được biểu thị bằng một ký hiệu lạ.
Bạn có thể dùng -b
(Escape) để cho phép bạn xem tên tệp thực sự chứa những gì. Tùy chọn này gây ra ls
để sử dụng các trình tự thoát của ngôn ngữ lập trình C để biểu diễn các ký tự điều khiển.
ls -b a*
Nhân vật bí ẩn được tiết lộ là một nhân vật dòng mới, được biểu thị bằng C là “ n”.
Bỏ qua tệp
Để bỏ qua một số tệp nhất định khỏi danh sách, hãy sử dụng --hide
Lựa chọn. Giả sử bạn không muốn xem các tệp “.bak” sao lưu trong danh sách. Bạn có thể sử dụng lệnh này:
ls
ls --hide=*.bak
Các tệp “.bak” không có trong danh sách thứ hai.
Danh sách định dạng dài
Các -l
(danh sách dài) nguyên nhân tùy chọn ls
để cung cấp thông tin chi tiết về từng tệp.
ls -l
Có rất nhiều thông tin ở đây, vì vậy chúng ta hãy xem xét nó.
Điều đầu tiên ls
hiển thị là tổng kích thước của tất cả các tệp trong danh sách. Sau đó, mỗi tệp hoặc thư mục được hiển thị trên một dòng của chính nó.
Tập hợp đầu tiên gồm mười chữ cái và dấu gạch ngang là loại tệp và chủ sở hữu, nhóm và các quyền đối với tệp khác.
Ký tự đầu tiên đại diện cho loại tệp. Nó sẽ là một trong số:
- –: Một tệp thông thường.
- b: Một tập tin đặc biệt của khối.
- c: Một tệp ký tự đặc biệt.
- d: Một thư mục.
- l: Một liên kết tượng trưng.
- n: Một tệp mạng.
- p: Một đường ống được đặt tên.
- S: Một ổ cắm.
Chín ký tự tiếp theo là ba nhóm ba ký tự được hiển thị liền nhau. Mỗi nhóm ba người đại diện cho các quyền đọc, ghi và thực thi, theo thứ tự đó. Nếu quyền được cấp, sẽ có một r
, w
, hoặc là x
hiện tại. Nếu quyền không được cấp, dấu gạch ngang -
được hiển thị.
Bộ ba ký tự đầu tiên là quyền dành cho chủ sở hữu tệp. Bộ ba quyền thứ hai dành cho các thành viên trong nhóm và bộ ba quyền cuối cùng dành cho những người khác.
Đôi khi quyền thực thi cho chủ nhân được đại diện bởi một s
. Đây là bit setuid. Nếu nó hiện diện, điều đó có nghĩa là tệp được thực thi với các đặc quyền của chủ sở hữu tệp, không phải người dùng thực thi tệp.
Quyền thực thi cho nhóm cũng có thể là một s
. Đây là bit setgid. Khi điều này được áp dụng cho một tệp, nó có nghĩa là tệp sẽ được thực thi với các đặc quyền của nhóm chủ sở hữu. Khi được sử dụng với một thư mục, bất kỳ tệp nào được tạo bên trong nó sẽ lấy quyền nhóm của họ từ danh mục chúng được tạo trong, không phải từ người dùng đang tạo tệp.
Quyền thực thi cho những người khác đôi khi có thể được biểu thị bằng t
. Đây là chút dính. Nó thường được áp dụng cho các thư mục. Nếu điều này được đặt, bất kể đặc quyền ghi và thực thi được đặt trên tệp trong thư mục, chỉ chủ sở hữu tệp, chủ sở hữu thư mục hoặc người dùng root mới có thể đổi tên hoặc xóa tệp trong thư mục.
Cách sử dụng phổ biến cho bit dính là trên các thư mục như “/ tmp”. Điều này có thể được ghi bởi tất cả người dùng trên máy tính. Bit cố định trên thư mục đảm bảo rằng người dùng — và các quy trình do người dùng khởi chạy — chỉ có thể đổi tên hoặc xóa các tệp tạm thời của họ.
Chúng ta có thể thấy phần dính trên thư mục “/ tmp”. Lưu ý việc sử dụng -d
(thư mục) tùy chọn. Điều này gây ra ls
để báo cáo về các chi tiết của thư mục. Nếu không có tùy chọn này, ls
sẽ báo cáo về các tệp bên trong thư mục.
ls -l -d /tmp
LIÊN QUAN: Cách sử dụng lệnh chmod trên Linux
Số theo sau quyền là số liên kết cứng đến tệp hoặc thư mục. Đối với một tệp, đây thường là một, nhưng nếu các liên kết cứng khác được tạo, con số này sẽ tăng lên. Một thư mục thường có ít nhất hai liên kết cứng. Một là một liên kết đến chính nó, và một là mục nhập của nó trong thư mục mẹ của nó.
Tên của chủ sở hữu và nhóm được hiển thị tiếp theo. Theo sau chúng là kích thước tệp và ngày sửa đổi tệp cuối cùng. Cuối cùng, tên tệp được đưa ra.
Kích thước tệp có thể đọc của con người
Có kích thước tệp theo byte không phải lúc nào cũng thuận tiện. Để xem kích thước tệp theo đơn vị thích hợp nhất (Kilobyte, Megabyte, v.v.), hãy sử dụng -h
tùy chọn (con người có thể đọc được):
ls -l -h
Hiển thị các tệp ẩn
Để xem các tệp ẩn, hãy sử dụng -a
(tất cả) tùy chọn:
ls -l -a
Hai mục nhập “.” và “..” đại diện cho thư mục hiện tại và thư mục mẹ, tương ứng. Một tệp có tên “.base_settings” hiện được hiển thị lần đầu tiên.
Bỏ sót. và .. từ Danh sách
Nếu bạn không muốn danh sách của mình bị lộn xộn với dấu “.” và các mục nhập “..”, nhưng bạn muốn xem các tệp ẩn, hãy sử dụng -A
(gần như tất cả) tùy chọn:
ls -l -A
Tệp ẩn vẫn được liệt kê, nhưng dấu “.” và các mục nhập “..” bị chặn.
Liệt kê các thư mục đệ quy
Có ls
liệt kê các tệp trong tất cả các thư mục con bằng cách sử dụng -R
(đệ quy) tùy chọn
ls -l -R
ls
hoạt động theo cách của nó thông qua toàn bộ cây thư mục bên dưới thư mục bắt đầu và liệt kê các tệp trong mỗi thư mục con.
Hiển thị UID và GID
Để hiển thị ID người dùng và ID nhóm thay vì tên người dùng và tên nhóm, hãy sử dụng -n
(uid số và gid) tùy chọn.
ls -n
Sắp xếp danh sách
Bạn có thể sắp xếp danh sách theo phần mở rộng, kích thước tệp hoặc thời gian sửa đổi. Các tùy chọn này không nhất thiết phải được sử dụng với định dạng danh sách dài, nhưng thường rất hợp lý khi làm như vậy. Nếu bạn đang sắp xếp theo kích thước tệp, bạn nên xem các kích thước tệp trong danh sách. Khi bạn sắp xếp theo loại tiện ích mở rộng, định dạng danh sách dài không quá quan trọng.
Để sắp xếp theo phần mở rộng, hãy sử dụng -X
(sắp xếp theo phần mở rộng) tùy chọn.
ls -X -1
Các thư mục được liệt kê đầu tiên (không có phần mở rộng nào cả) sau đó phần còn lại theo thứ tự bảng chữ cái, theo phần mở rộng.
Để sắp xếp theo kích thước tệp, hãy sử dụng -S
(sắp xếp theo kích thước tệp).
ls -l -h -S
Thứ tự sắp xếp từ lớn nhất đến nhỏ nhất.
Để sắp xếp danh sách theo thời gian sửa đổi, hãy sử dụng -t
(sắp xếp theo thời gian sửa đổi).
ls -l -t
Danh sách được sắp xếp theo thời gian sửa đổi.
Nếu thời gian sửa đổi tệp trong năm hiện tại, thông tin được hiển thị là tháng, ngày và giờ. Nếu ngày sửa đổi không phải trong năm hiện tại, thông tin được hiển thị là tháng, ngày và năm.
Một cách nhanh chóng để lấy các tệp mới nhất và cũ nhất trong một thư mục là sử dụng ls
với head
và tail
các lệnh.
Để lấy tệp hoặc thư mục mới nhất, hãy sử dụng lệnh sau:
ls -t | head -1
Để lấy tệp hoặc thư mục cũ nhất, hãy sử dụng lệnh sau:
ls -t | tail -1
Đảo ngược thứ tự sắp xếp
Để đảo ngược bất kỳ thứ tự sắp xếp nào, hãy sử dụng -r
(đảo ngược) tùy chọn.
ls -l -h -S -r
Danh sách bây giờ được sắp xếp từ tệp nhỏ nhất đến tệp lớn nhất.
Và còn nữa
Kiểm tra trang người đàn ông cho ls
, có nhiều lựa chọn hơn. Một số trong số chúng đáp ứng các trường hợp sử dụng hơi tối nghĩa, nhưng thỉnh thoảng, bạn sẽ rất vui khi biết về chúng.
Bạn có cần xem dấu thời gian của tệp với độ chính xác tối đa mà Linux có thể cung cấp không? Sử dụng tùy chọn toàn thời gian:
ls --full-time
Có lẽ bạn muốn xem số inode của các tệp? Sử dụng tùy chọn inode:
ls -i
Bạn đang làm việc trên màn hình đơn sắc và muốn loại bỏ tất cả các tệp có nguy cơ gây nhầm lẫn cho các thư mục và liên kết? Sử dụng tùy chọn phân loại và ls
sẽ thêm một trong những thứ này vào mỗi mục nhập danh sách:
- /: Một thư mục.
- @: Một liên kết tượng trưng.
- |: Một đường ống được đặt tên.
- =: Một ổ cắm.
- *: Một tệp thực thi
ls -F
Làm một số đào. Bạn sẽ thấy rằng ls
là một mạch phong phú, và bạn sẽ tiếp tục kiếm được đá quý.