[转]Linux经常使用终端命令之cat、grep、echo

Linux经常使用终端命令之cat、grep、echo


这三个指令,每个都很经常使用,用法也都不少。做为一个Linux初学者,我还不能很好的掌握三个命令的用法,因而先在这篇博客里作一个简单的整理和总结,以加深对三个指令的理解。javascript

grep

先说grep,linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是全部用户。(摘抄过来的)php

grep的通常使用方法就是:grep+[options]+pattern+filenamecss

其中patter是要搜索的字符串或正则表达式。html

参数和正则表达式的字符含义以下:java

一、参数:
-i :忽略大小写
-c :打印匹配的行数
-l :从多个文件中查找包含匹配项
-v :查找不包含匹配项的行
-n:打印包含匹配项的行和行标
二、RE(正则表达式)
\ 忽略正则表达式中特殊字符的原有含义
^ 匹配正则表达式的开始行
$ 匹配正则表达式的结束行
\< 从匹配正则表达式的行开始
\>; 到匹配正则表达式的行结束
[ ] 单个字符;如[A] 即A符合要求
[ - ] 范围 ;如[A-Z]即A,B,C一直到Z都符合要求
. 全部的单个字符
* 全部字符,长度能够为0
python

明确要求搜索子目录:grep -r
或忽略子目录:grep -d skip
linux

若是有不少 输出时,您能够经过管道将其转到’less’上阅读:
$ grep magic /usr/src/Linux/Documentation/* | less
正则表达式

常见的示例有:objective-c

grep Aug /var/log/messages 在文件 ‘/var/log/messages’中查找关键词”Aug”
grep ^Aug /var/log/messages 在文件 ‘/var/log/messages’中查找以”Aug”开始的词汇
grep [0-9] /var/log/messages 选择 ‘/var/log/messages’ 文件中全部包含数字的行
grep Aug -R /var/log/* 在目录 ‘/var/log’ 及随后的目录中搜索字符串”Aug”
算法

结合选项就会有更丰富的应用。

cat

接着是cat的用法,在此我参考了http://blog.csdn.NET/jackalfly/article/details/7556848


cat命令是linux下的一个文本输出命令,一般是用于观看某个文件的内容的;
cat主要有三大功能:
1.一次显示整个文件。
$ cat   filename
2.从键盘建立一个文件。
$ cat  >  filename
只能建立新文件,不能编辑已有文件.
3.将几个文件合并为一个文件。
$cat   file1   file2  > file
cat具体命令格式为 : cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串链接后传到基本输出(屏幕或加 > fileName 到另外一个档案)
参数:
-n 或 –number 由 1 开始对全部输出的行数编号
-b 或 –number-nonblank 和 -n 类似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 –show-nonprinting
范例:
cat -n linuxfile1 > linuxfile2 把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -b linuxfile1 linuxfile2 >> linuxfile3 把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)以后将内容附加到linuxfile3 里。
范例:
把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -n linuxfile1 > linuxfile2
把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)以后将内容附加到 linuxfile3 里。
cat -b linuxfile1 linuxfile2 >> linuxfile3
cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容


 

对上面第三点作个补充说明:
cat   file1   file2  > file表示将file1和file2的内容串接后输入到file文件中,若是已经存在,file文件被重写。
cat   file1   file2  >>file 表示将file1和file2的内容串接后输入到file文件中,若是已经存在,新内容追加在file文件原内容的后面。

cat <<EOF >file的用法:
将标准输入的内容输出到file中,若是是cat<<EOF>>file,则是追加到file中。
标准输入已EOF结尾。(此处EOF表示用键盘打出的内容)
例如:


echo

关于echo命令,有一篇文章讲得很清楚,http://hi.baidu.com/yajiu/item/87c25a0795be9b10cd34ea56
echo命令的功能是在显示器上显示一段文字,通常起到一个提示的做用。
该命令的通常格式为: echo [ -n ] 字符串
其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词做为字符串输出,各字符串之间用一个空格分割。

功能说明:显示文字。
语   法:echo [-ne][字符串]或 echo [--help][--version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参   数:-n 不要在最后自动换行
-e 若字符串中出现如下字符,则特别加以处理,而不会将它当成通常
文字输出:
   \a 发出警告声;
   \b 删除前一个字符;
   \c 最后不加上换行符号;
   \f 换行但光标仍旧停留在原来的位置;
   \n 换行且光标移至行首;
   \r 光标移至行首,但不换行;
   \t 插入tab;
   \v 与\f相同;
   \\ 插入\字符;
   \nnn 插入nnn(八进制)所表明的ASCII字符;
–help 显示帮助
–version 显示版本信息

echo示例:
示例一 打印当前的PATH设置
[root@jfht ~]# echo $PATH 
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/apache/apache-ant-1.7.1/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

示例二 打印当前的LANG设置
[root@jfht ~]# echo $LANG 
zh_CN.GB18030
 
在/etc/profile的末尾加上
export LANG=zh_CN.GB18030
而后从新登陆便可。便可将linux默认语言变为中文。

 
示例三 对输出信息进行转义,好比输出换行
[root@jfht ~]# echo "hello\nworld" 
hello\nworld
[root@jfht ~]# echo -e "hello\nworld" 
hello
world
[root@jfht ~]# echo 'hello\nworld' 
hello\nworld
[root@jfht ~]# echo -e 'hello\nworld' 
hello
world
[root@jfht ~]# echo hello; echo world 
hello
world

 
示例五 输出到标准错误输出
在编写脚本时,常常会利用管道将前一个命令的输出做为后一个命令的输入,若是要打印调试信息,但不把该信息干扰后面的命令,能够将调试信息输出到标准错误输出,以下所示。
[root@jfht ~]# echo hello >&2 
hello

示例来自连接:http://codingstandards.iteye.com/blog/786101

 

 
0
0
 
 
 

 

 
猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮

 

 

查看评论

  暂无评论

 
 
发表评论
  • 用 户 名:
  • sharptools
        
* 以上用户言论只表明其我的观点,不表明CSDN网站的观点或立场
 
 
快速回复 TOP
相关文章
相关标签/搜索