[Linux]常用Linux命令小結(持續更新中)__Linux

來源:互聯網
上載者:User

pbcopy命令 cat命令 locate命令 find命令 grep命令 tar命令 sed命令 關機命令 awk編程 記錄和域的概念 常用使用

對於ls,cd等太過於基礎的命令,本文不將進行介紹。 pbcopy命令

複製到粘貼板中。
在進行SSH的時候,需要拷貝公開金鑰,這裡Linux有個命令,大家可以試試,

pbcopy < ~/.ssh/id_rsa.pub

該命令也同樣適用於拷貝檔案。 cat命令

主要有三大功能:
1.一次顯示整個檔案。 catfilename2.從鍵盤建立一個檔案。 cat filename 2.從鍵盤建立一個檔案。 cat > filename
只能建立新檔案,不能編輯已有檔案.
3.將幾個檔案合并為一個檔案: $cat file1 file2 > file
可參考cat參考資料。

通過命令

ls -l | cat >file

可以將ls -l的結果存到檔案file中。

Q:cat命令和more命令的區別是什麼。
(1)cat作用是:串連並顯示一個或多個檔案的有關資訊
使用方式:cat 檔案
-n:由第1行開始對所有輸出的行號編號
-b:和-n一樣不過對於空白行不編號
(2)more作用是:類似cat,不過會以一頁一頁的顯示方便使用者一頁頁閱讀
使用方法:more 檔案名稱
例子:more -s testfile 逐頁顯示testfile內容,有連續兩行以上空白行則以一行空白行顯示
more +30 testfile 從第30行開始顯示testfile內容

拷貝檔案當然也可以用cp file1 file2。變更檔名可以用mv file1 file2。 locate命令

locate命令用於尋找檔案,它比find命令的搜尋速度快,它需要一個資料庫,這個資料庫由每天的例行工作(crontab)程式來建立。當我們建立好這個資料庫後,就可以方便地來搜尋所需檔案了。

即先運行:updatedb(無論在那個目錄中均可,可以放在crontab中 )後在 /var/lib/slocate/ 下產生 slocate.db 資料庫即可快速尋找。在命令提示字元下直接執行#updatedb 命令即可:

有些同學可能會碰到這樣的問題:
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db’
解決方案:用root許可權,su一下即可。 find命令

find和locate命令的一大區別是,find是即時尋找,locate並非即時尋找,因為資料庫需要更新。但是find的尋找功能十分強大。不僅可以尋找指定時間內修改的檔案,也可以根據關鍵字尋找,也可以根據檔案所屬使用者進行尋找,功能很強大。
這裡只介紹根據關鍵字尋找的方式。

find . -name "*.sh"

關於find命令的一篇很好的介紹,見博文。linux下find尋找命令用法。 grep命令

grep是linux的文本搜尋工具,它使用Regex搜尋文本。grep全稱Global Regular Expression Print,表示全域Regex列印。

首先我們得建立一個測試文本,我從一個VOA網站上找到了一篇英文文章,並且複製到文本中,將其作為測試文本。
命令

grep  --color hel*o test.txt


該grep語句匹配到helo,hello,helllo,hellllo……

按照Regex的規則對文本進行搜尋。

關於grep命令,參考了博文每天一個linux命令(39):grep 命令 tar命令

(1)常用解壓縮命令,根據壓縮檔不同,參數不太一樣。如下。
1).解壓 tar包
tar –xvf file.tar
2).解壓tar.gz
tar -xzvf file.tar.gz
3).解壓 tar.bz2
tar -xjvf file.tar.bz2
4).解壓tar.Z
tar –xZvf file.tar.Z

(2)壓縮檔的命令
tar –cvf doc.tar *.doc
將目錄裡所有doc檔案打包成doc.tar

tar –czf doc.tar.gz *.doc
tar –cjf doc.tar.bz2 *.doc
tar –xZvf doc.tar.Z *.doc
上面命令都可以打包成不同類型的壓縮包。
參考了tar壓縮解壓縮命令詳解。 sed命令

sed是一種線上編輯器,它以行為單位對資料進行處理,可以對資料進行增加、替換、刪除等操作。常用選項:
-n∶使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN的資料一般都會被列出到螢幕上。但如果加上 -n 參數後,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來。
常用命令:
a ∶新增
c ∶取代
d ∶刪除
i ∶插入, i 的後面可以接字串
p ∶列印
這裡的內容來源自cnbolgs部落格linux之sed用法。
這裡不再舉例,可參考其它博文。主要說的一點是,sed修改的內容是不會作用到原來的文本中的,相當於是讀出去後進行的操作,這一點需要注意。那麼sed後的內容如何儲存呢。那就用下面的命令吧~

sed '1a mapeiwen' test.txt|cat >temp.txt

例題(題目來源自《Linux Shell 從入門到精通》):通過sed命令將input檔案中的\OU字串修改為(ou),在此基礎上將該sed命令寫成兩種sed指令碼,利用sed的第2、3種調用方式實現同樣的目的。
答案:
(1)sed ‘s/\ou/(ou)/g’ input // \ou轉義符咯
(2)將sed 命令寫入到bash指令碼中(#!/bin/bash);
(3)寫入到sed指令碼中(#!/bin/sed -f) 關機命令

sudo shutdown -r NOW
sudo halt
輸入密碼後即可關機。 awk編程

awk是linux裡的一種程式設計語言,適合於文本處理和報表產生。它具有強大的文本分析工具,相對於grep的尋找,sed的編輯,awk在其對資料分析並產生報告時,顯得尤為強大。簡單來說awk就是把檔案逐行(記錄)的讀入,以空格為預設分隔符號將每條記錄切成域。再對各個域選擇處理。 記錄和域的概念

awk認為輸入檔案是結構化的(和資料庫的結構化其實是差不多一樣的含義),awk將每個檔案行定義為記錄,行中的每個字串定義為域,域之間用空格、Tab鍵或其他符號進行分割,分割域的符號叫做分隔字元。

(圖片來源自《Linux Shell 從入門到精通》) 常用使用

(1)根據每一條進行進行處理。一些常見的統計(資料採礦中經常會使用到)
比如資料資訊如下(學號 姓名 語文 數學 英語 ):
2011 mpw 100 89 81
2012 hhh 9 198 78
求出每個學生的平均分。

awk '{print ($3+$4+$5)/3}' student 

求出平均分最高的學生。

 awk 'BEGIN{max=0;maxid=0} {if(max<($3+$4+$5)/3) {max=($3+$4+$5)/3}} END{print max}' student 


這裡提一點,學過JUnit的同學應該知道JUnit 4 裡面有before和after這2種修飾。這裡的BEGIN 和END作用類似,對記錄進行遍曆前執行BEGIN,遍曆完記錄執行END。這裡BEGIN和END是區分大小寫(親測)。

本篇博文將不斷更新,完善~~~每天進步一丟丟咯。。==

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.