• 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

  • 相关阅读:
    创建git项目的feature分支以及下载特定分支的仓库代码
    C++读取文件
    linux解压eclipse启动时无法找到jre环境的解决办法
    ubuntu安装谷歌浏览器
    web项目脱离Eclipse在Tomcat部署并配置Eclipse调试
    阿里巴巴连接池Druid简单使用
    gc overhead limit exceeded
    onload方法注意点
    获取Spring管理的Bean
    Java应用中使用ShutdownHook友好地清理现场
  • 原文地址:https://www.cnblogs.com/tianyajuanke/p/3455921.html
Copyright © 2020-2023  润新知