shell常见命令02

grep

该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等,比如可以加在ps, tail, cat后面

  • grep Nottingham uk-500.txt:在uk-500这个文档行中查找Nottingham所在的记录并显示出来
  • more uk-500.txt | grep Nottingham:用管道连接more和grep两个命令,结果与上个命令相同
  • more uk-500.txt | grep “Nottingham”:结果与上个命令相同
  • grep “West Ward” uk-500.txt:能正确查找出West Ward
  • grep West Ward uk-500.txt:第一行会报错,因为不能正确解读空格的意思,只能查找出West##

文件重定向

  • 执行程序grep West Ward uk-500.txt,会将默认的错误结果输出到控制台屏幕上,因为STDERR的默认位置为控制台
  • 大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回??到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。
  • 需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

参考链接:http://www.runoob.com/linux/linux-shell-io-redirections.html

命令 说明
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m 将输出文件 m 和 n 合并。
n <& m 将输入文件 m 和 n 合并。
<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。
  • grep West Ward uk-500.txt > myAddresses:将输出重定向到myAdresses文件中,但是错误输出还是在控制台
  • grep West Ward uk-500.txt > myAddresses 2>&1:将STDOUT和STDERR都输出到myAdresses文件中
  • grep West Ward uk-500.txt > myAddresses 2> myErrors:将错误输出到myErrors文件中

Piping的使用

  • more uk-500.txt | grep “Manchester”:在uk-500.txt文件中查找“Manchester”
  • more uk-500.txt | grep “Manchester” | wc -l:查找“Manchester”之后统计个数
  • more uk-500.txt | grep “Manchester” | sort > manchester.txt:将查找的结果按照所在记录的首字母排序,并输出到文件manchester.txt中
  • more uk-500.txt | grep “[Nottingham|Manchester]” :查找了所有包含在[]中的字符,而非字符串
  • more uk-500.txt | grep [Nottingham|Manchester] :-bash: Manchester]: command not found grep: Unmatched [ or [^,因为shell想要解读 “grep [Nottingham” ,但解读不出来, “|” 视为一个管道连接 “Manchester]” 命令,因此报错

正则表达式中特殊字符

  • * : 代表任意字符(0到多个)
  • [ ] : 中间为字符组合,仅匹配其中任一一个字符
  • ^string:表示以string开头的字符
  • string$:表示以string结尾的字符
  • . :表示单个字符

grep

  • 它在一个或多个文件中搜索字符串模板。

转译字符 \

  • grep "St." uk-500.txt:其中的点表示的是任意单个字符
  • grep "St\." uk-500.txt:其中.表示的就是一个点,字面的意思

使用$存放变量值

  • export count=23 grep $count uk-500.txt:其中$count指的是23,查找23
  • grep ‘$count’ uk-500.txt:查找结果什么都没有,‘’防止了将$进行转换,查找的任然是$count

echo

  • echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

显示普通字符

  • echo "It is a test":结果 It is a test

显示转义字符

  • echo "\"It is a test\"":结果 "It is a test"

显示换行

echo -e "OK! \n" # -e 开启转义
echo "It is a test"
结果:
OK!
It is a test

显示不换行

echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"
结果:
OK! It is a test

原样输出字符串,不进行转义或取变量,用单引号(‘)

  • echo ‘$name\"‘:结果 $name\"

显示命令执行结果,注意反引号(`)

  • echo `date`:结果Thu Jul 24 10:08:46 CST 2014,
  • 注意: 这里使用的是反引号 `, 而不是单引号 ‘。结果将显示当前日期
  • 反引号(`) 位于键盘的Tab键的上方,起命令替换的作用。命令替换也就是shell能够将一个命令的标准输出插在一个命令行中任何位置。

参考链接:https://www.runoob.com/linux/linux-shell-echo.html

单引号(‘)和双引号(“)

  • 如果没有单引号或双引号,shell会把空格后的字符串解释为命令。
  • 单引号和双引号的区别。单引号告诉shell忽略所有特殊字符,而双引号忽略大多数,但不包括$、\、`。

实例:

testvalue=100
echo ‘The testvalue is $testvalue‘
The testvalue is $testvalue
echo "The testvalue is $testvalue"
The testvalue is 100

参考链接:https://blog.csdn.net/beginning1126/article/details/8633900

原文地址:https://www.cnblogs.com/Stephanie-boke/p/11711309.html

时间: 2024-11-05 23:21:07

shell常见命令02的相关文章

hbase shell 常见命令

quick start from official Hbase  hbase(main):003:0> create 'test', 'cf' 0 row(s) in 1.2200 seconds hbase(main):003:0> list 'test' .. 1 row(s) in 0.0550 seconds hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1' 0 row(s) in 0.0560 seconds hba

shell常见命令总结(三)

1.1. shell中cut命令的用法 第一种用法与awk相似,下面的用awk表示: cat /etc/passwd|awk -F : '{print $1,$5}' cut -d : -f 1,5  /etc/passwd  /-d后面的冒号表示字段之间的分隔符,-f表示去分隔符后的哪些字段 使用cut命令还可以剪切以字符数量为标量的部分字符,该功能通过-c选项实现,其不能与-d选项共存. cut -c  1-4 /etc/passwd   #取每行的前1-4个字符 1.2. 回车换行符 Wi

shell常见命令总结(二)

1.1. shell的数据类型 shell的数据类型是动态的数据类型.即不需要事先定义,而可以直接使用.使用过程中,能随时变换类型.比如 awk {'print $1'}  /opt/test.txt  从文本文件中打印从第一列,然后可以直接用$1进行算数比较运算. b=grep "8-7-112-132" /opt/ b就是一个list类型.可以使用 for i in b 1.2. 其他常用命令 1.2.1. tr单个字符替换 只能用一个字符替换另一个字符,如 a=`echo $IP

shell常见命令总结(一)

1.1. 各种判断 1.1.1. 字符串判断 str1 = str2 当两个串有相同内容.长度时为真 str1 != str2 当串str1和str2不等时为真 -n str1 当串的长度大于0时为真(串非空) -z str1 当串的长度为0时为真(空串) str1    当串str1为非空时为真 1.1.2. 数字的判断 int1 -eq int2 两数相等为真 int1 -ne int2 两数不等为真 int1 -gt int2 int1大于int2为真 int1 -ge int2 int1

shell常见命令01

常用命令01 more 查看文件里的内容 return键:换行 空格键:下一页 b: 后退,上一页 /pattern:查找文档中pattern q:强制退出 ls 展示文件夹内内容 ls:输出文档基本属性 ls -l: 长数据串行出,包含档案的属性等等数据 ls -a:全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来,隐藏文档以一个点开头 ls -F:根据档案.目录等信息,给予附加数据结构,例如: *:代表可执行档: /:代表目录: =:代表 socket 档案: |:代表 FIFO

Linux用户权限常见命令

01. 用户 和 权限 的基本概念 1.1 基本概念 用户 是 Linux 系统工作中重要的一环,用户管理包括 用户 与 组 管理 在 Linux 系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限 在 Linux 中,可以指定 每一个用户 针对 不同的文件或者目录 的 不同权限 对 文件/目录 的权限包括: 序号 权限 英文 缩写 数字代号 01 读 read r 4 02 写 write w 2 03 执行 excute x 1 1.2

Linux常见命令 ls cd type whatis date man cal hwclock

Linux常见命令:[可选项],<必须项>,-可重复多次 ,| 多选一  ,{}分组 ls(list) -l:long 长格式,一个文件或目录显示一行  文件类型:   -:普通文件   d:目录文件   b:块设备文件(block)   c:字符设备文件(character)   l:符号链接文件(symbolic link file)   p:命令管道文件(pipe)   s:套接字文件(socket)     文件权限(9位,每三位一组,每组rwx):  文件硬链接次数  文件属主(ow

一个linux常见命令的列表

这是一个linux常见命令的列表. 那些有• 标记的条目,你可以直接拷贝到终端上而不需要任何修改,因此你最好开一个终端边读边剪切&拷贝. 所有的命令已在Fedora和Ubuntu下做了测试 命令 描述 • apropos whatis 显示和word相关的命令. 参见线程安全 • man -t man | ps2pdf - > man.pdf 生成一个PDF格式的帮助文件   which command 显示命令的完整路径名   time command 计算命令运行的时间 • time c

linux 基础 shell脚本命令

#########shell脚本命令#### 1.diff diff      file file1             ####比较两个文件的不同 -c                         ####显示周围的行 -u                         ####按照一格式统一输出生成补丁 -r                         ####比较两个文件的不同 patch       file file.path       ####打补丁 -b