2016年11月28日 星期一

[Shell] 為什麼 pipe (重新導向) 的結果不能用在 rm??

原文 「Linux why can't I pipe find result to rm?」。


之前也有同樣的疑惑,為什麼在 shell 中使用 pipe ( | ) 得到的結果不能直接 rm。
原文中舉了個例子:

find . -name ".txt" -exec rm "{}" \;
這樣是可以的。

find . -name ".txt" | grep a
 這樣也可以。

find . -name ".txt" | rm 
但是這樣不行。
為什麼?


下面的解釋大致上是說,因為 pipe 出來的結果是 stdin,但是 rm 後面接的是 command line 的參數(command line argument),會直接忽略 stdin。所以如果要 rm 用 pipe 出來的結果,要加 "xargs" (從 stdin 讀入並轉成 command line 參數)

舉例:
find . -name ".txt" | xargs rm
find . -name ".txt" | grep "foo" | xargs rm  

覺得這篇真的很不錯,留個記錄!

2016年11月9日 星期三

[筆記] Challenge Handshake Authentication Protocol (CHAP)


RFC 1994

Challenge Handshake Authentication Protocol,一個 3 way handshake(三方交握)的認證機制。

  1. Link 建立完畢,Server(圖中的Responder)會發送 Challenge text 給 Client(圖中的 initiator)。
  2. Client 會拿自己的密碼(or shared key),透過 One-way hash function 對 Challenge text 做加密,加密後的值當作 Response 回傳給 Server
  3. 因為 Server 也知道密碼,所以也使用密碼加密 Challenge text,來比對 Client 傳來的值是否正確。

所以整個認證過程中,並不會傳送明文密碼。


The picture is from The TCP/IP Guilde


在 iSCSI 中,CHAP 認證又分為
  •  One-way CHAP:只有 Target 會對 Initiator 做認證,因此只需要對 Target 設定密碼,然後 Initiator 使用該組密碼登入。
  •  Mutual CHAP: Target 與 Initiator 會互相認證
(最少要使用 One-way CHAP)




2016年11月8日 星期二

[軟體] 免費 {資料夾/檔案比對軟體} 比較

在前公司使用的文件比對軟體是要付費的 Araxis Merge。
非常強大的一個比對軟體,除了可以比對資料夾,
還可以三個文件互相比對並修改。

後來的公司並沒有這套軟體,並且要求不能使用盜版軟體。
在沒有付費使用的情況下,我對目前免費的文件比對軟體做了一些比較。

WinMerge

官方網站: http://winmerge.org/
版本:2.14.0

優點:
  1. 有繁體中文
  2. 可以做資料夾的比對,並可比對子資料夾
   
  1. 可以在比對視窗裡面直接修改文件

缺點:
  1. 我花了一段時間才找到資料夾比對中哪些檔案有差異(如下圖)。這在專案很大的時候會是一件吃力的事。
   
  1. 文件比對時做修改,要按儲存才會顯示兩邊的差異(Araxis 是修改當下就能同步顯示左右文件的差異)

PS:可以在「檢視」裡面選擇想要顯示的欄位或是項目,調整到最適合自己的閱讀習慣。
結論:大型專案不適用,但是平常小的檔案比對還不錯用!

TextDiff

版本: 4.5 (免安裝)

優點:
  1. 免安裝
  2. 非常小,不到1MB
  3. 支援檔案拖曳,但不支援資料夾拖曳
  4. 可以在比對視窗裡面直接修改文件


缺點:
  1. 可以比對整個資料夾,但無法比對子資料夾
  2. 資料夾比對僅會告訴使用者哪些檔案這個資料夾有,哪些檔案沒有,並不會幫你比較檔案內的異同。
  3. 文件比對時左右視窗不會同步,所以會發生像下圖一樣,右邊視窗已經看到第265行,左邊視窗還維持在30行的狀況。
   

結論:最大的優點大概就是小了!不會想使用。

Kdiff3

版本: 0.9.98

優點:
  1. 唯一但也是最大的優點,可以支援三個檔案或資料夾互相比對

缺點:
  1. 無法在比對視窗裡面直接修改文件

總結:這套軟體好像在比對的時候就有選項可以幫你 Merge,但是有用過版本控制的人應該都知道,自動幫你 Merge 的下場都不太好....

DiffMerge

版本: 4.2.0

  1. 可比對子資料夾
   
  1. 可比對三個檔案(不過無法比對三個資料夾)
   
  1. 可以在比對視窗裡面直接修改文件

缺點:
  1. 不支援檔案、資料夾拖曳到視窗
  2. 比對三個檔案時 (File Merge),無法將第二個視窗的差異搬到第三個....而且僅能對第二個視窗做編輯