locate命令html
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命令linux
whereis命令是定位可執行文件、源代碼文件、幫助文件在文件系統中的位置。這些文件的屬性應屬於原始代碼,二進制文件,或是幫助文件。whereis程序還具備搜索源代碼、指定備用搜索路徑和搜索不尋常項的能力。whereis命令只能用於程序名的搜索,並且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。若是省略參數,則返回全部信息。
命令格式:whereis [-bmsu] [BMS 目錄名 -f ] 文件名
主要參數:
-b:定位可執行文件
-m:定位幫助文件
-s:定位源代碼文件
-u:搜索默認路徑下除可執行文件、源代碼文件、幫助文件之外的其它文件
-B:指定搜索可執行文件的路徑
-M:指定搜索幫助文件的路徑
-S:指定搜索源代碼文件的路徑
which命令數據庫
which指令會在PATH變量指定的路徑中,搜索某個系統命令的位置,而且返回第一個搜索結果。which是根據使用者所配置的PATH變量內的目錄去搜尋可運行檔的,因此,不一樣的PATH配置內容所找到的命令是不同的。
命令格式:which 可執行文件名稱
命令參數:
-n:指定文件名長度,指定的長度必須大於或等於全部文件中最長的文件名
-p:與-n參數相同,但此處的包括了文件的路徑
-w:指定輸出時欄位的寬度
-V:顯示版本信息
find、locate、which、whereis的區別安全
which (尋找執行檔) :這個指令是根據PATH這個環境變量所規範的路徑,去搜尋執行檔的檔名,因此,重點是找出執行檔而已,which 後面接的是完整檔名
whereis (尋找特定檔案):搜尋linux數據庫檔案中所記錄的東西,和locate的主要區別在於後面的參數
locate:搜尋linux數據庫檔案中所記錄的東西,後面直接跟檔案的部分名稱就行
find:直接搜索整個硬盤
sort命令app
將文本文件內容加以排序。可針對文本文件的內容,以行爲單位來排序。
參數:
m:將幾個排序好的文件進行合併。
n:依照數值的大小排序
Linux Bash中,ls . | sort 命令的功能是(顯示當前目錄內容並排序)
du命令編輯器
顯示目錄或文件的大小。du會顯示指定的目錄或文件所佔用的磁盤空間。
參數:
a:顯示目錄中個別文件的大小。
b:顯示目錄或文件大小時,以byte爲單位。
c: 除了顯示個別目錄或文件的大小外,同時也顯示全部目錄或文件的總和
ls命令函數
顯示指定工做目錄下以內容(列出目前工做目錄所含之檔案及子目錄)。
參數:
a:顯示全部檔案及目錄
A:同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
t:將檔案依創建時間之前後次序列出
列出目前工做目錄下全部檔案及目錄;目錄於名稱後加 "/", 可執行檔於名稱後加 "*" : ls -AF
Linux Bash中,把ls命令顯示當前目錄的結果存入ls.txt的命令輸出重定向命令是(ls > ls.txt)
vi、 gcc、gdb、make的使用學習
Vim六種模式命令行
普通模式(Normal mode):在普通模式中,用的編輯器命令,好比移動光標,刪除文本等等。這也是Vim啓動後的默認模式。在普通模式中,進入插入模式比較普通的方式是按a(append/追加)鍵或者i(insert/插入)鍵。
插入模式(Insert mode):在插入模式中,能夠按ESC鍵回到普通模式。
可視模式(Visual mode):命令多與字母v有關,移動命令會擴大高亮的文本區域。高亮區域能夠是字符、行或者是一塊文本。
選擇模式(Select mode):這個模式中,能夠用鼠標或者光標鍵高亮選擇文本,不過輸入任何字符的話,Vim會用這個字符替換選擇的高亮文本塊,而且自動進入插入模式。
命令行模式(Command line mode):在命令行模式中,執行命令(:鍵),搜索(/和?鍵)或者過濾命令(!鍵)。在命令執行以後,Vim返回到命令行模式以前的模式,一般是普通模式。
Ex模式(Ex mode):這和命令行模式比較類似,在使用:visual命令離開Ex模式前,能夠一次執行多條命令。
Vim經常使用命令總結設計
插入:
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編譯過程
預處理:gcc –E hello.c –o hello.i ;gcc –E調用cpp 產生預處理過的C原始程序
編譯:gcc –S hello.i –o hello.s ;gcc –S調用ccl 產生彙編語言原始程序
彙編:gcc –c hello.s –o hello.o;gcc -c 調用as 產生目標文件
鏈 接:gcc hello.o –o hello;gcc -o 調用ld 產生可執行文件
運行: ./hello
靜態庫
靜態庫是一系列的目標文件(.o文件)的歸檔文件((lib+name).a文 件);連接階段,選擇靜態庫,後綴名爲「.a」;選擇動態庫,後綴名爲「.so」。
靜態連接庫的生成: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
註冊共享庫的方法:將庫文件直接複製到/lib或者/usr/lib目錄下: cp (lib+name).so /lib
GDB調試
進入gdb:
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 行數或函數名 條件表達式
makefile
功能:識別文件代碼是否更新,減小編譯工做量
格式爲:
目標體:依賴文件
[tab鍵]各目標體運行命令
目標體:由make建立,一般是目標文件或可執行文件
依賴文件:建立目標體所依賴的文件
運行命令:建立每一個目標體時須要的運行命令,必須以tab鍵開頭。
使用make的格式:make 目標體
這週四的博客忘記發了,因此補發了一篇我今天覆習的知識。以前的知識還有不少不懂,由於之後就要閉卷考試,因此以前的彙編的,Java的知識學的不紮實,致使本身如今學起來非常麻煩並且困難。因此我會認真複習以前學過的知識,不停的鞏固本身學到的,補上沒有學到的。