Linux系统符号详解(所有用到的符号)
系統(tǒng)符號(hào)
-
基礎(chǔ)符號(hào)
-
$
-
取出變量中的內(nèi)容
-
取出指定列的信息(awk)
awk '{print $3}' /old.txt 取出第三列的信息 -
表示用戶命令提示符號(hào)
-
表示一行的結(jié)尾
-
-
!
- 表示取反或者排除
- 命令行中表示取出最近命令
- 用于表示強(qiáng)制操作處理
- vim底行模式強(qiáng)制保存退出:!wq
-
|
- 前一個(gè)命令執(zhí)行結(jié)果交給后面命令處理
- xargs配合使用:將信息進(jìn)行分組顯示
-
-
引號(hào)符號(hào)系列
-
'':sed和awk要使用單引號(hào)
- 所見(jiàn)即所得
-
""
- 對(duì)特殊信息會(huì)做解析
-
``或$():
- 先執(zhí)行里面的內(nèi)容然后交給前面的命令,并且執(zhí)行的結(jié)果如果是多行交給前面的命令變成了一行
-
沒(méi)有引號(hào):
- 和雙引號(hào)功能類(lèi)似
- 但是可以直接識(shí)別通配符信息
-
-
定向符號(hào)系列
-
>:標(biāo)準(zhǔn)輸出重定向符號(hào)
- 2>:錯(cuò)誤輸出重定向符號(hào)(只輸出錯(cuò)誤的)
-
>>:標(biāo)準(zhǔn)輸出追加重定向符號(hào)
- 2>>:錯(cuò)誤輸出追加重定向符號(hào)
-
<:標(biāo)準(zhǔn)輸入重定向符號(hào)
tr < xargs <-
<<:標(biāo)準(zhǔn)輸入追加重定向符號(hào)
cat >> /old.txt <<EOF xxx xxx EOF -
如何將正確和錯(cuò)誤的信息都可以放進(jìn)去(都是追加)
echo old >> /var/1.log 2>> /var/1.log或 echo old &>> /var/1.log或 echo old >> /var/1.log 2>&1
-
-
-
路徑信息系列
- ../:上一級(jí)目錄
- ./:當(dāng)前路徑
- ~:返回到家目錄
- -:兩個(gè)目錄之間進(jìn)行快速切換
-
邏輯符號(hào)
-
&&:與邏輯符號(hào),前一個(gè)命令執(zhí)行成功了才執(zhí)行后面的命令
-
||:
- 如果前面命令執(zhí)行失敗就執(zhí)行后面的命令。
- 如果前面命令執(zhí)行成功就不執(zhí)行后面的命令
-
;:不管前面執(zhí)行是否成功都執(zhí)行后面的命令(所有命令都執(zhí)行)
-
&&\:可以將要執(zhí)行的命令重新一行開(kāi)始寫(xiě)
-
通配符號(hào):根據(jù)文件名稱(chēng)進(jìn)行匹配
-
*:模糊匹配所有內(nèi)容
- 在grep命令里使用的是正則符號(hào):匹配前一個(gè)字符出現(xiàn)了0次或多次
-
{}:
-
生成序列信息(生成一行序列)
echo {1..10} echo {01..10} echo {a..z} -
生成連續(xù)序列
echo {1..10..2} 1 3 5 7 9 -
生成不連續(xù)序列
echo {www,bbs,ccc} www bbs ccc -
生成組合序列
echo {a..c}{01..03} a01 a02 a03 b01 b02 b03 c01 c02 c03echo A{01..03} A01 A02 A03 -
快速備份文件數(shù)據(jù)
echo old.txt{,.bak} old.txt old.txt.bakcp old.txt{,.bak}等價(jià)于cp old.txt old.txt.bak -
快速還原
mv /old/1.txt{.bak,}等價(jià)于mv /old/1.txt.bak /old/1.txt
-
正則符號(hào):進(jìn)行內(nèi)容進(jìn)行匹配
-
用處
-
利用正則符號(hào)匹配文件內(nèi)容信息
-
正則符號(hào)經(jīng)常出現(xiàn)在各種開(kāi)發(fā)與研制
-
正則符號(hào)經(jīng)常被三劍客命令使用
-
-
分類(lèi)
- 基礎(chǔ)正則符號(hào):base
- 擴(kuò)展正則符號(hào):extended
基礎(chǔ)符號(hào)
-
^:匹配以什么開(kāi)頭的
匹配當(dāng)前路徑下的目錄 ll | grep "^d" -
$:以什么結(jié)尾的信息
匹配以/結(jié)尾的 ll -F | grep "/$"-F 目錄后面有一個(gè)/ -
不匹配空行
grep -v "^$" ^$:匹配空行 -v:取反 -
.:匹配任意一個(gè)字符且只有一個(gè)字符
grep -o '.' 1.txt-o:顯示匹配過(guò)程 發(fā)現(xiàn)每次匹配的都是一個(gè)字符一個(gè)字符匹配且如果行為空的話不匹配。會(huì)對(duì)文件所有內(nèi)容都進(jìn)行匹配 -
*:匹配前一個(gè)字符出現(xiàn)了0次或多次
grep -o '01*' 1.txt會(huì)對(duì)文件所有內(nèi)容都進(jìn)行匹配 先匹配1 然后匹配1 -
.*:匹配任意所有信息
#這匹配的是以mm開(kāi)頭mm結(jié)尾中間沒(méi)內(nèi)容的行。就是一行的內(nèi)容為mm grep "^mm$" 1.txt#這匹配的是以mm開(kāi)頭,mm結(jié)尾但中間有內(nèi)容 grep "^mm.*mm$" 1.txt -
貪婪匹配問(wèn)題:指定具體的匹配信息
-
轉(zhuǎn)義符號(hào):\
grep "\.$" 1.txt匹配以.結(jié)尾的行-
將有特殊意義的符號(hào),轉(zhuǎn)義成普通信息進(jìn)行識(shí)別
-
將沒(méi)有意義的信息轉(zhuǎn)為有特殊意義的信息
\n:換行符號(hào) \t:制表符號(hào)
-
-
括號(hào)符號(hào):[]:匹配多個(gè)信息。括號(hào)里面的的每個(gè)字符都是獨(dú)立的
grep "oldb[oe]y" 1.txt 匹配oldboy和oldbey的信息。grep "^[a-Z]" 1.txt-
括號(hào)中的排除:^
grep "^[^a-Z]" 1.txt匹配不以a-Z開(kāi)頭的行,不包含空行
-
擴(kuò)展符號(hào):默認(rèn)grep、sed不能直接識(shí)別。grep需要加-E,sed需要加-r
-
+:匹配前一個(gè)字符一次或多次
grep -E "0+" 1.txt -
|:并且符號(hào),用于匹配多個(gè)信息
grep -E "oldboy|blog" 1.txt 匹配oldboy或blog信息的數(shù)據(jù) -
(): 指定信息進(jìn)行整體匹配;進(jìn)行后項(xiàng)引用前項(xiàng)使用
-
批量創(chuàng)建用戶
echo oldboy{01..10} | xargs -n1 | sed -r 's#(.*)#useradd \1#g' | bashehco oldboy{01..10}:一行輸出oldboy01到oldboy10 |xargs -1:將每一塊變成一列一列 |sed -r 's#(.*)#useradd \1#g': -r:識(shí)別高級(jí)正則符號(hào) s:substitute替換 #要修改的內(nèi)容#修改后的內(nèi)容#:修改規(guī)則 (.*):一行的所有內(nèi)容作為一個(gè)整體,也就是前項(xiàng) useradd \1: useradd:創(chuàng)建用戶命令 \1:調(diào)用前項(xiàng),也就是(.*)匹配的內(nèi)容 |bash:執(zhí)行命令 useradd .* -
批量創(chuàng)建并且修改密碼
seq -w 10 | sed -r 's#(.*)#useradd oldboy\1#g';echo 123456 | passwd --stdin oldboy\1 | bashseq -w 10: 01 02 ... 10|sed -r 's#(.*)#useradd oldboy\1#g': useradd oldboy01 useradd oldboy02 ... useradd oldboy10#要修改的內(nèi)容#修改后的內(nèi)容#:修改規(guī)則 (.*):一行的所有內(nèi)容作為一個(gè)整體,也就是前項(xiàng) useradd \1: useradd:創(chuàng)建用戶命令 \1:調(diào)用前項(xiàng),也就是(.*)匹配的內(nèi)容 ;:不管前面命令是否執(zhí)行成功都執(zhí)行后面的命令 echo 123456 | pwsswd --stdin oldboy01:免交互設(shè)置密碼 |bash:執(zhí)行命令 useradd .*
-
-
{}:指定字符連續(xù)匹配的次數(shù)
x{n,m}:x字符至少出現(xiàn)n次,最多匹配m次 grep -E "0{2,3}" 1.txt 如果有連續(xù)的3個(gè)0,就會(huì)只匹配三個(gè)0 如果有連續(xù)的5個(gè)0,就會(huì)先匹配3個(gè)在匹配2個(gè)。五個(gè)都會(huì)匹配出來(lái)x{n,}:最少匹配n次,最多不限制x{n}:指定匹配n次 -
?:匹配前一個(gè)字符出現(xiàn)0次或1次
ifconfig | grep "([0-9]+\.?){4}" -0 [0-9]出現(xiàn)了多次 .出現(xiàn)0次或一次。 這個(gè)整體匹配4次
總結(jié)
以上是生活随笔為你收集整理的Linux系统符号详解(所有用到的符号)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。