打造舒適的家
一些便利的設定
許多指令裡面都會出現主機名稱, 打起來有點煩。 可以在 ~/.hosts 裡面放幾列如下的資料:
210.71.4.237 ftp.pws.stu.edu.tw 123.45.67.89 123.45.67.89
並且在 .bashrc 裡面加上一句: export HOSTFILE=~/.hosts
則下次再登入時, 命令列上任何地方, 只要打主機名稱的前幾個字元,
然後按 ESC
及 @, shell
就會自動把主機全名打出。 這叫 hostname completion。 詳見
bash(1)
在 vim 的 insert 模式裡面, backspace 鍵的倒退範圍很有限。 又, 搜尋字串 ("/" 或 "?" 鍵) 時, 找到的字串會變成黃色。 如果希望 backspace 鍵可以無限倒退, 又希望搜尋到的字串不要變色, 可以在 ~/.vimrc 裡面放兩列:
set backspace=indent,eol,start set nohlsearch
詳見 /usr/share/doc/vim-*/doc/usr_05.txt (可能有好幾個 vim-... 的目錄, 要找一下)
我自己經常下的指令有: vim, less -firs, lynx -image_links 所以在 ~/.bashrc 檔案中, 加上這幾句:
alias v=vim alias l='less -firs' alias x='lynx -image_links'
這樣下次再登入時, 可以用一個字母分別取代上述各指令。
怎麼讓不同的檔案顯示不同的顏色, 或是把既有的,
不喜歡的顏色設定改掉? 先看一下 ls 指令真正執行時的細節: type
ls
它目前的顏色設定: echo
$LS_COTAB
如果按 tab 鍵沒有反應,
就是這個 環境變數 environment variable 沒有定義。
最簡單的情況: 你的帳號的 ls 已經會顯示顏色, 這時只需要將
/etc/DIR_COLORS 拷貝回 ~/.dir_colors 並加以修改即可。 最自主的設定:
如上改好 ~/.dir_colors 並將這句話: eval $(dircolors
~/.dir_colors)
放入 ~/.bashrc 檔案中, 這樣下次再登入時,
就會生效了。 細節請見 dircolors(1) 及 ls(1), 還有
/etc/profile.d/alias.sh 裡面的指令。
備份習慣比備份工具更重要
養成經常備份的習慣, 比購買功能強大的備份軟體更重要。 仔細思考那些檔案是你花了很多心血製作出來的, 如果丟掉了會悔恨不已? 自己創作的文件/圖案/程式/聲音/... 等等都是; 至於下載回來的檔案, 就比較無所謂了。 ㄟ, 但是檔案下載點的網址也蠻重要的, 通常經過幾週以後, 會完全忘記自己當初是怎麼找到的。 還有, 上述各個 設定檔 configuration files 也都要花很多時間打造。 把這些檔案全部放在少數兩三個固定的目錄下; 不要 與其他下載自網路, 大型的檔案混在一起。 例如安排以下目錄:
- public_html/ 所有自己製作的網頁檔
- ws/ (work space) 所有其他重要檔案, 包含以下 子目錄 child
directories:
- config/ 所有設定檔
- bin/ 所有自己寫的 script (下詳)
- la/ 線性代數作業/筆記/...
- eng/ 英文課作業/筆記/...
- ...
設定好正確的權限, 並將自己修改過的設定檔搬進去, 再製作 symbolic link (相當於 Windows 下的捷徑) 以便從家目錄最上層也可以看得到這些設定檔:
cd ~ chmod 700 ws chmod 755 public_html ls -trla > modified.txt (編修 modified.txt, 留下最近修改的幾個設定檔名) mv $(cat modified.txt) ws/config ln -s ws/config/.[a-z]* .
再假設還有一個存放備份檔的目錄叫做 backup/ 那麼從此以後,
只要一兩個指令就可以把所有重要東西備份: cd ~; tar czf
backup/save.tgz ws public_html
為什麼一般人會覺得備份是一件大工程, 難得做一次; 等到事情發生時, 才悔恨沒有及時備份? 很可能是因為平常 沒有將重要檔案與巨大檔案分開, 也可能因為重要檔案就是巨大檔案, 像是 .doc .ppt .pps ... 等等。 還可能因為重要檔案散在各處, 與系統檔案混在一起。 我近一年來的所有重要檔案, 壓縮之後不到 4MB, 每次離開一部電腦前, 電腦及隨身碟各產生一份新的備份, 一天備份兩三次, 如果有任何閃失, 最多只有半天工作量的損失。 每年一次將舊的資料及下載的檔案備份到光碟上, 這樣可以降低平日備份檔的逐年成長速度。
備份的備份
偶爾會後悔一些修改, 想把某個檔案幾天前的版本救回來。 有一個版本控管工具 cvs 專門處理這樣的事; 但是用起來有點複雜。 如果你的備份檔案只有幾 MB, 可以用另外一個較簡單的替代方案: logrotate。 這原本是給系統管理員用來備份 「記錄檔」 的工具; 但我發現用它來製作 「備份檔的備份」, 非常方便。 基本上只不過是將過去七天來的備份檔都留著, 取不一樣的名字。 隨著每天有新的備份檔產生, 它會幫你刪除最舊的備份檔, 並將其他備份檔的代號各自向後推一。 如果同一天內備份很多次呢? 它會檢查並發現不需要每次都做上述動作, 以確保舊檔案不因為你備份太頻繁而消失。
- 把以下內容剪貼到 ~/ws/config/logrotate.conf 裡面去:
daily rotate 7 missingok #copy /home/帳號/backup/save.tgz { }
- 先看一下 backup 目前的內容, 然後下:
/usr/sbin/logrotate -s ~/backup/logrotate.status ~/ws/config/logrotate.conf
再看看 backup 的內容。 應該多出一個 「備份的備份」 save.tgz.1 及備份動作的記錄 logrotate.status - 如果一切正確, 把備份動作寫成一個 shell script
放在 ~/ws/bin/ 底下, 叫做 savework 好了:
#!/bin/bash cd ~ tar czf backup/save.tgz ws public_html /usr/sbin/logrotate -s ~/backup/logrotate.status ~/ws/config/logrotate.conf
並記得對自己開放執行權限。 - 未來可能還會自己寫更多的 shell script 一樣都放在
~/ws/bin 裡面, 所以在 .bashrc 裡面加上一句:
export PATH=~/ws/bin:$PATH
告訴 shell 多一個搜尋可執行檔的路徑。
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/clr/cust.php; 您所看到的版本: February 14 2012 10:32:25.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。