shell命令用法集锦

1.grep统计字段出现次数

grep -o "lvlv" txt|wc -l 

命令解释:
(1)grep -o
-o是only-matching缩写。
Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.

其中文意思就是-o指示grep显示所有匹配的地方,并且每一个匹配的字段单独一行输出。

(2)wc -l
统一输入的行数。就可以知道这个要统计的字段出现的次数了。

2.查看Linux系统版本
方法一:

lsb_release -a

命令解释:
lsb_release -a :FSG(Free Standards Group)组织开发的LSB (Linux Standard Base)标准的一个命令,用来查看linux兼容性的发行版信息。这个命令适用于所有的linux,包括Redhat、SUSE、Ubuntu等发行版。

方法二:

cat /etc/issue

方法三:
如果Linux是RedHat Linux可使用如下命令:

/etc/redhat-release

3.查看Linux系统内核版本
方法一:

cat /proc/version

方法二:

 uname -a

命令解释:
二者显示的内容相同,显示linux内核版本号。

4.linux下查看文件编码类型
文件的编码和显示是一个令人头痛的东西,真希望这个世界上只存在utf-8编码,那就没那么痛苦了。vim编码配置里面有4个选项,分别是encoding 、fileencodings、fileencoding和termencoding 。前三者的简写分别对应为enc、fencs、fenc。

4.1在Vim中可以直接查看文件编码

:set fileencoding
或者简写
:set fenc

可显示文件编码格式。
这个命令有致命的缺点。原因是只有正常显示文件内容时,该命令显示的文件编码格式才是文件本身的编码格式。因为该命令显示的编码格式并不是文件本身的编码格式,而是当前打开该文件所使用的编码格式。因此,这个命令在网上的说明都是不准确的,特此说明。

vim在linux下默认是以utf-8来编码文件和解析文件的,当使用vim来打开ucs2编码的文件时,会出现乱码,此时使用set fileencoding显示的是utf-8编码,而不是ucs2编码,读者可自行验证。

网上有人说如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/.vimrc 文件中添加以下内容:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936,latin-1
或者简写:
set enc=utf-8
set fencs=ucs-bom,utf-8,cp936,latin-1

本人亲自尝试 ,并不可行。vim会以fileencodings后面第一个指明的编码方式来打开utf-8编码的文件,并没有去按顺序寻找合适的编码方式来解析文件。

vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。这句话是不准确的,可见vim的自动识别编码的能力很差,基本没有。因为文件编码类型并不是保存在文件内的,也就是说没有任何 描述性的字段来记录文档是何种编码类型的。因此我们在编辑文档的时候,要么必须知道这文档保存时是以什么编码保存的,要么通过另外的一些手段来断定编码类 型,这另外的手段,就是通过某些编码的码表特征来断定,例如每个字符占用的字节数,每个字符的ascii值是否都大于某个字段来断定这个文件属于何种编 码。这种方式vim也使用了,这就是vim的自动编码识别机制了。但这种机制由于编码各式各样,不可能每种编码都有显著的特征来辨别,所以是不可能 100%准确的。

5.Linux下修改文件编码
5.1使用vim修改

:set fileencoding=encode-type

注意,这里只有当encode-type和:set fileencoding显示的编码类型不同时,才会真正修改文件的编码类型。比如将一个utf-8编码的文件转换成ucs2格式:

:set fileencoding=ucs2

5.2使用iconv来修改
命令格式:iconv -f encoding -t encoding inputfile
比如将一个UTF-8 编码的文件转换成GBK编码:

iconv -f GBK -t UTF-8 file1 -o file2

6.vim显示指明编码类型打开文件

如果知道了文件的编码类型,可显示指定编码类型来解析文件,而不用vim去猜测文件的编码类型,事实上猜测的往往是错误。命令如下:

vim file_name -c "e ++enc=ucs2"

或者在使用vim打开文件之后,在末行模式使用如下命令:

:e ++enc=ucs2

注意:如果终端,比如SecureCRT或者XSell不支持ucs2编码的话,那么还是会出现乱码,尽管vim已经采用正确的编码格式解析了ucs2的文件。

6.标准错误输出和标准输出同时输出到屏幕和指定文件

使用如下命令:

make 2>&1 | tee log.txt

2>&1 表示将标准错误输出重定向到标准输出;
tee 表示将命令结果同时输出到屏幕和文件。

参考文献

[1]http://tieba.baidu.com/p/1753178218

你可能感兴趣的:(shell命令用法集锦)