1. Các thao tác cơ bản với tệp
1.1. Liệt kê tệp
Lệnh cơ bản để liệt kê tệp là ls, hoạt động tuỳ theo cách ra lệnh. Nếu dùng trong ống dẫn (pipe), mỗi tệp sẽ hiển thị trên một dòng như mặc định của vài phiên bản UNIX, chẳng hạn như SCO. Những phiên bản khác liệt kê tệp thành nhiều cột.
Hầu hết người sử dụng đều thích hình thức cột. Phiên bản nào mặc định ls là lệnh liệt kê thành từng dòng thường có riêng một lệnh khác, chẳng hạn như lc, để liệt kê thành từng cột.
Hành động của lệnh ls thay đổi tuỳ theo các cờ (flag) đi kèm, dạng như -abcd. Nhìn chung các phiên bản của lệnh ls có hai dạng: dạng xuất phát từ UNIX System V và dạng xuất phát từ UNIX Berkeley. Bởi vì các hệ Berkeley dần dần hội tụ với System V cho nên chương này tập trung phân tích các cờ của System V.
Muốn biết mình đang dùng phiên bản ls nào, chúng ta xem tài liệu kèm theo hệ hoặc gõ lệnh manls.
Các cờ được lệnh ls sử dụng có thể viết liền hay viết rời, kết quả như nhau. Thí dụ ls -l -F và ls -lF đều cho cùng một kết quả.
Bảng 10.1: Các cờ dùng với lệnh ls
Cờ Mô tả
-a Liệt kê mọi tệp vì ls mặc định không liệt kê những tệp bắt đầu bằng dấu chấm (thường đó là các tệp cấu hình có rất nhiều trong home directory nên sẽ làm rối mắt nếu ls lại mặc định là liệt kê mọi tệp)
-A Như –a, song không liệt kê 2 bí danh “.” và “..”. Vì tên những tệp này bắt đầu bằng dấu chấm nên -a liệt kê cả chúng
-b Buộc các ký tự phi đồ hoạ phải xuất hiện ở dạng bát phân \ddd, cờ -b tiện dùng hơn -q vì nó giúp chúng ta hình dung các ký tự ấy ra như thế nào
-c Sử dụng thời gian của lần truy cập, chỉnh sửa gần nhất đề phân loại. Linux dán 3 loại nhãn ngày giờ vào tệp: lúc tạo ra tệp, lần truy cập gần nhất và lần chỉnh sửa gần nhất. Các tệp thường liệt kê theo thứ tự abc, nhưng chữ in hoa được xếp trước chữ thường -d
tên_tệp Nếu đối số là một thư mục, cờ này chỉ liệt kê tên (không liệt kê nội dung); thường dùng với -l để xem trạng thái thư mục. Thường nội dung thư mục chỉ được liệt kê khi nào được khẳng định là phải liệt kê, hoặc dùng chung với wildcard (ký tự đại diện). Do đó lệnh ls chỉ liệt kê tên thư mục, trong khi ls * lại liệt kê tệp, thư mục và nội dung của bất kỳ thư mục nào có mặt trong thư mục hiện hành
-F Đánh dấu thư mục bằng dấu chéo /, đánh dấu tệp khả thi bằng dấu sao, các kết nối tượng trưng bằng dấu a vòng @, các FIFO bằng dấu | và các rãnh cắm (socket) bằng dấu -
-i In các inode tại cột đầu tiên của bản báo cáo. Nếu chúng ta liệt kê những tệp kết nối, nên lưu ý là chúng đều có cùng số inode. -l Liệt kê mục ghi thư mục ở dạng dài, bao gồm cả quyền hạn, số
kết nối, chủ sở hữu, kích thước tính bằng byte và ngày giờ chỉnh sửa gần nhất. Nếu đấy là tệp đặc biệt, trường kích thước sẽ chứa số hiệu thiết bị trưởng và thứ. Nếu thời gian chỉnh sửa cách nay hơn sáu tháng, sẽ hiển thị tháng, ngày và năm; ngược lại sẽ chỉ hiện ngày giờ. Nếu tệp là kết nối tượng trưng, tên đường dẫn của tệp đích sẽ được hiển thị sau dấu mũi tên. Chúng ta có thể phối hợp -l với các tuỳ chọn khác, thí dụ như -n
-n Thay vì tên, sẽ hiển thị số ID của user và nhóm kết hợp với từng tệp và thư mục. Thông thường ls chỉ liệt kê tên. –n rất tiện lợi khi thiết lập mạng, chẳng hạn như TCP/IP, vì chúng ta cần biết số ID để cấp quyền hạn qua nhiều hệ thống khác nhau đang nối mạng -q Hiển thị các ký tự phi đồ hoạ trong tên tệp thành dấu hỏi. Đối với
tệp được tạo ra bằng những ký tự không in được, cờ -q sẽ hiển thị tệp ấy
-r Đảo ngược thứ tự sắp xếp abc hoặc thời gian
-s Hiển thị kích thước tệp, gồm cả những block gián tiếp ánh xạ tệp. Nếu có biến môi trường POSIX_CORRECT, mỗi block sẽ là 512 byte
-t Sắp xếp theo thứ tự thời điểm chỉnh sửa (gần nhất xếp trước) thay vì theo tên. Nếu muốn xem những tệp lâu đời trước, chúng ta gõ - rt.
-u Sử dụng thời điểm truy cập gần nhất, thay vì thời điểm thay đổi gần nhất để sắp xếp (với -t) hoặc để in (với –l).
-x Buộc Linux xuất mục ghi ra thành dạng nhiều cột dàn hàng ngang, thay vì ở cuối trang.
Nếu có bản Linux Slackware, chúng ta sẽ nhận thấy rằng ls cũng hiện các màu khác nhau cho từng loại tệp. Màu được xác định ở tệp cấu hình DIR_COLORS trong thư mục /etc (từ phiên bản 6.1 trở đi, RedHat cũng sử dụng màu khi liệt kê tệp).
Cấu hình mặc định bao gồm:
- Tệp khả thi: màu xanh lá cây (green) - Thư mục: màu xanh biển (blue)
- Kết nối tượng trưng: màu lục lam (cyan).
Muốn căn chỉnh màu, chúng ta chép tệp DIR_COLORS về home directory rồi đổi tên thành .dir_colors.
Bảng sau liệt kê các định nghĩa màu khả dụng. Mời chúng ta tham khảo thêm các trang man về tệp DIR_COLORS.
Bảng 10.2: Các giá trị DIR_COLORS thể hiện màu sắc.
Giá trị Mô tả
0 Phục hồi các màu mặc định 1 Cho vùng có màu sáng hơn. 4 Cho vùng văn bản gạch dưới. 5 Cho vùng văn bản nhấp nháy. 30 Cho vùng tiền cảnh màu đen. 31 Cho vùng tiền cảnh màu đỏ.
32 Cho vùng tiền cảnh màu xanh lá cây. 33 Cho vùng tiền cảnh màu vàng (hoặc nâu). 34 Cho vùng tiền cảnh màu xanh biển.
35 Cho vùng tiền cảnh màu đỏ tía. 36 Cho vùng tiền cảnh màu lục lam.
37 Cho vùng tiền cảnh màu trắng hoặc xám. 40 Cho vùng nền màu đen.
41 Cho vùng nền màu đỏ.
42 Cho vùng nền màu xanh lá cây 43 Cho vùng nền màu vàng hoặc nâu.
44 Cho vùng nền màu xanh biển. 45 Cho vùng nền màu đỏ tía. 46 Cho vùng nền màu lục lam.
47 Cho vùng nền màu trắng hoặc xám.