Linux裏必須掌握的命令

--------------------grep------------------------
工作方式:在一個或多個文件中搜索字符串模板,若模板包括空格,則必須被引用
模板後的所有字符串被看作文件名,不影響原文件內容
常用參數:
-a:
將二進制文件以text文件的形式查找數據
-c:計算找到的字符串模板的次數,不會輸出與字符串模板符合的那一行內容,僅
輸出次數
-i:忽略大小寫
-n:輸出時將行號一起輸出
-v:反向選擇,將沒有字符串模板的那一行輸出
--color=auto:將搜索到的字符串模板部分加上顏色(一般爲默認,無需設置)
精確查找:
在字符串模板後面加上"\>"就可以讓字符串的查找更精確,如:
要查找"546",如果還存在"5462"、"5468",那麼執行命令grep "546"就會將"5462"和"5468"
都找出來,但是我們只想要"546",這個時候就可以這樣grep "546\>"。
-----------------sed---------------------------
工作方式:
以行爲單位,對數據的每一行進行替換、刪除、新增、選取等操作,不
能對單行進行操作
常用參數:
-n:
安靜模式,當要求把選取的特定行打印出來時,就會使用這個參數,保證不會
重複輸出特定行,如果不加這個參數,一般是將每行重複輸出兩次再輸出下一特定

-f:直接將sed的動作寫入一個文件內,加上-f filename時就可以執行filename中的
sed動作,注意:filename中不能加單引號或雙引號,如果動作本來是'2a Hello',則
在filename中應該只寫上2a Hello,什麼都不要加
-r:可以讓sed的操作支持擴展正則表達式(sed默認是基礎正則表達式)
-i:直接修改讀取的文件內容,不會由屏幕輸出(危險!!!雖然貌似sed可以做vim
的一些動作了)
-----------------awk------------------------------
工作方式:
相比於sed處理一行一行的數據,awk處理的是一行中的各個字段的處理,
它的每一個動作用"{}"包含,同樣所有動作都要放在一對單引號中,這樣的話它的動

作裏不允許再出現單引號,只能用雙引號代替,它的默認字段分隔符爲空格或製表鍵

注意它與grep、sed的比較!!!

常用功能:
NF:每一行擁有的字段總數,可用print直接打印
NR:當前處理的行號,也可用print直接打印
FS:當前的分隔符,默認爲空格或製表鍵,設置方法"BEGIN {FS=":"}",這樣就可以以
冒號爲字段分隔符了,分爲$1,$2,$3......,在/etc/passwd文件中比較有用
awk支持條件判斷
-----------------sort------------------------
工作方式:根據選定的排序方式對整個文件數據進行排序輸出,可以字母、數字、
一定區間內的排序輸出,還可以反向輸出
常用參數:
-f:
忽視大小寫(和grep的-i參數功能一樣,爲什麼同樣的功能,參數要整得不一樣唉)
-b:忽視每行開頭的空格符,b可以記爲blank,-b就減掉blank
-M:以月份的名字來排序,在瀏覽文件的時候就可以用這個參數來按時間排序輸出
-n:以數字排序(默認爲文字類型排序),n可以記爲number
-r:反序並輸出,r可以記爲reverse
-u:uniq命令的功能,將重複行輸出一行即可
-t:分隔符(默認爲tab鍵),修改方法-t ':',這樣就可以改爲以冒號來分隔了,在
/etc/passwd有用,和awk的FS設置類似
-k:以哪一個區間來進行排序,通常結合-t,當需要被排序的內容是以tab鍵來分隔的
就不提了,若是想/etc/passwd以冒號分隔的話,就需要用-t來修改分隔符,然後-k再加
要被作爲排序標準的字段符
-----------------wc-------------------------
工作方式:將整個文件的字數、行數、字符數進行統計,當然也可以用grep或sed提出
特定行來統計特定行的字數等
常用參數:
-l:
僅列出行數,line
-w:僅列出字數(單詞數),word
-m:僅列出字符數(是不是該用-c,和wc、characterize對應嘛。。。)
如果只是執行wc而不加上任何參數,那麼將會列出所有信息,依次爲:行數、字數、
字符數
----------------find-----------------------
工作方式:
在整個磁盤中直接查找符合條件的文件,如果磁盤過大的話,會耗費很多
時間,還有一種查找文件的命令:whereis,它會在系統提供的數據庫中查找文件,
速度很快,但是系統數據庫一般是不會及時更新的,所以要查找最新的文件時,要先
執行updatedb,否則將不會找到文件(不過更新數據庫應該會很耗時吧。。。)
常用參數:

-atime:按照文件被讀取的時間來查找
-mtime:按照文件內容被修改的時間來查找
-ctime:按照文件權限和屬性白修改的時間按來查找
上面三個參數爲時間參數,後面加上數字才行,如:
-atime n:在n天之前“一天內”被讀取過的文件,第n天前到第n+1天的一天的時間
-atime -n:在n天之內(含n天)被讀取過的文件,從現在到第n天前的所有時間
-atime +n:在n天之前(不含n天)被讀取過的文件,就是減去上面兩個時間段的剩
下的時間
還有一個時間參數:
-newer file:file爲一個已存在的文件,顧名思義,查找比file要新的文件


和用戶/用戶組有關的參數:
-uid n:用戶ID爲n的文件
-gid n:用戶組ID爲n的文件
-user name:用戶帳號爲name的文件
-group name:用戶組帳號爲name的文件
-nouser:所有者不再/etc/passwd中的文件,可以找到一些異常文件
-nogroup:所屬用戶組不存在的文件


和文件權限及名稱有關的參數:
-name filename:名爲filename的文件
-size [+-]SIZE:查找比SIZE要大(+)或小(-)的文件,單位有c(字節)、k(1024
字節)
-type TYPE:查找TYPE類型的文件,類型就是表示權限的第一個字符,常見的有d,-,l...
-perm [+-]mode:利用權限來查找,mode表示權限必須剛好相等,+mode表示包含任一
(3個一組)權限即可,-mode表示必須全部包含mode的權限(貌似不怎麼好記。。)


擴展參數:
-exec command:exec後面接命令,這個命令可以對find到的結果進行處理,聽着有點
兒類似於管道命令啊,但是它後面接的命令的形式比較固定,假如我們找到了名爲file
的文件,我們想要利用exec來瀏覽這個文件內容,這個時候必須這麼寫命令:
$ find -name file -exec cat {} \;
{}表示查找到的內容,\是用來消除;在命令中的特殊意義的,它代表exec執行到;結束
-print:默認的操作,不用加上。。。

等等,find還有一個特殊功能,就是通過inode號碼查找文件,這個功能可以解決一個

文件名裏帶來空格的文件的刪除,如Hello World文件名,如果用rm的話,它會將這個文件

誤認爲兩個文件而不停的報錯,這個時候就需要找到這個文件的inode號碼,利用find的擴展

參數來刪除它,命令如下:

$ ls -i | grep 'Hello World'

假如查到inode爲142542的話,進行下一個命令:

$ find -inum 142542 -exec  rm {} \;

帶有空格的文件名的文件就會被刪除了。

----------------------tar---------------------------
工作方式:對文件或目錄進行壓縮,查看壓縮包內容,對壓縮包的一個或全部的文件進行
解壓,這個完全可以和winRAR對照理解。這只是一個最常用的壓縮命令之一,通常,以這
個命令進行壓縮的文件命名爲*.tar.bz2最好,利於區別於其他其他壓縮命令產生的壓縮包
常用參數:
-c:
新建壓縮文件
-t:查看壓縮文件中的文件名
-x:解壓文件,搭配-C在特定的目錄中解壓
-j:通過bzip2進行壓縮/解壓,最好命名爲*.tar.bz2
-z:通過gzip進行壓縮/解壓,最好命名爲*.tar.gz
-v:壓縮/解壓中顯示正在壓縮的文件名
-f filename:filename爲要被處理的文件(每個tar命令都要加上這個參數才行的!!!)
-C direction:
前面提過,可在特定的direction中解壓
-p:允許備份數據中含有根目錄(小寫)
-P:保留文件權限和屬性(大寫)
注意:tar有三個功能:解壓、壓縮、查看壓縮文件,這三個功能不能同時進行,也就是說
-c、-t、-x不同一起出現在同一個命令參數中
(利用這個刪除命令可以將練習的壓縮包、解壓的目錄等刪除:rm -r filename,當然也可以
刪除目錄,由於解壓文件中含有目錄時,可能用rmdir不好使,因爲目錄應該還會有東西)
--------------chmod----------------------------
工作方式:修改文件或目錄的權限(在Linux中極其重要滴!!)
常用參數:
-R:
遞歸性的持續修改,當你想要把一個目錄下的所有目錄或文件一起修改權限時,這個

參數就很有用了(這個參數在chown、chgrp中也有類似的功能,chmod與這兩個在系統安

全上很重要)

具體修改權限的方法:
(1)利用rwx直接修改:"u=rwx,g=rx,o=rx"或"a+x".......
(2)利用數字修改:"777"或"644"等等
---------------netstat--------------------
工作方式:用於網絡監控,輸出網絡和系統自己的進程兩部分
常用參數:
-a:
all的意思,也就是把所有的連接、監聽、socket數據都列出來
-t:列出tcp網絡數據包的數據
-u:列出udp網絡數據包的數據
-n:以端口號代替進程的服務名稱顯示
-l:列出目前正在網絡監聽的服務
-p:列出該網絡服務的進程PID
--------------ln----------------
工作方式:
建立與已有文件或目錄的連接,分軟連接和硬連接兩種,軟連接類似於Windows下
的快捷方式,只保存一個源文件的指向,佔用空間小,硬連接是通過文件系統的inode連接來
產生新文件名,不會產生新文件,兩個文件同步,權限、屬性神馬的全一樣。
常用參數:
-s:
創建軟連接(默認爲硬連接)
-f:如果目標文件存在時,就主動將目標文件直接刪除後再創建
----------------kill----------------
工作方式:殺掉後臺進程,先執行jobs命令,根據第一列顯示的數字來殺掉進程,如:
kill -9 %2,就會強制終止第二個進程。
常用參數:
-l:
字母l,顯示可以使用的信號,和下面的數字參數有關
-2:與[ctrl+c]等效
-9:立刻強制刪除一個工作
-15:以正常的程序方式終止一項工作,是正常終止,與-9不同滴
----------------ps-------------------
工作方式:
查詢系統正在運行的進程,比jobs命令顯示得更全面
常用查詢:
ps -l:查看與自己相關的bash的進程
ps aux:查看所有系統運行的程序




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