[轉]Linux經常使用終端命令之cat、grep、echo

Linux經常使用終端命令之cat、grep、echo


這三個指令,每個都很經常使用,用法也都不少。做爲一個Linux初學者,我還不能很好的掌握三個命令的用法,因而先在這篇博客裏作一個簡單的整理和總結,以加深對三個指令的理解。javascript

grep

先說grep,linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是全部用戶。(摘抄過來的)php

grep的通常使用方法就是:grep+[options]+pattern+filenamecss

其中patter是要搜索的字符串或正則表達式。html

參數和正則表達式的字符含義以下:java

一、參數:
-i :忽略大小寫
-c :打印匹配的行數
-l :從多個文件中查找包含匹配項
-v :查找不包含匹配項的行
-n:打印包含匹配項的行和行標
二、RE(正則表達式)
\ 忽略正則表達式中特殊字符的原有含義
^ 匹配正則表達式的開始行
$ 匹配正則表達式的結束行
\< 從匹配正則表達式的行開始
\>; 到匹配正則表達式的行結束
[ ] 單個字符;如[A] 即A符合要求
[ - ] 範圍 ;如[A-Z]即A,B,C一直到Z都符合要求
. 全部的單個字符
* 全部字符,長度能夠爲0
python

明確要求搜索子目錄:grep -r
或忽略子目錄:grep -d skip
linux

若是有不少 輸出時,您能夠經過管道將其轉到’less’上閱讀:
$ grep magic /usr/src/Linux/Documentation/* | less
正則表達式

常見的示例有:objective-c

grep Aug /var/log/messages 在文件 ‘/var/log/messages’中查找關鍵詞」Aug」
grep ^Aug /var/log/messages 在文件 ‘/var/log/messages’中查找以」Aug」開始的詞彙
grep [0-9] /var/log/messages 選擇 ‘/var/log/messages’ 文件中全部包含數字的行
grep Aug -R /var/log/* 在目錄 ‘/var/log’ 及隨後的目錄中搜索字符串」Aug」
算法

結合選項就會有更豐富的應用。

cat

接着是cat的用法,在此我參考了http://blog.csdn.NET/jackalfly/article/details/7556848


cat命令是linux下的一個文本輸出命令,一般是用於觀看某個文件的內容的;
cat主要有三大功能:
1.一次顯示整個文件。
$ cat   filename
2.從鍵盤建立一個文件。
$ cat  >  filename
只能建立新文件,不能編輯已有文件.
3.將幾個文件合併爲一個文件。
$cat   file1   file2  > file
cat具體命令格式爲 : cat [-AbeEnstTuv] [--help] [--version] fileName
說明:把檔案串鏈接後傳到基本輸出(屏幕或加 > fileName 到另外一個檔案)
參數:
-n 或 –number 由 1 開始對全部輸出的行數編號
-b 或 –number-nonblank 和 -n 類似,只不過對於空白行不編號
-s 或 –squeeze-blank 當遇到有連續兩行以上的空白行,就代換爲一行的空白行
-v 或 –show-nonprinting
範例:
cat -n linuxfile1 > linuxfile2 把 linuxfile1 的檔案內容加上行號後輸入 linuxfile2 這個檔案裏
cat -b linuxfile1 linuxfile2 >> linuxfile3 把 linuxfile1 和 linuxfile2 的檔案內容加上行號(空白行不加)以後將內容附加到linuxfile3 裏。
範例:
把 linuxfile1 的檔案內容加上行號後輸入 linuxfile2 這個檔案裏
cat -n linuxfile1 > linuxfile2
把 linuxfile1 和 linuxfile2 的檔案內容加上行號(空白行不加)以後將內容附加到 linuxfile3 裏。
cat -b linuxfile1 linuxfile2 >> linuxfile3
cat /dev/null > /etc/test.txt 此爲清空/etc/test.txt檔案內容


 

對上面第三點作個補充說明:
cat   file1   file2  > file表示將file1和file2的內容串接後輸入到file文件中,若是已經存在,file文件被重寫。
cat   file1   file2  >>file 表示將file1和file2的內容串接後輸入到file文件中,若是已經存在,新內容追加在file文件原內容的後面。

cat <<EOF >file的用法:
將標準輸入的內容輸出到file中,若是是cat<<EOF>>file,則是追加到file中。
標準輸入已EOF結尾。(此處EOF表示用鍵盤打出的內容)
例如:


echo

關於echo命令,有一篇文章講得很清楚,http://hi.baidu.com/yajiu/item/87c25a0795be9b10cd34ea56
echo命令的功能是在顯示器上顯示一段文字,通常起到一個提示的做用。
該命令的通常格式爲: echo [ -n ] 字符串
其中選項n表示輸出文字後不換行;字符串能加引號,也能不加引號。用echo命令輸出加引號的字符串時,將字符串原樣輸出;用echo命令輸出不加引號的字符串時,將字符串中的各個單詞做爲字符串輸出,各字符串之間用一個空格分割。

功能說明:顯示文字。
語   法:echo [-ne][字符串]或 echo [--help][--version]
補充說明:echo會將輸入的字符串送往標準輸出。輸出的字符串間以空白字符隔開, 並在最後加上換行號。
參   數:-n 不要在最後自動換行
-e 若字符串中出現如下字符,則特別加以處理,而不會將它當成通常
文字輸出:
   \a 發出警告聲;
   \b 刪除前一個字符;
   \c 最後不加上換行符號;
   \f 換行但光標仍舊停留在原來的位置;
   \n 換行且光標移至行首;
   \r 光標移至行首,但不換行;
   \t 插入tab;
   \v 與\f相同;
   \\ 插入\字符;
   \nnn 插入nnn(八進制)所表明的ASCII字符;
–help 顯示幫助
–version 顯示版本信息

echo示例:
示例一 打印當前的PATH設置
[root@jfht ~]# echo $PATH 
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/apache/apache-ant-1.7.1/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

示例二 打印當前的LANG設置
[root@jfht ~]# echo $LANG 
zh_CN.GB18030
 
在/etc/profile的末尾加上
export LANG=zh_CN.GB18030
而後從新登陸便可。便可將linux默認語言變爲中文。

 
示例三 對輸出信息進行轉義,好比輸出換行
[root@jfht ~]# echo "hello\nworld" 
hello\nworld
[root@jfht ~]# echo -e "hello\nworld" 
hello
world
[root@jfht ~]# echo 'hello\nworld' 
hello\nworld
[root@jfht ~]# echo -e 'hello\nworld' 
hello
world
[root@jfht ~]# echo hello; echo world 
hello
world

 
示例五 輸出到標準錯誤輸出
在編寫腳本時,常常會利用管道將前一個命令的輸出做爲後一個命令的輸入,若是要打印調試信息,但不把該信息干擾後面的命令,能夠將調試信息輸出到標準錯誤輸出,以下所示。
[root@jfht ~]# echo hello >&2 
hello

示例來自連接:http://codingstandards.iteye.com/blog/786101

 

 
0
0
 
 
 

 

 
猜你在找
【直播】機器學習&數據挖掘7周實訓--韋瑋
【套餐】系統集成項目管理工程師順利通關--徐朋
【直播】3小時掌握Docker最佳實戰-徐西寧
【套餐】機器學習系列套餐(算法+實戰)--唐宇迪
【直播】計算機視覺原理及實戰--屈教授
【套餐】微信訂閱號+服務號Java版 v2.0--翟東平
【直播】機器學習之矩陣--黃博士
【套餐】微信訂閱號+服務號Java版 v2.0--翟東平
【直播】機器學習之凸優化--馬博士
【套餐】Javascript 設計模式實戰--曾亮

 

 

查看評論

  暫無評論

 
 
發表評論
  • 用 戶 名:
  • sharptools
        
* 以上用戶言論只表明其我的觀點,不表明CSDN網站的觀點或立場
 
 
快速回復 TOP
相關文章
相關標籤/搜索