shell是一個命令解釋器,提供用戶和機器以前的交互shell
命令歷史
按向上的方向鍵一個個出現以前命令歷史
history 查看以前的命令
命令歷史存在文件.bash_history
文件最大行數由變量HISTSIZE決定,默認1000
變量HISTSIZE可在/etc/profile中修改
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
設置時間顯示,非永久有效,若要一直有效,須要在/etc/profile中增長
chattr +a ~/.bash_history 永久保存命令(chattr +a只能增長不能刪除)
!! 上一條命令
![char] 最近char開頭的命令
!n 前第n條命令bash
命令補全
當命令開頭打出一部分,如'mk',tab鍵補全命令和文件目錄名,若結果不惟一,須要連續按兩下,會列出全部以mk開頭的命令ide
通配符
* 任意數量任意字符
? 1個任意字符
[0-9] 任意一個數字 [2345] 2345任一
[a-z] a-z任意一個
[A-Z] A-Z任意一個
[0-9a-zA-Z]任一數字或字母
{1,3,t,y,H} 枚舉式選一個,中間用逗號隔開.net
輸入輸出重定向
[contents or cmd] > [file] 將左邊內容(正確)重定向到右邊文件,覆蓋文件原有內容
[contents or cmd] >> [file] 將左邊內容(正確)重定向到右邊文件,不覆蓋文件原有內容,追加
[contents or cmd] 2> [file] 將左邊內容(錯誤)重定向到右邊文件,覆蓋文件原有內容
[contents or cmd] 2>> [file] 將左邊內容(錯誤)重定向到右邊文件,不覆蓋文件原有內容,追加
[contents or cmd] &> [file] 將左邊全部內容重定向到右邊文件,覆蓋文件原有內容
[contents or cmd] &>> [file] 將左邊全部內容重定向到右邊文件,不覆蓋文件原有內容,追加
[contents or cmd] > [file1] 2>[file2] 正確和錯誤內容分別輸出到不一樣文件
[cmd] < [file] 將文件內容輸入到命令裏(左邊不能是文件)3d
管道符
管道符: [cmd] | [cmd] 將左邊命令結果輸出到右邊
cut 截取字符
-d '[xx]' 以xx爲分隔符
-f n,m 截取第n和m位
-c 指定第幾個字符
sort 排序
-n 以數字排序(其餘符號識別爲0)
-r 逆序
wc 統計字符
-l 行數
-m 字符數
-w 詞數(根據空格來分隔,不是真的認單詞)
uniq 去重(要先排序使相同行相鄰才能去重)
-c 統計重複次數
tee 至關於>,可是要加上|管道符,以及會顯示出來
-a 追加
tr 替換字符
split 切割
-b 大小(默認單位字節)
-l 行數blog
做業控制
ctrl + z 暫停任務
fg n 回到(第n個)暫停命令
jobs 查看中止或後臺運行的任務
bg 把任務放到後臺運行(暫停後能夠用)
命令後加' &' 直接把命令放到後臺運行排序
變量
env 查看系統變量
自定義變量,c未定義,所以無內容
unset [變量名] 撤銷變量定義
變量命名:由數字、字母、下劃線組成,首位不能是數字
變量值中有特殊符號時,要用單引號括起來
單引號、雙引號和反引號的區別,在另外一塊看到的http://blog.csdn.net/iamlaosong/article/details/54728393字符串
bash 進入子shell
進入子shell後 exit退出此shell
通常定義變量不跨shell
export [變量名]=[變量值] 此定義能夠用在當前shell的子shellcmd
環境變量配置文件
/etc/profile 登陸後加載
/etc/bashrc執行shell加載
用戶目錄下的是:
~/.bashrc
~/.bash_profile
~/.bash_history
~/.bash_logout 定義用戶退出時要進行的操做
變量PS1,在/etc/profile中定義,表示命令前字符串格式
W的大小寫對應當前路徑顯示完整與否it