linux命令詳解

一、cat主要有三大功能:

1.一次顯示整個文件。$ cat filename
2.從鍵盤創建一個文件。$ cat > filename (只能創建新文件,不能編輯已有文件)
3.將幾個文件合併爲一個文件: $cat file1 file2 > file

參數:
-n 或 --number 由 1 開始對所有輸出的行數編號
-b 或 --number-nonblank 和 -n 相似,只不過對於空白行不編號
-s 或 --squeeze-blank 當遇到有連續兩行以上的空白行,就代換爲一行的空白行
-v 或 --show-nonprinting


二、echo [-n](-n 不換行)

   \a 發出警告聲;
   \b 刪除前一個字符;
   \c 最後不加上換行符號;
   \f 換行但光標仍舊停留在原來的位置;
   \n 換行且光標移至行首;
   \r 光標移至行首,但不換行;
   \t 插入tab;
   \v 與\f相同;
   \\ 插入\字符;
   \nnn 插入nnn(八進制)所代表的ASCII字符;
–help 顯示幫助
–version 顯示版本信息


三、tr:用來從標準輸入中通過替換或刪除操作進行字符轉換。tr主要用於刪除文件中控制字符或進行字符轉換。使用tr時要轉換兩個字符串:字符串1用於查詢,字符串2用於處理各種轉換。tr剛執行時,字符串1中的字符被映射到字符串2中的字符,然後轉換操作開始。


cat /etc/passwd | tr 'a-z' 'A-Z' :將passwd文件小寫轉大寫

cat /etc/passwd | tr 'abc'  'cba' :將abc轉化爲cba

cat /etc/passwd | tr '0-9'  'a-z'  :將數字0-9轉化爲a-z(順序)

cat /etc/passwd | tr -d '\n' :將換行符刪除

cat /etc/passwd | tr -s 'a-z' :將中間重複數字刪除

cat /etc/passwd | tr -d '' :將中間空格刪掉


四、cut是一個選取命令,就是將一段數據經過分析,取出我們想要的.

-b :以字節爲單位進行分割。這些字節位置將忽略多字節字符邊界,除非也指定了 -n 標誌。
-c :以字符爲單位進行分割。
-d :自定義分隔符,默認爲製表符。
-f :與-d一起使用,指定顯示哪個區域。
-n :取消分割多字節字符。僅和 -b 標誌一起使用。如果字符的最後一個字節落在由 -b 標誌的 List 參數指示的<br />範圍之內,該字符將被寫出;否則,該字符將被排除。


cat /etc/passwd | cut -b 1,2,3,4 :取passwd文件前四個字節輸出

cat -b xx 2 :列出第二個字節

cat -c xx 2 :列出第二個字符(中文)

cat -nb xx 2 :不拆開字符串的第二個字符串

cat -nc xx 2 :不拆開字符的第二個


五、sort是在Linux裏非常常用的一個命令,管排序。

sort -u xx :刪除重複後排序

sort xx | uniq :跟sort -u一樣

sort /etc/passwd :從首字符向後,依次按ASCII碼值進行比較,最後將他們按升序輸出

sort -r xx :降序排列

sort xx -o xx :將排序後輸入到原文件,避免重複

sort -n xx :按照數值排序

sort -n -k 2 -t : xx :指定間隔符爲:,根據第二列開始排


六、tee實現一個輸入兩個輸出。

    -a或--append  附加到既有文件的後面,而非覆蓋它.
   -i-i或--ignore-interrupts  忽略中斷信號

cat xx | tee xx1 :將xx輸出寫入到xx1

cat xx | tee -a xx1 :將xx輸出附到xx1後面


七、grep文本過濾命令。

grep 'cpu' /proc/cpuinfo  :到cpuinfo文件中過濾有cpu字符信息

grpe -v 'cpu' /proc/cpuinfo :反向匹配未含cpu字符的行

ifconfig | grep 'inet addr' | cut -d : -f2 :取ifconfig過濾信息第二個字段

grep --color=auto 'cpu' /proc/cpuinfo :將匹配到的字符加粗

grep '^root' /etc/passwd :匹配root開頭的行

grep 'root$' xx :匹配以root結尾的行

grep -i 'root' xx :不區分大小寫匹配root行

grep -c 'bin' /etc/passwd = grep 'bin' /etc/passwd | wc -l :統計匹配行數

grep -n 'root' /etc/passwd :列出匹配的行及行號

grep '[123].' /etc/passwd :匹配1,2,3開頭且是兩個數字的行

grep '^[^58]' xx :匹配開頭不是58的行

grep 'r.t' /etc/passwd :匹配r與t之間有一個字符的行

grep 'r*t' /etc/passwd :匹配r與t之間任意個字符的行

grep 'r.*t' /etc/passwd :匹配r與t之間

grep -n 'o\{2\}' xx :匹配有重複o的行

grep -n 'o\{2,\}' xx :匹配有重複o兩個及以上的行

grep -n 'o\{2,5\}' xx :匹配o在2-5個之間的行


八、sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操作;編寫轉換程序等。

sed '2d' xx :刪除xx文件第二行輸出

sed '2,$d' xx :刪除xx文件第二行至行尾

sed '/apple/'d xx :刪除xx含有apple的行

sed '2a hehe' xx :在第二行後添加“hehe”

sed '2i hehe' xx :在第二行前添加“hehe”

sed '2a hehe\

haha' xx :添加換行

sed '2,3c haha' xx :將2-3行替換爲haha

sed -n '2,3p' xx :只打印2-3行(-n取消默認打印)

sed 's/xx/oo/g' x.txt :將x文件中的xx替換爲oo

sed -i '$a #This is my first sed practice' xx :在xx行尾插入一行文字

sed -i 's/root/toor/g' xx :將xx文件中的root替換爲toor

sed -i /"web_name"/ a\ "$date" $config :在文件中前面加入web_name (a\爲追加命令)

詳解:http://www.cnblogs.com/edwardlost/archive/2010/09/17/1829145.html


九、awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯。

awk '{pattern + action}' {filenames}

last -n 5 | awk '{print $1}' :顯示最近登錄的5個賬戶

cat /etc/passwd | awk -F ':' '{print $1}' :顯示用戶名

cat /etc/passwd | awk -F ':' '{print $1 "\t" $3}' :顯示用戶名和對應shell,tab鍵隔開

cat /etc/passwd | awk -F ':' 'BEGIN{print "name" "\t" "shell"} {print $1 "\t" $3} END{print END}' :在顯示的時候插入首句和尾句

awk -F ':' '/root/{print $7}' /etc/passwd :顯示含有root行的shell

awk '{count++;print $0;} END{print "user count is",count}' /etc/passwd :統計用戶數並輸出

這裏沒有初始化count,雖然默認是0,但是妥當的做法還是初始化爲0:

awk 'BEGIN {count=0;print "[start]user count is ", count} {count=count+1;print $0;} END{print "[end]user count is ", count}' /etc/passwd

統計某個文件夾下的文件佔用的字節數

ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}'

如果以M爲單位顯示:

ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size/1024/1024,"M"}'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章