2015-02-12

Ubuntu 在多個終端機的上同步 history

阿舍習慣同時用同一個帳開很多個 Terminal(終端機) 來執行不同的工作,所以,阿舍有時候就會發生一種情況,就是在這個 Terminal 上打了一長串指令後,在另一個 Termianl 上也需要用到類似的一長串指令,阿舍之前的作法是,就用複製貼上的方式來解決,不過,遇到一次要跑好幾個這樣的指令的時候,就得要把視窗切來切去,不是很理想哩 !



後來,阿舍才發現,善用 history 使用的 .bash_history 檔案可以大大的解決阿舍的這個問題哩 ! 這個 hsitory 指令會把執行過的歷史指令在登出的時候寫到 .bash_history 檔案裡,然後,登入的時候再把它讀出來,這樣使用者才可以查的到之前執行過的歷史指令哩 !
家目錄下可以找到 history 的記錄檔

可是,因為只有登出的時候才會寫到 .bash_history 檔案,所以,當阿舍開多個終端機時,由於還沒有登出,也沒有重新登入,因此,不管那個終端機做了什麼,誰的指令記錄都不會出現在誰的 history 裡,好了,為達成可以在不同的終端機出現別的終端機的指令,那麼阿舍就一邊先登出,另一邊再登出登入好了 ... 有要這麼拙嗎 ?

其實,history 指令是有二個選項可以解決阿舍的需要的,只是,阿舍查錯 Man Page 了,用 man history 查到的,並不是 history 指令哩 ! 所以,阿舍就遲遲沒發現有這二個選項囉 !

這二個選項分別是要 history 馬上把歷史記錄寫到 .bash_history 檔案的 -a 選項和立即重新讀取 .bash_profile 檔案內容的 -n 選項,所以,阿舍只要在 A 終端機執行 -a 選項,在其它的終端機執行 -n 選,這樣,就可以同步所有終端機的 history 內容囉 !

# A 終端機
history -a

#其它終端機
history -n

最後,再提一下,也許你的歷史記錄的檔名不叫做 .bash_history,你可以用下面指令來查一下它的名字,不過,不論是什麼檔名,都不影響上面二個指令的執行結果哩 ! ...

echo $HISTFILE



[+] Ubuntu 指令新手會用到的35個技法 - 這是以阿舍的使用經驗編寫出來的電子書,三天內應該就看的完,學的起來哩 ! 有空就參考一下囉 ! ... ^^=

關於阿舍

好文不藏私,請多分享囉!! ^^=



沒有留言 :

張貼留言

如果留言後,發現留言不見了,這通常是因為 Goolge 把它認為是垃圾留言了,請用信件通知阿舍調整 ( ayubiz@gmail.com )。謝謝 !