Linux 常用命令01
一、編碼轉換
1、iconv
應該算是LINUX下最常用的文字編碼轉換工具,一般系統自帶。使用方法如
iconv -f gb2312 -t utf-8 filename -o newfilename
引數解釋:
-f,–from 檔案原編碼
-t,–to 轉換之後的編碼
-o,–output 轉換成功後另存為的檔名,如果省略此引數和新檔名,則將轉換結果輸出到標準輸出)
2、enca
這個和 iconv 命令一樣,也是用來轉換文字編碼的。相對於 iconv ,它有兩個優點,一是可以檢視檔案編碼,二是可以直接批量轉換資料夾下所有檔案(非遞迴)。 但它有一個非弱點的弱點,即非系統內建。下載地址:
使用方法:
//轉換編碼: -x 表示目標編碼 -L zh_CN 指定語言,這個好蛋疼,能省略麼?不省略真心不想用^^
enca -L zh_CN -x utf-8 filename
//enca -L zh_CN -x utf-8 * //可以批量轉換資料夾下所有檔案(非遞迴)
//檢視檔案編碼
enca -L zh_CN filename
這個工具不太建議使用,只是因為它不是系統內建。而且可以被 iconv 替代,如下面我簡單寫了個 iconv1 放到PATH目錄下:
複製程式碼
dir=
do
iconv -c -f gbk -t utf8
done
rm -rf tmp
複製程式碼
執行 iconv1 src/ 即可批量轉換 src 目錄下所有檔案編碼,效果同 enca 想要遞迴轉換?也很簡單:
複製程式碼
dir=$1
filelist=find $dir -type f
for i in
mv tmp
done
複製程式碼
使用方法同上。
3、convmv
這個命令不同於上面兩個,它是用來轉換檔名中的亂碼的。比如說我們專案中一般會有 “協議文件.doc”,在LINUX下檔名就會顯示亂碼,就可以通過下面命令轉換:
convmv -f gb2312 -t utf-8 -r doc/ –notest
其它引數不用說吧,用法和 iconv 非常相似,不同的是,它內建了遞迴,即 -r 引數,另一個引數 –notest 如果不加上,表示測試顯示而非正式轉換,所以呢如果只是想看一下亂碼中的檔名是什麼,就忽略此引數吧,否則記得加上此引數。 同樣可惜的是,此命令也非一般LINUX發行版內建,下載地址同上:
二、批量搜尋和替換
1、grep
帶上 –color=auto 引數可以使用搜索的結果彩色顯示。
grep -r “find_str” dir/ –color=auto
另外,也可以使用
export GREP_OPTIONS=’–color=auto’
//或:
export GREP_OPTIONS=’–color=auto’ GREP_COLORS=’ms=01;4;31:fn=36’
來匯入 grep 的配色方案,其中 ms 表示查詢的關鍵字顏色,fn 表示查詢關鍵字所在檔名的顏色。(LINUX下,項與項之間一般使用冒號或空格分開)
帶上 –include *.{h,cpp} 可以指定搜尋的檔案格式(或檔名關鍵字)
grep -n -B2 -A3 errno ./ -r //顯示行號,顯示前2行,後3行的共6行內容
2、find
全域性替換檔案中指定字串:
find dir/ -name “*.cpp” -exec sed ‘s/vector/list/g’ -i {} \;
三、程序相關
1、lsof (list open file)
lsof -i:80
2、netstat
檢視所有端口占用情況:
netstat -anp
檢視通訊的資料是否阻塞:
netstat -tn
可以看 Recv-Q Send-Q 是否很大。
3、檢視程序詳細資訊
檢視程序完整路徑:
ll /proc/$PID/exe
四、md5加密
md5sum config.plist | cut -d ’ ’ -f1
五、zip 壓縮與解壓縮
zip -r test.zip ./test
unzip -o -d /root/ test.zip
-o:覆蓋檔案時不提示,直接覆蓋
-d:指明解壓路徑
三、批量刪除SVN目錄
find . -type d -name “.svn” | xargs rm -rf