成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你所不知道的用less查看文件的高級用法

系統(tǒng) Linux
最近,我正在拜讀 Scott Nesbitt 的文章《在 Linux 命令行中使用 less 來查看文本文件》,并受到了一些啟發(fā),所以我想分享一些使用 less 命令的技巧。

[[318853]]

使用 less 文件查看器的一些技巧。

最近,我正在拜讀 Scott Nesbitt 的文章《在 Linux 命令行中使用 less 來查看文本文件》,并受到了一些啟發(fā),所以我想分享一些使用 less 命令的技巧。

LESS 環(huán)境變量

如果你定義了環(huán)境變量 LESS(例如在 .bashrc 中),那么 less 會將其視為一個選項列表,就像在命令行中傳遞給它一樣。

我這樣定義:

  1. LESS='-C -M -I -j 10 -# 4'

它的意思是:

  • -C – 通過不從底部滾動來加快全屏打印速度。
  • -M – 在最后一行(狀態(tài)行)顯示更多信息。你可以使用 -PM 來自定義顯示的信息,但我通常只用 -M
  • -I – 忽略搜索中的大小寫。
  • -j 10 – 在終端的第 10 行而不是第一行顯示搜索結果。這樣,每次按 n 或(N) 跳到下一個(或上一個)匹配項時,就會有 10 條上下文。
  • -# 4 – 當按下向右或向左的箭頭時,會向右或向左跳四個字符。默認情況時跳轉半個屏幕,我覺得太多了。一般來說,less 似乎(至少部分)是按最初開發(fā)它時的環(huán)境優(yōu)化的,那時使用慢速調制解調器和低帶寬的互聯(lián)網(wǎng)連接,所以跳過半個屏幕是有意義的。

PAGER 環(huán)境變量

許多程序使用在 PAGER 環(huán)境變量中的命令來顯示信息。因此,你可以在 .bashrc 中設置 PAGER=less,然后讓程序運行 less。查看手冊頁(man 7 environ)中是否有其它此類變量。

-S

-S 告訴 less 將長行切斷而不是將它們換行。除非我在(或我要)查看文件,否則我很少需要這樣做。幸運的是,你可以在 less 中輸入所有命令行選項,就像它們是鍵盤命令一樣。因此,如果我想在文件已經(jīng)打開的情況下隔斷長行,我可以簡單地輸入 -S。(LCTT 譯注:注意大寫 S ,并按回車)

這是我經(jīng)常使用的一個例子:

  1. su - postgres
  2. export PAGER=less  # 因為我不用在所有的機器上編輯 postgres .bashrc
  3. psql

有時當我查看一個 SELECT 命令的輸出非常寬時,我會輸入 -S 以便將其格式化的漂亮一些。如果當我按下右箭頭想查看更多內(nèi)容時它跳得太遠(因為我沒有設置 -#),則可以輸入 -#8,那么每次按下右箭頭都會向右移動八個字符。

有時在多次輸入 -S 之后,我會退出 psql 并設置環(huán)境變量后再次運行它:

  1. export LESS=-S

F

命令 F 可以使 lesstail -f 一樣工作,等待更多的數(shù)據(jù)被添加到文件后再顯示它們。與 tail -f 相比,它的一個優(yōu)點是,高亮顯示搜索匹配仍然有效。因此,你可以輸入 less /var/log/logfile,搜索某些內(nèi)容時,它將高亮顯示所有出現(xiàn)的內(nèi)容(除非你使用了 -g),然后按下 F 鍵,當更多數(shù)據(jù)寫入到日志時,less 將顯示它并高亮新的匹配項。

按下 F 后,可以按 Ctrl+C 來停止其查找新數(shù)據(jù)(這不會干掉它),這樣你可以返回文件查看舊內(nèi)容,搜索其它內(nèi)容等,然后再次按 F 鍵來查看更多新數(shù)據(jù)。

搜索

搜索使用系統(tǒng)的正則表達式庫,這通常意味著你可以使用擴展正則表達式。特別是,搜索 one|two|three 可以找到并高亮所有的 one、two 或 three。

我經(jīng)常使用的另一種模式是 .*someting.*,特別是對于一些很長的日志行(例如,跨越多個終端寬度的行),它會高亮整行。這種模式使查看一行的起始和結束位置變得更加容易。我還會結合其它內(nèi)容,例如 .*one thing.*|.*another thing.*,或者使用 key: .*|.*marker.* 來查看 key 的內(nèi)容。例如,一個日志文件中包含一些字典/哈希的轉儲。它會高亮相關的標記行,這樣我就看到上下文了,甚至,如果我知道這個值被引號引起來的話,就可以:

  1. key: '[^']*'|.*marker.*

less 會保留你的搜索項的歷史紀錄,并將其保存到磁盤中以備將來調用。當你按下 /? 時,可以使用向上或向下箭頭瀏覽歷史記錄(以及進行基本的行編輯)。

在撰寫本文時,我無意間看了下 less 手冊頁,發(fā)現(xiàn)了一個非常有用的功能:使用 &!pattern 跳過無關的行。例如,當我在 /var/log/messages 中尋找內(nèi)容時,經(jīng)常會一個個迭代使用以下命令:

  1. cat /var/log/messages | egrep -v 'systemd: Started Session' | less
  2. cat /var/log/messages | egrep -v 'systemd: Started Session|systemd: Starting Session' | less
  3. cat /var/log/messages | egrep -v 'systemd: Started Session|systemd: Starting Session|User Slice' | less
  4. cat /var/log/messages | egrep -v 'systemd: Started Session|systemd: Starting Session|User Slice|dbus' | less
  5. cat /var/log/messages | egrep -v 'systemd: Started Session|systemd: Starting Session|User Slice|dbus|PackageKit Daemon' | less

但是現(xiàn)在我知道如何在 less 中做同樣的事情。例如,我可以輸入 &!systemd: Started Session,然后想要隱藏 systemd: Starting Session,所以我輸入 &!,并使用向上箭頭從歷史記錄中獲得上一次搜索的結果。然后我接著輸入 |systemd: Starting Session 并按下回車,繼續(xù)以相同的方式添加更多條目,直到我過濾掉足夠多的條目,看到更有趣的內(nèi)容。

=

命令 = 顯示有關文件和位置的更多信息,甚至比 -M 更多。如果文件非常大,計算 = 花費的時間太長,可以按下 Ctrl+C,它將停止嘗試計算。

如果你正在查看的內(nèi)容來自管道而不是文件,則 =(和 -M)不會顯示未知內(nèi)容,包括文件中的行數(shù)和字節(jié)數(shù)。要查看這些數(shù)據(jù),如果你知道管道命令將很快結束,則可以使用 G 跳到最后,然后 less 將開始顯示這些信息。

如果按下 G 并且寫入管道的命令花費的時間比預期的長,你可以按下 Ctrl+C,該命令將被終止。即使你沒有按 GCtrl+C 鍵也會殺死它。因此,如果你不想終止命令,請不要意外按下 Ctrl+C。出于這個原因,如果命令執(zhí)行了某些操作(不僅是顯示信息),通常更安全的做法是將其輸出寫入文件并在單獨的終端中查看文件,而不是使用管道。

為什么你需要 less

less 是一個非常強大的程序,與該領域中較新的競爭者(例如 mostmoar)不同,你可能會在幾乎所有的系統(tǒng)上找到它,就像 vi 一樣。因此,即使你使用 GUI 查看器或編輯器,花一些時間瀏覽 less 手冊頁也是值得的,至少可以了解一下它的用處。這樣,當你需要做一些已有的功能可能提供的工作時,就會知道如何要搜索手冊頁或互聯(lián)網(wǎng)來找到所需的內(nèi)容。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2020-08-05 12:17:00

C語言代碼分配

2017-12-15 13:44:22

2020-09-15 08:35:57

TypeScript JavaScript類型

2017-12-25 13:26:36

CNN深度學習網(wǎng)絡

2018-11-25 10:08:44

阿里巴巴技術開源

2020-02-21 14:55:02

Python代碼字符串

2020-07-28 08:26:34

WebSocket瀏覽器

2020-06-12 09:20:33

前端Blob字符串

2021-01-29 13:22:58

Swagger版本OpenAPI

2018-01-26 08:26:35

RAID陣列組成

2013-09-09 09:59:39

虛擬化云計算

2017-10-10 13:58:38

前端CSS濾鏡技巧

2019-10-22 22:43:55

Linux網(wǎng)絡安全數(shù)據(jù)

2014-07-29 16:21:57

Git

2020-02-17 16:47:44

Android Context細節(jié)

2011-04-13 10:06:50

網(wǎng)關路由器寬帶路由器

2015-11-02 13:50:34

物聯(lián)網(wǎng)物聯(lián)網(wǎng)發(fā)展

2018-02-07 08:21:42

2010-08-23 09:20:11

Linux命令

2015-03-25 11:14:28

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产ts一区 | 欧美日韩国产一区二区 | 精品国产欧美 | 日韩欧美中文字幕在线观看 | 99视频在线免费观看 | 色一情一乱一伦一区二区三区 | 亚洲风情在线观看 | 又爽又黄axxx片免费观看 | 久久国品片 | www.狠狠干 | 一级片在线免费看 | 精品久久久久久久 | 成人在线精品视频 | 七七婷婷婷婷精品国产 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 久久一区二区三区四区 | 91偷拍精品一区二区三区 | 久久丁香 | 浴室洗澡偷拍一区二区 | h视频在线播放 | 人人干免费 | 日韩中文在线视频 | 国产中文字幕在线 | 九九热免费看 | 精品在线免费看 | 一级欧美视频 | 亚洲欧美一区二区三区视频 | 伊人网综合 | 亚洲免费视频网站 | 欧美一级免费看 | 国产精品日韩在线 | 久草网在线视频 | 能看的av | 玖玖国产 | 婷婷福利视频导航 | 国产精品久久久久久久久久三级 | 丝袜一区二区三区 | 操视频网站 | 91一区二区| www在线| 国产精品久久久久免费 |