more類似cat,不過more不是將整個文件內容從上到下顯示在屏幕上的,而是以一頁一頁的顯示方便使用者逐頁閱讀。more最基本的指令就是space即往下翻一頁,b即往回翻一頁顯示,而且還有搜索字符串的功能
+n:從第n行開始顯示
-n:定義屏幕大小為n行
+/pattern:在每個檔案顯示前搜索該字符串patern,然後從該字符串前兩行之後顯示
-p:通過清除窗口而不是滾屏來對文件進行換頁,與-c選項相似
-s:把連續的多個空行顯示為一行
-u:把文件內容中的下劃線去掉
常用操作命令:
Enter:向下n行,需要定義,默認為1行
空格鍵:向下滾動一屏
b:向上滾動一屏
=:輸出當前行號
V:調用vi編輯器
q:退出more
例如:
more +3 log1.log:從第3行起顯示log1.log裡面的內容
more +/day3 log1.log:從文件中查找第一個出現'day3'的字符串的行,並從該行前兩行開始顯示輸出
more -5 log1.log:設定每屏顯示行數
ls -l | more -5:more常與別的命令連用,一般是因為某些命令輸出的內容太多,所以使用more來分頁顯示
which在PATH變量指定的路徑中,搜索某個系統命令的位置,並返回第一個搜索結果。即,which命令可以看到某個系統命令是否存在以及執行的到底是哪一個位置的命令
find用於在文件樹中查找文件並作相應的處理
-name:按照文件名查找文件
-perm:按照文件權限查找文件
-user:按照文件屬主來查找文件
-group:按照文件所屬的組來查找文件
-mtime<-n><+n>:按照文件更改時間來查找文件,-n表示n天之內,+n表示n天以前
-newer file1 file2:查找更改時間在file1和file2之間的文件
例如:
find -mtime -2:查找48小時修改過的文件
find -name "*.log":查找當前目錄以"*.log"結尾的文件
find /opt/soft/test -perm 777:查找指定目錄下權限為777的文件
find -type f -name "*.log":查找當前目錄下以".log"結尾的普通文件
find -type d | sort:查找當前所有目標目錄並排序
chmod用於改變Linux系統文件或目錄的訪問權限
-f:錯誤信息不輸出
-c:當發生改變時,報告處理信息
-R:處理執行目錄及其子目錄下所有文件
-v:運行時顯示詳細處理信息
<權限范圍>+<權限設置>:使權限范圍內的目錄或文件具有指定權限
<權限范圍>-<權限設置>:刪除權限范圍內的目錄或文件的指定權限
<權限范圍>=<權限設置>:設置權限范圍內的目錄或文件的權限為指定的值
權 限 范 圍 權 限 代 號u:目錄或文件的當前用戶 r:讀,代號為4g:目錄或文件的當前群組w:寫,代號為2o:其他用戶或群組 x:執行,代號為1a:所有用戶和群組 -:刪除,代號為0s:特權權限例如:chmod a+x log1.log:設定文件log1.log所有用戶或群組都有執行權限
chmod ug+x,o-x log1.log:同時設定不同的用戶權限
chmod u=x log1.log:撤銷用戶原有對log1.log的權限並設定為x
chmod -R u+x test4:遞歸地給test4下所有文件與子目錄分配執行權限
chmod 751 file:給file、屬主分配讀、寫、執行權限,給所在組分配讀、執行權限,其他用戶分配執行權限
tar用來壓縮和解壓文件,tar本身不具備壓縮功能,它是調用壓縮功能實現的
-c:建立新的壓縮文件
-d:記錄文件差別
-r:添加文件到已壓縮的文件中
-x:從壓縮的文件中提取文件
-t:顯示壓縮的文件內容
-z:支持gzip解壓文件
-v:顯示操作過程
-f:指定壓縮文件
例如:
tar -cvf log.tar log1.log:僅把log1.log打包成log.tar,不壓縮
tar -zcvf log.tar.gz log1.log:把log1.log打包成log.tar.gz,並指出gzip壓縮
tar -ztvf log.tar.gz:查閱log.tar.gz中的內容,因log.tar.gz是以gzip壓縮的,所以要加上z
tar -zcvf log30.tar.gz log1.log log2.log:把多個文件打包壓縮成一個文件
tar -zxvf log30.tar.gz log2015.log:把log30.tar.gz中的log2015.log解壓出來
diff比較單個文件或目錄內容,如果指定比較的是文件,則只有當輸入為文本文件時才有效。以逐行的方式,比較文本文件的異同處。如果指定的是目錄,diff命令會比較兩個目錄下名字相同的文本文件,列出不同的二進制文件、公共子目錄和只在一個目錄下出現的文件。
-b:不檢查空格字符的不同
-B:不檢查空白行
-i:不檢查大小寫的不同
-q:只顯示有無差別,不現實詳細信息
-y:以並排方式顯式文件的異同處
-w:在使用參數-y時,指定欄寬
例如:
diff log1.log log2.log:比較兩個文件,輸出結果比如"3c3"和"8c8"表示兩個文件在第三行和第8行有所不同,"11,12d10"表示第一個文件比第二 個文件多了第11行、第12行。diff命令的normal格式模式顯示三種提示,即a-add、c-change、d-delete
diff test3 test4:比較test3和test4兩個文件夾的不同
diff log1.log log2.log -y -w 50:並排輸出,並制定欄寬為50
grep用於過濾/搜索指定字符串。可以使用正則表達式,能配合多種命令使用
-A:顯示符合的行及之後的內容
-B:顯示符合的行及之前的內容
-C:顯示符合的行及前後的內容
-c:計算符合的行數目
-i:忽略大小寫
規則表達式
^:'^grep'表示匹配所有以grep開頭的行
$:'grep$'表示匹配所有以grep結尾的行
.:'gr.p'表示匹配'gr'後面接任意字符然後是'p'
*:'*grep'表示匹配一個或多個空格後緊跟grep的行
[]:[Gg]rep表示匹配Grep與grep
[^]:[^A-FH-Z]rep表示匹配不以A-F、H-Z開頭並緊跟rep的行
例如(grep命令大多數時候多要和別的命令一起使用才有意義):
ps -ef | grep -c SVN:查找指定的進程的個數
cat test.txt | grep -f test2.txt:從text2.txt中讀取關鍵字後在test.txt中搜索
cat test.txt | grep nf text2.txt:從text2.txt中讀取關鍵字後在text.txt中搜索並顯示行號
grep 'linux' text.txt test2.txt:從多個文件中搜索關鍵字'linux'
cat test.txt | grep -E 'ed|at':顯示包含ed或at的行
ps用來列出系統中運行的那些進程
Linux中的進程狀態有:
狀 態含 義R運行:正在運行或在運行隊列中等待S中斷:休眠中,受阻D不可中斷:收到信號不喚醒和不可運行,進程必須等待直至有中斷發生Z僵死:進程已終止T停止:進程收到SIGSTOP、SIGSTP、SIGSIN、SIGSOU信號後停止運行-A:顯示所有進程-e:等同於-A
-c:顯示進程的真實名稱
-f:顯示程序間的關系
例如:
ps -u root:顯示root的進程信息
ps -ef:顯示所有進程信息連同其命令行
ps -ef | grep ssh:ps常與grep連贏來顯示特定進程
ps -l:將目前屬於自己登錄的pid與相關信息列出來
ps aux:列出目前所有的在內存中的進程
netstat用於顯示各種網絡相關信息,如網絡連接、路由表、接口狀態、多播成員等
netstat輸出:
ProtoRecv-QSend-QLocal AddressForeign AddressState指協議,有tcp、udp、unix等接收隊列發送隊列本機地址遠程地址狀態-a:顯示所有選項-t:僅顯示tcp選項
-u:僅顯示udp選項
-n:不顯示主機別名,能顯示數字的全部顯示數字
-r:顯示路由信息、路由表
-s:按各種協議進行統計
-l:僅列出LISTEN的服務狀態
例如:
netstat -at:列出所有tcp端口
netstat -lt:只列出所有監聽tcp的端口
netstat -s:顯示所有端口的統計信息
netstat -p:在輸出中顯示pid和進程名稱
uname獲取操作系統相關信息
-a:列出詳細信息,依次為內核名、主機名、內核版本號、內核版本、硬件名、處理器類型、硬件平台類型、操作系統名稱
-m:顯示主機CPU名
-n:顯示主機在網絡上的節點或網絡名
-r:顯示Linux操作系統內核版本號
-s:顯示Linux內核名稱
-v:顯示操作系統是第幾個version版本
-p:顯示處理器類型
-i:顯示硬件平台類型
-o:顯示操作系統名