您好,登錄后才能下訂單哦!
概述:
Linux是一種自由和開(kāi)放源碼的類(lèi)UNIX操作系統(tǒng)。它能運(yùn)行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議,支持32位和64位硬件。該操作系統(tǒng)的內(nèi)核由林納斯·托瓦茲于1991年10月5日首次發(fā)布。
Linux最初是作為支持英特爾x86架構(gòu)的個(gè)人計(jì)算機(jī)的一個(gè)自由操作系統(tǒng),現(xiàn)可運(yùn)行在服務(wù)器和其他大型平臺(tái)之上,如大型計(jì)算機(jī)和超級(jí)計(jì)算機(jī)。Linux也廣泛應(yīng)用在嵌入式系統(tǒng)上,如手機(jī)(Mobile Phone)、平板電腦(Tablet)、路由器(Router)、電視(TV)和電子游戲機(jī)等。
Linux中的基本指令:
1.rm指令:rm是刪除指令,但是在刪除文件夾的時(shí)候要加-r(遞歸刪除)選項(xiàng),-f表示的是強(qiáng)制刪除,要慎用。
2.cp和mv指令:我個(gè)人喜歡把這兩個(gè)指令放在一起記憶,cp是拷貝,mv是移動(dòng),他們的使用規(guī)則都是在指令后+【選項(xiàng)】【源文件】【目標(biāo)文件】,所以當(dāng)然也支持文件夾的操作啦,只需要加-r選項(xiàng)就可以啦。
3.壓縮和解壓:
①tar:
tar有兩種方式,分別是gzip(常用)和bzip2
gzip:
壓縮: tar -zcvf /tmp/etc.tar.gz /etc-->將etc文件夾下的內(nèi)容壓縮到/tmp/目錄下,并命名為etc.tar.gz
解壓縮:tar -zxvf etc.tar.gz
②zip和unzip
4.find指令:使用方法:find【路徑】 -name(要查找的名字) 注:這里的名字可以使用通配符(*)。
Linux權(quán)限:
linux下有兩種用戶(hù)分別是普通用戶(hù)和超級(jí)用戶(hù)(root)
有兩種從普通用戶(hù)切換到超級(jí)用戶(hù)的方式:su和su -,但是這兩個(gè)方式是有區(qū)別的,使用su指令進(jìn)入root后的路徑依然是home/當(dāng)前用戶(hù),也就是說(shuō)雖然擁有超級(jí)用戶(hù)的權(quán)利但實(shí)際上并不是真正的超級(jí)用戶(hù),而使用su -指令進(jìn)入超級(jí)用戶(hù)后的路徑是/root這個(gè)時(shí)候就是真正的超級(jí)用戶(hù)了。
1.文件訪(fǎng)問(wèn)者的分類(lèi):文件所有者、文件所有者所在的用戶(hù)組、其他
2.文件類(lèi)型和訪(fǎng)問(wèn)權(quán)限:
d:文件夾
-:普通文件
l:軟鏈接(類(lèi)似Windows的快捷方式)
b:塊設(shè)備文件(例如硬盤(pán)、光驅(qū)等)
p:管道文件
c:字符設(shè)備文件(例如屏幕等串口設(shè)備)
s:套接口文件
基本權(quán)限:
i.讀(4):Read對(duì)文件而言,具有讀取文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有瀏覽該目錄信息的權(quán)限
ii.寫(xiě)(2):Write對(duì)文件而言,具有修改文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō)具有刪除移動(dòng)目錄內(nèi)文件的權(quán)限
iii.執(zhí)行(1):execute對(duì)文件而言,具有執(zhí)行文件的權(quán)限;對(duì)目錄來(lái)說(shuō),具有進(jìn)入目錄的權(quán)限
通過(guò)chmod命令可以修改文件的權(quán)限。
文本編輯器vim:
普通模式、插入模式、底行模式
在普通模式下的一些重要命令:(七種類(lèi)型:移刪復(fù)替撤更跳)
1.$移動(dòng)到行尾、^移動(dòng)到行首、gg移動(dòng)到文本的開(kāi)頭、G移動(dòng)到文本的末尾
2.x刪除光標(biāo)位置的字符、dd刪除整行
3.yy和p
4.r替換光標(biāo)所在位置的字符、R替換光標(biāo)所到之處的字符(sec停止)
5.u撤銷(xiāo)、【ctrl+r】撤銷(xiāo)的恢復(fù)
6.cw更改光標(biāo)所在處到字尾處(不常用)
7.【ctrl+g】顯示行號(hào)、【#G】跳到#行
Linux編譯器中g(shù)cc/g++
首先要知道的是代碼生成的四個(gè)階段以及每個(gè)階段所完成的任務(wù):
1.預(yù)處理:宏替換和頭文件的展開(kāi)以及去掉注釋
gcc -E test.c -o test.i
2.編譯:檢查語(yǔ)法并生成匯編代碼
gcc -S test.i -o test.s
3.匯編:生成機(jī)器可識(shí)別的代碼
gcc -c test.s -o test.o
4.鏈接:生成可執(zhí)行文件(test)
gcc test.o -o test
當(dāng)然,最常用的還是gcc test.c -o test直接將源代碼生成可執(zhí)行文件
注意:系統(tǒng)將大部分庫(kù)函數(shù)的實(shí)現(xiàn)都放在libc.so.6的庫(kù)文件中,在沒(méi)有特別指明的情況下系統(tǒng)將在路徑“user/lib”下查找就會(huì)鏈接到相應(yīng)的庫(kù)函數(shù)中,這也就是鏈接的作用,而庫(kù)函數(shù)又分為靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù),這個(gè)我們后面再詳細(xì)說(shuō)明。
關(guān)于靜態(tài)鏈接和動(dòng)態(tài)鏈接
1.靜態(tài)鏈接是指將所依賴(lài)的動(dòng)態(tài)庫(kù)鏈接到可執(zhí)行程序中,所以會(huì)比較大,但是在不同的平臺(tái)可以正常執(zhí)行。
2.動(dòng)態(tài)鏈接是指將所依賴(lài)的動(dòng)態(tài)庫(kù)中的函數(shù)加載到符號(hào)表中,在運(yùn)行程序時(shí)動(dòng)態(tài)鏈接動(dòng)態(tài)庫(kù)去執(zhí)行動(dòng)態(tài)庫(kù)中的代碼,所以在不同電腦上使用時(shí)必須將所依賴(lài)的動(dòng)態(tài)庫(kù)也給出否則找不到動(dòng)態(tài)庫(kù)是沒(méi)法運(yùn)行的。
3.編譯器默認(rèn)的鏈接方式是動(dòng)態(tài)鏈接,如果想使用靜態(tài)鏈接的話(huà)要在編譯選項(xiàng)中加-static選項(xiàng)
關(guān)于Makefile:
使用make一鍵式編譯,Makefile文件中的關(guān)鍵是根據(jù)依賴(lài)目標(biāo)完成對(duì)生成目標(biāo)的編譯,但是寫(xiě)在最前面的依賴(lài)文件一旦被生成后面的就沒(méi)用了(永遠(yuǎn)只為了生成第一個(gè)目標(biāo)),一般想要通過(guò)一個(gè)makefile文件編譯生成多個(gè)文件時(shí)就要用偽目標(biāo)來(lái)確定,偽目標(biāo)后的依賴(lài)文件則是要生成的文件,這樣就解決了這個(gè)問(wèn)題。
預(yù)定義變量:$^:所有的依賴(lài)對(duì)象
$@:所有的目標(biāo)對(duì)象
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。