Category Archives: FreeBSD

[FreeBSD]Makefile

在操作UNIX系統時,常常會用到make指令來自動build服務,make會去執行該目錄裡的Makefile,按照裡面的設定完成許多事情

例如FreeBSD利用port-tree安裝軟體時就是用make

不過Linux和FreeBSD的Makefile又有些不同

FreeBSD的make版本是Berkeley make

Linux則是GNU make

所以在寫Makefile時需要注意一下OS

FreeBSD版本Makefile 1.Makefile Layout 在command line中,輸入make指令預設是執行該目錄的Makefile,但也可以透過 -f 參數指向其他檔案

2.Target 語法 在使用make時,通常都會加上例如install、config、clean等的target語法

當直接下make時,會執行all以下的語法,輸出123 若是make deploy則會輸出456 因為echo那段是Shell語法,如果要把那段語法當成Shell執行,都需要在前面加上Tab縮排,不然會錯誤 另外輸入make help時,會執行all區塊的語法

3.特別字元 @:不要顯示執行的指令。 -:表示即使該行指令出錯,也不會中斷執行。

4.變數 在慣例上,Makefile內部使用的變數名稱使用小寫;而使用者從命令列自行指定數值的變數,則是使用大寫 在Makefile中,可利用 $(name) 或 ${name} 來存取已定義的變數

5.=語法 ?=:若變數未定義,則替它指定新的值。否則,採用原有的值

+=:字串串接(會自動以空白隔開)

!=:將shell語法結果傳回變數裡

6.條件判斷式(.if,.elif,.else)及相關函式

注意:條件判斷式為Makefile裡的語法,並不是shell語法,所以不需要用Tab鍵縮排

empty:判斷Makefile變數是否為空值

defined:判斷Makefile變數是否被定義

也可以寫成

exists:判斷是否有該檔案或目錄

7.include Otherfile:

Makefile

Continue Reading

[FreeBSD]Memcached install

memcache是個很好用的東西,由其用在大型網站上,常常被拿來壓效能,畢竟存取記憶體還是比存取DB來的快阿!!

另外也比較常見拿來存Session

安裝:

PHP測試:

Continue Reading

[FreeBSD]cURL

這是個很好用的http測試工具

FreeBSD在安裝php-extensions時把CURL的選項勾起來就會安裝了

如果沒有安裝,可以手動透過porttree安裝

成功安裝後可以看到/usr/local/etc/php/extensions.ini裡面會多一行extension=curl.so

這時候就可以下幾個簡單的指令測試

基本的訪問網頁

-o 將網頁輸出成檔案

-O 直接抓取某個網頁(檔名會跟網站的檔名一樣)

-s 快速模式,直接訪問該網頁並輸出

–data傳送資料,預設是post,若加上-G則會變成get

顯示RFC資訊

-D 紀錄RFC資訊在檔案中(可以用來做SESSION溝通,簡單說就是把RFC的資訊存在指定的路徑)

-c 紀錄cookie在檔案之中

-b 是使用 -D 紀錄下來的RFC資訊或者 -c 紀錄下來的cookie訊息

Continue Reading

[FreeBSD]jobs & fg 小技巧

工作的時候會用vim開好幾個檔案

當需要一次用到好幾個檔案時,可以透過vim的一些小功能用外掛來做同時開多個檔案視窗

但是在筆電上的話…這種方式畫面就會變超小阿XDD

所以當使用vim編輯時,可以用ctrl+z中止開檔案,這時使用jobs指令就可以看到中止的清單

再利用fg還原即可

利用jobs指令查看存在的工作清單,透過fg繼續工作

Continue Reading

[FreeBSD]chfn

有時候因為權限的異動,會需要修改到使用者帳號的資料(包含群組)

這時候只需要使用chfn就可以啦

使用方法很簡單

Continue Reading

[FreeBSD]snmpd install

安裝snmpd #cd /usr/ports/net-mgmt/net-snmp #make install clean

複製設定檔到/usr/local/etc #cp /usr/local/share/snmp/snmpd.conf.example /usr/local/etc/snmpd.conf

編輯/etc/rc.conf,加入 snmpd_enable="YES" snmpd_conffile="/usr/local/etc/snmpd.conf"

編輯/usr/local/etc/snmpd.conf 將master agentx 改成 master agentx on

啟動snmpd #/usr/local/etc/rc.d/snmpd start

測試指令 #snmpwalk -v1 -c public 127.0.0.1

Continue Reading

[FreeBSD]VM tools install

(安裝之前需先安裝Perl和compat6x,compat6x路徑為/usr/ports/misc/compat6x)

首先先加入VMtools的虛擬光碟機

接著掛載光碟機

複製到其他資料夾並解壓縮

執行安裝程式

Continue Reading