0%

介紹

iconv 是 linux 上字元轉換的工具。因為有很多機會需要把簡體中文轉換為繁體中文。所以 google 介紹了這個好用的工具。

iconv 把指定的檔案從來源字集轉換到目的字集。以我的應用場景,我是需要從簡體中文轉換到繁體中文。

可以查到簡體在 iconv 是 gb2312 而繁體中文是 big5。但是以現在的作業系統來說我們的字集一般是 utf8。

所以實作的操作是先從 utf8 轉換為 gb2312 , 指後再從 gb2312 轉換為 big5 ,最後再從 big5 再轉回 utf8。

使用

列出目前支援的字集。

1
2
3
4
5
6
7
8
9
10
11
 $ iconv -l
The following list contains all the coded character sets known. This does
not necessarily mean that all combinations of these names can be used for
the FROM and TO command line parameters. One coded character set can be
listed with several different names (aliases).

437, 500, 500V1, 850, 851, 852, 855, 856, 857, 858, 860, 861, 862, 863, 864,
865, 866, 866NAV, 869, 874, 904, 1026, 1046, 1047, 8859_1, 8859_2, 8859_3,
8859_4, 8859_5, 8859_6, 8859_7, 8859_8, 8859_9, 10646-1:1993,
10646-1:1993/UCS4, ANSI_X3.4-1968, ANSI_X3.4-1986, ANSI_X3.4,
...

轉換字集

下面的例子是將檔案轉換為簡體。

1
$ iconv -f utf8 -t gb2312 file.txt

實際我們一般會如下進行轉換

1
$ cat file.txt | iconv -f utf8 -t gb2312 | iconv -f gb2312 -t big5 | iconv -f big5 -t utf8

介紹

我們在 linux 上常常需要處理文字檔案。而其中最常就是要對檔案中的文字進行處理。
sed 就是這樣的工具。他可以對字串進行複製、取代、刪除。也可以處理 regex 文字。

取代

直接用範例來說明

1
2
 $ echo 'This is a book' | sed 's/This/That/g'
That is a book

這個例子中,s的指令就是取代,我們將出現的This取代為Thatg代表全部取代。

也可以同時多個操作。

1
2
 $ echo 'This is a book' | sed 's/This/That/g;s/book/dog/g'
That is a dog

在這個例子中,我們同時將Thisbook同時取代為Thatdog

刪除

下面是我們在操作的文字檔案內容。

1
2
3
4
5
6
7
8
9
10
{
"name": "hexo-site",
"version": "0.0.0",
"private": true,
"scripts": {
"build": "hexo generate",
"clean": "hexo clean",
"deploy": "hexo deploy",
"server": "hexo server"
},

執行下刪除的指令。

1
2
3
4
5
6
 $  sed '/hexo/d' /tmp/abc.json
{
"version": "0.0.0",
"private": true,
"scripts": {
},

原來檔中出現 hexo 的行都不見了。

結論

sed 是很好用的工具,我們以後再來發掘。

介紹

當我們用matplotlib畫圖時會發現一個問題,那就是當我們想要在圖中顯示中文時會變成亂碼,像是下面的例子

1
2
3
4
5
6
7
import matplotlib.pyplot as plt

sales = [100,80,50]
x_labels = ['A品牌','B品牌','C品牌']

plt.bar(x_labels,sales)
plt.show()

注意在下方的中文字成為了方塊。

matplot

閱讀全文 »

1
# haproxy -f /etc/haproxy.cfg -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid)

可以不中斷服務的重新載入新的設定。

介紹

上一篇有介紹到如何在 linux 及 mac 上列出如何找到系統中的 port 是那個程式開啟的。
今天就把 windows 上如何做到也說明一下

指令

1
C:\> netstat -a -b

語法很簡單,只要加上 -b 的參數即可。

  • 要注意的是,因為需要高權限,如果沒有用使用 administrator 的權限是無法正確執行的。

介紹

BASH 是相當 unix 用戶愛用的選擇 shell。有很多方便好用的指令,可以方便日常的工作。
但是有些不常用的指令常常會忘記,這邊主要是加強一下自已的記憶。

這部分參考了Learn bash in Y minutes

我會重新安排一下,這篇會以在命令列直接使用的部分。命令列可以使用的在腳本中也都可以使用。

閱讀全文 »

介紹

VM fusion 是在 mac 系統上重要的虛擬化的提供者。
我相當喜歡在 mac 上使用 vmware 的方案。
最大的好處就是可以將 vm 分享到 linux 及 windows 平台。

連上 windows 的 vm 已經習慣了用 remote desktop 連線。
不過沒有特別去調整,就會在系統上開了兩三個視窗,有些煩惱。
如果關掉 vmware 的視窗就會讓 vm 睡著了,也無法正常使用。

我忘了在那一個平台, vmware 提供了關掉 vm ,但是讓 vm 開在背景。
顯然在 mac 平台, vmware 沒有提供這樣的功能。
今天我們就來說看要如何做到,雖然有點麻煩,不過總算可以少看到一些視窗。

當然這樣做也有缺點,因為在背景,你會忘記你有打開。又去開 fusion ,
然後就又不能關掉,還是有點小麻煩。

閱讀全文 »

port 對應的 process

有時候我們想知道在系統中那些 process 用掉了那一個 port。
這篇就是要如何向系統查詢這樣的資訊。
linux 和 mac 有些差異。所以分開說一下。

閱讀全文 »

最近有發現有些 xz 的檔案,不太知道是什麼類型。
讓我們來看這這樣的檔案是什麼?
原來這是一種 linux 上的壓縮檔。

wiki 上說

1
xz是一個使用LZMA/LZMA2壓縮算法的無損數據壓縮文件格式。
閱讀全文 »

透過 proxy 連線 ssh

ssh 是很方便的工具,我們有時希望可以讓 ssh 透過 proxy 連到 proxy server 可以連到的機器。
這篇就是要介紹這樣的情境,不過,需要設定的手續也相對多。

閱讀全文 »