配置別名 :[root@www ~]# alias lm='ls -al | more'
刪除別名 :[root@www ~]# unalias lm
檢視所有別名 :[root@www ~]# alias
[root@www ~]# history [n]
[root@www ~]# history [-c]
[root@www ~]# history [-raw] histfiles
選項與引數:
n :數字,意思是『要列出最近的 n 筆命令列表』的意思!
-c :將目前的 shell 中的所有 history 內容全部消除
-a :將目前新增的 history 命令新增入 histfiles 中,若沒有加 histfiles ,
則預設寫入 ~/.bash_history
-r :將 histfiles 的內容讀到目前這個 shell 的 history 記憶中;
-w :將目前的 history 記憶內容寫入 histfiles 中!
範例一:列出目前記憶體內的所有 history 記憶
[root@www ~]# history
# 前面省略
1017 man bash
1018 ll
1019 history
1020 history
# 列出的資訊當中,共分兩欄,第一欄為該命令在這個 shell 當中的**,
# 另乙個則是命令本身的內容喔!至於會秀出幾筆命令記錄,則與 histsize 有關!
範例二:列出目前最近的 3 筆資料
[root@www ~]# history 3
1019 history
1020 history
1021 history 3
範例三:立刻將目前的資料寫入 histfile 當中
[root@www ~]# history -w
# 在預設的情況下,會將歷史紀錄寫入 ~/.bash_history 當中!
[root@www ~]# echo $histsize
1000
當我們以 bash 登陸 linux 主機之後,系統會主動的由家目錄的
~/.bash_history 讀取以前曾經下過的命令,那麼 ~/.bash_history 會記錄幾
筆資料呢?這就與你 bash 的 histfilesize 這個變數配置值有關了!
假設我這次登陸主機後,共下達過 100 次命令,『等我登出時, 系統就會將
101~1100 這總共 1000 筆歷史命令公升級到 ~/.bash_history 當中。』 也就是
說,歷史命令在我登出時,會將最近的 histfilesize 筆記錄到我的紀錄檔案當中啦!
當然,也可以用 history -w 強制立刻寫入的!那為何用『公升級』兩個字呢? 因為
~/.bash_history 記錄的筆數永遠都是 histfilesize 那麼多,舊的資訊會被主
動的拿掉! 僅保留最新的!
[root@www ~]# !number
[root@www ~]# !command
[root@www ~]# !!
選項與引數:
number :執行第幾筆命令的意思;
command :由最近的命令向前搜尋『命令串開頭為 command』的那個命令,並執行;
[root@www ~]# history
66 man rm
67 alias
68 man history
69 history
[root@www ~]# !66 <==執行第 66 筆命令
[root@www ~]# !! <==執行上乙個命令,本例中亦即 !66
[root@www ~]# !al <==執行最近以 al 為開頭的命令(上頭列出的第 67 個)
同一賬號同時多次登陸的 history 寫入問題
a. 當同時開好幾個 bash 介面,會有 ~/.bash_history 的寫入問題。因為這些 bash 在同時以 root(或使用者) 的身份登陸, 因此所有的 bash 都有自己的 1000 筆記錄在記憶體中。因為等到登出時才會公升級記錄檔案,所以囉, 最後登出的那個 bash 才會是最後寫入的資料。唔!如此一來其他 bash 的命令操作就不會被記錄下來了 (其實有被記錄,只是被後來的最後乙個 bash 所覆蓋公升級了) 。b. 由於多重登陸有這樣的問題,所以很多朋友都習慣單一 bash 登陸,再用工作控制 (job control, 第四篇會介紹) 來切換不同工作! 這樣才能夠將所有曾經下達過的命令記錄下來,也才方便未來系統管理員進行命令的 debug 啊!
無法記錄時間
歷史命令還有乙個問題,那就是無法記錄命令下達的時間。由於這 1000 筆歷史命令是依序記錄的, 但是並沒有記錄時間,所以在查詢方面會有一些不方便。如果讀者們有興趣,其實可以透過 ~/.bash_logout 來進行 history 的記錄,並加上 date 來新增時間引數,也是乙個可以應用的方向喔! 有興趣的朋友可以先看看情境模擬題一吧!
Bash Shell學習筆記四
set commond 將位置引數設定為後面的命令輸出 shell命令中 在 後面的語句將會不再解釋後面的 cal 萬年曆 bc 計算器 histsize 歷史大小 random 隨機數 basename pathname 去除路徑字首的最後部分 空變數 1 1 沒有賦值或申明的變數 1 1 字元變...
Bash Shell學習筆記一
1.在linux中執行指令碼檔案時 以 執行的 或者普通方式 輸入檔名 執行時是啟動子shell執行的,所以,一切環境變數設定在推出後失效 因此在指令碼中設定 path將失效,如果一定要以指令碼方式來設定,需要 空格 檔名或者 source 指令碼檔案的形式執行.2.linux中的 和 雙引號和單引...
學習記錄(三)
new出來的空間都會給個預設值 基本型別預設值是0,引用型別預設值是null,布林型別預設值是false 方法內的new沒給預設值的確沒有,物件內沒給會有預設值 陣列的資料空間是連續的,申請的時候預設連續 一般連續放資料,但比如桶排序會不按順序放入 導線互相匯聚,網路通過電訊號傳播 電壓,高電壓1,...