2011年10月27日 星期四

[Linux][Ubuntu][Upgrade]

[9.04]
版本過舊而無法進行 update, 得先進行 upgrade.

[9.04 -> 9.10]
登入畫面會由輸入帳密變成選帳號後再輸入密碼.

[9.10 -> 10.04 LTS]
有更動到 sshd_config 的話會問說要不要覆蓋新檔案過去.
Terminal 的 default background 會從白變黑.
Twaren 方面出些問題, 沒法 fetch new packages, 所以改成其他的 source server.

2011年10月15日 星期六

[Windows][XP][移除桌面垃圾桶圖示]

Start -> Run -> "gpedit.msc" -> USER CONFIGURATION -> ADMINISTRATIVE TEMPLATES -> DESKTOP

You can find "Remove Recycle Bin Icon on the desktop" at right, enable it.

2011年10月14日 星期五

[Linux][Bash][Read Line to Get Each Element]

#!/bin/sh 

while read inputline 
do 
    RSUBDIR="$(echo $inputline | cut -d: -f1)" 
    VOL="$(echo $inputline | cut -d: -f2)" 
    
    echo RSUBDIR = $RSUBDIR and VOL = $VOL 
done < FILE_RSUBDIR_VOL

and file FILE_RSUBDIR_VOL is below

200808:20                                                            
200654:19
200387:18
200244:17

I am still trying to figure out how to distinguish different separators.

2011年10月13日 星期四

[Linux][Bash][用 wc 取得檔案行數]

之前單純使用 wc -l 時會在行數後面加上檔名,一直覺得很不喜歡。

所以想說用 sed 和 awk 來取得行數,指令如下:

wc -l FILE | sed -n "1 p" | awk -F, '{print $1}'

結果失敗了 XDDDDD

最後只用 cat FILE | wc -l 就得出了我想要的結果..真是哭笑不得。

2011年10月5日 星期三

[Linux][Bash][取檔案中的值]

Value1=`sed -n "$i p" $1 | awk -F, '{print $1}'`

在此 $i 是迴圈的變數。

第一個 $1 是命令列的第二個,為資料輸入的檔案。

第二個 $1 是 awk 中判斷讀入資料的第一個。

[Linux][Bash][For 迴圈寫法]

以 1~10 為例子.

1) for i in {1..10}
2) for i in $(seq 1 10)

[Linux][Bash][數學運算]

C=`echo "$A [+-*/] $B" | bc`
若是要進行浮點數計算時將 bc 改為 bc -l。

or

NUMBER=1
NUMBER=`expr $NUMBER + 1`

or

NUMBER=1
let "NUMBER=NUMBER+1"

[Linux][gcin][無法以 ctrl+space 來切換 gcin 輸入法時]

應該是被 GDM 搶先啟動了。

1. sudo vi /usr/lib/gtk-2.0/2.10.0/imodule-files.d/gcin.immodules

2. 將 "gcin" "gcin Input Method" "gcin" "/usr/share/locale" "*" 的 * 拿掉。

[Linux][gcin][全形標點符號]

方法:Ctrl + 標點。

Ex: 在中文輸入法下,ctrl+. 就可以打出"。"。

[Linux][Bash][判斷 wget 有沒有抓到檔案]

WGET_OUTPUT=$(wget -q "URL")

if [ $? -ne 0 ]; then
    echo "Fail"
else
    echo "Success"
fi

[Linux][Bash][Unary operator expected]

wget_output=$(wget "URL")

if [ $wget_output == 0 ]; then
...

執行時在 if 那行會出現 unary operator expected 的訊息。

因為若 wget_output 沒拿到值的話,內容是 NULL, 所以在判斷式中沒有 lvalue。

此時可以將判斷式改成 if [ "$wget_output" == "0" ]。

或是 if [[ $wget_output == "0" ]],都可以順利解決這問題。

[Linux][Bash][Generate 001-005]

#!/bin/bash

for i in {1..5}
do
    Name=`printf %0.3d $i`
    echo $Name
done

=================================

After executing the executable file, the screen will display

001
002
003
004
005

2011年10月3日 星期一

[Windows][XP][用 Windows Media Encoder 架個人電台]

【步驟】

1.開啟Windows Media Encoder。

下載網頁如下
http://www.microsoft.com/windows/windowsmedia/tw/9series/encoder/default.aspx

2.選取"廣播實況事件",按下一步。

3.在音訊的部分選擇你的音效卡 (通常為預設),按下一步。

4.選取"從編碼器提取 (由伺服器或播放程式啟動連線)",按下一步。

5.選一個port作為建立連線的管道 (ex:3961),按下一步。

6.選取你想要的音質與位元速率,按下一步或完成 (接第10步)。

7.可以選擇要不要保存廣播檔案,按下一步或完成 (接第10步)。

8.可以填入相關資訊,但唯有 client 端有開啟 windows media player 的字幕

功能方能看見,按下一步或完成 (接第10步)。

9.確認資訊,按完成即可開始播放。

10.按"開始編碼"即可當個小小的電台。

【測試】

請對方做以下動作。

開始→執行→輸入"mms://[你的IP]:[你所開的port]"(ex:mms://192.168.0.1:3961)

→確認

有跳出Windows Media Player的畫面並有建立連線即表成功。

【注意事項】

1.若按"開始編碼"後對方仍聽不到聲音,檢查一下是否是混音器部分選取錯誤。
(Mixer... -> Wave Out Mix.)

2.Windows Media Player 10 好似沒支援 mms protocol,所以若對方是使用
WMP 10,則沒辦法收聽。

【後記】

Windows Media Player 由於是已內嵌於 Windows 的系統內,所以在建立廣播時常
須考慮的相合性問題並不存在於Windows Media Encoder所建立的串流廣播之上,不
過 WMP10 並不支援 mms protocol,這點是比較傷腦筋的,那就可以直接砍掉它換
別的播放軟體啦XDDDDDDDDDDD 對了,由於這是直接抓取音效卡,鍵盤敲錯的聲音對
方也收的到(上次我網友跟我說"你是不是按錯鍵"^^||)還有,建立廣播後放送端不
一定要用 WMP 播放,用別的也可以(foobar 阿~千千阿~realplayer 阿~WMC 阿~)