国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
每個程序員都應該知道的8個Linux命令

每個程序員,在職業(yè)生涯的某個時刻,總會發(fā)現(xiàn)自己需要知道一些Linux方面的知識。我并不是說你應該成為一個Linux專家,我的意思是,當面對linux命令行任務時,你應該能很熟練的完成。事實上,學會了下面8個命令,我基本上能完成任何需要完成的任務。

注意:下面的每個命令都有十分豐富的文檔說明。這篇文章并不是來詳盡的展示每個命令的各種功用的。我在這里要講的是這幾個最常用的命令的最常見用法。如果你對linux命令并不是很了解,你想找一些這方面的資料學習,那這篇文章將會給你一個基本的指導。

讓我們從處理一些數(shù)據(jù)開始。假設我們有兩個文件,分別記錄的訂單清單和訂單處理結果。

1
2
3
4
5
6
7
8
9
order.out.log
  8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99
  8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99
  8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99
  
 order.in.log
  8:22:20 111, Order Complete
  8:23:50 112, Order sent to fulfillment
  8:24:20 113, Refund sent to processing

 

cat

cat – 連接文件,并輸出結果

cat 命令非常的簡單,你從下面的例子可以看到。

1
2
3
4
jfields$ cat order.out.log 
8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99
8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99
8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

就像它的說明描述的,你可以用它來連接多個文件。

1
2
3
4
5
6
7
jfields$ cat order.* 
8:22:20 111, Order Complete
8:23:50 112, Order sent to fulfillment
8:24:20 113, Refund sent to processing
8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99
8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99
8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

如果你想看這些log文件的內容,你可以把它們連接起來并輸出到標準輸出上,就是上面的例子展示的。這很有用,但輸出的內容可以更有邏輯些。

 

sort

sort – 文件里的文字按行排序

此時sort命令顯然是你最佳的選擇。

1
2
3
4
5
6
7
jfields$ cat order.* | sort
8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99
8:22:20 111, Order Complete
8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99
8:23:50 112, Order sent to fulfillment
8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99
8:24:20 113, Refund sent to processing

就像上面例子顯示的,文件里的數(shù)據(jù)已經(jīng)經(jīng)過排序。對于一些小文件,你可以讀取整個文件來處理它們,然而,真正的log文件通常有大量的內容,你不能不考慮這個情況。此時你應該考慮過濾出某些內容,把cat、sort后的內容通過管道傳遞給過濾工具。

 

grep

grep, egrep, fgrep – 打印出匹配條件的文字行

假設我們只對Patterns of Enterprise Architecture這本書的訂單感興趣。使用grep,我們能限制只輸出含有Patterns字符的訂單。

1
2
3
jfields$ cat order.* | sort | grep Patterns
8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99
8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

假設退款訂單113出了一些問題,你希望查看所有相關訂單——你又需要使用grep了。

1
2
3
jfields$ cat order.* | sort | grep ":\d\d 113, "
8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99
8:24:20 113, Refund sent to processing

你會發(fā)現(xiàn)在grep上的匹配模式除了“113”外還有一些其它的東西。這是因為113還可以匹配上書目或價格,加上額外的字符后,我們可以精確的搜索到我們想要的東西。

現(xiàn)在我們已經(jīng)知道了退貨的詳細信息,我們還想知道日銷售和退款總額。但我們只關心Patterns of Enterprise Architecture這本書的信息,而且只關心數(shù)量和價格。我現(xiàn)在要做到是切除我們不關心的任何信息。

 

cut

cut – 刪除文件中字符行上的某些區(qū)域

又要使用grep,我們用grep過濾出我們想要的行。有了我們想要的行信息,我們就可以把它們切成小段,刪除不需要的部分數(shù)據(jù)。

1
2
3
4
5
6
7
jfields$ cat order.* | sort | grep Patterns
8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99
8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99
  
jfields$ cat order.* | sort | grep Patterns | cut -d"," -f2,5
 1, 39.99
 -1, 39.99

現(xiàn)在,我們把數(shù)據(jù)縮減為我們計算想要的形式,把這些數(shù)據(jù)粘貼到Excel里立刻就能得到結果了。

cut是用來消減信息、簡化任務的,但對于輸出內容,我們通常會有更復雜的形式。假設我們還需要知道訂單的ID,這樣可以用來關聯(lián)相關的其他信息。我們用cut可以獲得ID信息,但我們希望把ID放到行的最后,用單引號包上。

 

sed

sed – 一個流編輯器。它是用來在輸入流上執(zhí)行基本的文本變換。

下面的例子展示了如何用sed命令變換我們的文件行,之后我們在再用cut移除無用的信息。

1
2
3
4
5
6
7
8
9
jfields$ cat order.* | sort | grep Patterns \
>| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"\2, '\1'"/
1, Patterns of Enterprise Architecture, Kindle edition, 39.99, '111'
-1, Patterns of Enterprise Architecture, Kindle edition, 39.99, '113'
  
lmp-jfields01:~ jfields$ cat order.* | sort | grep Patterns \
>| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"\2, '\1'"/ | cut -d"," -f1,4,5
1, 39.99, '111'
-1, 39.99, '113'

我們對例子中使用的正則表達式多說幾句,不過也沒有什么復雜的。正則表達式做了下面幾種事情

1、 刪除時間戳

2、 捕捉訂單號

3、 刪除訂單號后的逗號和空格

4、 捕捉余下的行信息

里面的引號和反斜杠有點亂,但使用命令行時必須要用到這些。

一旦捕捉到了我們想要的數(shù)據(jù),我們可以使用 \1 & \2 來存儲它們,并把它們輸出成我們想要的格式。我們還在其中加入了要求的單引號,為了保持格式統(tǒng)一,我們還加入了逗號。最后,用cut命令把不必要的數(shù)據(jù)刪除。

現(xiàn)在我們有麻煩了。我們上面已經(jīng)演示了如何把log文件消減成更簡潔的訂單形式,但我們的財務部門需要知道訂單里一共有哪些書。

 

uniq

uniq – 刪除重復的行

下面的例子展示了如何過濾出跟書相關的交易,刪除不需要的信息,獲得一個不重復的信息。

1
2
3
jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c
   1  Joy of Clojure
   2  Patterns of Enterprise Architecture

看起來這是一個很簡單的任務。

這都是很好用的命令,但前提是你要能找到你想要的文件。有時候你會發(fā)現(xiàn)一些文件藏在很深的文件夾里,你根本不知道它們在哪。但如果你是知道你要尋找的文件的名字的話,這對你就不是個問題了。

 

find

find – 在文件目錄中搜索文件

在上面的例子中我們處理了order.in.log和order.out.log這兩個文件。這兩個文件放在我的home目錄里的。下面了例子將向大家展示如何在一個很深的目錄結構里找到這樣的文件。

1
2
3
jfields$ find /Users -name "order*"
Users/jfields/order.in.log
Users/jfields/order.out.log

find命令有很多其它的參數(shù),但99%的時間里我只需要這一個就夠了。

簡單的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小時,你用管道把它們輸出到屏幕上是可以的,但當文件大到超出屏幕時,你也許應該用管道把它們輸出給less命令。

 

less

less – 在文件里向前或向后移動

讓我們再回到簡單的 cat | sort 例子中來,下面的命令就是將經(jīng)過合并、排序后的內容輸出到less命令里。在 less 命令,使用“/”來執(zhí)行向前搜索,使用“?”命令執(zhí)行向后搜索。搜索條件是一個正則表達式。

1
jfields$ cat order* | sort | less

如果你在 less 命令里使用 /113.*,所有113訂單的信息都會高亮。你也可以試試?.*112,所有跟訂單112相關的時間戳都會高亮。最后你可以用 ‘q’ 來退出less命令。

linux里有很豐富的各種命令,有些是很難用的。然而,學會了前面說的這8個命令,你已經(jīng)能處理大量的log分析任務了,完全不需要用腳本語言寫程序來處理它們。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
linux下查看硬件資源的幾個常用命令
Linux查看日志三種命令
Linux之文本文件查看命令
linux查找日志技巧
用linux命令查詢
Linux下grep命令查找?guī)в衪ab(退格)的字符
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服