常見Shell命令用法總結

常見命令用法總結 

-----  目錄:  ---

  1. 關於grep的總結  
  2. 關於egrep的總結  
  3. 關於tr的總結 
  4. 關於sort的總結  
  5. 關於uniq的總結  
  6. 關於cut的總結  
  7. 關於tee的總結  
  8. 關於split的總結
  9. 關於type的使用  
  10.  關於find的使用  
  11. 關於xargs的使用   



關於grep的總結
找出所需字符串的時候可用引號也能夠不用引號。 
grep bc test
grep "bc" test
grep 'bc' test

注:以上3中形式都能找出test文件中相對應含有字符串bc的行並打印出來。
比較經常使用的參數有;
-i, --ignore-case         忽略大小寫
-n, --line-number         print line number with output lines
-v, --invert-match        select non-matching lines 顯示不匹配的行
-h, --no-filename         suppress the prefixing filename on output查詢多文件時不顯示文件名
-l, --files-with-matches  print only names of FILEs containing matches查詢多文件時只顯示文件名
grep select * ,               列出當前目錄下全部包含select 字樣的文件名及含有select字樣的行。
grep -h select * ,          和上一條類似,但不顯示文件名稱。
grep -l select * ,           和第一條類似,但只顯示文件名。



 
二、關於egrep的總結
egrep 是擴充功能的grep
egrep ‘2|5’ 1.txt ,列出含有2或者5的行
egrep '12(@|3)' test 列出含有12且後面緊跟@或3的行




三、關於tr的總結

從標準輸入中替換、縮減和/或刪除字符,並將結果寫到標準輸出。 html

-s, --squeeze-repeats  若是匹配於SET1 的字符在輸入序列中存在連續的重複,在替換時會被統一縮爲一個字符的長度
tr test '12' '45' 將文件中的12替換爲45 
cat test |tr '[a-z]' '[A-Z]' 將文件中的小寫所有替換爲大寫
tr ' ' '\n' <test 把test文件中的全部空格替換爲換行
tr -s ' ' ' ' <test 把test文件中每行中連續出現的空格替換爲一個空格




四、關於sort的總結

sort [選項]... --files0-from=F  linux

串聯排序全部指定文件並將結果寫到標準輸出。 shell


-c, --check, --check=diagnose-first 檢查輸入是否已排序,若已有序則不進行操做
-r, --reverse 逆序輸出排序結果
 -n, --numeric-sort 根據字符串數值比較
-k, --key=位置1[,位置2] 在位置1 開始一個key,在位置2 終止(默認爲行尾)
 -u, --unique 配合-c,嚴格校驗排序;不配合-c,則只輸出一次排序結果




  五、關於uniq的總結
uniq對重複的行只保留一行。 【注意】對於處理字符長的時候通常先sort而後再uniq。
-c, --count 在每行前加上表示相應行目出現次數的前綴編號
-d, --repeated 只輸出重複的行



  
六、關於cut的總結
cut 主要的用途在於將一行裏面的數據進行分解,最常使用在分析一些數據或文字數據的時候!
這是由於有時候咱們會以某些字符看成分割的參數,而後來將數據加以切割,以取得咱們所須要的
數據。
cut  -d" " -f1  test 以空格爲分割符,並輸出第一列
last | cut -c1-20 //將 last 以後的數據,每一行的 1-20 個字符取出來








七、關於tee的總結
將數據輸出重定向到文件的時候,屏幕上就不會出現任何的數據!那麼若是咱們須要將數據同時
顯示在屏幕上跟檔案中呢?這個時候就須要 tee 這個指令。
last |tail |tee last.list | cut -d " " -f1 將last的最後10行寫進last。last文件並接着處理並輸出在屏幕。





八、關於split的總結
將大的文件分割成小的文件。
-l, --lines=數值 指定每一個輸出文件有多少行
-C, --line-bytes=大小 指定每一個輸出文件裏最大行字節大小



 
九、關於type的使用
type打印一個命令的絕對路徑
[guo@guo ~]$ type vim
vim is hashed (/usr/bin/vim)
[guo@guo ~]$ type perl
perl is /usr/bin/perl



  
十、關於find的使用
find /home/guo/  -name  test找出文件夾guo中的test文件
find / -name 「*apple* -print
find /home –name 「[!abc]」
find /home –name 「?[1-9]」
find / -type d(f b c l p)
find / -mtime -5 查找最後修改小於5天的文件
-mtime   文件修改時間//vi、echo修改文件會改變此文件時間
-atime  文件訪問時間//用cat、vi查看會改變此文件時間
-ctime   文件改變時間// vi 、echo修改文件、chmod、chown會改變此文件時間
stat fileanme    查看以上3個時間



  
十一、關於xargs的使用 

xargs從標準輸入中接受單詞列表的命令,並把這些單詞做爲參數傳遞給指定的命令 編程


ls |xargs rm//把ls列出的內容再經過rm刪除
能夠每次刪除一部分文件
ls |xargs –n 2 rm
ls | xargs –n 2 echo 「==>」
有時目錄裏文件太多了不能使用rm *刪除這時
ls | grep ‘^abc’ |xargs –n 20 rm



 
十二、關於bc的使用
bc命令:進行算術運算,但不限於整數運算
scale=4 //表示計算結果保留4位小數
bc還能夠用在shell變量賦值中
ABC=`echo 「scale=4;8/3」 | bc`
echo $ABC
  腳本編程 1.1.1.1 www.baidu.com 2.2.2.2 www.baidu.com 3.3.3.3. www.sina.com.cn 2.2.2.2 www.chinauxin.net 2.2.2.2 www.51cto.com 1.1.1.1 www.linuxtone.org 輸出 2.2.2.2 www.baidu.com,www.chinauxin.net,www.51cto.com 1.1.1.1 www.baidu.com,www.linuxtone.org 3.3.3.3. www.sina.com.cn  awk '{a[$1]=a[$1]" "$2}END{for(i in a)print i,a[i]}' file 建立html文件  ::cat 運維必備.html  |sed -e '/^$/d'|sed  -n  '2,$ s/^/\<br\>/p' |sed 's/$/\<\/br\>/' >a.html  內核、Shell、文件系統這三個部分構成了linux系統  合併兩個文件 paste 1 2|awk '{if($1 ~$2) print $1 ;else print $0}'   a=`date +"%Y-%m-%d  %H : %M : %S" -d "5 min ago"`
相關文章
相關標籤/搜索