Linux 比較重要且難掌握命令 集合

2021-09-08 09:54:09 字數 3914 閱讀 1672

find path –option [-print] [-exec command] {} \;

find . -maxdepth 1 -name aa

find . -maxdepth 1 -perm 777

find . -maxdepth 1 -user root

find . -maxdepth 1 -group root

find . -maxdepth 1 -mtime(atime, ctime) -4(+4, 4)( +4 4天以前, -4 4天以內, 4 剛好之前的第4天

find . -nogroup

find . -nouser

find . -newer f1

find . -type b/d/c/p/l/f   #塊裝置,目錄,字元裝置, 管道, 符號鏈結, 普通檔案

find . -maxdepth 1 -size +4096(4096, -4096) #+大於4096, -4096小於4096, 4096等於4096

find . -name "*.txt"

find . -name "[a-z]*"

find . -name "[a-z][a-z][0-9][0-9].txt" -print

find . -type f -exec ls -l {} \;

find . -mtime + 5 -exec rm -rf {} \; 等於 find . -mtime + 5 | xargs rm –rf

grep 查詢

sed 編輯

awk 資料分析, 可程式設計

作用於 1 行

sed    文字處理工具,本身是乙個管道命令, 主要是以行為單位處理, 可以根據行    常用option:-n slient

進行 替換, 刪除, 新增, 選取 等工作    常用option: -f 直接將sed動作寫在乙個文件內 -f filename

sed[-nefri] command 輸入文字    常用option:  -i直接修改讀取檔案內容,而不是輸出到螢幕

例子:                       

a 新增, c取代, d刪除, i插入, p列印, s搭配正規表示式

sed '2d' abc

sed '2,$d' abc

sed '/test/'d abc

sed '1,2a asdf' abc

sed '1,2s/old/new/g' abc

sed 's/被替換內容/要替換內容/g' file (sed 『1,20s/old/new/g』)

sed本身也是乙個管線命令,可以分析 standard input, 還可以將資料進行取代,刪除,新增,擷取特定行

nl /etc/passwd | sed '2,5d' 刪除2-5 行

sed '2a drink tea' 增加新行

nl /etc/passwd | sde '2,5c no 2-5 number' 替換

nl /etc/passwd | sed -n '5,7p' 列印5-7行,安靜模式

sed '1,2c zz' test.txt

nl test.txt | sed '1,2c zz'

以上兩種方法都可以替換

同樣,以下增加和刪除還有 s級別替換也都可以類似以上兩種方法

sed '1,2d' test.txt

sed '1,2a asdf' test.txt ( 在兩行後邊會增加 asdf, 顯示的時候會另起一行,以方便檢視,但實際上是在前兩行末尾增加內容,而不是新增加行 ) 實際檔案並未修改,只是顯示時像修改

sed '1,2s/old/new/g'

sed [-nefr] [動作]

-n : 使用安靜(silent)模式,在一般 sed 的用法中,所有來自 stdin的資料一般都會被列出在螢幕上,但是如果加上 -n 引數後,則只有經過 sed 特殊處理的那一行(或者動作)才會被列出來。

-e : 直接在指令列模式上進行 sed 的動作編輯

-f : 直接將 sed 的動作解除安裝乙個檔案內, -f filename

-r : sed 動作支援延伸正規表示式

動作說明

[n1,n2] function

n1,n2 代表選擇行, 有時候不存在, 例如 [10,20]

function 代表動作:

a 新增: 會在新行出現, 目前行的下一行

c 取代 : 取代之前選中的行

d 刪除 :

i 插入, 會在新行出現, 目前行的上一行

p 列印, 通常 p 會參與 sed –n

s 取代, 正規表示式 1,20s/old/new/g

sed 可以直接修改檔案, 不過這樣一般比較危險

sed –i 『s/\.$/\!/g』 regular

相比於 sed 作用於一行, awk 比較傾向於一行中分成數個【字段】.

awk 『條件型別1條件型別2…』 filename 比較常用

awk 可以直接處理後續檔案, 也可以讀取來自指令的 standard output

last –n 5 | awk 『』

1. 讀入第一行, 並將第一行的資料填入 $0, $1, $2… 等變數中

2. 依據」條件型別」的限制, 判斷是否進行後面的」動作」

3. 做完所有的動作與條件型別;

4. 若還有後續的行, 重複上邊1~3的步驟, 直到所有資料都讀完.

內建變數

nf 每一行的字段總數

nr 目前awk 所處理的是第幾行

fs 目前的分隔符, 預設是空格鍵

last –n 5 | awk 『』

awk 邏輯運算子

cat /etc/passwd | awk 『begin$3 < 10』

cat pay.txt | awk 『nr ==1

nr >= 2 』

cat pay.txt | awk 『 nr>=2』

awk    使用方法    awk ''            

呼叫方式 3 種    1. 命令列 awk [-f field-separator] 'command' imput-files            

2. awk 指令碼 這種可以把所有的awk命令放到乙個檔案中, 並把檔案頭改為 #!/bin/awk            

3. 將所有的 awk 命令插入到乙個單獨檔案, 然後呼叫. awk -f awk-script-file input-files            

last -n 5 | awk ''           

流程             讀入有'\n'換行符分割的一條記錄,然後將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,$1表示第乙個域,$n表示第n個域。

預設域分隔符是"空白鍵" 或 "[tab]鍵".            

cat /etc/passwd |awk  -f ':'  ''            

cat /etc/passwd |awk -f ':' ' begin end '           

流程             先執行beging,然後讀取檔案,讀入有/n換行符分割的一條記錄,然後將記錄按指定的域分隔符劃分域,填充域,

$0則表示所有域,$1表示第乙個域,$n表示第n個域,            

隨後開始執行模式所對應的動作action。接著開始讀入第二條記錄······直到所有的記錄都讀完,最後執行end操作。            

awk -f ':' '/root/' /etc/passwd  搜尋包含 root 的行, 支援正規表示式           

awk 程式設計         用; 分隔執行語句    awk ' end' /etc/passwd           

程式設計借鑑了c語言的, if語句, for迴圈 等等       

比較重要的演算法

下面是一些比較重要的演算法,原文羅列了32個,但我覺得有很多是數論裡的,和計算機的不相干,所以沒有選取。下面的這些,有的我們經常在用,有的基本不用。有的很常見,有的很偏。不過了解一下也是好事。也歡迎你留下你覺得有意義的演算法。注 本篇文章並非翻譯,其中的演算法描述大部份摘自wikipedia,因為維...

比較重要的引數

back log back log值可以指出在mysql暫時停止回答新請求之前的短時間內多少個請求可以被存在堆疊中。也就是說,如果mysql的連線資料達到max connections時,新來的請求將會被存在堆疊中,以等待某一連線釋放資源,該堆疊的數量即back log,如果等待連線的數量超過bac...

fastjson比較重要的幾點

第一種 在物件響應欄位前加註解,這樣生成的json也不包含該欄位。jsonfield serialize false private string name 第二種 在物件對應字段前面加transient,表示該欄位不用序列化,即在生成json的時候就不會包含該字段了。private transie...