LINUX常用命令

一、编码转换

1、iconv

应该算是LINUX下最常用的文本编码转换工具,一般系统自带。使用方法如

iconv -f gb2312 -t utf-8 filename -o newfilename

参数解释:

-f,--from  文件原编码
-t,--to    转换之后的编码
-o,--output  转换成功后另存为的文件名,如果省略此参数和新文件名,则将转换结果输出到标准输出)

2、enca

这个和 iconv 命令一样,也是用来转换文本编码的。相对于 iconv ,它有两个优点,一是可以查看文件编码,二是可以直接批量转换文件夹下所有文件(非递归)。 但它有一个非弱点的弱点,即非系统内置。下载地址:

http://pkgs.repoforge.org/

使用方法:

//转换编码: -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=$1
touch tmp
for i in $dir/*
    do
        iconv -c -f gbk -t utf8 $i > tmp
        cp tmp $i
    done
rm -rf tmp

执行 iconv1 src/ 即可批量转换 src 目录下所有文件编码,效果同 enca 想要递归转换?也很简单:

dir=$1
filelist=`find $dir -type f`
for i in $filelist
    do
        iconv -c -f gbk -t utf8 $i > tmp
        mv tmp $i
        echo $i
    done

使用方法同上。

3、convmv

这个命令不同于上面两个,它是用来转换文件名中的乱码的。比如说我们项目中一般会有 "协议文档.doc",在LINUX下文件名就会显示乱码,就可以通过下面命令转换:

convmv -f gb2312 -t utf-8 -r doc/ --notest

其它参数不用说吧,用法和 iconv 非常相似,不同的是,它内置了递归,即 -r 参数,另一个参数 --notest 如果不加上,表示测试显示而非正式转换,所以呢如果只是想看一下乱码中的文件名是什么,就忽略此参数吧,否则记得加上此参数。 同样可惜的是,此命令也非一般LINUX发行版内置,下载地址同上:

http://pkgs.repoforge.org/

二、批量搜索和替换

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 压缩与解压缩

http://www.cnblogs.com/chinareny2k/archive/2010/01/05/1639468.html

zip -r test.zip ./test
unzip -o -d /root/ test.zip
-o:覆盖文件时不提示,直接覆盖
-d:指明解压路径

三、批量删除SVN目录

find . -type d -name ".svn" | xargs rm -rf

find . -type d -name ".svn" | xargs rm -rf
find . -type f -name "*.meta" | xargs rm -rf

原文地址:https://www.cnblogs.com/tianyajuanke/p/3455921.html