一、命令及命令歷史
history:查看命令歷史,默認最多保留1000行,配置文件.bash_history
history-c可以清空歷史命令
!!:剛執行的上一個命令
!555:歷史命令555號再次執行
!vi:最近一次以vi開頭的命令再次執行
【插】
1.命令補全tab,tab-tab可以顯示以相同字符開頭的文件
2.alias永久生效,修改/root/.bashrc
如myssh=’ssh -i /root/.ssh/1.txt’
二、特殊符號
# :1.表示註釋 2.表示脫義(替換,查詢)
*:匹配任意長字符
?:匹配一個字符
>:重定向,將信息輸入到指定文件
>>:追加輸入
!:組合有!$(上一次命令的最後一個參數)
$ :1.表示結尾 2.表示引用變量 3.表示後臺任務 4.表示登錄方式爲普通用戶 5.*表示第幾字段(AWK)
;:表示命令之間的並列
~ :表示用戶的家目錄
^ :以字符開頭
| :管道符,上一次命令的輸出作爲下一命令的輸入
&:並且(見應用)
&&:前一個執行成功纔會執行下一個
|| :前一個執行不成功纔會執行下一個
【應用】
- 清空文件: > filename
- 察看文件:cat < 1.txt = cat 1.txt
- 發送以文件爲內容的郵件:mail -s "title" < 1.txt
- 生成日誌並輸入正確或錯誤的信息:sh x.sh > 1.log 2>1.log(或2>&1),1> 和 2> 分別表示正確或錯誤輸出的結果
- 按行顯示文件:ls |xargs
- 將an文件重名爲an.txt:ls a* | xargs -i mv {} {}.txt \
- 命令邏輯:1&&2(1成功執行2)、1||2(1或2或者12執行成功)、1;2(按照1->2的順序執行命令)
- 把命令執行放到後臺:./startserver.sh &
- 選擇字符範圍:[1,3] [1] [1-4]
三、作業控制
1、終止任務ctrl+c,暫停任務放置後臺ctrl+z,查看後臺任務jobs
2、切換任務
fg [id]:將後臺任務調至前臺執行
bg [id]:將前臺任務調至後臺
其中+-指程序的優先級,+最高,-其次
四、shell變量與環境變量
1、定義規則
Ø 系統變量通常是大寫字母的,如HOSTNAME、PS1,用戶變量一般爲小寫字母的
Ø 變量只能以字母和下劃線開頭,由數字、字母和下劃線命名,格式爲 parameter=value,用分號可以一次設置多個變量,如a=1;b=2
Ø 查看系統變量env,查看全部變量set
Ø 變量賦值只會作爲臨時變量,全局變量需要在變量名前加export,且變量可以在子shell中生效,使變量加入env中,使用unset取消此全局變量
2、引用規則
“”:雙引號中表示普通字符串,特殊符號會解析
‘’:去義成爲文本字符,強烈推薦使用
``:不去義,引用命令結果
【實例】
Ø a=1
b=`echo $a`
b=’echo $a’
Ø a=1;b=$a”123”à1123
c=$a$b à11123
b1=$a”$a”à11
b2=$a’$a’à1$a
Ø $(*)=’*’
Ø ` ` 反引號引用命令的結果
# rpm -qf `which vi`
vim-minimal-7.2.411-1.8.el6.x86_64
3、環境變量
四個文件:
系統級/etc/profile,/etc/bashrc
用戶級~/.bshrc,~/.bash_profile
profile文件在登錄後加載,bashrc在運行用戶shell環境執行,bashrc優先於profile。
【插】
Ø history長度定義HISTSIZE在/etc/profile裏;
Ø $PS1爲命令行前的提示用戶字段:
結構[\u@\h \W]\$ ,u=user,h=hostname,W表示相對路徑,表示絕對路徑,\$表示登錄的是root還是普通用戶;
Ø . ~/.bashrc指source ~/.bashrc,在shell中調用其他程序
五、shell的統計命令
1、cut 截取字段
-d 指定分隔符
-f 截取列
-c 截取字符位
範圍表示N N-M -MN- N,M
2、sort 排序
默認排序規則是ASCII碼
-t 指定分隔符
-k 排序的列
-n 按照數字順序排序
-r 反轉順序
-u unique,去除重複的行
[補充]
-d :按照字典順序排序
-h :按照文件大小順序排序
-M :按照文件月份順序排序
舉例:cut -d ‘:’-f3 [file]|sort -n
3、wc 統計
-c 輸出字節數
-m 輸出字符數
-l 輸出行數(包括空行)
-L 輸出最大行的長度,以字符計算(不包括cat -A的段落標記)
-w 輸出單詞數,單詞按照空格分隔計算
4、tee
作用:讀取標準輸出寫出到屏幕和指定文件
-a:append 追加寫入文件
例:cat -A4.txt |tee 1.log
5、tr 替換字符
例:tr ‘a-z’ ‘A-Z’小寫換成大寫
6、uniq = sort -u
-c:除去重複的行,顯示統計次數
7、split切割文件,常用於日誌
(1)分隔方式
-b:按大小切分
-l:按行分隔
(2)參數
-a :指定分隔文件以什麼開頭(不支持後綴)