Trong Linux, lệnh “strings” được sử dụng để hiển thị các chuỗi có trong một file, thường là các file nhị phân hoặc các file chứa các đoạn mã.
Cú pháp lệnh:
strings [options] [file]
Trong đó, “file” là tên hoặc đường dẫn đến file cần xem các chuỗi.
Các tùy chọn phổ biến của lệnh “strings” gồm:
- “-n”: chỉ định độ dài tối thiểu của một chuỗi được hiển thị.
- “-t”: cho biết kiểu định dạng của file đầu vào (hex, octal, hoặc decimal).
- “-a”: hiển thị tất cả các chuỗi, kể cả các chuỗi không in được.
Ví dụ 1:
strings /usr/bin/python3 | grep "import"
Lệnh trên sẽ hiển thị tất cả các chuỗi trong file thực thi của Python 3 trên hệ thống và lọc ra các chuỗi chứa từ khóa “import”.
Customize the character limit
strings -n 2 gyp.el
Lệnh “strings -n” trong Linux được sử dụng để in ra chuỗi có chiều dài từ một giá trị nhất định được chỉ định bởi tùy chọn “-n”. Tùy chọn này cho phép người dùng chỉ định độ dài tối thiểu của mỗi chuỗi được in ra. Ví dụ, khi sử dụng lệnh “strings -n 2 gyp.el”, nó sẽ in ra tất cả các chuỗi có chiều dài ít nhất là 2 ký tự từ file gyp.el.Lệnh “strings -n” trong Linux được sử dụng để in ra chuỗi có chiều dài từ một giá trị nhất định được chỉ định bởi tùy chọn “-n”. Tùy chọn này cho phép người dùng chỉ định độ dài tối thiểu của mỗi chuỗi được in ra. Ví dụ, khi sử dụng lệnh “strings -n 2 gyp.el”, nó sẽ in ra tất cả các chuỗi có chiều dài ít nhất là 2 ký tự từ file gyp.el.
Piping the limit
strings gyp.el | less, strings
Trong lệnh strings gyp.el | less
, strings
là một lệnh trong Linux dùng để trích xuất các chuỗi ký tự trong một tập tin nhị phân (binary file). Khi được sử dụng với cờ -n
, lệnh này sẽ chỉ hiển thị những chuỗi có độ dài tối thiểu được chỉ định.
Trong ví dụ này, lệnh strings gyp.el
sẽ trích xuất các chuỗi ký tự từ tập tin gyp.el
và chuyển chúng vào luồng đầu vào tiếp theo. Sau đó, kết quả được đưa cho lệnh less
để hiển thị dưới dạng trang văn bản tương tác. Điều này cho phép người dùng cuộn qua các chuỗi và xem các chuỗi đó một cách dễ dàng hơn.
How to look through RAM using Strings command?
sudo strings /dev/mem | less
Lệnh “sudo strings /dev/mem | less” được sử dụng để trích xuất các chuỗi ký tự từ vùng nhớ của hệ thống Linux. Tuy nhiên, để chạy lệnh này, bạn cần quyền truy cập root, do đó, lệnh được khởi chạy với sudo.
/dev/mem là một file đặc biệt trong Linux, chứa toàn bộ bộ nhớ của hệ thống. Bằng cách sử dụng lệnh “strings” với file /dev/mem, ta có thể tìm kiếm các chuỗi ký tự mà nằm trong các vùng nhớ khác nhau của hệ thống.
Kết quả sẽ được đưa ra theo trang để hiển thị dễ dàng hơn. Ta sử dụng less để trình bày các chuỗi ký tự một cách dễ đọc hơn.
Change the Encoding
Change the Encoding có nghĩa là thay đổi bộ mã hóa của một file văn bản từ một bộ mã hóa sang bộ mã hóa khác. Việc thay đổi bộ mã hóa thường được thực hiện để đảm bảo rằng file có thể đọc và hiển thị chính xác trên các hệ thống khác nhau hoặc khi sử dụng các ứng dụng văn bản khác nhau.
Chuyển đổi bộ mã hóa thường được thực hiện bằng các công cụ chuyển đổi mã hóa như iconv, recode, chardet, hoặc các trình soạn thảo văn bản như vim, emacs, gedit. Quá trình thay đổi bộ mã hóa có thể gây ra mất mát dữ liệu, nên cần cẩn thận khi thực hiện.
strings -e S file_name
or
strings --encoding=S file_name
Cả hai câu lệnh đều được sử dụng để chỉ định mã hóa của file văn bản được sử dụng bởi lệnh strings
. Thông thường, strings
sử dụng mã hóa ASCII để trích xuất các chuỗi từ file, tuy nhiên đôi khi file đó được viết bằng một mã hóa khác.
Với tùy chọn -e
hoặc --encoding
, bạn có thể chỉ định mã hóa được sử dụng để trích xuất các chuỗi từ file. Thay vì S
, bạn có thể thay thế mã hóa của mình, ví dụ như UTF-8
, ISO-8859-1
, vv.
Include Whitespaces
Tùy chọn Include Whitespaces
trong lệnh strings
được sử dụng để bao gồm cả các ký tự khoảng trắng và các ký tự không in được vào đầu ra của lệnh. Mặc định, strings
chỉ in ra các chuỗi có thể đọc được và loại bỏ tất cả các ký tự không in được, bao gồm các ký tự trắng, tab và các ký tự ASCII không in khác.
Để sử dụng tùy chọn này, ta sử dụng -w
hoặc --include-all-whitespace
khi chạy lệnh strings
. Ví dụ:
strings -w example_file.txt
Lệnh này sẽ in ra toàn bộ chuỗi có thể đọc được trong file example_file.txt
, bao gồm cả các ký tự khoảng trắng và các ký tự không in được.
Reading options from file
Reading options from file (Đọc tùy chọn từ file) là một tính năng cho phép người dùng đọc các tùy chọn được cấu hình sẵn từ một file để sử dụng trong các lệnh Linux. Thay vì viết các tùy chọn trong câu lệnh, người dùng có thể đặt các tùy chọn vào một file, sau đó chỉ cần gọi lệnh và chỉ định tên file đó. Điều này giúp giảm thiểu lỗi khi gõ các tùy chọn và tăng tính linh hoạt trong việc quản lý file cấu hình.
Cú pháp:
command [options] $(cat filename)
Ví dụ, nếu bạn có một file có tên là options.txt
chứa các tùy chọn cấu hình cho lệnh ls
, bạn có thể sử dụng lệnh sau để đọc tùy chọn từ file:
ls $(cat options.txt)
Lệnh này sẽ đọc các tùy chọn từ file options.txt
và sử dụng chúng để thực hiện lệnh ls
.