command [options] [arguments] []表示是可選的
,即組成結構爲:命令 [選項] [參數]
man命令
是Linux下的幫助指令,經過man指令能夠查看Linux中的指令幫助、配置文件幫助和編程幫助等信息。-a
:在全部的man幫助手冊中搜索-k
:根據關鍵字搜索聯機幫助,是一種模糊搜索-f
:關鍵字精確搜索,等價於whatis指令,顯示給定關鍵字的簡短描述信息-P
:指定內容時使用分頁程序-M
:指定man手冊搜索的路徑數字
:指定從哪本man手冊中搜索幫助關鍵字
:指定要搜索幫助的關鍵字man -k
:經常使用來搜索,結合管道使用。例句以下:man -k k1 | grep k2 | grep 2
man命令
幾乎是萬能的,但它卻不是最高效的。因爲它給出的幫助信息很長,在短期內很差理解,因此在這種狀況下,用cheat命令
更方便,cheat命令
簡單來講,就是告訴你一個命令如何使用。它沒有提供其餘額外多餘的信息,只經過使用實例告訴你一個命令如何使用。grep命令
是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。grep
全稱是Global Regular Expression Print
,表示全局正則表達式版本,它的使用權限是全部用戶。grep [options]
-c
:只輸出匹配行的計數-I
:不區分大小寫(只適用於單字符)-h
:查詢多文件時不顯示文件名-l
:查詢多文件時只輸出包含匹配字符的文件名-n
:顯示匹配行及行號-s
:不顯示不存在或無匹配文本的錯誤信息-v
:顯示不包含匹配文本的全部行grep -nr XXX /usr/include(XXX爲所要找的宏)
find命令
用來在指定目錄下查找文件。任何位於參數以前的字符串都將被視爲欲查找的目錄名。若是使用該命令時,不設置任何參數,則find命令
將在當前目錄下查找子目錄與文件。而且將查找到的子目錄和文件所有進行顯示。find pathname -options [-print -exec -ok ...]
pathname
:find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄print
:find命令將匹配的文件輸出到標準輸出exec
:find命令對匹配的文件執行該參數所給出的shell命令,相應命令的形式爲'command' { } \;,注意{ }和\;之間的空格ok
:和-exec
的做用相同,只不過以一種更爲安全的模式來執行該參數所給出的shell命令,在執行每個命令以前,都會給出提示,讓用戶來肯定是否執行-name
:按照文件名查找文件-perm
:按照文件權限來查找文件mtime -n +n
:按照文件的更改時間來查找文件, - n表示文件更改時間距如今n天之內,+ n表示文件更改時間距如今n天之前-newer file1 ! file2
:查找更改時間比文件file1新但比文件file2舊的文件-type
:查找某一類型的文件,諸如:b - 塊設備文件,d - 目錄,c - 字符設備文件,p - 管道文件,l - 符號連接文件,f - 普通文件-size n
:[c] 查找文件長度爲n塊的文件,帶有c時表示文件長度以字節計-depth
:在查找文件時,首先查找當前目錄中的文件,而後再在其子目錄中查找locate命令
實際上是find -name
的另外一種寫法,可是要比後者快得多,緣由在於它不搜索具體目錄,而是搜索一個數據庫(/var/lib/locatedb),這個數據庫中含有本地全部文件信息。Linux系統自動建立這個數據庫,而且天天自動更新一次,因此使用locate命令查不到最新變更過的文件。爲了不這種狀況,能夠在使用locate以前,先使用updatedb命令,手動更新數據庫。locate [選擇參數] [樣式]
-e
:將排除在尋找的範圍以外-1
:若是是1則啓動安全模式,在安全模式下,使用者不會看到權限沒法看到的檔案。這會使速度減慢,由於 locate
必須至實際的檔案系統中取得檔案的權限資料-f
:將特定的檔案系統排除在外,例如咱們沒有到必要把proc
檔案系統中的檔案放在資料庫中-q
:安靜模式,不會顯示任何錯誤訊息-n
:至多顯示 n個輸出-r
:使用正規運算式 作尋找的條件-o
:指定資料庫存的名稱-d
:指定資料庫的路徑-h
:顯示輔助訊息-V
:顯示程式的版本訊息whereis命令
是定位可執行文件、源代碼文件、幫助文件在文件系統中的位置。這些文件的屬性應屬於原始代碼,二進制文件,或是幫助文件。whereis
程序還具備搜索源代碼、指定備用搜索路徑和搜索不尋常項的能力。whereis命令
只能用於程序名的搜索,並且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。若是省略參數,則返回全部信息。whereis [-bmsu] [BMS 目錄名 -f ] 文件名
-b
:定位可執行文件-m
:定位幫助文件-s
:定位源代碼文件-u
:搜索默認路徑下除可執行文件、源代碼文件、幫助文件之外的其它文件-B
:指定搜索可執行文件的路徑-M
:指定搜索幫助文件的路徑-S
:指定搜索源代碼文件的路徑which指令
會在PATH變量指定的路徑中,搜索某個系統命令的位置,而且返回第一個搜索結果。which
是根據使用者所配置的PATH
變量內的目錄去搜尋可運行檔的,因此,不一樣的PATH
配置內容所找到的命令是不同的。which 可執行文件名稱
-n
:指定文件名長度,指定的長度必須大於或等於全部文件中最長的文件名-p
:與-n參數相同,但此處的包括了文件的路徑-w
:指定輸出時欄位的寬度-V
:顯示版本信息linux
i
:在當前光標處進行編輯a
:在光標後插入編輯q!
:強制退出,不保存:q
:退出:wq!
:強制保存並退出:wq
:保存並退出:w <文件路徑>
:另存爲x
:刪除遊標所在的字符dd
:刪除整行nG(n Shift+g)
:光標移動到第n行nyy
:複製光標所在及其後的整行共n行p
:表明粘貼至光標後:set autoindent(ai)
:設置自動縮進:set cindent(cin)
:設置C語言風格縮進:set nu
:以顯示行號gcc -c 文件名.c ar rcsv libxxx.a xxx.o
gcc -o 文件名 文件名.c -L. -lxxx
//連接到靜態庫-L
:在庫文件的搜索路徑列表中添加dir目錄-l
:在頭文件的搜索路徑列表中添加dir目錄gcc -fPIC -c xxx.c
gcc -shared -o libxxx.so xxx.o
gcc -o main main.c -L. -lxxx
cp (lib+name).so /lib
gcc -g xxx.c -o xxx
gdb xxx
(gdb) l
:進行行號提示(gdb) b n
:在第n行設置斷點(gdb) r
:運行代碼,運行至斷點處(gdb) n
:單步運行(gdb) c
:使程序繼續往下運行,直到再次遇到斷點或程序結束(gdb) q
:退出GDB(gdb) watch n
:在"n"設置了觀察點,觀察變量的變化狀況b 函數名 條件表達式
b 行數或函數名 條件表達式
b 行數或函數名 if表達式
tbreak 行數或函數名 條件表達式
高深的東西,結果這種思想在上學期的Java到這學期的Linux中漸漸發生了轉變,能夠說是從老師的強制要求變成了我本身的一個習慣。這git
實際上是一個很重要的轉變,在某種程度上說他實際上是改變了個人思惟方式,讓我開始具有一種程序員的謹慎、嚴密,具備邏輯性的思惟。這對我之後的工做是頗有幫助的。程序員
我是挺討厭這種方式的,因此上學期的Java也就是渾渾噩噩的度過,最後看到班裏滿分的同窗羨慕又無奈。這學期我看到有同窗的博客裏寫感受本身選錯了專業,對如今的正則表達式
課程很沒興趣,想要去研究文學。其實我也曾經有過相似的煩惱,但仔細想一想,編程、代碼,這些看似無聊而機械的課程其實深層次鍛鍊了咱們的理性思惟,紮紮實實shell
坐在電腦面前,安靜本分的敲幾行代碼,比什麼都來得實在。所以,說隨遇而安也好,說浪子回頭也好,反正我這學期已經在盡己所能的學習這門課程了。數據庫
每週你們提的多的問題和百度不到的問題老師能夠上課同一講解,每一個人私下裏問老師很麻煩,關鍵是不少同窗想學但懼怕問問題的時候犯低級錯誤。編程