Web \ x20Co là gì trong lsof -i


4

2 dòng cuối cùng của lsof -i được hiển thị như bên dưới. Đó là những gì? Tôi sử dụng OpenSuse LEAP 42.2.

Web\x20Co 7066 user1   38u  IPv4  76006      0t0  UDP *:43756 
Web\x20Co 7066 user1   39u  IPv6  76008      0t0  UDP *:46834

\x20là một ký tự không gian thoát (``).
Daniel B

Ở trên bạn có thể nhận thêm thông tin về quy trình 7066 bằng cách sử dụng ps aux | grep 7066. Hoặc thậm chí nhiều thông tin hơn bởi ps -eo pid,user,group,args,etime,lstart | grep 7066. Tôi đoán sẽ là máy chủ Web (Apache).
harrymc

Bạn có máy tính được kết nối / tích hợp trong bất kỳ thành phần nào được tạo bởi X20, có thể là bộ điều khiển mạng không?
harrymc

Không, thực sự. Đó là một không gian. Tên thực thi hoặc quy trình thực tế bắt đầu bằng "Web Co". Bạn có thể dễ dàng sao chép điều này bằng cách tạo một bản sao socat, gọi nó Web Contentvà sau đó tạo kết nối mạng bằng cách sử dụng nó.
Daniel B

Câu trả lời:


2

Các \x20chuỗi trong cột đầu tiên là một giá trị thập lục phân cho một ký tự ASCII, trong trường hợp này các nhân vật không gian. Định dạng đầu ra được sử dụng bởi lsof được mô tả trên trang lsof man.

Lsof only outputs printable (declared so by isprint(3)) 8 bit characters.  Non-printable characters are printed in one of three forms: the  C  ``\[bfrnt]''  form;  the
   control  character `^' form (e.g., ``^@''); or hexadecimal leading ``\x'' form (e.g., ``\xab'').  Space is non-printable in the COMMAND column (``\x20'') and printable
   elsewhere.

Trang man mô tả rằng đối với cột LỰA CHỌN (hiển thị bên trái trong đầu ra ví dụ), ký tự khoảng trắng được coi là không thể in được.


1

Đây \x20là một không gian.

Các \x20là một không gian " ".
Tiền tố thập lục phân \xlà một trong 3 cách lsofđể in các ký tự không in được .
Không gian trong bảng ASCII có giá trị 32 trong hệ thống số thập phân, 20 ở dạng hex và 040 oct .

Theo quy tắc, chỉ các ký tự có giá trị ASCII bát phân trong 040 và 176 được coi là "có thể in" bằng isprint [ isprint ] (xem bảng). Trong phần thập phân là các ký tự trong [32-126] được bao gồm.

Điều thú vị cần lưu ý là không gian là một ký tự có thể in được cho isprint[ isprint , isprint C ++ ] , ngay cả khi nó không có biểu diễn đồ họa [*] và nó thường được sử dụng làm dấu tách trường.

Do đó, ở người đàn ông, chúng tôi tìm thấy một dòng bổ sung chỉ dành cho khoảng trắng [ 1 ] và trong cột LỰA CHỌN:

Lsof chỉ xuất ra các ký tự 8 bit có thể in được (được khai báo bằng isprint (3) ) . Các ký tự không in được in ở một trong ba dạng:

  • dạng C '\ [bfrnt]';
  • dạng ký tự điều khiển `^ '(ví dụ:` `^ @' ');
  • hoặc dạng thập lục phân hàng đầu '\ x' (ví dụ: `` \ xab '').

Không gian không thể in được trong cột LỰA CHỌN (`` \ x20 '') và có thể in ở nơi khác.

(thụt và đậm là của tôi)

Tại sao không gian là một ký tự không in được?

Thú vị ở đây là để biết lý do tại sao nó được coi là "không thể in" .
Có vẻ như vì lý do bảo mật, vì chúng ta có thể đọc từ FAQ [ 2 ] :

14.5.1 Tại sao không gian được coi là ký tự không in được trong tên lệnh?

Space is considered an unprintable character in command
names because it is sometimes possible to hide the full
command name from scripts that parse ps(1) output by
embedding a space in the name.

Một số từ nữa

Nếu bạn cảm thấy khó chịu với đầu ra này, bạn có thể cân nhắc đọc phần ĐẦU RA CHO CÁC CHƯƠNG TRÌNH KHÁC của lsofngười đàn ông và các -Fthông số kỹ thuật tùy chọn:

Khi tùy chọn -F được chỉ định, lsof tạo đầu ra phù hợp để xử lý bởi một chương trình khác - ví dụ: tập lệnh awk hoặc Perl hoặc chương trình C.
...


[*] Lưu ý: Nó tồn tại một hàm có tên isgraph[ isgraph C ++ ] để kiểm tra cho dù c là một nhân vật với đại diện đồ họa nhưng thực tế câu trả lời đúng cho tất cả những nhân vật hơn có thể được in (như bằng isprint) ngoại trừ các nhân vật không gian.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.