初涉sed命令

零散知識點散記和sed基礎接觸

第一次筆記(零散知識點)

可將腳本放入$PATH包括的目錄下,可直接執行

hash查看所有使用過的bash變量

hash -d 刪除某一條命令

在vim中,語法錯誤出現,則程序不會繼續執行,而命令錯誤,則不影響后面的執行

bash -n :檢查語法錯誤

bash -x :跟蹤調試執行結果

pstree -p :查看所有進程和進程編號

echo $$ : 查看當前所在進程的進程編號

全局變量export name 則把局部變量name變為全局變量(環境變量)

export :顯示目前的環境變量;等價于declare -x

set :顯示所有變量及很多相關函數

echo $SHLVL :顯示當前bash的嵌套深度為幾

readonly name=…. : 設置只讀變量,不能修改,同declare -r ,并且結束進程則失效

(ls) : 類似這種加括號,意為讓里面的命令僅生效這一次,不影響以后

vim 中,$1表示第一個變量,$*|$@表示所有參數,$0表示命令本身(basename隱藏路徑)

$*表示所有目標字符為一個整體,$@則把目標字符串分開識別

$0也顯示軟鏈接本身

set — :清空所有位置參數

shift : 參數向前移動一位

echo $? : 查看上一條命令是否成功執行,成功為0,失敗為1-255

vim中結尾exit x ,則修改echo $?的顯示數字為x

ping -c1 172.20.0.123 : 只拼一次

算數運算:

let var=算數表達式

COLOR=$[RANDOM%7+31] : 對某個隨機數取模(余數),+31實現顏色命令隨機

read -p “”?變量: 取消回車換行,實現在引號內容的后面輸入,等價于echo -e “???\c”

read -s -p “”?變量 :-s 表示隱藏輸出的字符

$? 0 成功

—–

0 false

1 true

& 并且 and

| 或者 or

0&0=0

0&1=0

1&0=0

1&1=1

0|0=0

0|1=1

1|0=1

1|1=1

短路與 &&

短路或 ||

0&&0=0

0&&1=0

1&&0=0

1&&1=1

cmd1 && cmd2

如果cmd1為假,cmd2不需要執行,反之cmd1為真,需要cmd2執行

cmd1 || cmd2

如果cmd1為真,cmd2不需要執行,反之cmd1為假,需要cmd2執行

XOR異或^

可理解為同性相斥,異性相吸

變量在中括號里面寫時,最好加””

在vim中用到

false ||{ echo cmd1 ;exit; } :這里,花括號不開啟子shell,( )則開啟子shell

批量對多個變量賦值:read x y z <<< “1 2 3”

第二次筆記

read x y z <<< “i j k”?: 批量賦值

source : 運行腳本不開啟shell子進程,不同于“.”和“echo $”,source是影響當前shell的環境,慎用!

腳本里面默認是不支持別名的

修改PATH路徑要去/etc/profile.d/env.sh 中,添加內容path =路徑+”$PATH”

updatedb :直接更新預查找索引,以便locate 可以查找到最新的信息

find /etc/ -maxdepth 3 -mindepth 2 -name passwd :在最多三級最少二級子目錄中查找passwd

-ls :以列表格式顯示find的結果,包含目標文件的一些屬性信息

find /home -type d -maxdepth 1 : 只查看最多一層目錄的文件夾

userdel haha: 刪除用戶haha

tar -cpvf :四個子母依次是打包、保留原屬性、顯示過程、打包成后面的文件

tar -xvf : 解壓

-T : 打包制定目錄

-X : 排除該目錄再打包

split -b 1M -d 文件名 前綴 :把該大文件切割成以該前綴開頭的1M大小的若干小文件

sed 支持正則表達式

sed 2,3 : 處理范圍在第二行到第三行

sed 2,+3 : 處理范圍在第二行到2+3=5第五行

sed /par1/,/part2/

sed 1~2

sed 2~2

sed -n “2p”?f1 : 只對第二行打印一遍(默認全部打印一遍)p就是對指定的行打印

sed -n “2,5p”?f1

sed -n “/^b/,/^f/p”?f1

sed -e -e : 多點編輯

sed -r 使用擴展正則表達式時用

sed ‘2,5a====’?f1 : 在第二行到第五行后面都追加====,不過并不是真的改,只是顯示上改了

sed -i.bak : i表示真的修改文件,并備份原文件并以.bak為后綴

sed ‘2,5w f2’?f1 : 符合條件的行備份到f2

sed ‘s///g’?搜索替換,g表示全局搜索

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96119

(0)
晨嘉晨嘉
上一篇 2018-04-15
下一篇 2018-04-15

相關推薦

  • 移動和重命名文件

    刪除命令:  

    Linux筆記 2018-04-01
  • 如何在現有的 Linux 系統上添加新的磁盤

    作為一個系統管理員,我們會有這樣的一些需求:作為升級服務器容量的一部分,或者有時出現磁盤故障時更換磁盤,我們需要將新的硬盤配置到現有服務器。

    Linux筆記 2018-04-24
  • Nginx介紹及Web服務相關配置

    Nginx 是一個高性能的Web和反向代理服務器, 它具有有很多非常優越的特性:作為 Web 服務器:相比Apache,Nginx 使用更少的資源,支持更多的并發連接,體現更高的效率,這點使 Nginx尤其受到虛擬主機提供商的歡迎。

    2018-07-10
  • 文件查找和壓縮

    文件查找和壓縮 文件查找的兩個命令 locate find————————————————————-locate loc…

    Linux筆記 2018-04-14
  • TCP/IP

    TCP/IP不是一個協議,而是一個協議族的統稱。里面包括IP協議、IMCP協議、TCP協議。 TCP/IP分層: 這里有幾個需要注意的知識點: 互聯網地址:也就是IP地址,一般為網絡號+子網號+主機號 域名系統:通俗的來說,就是一個數據庫,可以將主機名轉換成IP地址 RFC:TCP/IP協議的標準文檔 端口號:一個邏輯號碼,IP包所帶有的標記 Socket:…

    Linux筆記 2018-05-05
欧美性久久久久