shell 常用命令整理記錄

2021-09-29 09:43:44 字數 3790 閱讀 4324

【cat】

cat log.txt|head -n 100 只顯示前面100行內容

cat log.txt|tail -n 100 只顯示最後100行內容

cat log.txt|tail -n +100 顯示100行之後的內容

【find】 --檔案查詢

1、-name 按照檔名查詢

find /dirpath -name 'exp'

-i 忽略大小寫 find . -name -i '*exp*'

可以用絕對路徑/path 也可以用相對路徑 .

2、-type 按照型別查詢

f: 普通檔案

d: 目錄檔案

l: 符號鏈結檔案

s: 套接字檔案

b: 塊裝置檔案

c: 字元裝置檔案

p: 管道檔案

3、根據關係從屬查詢

-user 使用者名稱 查詢屬主指定使用者的檔案

-group 組名 查詢陣列為指定組的檔案

-uiduserid 查詢屬主id為指定的檔案

4、-size 根據檔案大小查詢

單位k,m,g,c

-size +6k --(6k,∞]

-size -6k --[0,5k]

-size 6k --(5k,6k]

5、根據時間查詢

-atime 以訪問時間

-mtime 以資料修改時間

-ctime 以元資料修改時間

【grep】 --用於內容查詢,文字過濾

cat log.txt | grep 'error' -a 5 多顯示error之後的5行

cat log.txt | grep 'error' -b 5 多顯示error之前的5行

cat log.txt | grep 'error' -c 5 多顯示error前後的5行

-e 多條件查詢

grep -rn 'stream' . --include='*.cpp'

在當前路徑下查詢包含指定內容'stream'的檔案

-r 遞迴查詢

-n 顯示行號

--include= glob語法,限制檔案型別是cpp

-i 忽略大小寫

-e 實現多個選項之間的邏輯關係

-w 匹配整個單詞

【vi】

--查詢

vi 中找下乙個相同的詞

/word n 向前找

n 向後找

【$】 會把$後面的命令執行結果當做下一條命令的引數

cd $(ls |grep $(date \'+%y%m%d\'))

【seq】

seq 1 5 連續輸出1-5的數字

seq 1 2 10 連續輸出1-10之間以2為步長的數字

seq -f '%03g' 1 5 按照指定格式輸出 聯合mkdir生成一系列資料夾或者檔案..

【awk】--取列

awk 可以將一些文字整理成我們需要的樣子.

基本語法

awk [options] 'program' file1,file2,...

其中program又可以分為pattern,action

eg1:

echo ddd>test;awk '' test 直接列印文字內容

以列輸出

eg2:

df | awk '' df顯示本機磁碟的詳細資訊,awk列印出來第5列資訊

預設文字以空格符進行分割,如果需要以指定字元分割需要加引數-f

df | awk -f',' '' 以,分割文字列

可以一次輸出多列,多列以,隔開

df | awk '' df顯示本機磁碟的詳細資訊,awk列印出來第5列資訊

eg3:

可以新增自己的字段

df | awk ''

df | awk '' 無縫拼接

df | awk '' 以:拼接

pattern

begin -- 模式指定了處理文字之前需要執行的操作

end -- 處理文字之後需要處理的操作

eg4awk 'begin end' srcfile

在執行print $1,$2之前先列印 aaa,bbb,原始檔可以為空

【awk分隔符】

awk預設分隔符是空格,awk的分隔符分兩種,[#輸入分隔符]和[#輸出分隔符]

空格是預設的輸入分隔符。

--#輸入分隔符

eg5awk -f# '' test

以上使用#作為分隔符,將test每一行都通過#來進行分割。

同時,awk支援設定內部變數的方式來指定分割符,在使用變數的時候需要用到-v選項

eg6awk -v fs='#' '' test

作用同eg5

【輸出分隔符】

我們在使用awk輸出每一列的對話,會預設使用空格來進行分隔,當我們在處理完文字進行輸出的時候,以什麼文字或者符號進行分隔符。

我們可以使用awk的內建變數ofs來設定awk的輸出分隔符,同樣使用變數的時候需要配合使用-v選項

eg7awk -v ofs="++" '' test

我們可以同時指定輸入和輸出分割符

eg8awk -v fs = "++" -v ofs="--" '' test

如果想要輸出項不進行分割,那麼可以使用如下格式

eg9awk '' test

print 之後不使用,分割項。

【awk 變數】

awk的變數分為[內建變數]和[自定義變數],輸入分隔符fs和暑促分隔符ofs都屬於內建變數。

awk常用內建變數

fs 輸入分隔符,預設為空白字元

ofs 輸出分隔符 預設空白字元

rs 輸入記錄分隔符

ors 輸出記錄分隔符

nf 當前行的分割欄位的個數,字段數量

nr 行號,當前 處理的文字行行號

fnr 各檔案分別計數的行號

filename 當前檔名

argc 命令列引數個數

ar** 陣列,儲存的是命令列所給定的各引數

【wget】

wget --no-check-certificate [email protected] --password=**ys**y@324

新增賬號密碼 不檢測證書

【sed】--取行,替換

sed 是一種流編輯器,它一次處理一行內容,處理時會把當前處理的行儲存在臨時緩衝區,稱為"模式空間",接著用sed命令處理緩衝區中的內容,處理完成會把緩衝區的內容傳送到螢幕,然後讀入下一行,如果沒有使用-『d』的特殊命令,那麼他會在兩個迴圈之間清空模式空間,但不會清空保留空間,這樣一直重複直到檔案末尾。

編輯 1、d 刪除模式空間的匹配行,並立即啟用下一行

2、p 列印當前模式空間內容,追加大預設輸出之後

3、a [\]text1 在指定行後面追加文字,支援使用\n實現多行追加

4、i[\]text 在行前面插入文字

5、a[\] text 替換行為單行或多行文字

6、w /path/somefile 儲存模式匹配的行到指定的檔案

7、r /path/somefile 讀取指定檔案的文字至模式空間中匹配到的行後

8、= 為模式空間中的行列印行號

9、 !模式空間中匹配行取反

10、s///: 查詢替換

g 行內替換

p 顯示替換成功的行

w /path/to/somefile 將替換成功的行儲存到檔案中

將檔案中root 全部替換成abc

#sed -i 's/root/abc/g' file

conda常用命令整理記錄

一 設定映象源 conda 以清華映象為例 conda config add channels conda config set show channel urls yes此時在當前使用者的根目錄下生成乙個名為 condarc 的配置檔案,開啟該檔案。channels defaults show c...

shell常用命令學習記錄

1.men ls 檢視ls指令的幫助資訊 2.ls a 顯示檔案,包括隱藏檔案,ls l 使用長格式顯示 ls t 安裝時間排序 ls r 反轉排序 ls i 顯示每個檔案索引節點的id 4.cat file 連線或顯示檔案 顯示檔案cat filename 檔案行數大於螢幕行數,部分內容會滾出螢幕...

linux常用命令整理與記錄

目錄 常用命令 防火牆常用命令 scp p 22 root 172.17.41.212 root databak.sql.gz root 172.17.41.212 伺服器a 的內網ip 如果公網ip 可以使用,則直接使用公網ip 執行命令後需要輸入伺服器a 的 ssh 密碼 安裝firewalld...