2012年5月15日

Linux:利用 grep 取得 UUID


有時在處理 linux 字串時我們會需要取得特定的 uuid,
此時 linux 指令中的 grep 就非常好用。

圖片來源:http://itunes.apple.com/gb/app/udid-pro-unique-device-identifier/id385539780?mt=8

以下舉個簡單的例子:
# 假設想要取得 blkid 回傳回來的 uuid
$ blkid /dev/root 
/dev/root: UUID="36215097-d2db-4882-ae1b-52ca5ef0b4ee" TYPE="ext3"

# 利用 grep -o 取得特定格式的字串
$ blkid /dev/root | grep -o '[0-9a-fA-F]\{8\}-[0-9a-fA-F]\{4\}-[0-9a-fA-F]\{4\}-[0-9a-fA-F]\{4\}-[0-9a-fA-F]\{12\}'

關鍵字:linux, grep, uuid, 怎麼取得, 抓,
參考資料:

2012年5月14日

Python:url encode decode, 網址中文編碼解碼


似乎是每遇到一種語言,
都會遇到要把中文字串轉換為網址的問題…
以下是先前所遇過寫下的介紹文章:
  1. 用Java替中文網址轉碼:URLEncoder
  2. Online UrlEncoder:線上轉換中文網址為UTF-8編碼
  3. 用Javascript替中文網址轉碼:escape, encodeURI, encodeURIComponent 的比較
圖片來源:http://www.codercaste.com/2009/11/28/how-to-use-the-urllib-python-library-to-fetch-url-data-and-more/

簡而言之,只要利用 urllib,再善用 quote 和 unquote 即可。
依下面的測試字串,是不是 utf8 轉出來的網址編碼似乎是一樣的。

[root@localhost ~]# python
Python 2.4.3 (#1, Feb 22 2012, 16:05:45) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import urllib

>>> urllib.quote('中文測試')
'%E4%B8%AD%E6%96%87%E6%B8%AC%E8%A9%A6'

>>> urllib.quote(u'中文測試'.encode('utf8'))
'%E4%B8%AD%E6%96%87%E6%B8%AC%E8%A9%A6'

>>> 
[root@localhost ~]#

關鍵字:Python, url, encode, decode, quote, unquote, 網址, 中文, 編碼, 解碼, utf8
參考資料:

Linux:修改ssh設定、root登入、更改port、密碼登入


相對於 windows 系列作業系統的遠端桌面連線,
Linux 系列的遠端通常用的就是 ssh 啦,
(當然也還是有人用沒加密的 telnet),
今天就是要來介紹一下 ssh 設定檔中常會需要修改的部份。

圖片來源:http://en.wikipedia.org/wiki/File:Gnome-fs-ssh.png

首先常用遠端連線到 Linux 操作的人大概都有個基本的 sense,
那就是在使用 ssh 之類的遠端連線服務儘量不要用 root 帳號登入,
雖然用 root 很方便,但因為 root 權限太大,萬一被入侵會很慘,
加上現在的 Linux 應該都可以用su, sudo之類的指令暫時取得 root 權限,
所以現在 ssh 登入時應該是可以不需要用到 root 這帳號的。

若要限制或允許 ssh 用 root 帳號登入,可以用以下的指令:
$ sudo vi /etc/ssh/sshd_config

# 以 /PermitRootLogin 搜尋
# 若要開放就修改為 yes, 不開放修改為 no
# 記得要將前面的 # 號去除
PermitRootLogin no

# 重啟 ssh 服務讓設定生效
$ sudo /etc/init.d/sshd restart

再來要介紹的是如何修改、新增或刪除 ssh 的 port:
$ sudo vi /etc/ssh/sshd_config

# 以 /Port 搜尋
# 若原先為已註解掉 #Port 22,修改時記得要將前面的 # 號去除
# 修改時直接把 22 改成其他數字即可,一次也可指定 ssh 同時聽多個 port
Port 22
Port 443

# 重啟 ssh 服務讓設定生效
$ sudo /etc/init.d/sshd restart

另外如果有使用 Amazon EC2 或對 ssh 更熟的人可能會知道,
那就是 ssh 也可以使用金鑰登入而不使用密碼,
若要更改這個設定,請修改以下參數:
$ sudo vi /etc/ssh/sshd_config

# 以 /PasswordAuthentication 搜尋
# yes 就是可使用密碼登入,不然就是只能用金鑰囉!像EC2為了安全預設就是no。
# 修改時記得要將前面的 # 號去除
PasswordAuthentication yes

# 重啟 ssh 服務讓設定生效
$ sudo /etc/init.d/sshd restart

以上簡單介紹,希望對大家有幫助,
當然在使用 ssh 方便之餘,還是要注意不要不小心幫駭客留了一扇門喔!

關鍵字:ssh, root, port,
參考資料:

2012年5月7日

Linux:檔案複製強制覆寫, cp force overwrite


相信大家若在使用 Linux,其中一個常用到的指令就是 copy, cp。
而若要複製到的地方已有相同名稱的檔案,
cp 會跳出訊息詢問是否要覆蓋 overwrite 也是很正常的。


但!如果我們就是要直接強制覆蓋,不想要確認訊息怎麼辦呢?
對 Linux 有概念的人大概會直覺地回答,那就加個 -f (force) 就好啦!
嗯,以上就是我遭遇到這個問題的整個思考流程,
結果…像下面那樣,還是會硬是跳出確認訊息!orz
[root@centos demo]# clear
[root@centos demo]# touch toBeOverwrite.txt
[root@centos demo]# touch toBeCopy.txt
[root@centos demo]# tree
.
|-- toBeCopy.txt
`-- toBeOverwrite.txt

0 directories, 2 files
[root@centos demo]# cp toBeCopy.txt toBeOverwrite.txt 
cp:是否覆寫 ‘toBeOverwrite.txt’? n
[root@centos demo]# cp -f toBeCopy.txt toBeOverwrite.txt 
cp:是否覆寫 ‘toBeOverwrite.txt’? n

那到底為什麼 cp 會一直出現是不是要覆寫的確認訊息呢?
明明 cp --help 裡面也提到 -f 的參數使用方式:
-f, --force if an existing destination file cannot be opened, remove it and try again。
可是即使加上了這個參數仍舊無法直接覆蓋 @@

後來查了一下資料發現,原來 cp 預設會被設定成別名:alias cp='cp -i',
也就是使用了參數 cp 時都會自動改用 cp -i,-i 是 interactive 互動的縮寫,
所以不管你說了什麼,他就是要來跟我們「互動」一下 orz。
察看 alias 中有放了哪些別名:
[root@centos demo]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@centos demo]#

解決方法很簡單,避開別名 cp,直接使用 /bin/cp 就可以囉!
[root@centos demo]# /bin/cp toBeCopy.txt toBeOverwrite.txt
[root@centos demo]#

或者用更直接的方式,取消 cp 的別名:
[root@centos demo]# unalias cp
[root@centos demo]# alias
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@centos demo]# cp toBeCopy.txt toBeOverwrite.txt
[root@centos demo]# 

關鍵字:cp, force, overwrite, cp overwrite, linux cp overwrite, 覆寫, 覆蓋, 強制
參考資料:

2012年5月5日

台電最近12期(24個月)詳細電費查詢網站



最近油價已經漲了,電費漲不漲也吵得火熱,
時序雖是春季卻也已經炎熱起來,
開冷氣雖然涼爽,對荷包卻是不太客氣啊,
尤其再過一陣子就又是夏季電費了……
大家有沒有也關心起自己的電費帳單呢?


對於台電帳單,
相信很多人都是直接利用郵局、銀行、信用卡直接扣繳帳單,
其餘的大多應該也是直接拿到便利商店繳了,
如果沒有用電子帳單存在信箱裡,這些帳單收據又沒有好好保存的話,
通常過一陣子就找不到前些日子電費相關的資料了。

知道電費明細有什麼好處呢?
第一:電費折扣
不知道什麼時候起好像電費會與前一年同時段比較,
若省下一定程度的話電費還能有折扣,
沒有留下過往的資料,大概也沒辦法隨時注意用電狀況吧。
第二:租屋

若在外租屋,電費幾度幾度通常都是房東說了算,
如果知道用電明細,由總電量推算下來,大概就可知道每度電收得合不合理。

針對這些查詢過往或當下電費明細的需求,
今天要介紹的是台電官方的電費資料查詢網頁:電費查詢作業
只要輸入電號,即可顯示近12期簡單的電費資料及繳費狀況,
如果還需要查詢用電明細資料,可以在登錄電子帳單服務系統,
就能提供更完整的服務和電費資料了。

註:電號為電力公司電費單據上共 11 位數字,例:00842710618

關鍵字:台灣電力公司電費查詢, 電費計算, 電費查詢作業, 電費試算, 帳單, 一度,


2012年5月4日

博客來高普考、郵政、鐵路、中華電信、國民營考試用書活動總整理


後續博客來所有活動會統一整理於一篇,
請直接參考:博客來書展折扣、E-coupon、購物金活動總整理

最近追踨研究了一下博客來的活動,
發現他的活動持續有在更新,
且也會針對現在很紅的國家考試、高普考、郵政、鐵路特考,
甚至是國營的台電中油台水招考、民營的中華電信、中鋼考試,
都會依著考試時間推出相關用書。
因為這個部落格來看的人也有一部份是因為要查詢考試資訊而來,
所以還是整理一下相關的活動給大家。

如果需要更多考試資訊,請見:
英文檢定專業證照國家考試介紹、心得分享、準備方式、推薦用書大全
另外本站也有提供代訂服務及 e-coupon 分享,若有需要,請見:
博客來e-coupon折價券序號分享、免費代訂代購服務

廢話不多說,以下就是關於各類考試用書的活動:

【2012年郵政招考系列用書】79折,收錄最新重點加強版&最夯議題大補帖!
《優惠期限 2012年4月10日~2012年5月31日止 

錢進金融業!銀行增員計畫全面啟動
《優惠期限 2012年4月18日~2012年5月31日止 

【考用出版社】精編詳解重點內容,國民營考試快速準備,精讀系列單本75折!
《優惠期限至~2012年6月30日止》

讓好『試』發生!【2012高普考非上不可】榜首養成超完美組合7折起!
《優惠期限至2012年3月23日~2012年4月30日止》

公職英文全攻略!搶攻鐵飯碗!力拼英語高分,就能大幅拉開與競爭者的差距!
《優惠期限至2012年3月23日~2012年4月30日止》

關鍵字:經濟部聯合招考, 國營事業招考, 資訊類, 台電招考, 中油, 台水, 自來水, 心得, 考試, 薪水, 福利, 比較, 高普考, 參考書單,

    2012年5月3日

    各電信業首查詢手機門號網內外資訊網頁整理


    多年前手機門號可攜後,在廣大使用者的要求下,
    電信總局後來協同各大電信業者推出了「57016 網內外簡碼查詢」服務。
    無論是哪家電信公司的手機門號,只要播打「57016」簡碼接通語音查詢專線,
    就能搞清楚對方的號碼究竟是網內還是網外。
    收費則依照用戶申請的通話方案,以網內(區內)費率計算。(威寶免收費)

    圖片來源:http://njqingting.big5.made-in-china.com/product/LqsEnvKDhTrX/

    一轉眼也過了好幾年,我查了一下 57016 簡碼查詢大約是在 2006 年推出的,
    而最近電信業者才又低調地公佈可以用網路查詢網內外的網站,
    既然利用網站查詢不用錢,那大家當然要多利用這些網頁啦,
    比起要付費的 57016 好多了。

    目前有提供網頁查詢網內外門號的只有三家電信公司
    中華電信:
    http://bms.emome.net/emome/ebms/qryTelnum.jsp
    威寶:
    https://www.vibo.com.tw/CWS/Consumer_07_02_04,,,,.html
    台灣大哥大(需要登入)
    https://service.taiwanmobile.com/cs/queryTWMPhoneNbrAction.do?method=enterPage

    關鍵字:57016, 費用, 收費, 台灣大哥大, 中華電信, 遠傳, 威寶, 簡碼, 行動電話號碼所屬業者查詢, 網內, 網外, 網內外查詢, 行動語音, 查詢網內外, 線上, 網頁
    參考資料: