Ssh
為什麼 nano 有時會通過 SSH 顯示顏色?
通常,當我通過 SSH 編輯一個小文件時,我只會打開 nano。我看了一下我的 apache2 access.log。由於我沒有在此框中啟用 fail2ban 或任何功能,因此我通常也會查看 access.log.1。我注意到在我的 access.log.(#) 中,一個特定的行總是有一個奇怪的突出顯示:
GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 516 "-" "-"
我注意到的更多事情:
- 僅當該行中有 .B 或 .I 並且該行之後的每個字母都是紅色時才會發生這種情況
- 這只發生在以數字結尾的文件中;它出現在 access.log.1 中,但不在 access.log 中。任何 test.log.1 都一樣
- 這僅適用於 filename.1 到 filename.9
- 從
syntax "man" "\.[1-9]x?$"
我得到的行中,文件 .1 到 .9 被突出顯示.. 但是為什麼呢?顯然 /usr/share/nano 中的文件處理語法突出顯示,經過一番探勘,我發現一個文件特別負責:man.nanorc。以下是它的內容:
## Here is an example for manpages. ## syntax "man" "\.[1-9]x?$" color green "\.(S|T)H.*$" color brightgreen "\.(S|T)H" "\.TP" color brightred "\.(BR?|I[PR]?).*$" color brightblue "\.(BR?|I[PR]?|PP)" color brightwhite "\\f[BIPR]" color yellow "\.(br|DS|RS|RE|PD)"
對於 wordpress 站點上的 wp-config.php 等文件,nano 會正確突出顯示語法。.I 和 .B 有什麼特別之處,它使第一個字元變為藍色,其餘字元變為紅色,這與 .1 有什麼關係?
對於那些語法高亮規則文件,
nano
假設以 .1 - .9 結尾的文件名是手冊頁。自從我編輯手冊頁以來已經有一段時間了,但我很確定 in是斜體
groff -man
,是粗體。.I``.B