1)重定向
? ? 1)基本概念
- 標準輸入?-0
標準輸出-1
標準錯誤-2
- ?。尽 “演敵鲋囟ㄏ虻轿募?/li>
2> 把錯誤重定向到文件
&> 把輸出和錯誤重定向到文件
- set –C 禁止將內容覆蓋已有文件,但可追加?; set +C 允許覆蓋?; >| file 強制覆蓋
- ?。荆尽∽芳觾热莸轿募A
2>> 把錯誤內容到文件夾
?。Γ荆尽“演敵龊湾e誤追加到文件
- cmd? errcmd? &> /data/all.log
? ? 2)tr?命令
- -d?刪除
- -s?把連續重復字符顯示為一個
- [:alnum:]:字母和數字 [:alpha:]:字母 [:cntrl:]:控制(非打?。┳址?[:digit:]:數字
[:graph:]:圖形字符 [:lower:]:小寫字母 [:print:]:可打印字符 [:punct:]:標點符號
[:space:]:空白字符 [:upper:]:大寫字母 [:xdigit:]:十六進制字符 - tr? “\n” ”? ”? ? ?\n是回車
? ? 3)?多行重定向
- cat? << EOF? ?> f1? ? 結束時要在單獨一行輸入EOF結束多行重定向
? ?4)管道? |
- ls |?tr? ? ‘a-z’? ? ‘A-Z’
- 命令1 | tee [-a ] 文件名 | 命令2
把命令1的STDOUT保存在文件中,做為命令2的輸入
-a 追加
2)grep
1) grep: Global search REgular expression and Print out the line
作用:文本搜索工具,根據用戶指定的“模式”對目標文本逐行進行匹配檢查;打印匹配到的行模式:由正則表達式字符及文本字符所編寫的過濾條件
2) grep [OPTIONS] PATTERN [FILE…
- ? grep root /etc/passwd? ? root是關鍵詞?搜索含有root的行并顯示,root加顏色
- grep “$USER” /etc/passwd? 弱引用?效果同上
- grep ‘$USER’ /etc/passwd? ?強引用? 搜索 $USER
- grep `whoami` /etc/passwd? ?反向單引號里面是命令且可以執行?grep會查找命令的輸出結果
3) grep命令選項
- -v: 顯示不被pattern匹配到的行
- -i: 忽略字符大小寫
- -n:顯示匹配的行號
- -c: 統計匹配的行數
- -o: 僅顯示匹配到的字符串
- -q: 靜默模式,不輸出任何信息
- -A #: after, 后#行
- -B #: before, 前#行
- -C #:context, 前后各#行
- -e:實現多個選項間的邏輯or關系
grep –e ‘cat ’ -e ‘dog’ file - -w:匹配整個單詞
- -F:相當于fgrep,不支持正則表達式
4) 基本正則表達式元字符
- . 匹配任意單個字符
- [] 匹配指定范圍內的任意單個字符
- [^] 匹配指定范圍外的任意單個字符
- [:alnum:] 字母和數字
- [:alpha:] 代表任何英文大小寫字符,亦即 A-Z, a-z
- [:lower:] 小寫字母 [:upper:] 大寫字母
- [:blank:] 空白字符(空格和制表符)
- [:space:] 水平和垂直的空白字符 (比[:blank:]包含的范圍廣)
- [:cntrl:] 不可打印的控制字符(退格、刪除、警鈴…)
- [:digit:] 十進制數字 [:xdigit:]十六進制數字
- [:graph:] 可打印的非空白字符
- [:print:] 可打印字符
- [:punct:] 標點符號
5)正則表達式(匹配次數)
- * 匹配前面的字符任意次,包括0次
貪婪模式:盡可能長的匹配 - .*任意長度的任意字符
- \? 匹配其前面的字符0或1次
- \+ 匹配其前面的字符至少1次
- \{n\} 匹配前面的字符n次
- \{m,n\} 匹配前面的字符至少m次,至多n次
- \{,n\} 匹配前面的字符至多n次
- \{n,\} 匹配前面的字符至少n次
6)正則表達式(位置錨定 )
- ^ 行首錨定,用于模式的最左側
- $ 行尾錨定,用于模式的最右側
- ^PATTERN$ 用于模式匹配整行
- ^$?空行
- ^[[:space:]]*$ 空白行
- \< 或 \b 詞首錨定,用于單詞模式的左側
- \> 或 \b 詞尾錨定;用于單詞模式的右側
- \<PATTERN\> 匹配整個單詞
7)正則表達式( 分組 ?)
- \(\) 將一個或多個字符捆綁在一起,當作一個整體進行處理?例: \(root\)\+
- 后向引用:引用前面的分組括號中的模式所匹配字符,而非模式本身? ? \1,\2
- 或者:\|
8) 擴展的正則表達式?(正則表達式去掉\)
- 次數匹配:
*:匹配前面字符任意次
?: 0或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次 - 位置錨定:
^ :行首
$ :行尾
\<, \b :語首
\>, \b :語尾 - 分組:
()
后向引用:\1, \2, - 或者:
a|b: a或b
C|cat: C或cat
(C|c)at:Cat或cat
3)vim
1)vim打開文件
- vim [OPTION]… FILE…
+#: 打開文件后,讓光標處于第#行的行首,+默認行尾
+/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的
行首
–b file 二進制方式打開文件
–d file1 file2… 比較多個文件
-m file 只讀打開文件 - ex file 或 vim –e 直接進入ex模式
- 如果該文件存在,文件被打開并顯示內容
如果該文件不存在,當編輯后第一次存盤時創建它
2)三種模式及模式的切換
- 三種主要模式:
1.命令(Normal)模式:默認模式,移動光標,剪切/粘貼文本
2.插入(Insert)或編輯模式: 修改文本
3.擴展命令(extended command )模式: 保存,退出等 - Esc鍵 退出當前模式
- Esc鍵 Esc鍵 總是返回到命令模式
3) 模式轉換
- 命令模式 –> 插入模式
i: insert, 在光標所在處輸入
I:在當前光標所在行的行首輸入
a: append, 在光標所在處后面輸入
A:在當前光標所在行的行尾輸入
o: 在當前光標所在行的下方打開一個新行
O:在當前光標所在行的上方打開一個新行 - 插入模式 ——–> 命令模式
ESC - 命令模式 ——–> 擴展命令模式
: - 擴展命令模式 ——–> 命令模式
ESC,enter
4)關閉文件
- 擴展模式:
:q 退出? ? ?推薦使用? ??
:q! 強制退出,丟棄做出的修改
:wq 保存退出? ? ?推薦使用
:x 保存退出 - 命令模式
ZZ: 保存退出
ZQ:不保存退出
5) 擴展模式
- 按“:”進入Ex模式
- 創建一個命令提示符: 處于底部的屏幕左側
- 命令:
w 寫(存)磁盤文件
wq 寫入并退出
x 寫入并退出
q 退出
q! 不存盤退出,即使更改都將丟失
r filename 讀文件內容到當前文件中
w filename 將當前文件內容寫入另一個文件
!command 執行命令
r!command 讀入命令的輸出
6) 命令模式光標跳轉
- 字符間跳轉:
h: 左 l: 右 j: 下 k: 上=上下左右
#COMMAND:跳轉由#指定的個數的字符 - 單詞間跳轉:
w:下一個單詞的詞首
e:當前或下一單詞的詞尾
b:當前或前一個單詞的詞首
#COMMAND:由#指定一次跳轉的單詞數 - 當前頁跳轉:
H:頁首 M:頁中間行 L:頁底
7) 命令模式光標跳轉
- 行首行尾跳轉:
^: 跳轉至行首的第一個非空白字符
0: 跳轉至行首
$: 跳轉至行尾 - 行間移動:
#G、擴展模式:# :跳轉至由#指定行
G:最后一行
1G, gg: 第一行 - 句間移動:
):下一句 (:上一句 - 段落間移動:
}:下一段 {:上一段
8) 命令模式操作
- 字符編輯:
x: 刪除光標處的字符
#x: 刪除光標處起始的#個字符
xp: 交換光標所在處的字符及其后面字符的位置
~:轉換大小寫
J:刪除當前行后的換行符 - 替換命令(r, replace)
r: 替換光標所在處的字符
R:切換成REPLACE模式 - 刪除命令:
d: 刪除命令,可結合光標跳轉字符,實現范圍刪除
d$: 刪除到行尾
d^:刪除到非空行首
d0:刪除到行首 - dd: 刪除光標所在的行
#dd:多行刪除 - D:從當前光標位置一直刪除到行尾,留空行,等同于d$
- 復制命令(y, yank):
y: 復制,行為相似于d命令 - yy:復制行
#yy: 復制多行 - Y: 復制整行
- 粘貼命令(p, paste):
p:緩沖區存的如果為整行,則粘貼當前光標所在行的下方;否則,則粘貼
至當前光標所在處的后面
P:緩沖區存的如果為整行,則粘貼當前光標所在行的上方;否則,則粘貼
至當前光標所在處的前面
9) 擴展命令模式:地址定界
- /pat1/,/pat2/
從第一次被pat1模式匹配到的行開始,一直到第一次被pat2匹配到的行結
束
#,/pat/
/pat/,$
10) 擴展命令模式:查找
- /PATTERN:從當前光標所在處向文件尾部查找
?PATTERN:從當前光標所在處向文件首部查找
n:與命令同方向
N:與命令反方向
11) 擴展命令模式:查找并替換
- 格式:s/要查找的內容/替換為的內容/修飾符
- 查找內容可以使用格式,替換內容不能但是可以使用\1,\2后向引用
- i: 忽略大小寫;g: 全局替換
- 一般形式為s///(/符號可以替換為其他符號例如@;#;%使用文本中不含有的符號以防止混淆)
4)sed
1)地址定界
- 不給地址:對全文進行處理
- #: 指定的行,$:最后一行
/pattern/:被此處模式所能夠匹配到的每一行 - 地址范圍:
#,#? ?幾行到幾行
#,+#? 幾行到+幾
/pat1/,/pat2/? 第一個關鍵詞到第二個關鍵詞
#,/pat1/? ?指定行到?關鍵詞 - ~?步進? 1~2? 從第一行開始隔兩行,奇數;2~2? 取偶數
2)編輯命令
- d: 刪除模式空間匹配的行,并立即啟用下一輪循環
- p:打印當前模式空間內容,追加到默認輸出之后
- a [\]text:在指定行后面追加文本;支持使用\n實現多行追加
- i [\]text:在行前面插入文本
- c [\]text:替換行為單行或多行文本
- w /path/somefile: 保存模式匹配的行至指定文件
- r /path/somefile:讀取指定文件的文本至模式空間中
匹配到的行后 - =: 為模式空間中的行打印行號
- !:模式空間中匹配行取反處理
3)查找替換( 支持使用其它分隔符 )
- s///;s@@@
- g: 行內全局替換
p: 顯示替換成功的行
w /PATH/TO/SOMEFILE:將替換成功的行保存至文件中
4)高級編輯
- P:打印模式空間開端至\n內容,并追加到默認輸出之前
- h: 把模式空間中的內容覆蓋至保持空間中
- H:把模式空間中的內容追加至保持空間中
- g: 從保持空間取出數據覆蓋至模式空間
- G:從保持空間取出內容追加至模式空間
- x: 把模式空間中的內容與保持空間中的內容進行互換
- N:讀取匹配到的行的下一行追加至模式空間
- d: 刪除模式空間中的行
- D:如果模式空間包含換行符,則刪除直到第一個換行符的模式空間中的文本,
并不會讀取新的輸入行,而使用合成的模式空間重新啟動循環。如果模式空間
不包含換行符,則會像發出d命令那樣啟動正常的新循環
示例: sed -n ‘n;p’ FILE? ? 顯示偶數行
sed ‘1!G;h;$!d’ FILE? ? ? ? ? ? 倒序
sed ‘N;D‘ FILE? ? ? ? ? ? ? ? ? ? ? 顯示最后一行 ?
sed ‘$!N;$!D’ FILE? ? ? ? ? ? ? 顯示后兩行
sed ‘$!d’ FILE? ? ? ? ? ? ? ? ? ? ? ?顯示最后一行 ?
sed ‘G’ FILE? ? ? ? ? ? ? ? ? ? ? ? ??每行后加一個空行
sed ‘g’ FILE? ? ? ? ? ? ? ? ? ? ? ? ? ?變成空行顯示出來
sed ‘/^$/d;G’ FILE? ? ? ? ? ? ?每行后加一個空行
sed ‘n;d’ FILE? ? ? ? ? ? ? ? ? ? ? ?顯示奇數行
sed -n ‘1!G;h;$p’ FILE? ? ? ? 倒序
5)yum(以httpd為例)
1) 下載源碼并解壓縮
tar xvf httpd-2.4.29.tar.bz2 -C /usr/local/src/
2)安裝編譯相關工具及依賴的包
yum groupinstall “development tools”
yum install apr-devel apr-util-devel pcre-devel
3)./configure –prefix=/apps/httpd24 –sysconfdir=/etc/httpd24
4)make -j 4
5) make install
6)PATH變量
echo ‘PATH=/apps/httpd24/bin:$PATH’ > /etc/profile.d/httpd24.sh
. /etc/profile.d/httpd24.sh
7)使用軟件
apachectl 啟動服務
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92538