Linux基本認識

Linux是一個開源的操作系統。在Linux中一切皆文件。Linux在服務器領域和嵌入式領域有着極大的優勢,如:使用及維修總成本、硬件支持、靈活性、安全性、穩定性和可靠性、經濟實惠。


Linux中的基本指令有很多,隨着時間的進行慢慢進行學習,這裏便不再一一贅述,只談談一部分內容。
1.rm指令:rm是刪除指令,但是在刪除文件夾的時候要加-r(遞歸刪除)選項,-f表示的是強制刪除,要慎用。
2.cp和mv指令:我個人喜歡把這兩個指令放在一起記憶,cp是拷貝,mv是移動,他們的使用規則都是在指令後+【選項】【源文件】【目標文件】,所以當然也支持文件夾的操作啦,只需要加-r選項就可以啦。
3.壓縮和解壓:
①tar:
tar有兩種方式,分別是gzip(常用)和bzip2
gzip:
壓縮: tar -zcvf /tmp/etc.tar.gz /etc-->將etc文件夾下的內容壓縮到/tmp/目錄下,並命名爲etc.tar.gz
解壓縮:tar -zxvf etc.tar.gz
②zip和unzip
4.find指令:使用方法:find【路徑】 -name(要查找的名字) 注:這裏的名字可以使用通配符(*)。


Linux權限:
linux下有兩種用戶分別是普通用戶和超級用戶(root)
有兩種從普通用戶切換到超級用戶的方式:su和su -,但是這兩個方式是有區別的,使用su指令進入root後的路徑依然是home/當前用戶,也就是說雖然擁有超級用戶的權利但實際上並不是真正的超級用戶,而使用su -指令進入超級用戶後的路徑是/root這個時候就是真正的超級用戶了。
1.文件訪問者的分類:文件所有者、文件所有者所在的用戶組、其他
2.文件類型和訪問權限:
d:文件夾
-:普通文件
l:軟鏈接(類似Windows的快捷方式)
b:塊設備文件(例如硬盤、光驅等)
p:管道文件
c:字符設備文件(例如屏幕等串口設備)
s:套接口文件
基本權限:
i.讀(4):Read對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽該目錄信息的權限
ii.寫(2):Write對文件而言,具有修改文件內容的權限;對目錄來說具有刪除移動目錄內文件的權限
iii.執行(1):execute對文件而言,具有執行文件的權限;對目錄來說,具有進入目錄的權限
通過chmod命令可以修改文件的權限。


文本編輯器vim(普通模式、插入模式、底行模式)
在普通模式下的一些重要命令:(七種類型:移刪復替撤更跳)
1.$移動到行尾、^移動到行首、gg移動到文本的開頭、G移動到文本的末尾
2.x刪除光標位置的字符、dd刪除整行
3.yy和p
4.r替換光標所在位置的字符、R替換光標所到之處的字符(sec停止)
5.u撤銷、【ctrl+r】撤銷的恢復
6.cw更改光標所在處到字尾處(不常用)
7.【ctrl+g】顯示行號、【#G】跳到#行


Linux編譯器中gcc/g++
首先要知道的是代碼生成的四個階段以及每個階段所完成的任務:
1.預處理:宏替換和頭文件的展開以及去掉註釋
gcc -E test.c -o test.i
2.編譯:檢查語法並生成彙編代碼
gcc -S test.i -o test.s
3.彙編:生成機器可識別的代碼
gcc -c test.s -o test.o
4.鏈接:生成可執行文件(test)
gcc test.o -o test
當然,最常用的還是gcc test.c -o test直接將源代碼生成可執行文件
注意:系統將大部分庫函數的實現都放在libc.so.6的庫文件中,在沒有特別指明的情況下系統將在路徑“user/lib”下查找就會鏈接到相應的庫函數中,這也就是鏈接的作用,而庫函數又分爲靜態庫和動態庫,這個我們後面再詳細說明。
關於靜態鏈接和動態鏈接
1.靜態鏈接是指將所依賴的動態庫鏈接到可執行程序中,所以會比較大,但是在不同的平臺可以正常執行。
2.動態鏈接是指將所依賴的動態庫中的函數加載到符號表中,在運行程序時動態鏈接動態庫去執行動態庫中的代碼,所以在不同電腦上使用時必須將所依賴的動態庫也給出否則找不到動態庫是沒法運行的。
3.編譯器默認的鏈接方式是動態鏈接,如果想使用靜態鏈接的話要在編譯選項中加-static選項


關於Makefile:
使用make一鍵式編譯,Makefile文件中的關鍵是根據依賴目標完成對生成目標的編譯,但是寫在最前面的依賴文件一旦被生成後面的就沒用了(永遠只爲了生成第一個目標),一般想要通過一個makefile文件編譯生成多個文件時就要用僞目標來確定,僞目標後的依賴文件則是要生成的文件,這樣就解決了這個問題。
預定義變量:$^:所有的依賴對象
$@:所有的目標對象


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章