linux必須掌握的命令
學習linux掌握必要的命令是最好進步的方式之一,下面由學習啦小編為大家整理了linux下必須掌握的命令的相關知識,希望大家喜歡!
linux必須掌握的命令1.grep
--------------------grep------------------------
工作方式:在一個或多個文件中搜索字符串模板,若模板包括空格,則必須被引用
模板后的所有字符串被看作文件名,不影響原文件內容
常用參數(shù):
-a:將二進制文件以text文件的形式查找數(shù)據(jù)
-c:計算找到的字符串模板的次數(shù),不會輸出與字符串模板符合的那一行內容,僅
輸出次數(shù)
-i:忽略大小寫
-n:輸出時將行號一起輸出
-v:反向選擇,將沒有字符串模板的那一行輸出
--color=auto:將搜索到的字符串模板部分加上顏色(一般為默認,無需設置)
精確查找:
在字符串模板后面加上"\>"就可以讓字符串的查找更精確,如:
要查找"546",如果還存在"5462"、"5468",那么執(zhí)行命令grep "546"就會將"5462"和"5468"
都找出來,但是我們只想要"546",這個時候就可以這樣grep "546\>"。
linux必須掌握的命令2.sed
-----------------sed---------------------------
工作方式:以行為單位,對數(shù)據(jù)的每一行進行替換、刪除、新增、選取等操作,不
能對單行進行操作
常用參數(shù):
-n:安靜模式,當要求把選取的特定行打印出來時,就會使用這個參數(shù),保證不會
重復輸出特定行,如果不加這個參數(shù),一般是將每行重復輸出兩次再輸出下一特定
行
-f:直接將sed的動作寫入一個文件內,加上-f filename時就可以執(zhí)行filename中的
sed動作,注意:filename中不能加單引號或雙引號,如果動作本來是'2a Hello',則
在filename中應該只寫上2a Hello,什么都不要加
-r:可以讓sed的操作支持擴展正則表達式(sed默認是基礎正則表達式)
-i:直接修改讀取的文件內容,不會由屏幕輸出(危險!!!雖然貌似sed可以做vim的一些動作了)
linux必須掌握的命令3.awk
-----------------awk------------------------------
工作方式:相比于sed處理一行一行的數(shù)據(jù),awk處理的是一行中的各個字段的處理,
它的每一個動作用"{}"包含,同樣所有動作都要放在一對單引號中,這樣的話它的動
作里不允許再出現(xiàn)單引號,只能用雙引號代替,它的默認字段分隔符為空格或制表鍵
注意它與grep、sed的比較!!!
常用功能:
NF:每一行擁有的字段總數(shù),可用print直接打印
NR:當前處理的行號,也可用print直接打印
FS:當前的分隔符,默認為空格或制表鍵,設置方法"BEGIN {FS=":"}",這樣就可以以
冒號為字段分隔符了,分為 class="main">
linux必須掌握的命令
linux必須掌握的命令1.grep
--------------------grep------------------------
工作方式:在一個或多個文件中搜索字符串模板,若模板包括空格,則必須被引用
模板后的所有字符串被看作文件名,不影響原文件內容
常用參數(shù):
-a:將二進制文件以text文件的形式查找數(shù)據(jù)
-c:計算找到的字符串模板的次數(shù),不會輸出與字符串模板符合的那一行內容,僅
輸出次數(shù)
-i:忽略大小寫
-n:輸出時將行號一起輸出
-v:反向選擇,將沒有字符串模板的那一行輸出
--color=auto:將搜索到的字符串模板部分加上顏色(一般為默認,無需設置)
精確查找:
在字符串模板后面加上"\>"就可以讓字符串的查找更精確,如:
要查找"546",如果還存在"5462"、"5468",那么執(zhí)行命令grep "546"就會將"5462"和"5468"
都找出來,但是我們只想要"546",這個時候就可以這樣grep "546\>"。
linux必須掌握的命令2.sed
-----------------sed---------------------------
工作方式:以行為單位,對數(shù)據(jù)的每一行進行替換、刪除、新增、選取等操作,不
能對單行進行操作
常用參數(shù):
-n:安靜模式,當要求把選取的特定行打印出來時,就會使用這個參數(shù),保證不會
重復輸出特定行,如果不加這個參數(shù),一般是將每行重復輸出兩次再輸出下一特定
行
-f:直接將sed的動作寫入一個文件內,加上-f filename時就可以執(zhí)行filename中的
sed動作,注意:filename中不能加單引號或雙引號,如果動作本來是'2a Hello',則
在filename中應該只寫上2a Hello,什么都不要加
-r:可以讓sed的操作支持擴展正則表達式(sed默認是基礎正則表達式)
-i:直接修改讀取的文件內容,不會由屏幕輸出(危險!!!雖然貌似sed可以做vim的一些動作了)
linux必須掌握的命令3.awk
-----------------awk------------------------------
工作方式:相比于sed處理一行一行的數(shù)據(jù),awk處理的是一行中的各個字段的處理,
它的每一個動作用"{}"包含,同樣所有動作都要放在一對單引號中,這樣的話它的動
作里不允許再出現(xiàn)單引號,只能用雙引號代替,它的默認字段分隔符為空格或制表鍵
注意它與grep、sed的比較!!!
常用功能:
NF:每一行擁有的字段總數(shù),可用print直接打印
NR:當前處理的行號,也可用print直接打印
FS:當前的分隔符,默認為空格或制表鍵,設置方法"BEGIN {FS=":"}",這樣就可以以
冒號為字段分隔符了,分為$1,$2,$3......,在/etc/passwd文件中比較有用
awk支持條件判斷
linux必須掌握的命令4.sort
-----------------sort------------------------
工作方式:根據(jù)選定的排序方式對整個文件數(shù)據(jù)進行排序輸出,可以字母、數(shù)字、
一定區(qū)間內的排序輸出,還可以反向輸出
常用參數(shù):
-f:忽視大小寫(和grep的-i參數(shù)功能一樣,為什么同樣的功能,參數(shù)要整得不一樣唉)
-b:忽視每行開頭的空格符,b可以記為blank,-b就減掉blank
-M:以月份的名字來排序,在瀏覽文件的時候就可以用這個參數(shù)來按時間排序輸出
-n:以數(shù)字排序(默認為文字類型排序),n可以記為number
-r:反序并輸出,r可以記為reverse
-u:uniq命令的功能,將重復行輸出一行即可
-t:分隔符(默認為tab鍵),修改方法-t ':',這樣就可以改為以冒號來分隔了,在
/etc/passwd有用,和awk的FS設置類似
-k:以哪一個區(qū)間來進行排序,通常結合-t,當需要被排序的內容是以tab鍵來分隔的
就不提了,若是想/etc/passwd以冒號分隔的話,就需要用-t來修改分隔符,然后-k再加
要被作為排序標準的字段符
linux必須掌握的命令5.wc
-----------------wc-------------------------
工作方式:將整個文件的字數(shù)、行數(shù)、字符數(shù)進行統(tǒng)計,當然也可以用grep或sed提出
特定行來統(tǒng)計特定行的字數(shù)等
常用參數(shù):
-l:僅列出行數(shù),line
-w:僅列出字數(shù)(單詞數(shù)),word
-m:僅列出字符數(shù)(是不是該用-c,和wc、characterize對應嘛。。。)
如果只是執(zhí)行wc而不加上任何參數(shù),那么將會列出所有信息,依次為:行數(shù)、字數(shù)、
字符數(shù)
linux必須掌握的命令6.find
----------------find-----------------------
工作方式:在整個磁盤中直接查找符合條件的文件,如果磁盤過大的話,會耗費很多
時間,還有一種查找文件的命令:whereis,它會在系統(tǒng)提供的數(shù)據(jù)庫中查找文件,
速度很快,但是系統(tǒng)數(shù)據(jù)庫一般是不會及時更新的,所以要查找最新的文件時,要先
執(zhí)行updatedb,否則將不會找到文件(不過更新數(shù)據(jù)庫應該會很耗時吧。。。)
常用參數(shù):
『
-atime:按照文件被讀取的時間來查找
-mtime:按照文件內容被修改的時間來查找
-ctime:按照文件權限和屬性白修改的時間按來查找
上面三個參數(shù)為時間參數(shù),后面加上數(shù)字才行,如:
-atime n:在n天之前“一天內”被讀取過的文件,第n天前到第n+1天的一天的時間
-atime -n:在n天之內(含n天)被讀取過的文件,從現(xiàn)在到第n天前的所有時間
-atime +n:在n天之前(不含n天)被讀取過的文件,就是減去上面兩個時間段的剩
下的時間
還有一個時間參數(shù):
-newer file:file為一個已存在的文件,顧名思義,查找比file要新的文件
』
『
和用戶/用戶組有關的參數(shù):
-uid n:用戶ID為n的文件
-gid n:用戶組ID為n的文件
-user name:用戶帳號為name的文件
-group name:用戶組帳號為name的文件
-nouser:所有者不再/etc/passwd中的文件,可以找到一些異常文件
-nogroup:所屬用戶組不存在的文件
』
『
和文件權限及名稱有關的參數(shù):
-name filename:名為filename的文件
-size [+-]SIZE:查找比SIZE要大(+)或小(-)的文件,單位有c(字節(jié))、k(1024
字節(jié))
-type TYPE:查找TYPE類型的文件,類型就是表示權限的第一個字符,常見的有d,-,l...
-perm [+-]mode:利用權限來查找,mode表示權限必須剛好相等,+mode表示包含任一
(3個一組)權限即可,-mode表示必須全部包含mode的權限(貌似不怎么好記。。)
』
『
擴展參數(shù):
-exec command:exec后面接命令,這個命令可以對find到的結果進行處理,聽著有點
兒類似于管道命令啊,但是它后面接的命令的形式比較固定,假如我們找到了名為file
的文件,我們想要利用exec來瀏覽這個文件內容,這個時候必須這么寫命令:
[html] view plain copy print?
$ find -name file -exec cat {} \;
{}表示查找到的內容,\是用來消除;在命令中的特殊意義的,它代表exec執(zhí)行到;結束
-print:默認的操作,不用加上。。。
』
『
等等,find還有一個特殊功能,就是通過inode號碼查找文件,這個功能可以解決一個
文件名里帶來空格的文件的刪除,如Hello World文件名,如果用rm的話,它會將這個文件
誤認為兩個文件而不停的報錯,這個時候就需要找到這個文件的inode號碼,利用find的擴展
參數(shù)來刪除它,命令如下:
[html] view plain copy print?
$ ls -i | grep 'Hello World'
假如查到inode為142542的話,進行下一個命令:
[html] view plain copy print?
$ find -inum 142542 -exec rm {} \;
帶有空格的文件名的文件就會被刪除了。
』
linux必須掌握的命令7.tar
----------------------tar---------------------------
工作方式:對文件或目錄進行壓縮,查看壓縮包內容,對壓縮包的一個或全部的文件進行
解壓,這個完全可以和winRAR對照理解。這只是一個最常用的壓縮命令之一,通常,以這
個命令進行壓縮的文件命名為*.tar.bz2最好,利于區(qū)別于其他其他壓縮命令產生的壓縮包
常用參數(shù):
-c:新建壓縮文件
-t:查看壓縮文件中的文件名
-x:解壓文件,搭配-C在特定的目錄中解壓
-j:通過bzip2進行壓縮/解壓,最好命名為*.tar.bz2
-z:通過gzip進行壓縮/解壓,最好命名為*.tar.gz
-v:壓縮/解壓中顯示正在壓縮的文件名
-f filename:filename為要被處理的文件(每個tar命令都要加上這個參數(shù)才行的!!!)
-C direction:前面提過,可在特定的direction中解壓
-p:允許備份數(shù)據(jù)中含有根目錄(小寫)
-P:保留文件權限和屬性(大寫)
注意:tar有三個功能:解壓、壓縮、查看壓縮文件,這三個功能不能同時進行,也就是說
-c、-t、-x不同一起出現(xiàn)在同一個命令參數(shù)中
(利用這個刪除命令可以將練習的壓縮包、解壓的目錄等刪除:rm -r filename,當然也可以
刪除目錄,由于解壓文件中含有目錄時,可能用rmdir不好使,因為目錄應該還會有東西)
linux必須掌握的命令8.chmod
--------------chmod----------------------------
工作方式:修改文件或目錄的權限(在Linux中極其重要滴!!)
常用參數(shù):
-R:遞歸性的持續(xù)修改,當你想要把一個目錄下的所有目錄或文件一起修改權限時,這個
參數(shù)就很有用了(這個參數(shù)在chown、chgrp中也有類似的功能,chmod與這兩個在系統(tǒng)安全上很重要)
具體修改權限的方法:
(1)利用rwx直接修改:"u=rwx,g=rx,o=rx"或"a+x".......
(2)利用數(shù)字修改:"777"或"644"等等
linux必須掌握的命令9.netstat
---------------netstat--------------------
工作方式:用于網絡監(jiān)控,輸出網絡和系統(tǒng)自己的進程兩部分
常用參數(shù):
-a:all的意思,也就是把所有的連接、監(jiān)聽、socket數(shù)據(jù)都列出來
-t:列出tcp網絡數(shù)據(jù)包的數(shù)據(jù)
-u:列出udp網絡數(shù)據(jù)包的數(shù)據(jù)
-n:以端口號代替進程的服務名稱顯示
-l:列出目前正在網絡監(jiān)聽的服務
-p:列出該網絡服務的進程PID
linux必須掌握的命令10.ln
--------------ln----------------
工作方式:建立與已有文件或目錄的連接,分軟連接和硬連接兩種,軟連接類似于Windows下
的快捷方式,只保存一個源文件的指向,占用空間小,硬連接是通過文件系統(tǒng)的inode連接來
產生新文件名,不會產生新文件,兩個文件同步,權限、屬性神馬的全一樣。
常用參數(shù):
-s:創(chuàng)建軟連接(默認為硬連接)
-f:如果目標文件存在時,就主動將目標文件直接刪除后再創(chuàng)建
linux必須掌握的命令11.kill
----------------kill----------------
工作方式:殺掉后臺進程,先執(zhí)行jobs命令,根據(jù)第一列顯示的數(shù)字來殺掉進程,如:
kill -9 %2,就會強制終止第二個進程。
常用參數(shù):
-l:字母l,顯示可以使用的信號,和下面的數(shù)字參數(shù)有關
-2:與[ctrl+c]等效
-9:立刻強制刪除一個工作
-15:以正常的程序方式終止一項工作,是正常終止,與-9不同滴
linux必須掌握的命令12.ps
----------------ps-------------------
工作方式:查詢系統(tǒng)正在運行的進程,比jobs命令顯示得更全面
常用查詢:
ps -l:查看與自己相關的bash的進程
ps aux:查看所有系統(tǒng)運行的程序
,......,在/etc/passwd文件中比較有用awk支持條件判斷
linux必須掌握的命令4.sort
-----------------sort------------------------
工作方式:根據(jù)選定的排序方式對整個文件數(shù)據(jù)進行排序輸出,可以字母、數(shù)字、
一定區(qū)間內的排序輸出,還可以反向輸出
常用參數(shù):
-f:忽視大小寫(和grep的-i參數(shù)功能一樣,為什么同樣的功能,參數(shù)要整得不一樣唉)
-b:忽視每行開頭的空格符,b可以記為blank,-b就減掉blank
-M:以月份的名字來排序,在瀏覽文件的時候就可以用這個參數(shù)來按時間排序輸出
-n:以數(shù)字排序(默認為文字類型排序),n可以記為number
-r:反序并輸出,r可以記為reverse
-u:uniq命令的功能,將重復行輸出一行即可
-t:分隔符(默認為tab鍵),修改方法-t ':',這樣就可以改為以冒號來分隔了,在
/etc/passwd有用,和awk的FS設置類似
-k:以哪一個區(qū)間來進行排序,通常結合-t,當需要被排序的內容是以tab鍵來分隔的
就不提了,若是想/etc/passwd以冒號分隔的話,就需要用-t來修改分隔符,然后-k再加
要被作為排序標準的字段符
linux必須掌握的命令5.wc
-----------------wc-------------------------
工作方式:將整個文件的字數(shù)、行數(shù)、字符數(shù)進行統(tǒng)計,當然也可以用grep或sed提出
特定行來統(tǒng)計特定行的字數(shù)等
常用參數(shù):
-l:僅列出行數(shù),line
-w:僅列出字數(shù)(單詞數(shù)),word
-m:僅列出字符數(shù)(是不是該用-c,和wc、characterize對應嘛。。。)
如果只是執(zhí)行wc而不加上任何參數(shù),那么將會列出所有信息,依次為:行數(shù)、字數(shù)、
字符數(shù)
linux必須掌握的命令6.find
----------------find-----------------------
工作方式:在整個磁盤中直接查找符合條件的文件,如果磁盤過大的話,會耗費很多
時間,還有一種查找文件的命令:whereis,它會在系統(tǒng)提供的數(shù)據(jù)庫中查找文件,
速度很快,但是系統(tǒng)數(shù)據(jù)庫一般是不會及時更新的,所以要查找最新的文件時,要先
執(zhí)行updatedb,否則將不會找到文件(不過更新數(shù)據(jù)庫應該會很耗時吧。。。)
常用參數(shù):
『
-atime:按照文件被讀取的時間來查找
-mtime:按照文件內容被修改的時間來查找
-ctime:按照文件權限和屬性白修改的時間按來查找
上面三個參數(shù)為時間參數(shù),后面加上數(shù)字才行,如:
-atime n:在n天之前“一天內”被讀取過的文件,第n天前到第n+1天的一天的時間
-atime -n:在n天之內(含n天)被讀取過的文件,從現(xiàn)在到第n天前的所有時間
-atime +n:在n天之前(不含n天)被讀取過的文件,就是減去上面兩個時間段的剩
下的時間
還有一個時間參數(shù):
-newer file:file為一個已存在的文件,顧名思義,查找比file要新的文件
』
『
和用戶/用戶組有關的參數(shù):
-uid n:用戶ID為n的文件
-gid n:用戶組ID為n的文件
-user name:用戶帳號為name的文件
-group name:用戶組帳號為name的文件
-nouser:所有者不再/etc/passwd中的文件,可以找到一些異常文件
-nogroup:所屬用戶組不存在的文件
』
『
和文件權限及名稱有關的參數(shù):
-name filename:名為filename的文件
-size [+-]SIZE:查找比SIZE要大(+)或小(-)的文件,單位有c(字節(jié))、k(1024
字節(jié))
-type TYPE:查找TYPE類型的文件,類型就是表示權限的第一個字符,常見的有d,-,l...
-perm [+-]mode:利用權限來查找,mode表示權限必須剛好相等,+mode表示包含任一
(3個一組)權限即可,-mode表示必須全部包含mode的權限(貌似不怎么好記。。)
』
『
擴展參數(shù):
-exec command:exec后面接命令,這個命令可以對find到的結果進行處理,聽著有點
兒類似于管道命令啊,但是它后面接的命令的形式比較固定,假如我們找到了名為file
的文件,我們想要利用exec來瀏覽這個文件內容,這個時候必須這么寫命令:
[html] view plain copy print?
$ find -name file -exec cat {} \;
{}表示查找到的內容,\是用來消除;在命令中的特殊意義的,它代表exec執(zhí)行到;結束
-print:默認的操作,不用加上。。。
』
『
等等,find還有一個特殊功能,就是通過inode號碼查找文件,這個功能可以解決一個
文件名里帶來空格的文件的刪除,如Hello World文件名,如果用rm的話,它會將這個文件
誤認為兩個文件而不停的報錯,這個時候就需要找到這個文件的inode號碼,利用find的擴展
參數(shù)來刪除它,命令如下:
[html] view plain copy print?
$ ls -i | grep 'Hello World'
假如查到inode為142542的話,進行下一個命令:
[html] view plain copy print?
$ find -inum 142542 -exec rm {} \;
帶有空格的文件名的文件就會被刪除了。
』
linux必須掌握的命令7.tar
----------------------tar---------------------------
工作方式:對文件或目錄進行壓縮,查看壓縮包內容,對壓縮包的一個或全部的文件進行
解壓,這個完全可以和winRAR對照理解。這只是一個最常用的壓縮命令之一,通常,以這
個命令進行壓縮的文件命名為*.tar.bz2最好,利于區(qū)別于其他其他壓縮命令產生的壓縮包
常用參數(shù):
-c:新建壓縮文件
-t:查看壓縮文件中的文件名
-x:解壓文件,搭配-C在特定的目錄中解壓
-j:通過bzip2進行壓縮/解壓,最好命名為*.tar.bz2
-z:通過gzip進行壓縮/解壓,最好命名為*.tar.gz
-v:壓縮/解壓中顯示正在壓縮的文件名
-f filename:filename為要被處理的文件(每個tar命令都要加上這個參數(shù)才行的!!!)
-C direction:前面提過,可在特定的direction中解壓
-p:允許備份數(shù)據(jù)中含有根目錄(小寫)
-P:保留文件權限和屬性(大寫)
注意:tar有三個功能:解壓、壓縮、查看壓縮文件,這三個功能不能同時進行,也就是說
-c、-t、-x不同一起出現(xiàn)在同一個命令參數(shù)中
(利用這個刪除命令可以將練習的壓縮包、解壓的目錄等刪除:rm -r filename,當然也可以
刪除目錄,由于解壓文件中含有目錄時,可能用rmdir不好使,因為目錄應該還會有東西)
linux必須掌握的命令8.chmod
--------------chmod----------------------------
工作方式:修改文件或目錄的權限(在Linux中極其重要滴!!)
常用參數(shù):
-R:遞歸性的持續(xù)修改,當你想要把一個目錄下的所有目錄或文件一起修改權限時,這個
參數(shù)就很有用了(這個參數(shù)在chown、chgrp中也有類似的功能,chmod與這兩個在系統(tǒng)安全上很重要)
具體修改權限的方法:
(1)利用rwx直接修改:"u=rwx,g=rx,o=rx"或"a+x".......
(2)利用數(shù)字修改:"777"或"644"等等
linux必須掌握的命令9.netstat
---------------netstat--------------------
工作方式:用于網絡監(jiān)控,輸出網絡和系統(tǒng)自己的進程兩部分
常用參數(shù):
-a:all的意思,也就是把所有的連接、監(jiān)聽、socket數(shù)據(jù)都列出來
-t:列出tcp網絡數(shù)據(jù)包的數(shù)據(jù)
-u:列出udp網絡數(shù)據(jù)包的數(shù)據(jù)
-n:以端口號代替進程的服務名稱顯示
-l:列出目前正在網絡監(jiān)聽的服務
-p:列出該網絡服務的進程PID
linux必須掌握的命令10.ln
--------------ln----------------
工作方式:建立與已有文件或目錄的連接,分軟連接和硬連接兩種,軟連接類似于Windows下
的快捷方式,只保存一個源文件的指向,占用空間小,硬連接是通過文件系統(tǒng)的inode連接來
產生新文件名,不會產生新文件,兩個文件同步,權限、屬性神馬的全一樣。
常用參數(shù):
-s:創(chuàng)建軟連接(默認為硬連接)
-f:如果目標文件存在時,就主動將目標文件直接刪除后再創(chuàng)建
linux必須掌握的命令11.kill
----------------kill----------------
工作方式:殺掉后臺進程,先執(zhí)行jobs命令,根據(jù)第一列顯示的數(shù)字來殺掉進程,如:
kill -9 %2,就會強制終止第二個進程。
常用參數(shù):
-l:字母l,顯示可以使用的信號,和下面的數(shù)字參數(shù)有關
-2:與[ctrl+c]等效
-9:立刻強制刪除一個工作
-15:以正常的程序方式終止一項工作,是正常終止,與-9不同滴
linux必須掌握的命令12.ps
----------------ps-------------------
工作方式:查詢系統(tǒng)正在運行的進程,比jobs命令顯示得更全面
常用查詢:
ps -l:查看與自己相關的bash的進程
ps aux:查看所有系統(tǒng)運行的程序