[Vim] 想套用 *.php syntax 顏色於 *.ros

vim_header Vim 是一套強大的編輯器,它分佈於各大 UNIX systems,安裝好一套 UNIX 系統,預設就是 Vi 編輯器(FreeBSD 預設是 ee),相當好用,他也支援各種語言的 syntax,讓您在編輯檔案能夠看到各種不同顏色,在 FreeBSD 底下可以去看 /usr/local/share/vim/vim64/syntax/ 該資料夾支援各種語言,例如 PHP、Ruby、css、html、java、C/C++…等,假設今天我們想要 .ros 的副檔名需要用 php.vim syntax 來開啟,就必須做底下設定: 執行底下:

mkdri ~/.vim
vi ~/.vim/filetype.vim 
寫入 filetype.vim 資訊 if version < 600 syntax clear elseif exists("b:current_syntax") finish endif augroup filetypedetect au! BufRead,BufNewFile *.ros setfiletype php augroup END[/code] ps. on freebsd 7.1-RELEASE-p11 vim version 6.4.9 reference:

Vim 套用 Markdown syntax vi 設定

[FreeBSD] DenyHosts 設定在 hosts.allow 注意事項

DenyHosts 是一套用 Python 跟 shell script 寫出來的 open source base on Linux or FreeBSD (/var/log/secure on Redhat, /var/log/auth.log on Mandrake, FreeBSD, etc…),用來阻擋 SSH Server 被攻擊,之前寫一篇 FreeBSD 安裝設定教學,有一點沒有注意到,就是打開 /etc/hosts.allow,注意要把 ALL : ALL : allow 放到最後一行,跟 iptables 設定原理是一樣的,會從第一條規則開始比對,如果比對成功,下面的 rule 就會略過比對了,參考英文說明: Start by allowing everything (this prevents the rest of the file from working, so remove it when you need protection). The rules here work on a “First match wins” basis. /etc/hosts.deny 已經被 FreeBSD 棄用,所以必須把 allow 跟 deny 的 rule 都寫到 hosts. [Read More]

[FreeBSD] Fanout and Fanterm Tool to run commands on multiple machines

在 Linux 或 FreeBSD 系統底下,如何下達 command 來達到多方控管機器,在網路上找到 Fanout and fanterm 這兩套軟體,可以實現我想要的目的,在 FreeBSD 有把 sysutils/fanout 進到 ports 裡面,安裝方式很簡單,就直接 make install clean 就可以了,用法也很簡易: Usage: /usr/local/bin/fanout "MACHINES" "commands and parameters to run on each machine" /usr/local/bin/fanout -h #Show this help /usr/local/bin/fanout --noping # Do not ping before running command 當然事情沒有這麼簡單,因為是透過 SSH 方式去對其他機器下 command,所以作者都把預設 port 設定成 22,沒有完整考慮到其他環境,管理重要的 Server 怎麼會設定 22 阿,一定會改掉的阿,後來檢查一下 /usr/local/bin/fanout 這隻程式,並非編譯過的 binary 檔案,所以打開來看,就是利用 bash shell script 所寫的程式,網路上 Google 也找到一篇 Does anyone know how to specify a ssh port number with fanout? [Read More]

[UNIX] Vim 命令圖解說明

Vim 是一套在 Windows 或者是 UNIX 系統上面非常強大的編輯器,在 vgod’s blog 看到一篇:『給程式設計師的Vim入門圖解說明』,原作者提供了 pdf 以及 png 檔案讓大家下載阿,相當方便,看到這篇就馬上印出來貼在自己的桌子前面,圖解內容也相當清楚,很適合剛學習 UNIX 系統所需要的一些基本 Vim 指令,如何分割視窗,刪除行…等,另外在 Tsung’s Blog 看到 好文: Vim 食譜(CookBook、Recipes),提供了兩個好用連結:

  • Vim Recipes - Vim 由淺入深, 每篇都很短, 非常推薦此書~ (可線上看, 也可免費下載)
  • Vim Cookbook - Vim 食譜, 這篇專門紀錄常用、好用的密技. 都可以參考看看喔,對於學習

Vim 會有相當大的幫助,底下兩張是從 vgod’s blog 轉錄過來的。 vim-cheat-sheet-full vim-cheat-sheet-diagram

[FreeBSD] freebsd kernel: fxp0: link state changed to DOWN / UP

這一個禮拜被機器弄的頭昏腦脹,突然網路斷掉,然後不知不覺中又好了,接下來是斷斷續續,時好時壞,所以去檢查看一下 /var/log/message 訊息,log 檔案吐出很多底下的資訊: Dec 9 21:17:02 freebsd kernel: fxp0: link state changed to DOWN Dec 9 21:17:03 freebsd kernel: fxp0: link state changed to UP Dec 9 21:17:10 freebsd kernel: fxp0: link state changed to DOWN Dec 9 21:17:12 freebsd kernel: fxp0: link state changed to UP 在網路上 FreeBSD mail list 查到一篇:『Interface Status changes to UP and Down』,裡面提到通常是硬體的問題,換過 switch 以及網路線,測試還是有問題,網路會斷斷續續,後來就用主機板上面另外兩個網孔測試,網路就不會時好時壞了,由於時常更改 /etc/rc.conf 裡面的 ip 設定,要重新啟動網路卡介面,這樣會造成遠端 ssh 斷線,解決方式請用下面指令: How do I restart network service over ssh session? [Read More]

[FreeBSD] port committer 快速建立 pkg-plist

在 FreeBSD 系統裡,最常使用就是管理安裝 ports,之前寫過一篇如何 commit update ports :『[FreeBSD] send-pr porter committer 需要注意事項』,根據 FreeBSD Porter’s Handbook 裡頭,寫到 pkg-plist 檔案內容是根據 ports 所產生的檔案列表,可以參考 Automated package list creation 這篇來快速產生,而我自己把該篇寫成 shell script 來直接產生,再來利用 diff 的方式來看看有無需要修改或者是增加,底下就是 shell script 內容: #!/usr/local/bin/bash ############################################### # # Date: 2009.11.18 # Author: appleboy ( appleboy.tw AT gmail.com) # Web: http://blog.wu-boy.com # Ref: http://www.freebsd.org/doc/en/books/porters-handbook/plist-autoplist.html # ############################################### PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin export PATH if [ "$#" -lt "2" ]; then echo "please give two argument" echo " [Read More]

[Perl&PHP] time() and Class::Date 日期轉換運算

為了看個 MLB 美國職棒,寫了一個網站:美國職棒影片收集站,裡面的內容影片連結,以及連結說明,都是利用 Perl 搭配 MySQL 資料庫,以及 CodeIgniter PHP Framework 寫出來的,美國 MLB 開打時間,會比台灣晚一天的時差,所以在 PHP 跟 Perl 都要針對時間作修改以及轉換運算,那底下會寫 PHP 跟 Perl 如何控制時間,還有資料庫如何設計,會比較適當。

PHP 日期轉換 MySQL 在資料庫時間格式方面,最主要常見的兩種儲存方式,一種就是 MySQL 預設 datetime,顯示的格式就會像是

2009-11-03 20:10:43,另一種就是存成 UNIX time 格式,可以設定為 int(11),這兩種其實都可以使用,在 phpBB2 是採用後者的方式,因為 open source 要支援多種資料庫,但是又要統一程式碼,所以乾脆用 UNIX 的時間標記,這樣比較好轉換時區,如果使用 UNIX 格式,可以利用 time() 函式來取的。

[Read More]

[FreeBSD] 簡易架設 git Server,git 使用教學

Git 是一套免費 open source 的版本控制軟體,另外還有很多套版本控制軟體,如:MercurialBazaarSubversionCVSPerforce, and Visual SourceSafe,其中 Mercurial 又是 Google Code Project Hosting 採用的版本控制系統,當然 google 也支援原本的 Subversion,Git 為現在很紅的一套版本控制 Software,底下紀錄在 FreeBSD 如何架設簡易 Git Server。 1. 利用 FreeBSD ports 安裝:

cd /usr/ports/devel/git; make install clean
2. 修改 /etc/rc.conf
git_daemon_enable="YES"
git_daemon_directory="/path/git/repo"
git_daemon_flags="--export-all --syslog --enable=receive-pack --listen=192.168.1.1"
注意 git\_daemon\_flags 可以加入 --verbose 參數,以方便 debug 3. 新增使用者 git
pw user add git
4. 啟動 git daemon
/usr/local/etc/rc.d/git_daemon start
您會發現多出 9418 連接埠,就是成功了 [Read More]

[FreeBSD] send-pr porter committer 需要注意事項

logo-red (by appleboy46) 來紀錄一下最近使用 send-pr 的心得,send-pr 就是提交問題 problem report (PR) 到 FreeBSD Support 中心,您也可以透過 send-pr 發送新的 ports 給 FreeBSD 中心,最近 CodeIgniter V1.7.2 的 Release,所以把 CI 的 patch 送給中心並且 CC 給 maintainer,/usr/bin/send-pr 這支 shell script 在 FreeBSD 用處可多了,不單只是 ports 的問題,也有 www, i386, ia64 的問題,都可以透過它回報給總部喔。 要瞭解 ports 怎麼產生,或者是怎麼製作 patch 都可以參考 FreeBSD Porter’s Handbook,文件是英文的,請大家多多包含,不過還是有中文的文件,通常 patch 是還蠻簡單的,底下紀錄我做的步驟,以及如何測試 ports 正確性。其實步驟不難啦。

[Read More]

[FreeBSD] 取得 FreeBSD CVSUP 的更新狀態

FreeBSD CVS Site_1251699923593 (by appleboy46) 在 Sayya Joehorn 個人版看到有人實做出偵測台灣 CVSUP Server 更新狀態,以及更新的時間,也有程式碼的釋出,參考這篇:Script: 取得 FreeBSD CVSUP 的更新狀態,這篇寫的蠻清楚的,只需要 perl 跟 php 就可以完成,不過在使用過程有些事項必須要注意,在 FreeBSD 6.2 R 之後,已經內建了 csup 指令來更新 ports 或者是核心,所以要在另外安裝上 cvsup ports 套件,在 Perl 方面,也先裝 net/p5-Net-Rendezvous 才可以正確使用。

# 安裝必備軟體
cd /usr/ports/net/p5-Net-Rendezvous/ && make install clean
cd /usr/ports/net/cvsup-without-gui && make install clean
[Read More]