Xem tệp bằng những cách khác

Một phần của tài liệu Giáo trình hệ điều hành mã nguồn mở (nghề kỹ thuật lắp ráp và sửa chữa máy tính) trình độ cao đẳng nghề (Trang 141 - 143)

1. Các thao tác cơ bản với tệp

1.6.6. Xem tệp bằng những cách khác

Có thể hiển thị nội dung tệp bằng nhiều cách khác. Thí dụ, nếu muốn xem nội dung của một tệp nhị phân, chúng ta dùng lệnh od (từ chữ octal dump). Lệnh od

hiển thị tệp dưới dạng mặc định là bát phân (hệ đếm cơ sở 8). Dùng kèm với những cờ khác, od có thể hiển thị tệp nhị phân dưới dạng thập phân, ASCII, hoặc thập lục phân (cơ sở 16).

Sở dĩ phải hiển thị tệp theo những gián tiếp như dạng bát phân, thập phân, hoặc thập lục phân là vì hiển thị dữ liệu ở dạng nhị phân vẫn còn là một vấn đề nan giải. Nếu dữ liệu được thể hiện ở dạng ASCII thì rất dễ đọc, vì các ký tự ASCII là dạng mà mọi người nhìn thấy khi xem hầu hết các tệp văn bản. Song nếu tệp là một chương trình nhị phân thì dữ liệu không thể được trình bày ở dạng ASCII. Trong trường hợp này chúng ta phải hiển thị bằng hình thức chuyển đổi hệ đếm số.

UNIX ra đời trên những máy minicomputer sử dụng các ký tự 12 bit. Chúng ta ngày nay thường lấy byte (8 bit) làm một chuẩn độ dài bộ nhớ. Mặc dù có thể hiển thị theo hệ thập phân quen thuộc, song vấn đề là hiển thị cái gì - một byte, một chữ, hay 32 bit? Thao tác hiển thị một số lượng bit nào đó, đòi hỏi phải chuyển đổi hệ nhị phân căn cứ trên số lượng bit ấy. Với hệ 12 bit chúng ta có thể hiển thị toàn bộ 12 bit với bốn con số (hiển thị bằng 23, dưới dạng bát phân). Các hệ UNIX trước đây đều chạy trên những máy tính 12 bit như thế, do đó phần lớn các phép ghi của UNIX (và do đó của Linux) đều ở dạng bát phân. Bất cứ byte nào cũng có thể hiển thị bằng một mã bát phân với ba chữ số có dạng như sau (thí dụ hiển thị giá trị thập phân của 8):

\010

Vì thế giới ngày nay đã chuyển sang dạng byte 8 bit nên bát phân không còn hiệu quả khi trình bày dữ liệu. Hệ thập lục phân (cơ sở 16 hoặc 24) là cách tốt hơn.

Một byte 8 bit có thể trình bày bằng hai chữ số thập lục phân. Thí dụ byte có giá trị thập phân là 10 sẽ được hiển thị thành 0A theo cơ sở 16.

Lệnh od giúp chúng ta chọn lựa cách hiển thị dữ liệu. Hình thức tổng quát như sau: od [tuỳ_chọn] [tệp] hoặc: od - traditional [tệp] [[+]offset[[+]nhãn]] Bảng 10.3: Các cờ dùng với lệnh od Cờ ngắn Cờ dài Mô tả -A --address-radix=cơ

sở Xác định cách in những khoảng trống offset trong tệp -N --read-bytes=byte Giới hạn phần kết xuất bằng lượng byte nhập

liệu cho mỗi tệp

-j --skip-bytes=byte Bỏ qua lượng byte nhập liệu đầu tiên ở mỗi tệp -s --strings[=byte] Xuất chuỗi với ít nhất là bao nhiêu byte ký tự

đồ hoạ

-t --format=loại Chọn một hoặc nhiều dạng xuất liệu

-v --output-duplicates Không cho phép dùng * để đánh dấu việc bỏ dòng

-w --width[=byte] Xuất bao nhiêu byte ở mỗi dòng xuất liệu --traditional Chấp nhận đối số ở dạng pre-POSIX --help Hiển thị phần trợ giúp này và thoát khỏi --version Xuất thông tin phiên bản và thoát khỏi

Chúng ta có thể dùng chung dạng thức pre-POSIX ở bảng sau đây với các lệnh ở bảng trên và nhận được kết quả tổng hợp.

Bảng 10.4: Các đặc tả dạng pre-POSIX dùng với lệnh od.

Cờ

ngắn Tương đương POSIX Mô tả

-a - t a Chọn các ký tự có tên

-b -t c Chọn các byte bát phân

-c -t c Chọn các ký tự ASCII hoặc backlash escape -d -t u2 Chọn các thập phân ngắn không đánh dấu

-f -t fF Chọn các float -h -tx2 Chọn các thập lục phân ngắn -I -t d2 Chọn thập phân ngắn -l -t d4 Chọn thập phân dài -o -t o2 Chọn bát phân ngắn -x -t x2 Chọn thập lục phân ngắn

Trong bảng trên, kích cỡ là một số và cũng có thể là C cho sizeof(char), S cho sizeof(short), I cho sizeof(int), hoặc L cho sizeof(long). Nếu là loại f, kích cỡ có thể là F cho sizeof(float), D cho sizeof(double), hoặc L cho sizeof(Long double).

Ghi chú: Trong ngôn ngữ C, sizeof là một chức năng phản hồi số byte trong

cấu trúc dữ liệu được dùng làm tham số. Thí dụ chúng ta sẽ dùng chức năng gọi sau đây để xác định số byte trong một số nguyên trên hệ thống máy, bởi vì số byte trong một số nguyên tuỳ thuộc vào hệ thống:

sizeof(int); cơ số trong bảng 17.3 đại diện cho số hệ thống và sẽ là d cho thập phân deca, O cho bát phân (octa), X cho thập lục (hexa), hoặc n cho none (không có). Byte là thập lục phân với tiền tố 0x hoặc 0X; byte được nhân với 512 nếu có hậu tố b (bit), nhân với 1024 nếu có k (kilo) và với 1.048.476 nếu có m (mega). Nếu không có con số nào, -s sẽ mặc định 3, trong trường hợp tương tự, -w sẽ mặc định 32. Theo mặc định, od dùng -A0 -td2 -w16.

Một phần của tài liệu Giáo trình hệ điều hành mã nguồn mở (nghề kỹ thuật lắp ráp và sửa chữa máy tính) trình độ cao đẳng nghề (Trang 141 - 143)

Tải bản đầy đủ (PDF)

(178 trang)