Linux教程基礎(chǔ)知識(shí)大全
Linu__操作系統(tǒng)在短短的幾年之內(nèi)得到了非常迅猛的發(fā)展,這與linu__具有的良好特性是分不開的。Linu__包含了UNI__的全部功能和特性。簡單來說,linu__具有以下主要特性:遵循GNU GPL,開放性,多任務(wù),多用戶,設(shè)備獨(dú)立性,提供了豐富的網(wǎng)絡(luò)功能,可靠的系統(tǒng)安全,良好的可移植性。下面就讓小編帶你去看看Linu__教程基礎(chǔ)知識(shí)大全,希望對你有所幫助吧!
Linu__運(yùn)維學(xué)習(xí)路線,實(shí)用Linu__教程,推薦學(xué)習(xí)收藏
1、掌握Linu__基礎(chǔ)
俗話說“思則有備,有備無患”,學(xué)習(xí)之前你先要搭建好學(xué)習(xí)環(huán)境(紅帽RHEL7)然后在虛擬機(jī)安裝它,開始使用它。學(xué)習(xí)Linu__,命令使用是學(xué)習(xí)的前提,就像你和外國人說話就得說英語不然別人怎么知道你說的是什么。例如:
命令名,選項(xiàng),各個(gè)參數(shù)都作為命令的輸入項(xiàng),都是獨(dú)立的項(xiàng),他們之間必須用空格隔開。Linu__中命令格式如下:
命令名 【選項(xiàng)】 【參數(shù)1】 【參數(shù)2】……
學(xué)習(xí)Linu__,要熟練掌握命令的使用,雖然命令多,但是熟能生巧,在以后的學(xué)習(xí)運(yùn)用中能大大節(jié)約你的時(shí)間。還有學(xué)習(xí)linu__切不可粗心大意,往往一個(gè)小小的空格也會(huì)報(bào)錯(cuò),當(dāng)然在linu__中,大小寫是很敏感的,切記!
2、從基礎(chǔ)入手,切勿眼高手低
linu__如果一旦學(xué)習(xí)一段時(shí)間之后你會(huì)發(fā)現(xiàn)其實(shí)也沒想象中那么難,甚至比windows更簡單已操作,通常認(rèn)為GLI沒有GUL那么方面用戶操作。因?yàn)槊钚薪缑娴能浖ǔP枰脩粲洃洸僮鱽硗瓿擅睿?,由于其本身的特點(diǎn),命令行界面要較圖形用戶界面節(jié)約計(jì)算機(jī)系統(tǒng)的資源。所以,熟記命令的前提下,使用命令行界面往往要較使用圖形用戶界面的操作速度要快,這也是你以后玩轉(zhuǎn)Linu__的基本條件之一。
3、多總結(jié),勤思考,多記筆記
如果想學(xué)好Linu__系統(tǒng)知識(shí),不是一天兩天就能學(xué)會(huì)的,也是經(jīng)過一朝一夕,慢慢積累的,這個(gè)過程中要學(xué)會(huì)去總結(jié),多思考,多動(dòng)手去練,去實(shí)踐,在理解的基礎(chǔ)上去記憶,把原理搞懂,把重要的知識(shí)點(diǎn)積累下來,以便在以后的工作中方便查找,當(dāng)做查詢手冊,同時(shí)也能鍛煉我們編寫文檔的能力,對以后都是有很大幫助的。
4、及時(shí)充電,提高自學(xué)能力
要具備良好的自學(xué)能力,除了老師講的,你還要去考慮老師的知識(shí)點(diǎn)還可以怎樣去擴(kuò)充,這時(shí)候一本好的資料書就非常必要了,把這些基礎(chǔ)的都學(xué)會(huì)了,建議你再去深入學(xué)習(xí)Linu__進(jìn)階技術(shù),不斷的去提高自己。
以上也只是我個(gè)人學(xué)習(xí)經(jīng)驗(yàn)所談,希望我的學(xué)習(xí)經(jīng)驗(yàn)可以幫助到像我原來這樣的新手。學(xué)好linu__基礎(chǔ)要扎實(shí),切不可好高騖遠(yuǎn),踏踏實(shí)實(shí)的去練習(xí)思考。指尖和思維的跳動(dòng)才能跳出linu__的華爾茲!
Linu__內(nèi)核開發(fā)工具介紹
本文所說的“Linu__內(nèi)核開發(fā)”僅僅是指嵌入式Linu__產(chǎn)品開發(fā)中內(nèi)核和驅(qū)動(dòng)相關(guān)開發(fā)工作,與Linu__所領(lǐng)導(dǎo)的內(nèi)核開發(fā)團(tuán)隊(duì)的內(nèi)核開發(fā)有很大不同。
俗話說“工欲善其事,必先利其器”,面對幾百兆的Linu__內(nèi)核代碼,要閱讀、查看或者搜索其中的代碼,大部分初次接觸到Linu__內(nèi)核代碼的開發(fā)人員,都有無從下手的感覺。下面推薦幾個(gè)源碼閱讀和索引工具,能為后續(xù)內(nèi)核開發(fā)提供一些便利。
一
Source Insight
Source Insight是Windows平臺(tái)下一款流行度極高的源碼閱讀和編輯工具。不少Linu__開發(fā)人員還是習(xí)慣于在Windows下進(jìn)行源碼編輯,甚至查看和編輯Linu__內(nèi)核源碼,依然在Source Insight中完成。
說明:Source Insight是一款版權(quán)軟件,需要自行解決版權(quán)問題。
安裝Source Insight軟件后,新建一個(gè)工程,取名并指定數(shù)據(jù)存放位置。
點(diǎn)擊OK按鈕,進(jìn)入工程設(shè)置界面。
然后添加源碼。瀏覽選中Linu__內(nèi)核源碼文件夾后,點(diǎn)擊“Add Tree”按鈕,將內(nèi)核源碼樹的全部文件添加到工程中。
添加完成,即可在Source Insight中進(jìn)行源碼閱讀和編輯了。
二
Eclipse
Eclipse是一個(gè)跨平臺(tái)IDE,既能運(yùn)行于Windows平臺(tái),也能在Linu__下運(yùn)行。不少習(xí)慣于圖形界面操作的開發(fā)人員,在Linu__下則習(xí)慣于用Eclipse來查看和編輯Linu__源碼。
如果僅僅是在Eclipse中查看Linu__內(nèi)核源碼,則可以不必事先安裝交叉編譯器,否則則須事先安裝好交叉編譯器。
創(chuàng)建內(nèi)核源碼工程。點(diǎn)擊File——New——Project,開始創(chuàng)建工程,在工程創(chuàng)建界面選擇創(chuàng)建C工程,。
點(diǎn)擊Ne__t,在C Project界面的Project name欄中填寫工程名稱,去掉“Use default location”的勾,點(diǎn)擊Browse將Location設(shè)置為Linu__內(nèi)核源碼目錄。如果不在Eclipse中編譯內(nèi)核,則使用Linu__ GCC即可,否則請使用安裝好的Cross GCC。
然后點(diǎn)擊Finish,完成Linu__內(nèi)核源碼導(dǎo)入,在Eclipse中即可進(jìn)行代碼閱讀和編輯了。
在Eclipse中進(jìn)行源碼跟蹤,只需選擇函數(shù)、變量或者宏定義后按F3即可。更多的操作可在Navigate中找到。
三
vim+ctags+cscope
Vi/Vim是一個(gè)文本編輯器,在Vim中能高效的實(shí)現(xiàn)代碼編輯。但Vim的功能不僅僅是一個(gè)文本編輯器,借助ctags和cscope的配合,Vim能實(shí)現(xiàn)堪比圖形IDE環(huán)境的源碼編輯和閱讀功能,在某種程度上甚至比圖形IDE更方便。
Vi/Vim的安裝不再介紹了。如果不是通過遠(yuǎn)程登錄在遠(yuǎn)程服務(wù)器上工作,而是在本地桌面系統(tǒng)操作,還可以用gvim啟動(dòng)Vi編輯器。
1、Taglist
Taglist是Vim的一個(gè)源碼瀏覽插件,可從http://www.vim.org網(wǎng)站獲得。下載到壓縮包后,在本地解壓,然后將解壓得到目錄中的plugin目錄復(fù)制到~/.vim目錄。如果用戶主目錄下沒有.vim目錄,則建立一個(gè)這樣的目錄即可。
2、Ctags
Ctags是一個(gè)用于產(chǎn)生tags文件的軟件,可以下載源碼進(jìn)行編譯安裝,在Ubuntu下,可通過apt-get進(jìn)行安裝:
$ sudo apt-get install e__uberant-ctags
3、源碼閱讀和跟蹤
進(jìn)入準(zhǔn)備查看的源碼所在目錄,首先生成tags文件:
$ ctags -R
執(zhí)行時(shí)間長短取決于源碼數(shù)量的多少,執(zhí)行完畢,在當(dāng)前目錄下可看到一個(gè)tags文件。源碼越多,執(zhí)行時(shí)間越長,產(chǎn)生的tags文件也越大。
注意:如果修改了源碼,代碼行號(hào)發(fā)生了變化,需要重新生成tags文件。
查看函數(shù)等定義。用Vi/Vim打開一個(gè)C文件。若想知道某個(gè)函數(shù)、變量、結(jié)構(gòu)或者宏定義在什么地方定義,先將光標(biāo)移動(dòng)到函數(shù)(變量、結(jié)構(gòu)或者宏定義)上,然后按CTRL+]即可。查看后,按CTRL+o可回到原來所在位置。
查看文件函數(shù)列表。打開C文件后,在Vi/Vim的命令狀態(tài)下輸入:TlistToggle(Vi/Vim的命令輸入支持補(bǔ)全),在Vi/Vim左邊就會(huì)出現(xiàn)函數(shù)列表側(cè)欄,如圖8所示。按CTRL+ww(2次w),可在列表和代碼查看區(qū)間切換。
如果在本地桌面,用Gvim打開C文件,使用起來比較接近IDE集成環(huán)境。用鼠標(biāo)雙擊函數(shù)即可跳轉(zhuǎn)到函數(shù)定義的地方,CTRL+鼠標(biāo)右鍵即可回退到原來所在位置。更多實(shí)用特性,還需要在實(shí)際操作中體驗(yàn)。
四
L__R
L__R是Linu__ Cross Referencer的縮寫,是一個(gè)比較流行的Linu__源碼查看工具,當(dāng)然也不僅僅局限于查看Linu__源碼。
Linu__常用命令 awk 入門基礎(chǔ)教程
awk命令工具在Linu__/UNI__系統(tǒng)中,awk是一個(gè)功能強(qiáng)大的編輯工具,逐行讀取輸入文本,并根據(jù)指定的匹配模式進(jìn)行查找,對符合條件的內(nèi)容進(jìn)行格式化輸出或者過濾處理,可以在無交互的情況下實(shí)現(xiàn)相當(dāng)復(fù)雜的文本操作,被廣泛應(yīng)用于Shell腳本,完成各種自動(dòng)化配置任務(wù)。一、awk命令的語法及概述
awk 選項(xiàng) '模式或條件 { 編輯指令 }' 文件1 文件2 …
//過濾并輸出文件符合條件的內(nèi)容
awk -f 腳本文件 文件1 文件2 …
//從腳本中調(diào)用編輯指令,過濾并輸出內(nèi)容
__awk執(zhí)行結(jié)果可以通過print的功能將字段數(shù)據(jù)打印顯示。在使用awk命令的過程中,可以使用邏輯操作符“&&”和“||”;
也可以進(jìn)行簡單的數(shù)學(xué)運(yùn)算,如+ 、-、、/、%、^分別表示加、減、乘、除、取余、乘方。____
awk從輸入文件或者標(biāo)準(zhǔn)輸入中讀入信息,與sed一樣,信息的讀入也是逐行讀取的。不同的是,awk命令將文本文件中的一行視為一個(gè)記錄,而將一行中的某一部分(列)作為記錄的一個(gè)字段。為了操作這些不同的字段(列),awk借用shell中類似于位置變量的方法,用 class="main">
Linux教程基礎(chǔ)知識(shí)大全
Linu__運(yùn)維學(xué)習(xí)路線,實(shí)用Linu__教程,推薦學(xué)習(xí)收藏
1、掌握Linu__基礎(chǔ)
俗話說“思則有備,有備無患”,學(xué)習(xí)之前你先要搭建好學(xué)習(xí)環(huán)境(紅帽RHEL7)然后在虛擬機(jī)安裝它,開始使用它。學(xué)習(xí)Linu__,命令使用是學(xué)習(xí)的前提,就像你和外國人說話就得說英語不然別人怎么知道你說的是什么。例如:
命令名,選項(xiàng),各個(gè)參數(shù)都作為命令的輸入項(xiàng),都是獨(dú)立的項(xiàng),他們之間必須用空格隔開。Linu__中命令格式如下:
命令名 【選項(xiàng)】 【參數(shù)1】 【參數(shù)2】……
學(xué)習(xí)Linu__,要熟練掌握命令的使用,雖然命令多,但是熟能生巧,在以后的學(xué)習(xí)運(yùn)用中能大大節(jié)約你的時(shí)間。還有學(xué)習(xí)linu__切不可粗心大意,往往一個(gè)小小的空格也會(huì)報(bào)錯(cuò),當(dāng)然在linu__中,大小寫是很敏感的,切記!
2、從基礎(chǔ)入手,切勿眼高手低
linu__如果一旦學(xué)習(xí)一段時(shí)間之后你會(huì)發(fā)現(xiàn)其實(shí)也沒想象中那么難,甚至比windows更簡單已操作,通常認(rèn)為GLI沒有GUL那么方面用戶操作。因?yàn)槊钚薪缑娴能浖ǔP枰脩粲洃洸僮鱽硗瓿擅?,但是,由于其本身的特點(diǎn),命令行界面要較圖形用戶界面節(jié)約計(jì)算機(jī)系統(tǒng)的資源。所以,熟記命令的前提下,使用命令行界面往往要較使用圖形用戶界面的操作速度要快,這也是你以后玩轉(zhuǎn)Linu__的基本條件之一。
3、多總結(jié),勤思考,多記筆記
如果想學(xué)好Linu__系統(tǒng)知識(shí),不是一天兩天就能學(xué)會(huì)的,也是經(jīng)過一朝一夕,慢慢積累的,這個(gè)過程中要學(xué)會(huì)去總結(jié),多思考,多動(dòng)手去練,去實(shí)踐,在理解的基礎(chǔ)上去記憶,把原理搞懂,把重要的知識(shí)點(diǎn)積累下來,以便在以后的工作中方便查找,當(dāng)做查詢手冊,同時(shí)也能鍛煉我們編寫文檔的能力,對以后都是有很大幫助的。
4、及時(shí)充電,提高自學(xué)能力
要具備良好的自學(xué)能力,除了老師講的,你還要去考慮老師的知識(shí)點(diǎn)還可以怎樣去擴(kuò)充,這時(shí)候一本好的資料書就非常必要了,把這些基礎(chǔ)的都學(xué)會(huì)了,建議你再去深入學(xué)習(xí)Linu__進(jìn)階技術(shù),不斷的去提高自己。
以上也只是我個(gè)人學(xué)習(xí)經(jīng)驗(yàn)所談,希望我的學(xué)習(xí)經(jīng)驗(yàn)可以幫助到像我原來這樣的新手。學(xué)好linu__基礎(chǔ)要扎實(shí),切不可好高騖遠(yuǎn),踏踏實(shí)實(shí)的去練習(xí)思考。指尖和思維的跳動(dòng)才能跳出linu__的華爾茲!
Linu__內(nèi)核開發(fā)工具介紹
本文所說的“Linu__內(nèi)核開發(fā)”僅僅是指嵌入式Linu__產(chǎn)品開發(fā)中內(nèi)核和驅(qū)動(dòng)相關(guān)開發(fā)工作,與Linu__所領(lǐng)導(dǎo)的內(nèi)核開發(fā)團(tuán)隊(duì)的內(nèi)核開發(fā)有很大不同。
俗話說“工欲善其事,必先利其器”,面對幾百兆的Linu__內(nèi)核代碼,要閱讀、查看或者搜索其中的代碼,大部分初次接觸到Linu__內(nèi)核代碼的開發(fā)人員,都有無從下手的感覺。下面推薦幾個(gè)源碼閱讀和索引工具,能為后續(xù)內(nèi)核開發(fā)提供一些便利。
一
Source Insight
Source Insight是Windows平臺(tái)下一款流行度極高的源碼閱讀和編輯工具。不少Linu__開發(fā)人員還是習(xí)慣于在Windows下進(jìn)行源碼編輯,甚至查看和編輯Linu__內(nèi)核源碼,依然在Source Insight中完成。
說明:Source Insight是一款版權(quán)軟件,需要自行解決版權(quán)問題。
安裝Source Insight軟件后,新建一個(gè)工程,取名并指定數(shù)據(jù)存放位置。
點(diǎn)擊OK按鈕,進(jìn)入工程設(shè)置界面。
然后添加源碼。瀏覽選中Linu__內(nèi)核源碼文件夾后,點(diǎn)擊“Add Tree”按鈕,將內(nèi)核源碼樹的全部文件添加到工程中。
添加完成,即可在Source Insight中進(jìn)行源碼閱讀和編輯了。
二
Eclipse
Eclipse是一個(gè)跨平臺(tái)IDE,既能運(yùn)行于Windows平臺(tái),也能在Linu__下運(yùn)行。不少習(xí)慣于圖形界面操作的開發(fā)人員,在Linu__下則習(xí)慣于用Eclipse來查看和編輯Linu__源碼。
如果僅僅是在Eclipse中查看Linu__內(nèi)核源碼,則可以不必事先安裝交叉編譯器,否則則須事先安裝好交叉編譯器。
創(chuàng)建內(nèi)核源碼工程。點(diǎn)擊File——New——Project,開始創(chuàng)建工程,在工程創(chuàng)建界面選擇創(chuàng)建C工程,。
點(diǎn)擊Ne__t,在C Project界面的Project name欄中填寫工程名稱,去掉“Use default location”的勾,點(diǎn)擊Browse將Location設(shè)置為Linu__內(nèi)核源碼目錄。如果不在Eclipse中編譯內(nèi)核,則使用Linu__ GCC即可,否則請使用安裝好的Cross GCC。
然后點(diǎn)擊Finish,完成Linu__內(nèi)核源碼導(dǎo)入,在Eclipse中即可進(jìn)行代碼閱讀和編輯了。
在Eclipse中進(jìn)行源碼跟蹤,只需選擇函數(shù)、變量或者宏定義后按F3即可。更多的操作可在Navigate中找到。
三
vim+ctags+cscope
Vi/Vim是一個(gè)文本編輯器,在Vim中能高效的實(shí)現(xiàn)代碼編輯。但Vim的功能不僅僅是一個(gè)文本編輯器,借助ctags和cscope的配合,Vim能實(shí)現(xiàn)堪比圖形IDE環(huán)境的源碼編輯和閱讀功能,在某種程度上甚至比圖形IDE更方便。
Vi/Vim的安裝不再介紹了。如果不是通過遠(yuǎn)程登錄在遠(yuǎn)程服務(wù)器上工作,而是在本地桌面系統(tǒng)操作,還可以用gvim啟動(dòng)Vi編輯器。
1、Taglist
Taglist是Vim的一個(gè)源碼瀏覽插件,可從http://www.vim.org網(wǎng)站獲得。下載到壓縮包后,在本地解壓,然后將解壓得到目錄中的plugin目錄復(fù)制到~/.vim目錄。如果用戶主目錄下沒有.vim目錄,則建立一個(gè)這樣的目錄即可。
2、Ctags
Ctags是一個(gè)用于產(chǎn)生tags文件的軟件,可以下載源碼進(jìn)行編譯安裝,在Ubuntu下,可通過apt-get進(jìn)行安裝:
$ sudo apt-get install e__uberant-ctags
3、源碼閱讀和跟蹤
進(jìn)入準(zhǔn)備查看的源碼所在目錄,首先生成tags文件:
$ ctags -R
執(zhí)行時(shí)間長短取決于源碼數(shù)量的多少,執(zhí)行完畢,在當(dāng)前目錄下可看到一個(gè)tags文件。源碼越多,執(zhí)行時(shí)間越長,產(chǎn)生的tags文件也越大。
注意:如果修改了源碼,代碼行號(hào)發(fā)生了變化,需要重新生成tags文件。
查看函數(shù)等定義。用Vi/Vim打開一個(gè)C文件。若想知道某個(gè)函數(shù)、變量、結(jié)構(gòu)或者宏定義在什么地方定義,先將光標(biāo)移動(dòng)到函數(shù)(變量、結(jié)構(gòu)或者宏定義)上,然后按CTRL+]即可。查看后,按CTRL+o可回到原來所在位置。
查看文件函數(shù)列表。打開C文件后,在Vi/Vim的命令狀態(tài)下輸入:TlistToggle(Vi/Vim的命令輸入支持補(bǔ)全),在Vi/Vim左邊就會(huì)出現(xiàn)函數(shù)列表側(cè)欄,如圖8所示。按CTRL+ww(2次w),可在列表和代碼查看區(qū)間切換。
如果在本地桌面,用Gvim打開C文件,使用起來比較接近IDE集成環(huán)境。用鼠標(biāo)雙擊函數(shù)即可跳轉(zhuǎn)到函數(shù)定義的地方,CTRL+鼠標(biāo)右鍵即可回退到原來所在位置。更多實(shí)用特性,還需要在實(shí)際操作中體驗(yàn)。
四
L__R
L__R是Linu__ Cross Referencer的縮寫,是一個(gè)比較流行的Linu__源碼查看工具,當(dāng)然也不僅僅局限于查看Linu__源碼。
Linu__常用命令 awk 入門基礎(chǔ)教程
awk命令工具在Linu__/UNI__系統(tǒng)中,awk是一個(gè)功能強(qiáng)大的編輯工具,逐行讀取輸入文本,并根據(jù)指定的匹配模式進(jìn)行查找,對符合條件的內(nèi)容進(jìn)行格式化輸出或者過濾處理,可以在無交互的情況下實(shí)現(xiàn)相當(dāng)復(fù)雜的文本操作,被廣泛應(yīng)用于Shell腳本,完成各種自動(dòng)化配置任務(wù)。一、awk命令的語法及概述
awk 選項(xiàng) '模式或條件 { 編輯指令 }' 文件1 文件2 …
//過濾并輸出文件符合條件的內(nèi)容
awk -f 腳本文件 文件1 文件2 …
//從腳本中調(diào)用編輯指令,過濾并輸出內(nèi)容
__awk執(zhí)行結(jié)果可以通過print的功能將字段數(shù)據(jù)打印顯示。在使用awk命令的過程中,可以使用邏輯操作符“&&”和“||”;
也可以進(jìn)行簡單的數(shù)學(xué)運(yùn)算,如+ 、-、、/、%、^分別表示加、減、乘、除、取余、乘方。____
awk從輸入文件或者標(biāo)準(zhǔn)輸入中讀入信息,與sed一樣,信息的讀入也是逐行讀取的。不同的是,awk命令將文本文件中的一行視為一個(gè)記錄,而將一行中的某一部分(列)作為記錄的一個(gè)字段。為了操作這些不同的字段(列),awk借用shell中類似于位置變量的方法,用$1、$2…$9順序的表示不同列,$0表示整行。不同字段與不同字段可以通過指定的方式進(jìn)行分隔,awk默認(rèn)的分隔符是空格。awk命令允許使用“-F分隔符”的形式來指定分隔符。
二、awk命令用法示例
1)按行輸出文本
1、輸出所有內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '{print}' linu__mi.py
[linu__mi@linu__:~/linu__mi迷]$ awk '{print $0}' linu__mi.py
等同于“l(fā)inu__mi.py”
2、輸出第1~3行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk 'NR==1,NR==3{print}' linu__mi.py
包括空行
3、出第3行、第5行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk 'NR==3 || NR==5{print}' linu__mi.py
4、輸出所有奇數(shù)行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '(NR%2)==1 {print}' linu__mi.py
5、輸出所有偶數(shù)行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '(NR%2)==0 {print}' linu__mi.py
6、輸出以“root”開頭的行
[linu__mi@linu__:~/linu__mi迷]$ awk '/^root/{print}' /etc/passwd
7、輸出以“nologin”結(jié)尾的行
[linu__mi@linu__:~/linu__mi迷]$ awk '/nologin$/{print}' /etc/passwd
8、統(tǒng)計(jì)以/bin/bash結(jié)尾的行數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN {__=0} ;/\/bin\/bash$/{__++};END {print __}' /etc/passwd
9、統(tǒng)計(jì)以/bin/bash結(jié)尾的行數(shù)
[linu__mi@linu__:~/linu__mi迷]$ grep -c "/bin/bash$" /etc/passwd
10、統(tǒng)計(jì)以空格分隔的文件段落數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{RS=""}; END{print NR}' /etc/dhcp/dhclient.conf
注意:命令較多時(shí),使用“BEGIN……END”
2)按字段輸出文本
1、輸出每行中(以空格分隔)的第3個(gè)字段
[linu__mi@linu__:~/linu__mi迷]$ awk '{print $3}' linu__mi.py
2、輸出每行中(以空格分隔)的第1個(gè)和第3個(gè)字段
[linu__mi@linu__:~/linu__mi迷]$ awk '{print $1,$3}' linu__mi.py
3)通過管道,雙引號(hào)調(diào)用Shell命令
1、調(diào)用“wc -l”命令統(tǒng)計(jì)使用“bash”的用戶個(gè)數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk -F: '/bash$/{print | "wc -l"}' /etc/passwd
[linu__mi@linu__:~/linu__mi迷]$ grep -c "bash$" /etc/passwd
2、調(diào)用“w”命令,并用力啊統(tǒng)計(jì)在線用戶數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN {while ("w" | getline) n++ ; {print n-2}}'
3、調(diào)用“hostname”命令,并輸出當(dāng)前用戶名
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN { "hostname" | getline ; print $0}'
4)使用awk命令進(jìn)行簡單的數(shù)學(xué)運(yùn)算
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=9;b=8;print"(a + b)=",(a + b)}'
(a + b)= 17
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=100;b=78;print"(a - b)=",(a - b)}'
(a - b)= 22
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=80;b=5;print"(a / b)=",(a / b)}'
(a / b)= 16
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=80;b=5;print"(a ÷ b)=",(a / b)}'
(a ÷ b)= 16
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=10;b=9;print"(a __ b)=",(a __ b)}'
(a __ b)= 90
Linux教程基礎(chǔ)知識(shí)大全相關(guān)文章:
★ Linux系統(tǒng)基礎(chǔ)知識(shí)有哪些
★ 學(xué)習(xí)啦在線學(xué)習(xí)網(wǎng)
★ 視頻教程
★ Linux中的ls命令詳細(xì)使用 linux命令大全ls教程
★ 操作系統(tǒng)基礎(chǔ)知識(shí)大全有哪些
★ 認(rèn)識(shí)網(wǎng)絡(luò)的基礎(chǔ)知識(shí)教程
★ 操作系統(tǒng)基礎(chǔ)必備知識(shí)有哪些
★ 系統(tǒng)安全基礎(chǔ)知識(shí)大全有哪些
…順序的表示不同列,Linux教程基礎(chǔ)知識(shí)大全
Linu__操作系統(tǒng)在短短的幾年之內(nèi)得到了非常迅猛的發(fā)展,這與linu__具有的良好特性是分不開的。Linu__包含了UNI__的全部功能和特性。簡單來說,linu__具有以下主要特性:遵循GNU GPL,開放性,多任務(wù),多用戶,設(shè)備獨(dú)立性,提供了豐富的網(wǎng)絡(luò)功能,可靠的系統(tǒng)安全,良好的可移植性。下面就讓小編帶你去看看Linu__教程基礎(chǔ)知識(shí)大全,希望對你有所幫助吧!
Linu__運(yùn)維學(xué)習(xí)路線,實(shí)用Linu__教程,推薦學(xué)習(xí)收藏
1、掌握Linu__基礎(chǔ)
俗話說“思則有備,有備無患”,學(xué)習(xí)之前你先要搭建好學(xué)習(xí)環(huán)境(紅帽RHEL7)然后在虛擬機(jī)安裝它,開始使用它。學(xué)習(xí)Linu__,命令使用是學(xué)習(xí)的前提,就像你和外國人說話就得說英語不然別人怎么知道你說的是什么。例如:
命令名,選項(xiàng),各個(gè)參數(shù)都作為命令的輸入項(xiàng),都是獨(dú)立的項(xiàng),他們之間必須用空格隔開。Linu__中命令格式如下:
命令名 【選項(xiàng)】 【參數(shù)1】 【參數(shù)2】……
學(xué)習(xí)Linu__,要熟練掌握命令的使用,雖然命令多,但是熟能生巧,在以后的學(xué)習(xí)運(yùn)用中能大大節(jié)約你的時(shí)間。還有學(xué)習(xí)linu__切不可粗心大意,往往一個(gè)小小的空格也會(huì)報(bào)錯(cuò),當(dāng)然在linu__中,大小寫是很敏感的,切記!
2、從基礎(chǔ)入手,切勿眼高手低
linu__如果一旦學(xué)習(xí)一段時(shí)間之后你會(huì)發(fā)現(xiàn)其實(shí)也沒想象中那么難,甚至比windows更簡單已操作,通常認(rèn)為GLI沒有GUL那么方面用戶操作。因?yàn)槊钚薪缑娴能浖ǔP枰脩粲洃洸僮鱽硗瓿擅?,但是,由于其本身的特點(diǎn),命令行界面要較圖形用戶界面節(jié)約計(jì)算機(jī)系統(tǒng)的資源。所以,熟記命令的前提下,使用命令行界面往往要較使用圖形用戶界面的操作速度要快,這也是你以后玩轉(zhuǎn)Linu__的基本條件之一。
3、多總結(jié),勤思考,多記筆記
如果想學(xué)好Linu__系統(tǒng)知識(shí),不是一天兩天就能學(xué)會(huì)的,也是經(jīng)過一朝一夕,慢慢積累的,這個(gè)過程中要學(xué)會(huì)去總結(jié),多思考,多動(dòng)手去練,去實(shí)踐,在理解的基礎(chǔ)上去記憶,把原理搞懂,把重要的知識(shí)點(diǎn)積累下來,以便在以后的工作中方便查找,當(dāng)做查詢手冊,同時(shí)也能鍛煉我們編寫文檔的能力,對以后都是有很大幫助的。
4、及時(shí)充電,提高自學(xué)能力
要具備良好的自學(xué)能力,除了老師講的,你還要去考慮老師的知識(shí)點(diǎn)還可以怎樣去擴(kuò)充,這時(shí)候一本好的資料書就非常必要了,把這些基礎(chǔ)的都學(xué)會(huì)了,建議你再去深入學(xué)習(xí)Linu__進(jìn)階技術(shù),不斷的去提高自己。
以上也只是我個(gè)人學(xué)習(xí)經(jīng)驗(yàn)所談,希望我的學(xué)習(xí)經(jīng)驗(yàn)可以幫助到像我原來這樣的新手。學(xué)好linu__基礎(chǔ)要扎實(shí),切不可好高騖遠(yuǎn),踏踏實(shí)實(shí)的去練習(xí)思考。指尖和思維的跳動(dòng)才能跳出linu__的華爾茲!
Linu__內(nèi)核開發(fā)工具介紹
本文所說的“Linu__內(nèi)核開發(fā)”僅僅是指嵌入式Linu__產(chǎn)品開發(fā)中內(nèi)核和驅(qū)動(dòng)相關(guān)開發(fā)工作,與Linu__所領(lǐng)導(dǎo)的內(nèi)核開發(fā)團(tuán)隊(duì)的內(nèi)核開發(fā)有很大不同。
俗話說“工欲善其事,必先利其器”,面對幾百兆的Linu__內(nèi)核代碼,要閱讀、查看或者搜索其中的代碼,大部分初次接觸到Linu__內(nèi)核代碼的開發(fā)人員,都有無從下手的感覺。下面推薦幾個(gè)源碼閱讀和索引工具,能為后續(xù)內(nèi)核開發(fā)提供一些便利。
一
Source Insight
Source Insight是Windows平臺(tái)下一款流行度極高的源碼閱讀和編輯工具。不少Linu__開發(fā)人員還是習(xí)慣于在Windows下進(jìn)行源碼編輯,甚至查看和編輯Linu__內(nèi)核源碼,依然在Source Insight中完成。
說明:Source Insight是一款版權(quán)軟件,需要自行解決版權(quán)問題。
安裝Source Insight軟件后,新建一個(gè)工程,取名并指定數(shù)據(jù)存放位置。
點(diǎn)擊OK按鈕,進(jìn)入工程設(shè)置界面。
然后添加源碼。瀏覽選中Linu__內(nèi)核源碼文件夾后,點(diǎn)擊“Add Tree”按鈕,將內(nèi)核源碼樹的全部文件添加到工程中。
添加完成,即可在Source Insight中進(jìn)行源碼閱讀和編輯了。
二
Eclipse
Eclipse是一個(gè)跨平臺(tái)IDE,既能運(yùn)行于Windows平臺(tái),也能在Linu__下運(yùn)行。不少習(xí)慣于圖形界面操作的開發(fā)人員,在Linu__下則習(xí)慣于用Eclipse來查看和編輯Linu__源碼。
如果僅僅是在Eclipse中查看Linu__內(nèi)核源碼,則可以不必事先安裝交叉編譯器,否則則須事先安裝好交叉編譯器。
創(chuàng)建內(nèi)核源碼工程。點(diǎn)擊File——New——Project,開始創(chuàng)建工程,在工程創(chuàng)建界面選擇創(chuàng)建C工程,。
點(diǎn)擊Ne__t,在C Project界面的Project name欄中填寫工程名稱,去掉“Use default location”的勾,點(diǎn)擊Browse將Location設(shè)置為Linu__內(nèi)核源碼目錄。如果不在Eclipse中編譯內(nèi)核,則使用Linu__ GCC即可,否則請使用安裝好的Cross GCC。
然后點(diǎn)擊Finish,完成Linu__內(nèi)核源碼導(dǎo)入,在Eclipse中即可進(jìn)行代碼閱讀和編輯了。
在Eclipse中進(jìn)行源碼跟蹤,只需選擇函數(shù)、變量或者宏定義后按F3即可。更多的操作可在Navigate中找到。
三
vim+ctags+cscope
Vi/Vim是一個(gè)文本編輯器,在Vim中能高效的實(shí)現(xiàn)代碼編輯。但Vim的功能不僅僅是一個(gè)文本編輯器,借助ctags和cscope的配合,Vim能實(shí)現(xiàn)堪比圖形IDE環(huán)境的源碼編輯和閱讀功能,在某種程度上甚至比圖形IDE更方便。
Vi/Vim的安裝不再介紹了。如果不是通過遠(yuǎn)程登錄在遠(yuǎn)程服務(wù)器上工作,而是在本地桌面系統(tǒng)操作,還可以用gvim啟動(dòng)Vi編輯器。
1、Taglist
Taglist是Vim的一個(gè)源碼瀏覽插件,可從http://www.vim.org網(wǎng)站獲得。下載到壓縮包后,在本地解壓,然后將解壓得到目錄中的plugin目錄復(fù)制到~/.vim目錄。如果用戶主目錄下沒有.vim目錄,則建立一個(gè)這樣的目錄即可。
2、Ctags
Ctags是一個(gè)用于產(chǎn)生tags文件的軟件,可以下載源碼進(jìn)行編譯安裝,在Ubuntu下,可通過apt-get進(jìn)行安裝:
$ sudo apt-get install e__uberant-ctags
3、源碼閱讀和跟蹤
進(jìn)入準(zhǔn)備查看的源碼所在目錄,首先生成tags文件:
$ ctags -R
執(zhí)行時(shí)間長短取決于源碼數(shù)量的多少,執(zhí)行完畢,在當(dāng)前目錄下可看到一個(gè)tags文件。源碼越多,執(zhí)行時(shí)間越長,產(chǎn)生的tags文件也越大。
注意:如果修改了源碼,代碼行號(hào)發(fā)生了變化,需要重新生成tags文件。
查看函數(shù)等定義。用Vi/Vim打開一個(gè)C文件。若想知道某個(gè)函數(shù)、變量、結(jié)構(gòu)或者宏定義在什么地方定義,先將光標(biāo)移動(dòng)到函數(shù)(變量、結(jié)構(gòu)或者宏定義)上,然后按CTRL+]即可。查看后,按CTRL+o可回到原來所在位置。
查看文件函數(shù)列表。打開C文件后,在Vi/Vim的命令狀態(tài)下輸入:TlistToggle(Vi/Vim的命令輸入支持補(bǔ)全),在Vi/Vim左邊就會(huì)出現(xiàn)函數(shù)列表側(cè)欄,如圖8所示。按CTRL+ww(2次w),可在列表和代碼查看區(qū)間切換。
如果在本地桌面,用Gvim打開C文件,使用起來比較接近IDE集成環(huán)境。用鼠標(biāo)雙擊函數(shù)即可跳轉(zhuǎn)到函數(shù)定義的地方,CTRL+鼠標(biāo)右鍵即可回退到原來所在位置。更多實(shí)用特性,還需要在實(shí)際操作中體驗(yàn)。
四
L__R
L__R是Linu__ Cross Referencer的縮寫,是一個(gè)比較流行的Linu__源碼查看工具,當(dāng)然也不僅僅局限于查看Linu__源碼。
Linu__常用命令 awk 入門基礎(chǔ)教程
awk命令工具在Linu__/UNI__系統(tǒng)中,awk是一個(gè)功能強(qiáng)大的編輯工具,逐行讀取輸入文本,并根據(jù)指定的匹配模式進(jìn)行查找,對符合條件的內(nèi)容進(jìn)行格式化輸出或者過濾處理,可以在無交互的情況下實(shí)現(xiàn)相當(dāng)復(fù)雜的文本操作,被廣泛應(yīng)用于Shell腳本,完成各種自動(dòng)化配置任務(wù)。一、awk命令的語法及概述
awk 選項(xiàng) '模式或條件 { 編輯指令 }' 文件1 文件2 …
//過濾并輸出文件符合條件的內(nèi)容
awk -f 腳本文件 文件1 文件2 …
//從腳本中調(diào)用編輯指令,過濾并輸出內(nèi)容
__awk執(zhí)行結(jié)果可以通過print的功能將字段數(shù)據(jù)打印顯示。在使用awk命令的過程中,可以使用邏輯操作符“&&”和“||”;
也可以進(jìn)行簡單的數(shù)學(xué)運(yùn)算,如+ 、-、、/、%、^分別表示加、減、乘、除、取余、乘方。____
awk從輸入文件或者標(biāo)準(zhǔn)輸入中讀入信息,與sed一樣,信息的讀入也是逐行讀取的。不同的是,awk命令將文本文件中的一行視為一個(gè)記錄,而將一行中的某一部分(列)作為記錄的一個(gè)字段。為了操作這些不同的字段(列),awk借用shell中類似于位置變量的方法,用$1、$2…$9順序的表示不同列,$0表示整行。不同字段與不同字段可以通過指定的方式進(jìn)行分隔,awk默認(rèn)的分隔符是空格。awk命令允許使用“-F分隔符”的形式來指定分隔符。
二、awk命令用法示例
1)按行輸出文本
1、輸出所有內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '{print}' linu__mi.py
[linu__mi@linu__:~/linu__mi迷]$ awk '{print $0}' linu__mi.py
等同于“l(fā)inu__mi.py”
2、輸出第1~3行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk 'NR==1,NR==3{print}' linu__mi.py
包括空行
3、出第3行、第5行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk 'NR==3 || NR==5{print}' linu__mi.py
4、輸出所有奇數(shù)行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '(NR%2)==1 {print}' linu__mi.py
5、輸出所有偶數(shù)行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '(NR%2)==0 {print}' linu__mi.py
6、輸出以“root”開頭的行
[linu__mi@linu__:~/linu__mi迷]$ awk '/^root/{print}' /etc/passwd
7、輸出以“nologin”結(jié)尾的行
[linu__mi@linu__:~/linu__mi迷]$ awk '/nologin$/{print}' /etc/passwd
8、統(tǒng)計(jì)以/bin/bash結(jié)尾的行數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN {__=0} ;/\/bin\/bash$/{__++};END {print __}' /etc/passwd
9、統(tǒng)計(jì)以/bin/bash結(jié)尾的行數(shù)
[linu__mi@linu__:~/linu__mi迷]$ grep -c "/bin/bash$" /etc/passwd
10、統(tǒng)計(jì)以空格分隔的文件段落數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{RS=""}; END{print NR}' /etc/dhcp/dhclient.conf
注意:命令較多時(shí),使用“BEGIN……END”
2)按字段輸出文本
1、輸出每行中(以空格分隔)的第3個(gè)字段
[linu__mi@linu__:~/linu__mi迷]$ awk '{print $3}' linu__mi.py
2、輸出每行中(以空格分隔)的第1個(gè)和第3個(gè)字段
[linu__mi@linu__:~/linu__mi迷]$ awk '{print $1,$3}' linu__mi.py
3)通過管道,雙引號(hào)調(diào)用Shell命令
1、調(diào)用“wc -l”命令統(tǒng)計(jì)使用“bash”的用戶個(gè)數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk -F: '/bash$/{print | "wc -l"}' /etc/passwd
[linu__mi@linu__:~/linu__mi迷]$ grep -c "bash$" /etc/passwd
2、調(diào)用“w”命令,并用力啊統(tǒng)計(jì)在線用戶數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN {while ("w" | getline) n++ ; {print n-2}}'
3、調(diào)用“hostname”命令,并輸出當(dāng)前用戶名
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN { "hostname" | getline ; print $0}'
4)使用awk命令進(jìn)行簡單的數(shù)學(xué)運(yùn)算
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=9;b=8;print"(a + b)=",(a + b)}'
(a + b)= 17
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=100;b=78;print"(a - b)=",(a - b)}'
(a - b)= 22
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=80;b=5;print"(a / b)=",(a / b)}'
(a / b)= 16
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=80;b=5;print"(a ÷ b)=",(a / b)}'
(a ÷ b)= 16
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=10;b=9;print"(a __ b)=",(a __ b)}'
(a __ b)= 90
Linux教程基礎(chǔ)知識(shí)大全相關(guān)文章:
★ Linux系統(tǒng)基礎(chǔ)知識(shí)有哪些
★ 學(xué)習(xí)啦在線學(xué)習(xí)網(wǎng)
★ 視頻教程
★ Linux中的ls命令詳細(xì)使用 linux命令大全ls教程
★ 操作系統(tǒng)基礎(chǔ)知識(shí)大全有哪些
★ 認(rèn)識(shí)網(wǎng)絡(luò)的基礎(chǔ)知識(shí)教程
★ 操作系統(tǒng)基礎(chǔ)必備知識(shí)有哪些
二、awk命令用法示例
1)按行輸出文本
1、輸出所有內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '{print}' linu__mi.py
[linu__mi@linu__:~/linu__mi迷]$ awk '{print
Linux教程基礎(chǔ)知識(shí)大全
Linu__操作系統(tǒng)在短短的幾年之內(nèi)得到了非常迅猛的發(fā)展,這與linu__具有的良好特性是分不開的。Linu__包含了UNI__的全部功能和特性。簡單來說,linu__具有以下主要特性:遵循GNU GPL,開放性,多任務(wù),多用戶,設(shè)備獨(dú)立性,提供了豐富的網(wǎng)絡(luò)功能,可靠的系統(tǒng)安全,良好的可移植性。下面就讓小編帶你去看看Linu__教程基礎(chǔ)知識(shí)大全,希望對你有所幫助吧!
Linu__運(yùn)維學(xué)習(xí)路線,實(shí)用Linu__教程,推薦學(xué)習(xí)收藏
1、掌握Linu__基礎(chǔ)
俗話說“思則有備,有備無患”,學(xué)習(xí)之前你先要搭建好學(xué)習(xí)環(huán)境(紅帽RHEL7)然后在虛擬機(jī)安裝它,開始使用它。學(xué)習(xí)Linu__,命令使用是學(xué)習(xí)的前提,就像你和外國人說話就得說英語不然別人怎么知道你說的是什么。例如:
命令名,選項(xiàng),各個(gè)參數(shù)都作為命令的輸入項(xiàng),都是獨(dú)立的項(xiàng),他們之間必須用空格隔開。Linu__中命令格式如下:
命令名 【選項(xiàng)】 【參數(shù)1】 【參數(shù)2】……
學(xué)習(xí)Linu__,要熟練掌握命令的使用,雖然命令多,但是熟能生巧,在以后的學(xué)習(xí)運(yùn)用中能大大節(jié)約你的時(shí)間。還有學(xué)習(xí)linu__切不可粗心大意,往往一個(gè)小小的空格也會(huì)報(bào)錯(cuò),當(dāng)然在linu__中,大小寫是很敏感的,切記!
2、從基礎(chǔ)入手,切勿眼高手低
linu__如果一旦學(xué)習(xí)一段時(shí)間之后你會(huì)發(fā)現(xiàn)其實(shí)也沒想象中那么難,甚至比windows更簡單已操作,通常認(rèn)為GLI沒有GUL那么方面用戶操作。因?yàn)槊钚薪缑娴能浖ǔP枰脩粲洃洸僮鱽硗瓿擅睿?,由于其本身的特點(diǎn),命令行界面要較圖形用戶界面節(jié)約計(jì)算機(jī)系統(tǒng)的資源。所以,熟記命令的前提下,使用命令行界面往往要較使用圖形用戶界面的操作速度要快,這也是你以后玩轉(zhuǎn)Linu__的基本條件之一。
3、多總結(jié),勤思考,多記筆記
如果想學(xué)好Linu__系統(tǒng)知識(shí),不是一天兩天就能學(xué)會(huì)的,也是經(jīng)過一朝一夕,慢慢積累的,這個(gè)過程中要學(xué)會(huì)去總結(jié),多思考,多動(dòng)手去練,去實(shí)踐,在理解的基礎(chǔ)上去記憶,把原理搞懂,把重要的知識(shí)點(diǎn)積累下來,以便在以后的工作中方便查找,當(dāng)做查詢手冊,同時(shí)也能鍛煉我們編寫文檔的能力,對以后都是有很大幫助的。
4、及時(shí)充電,提高自學(xué)能力
要具備良好的自學(xué)能力,除了老師講的,你還要去考慮老師的知識(shí)點(diǎn)還可以怎樣去擴(kuò)充,這時(shí)候一本好的資料書就非常必要了,把這些基礎(chǔ)的都學(xué)會(huì)了,建議你再去深入學(xué)習(xí)Linu__進(jìn)階技術(shù),不斷的去提高自己。
以上也只是我個(gè)人學(xué)習(xí)經(jīng)驗(yàn)所談,希望我的學(xué)習(xí)經(jīng)驗(yàn)可以幫助到像我原來這樣的新手。學(xué)好linu__基礎(chǔ)要扎實(shí),切不可好高騖遠(yuǎn),踏踏實(shí)實(shí)的去練習(xí)思考。指尖和思維的跳動(dòng)才能跳出linu__的華爾茲!
Linu__內(nèi)核開發(fā)工具介紹
本文所說的“Linu__內(nèi)核開發(fā)”僅僅是指嵌入式Linu__產(chǎn)品開發(fā)中內(nèi)核和驅(qū)動(dòng)相關(guān)開發(fā)工作,與Linu__所領(lǐng)導(dǎo)的內(nèi)核開發(fā)團(tuán)隊(duì)的內(nèi)核開發(fā)有很大不同。
俗話說“工欲善其事,必先利其器”,面對幾百兆的Linu__內(nèi)核代碼,要閱讀、查看或者搜索其中的代碼,大部分初次接觸到Linu__內(nèi)核代碼的開發(fā)人員,都有無從下手的感覺。下面推薦幾個(gè)源碼閱讀和索引工具,能為后續(xù)內(nèi)核開發(fā)提供一些便利。
一
Source Insight
Source Insight是Windows平臺(tái)下一款流行度極高的源碼閱讀和編輯工具。不少Linu__開發(fā)人員還是習(xí)慣于在Windows下進(jìn)行源碼編輯,甚至查看和編輯Linu__內(nèi)核源碼,依然在Source Insight中完成。
說明:Source Insight是一款版權(quán)軟件,需要自行解決版權(quán)問題。
安裝Source Insight軟件后,新建一個(gè)工程,取名并指定數(shù)據(jù)存放位置。
點(diǎn)擊OK按鈕,進(jìn)入工程設(shè)置界面。
然后添加源碼。瀏覽選中Linu__內(nèi)核源碼文件夾后,點(diǎn)擊“Add Tree”按鈕,將內(nèi)核源碼樹的全部文件添加到工程中。
添加完成,即可在Source Insight中進(jìn)行源碼閱讀和編輯了。
二
Eclipse
Eclipse是一個(gè)跨平臺(tái)IDE,既能運(yùn)行于Windows平臺(tái),也能在Linu__下運(yùn)行。不少習(xí)慣于圖形界面操作的開發(fā)人員,在Linu__下則習(xí)慣于用Eclipse來查看和編輯Linu__源碼。
如果僅僅是在Eclipse中查看Linu__內(nèi)核源碼,則可以不必事先安裝交叉編譯器,否則則須事先安裝好交叉編譯器。
創(chuàng)建內(nèi)核源碼工程。點(diǎn)擊File——New——Project,開始創(chuàng)建工程,在工程創(chuàng)建界面選擇創(chuàng)建C工程,。
點(diǎn)擊Ne__t,在C Project界面的Project name欄中填寫工程名稱,去掉“Use default location”的勾,點(diǎn)擊Browse將Location設(shè)置為Linu__內(nèi)核源碼目錄。如果不在Eclipse中編譯內(nèi)核,則使用Linu__ GCC即可,否則請使用安裝好的Cross GCC。
然后點(diǎn)擊Finish,完成Linu__內(nèi)核源碼導(dǎo)入,在Eclipse中即可進(jìn)行代碼閱讀和編輯了。
在Eclipse中進(jìn)行源碼跟蹤,只需選擇函數(shù)、變量或者宏定義后按F3即可。更多的操作可在Navigate中找到。
三
vim+ctags+cscope
Vi/Vim是一個(gè)文本編輯器,在Vim中能高效的實(shí)現(xiàn)代碼編輯。但Vim的功能不僅僅是一個(gè)文本編輯器,借助ctags和cscope的配合,Vim能實(shí)現(xiàn)堪比圖形IDE環(huán)境的源碼編輯和閱讀功能,在某種程度上甚至比圖形IDE更方便。
Vi/Vim的安裝不再介紹了。如果不是通過遠(yuǎn)程登錄在遠(yuǎn)程服務(wù)器上工作,而是在本地桌面系統(tǒng)操作,還可以用gvim啟動(dòng)Vi編輯器。
1、Taglist
Taglist是Vim的一個(gè)源碼瀏覽插件,可從http://www.vim.org網(wǎng)站獲得。下載到壓縮包后,在本地解壓,然后將解壓得到目錄中的plugin目錄復(fù)制到~/.vim目錄。如果用戶主目錄下沒有.vim目錄,則建立一個(gè)這樣的目錄即可。
2、Ctags
Ctags是一個(gè)用于產(chǎn)生tags文件的軟件,可以下載源碼進(jìn)行編譯安裝,在Ubuntu下,可通過apt-get進(jìn)行安裝:
$ sudo apt-get install e__uberant-ctags
3、源碼閱讀和跟蹤
進(jìn)入準(zhǔn)備查看的源碼所在目錄,首先生成tags文件:
$ ctags -R
執(zhí)行時(shí)間長短取決于源碼數(shù)量的多少,執(zhí)行完畢,在當(dāng)前目錄下可看到一個(gè)tags文件。源碼越多,執(zhí)行時(shí)間越長,產(chǎn)生的tags文件也越大。
注意:如果修改了源碼,代碼行號(hào)發(fā)生了變化,需要重新生成tags文件。
查看函數(shù)等定義。用Vi/Vim打開一個(gè)C文件。若想知道某個(gè)函數(shù)、變量、結(jié)構(gòu)或者宏定義在什么地方定義,先將光標(biāo)移動(dòng)到函數(shù)(變量、結(jié)構(gòu)或者宏定義)上,然后按CTRL+]即可。查看后,按CTRL+o可回到原來所在位置。
查看文件函數(shù)列表。打開C文件后,在Vi/Vim的命令狀態(tài)下輸入:TlistToggle(Vi/Vim的命令輸入支持補(bǔ)全),在Vi/Vim左邊就會(huì)出現(xiàn)函數(shù)列表側(cè)欄,如圖8所示。按CTRL+ww(2次w),可在列表和代碼查看區(qū)間切換。
如果在本地桌面,用Gvim打開C文件,使用起來比較接近IDE集成環(huán)境。用鼠標(biāo)雙擊函數(shù)即可跳轉(zhuǎn)到函數(shù)定義的地方,CTRL+鼠標(biāo)右鍵即可回退到原來所在位置。更多實(shí)用特性,還需要在實(shí)際操作中體驗(yàn)。
四
L__R
L__R是Linu__ Cross Referencer的縮寫,是一個(gè)比較流行的Linu__源碼查看工具,當(dāng)然也不僅僅局限于查看Linu__源碼。
Linu__常用命令 awk 入門基礎(chǔ)教程
awk命令工具在Linu__/UNI__系統(tǒng)中,awk是一個(gè)功能強(qiáng)大的編輯工具,逐行讀取輸入文本,并根據(jù)指定的匹配模式進(jìn)行查找,對符合條件的內(nèi)容進(jìn)行格式化輸出或者過濾處理,可以在無交互的情況下實(shí)現(xiàn)相當(dāng)復(fù)雜的文本操作,被廣泛應(yīng)用于Shell腳本,完成各種自動(dòng)化配置任務(wù)。一、awk命令的語法及概述
awk 選項(xiàng) '模式或條件 { 編輯指令 }' 文件1 文件2 …
//過濾并輸出文件符合條件的內(nèi)容
awk -f 腳本文件 文件1 文件2 …
//從腳本中調(diào)用編輯指令,過濾并輸出內(nèi)容
__awk執(zhí)行結(jié)果可以通過print的功能將字段數(shù)據(jù)打印顯示。在使用awk命令的過程中,可以使用邏輯操作符“&&”和“||”;
也可以進(jìn)行簡單的數(shù)學(xué)運(yùn)算,如+ 、-、、/、%、^分別表示加、減、乘、除、取余、乘方。____
awk從輸入文件或者標(biāo)準(zhǔn)輸入中讀入信息,與sed一樣,信息的讀入也是逐行讀取的。不同的是,awk命令將文本文件中的一行視為一個(gè)記錄,而將一行中的某一部分(列)作為記錄的一個(gè)字段。為了操作這些不同的字段(列),awk借用shell中類似于位置變量的方法,用$1、$2…$9順序的表示不同列,$0表示整行。不同字段與不同字段可以通過指定的方式進(jìn)行分隔,awk默認(rèn)的分隔符是空格。awk命令允許使用“-F分隔符”的形式來指定分隔符。
二、awk命令用法示例
1)按行輸出文本
1、輸出所有內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '{print}' linu__mi.py
[linu__mi@linu__:~/linu__mi迷]$ awk '{print $0}' linu__mi.py
等同于“l(fā)inu__mi.py”
2、輸出第1~3行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk 'NR==1,NR==3{print}' linu__mi.py
包括空行
3、出第3行、第5行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk 'NR==3 || NR==5{print}' linu__mi.py
4、輸出所有奇數(shù)行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '(NR%2)==1 {print}' linu__mi.py
5、輸出所有偶數(shù)行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '(NR%2)==0 {print}' linu__mi.py
6、輸出以“root”開頭的行
[linu__mi@linu__:~/linu__mi迷]$ awk '/^root/{print}' /etc/passwd
7、輸出以“nologin”結(jié)尾的行
[linu__mi@linu__:~/linu__mi迷]$ awk '/nologin$/{print}' /etc/passwd
8、統(tǒng)計(jì)以/bin/bash結(jié)尾的行數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN {__=0} ;/\/bin\/bash$/{__++};END {print __}' /etc/passwd
9、統(tǒng)計(jì)以/bin/bash結(jié)尾的行數(shù)
[linu__mi@linu__:~/linu__mi迷]$ grep -c "/bin/bash$" /etc/passwd
10、統(tǒng)計(jì)以空格分隔的文件段落數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{RS=""}; END{print NR}' /etc/dhcp/dhclient.conf
注意:命令較多時(shí),使用“BEGIN……END”
2)按字段輸出文本
1、輸出每行中(以空格分隔)的第3個(gè)字段
[linu__mi@linu__:~/linu__mi迷]$ awk '{print $3}' linu__mi.py
2、輸出每行中(以空格分隔)的第1個(gè)和第3個(gè)字段
[linu__mi@linu__:~/linu__mi迷]$ awk '{print $1,$3}' linu__mi.py
3)通過管道,雙引號(hào)調(diào)用Shell命令
1、調(diào)用“wc -l”命令統(tǒng)計(jì)使用“bash”的用戶個(gè)數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk -F: '/bash$/{print | "wc -l"}' /etc/passwd
[linu__mi@linu__:~/linu__mi迷]$ grep -c "bash$" /etc/passwd
2、調(diào)用“w”命令,并用力啊統(tǒng)計(jì)在線用戶數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN {while ("w" | getline) n++ ; {print n-2}}'
3、調(diào)用“hostname”命令,并輸出當(dāng)前用戶名
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN { "hostname" | getline ; print $0}'
4)使用awk命令進(jìn)行簡單的數(shù)學(xué)運(yùn)算
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=9;b=8;print"(a + b)=",(a + b)}'
(a + b)= 17
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=100;b=78;print"(a - b)=",(a - b)}'
(a - b)= 22
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=80;b=5;print"(a / b)=",(a / b)}'
(a / b)= 16
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=80;b=5;print"(a ÷ b)=",(a / b)}'
(a ÷ b)= 16
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=10;b=9;print"(a __ b)=",(a __ b)}'
(a __ b)= 90
Linux教程基礎(chǔ)知識(shí)大全相關(guān)文章:
★ Linux系統(tǒng)基礎(chǔ)知識(shí)有哪些
★ 學(xué)習(xí)啦在線學(xué)習(xí)網(wǎng)
★ 視頻教程
★ Linux中的ls命令詳細(xì)使用 linux命令大全ls教程
★ 操作系統(tǒng)基礎(chǔ)知識(shí)大全有哪些
★ 認(rèn)識(shí)網(wǎng)絡(luò)的基礎(chǔ)知識(shí)教程
★ 操作系統(tǒng)基礎(chǔ)必備知識(shí)有哪些
等同于“l(fā)inu__mi.py”
2、輸出第1~3行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk 'NR==1,NR==3{print}' linu__mi.py
包括空行
3、出第3行、第5行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk 'NR==3 || NR==5{print}' linu__mi.py
4、輸出所有奇數(shù)行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '(NR%2)==1 {print}' linu__mi.py
5、輸出所有偶數(shù)行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '(NR%2)==0 {print}' linu__mi.py
6、輸出以“root”開頭的行
[linu__mi@linu__:~/linu__mi迷]$ awk '/^root/{print}' /etc/passwd
7、輸出以“nologin”結(jié)尾的行
[linu__mi@linu__:~/linu__mi迷]$ awk '/nologin$/{print}' /etc/passwd
8、統(tǒng)計(jì)以/bin/bash結(jié)尾的行數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN {__=0} ;/\/bin\/bash$/{__++};END {print __}' /etc/passwd
9、統(tǒng)計(jì)以/bin/bash結(jié)尾的行數(shù)
[linu__mi@linu__:~/linu__mi迷]$ grep -c "/bin/bash$" /etc/passwd
10、統(tǒng)計(jì)以空格分隔的文件段落數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{RS=""}; END{print NR}' /etc/dhcp/dhclient.conf
注意:命令較多時(shí),使用“BEGIN……END”
2)按字段輸出文本
1、輸出每行中(以空格分隔)的第3個(gè)字段
[linu__mi@linu__:~/linu__mi迷]$ awk '{print }' linu__mi.py
2、輸出每行中(以空格分隔)的第1個(gè)和第3個(gè)字段
[linu__mi@linu__:~/linu__mi迷]$ awk '{print class="main">
Linux教程基礎(chǔ)知識(shí)大全
3)通過管道,雙引號(hào)調(diào)用Shell命令
1、調(diào)用“wc -l”命令統(tǒng)計(jì)使用“bash”的用戶個(gè)數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk -F: '/bash$/{print | "wc -l"}' /etc/passwd
[linu__mi@linu__:~/linu__mi迷]$ grep -c "bash$" /etc/passwd
2、調(diào)用“w”命令,并用力啊統(tǒng)計(jì)在線用戶數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN {while ("w" | getline) n++ ; {print n-2}}'
3、調(diào)用“hostname”命令,并輸出當(dāng)前用戶名
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN { "hostname" | getline ; print
Linux教程基礎(chǔ)知識(shí)大全
Linu__操作系統(tǒng)在短短的幾年之內(nèi)得到了非常迅猛的發(fā)展,這與linu__具有的良好特性是分不開的。Linu__包含了UNI__的全部功能和特性。簡單來說,linu__具有以下主要特性:遵循GNU GPL,開放性,多任務(wù),多用戶,設(shè)備獨(dú)立性,提供了豐富的網(wǎng)絡(luò)功能,可靠的系統(tǒng)安全,良好的可移植性。下面就讓小編帶你去看看Linu__教程基礎(chǔ)知識(shí)大全,希望對你有所幫助吧!
Linu__運(yùn)維學(xué)習(xí)路線,實(shí)用Linu__教程,推薦學(xué)習(xí)收藏
1、掌握Linu__基礎(chǔ)
俗話說“思則有備,有備無患”,學(xué)習(xí)之前你先要搭建好學(xué)習(xí)環(huán)境(紅帽RHEL7)然后在虛擬機(jī)安裝它,開始使用它。學(xué)習(xí)Linu__,命令使用是學(xué)習(xí)的前提,就像你和外國人說話就得說英語不然別人怎么知道你說的是什么。例如:
命令名,選項(xiàng),各個(gè)參數(shù)都作為命令的輸入項(xiàng),都是獨(dú)立的項(xiàng),他們之間必須用空格隔開。Linu__中命令格式如下:
命令名 【選項(xiàng)】 【參數(shù)1】 【參數(shù)2】……
學(xué)習(xí)Linu__,要熟練掌握命令的使用,雖然命令多,但是熟能生巧,在以后的學(xué)習(xí)運(yùn)用中能大大節(jié)約你的時(shí)間。還有學(xué)習(xí)linu__切不可粗心大意,往往一個(gè)小小的空格也會(huì)報(bào)錯(cuò),當(dāng)然在linu__中,大小寫是很敏感的,切記!
2、從基礎(chǔ)入手,切勿眼高手低
linu__如果一旦學(xué)習(xí)一段時(shí)間之后你會(huì)發(fā)現(xiàn)其實(shí)也沒想象中那么難,甚至比windows更簡單已操作,通常認(rèn)為GLI沒有GUL那么方面用戶操作。因?yàn)槊钚薪缑娴能浖ǔP枰脩粲洃洸僮鱽硗瓿擅睿牵捎谄浔旧淼奶攸c(diǎn),命令行界面要較圖形用戶界面節(jié)約計(jì)算機(jī)系統(tǒng)的資源。所以,熟記命令的前提下,使用命令行界面往往要較使用圖形用戶界面的操作速度要快,這也是你以后玩轉(zhuǎn)Linu__的基本條件之一。
3、多總結(jié),勤思考,多記筆記
如果想學(xué)好Linu__系統(tǒng)知識(shí),不是一天兩天就能學(xué)會(huì)的,也是經(jīng)過一朝一夕,慢慢積累的,這個(gè)過程中要學(xué)會(huì)去總結(jié),多思考,多動(dòng)手去練,去實(shí)踐,在理解的基礎(chǔ)上去記憶,把原理搞懂,把重要的知識(shí)點(diǎn)積累下來,以便在以后的工作中方便查找,當(dāng)做查詢手冊,同時(shí)也能鍛煉我們編寫文檔的能力,對以后都是有很大幫助的。
4、及時(shí)充電,提高自學(xué)能力
要具備良好的自學(xué)能力,除了老師講的,你還要去考慮老師的知識(shí)點(diǎn)還可以怎樣去擴(kuò)充,這時(shí)候一本好的資料書就非常必要了,把這些基礎(chǔ)的都學(xué)會(huì)了,建議你再去深入學(xué)習(xí)Linu__進(jìn)階技術(shù),不斷的去提高自己。
以上也只是我個(gè)人學(xué)習(xí)經(jīng)驗(yàn)所談,希望我的學(xué)習(xí)經(jīng)驗(yàn)可以幫助到像我原來這樣的新手。學(xué)好linu__基礎(chǔ)要扎實(shí),切不可好高騖遠(yuǎn),踏踏實(shí)實(shí)的去練習(xí)思考。指尖和思維的跳動(dòng)才能跳出linu__的華爾茲!
Linu__內(nèi)核開發(fā)工具介紹
本文所說的“Linu__內(nèi)核開發(fā)”僅僅是指嵌入式Linu__產(chǎn)品開發(fā)中內(nèi)核和驅(qū)動(dòng)相關(guān)開發(fā)工作,與Linu__所領(lǐng)導(dǎo)的內(nèi)核開發(fā)團(tuán)隊(duì)的內(nèi)核開發(fā)有很大不同。
俗話說“工欲善其事,必先利其器”,面對幾百兆的Linu__內(nèi)核代碼,要閱讀、查看或者搜索其中的代碼,大部分初次接觸到Linu__內(nèi)核代碼的開發(fā)人員,都有無從下手的感覺。下面推薦幾個(gè)源碼閱讀和索引工具,能為后續(xù)內(nèi)核開發(fā)提供一些便利。
一
Source Insight
Source Insight是Windows平臺(tái)下一款流行度極高的源碼閱讀和編輯工具。不少Linu__開發(fā)人員還是習(xí)慣于在Windows下進(jìn)行源碼編輯,甚至查看和編輯Linu__內(nèi)核源碼,依然在Source Insight中完成。
說明:Source Insight是一款版權(quán)軟件,需要自行解決版權(quán)問題。
安裝Source Insight軟件后,新建一個(gè)工程,取名并指定數(shù)據(jù)存放位置。
點(diǎn)擊OK按鈕,進(jìn)入工程設(shè)置界面。
然后添加源碼。瀏覽選中Linu__內(nèi)核源碼文件夾后,點(diǎn)擊“Add Tree”按鈕,將內(nèi)核源碼樹的全部文件添加到工程中。
添加完成,即可在Source Insight中進(jìn)行源碼閱讀和編輯了。
二
Eclipse
Eclipse是一個(gè)跨平臺(tái)IDE,既能運(yùn)行于Windows平臺(tái),也能在Linu__下運(yùn)行。不少習(xí)慣于圖形界面操作的開發(fā)人員,在Linu__下則習(xí)慣于用Eclipse來查看和編輯Linu__源碼。
如果僅僅是在Eclipse中查看Linu__內(nèi)核源碼,則可以不必事先安裝交叉編譯器,否則則須事先安裝好交叉編譯器。
創(chuàng)建內(nèi)核源碼工程。點(diǎn)擊File——New——Project,開始創(chuàng)建工程,在工程創(chuàng)建界面選擇創(chuàng)建C工程,。
點(diǎn)擊Ne__t,在C Project界面的Project name欄中填寫工程名稱,去掉“Use default location”的勾,點(diǎn)擊Browse將Location設(shè)置為Linu__內(nèi)核源碼目錄。如果不在Eclipse中編譯內(nèi)核,則使用Linu__ GCC即可,否則請使用安裝好的Cross GCC。
然后點(diǎn)擊Finish,完成Linu__內(nèi)核源碼導(dǎo)入,在Eclipse中即可進(jìn)行代碼閱讀和編輯了。
在Eclipse中進(jìn)行源碼跟蹤,只需選擇函數(shù)、變量或者宏定義后按F3即可。更多的操作可在Navigate中找到。
三
vim+ctags+cscope
Vi/Vim是一個(gè)文本編輯器,在Vim中能高效的實(shí)現(xiàn)代碼編輯。但Vim的功能不僅僅是一個(gè)文本編輯器,借助ctags和cscope的配合,Vim能實(shí)現(xiàn)堪比圖形IDE環(huán)境的源碼編輯和閱讀功能,在某種程度上甚至比圖形IDE更方便。
Vi/Vim的安裝不再介紹了。如果不是通過遠(yuǎn)程登錄在遠(yuǎn)程服務(wù)器上工作,而是在本地桌面系統(tǒng)操作,還可以用gvim啟動(dòng)Vi編輯器。
1、Taglist
Taglist是Vim的一個(gè)源碼瀏覽插件,可從http://www.vim.org網(wǎng)站獲得。下載到壓縮包后,在本地解壓,然后將解壓得到目錄中的plugin目錄復(fù)制到~/.vim目錄。如果用戶主目錄下沒有.vim目錄,則建立一個(gè)這樣的目錄即可。
2、Ctags
Ctags是一個(gè)用于產(chǎn)生tags文件的軟件,可以下載源碼進(jìn)行編譯安裝,在Ubuntu下,可通過apt-get進(jìn)行安裝:
$ sudo apt-get install e__uberant-ctags
3、源碼閱讀和跟蹤
進(jìn)入準(zhǔn)備查看的源碼所在目錄,首先生成tags文件:
$ ctags -R
執(zhí)行時(shí)間長短取決于源碼數(shù)量的多少,執(zhí)行完畢,在當(dāng)前目錄下可看到一個(gè)tags文件。源碼越多,執(zhí)行時(shí)間越長,產(chǎn)生的tags文件也越大。
注意:如果修改了源碼,代碼行號(hào)發(fā)生了變化,需要重新生成tags文件。
查看函數(shù)等定義。用Vi/Vim打開一個(gè)C文件。若想知道某個(gè)函數(shù)、變量、結(jié)構(gòu)或者宏定義在什么地方定義,先將光標(biāo)移動(dòng)到函數(shù)(變量、結(jié)構(gòu)或者宏定義)上,然后按CTRL+]即可。查看后,按CTRL+o可回到原來所在位置。
查看文件函數(shù)列表。打開C文件后,在Vi/Vim的命令狀態(tài)下輸入:TlistToggle(Vi/Vim的命令輸入支持補(bǔ)全),在Vi/Vim左邊就會(huì)出現(xiàn)函數(shù)列表側(cè)欄,如圖8所示。按CTRL+ww(2次w),可在列表和代碼查看區(qū)間切換。
如果在本地桌面,用Gvim打開C文件,使用起來比較接近IDE集成環(huán)境。用鼠標(biāo)雙擊函數(shù)即可跳轉(zhuǎn)到函數(shù)定義的地方,CTRL+鼠標(biāo)右鍵即可回退到原來所在位置。更多實(shí)用特性,還需要在實(shí)際操作中體驗(yàn)。
四
L__R
L__R是Linu__ Cross Referencer的縮寫,是一個(gè)比較流行的Linu__源碼查看工具,當(dāng)然也不僅僅局限于查看Linu__源碼。
Linu__常用命令 awk 入門基礎(chǔ)教程
awk命令工具在Linu__/UNI__系統(tǒng)中,awk是一個(gè)功能強(qiáng)大的編輯工具,逐行讀取輸入文本,并根據(jù)指定的匹配模式進(jìn)行查找,對符合條件的內(nèi)容進(jìn)行格式化輸出或者過濾處理,可以在無交互的情況下實(shí)現(xiàn)相當(dāng)復(fù)雜的文本操作,被廣泛應(yīng)用于Shell腳本,完成各種自動(dòng)化配置任務(wù)。一、awk命令的語法及概述
awk 選項(xiàng) '模式或條件 { 編輯指令 }' 文件1 文件2 …
//過濾并輸出文件符合條件的內(nèi)容
awk -f 腳本文件 文件1 文件2 …
//從腳本中調(diào)用編輯指令,過濾并輸出內(nèi)容
__awk執(zhí)行結(jié)果可以通過print的功能將字段數(shù)據(jù)打印顯示。在使用awk命令的過程中,可以使用邏輯操作符“&&”和“||”;
也可以進(jìn)行簡單的數(shù)學(xué)運(yùn)算,如+ 、-、、/、%、^分別表示加、減、乘、除、取余、乘方。____
awk從輸入文件或者標(biāo)準(zhǔn)輸入中讀入信息,與sed一樣,信息的讀入也是逐行讀取的。不同的是,awk命令將文本文件中的一行視為一個(gè)記錄,而將一行中的某一部分(列)作為記錄的一個(gè)字段。為了操作這些不同的字段(列),awk借用shell中類似于位置變量的方法,用$1、$2…$9順序的表示不同列,$0表示整行。不同字段與不同字段可以通過指定的方式進(jìn)行分隔,awk默認(rèn)的分隔符是空格。awk命令允許使用“-F分隔符”的形式來指定分隔符。
二、awk命令用法示例
1)按行輸出文本
1、輸出所有內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '{print}' linu__mi.py
[linu__mi@linu__:~/linu__mi迷]$ awk '{print $0}' linu__mi.py
等同于“l(fā)inu__mi.py”
2、輸出第1~3行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk 'NR==1,NR==3{print}' linu__mi.py
包括空行
3、出第3行、第5行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk 'NR==3 || NR==5{print}' linu__mi.py
4、輸出所有奇數(shù)行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '(NR%2)==1 {print}' linu__mi.py
5、輸出所有偶數(shù)行的內(nèi)容
[linu__mi@linu__:~/linu__mi迷]$ awk '(NR%2)==0 {print}' linu__mi.py
6、輸出以“root”開頭的行
[linu__mi@linu__:~/linu__mi迷]$ awk '/^root/{print}' /etc/passwd
7、輸出以“nologin”結(jié)尾的行
[linu__mi@linu__:~/linu__mi迷]$ awk '/nologin$/{print}' /etc/passwd
8、統(tǒng)計(jì)以/bin/bash結(jié)尾的行數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN {__=0} ;/\/bin\/bash$/{__++};END {print __}' /etc/passwd
9、統(tǒng)計(jì)以/bin/bash結(jié)尾的行數(shù)
[linu__mi@linu__:~/linu__mi迷]$ grep -c "/bin/bash$" /etc/passwd
10、統(tǒng)計(jì)以空格分隔的文件段落數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{RS=""}; END{print NR}' /etc/dhcp/dhclient.conf
注意:命令較多時(shí),使用“BEGIN……END”
2)按字段輸出文本
1、輸出每行中(以空格分隔)的第3個(gè)字段
[linu__mi@linu__:~/linu__mi迷]$ awk '{print $3}' linu__mi.py
2、輸出每行中(以空格分隔)的第1個(gè)和第3個(gè)字段
[linu__mi@linu__:~/linu__mi迷]$ awk '{print $1,$3}' linu__mi.py
3)通過管道,雙引號(hào)調(diào)用Shell命令
1、調(diào)用“wc -l”命令統(tǒng)計(jì)使用“bash”的用戶個(gè)數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk -F: '/bash$/{print | "wc -l"}' /etc/passwd
[linu__mi@linu__:~/linu__mi迷]$ grep -c "bash$" /etc/passwd
2、調(diào)用“w”命令,并用力啊統(tǒng)計(jì)在線用戶數(shù)
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN {while ("w" | getline) n++ ; {print n-2}}'
3、調(diào)用“hostname”命令,并輸出當(dāng)前用戶名
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN { "hostname" | getline ; print $0}'
4)使用awk命令進(jìn)行簡單的數(shù)學(xué)運(yùn)算
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=9;b=8;print"(a + b)=",(a + b)}'
(a + b)= 17
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=100;b=78;print"(a - b)=",(a - b)}'
(a - b)= 22
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=80;b=5;print"(a / b)=",(a / b)}'
(a / b)= 16
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=80;b=5;print"(a ÷ b)=",(a / b)}'
(a ÷ b)= 16
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=10;b=9;print"(a __ b)=",(a __ b)}'
(a __ b)= 90
Linux教程基礎(chǔ)知識(shí)大全相關(guān)文章:
★ Linux系統(tǒng)基礎(chǔ)知識(shí)有哪些
★ 學(xué)習(xí)啦在線學(xué)習(xí)網(wǎng)
★ 視頻教程
★ Linux中的ls命令詳細(xì)使用 linux命令大全ls教程
★ 操作系統(tǒng)基礎(chǔ)知識(shí)大全有哪些
★ 認(rèn)識(shí)網(wǎng)絡(luò)的基礎(chǔ)知識(shí)教程
★ 操作系統(tǒng)基礎(chǔ)必備知識(shí)有哪些
4)使用awk命令進(jìn)行簡單的數(shù)學(xué)運(yùn)算
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=9;b=8;print"(a + b)=",(a + b)}'
(a + b)= 17
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=100;b=78;print"(a - b)=",(a - b)}'
(a - b)= 22
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=80;b=5;print"(a / b)=",(a / b)}'
(a / b)= 16
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=80;b=5;print"(a ÷ b)=",(a / b)}'
(a ÷ b)= 16
[linu__mi@linu__:~/linu__mi迷]$ awk 'BEGIN{ a=10;b=9;print"(a __ b)=",(a __ b)}'
(a __ b)= 90
Linux教程基礎(chǔ)知識(shí)大全相關(guān)文章:
★ Linux系統(tǒng)基礎(chǔ)知識(shí)有哪些
★ 學(xué)習(xí)啦在線學(xué)習(xí)網(wǎng)
★ 視頻教程
★ Linux中的ls命令詳細(xì)使用 linux命令大全ls教程
★ 操作系統(tǒng)基礎(chǔ)知識(shí)大全有哪些
★ 認(rèn)識(shí)網(wǎng)絡(luò)的基礎(chǔ)知識(shí)教程
★ 操作系統(tǒng)基礎(chǔ)必備知識(shí)有哪些
Linux教程基礎(chǔ)知識(shí)大全
精選文章
-
虛擬機(jī)安裝linux紅帽系統(tǒng)的詳細(xì)圖文教程
相信學(xué)習(xí)計(jì)算機(jī)的同學(xué)對linux操作系統(tǒng)都不陌生,那么對于剛接觸的小白對此系統(tǒng)的安裝肯定還是陌生的,本文介紹的是如何在VMware虛擬機(jī)軟件上安裝linu
-
電腦實(shí)用Linux系列教程
本系列教程將完整的講解整個(gè)Linu__相關(guān)的知識(shí),這是樓主學(xué)完兄弟連的Linu__教程之后重新對Linu__知識(shí)體系的整理。下面就讓小編帶你去看看電腦實(shí)用Linu__系
-
Linux基本命令知識(shí)教程
Linu__入門其實(shí)是很簡單的,問題是你是否能有足夠的耐心,花相應(yīng)的時(shí)間和精力來折騰,是否不排斥重裝系統(tǒng)這種枯燥且萬能的學(xué)習(xí)手段。下面就讓小編帶
-
Linux系統(tǒng)命令大全
命令是Linu__操作系統(tǒng)的利器,務(wù)必掌握好,當(dāng)然不可能一下子熟練掌握,但是只要多加練習(xí),就可熟能生巧,運(yùn)用自如。下面就讓小編帶你去看看那些Lin