xshell 常用命令


一、grep 命令
(1)命令格式
grep [選項] pattern [file]
(2)常用參數
參數 描述
-c 計算找到 '搜尋字符串'(即 pattern) 的次數
-i 忽略大小寫的不同,所以大小寫視為相同
-n 輸出行號
-v 反向選擇,打印不匹配的行
-r 遞歸搜索
--color=auto 將找到的關鍵詞部分加上顏色顯示
(3)常用范例
例一:將/etc/passwd 文件中出現 root 的行取出來,關鍵詞部分加上顏色顯示,可以使用如下命令:
grep "root" /etc/passwd --color=auto
cat /etc/passwd | grep "root" --color=auto
例二:將/etc/passwd 文件中沒有出現 root 和 nologin 的行取出來,可以使用如下命令:
grep -v "root" /etc/passwd | grep -v "nologin"
例三:在當前目錄下遞歸搜索文件中包含 main()的文件,經常用於查找某些函數位於哪些源代碼文件中,可以使用如下命令:
grep -r "main()".
2.3 正則表達式與 grep 命令
正則表達式元字符由以下字符組成:
^ $ . [ ] { } - ? * + ( ) | \
(1)常用范例
例一:利用 Linux 系統自帶的字典查找一個五個字母的單詞,第三個字母為 j,最后一個字母為 r ,/usr/share/dict 目錄下存放字典文件,可以使用如下命令:
grep '^..j.r$' linux.words
例二:驗證固定電話,打印符合條件的電話,固定電話格式基本都是帶有 0 的區號+連接符“-”+電話號碼,另外還有可能有分機號,區號有 3 位、4 位,電話號碼有 7 位和 8 位的,可以使用如下命令:
grep "^0[0-9]{2,3}-[0-9]{7,8}(-[0-9]{3,4})?$" telphone.txt
區號:前面一個 0,后面跟 2-3 位數字 : 0[0-9]{2,3}
電話號碼:7-8 位數字: [0-9]{7,8}
分機號:一般都是 3-4 位數字: [0-9]{3,4}
注意執行下面的命令時沒有任何匹配輸出,這是因為沒有加-E 選項,那例一沒加為什么可以呢,這是因為 grep 把.當成 shell 通配符,不是正則表達式的元字符。
 
二、tail 命令
tail 命令主要用於顯示指定文件末尾內容。常用查看日志文件。
(1)命令格式
tail [選項] [文件]
(2)常用參數
參數 描述
-f 循環讀取
-q 不顯示處理信息
-v 顯示詳細的處理信息
-c<字節> 顯示的字節數
-n<行數> 顯示行數
(3)常用范例
例一:顯示 shiyanlou.log 文件中的最后 5 行內容,可以使用如下命令:
tail -n 5 shiyanlou.log
例二:顯示 shiyanlou.log 文件中的最后 5 行內容,當 shiyanlou.log 文件有新內容增加,自動更新顯示。可以使用如下命令:
tail -n 5 -f shiyanlou.log
ping www.shiyanlou.com >> shiyanlou.log 這條命令作用是,ping 遠程主機,並將信息追加到 shyanlou.log 文件中。& 的作用是將這條命令放在后台執行,這樣 shiyanlou.log 文件就會一直有內容增加。說明一下,linux 下執行 ping 命令會一直執行,必須手動停止才行。而 windows 下執行 ping 命令時,發送一定請求后會自動停止。
使用 tail 命令的-f 選項可以即時輸出文件變化后追加的內容,tail -f filename 會把 filename 里最尾部的內容顯示在屏幕上,並且不但刷新,使你看到最新的文件內容。
另外順便說一下怎么查看后台正在運行的任務及怎么停止任務。
jobs 命令可以查看正在后台運行的任務。kill 命令可以殺死一個任務,但要使用任務的 id。任務的 id 可以通過 ps 命令查看獲得
2.5 cat 命令
cat 命令的功能是將文件或標准輸入組合輸出到標准輸出。這個命令常用來顯示文件內容,或者將幾個文件連接起來顯示,或者從標准輸入讀取內容並顯示,它常與重定向符號配合使用。
cat 命令是 concatenate 的縮寫。
(1)命令格式
cat [選項] [文件]
(2)常用參數
-A --show-all 等價於 -vET
-b --number-nonblank 對非空輸出行編號
-e 等價於 -vE
-E --show-ends 在每行結束處顯示 $
-n --number 對輸出的所有行編號,由 1 開始對所有輸出的行數編號
-s --squeeze-blank 有連續兩行以上的空白行,就代換為一行的空白行
-t 與 -vT 等價
-T --show-tabs 將跳格字符顯示為 ^I
-u (被忽略)
-v --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
(3)常用范例
例一:把 shiyanlou.log 的文件內容加上行號后輸入 zhou.log 這個文件里,可以使用如下命令:
cat -n shiyanlou.log > zhou.log
例二:把 shiyanlou.log 的文件內容加上行號后輸入 zhou.log 這個文件里,多行空行換成一行輸出,可以使用如下命令:
cat -ns shiyanlou.log > zhou.log
例三:將 zhou.log 的文件內容反向顯示,可以使用如下命令:
tac zhou.log
說明:tac 是將 cat 反寫過來,所以它的功能就跟 cat 相反,cat 是由第一行到最后一行連續顯示在屏幕上,而 tac 則是由最后一行到第一行反向在屏幕上顯示出來。
三、find 命令(一)
find 命令主要作用是沿着文件層次結構向下遍歷,匹配符合條件的文件,並執行相應的操作。
(1)命令格式
find [選項] [搜索路徑] [表達式]
默認路徑是當前目錄,默認表達式為-print。
表達式可能由下列成份組成:操作符、選項、測試表達式以及動作。
(2)常用參數
-print find 命令將匹配的文件輸出到標准輸出
-exec find 命令對匹配的文件執行該參數所給出的 shell 命令
-name 按照文件名查找文件
-type 查找某一類型的文件
-prune 使用這一選項可以使 find 命令不在當前指定的目錄中查找,如果同 時使用-depth 選項,那么-prune 將被 find 命令忽略
-user 按照文件屬主來查找文件
-group 按照文件所屬的組來查找文件
-mtime -n +n 按照文件的更改時間來查找文件,-n 表示文件更改時間距現在小於 n天,+n 表示文件更改時間距現在大於 n 天,find 命令還有-atime 和 -ctime 選項
其他命令命令選項及表達式可參見下圖。
(3)常用范例
例一:打印當前目錄下的文件目錄列表 ,可以使用如下命令:
find . -print
例二:打印當前目錄下所有以.txt 結尾的文件名 ,可以使用如下命令(截圖只顯示部分):
find . -name "*.txt" -print
-iname 選項跟-name 選項作用一樣,不同在於-iname 會忽略字母大小寫。
例三:打印當前目錄下所有以.txt 或.pdf 結尾的文件名 ,可以使用如下命令(截圖只顯示部分):
find . \( -name "*.pdf" -or -name "*.txt" \)
例四:打印當前目錄下所有不以.txt 結尾的文件名 ,可以使用如下命令:
find . ! -name "*.txt"
 find 命令(二)
下面將介紹如何根據文件類型、權限、所有者及操作符來查找匹配文件。
根據文件類型來查找文件,使用-type 選項,常見 find 文件類型見下表。
根據文件權限查找文件,使用-perm 選項。所有者使用-user 選項。
另外,find 命令可以通過邏輯操作符來創建更復雜的邏輯關系,例如 find 命令(一)中的例三就使用了操作符-or。find 命令的邏輯操作符見下表。
(1)常用范例
例一:打印當前目錄下所有以.txt 結尾的符號鏈接 ,可以使用如下命令:
find . -type l -name "*.txt" -print
例二:打印當前目錄下所有權限為 777 的 php 文件(web 服務器上的 php 文件一般需要執行權限),可以使用如下命令:
find . -type f -name "*.php" -perm 777
例三:打印當前目錄下 root 用戶擁有的所有文件,可以使用如下命令:
find . -type f -user root
例四:打印當前目錄下權限不是 777 和 664 的所有文件,可以使用如下命令:
find . -type f \( ! -perm 777 -and ! -perm 644 \)
find 命令(三)
下面將介紹如何使用 find 命令的-exec 選項來實現對查找到的文件執行指定的動作命令
(1)常用范例
例一:找到當前目錄下所有 php 文件,並顯示其詳細信息,可以使用如下命令:
find . -name "*.php" -exec ls -l {} \;
-exec 是 find 命令對找到的文件執行的動作,這個動作就是對找到的文件執行命令,上面的命令就是 ls -l {}。在這里說明一下{}和\;,{}其實它就是一個占位符,在 find 命令的執行過程中會不斷地替換成當前找到的文件,相當於”ls -l 找到的文件”。而\;是-exec 的命令結束標記,因為規定-exec 后面的命令必須以;結束,但;在 shell 中有特殊含義,必須要轉義,所以寫成\;。
例二:在實驗樓環境中有很多自己編寫的 c 語言代碼文件,現在想要把所有 c 語言代碼文件下載下來,如果一個一個的下載很麻煩,我們可以先查找到所有的 c 語言代碼文件,然后將這些文件內容寫入到一個文件中,下載該文件,可以使用如下命令:
find . -name "*.c" -exec cat {} \; > all.c
例三:默認下,-exec 后面只能使用單個命令,如果想要多個命令,可以將多個命令寫入腳本文件中,然后在-exec 中使用這個腳本,可以使用如下命令:
find . -name "*.c" -exec ./command.sh {} \;
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM