Linux之Bash別名與歷史命令

承接上一章

命令別名的設置與取消 alias unalias

命令別名可以為自己經常使用到的命令自定義,更改為自己喜歡的名稱,也就是定製化,很神奇哦,特別是當你慣用指令特別長的時候,舉個例子來說,如果你需要查看隱藏文件,並且一頁一頁的翻看,就需要指令"ls -al | less"對於懶癌症患者來說,太長了,不想敲,畢竟懶是程序員追求的最高境界嗎,你可以自定義來簡化

Linux之Bash別名與歷史命令

這就是別名的意義,剛開始使用的時候不是很習慣,習慣了感覺來到了一個新的世界.

除此之外,相信大多數人都或多或少經歷或者親自"體驗"過 rm -rf /* 血案,是不是勾起你慘不忍睹的回憶了.alias可以幫你

alias rm="rm -i"

以後使用rm的時候會提醒你是否刪除,給你一個挽回血案發生的機會,這樣就不會誤刪了

查看當前終端有哪些別名 直接下達指令alias即可

Linux之Bash別名與歷史命令

如何取消別名呢

unalias命令 如果想要取消剛才的lm別名,執行unalias lm即可

歷史命令:history

前一章提過bash提供命令記憶功能,如何查詢歷史命名呢,有兩種方式,一種是查看 ~/.bash_history 文件,不過這裡看到的歷史命令是前一次登陸之前的,還有一種方式是執行history命令,什麼?history命令太長?alias h="history"

history用法:

history [n] history[-craw]

n:是列出最近幾筆命令的意思

-c: 是將shell中所有的history 內容全部清除(有效防止黑客攻擊)

-a: 將目前新增的 history 指令新增入 histfiles 中,若沒有加 histfiles ,

則默認寫入 ~/.bash_history

-r: 將 histfiles 的內容讀到目前這個 shell 的 history 記憶中;

-w: 將目前的 history 記憶內容寫入 histfiles 中!

示例 :

列出最近3筆記錄:history 3

立刻將目前的記錄寫入到histfile中: history -w

history不只是讓我們查詢使用還可以執行歷史命令

!number :number 是執行第幾個指令的意思

!command 執行最新的指令開頭為command的指令

!! 執行上一個指令

同一個賬號多次登錄history寫入問題

有些朋友在練習 linux 的時候喜歡同時開好幾個 bash 接口,這些 bash 的身份都是 root 。 這樣會有 ~/.bash_history 的寫入問題嗎?想一想,因為這些 bash 在同時以 root 的身份登陸, 因此所有的 bash 都有自己的 1000 筆記錄在內存中。因為等到登出時才會更新記錄文件,所以囉, 最後登出的那個 bash 才會是最後寫入的數據。唔!如此一來其他 bash 的指令操作就不會被記錄下來了 (其實有被記錄,只是被後來的最後一個 bash 所覆蓋更新了) 。


分享到:


相關文章: