溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux基本認(rèn)識(shí)

發(fā)布時(shí)間:2020-08-03 03:23:12 來(lái)源:網(wǎng)絡(luò) 閱讀:199 作者:be_better_ 欄目:系統(tǒng)運(yùn)維

Linux是一個(gè)開源的操作系統(tǒng)。在Linux中一切皆文件。Linux在服務(wù)器領(lǐng)域和嵌入式領(lǐng)域有著極大的優(yōu)勢(shì),如:使用及維修總成本、硬件支持、靈活性、安全性、穩(wěn)定性和可靠性、經(jīng)濟(jì)實(shí)惠。


Linux中的基本指令有很多,隨著時(shí)間的進(jìn)行慢慢進(jìn)行學(xué)習(xí),這里便不再一一贅述,只談?wù)勔徊糠謨?nèi)容。
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下有兩種用戶分別是普通用戶和超級(jí)用戶(root)
有兩種從普通用戶切換到超級(jí)用戶的方式:su和su -,但是這兩個(gè)方式是有區(qū)別的,使用su指令進(jìn)入root后的路徑依然是home/當(dāng)前用戶,也就是說(shuō)雖然擁有超級(jí)用戶的權(quán)利但實(shí)際上并不是真正的超級(jí)用戶,而使用su -指令進(jìn)入超級(jí)用戶后的路徑是/root這個(gè)時(shí)候就是真正的超級(jí)用戶了。
1.文件訪問(wèn)者的分類:文件所有者、文件所有者所在的用戶組、其他
2.文件類型和訪問(wèn)權(quán)限:
d:文件夾
-:普通文件
l:軟鏈接(類似Windows的快捷方式)
b:塊設(shè)備文件(例如硬盤、光驅(qū)等)
p:管道文件
c:字符設(shè)備文件(例如屏幕等串口設(shè)備)
s:套接口文件
基本權(quán)限:
i.讀(4):Read對(duì)文件而言,具有讀取文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有瀏覽該目錄信息的權(quán)限
ii.寫(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(普通模式、插入模式、底行模式)
在普通模式下的一些重要命令:(七種類型:移刪復(fù)替撤更跳)
1.$移動(dòng)到行尾、^移動(dòng)到行首、gg移動(dòng)到文本的開頭、G移動(dòng)到文本的末尾
2.x刪除光標(biāo)位置的字符、dd刪除整行
3.yy和p
4.r替換光標(biāo)所在位置的字符、R替換光標(biāo)所到之處的字符(sec停止)
5.u撤銷、【ctrl+r】撤銷的恢復(fù)
6.cw更改光標(biāo)所在處到字尾處(不常用)
7.【ctrl+g】顯示行號(hào)、【#G】跳到#行


Linux編譯器中g(shù)cc/g++
首先要知道的是代碼生成的四個(gè)階段以及每個(gè)階段所完成的任務(wù):
1.預(yù)處理:宏替換和頭文件的展開以及去掉注釋
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ù)文件中,在沒有特別指明的情況下系統(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)鏈接是指將所依賴的動(dòng)態(tài)庫(kù)鏈接到可執(zhí)行程序中,所以會(huì)比較大,但是在不同的平臺(tái)可以正常執(zhí)行。
2.動(dòng)態(tà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í)必須將所依賴的動(dòng)態(tài)庫(kù)也給出否則找不到動(dòng)態(tài)庫(kù)是沒法運(yùn)行的。
3.編譯器默認(rèn)的鏈接方式是動(dòng)態(tài)鏈接,如果想使用靜態(tài)鏈接的話要在編譯選項(xiàng)中加-static選項(xiàng)


關(guān)于Makefile:
使用make一鍵式編譯,Makefile文件中的關(guān)鍵是根據(jù)依賴目標(biāo)完成對(duì)生成目標(biāo)的編譯,但是寫在最前面的依賴文件一旦被生成后面的就沒用了(永遠(yuǎn)只為了生成第一個(gè)目標(biāo)),一般想要通過(guò)一個(gè)makefile文件編譯生成多個(gè)文件時(shí)就要用偽目標(biāo)來(lái)確定,偽目標(biāo)后的依賴文件則是要生成的文件,這樣就解決了這個(gè)問(wèn)題。
預(yù)定義變量:$^:所有的依賴對(duì)象
$@:所有的目標(biāo)對(duì)象


向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI