Linux 要掛載磁碟機,通常都是使用 /dev 底下的裝置名稱:
mount /dev/sdb /media/backup
但磁碟機一多,常常會搞不清楚裝置名稱與磁碟機的對應。
Linux 上除了裝置名稱以外,有為 disk label 建立 mapping,當作掛載時的參考:
mount /dev/disk/by-label/System-Backup /media/backup
另外還有「by-uuid」、「by-path」可用。
軟體開發、伺服器和生活瑣事
Linux 要掛載磁碟機,通常都是使用 /dev 底下的裝置名稱:
mount /dev/sdb /media/backup
但磁碟機一多,常常會搞不清楚裝置名稱與磁碟機的對應。
Linux 上除了裝置名稱以外,有為 disk label 建立 mapping,當作掛載時的參考:
mount /dev/disk/by-label/System-Backup /media/backup
另外還有「by-uuid」、「by-path」可用。
因不同環境編碼不同,而需要從外部程式呼叫 vim 時直接設定編碼。苦想不到解法時,看到 NeoBundle 第一次執行 vim 要安裝 bundle 時,執行「vim +NeoBundleInstall」,翻了很久才找到「+」的說明文件 (天曉得為什麼要用 :h -c 才能找到文件啊 ….)
假設要在 vim 中執行「:set fileencoding=utf-8」,可以改做由 command line 執行:
vim +fileencodeing=utf-8
所以稍早在 .bashrc 裡面加了:
export SVN_EDITOR="vim +"fileencoding=utf-8 encoding=utf-8""
若 sshd 改成非 port 22,不少 ssh client 操作會變成很麻煩。
但可以在 .ssh/config 設定 host name 和 url、port,之後就可僅用 host name 連線。
vim ~/.ssh/config :
Host hq
HostName server.url
Port 9999
User zero
之後要連線時打「hq」即可:
Reference:
git – Using a remote repository with non-standard port – Stack Overflow
Bash 裡面有個 for-in 可以很輕鬆的對多筆資料做迭代,不過我語法一直弄錯。
文字列表:
LIST="item1 item2 item3"
for ITEM in $LIST; do
echo $ITEM
done
如果是陣列,語法要換:
LIST=(
item1
item2
item3
)
for ITEM in ${LIST[@]}; do
echo $ITEM
done
Reference:
Bash For Loop Array: Iterate Through Array Values
.bashrc 下設定 command alias 的方法是:
alias svm='svn' # 我常常手殘
不過假設要 alias 的指令包含空白,如「svn commit」要 alias 成「svn commit –editor-cmd vim」,就得靠自訂 function 了。
新增一個 function 蓋掉原本的 svn 指令,如果 svn 後接的參數是 commit,便加上 –editor-cmd:
svn(){
if [[ $@ == commit ]]; then
command svn commit --editor-cmd vim
else
command svn "$@"
fi
}
不過 svn commit 有時還會有其他參數,像是檔案路徑等,所以這樣寫還是會發生意外。要把參數判斷要改,順便在執行指令的時候把參數也塞回去:
svn(){
if [[ $@ == commit* ]] || [[ $@ == ci* ]]; then
command svn "$@" --editor-cmd vim
else
command svn "$@"
fi
}