填空:Linux Bash中,Ctrl+a快捷鍵的做用是(將光標移至輸入行頭,至關於Home鍵)
在 Linux 裏面可使用使用(chmod)命令修改文件的權限
Linux中沒有C盤,D盤,其文件系統的目錄是由(FHS)標準規定好的。
強制刪除test文件的命令是(rm -f test )。
查找home目錄中昨天建立的文件的命令是(find ~ -ctime 1)
使用tar命令把home目錄打包成home.tar的命令是( tar -cf home.tar ~)
(touch test)命令能夠建立一個空白文件test。
ls | sort 命令的功能是( 顯示當前目錄內容並排序 ) 使用grep查找當前目錄下*.c中main函數在那個文件中的命令是( grep main *.c )
使用wc統計hello.c和main.c共有幾行代碼的的命令是( wc -l hello.c main.c )
實現「Display files,Sorted by size」功能的ls命令是 ( ls –S ) 查找根目錄下全部目錄的find命令是(find / -type d)
查找宏 STDOUT_FILENO 的值的命令是(grep -nr STDOUT_FILENO /usr/include)
CPU中的(PC或程序計數器)寄存器總指向主存中的某條機器語言指令
Linux系統中,連接器程序是(ld)
(加載器)將可執行文件的內容映射到存儲器,並運行這個程序linux
在main.c中給say_hello函數設置斷點 gcc -g *.c -o main b say_hellogit
Linux中查找配置(configure)網卡(interface)的命令是(man –k configure | grep interface )github
gdb中使用命令( until ) 能夠跳出循環語句數據庫
Linux中,對目標代碼test.o進行反彙編的命令是(objdump -d test.o)vim
兩個寄存器(%ebp和%esp)保存着指向程序棧中重要位置的指針。安全
爲單個過程(函數)分配的那部分棧叫(棧幀)函數
解開sim.tar的Linux命令是(tar -xvf sim.tar)工具
經過前七週的學習,對計算機系統如存儲器的結構和信息在計算機內的表示和處理有了一些基本的認識。在學習的方法上,在讀課本以前因該先看看老師寫的本週學習目標和學習重點,以後再有目的的看書,遇到不會的問題必定要及時的解決。能夠在答疑論壇上提出問題,看看別人是否也遇到了一樣的問題。學習
之前的學習方法很差,直接就看書,沒有重點,致使看書很難進行下去;知識點也沒能及時引用。從此學習中要增強實踐。測試
這門課程的學習方法挺好的,強調自學。每週的博客以及下一週的週一測試,推進了學習的過程。
vim 編寫c代碼並使用gdb進行調試。
經常使用的linux命令:
man
· 在 Linux 環境中遇到困難,可使用man (Manual page)命令。要查看相應區段的內容,就在 man 後面加上相應區段的數字便可
· man命令一般與管道命令結合使用
man -k k1 | grep k2 | grep 2grep
· 用於查找內容包含指定的範本樣式的文件,若是發現某文件的內容符合所指定的範本樣式,預設grep指令會把含有範本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名爲「-」,則grep指令會從標準輸入設備讀取數據。
· -n:在顯示符合範本樣式的那一列以前,標示出該列的列數編號。
-r:爲遞歸查找
cheat命令
cheat是很是好用搜索工具,可以方便的告訴你你想要的內容。cat
· 參數:
-n 由 1 開始對全部輸出的行數編號
-b 和 -n 類似,只不過對於空白行不編號
-s 當遇到有連續兩行以上的空白行,就代換爲一行的空白行find
· 用法 : find
將檔案系統內符合描述的檔案列出來。你能夠指要檔案的名稱、類別、時間、大小、權限等不一樣資訊的組合,只有徹底相符的纔會被列出來。
將目前目錄及其子目錄下全部延伸檔名是 c 的檔案列出來:# find . -name "*.c"
將目前目錄其其下子目錄中全部通常檔案列出:# find . -ftype f
將目前目錄及其子目錄下全部最近 20 分鐘內更新過的檔案列出:# find . -ctime -20locate
· 使用方式: locate [-q] [-d ] [--database=]
說明:locate 讓使用者能夠很快速的搜尋檔案系統內是否有指定的檔案。其方法是先創建一個包括系統內全部檔案名稱及路徑的數據庫,以後當尋找時就只需查詢這個數據庫,而沒必要實際深刻檔案系統之中了sort
· 將文本文件內容加以排序。可針對文本文件的內容,以行爲單位來排序。
· 參數:
-m:將幾個排序好的文件進行合併。
-n:依照數值的大小排序
du
· 顯示目錄或文件的大小。du會顯示指定的目錄或文件所佔用的磁盤空間。
· 參數:
-a:顯示目錄中個別文件的大小。
-b:顯示目錄或文件大小時,以byte爲單位。
-c: 除了顯示個別目錄或文件的大小外,同時也顯示全部目錄或文件的總和。ls
· 顯示指定工做目錄下以內容(列出目前工做目錄所含之檔案及子目錄)。
· 參數:
-a 顯示全部檔案及目錄
-A 同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
-t 將檔案依創建時間之前後次序列出
· 列出目前工做目錄下全部檔案及目錄;目錄於名稱後加 "/", 可執行檔於名稱後加 "*" : ls -AF
如何設置和使用一個靜態庫
靜態函數庫:.a;
利用靜態函數庫編譯成的文件比較大,由於整個 函數庫的全部數據都會被整合進目標代碼中,
編譯後的執行程序不須要外部的函數庫支持,由於全部使用的函數都已經被編譯進去了。
若是靜態函數庫改變了,那麼你的程序必須從新編譯。
gcc -c hello.c
ar rcvs libhello.a hello.c
gcc main.c -o main -L. -lhello (or gcc main.c ./libhello.a -o main)
怎麼樣設置和使用一個動態庫
動態函數庫:.so;
動態函數庫在編譯的時候 並無被編譯進目標代碼中,你的程序執行到相關函數時才調用該函數庫裏的相應函數,所以動態函數庫所產生的可執行文件比較小。
因爲函數庫沒有被整合進你的程序,而是程序運行時動態的申請並調用,因此程序的運行環境中必須提供相應的庫。
動態函數庫的改變並不影響你的程序,因此動態函數庫的升級比較方便。
動態庫的生成:gcc -fPIC -c xxx.c
gcc -shared -o libxxx.so xxx.o
·共享庫的使用:gcc -o main main.c -L. -lxxx
編寫Makefile編譯代碼
代碼託管連接