指令:基本的計算機操作,例如:加法、減法等
程序:指令的集合,一般有執行屬性。看作:菜譜
進程:是程序的實例,是程序執行的過程。看作:按照菜譜進行做菜的過程
查看進程:
ps -ef
cat的工作原理:接受輸入,然後完整輸出。輸入什麼內容,cat就會輸出什麼內容。
輸入、輸出:
程序的默認輸入設備,叫標準輸入。 stdin 鍵盤 0
程序的默認輸出設備,叫標準輸出。 stdout 監視器 1
程序的默認錯誤輸出設備,叫標準錯誤輸出。stderr 監視器 2
輸出重定向 >、>>、>|:
把輸入內容輸出到其他地方。
>:COMMOND > FILE 覆蓋重定向
例如: ls / > /tmp/ls.txt
默認覆蓋掉>指定文件的內容,
可以使用 set -C 關閉覆蓋功能。set +C打開覆蓋功能。
>>:COMMOND >> FILE 追加重定向
>|:COMMOND >| FILE 強勢覆蓋重定向(忽略set -C設置)
輸入重定向:
<:COMMOND < FILE
例如:tr ‘a-z’ ‘A-Z’ < /etc/passwd
<<:heredoc
<<EOF
AAAAAAAAA
CCCCCCC
EOF
錯誤輸出重定向:
COMMOND 2> FILE
COMMOND 2>> FILE
正確/錯誤輸出重定向:
COMMOND > FILE 2> FILE2 正確的信息輸出到FILE中,錯誤的輸出到FILE2中
COMMOND > FILE 2> &1
COMMOND &> FILE
COMMOND >& FILE
管道:
把第一個命令的輸出當做第二個命令的輸入,管道值傳遞正確的信息。
連接左右兩個命令,將左側的命令的標準輸出,作爲右側命令的標準輸入
COMMOND | COMMOND2 | COMMOND3
command >file: 標準輸出重定向到一個文件,錯誤仍然輸出屏幕
command >>file: 標準輸出重定向到一個文件(追加)
command 1>file1: 標準輸出重定向到一個文件
command 2>>file2:標準錯誤重定向到一個文件(追加)
command 1>file 2>&1:標準輸出和標準錯誤一起重定向到一個文件
command>>file 2>&1: 標準輸出和標準錯誤一起重定向到一個文件(追加)
echo命令介紹
功能說明:顯示文字。
語 法:echo [-ne][字符串] / echo [–help][–version]
補充說明:echo會將輸入的字符串送往標準輸出。輸出的字符串間以空白字符隔開, 並在最後加上換行號。
參 數:
-n 不要在最後自動換行
-e 打開反斜槓ESC轉義。若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出:
\a 發出警告聲;
\b 刪除前一個字符;
\c 最後不加上換行符號;
\f 換行但光標仍舊停留在原來的位置;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\ 插入\字符;
\nnn 插入nnn(八進制)所代表的ASCII字符;
-E 取消反斜槓ESC轉義 (默認)
-help 顯示幫助
-version 顯示版本信息
xargs命令介紹
xargs 是一個強有力的命令,它能夠捕獲一個命令的輸出,然後傳遞給另外一個命令,下面是一些如何有效使用xargs 的實用例子。
當你嘗試用rm 刪除太多的文件,你可能得到一個錯誤信息:/bin/rm Argument list too long. 用xargs 去避免這個問題
find ~ -name ‘*.log' -print0 | xargs -0 rm -f
獲得/etc/ 下所有*.conf 結尾的文件列表,有幾種不同的方法能得到相同的結果,下面的例子僅僅是示範怎麼實用xargs ,在這個例子中實用 xargs將find 命令的輸出傳遞給ls -l
find /etc -name "*.conf" | xargs ls –l
假如你有一個文件包含了很多你希望下載的URL, 你能夠使用xargs 下載所有鏈接
cat url-list.txt | xargs wget –c
查找所有的jpg 文件,並且壓縮它
find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
拷貝所有的圖片文件到一個外部的硬盤驅動
ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory
grep
數據提取程序
用途:在文件中查找並顯示包含指定字符串的行
格式:grep [選項]... 字符 目標文件
-i:查找時忽略大小寫
-v:反轉查找,輸出與模式不相符的行
-w:按整字查找
-n:顯示符合模式要求的行號
-r:遞歸搜索所有文件
模式
^….:以什麼開頭
…..$:以什麼結尾
# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
或
# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
wc(字數統計)命令
格式:wc [選項]… 目標文件…
-l:統計行數
-w:統計字數 (前後都是空白的一組字符)
-c:統計字符數(可見和不可見的字符)
seq
seq [選項]... 尾數
seq [選項]... 首數 尾數
seq [選項]... 首數 增量 尾數
選項
-f, --format=格式 使用printf 樣式的浮點格式
-s, --separator=字符串 使用指定字符串分隔數字(默認使用:\n)
-w, --equal-width 在列前添加0 使得寬度相同
#seq -f"%3g" 9 11
9
10
11
%後面指定數字的位數 默認是%g,%3g那麼數字位數不足部分是空格。
seq -s"`echo -e "/t"`" 9 11
tr命令
tr(選項)(參數)
-c或——complerment:取代所有不屬於第一字符集的字符;
-d或——delete:刪除所有屬於第一字符集的字符; -
s或--squeeze-repeats:把連續重複的字符以單獨一個字符表示;
-t或--truncate-set1:先刪除第一字符集較第二字符集多出的字符。
將輸入字符由大寫轉換爲小寫:
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world
使用tr刪除字符:
echo "hello 123 world 456" | tr -d '0-9‘
hello world
cat text | tr ‘\t’ ’ ‘
tr SET1 SET2
用SET2中的字符替換掉SET1中同一位置的字符
使用tr刪除字符
tr -d SET
刪除與SET相同的字符
echo 123456 | tr -d 345
tr -d '[0-9]’ < /etc/hosts
echo “Tom, I hear a pig!” | tr -d '[a-z]'
使用tr壓縮字符
tr -s SET
將連續相同的字符壓縮成一個字符
echo 112233444555666 | tr -s 345
r -s SET1 SET2
先替換爲SET2再壓縮
echo 112233444555666 | tr -s 345 abc
echo 112233444555666 | tr 345 abc | tr -s abc
sort命令
默認按每行的第一個字符排序
-n:按整數進行排序
-r:遞減排序
指定排序鍵
指定按哪一列數據進行排序
-k:指定哪一列爲排序鍵
cat tt | sort -n -k4
指定字段分隔符
-t:指定字段分割符(默認是空格)
sort -t: -n -k3 /etc/passwd
uniq命令
刪除經過排序後的數據的重複記錄
通常和sort連用
sort -n tt | uniq
數據的實例統計
-c:顯示文件中每行連續出現的次數
cat tt | uniq -c
-u:只顯示不重複的行
cat tt | uniq –u
-d:只顯示重複的行
cat tt | uniq -d
cut命令
從文本文件或者文本流中提取文本列
cut -選項 提取範圍 文本文件
-c:從指定提取範圍中提取字符
-f:從指定提取範圍中提取字段
提取範圍
n:第n項
n-:第n項到行尾
-m:行首到第m項
n,m:第n項和第m項
n-m:第n項到第m項
cut -c命令
ls -l | cut -c 10
who | cut -c 20-40
cut -c -10 /etc/passwd
cut -f命令
-d:指定分隔符默認是Tab
cut -d “:” -f 1,7 /etc/passwd
who | cut -d ' ' -f1,6
diff命令
比較兩個文件之間的差異
輸出結果爲兩個文件的不同之處
diff命令的輸出格式
舊版本diff
-u:統一格式
-r: 遞歸比較目錄下的所有文件
利用diff命令生成補丁
diff -u test1 test2 > test.patch
patch命令:
用途:用來打補丁修補文件
格式:patch [選項] 原始文件 < 補丁文件
-pN: N表示忽略N層路徑
-R: 還原到老版本