Day9-1 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條命令 -
命令補全
當命令開頭打出一部分,如‘mk‘,tab鍵補全命令和文件目錄名,若結果不唯一,需要連續按兩下,會列出所有以mk開頭的命令 -
通配符
- 任意數量任意字符
? 1個任意字符
[0-9] 任意一個數字 [2345] 2345任一
[a-z] a-z任意一個
[A-Z] A-Z任意一個
[0-9a-zA-Z]任一數字或字母
{1,3,t,y,H} 枚舉式選一個,中間用逗號隔開
- 任意數量任意字符
- 輸入輸出重定向
[contents or cmd] > [file] 將左邊內容(正確)重定向到右邊文件,覆蓋文件原有內容
[contents or cmd] >> [file] 將左邊內容(正確)重定向到右邊文件,不覆蓋文件原有內容,追加
[contents or cmd] 2>> [file] 將左邊內容(錯誤)重定向到右邊文件,不覆蓋文件原有內容,追加
[contents or cmd] &> [file] 將左邊所有內容重定向到右邊文件,覆蓋文件原有內容
[contents or cmd] &>> [file] 將左邊所有內容重定向到右邊文件,不覆蓋文件原有內容,追加
[contents or cmd] > [file1] 2>[file2] 正確和錯誤內容分別輸出到不同文件
[cmd] < [file] 將文件內容輸入到命令裏(左邊不能是文件)
-
管道符
管道符: [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 行數 -
作業控制
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的子shell
環境變量配置文件
/etc/profile 登錄後加載
/etc/bashrc執行shell加載
用戶目錄下的是:
~/.bashrc
~/.bash_profile
~/.bash_history
~/.bash_logout 定義用戶退出時要進行的操作
變量PS1,在/etc/profile中定義,表示命令前字符串格式
W的大小寫對應當前路徑顯示完整與否
- 特殊符號
$ 變量前綴
; 多條命令寫在一行用分號分隔
~ 用戶家目錄
& 放在命令後面,表示把命令放到後臺
[] 指定字符中的一個
|| 兩條命令間,第一條命令執行失敗,才執行後面命令
&& 兩條命令間,第一條命令執行成功,才執行後面命令
Day9-1 shell基礎