linux三劍客
A. linux三劍客(sed)-編輯匹配到的文本
sed編輯器是一行一行的處理文件,正在處理的內容存放在模式空間(緩沖區)中,處理完畢後按照選項的規定進行輸出或文件的修改。
sed主要用來自動編輯一個或多個文件;簡化文件的反復操作,用於非交互編譯文件。
可以使用一個簡單的數字,或是一個行號范圍
注意:p的動作是:列印匹配行。
1. 原始文件:
2. sed的默認動作
(1)sed的默認動作是列印文件中的所有行。
3. 列印特定行
(1)因為sed命令默認列印文件中所有行。所以第三行會被列印兩遍。那如何只列印第三行呢?使用【-n】命令,只列印匹配的行。
(2)使用【-n】命令,只列印匹配到的行
(3)列印[n,m]行
(4)列印包含模式的行
(5)列印包含模式和指定行號之間的行
(6)包含模式和包含模式之間的行
(7) {}執行多個命令(command),使用;隔開。=是顯示文件行的行號。p是列印匹配行
(8)!取反操作
(9)q命令:第一個模式匹配完成後退出或立即退出,使用該命令列印前5行
(1)使用[]進行正則匹配
(2)其他的正則表達式
(1)列印出以#開頭的行,然後用!進行反選,則表示過濾掉以#開頭的行,不會過濾掉空格。
(2)匹配以#開頭的行,進行取反,則列印出非#開頭的行,然後其結果在對空格開頭的行進行取反。即 過濾掉以#開頭的行和以空格開頭的行。 {}表示在定位行執行的命令組。
(3)sed支持對單個文件實現不同的操作,每個操作用-e參數。定位到執行的行後,使用d命令,直接刪除匹配到的行。
需要注意的是,對源文件的添加要使用【-i】參數。
s:使用替換模式替換相應模式
(1)在匹配行前面替換字元,使用【s】命令。
(2)在所有行開頭替換元素【s】
(3)在所有行的末尾替換元素
(4)指定行,進行替換操作
(5)【&】符號代表的是匹配到的字元。在匹配到字元後,可以使用&代替。
(6)在匹配到行前面添加一行,使用【i】的命令
(7)在匹配行的後面添加一行,使用【a】命令
(8)當添加多行時,使用 來轉義
(9)@代表的是【地址定界符】,一般由三個組成,定界符可以是/,$,#等特殊字元,此命令表示,匹配特定字元的行進行替換。
(10)使用命令【g】修改全文中出現的匹配字元。
(11)若後面接數字之後在接g,表示匹配的行中,第幾次出現。就替換,2g表示替換行中第二次出現。
(1)刪除以非#號開頭的行,即顯示以#號開頭的行。
(2)刪除第一行
(3)刪除最後一行
(4)刪除指定的行區間
(5)刪除包含特定單詞的行
本文參考:
sed命令詳解
B. linux該如何學習
linux運維的學習過程,主要分為4個階段,初級入門->中級進階->高級提升->資深細化。
第一階段:初級入門
1、linux基礎知識、命令(常用命令如cp、ls、mkdir等)
2、linux用戶及許可權基礎
3、linux系統進程管理進階
4、linux文件處理命令(vim、grep、sed、awk、find等)
5、shell腳本入門
第二階段:中級進階
1、tcp/ip網路基礎
2、linux企業級安全原理和防範技巧
3、加密/解密原理及數據安全、系統服務訪問控制及服務安全基礎
4、iptables安全策略構建
5、shell腳本進階
6、mysql應用原理及管理入門
第三階段:高級提升
1、企業級負載集群(主要學習varnish、nginx緩存系統)
2、企業級高可用集群(需要對keepalived、heartbeat有一定了解)
3、運維監控zabbix詳解(主要是zabbix、cacti、nagios等監控系統)
4、運維自動化學習(需要學一些開源運維自動化工具的使用,如ansible、puppet、cobbler等工具)
第四階段:資深進階
1、大數據方向(需要對hadoop、storm等常見開源大數據系統深入了解)
2、雲計算方向(主要是openstack,kvm等虛擬化技術也是需要的,還有docker)
3、運維開發(python運維開發)
4、自動化運維(在之前自動化基礎上做深入)
C. Linux三劍客awk命令篇二:命令操作符
Linux三劍客awk命令篇二:命令操作符
關於awk的原理等基本知識請參考上篇:
Linux三劍客awk命令篇一:原理及基本命令
補充
1、語法格式:
(1) Awk完整語法
awk 'BEGIN{commands} pattern{commands}END{commands} ' file
BEGIN{commands}:處理數據前執行的命令。
END{commands}:處理完數據後執行的命令。
這兩個命令可以省略。見(2)
(2) Awk基本語法
awk -F '分割符' '/模式/{動作} ' file
這里的 '/模式/{動作} ' 類似於sed的命令格式。
模式:
(1) 正則表達式(注意格式: /正則表達式/ )
(2) 條件表達式(例如:> <等等)
總結:
這里的模式通俗來講是 用來找誰, 而動作表示是 幹啥。
2、 awk的命令操作符
(1) 正則表達式與bash一致
(2) + - * / % ++ --
(3) && || !
(4) > < >= <= != == ~ !~
~:表示匹配後面的模式,用於欄位,見 案例1 。
其餘的都比較常見就不舉例了。
3、案例
案例1:
~使用案例
awk -F : '$3 ~ /<...>/{print $1,$3}' /etc/passwd
解釋:
模式:<...>
< >表示定界符,只匹配3個字元。
$3 ~:表示$3這個欄位必須符合後面模式(<...>)的要求。
見如下輸出結果,$3都是3個字元。
案例2:
% || ==使用案例
seq 100 | awk '$1 % 7 == 0 || $1 ~ /^99/{print $1}'
輸出結果的要求:
整除7或者以99開頭
案例3:
++使用
awk 'BEGIN{num=0}{num++}END{print num}' /etc/passwd
簡單解釋:
BEGIN{num=0}:定義一個變數num
{num++}:這里沒有模式,只有動作。
即每匹配到文件/etc/passwd的一行就執行num++
END{print num}:文件遍歷結束,列印num的值,即文件的行數。
這里我們使用wc -l驗證也是沒問題的。
cat /etc/passwd | wc -l
上面3個案例簡單的使用了awk的命令操作符。
雖然只是用到了幾個簡單的,但是其他同理,大家可以執行操作。
下一篇:
Linux三劍客awk命令篇二之內部變數
歡迎大家給予寶貴的意見或者建議。
歡迎大家補充或者共享一些其他的方法。
感謝支持。
D. Linux可以運行Visual Studio和三劍客軟體嗎
你網頁製作專業,編程不需要用MS Visual Studio。Linux有許多優秀的IDE,如eclipse, code::block。另外在Linux下編程會比win下更加方便。你可以直接使用gcc,gdb等而不需要復雜的IDE。
三劍客目前是不能運行於Linux下的,不過在Mac OS上得到了支持。在Linux下製作網頁,你可以使用Bluefish, 比較適合網頁編寫的老手,因為它不支持可見即可得。但他的代碼處理能力一流,十分簡潔。
在Linux下製作網頁,會遇到許多麻煩,首先,IE是無法運行於linux的。你可以嘗試使用Wine來解決這個問題。但Wine並不穩定。Crossover是Wine的商業版,更加穩定,可以運行visual studio和三劍客軟體。不過它是付費的。
就我個人看法,Linux下學習開發網頁,還是注重代碼,如果你是美工的話,完全沒有必要。
學習linux重在堅持,開始會認為linux很不人性化,但用後會發現它的精妙之處。