文档章节

常见Shell命令用法总结

小骏骏
 小骏骏
发布于 2016/02/19 15:22
字数 1433
阅读 67
收藏 12

常见命令用法总结 

-----  目录:  ---

  1. 关于grep的总结  
  2. 关于egrep的总结  
  3. 关于tr的总结 
  4. 关于sort的总结  
  5. 关于uniq的总结  
  6. 关于cut的总结  
  7. 关于tee的总结  
  8. 关于split的总结
  9. 关于type的使用  
  10.  关于find的使用  
  11. 关于xargs的使用   



关于grep的总结
找出所需字符串的时候可用引号也可以不用引号。 
grep bc test
grep "bc" test
grep 'bc' test

注:以上3中形式都能找出test文件中相对应含有字符串bc的行并打印出来。
比较常用的参数有;
-i, --ignore-case         忽略大小写
-n, --line-number         print line number with output lines
-v, --invert-match        select non-matching lines 显示不匹配的行
-h, --no-filename         suppress the prefixing filename on output查询多文件时不显示文件名
-l, --files-with-matches  print only names of FILEs containing matches查询多文件时只显示文件名
grep select * ,               列出当前目录下所有包含select 字样的文件名及含有select字样的行。
grep -h select * ,          和上一条相似,但不显示文件名称。
grep -l select * ,           和第一条相似,但只显示文件名。



 
2、关于egrep的总结
egrep 是扩充功能的grep
egrep ‘2|5’ 1.txt ,列出含有2或者5的行
egrep '12(@|3)' test 列出含有12且后面紧跟@或3的行




3、关于tr的总结

从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。

-s, --squeeze-repeats  如果匹配于SET1 的字符在输入序列中存在连续的重复,在替换时会被统一缩为一个字符的长度
tr test '12' '45' 将文件中的12替换为45 
cat test |tr '[a-z]' '[A-Z]' 将文件中的小写全部替换为大写
tr ' ' '\n' <test 把test文件中的所有空格替换为换行
tr -s ' ' ' ' <test 把test文件中每行中连续出现的空格替换为一个空格




4、关于sort的总结

sort [选项]... --files0-from=F 

串联排序所有指定文件并将结果写到标准输出。


-c, --check, --check=diagnose-first 检查输入是否已排序,若已有序则不进行操作
-r, --reverse 逆序输出排序结果
 -n, --numeric-sort 根据字符串数值比较
-k, --key=位置1[,位置2] 在位置1 开始一个key,在位置2 终止(默认为行尾)
 -u, --unique 配合-c,严格校验排序;不配合-c,则只输出一次排序结果




  5、关于uniq的总结
uniq对重复的行只保留一行。 【注意】对于处理字符长的时候一般先sort然后再uniq。
-c, --count 在每行前加上表示相应行目出现次数的前缀编号
-d, --repeated 只输出重复的行



  
6、关于cut的总结
cut 主要的用途在于将一行里面的数据进行分解,最常使用在分析一些数据或文字数据的时候!
这是因为有时候我们会以某些字符当作分割的参数,然后来将数据加以切割,以取得我们所需要的
数据。
cut  -d" " -f1  test 以空格为分割符,并输出第一列
last | cut -c1-20 //将 last 之后的数据,每一行的 1-20 个字符取出来








7、关于tee的总结
将数据输出重定向到文件的时候,屏幕上就不会出现任何的数据!那么如果我们需要将数据同时
显示在屏幕上跟档案中呢?这个时候就需要 tee 这个指令。
last |tail |tee last.list | cut -d " " -f1 将last的最后10行写进last。last文件并接着处理并输出在屏幕。





8、关于split的总结
将大的文件分割成小的文件。
-l, --lines=数值 指定每个输出文件有多少行
-C, --line-bytes=大小 指定每个输出文件里最大行字节大小



 
9、关于type的使用
type打印一个命令的绝对路径
[guo@guo ~]$ type vim
vim is hashed (/usr/bin/vim)
[guo@guo ~]$ type perl
perl is /usr/bin/perl



  
10、关于find的使用
find /home/guo/  -name  test找出文件夹guo中的test文件
find / -name “*apple* -print
find /home –name “[!abc]”
find /home –name “?[1-9]”
find / -type d(f b c l p)
find / -mtime -5 查找最后修改小于5天的文件
-mtime   文件修改时间//vi、echo修改文件会改变此文件时间
-atime  文件访问时间//用cat、vi查看会改变此文件时间
-ctime   文件改变时间// vi 、echo修改文件、chmod、chown会改变此文件时间
stat fileanme    查看以上3个时间



  
11、关于xargs的使用 

xargs从标准输入中接受单词列表的命令,并把这些单词作为参数传递给指定的命令


ls |xargs rm//把ls列出的内容再通过rm删除
可以每次删除一部分文件
ls |xargs –n 2 rm
ls | xargs –n 2 echo “==>”
有时目录里文件太多了不能使用rm *删除这时
ls | grep ‘^abc’ |xargs –n 20 rm



 
12、关于bc的使用
bc命令:进行算术运算,但不限于整数运算
scale=4 //表示计算结果保留4位小数
bc还可以用在shell变量赋值中
ABC=`echo “scale=4;8/3” | bc`
echo $ABC


 

 
脚本编程
1.1.1.1 www.baidu.com
2.2.2.2 www.baidu.com
3.3.3.3. www.sina.com.cn
2.2.2.2 www.chinauxin.net
2.2.2.2 www.51cto.com
1.1.1.1 www.linuxtone.org




输出
2.2.2.2 www.baidu.com,www.chinauxin.net,www.51cto.com
1.1.1.1 www.baidu.com,www.linuxtone.org
3.3.3.3. www.sina.com.cn
 awk '{a[$1]=a[$1]" "$2}END{for(i in a)print i,a[i]}' file








创建html文件  ::cat 运维必备.html  |sed -e '/^$/d'|sed  -n  '2,$ s/^/\<br\>/p' |sed 's/$/\<\/br\>/' >a.html




 内核、Shell、文件系统这三个部分构成了linux系统




 合并两个文件
paste 1 2|awk '{if($1 ~$2) print $1 ;else print $0}' 




 a=`date +"%Y-%m-%d  %H : %M : %S" -d "5 min ago"`

本文转载自:http://www.cnblogs.com/linuxer/p/3260329.html

共有 人打赏支持
小骏骏
粉丝 8
博文 111
码字总数 22428
作品 0
厦门
高级程序员
Linux命令、编辑器与Shell编程

Linux命令、编辑器与Shell编程 本书以实用为原则,以 Linux系统管理为核心,在深入剖析 Linux系统运行原理的基础上,重点介绍 了 Linux系统管理中常见命令的各种用法、编辑器的使用及利用 Sh...

李航421
2013/09/05
0
0
运维老鸟分享-学好Linux技术大绝招

随着互联网的飞速发展,越来越多的人开始学习 Linux 技术。很多初学者面对 Linux 技术的海洋无从下手,近 1 0年一线互联网运维老鸟为菜鸟总结了学好 Linux 技能的大绝招: 1、基于 VMware 虚...

wgkgood
2017/06/16
0
0
linux常见上传下载,以及跨机器文件传输命令总结。

linux常见上传下载,以及跨机器文件传输命令总结。 近来项目完成了,搭建测试环境时,需要下载一些软件,还有由于堡垒机的存在,多个服务器之间文件的相互拷贝,十分麻烦,特来总结了一下,加...

奇葩界张三
2017/04/26
0
0
shell 括号的特殊用法

Shell中的括号有其特殊的用法, 现总结如下: 1. 符号$后的括号 ${a} 变量a的值, 在不引起歧义的情况下可以省略大括号. $(cmd) 命令替换, 结果为shell命令cmd的输出, 和效果相同, 不过某些She...

高健2013
2015/02/11
0
0
shell函数【参数传递及输入输出】&内置函数

Linux——shell脚本基础3:shell函数【参数传递及输入输出】&内置函数 函数定义 1 退出状态 1 参数传递 2 标准IO 2 脚本调试 2 AND&OR 3 内置命令补充 3 函数定义 函数定义: 在Shell 中,函...

hanzhankang
2014/02/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部