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