一、简单介绍

下面介绍几个可能不太常用但是面试题经常会用用到的小工具:

命令:cut
作用:截取某一个字段
'-d' 后面跟分隔字符,把字段分割为若干个区间。
'-c' 后面接的是第几个字符,也可以是一个区间n1-n2,还可以是多个数字n1,n2,n3.
'-f' 后面接的是第几个区块,区块由分隔符分隔开.

示例:使用cut以":"为分隔符,截出/etc/passwd的第三段字符
cut -d: -f3 /etc/passwd
命令:sort
作用:用作排序
' ' 后面不跟参数默认对每一段的首字母进行ASCII升序排序
'-t' 后面跟分隔符,用分隔符把字段分割为若干区间。跟cut的-d一个意思
'-n' 使用纯数字排序
'-r' 反向排序
'-u' 去重复,有点类似uniq -c,更多使用的是后者
'-kn1,n2' 由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序,需要跟-t连用

示例:使用sort以":"为分隔符,对/etc/passwd文件的第5段排序
sort -t: -k5 /etc/passwd
命令:wc
作用:用于统计文档的行数、字符数、词数
'-l' 统计行数
'-m' 统计字符数
'-w' 统计词数
命令:uniq
作用:去处重复的行,最常用的功能就这个
'-c ' 统计重复的行数,并把行数写在前面 注意:使用uniq 的前提是需要先给文件排序,否则不管用。
命令:tr [-ds]
作用:替换字符
'-d' 后跟需要删除的某个字符
'-s' 把重复的字符去掉

示例:把大写变成小写
head -n2 /etc/passwd |tr '[a-z]' '[A-Z]'
命令:tee filename
作用:把文件写入后面所跟的文件中的同时,还显示在屏幕上
类似与重定向 “>”, 但是比重定向多了显示的功能

示例:如何把一个命令的输出内容不仅打印到屏幕上而且还可以重定向到一个文件内?
cat /etc/passwd |tee .txt
命令:split [-bl][num] filename NameYouWant
作用:切割文档
'-b' 依据大小分割文档,单位为byte,如果要以M为单位,可以这样写:split -b 10M file
'-l' 依据行数来分割文档 注意:如果split不指定目标文件名,则会以xaa,xab...这样的文件名存取切割后的文件
如果split指定了目标文件名,如Test,则会以Testaa,Testab来命名切割后的文件

二、实例

通过Apache访问日志access.log统计IP和每个地址访问的次数,按照访问量列出前十名。日志格式样例如下:

192.168.1.247 - - [/[ul/:::  [] "GET /[HTTP/1.1  200  19]"
答案如下:
awk '{print $1}' access.log|sort|uniq -c|sort -nr|head

shell基础之书写需要用到的小工具的更多相关文章

  1. InkImageDataSetGenerator-开源一个可用于机器学习的书写轨迹图片生成的小工具

    这是一个简单易用的图片数据集生成小工具,基于OpenCV和UWP Ink API,它可以根据指定的手写轨迹生成一系列各个角度的图片.每张图片的尺寸和总体数量都是可以指定的,均存放在统一的生成目录中.h ...

  2. shell脚本,录制和回放终端的小工具script。

    action.log和time.log这两个配置文件被当做script命令的参数.这两个文件可以随便命名.这里用time.log和action.log.其中time.log用于存储时序信息,描述每一个 ...

  3. 【Shell 编程基础第一部分】第一个Shell脚本HelloShell及一些简单的Shell基础书写与概念;

    http://blog.csdn.net/xiaominghimi/article/details/7603000 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...

  4. Linux实战教学笔记17:精简shell基础

    第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...

  5. shell基础、变量、相关脚本

    目录 一.shell基础 书写规范 引号 配置文件 read交互 脚本调式 小节总结 二.变量 变量类型 位置变量 状态变量 替换和删除 变量补充 变量运算 小节总结 三.相关脚本面试题 统计hist ...

  6. shell基础知识讲解

    第1章 shell基础 1.1 什么叫做shell编程 shell编程也叫做bash高级编程语法 1.2 常见的shell命令解释器 bash            redhat和centos使用 d ...

  7. Shell基础学习小结

    0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...

  8. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...

  9. shell基础二十篇 一些笔记

    shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...

随机推荐

  1. coursera 《现代操作系统》 -- 第四周 处理器调度

    优先级反转 这往往出现在一个高优先级任务等待访问一个被低优先级任务正在使用的临界资源,从而阻塞了高优先级任务:同时,该低优先级任务被一个次高优先级的任务所抢先,从而无法及时地释放该临界资源.这种情况下 ...

  2. Oracle 提供的start with 关键字用法

    在相关业务查询中,我们常常遇到相关的上下级关系情况,如下图中行政区划关联,此时就要用到Oracle 提供的start with 关键字来帮助我们进行递归查询 基本语法 SELECT ... FROM ...

  3. document write & close

    在载入页面后,浏览器输出流自动关闭.在此之后,任何一个对当前页面进行操作的document.write()方法将打开—个新的输出流,它将清除当前页面内容. 必须确保调用document.close() ...

  4. 目标是:互联网方向的Java开发工程师

    我们需要这样完美的你: --师出名门:应届统招本科及以上学历,计算机相关专业: --技艺超群:熟悉JAVA面向对象编程, J2EE体系结构,熟悉Struts2.Spring.Ibtais.Memcac ...

  5. 详解mysql数据库的左连接、右连接、内连接的区别

    一般所说的左连接,外连接是指左外连接,右外连接.做个简单的测试你看吧. 先说左外连接和右外连接: SQL>select * from t1; ID NAME ---------- ------- ...

  6. OpenAI gym的建模思想

    一.强化学习问题需要描述那些内容 强化学习中最主要的两类对象是“个体”和“环境”,其次还有一些像“即时奖励”.“收获”.“状态”.“行为”.“价值”.“策略”.“学习”.“控制”等概念.这些概念把个体 ...

  7. springboot springmvc 支持 https

    Spring Mvc和Spring Boot配置Tomcat支持Https 背景 最近在项目开发中需要让自己的后端Restful接口支持https,在参考了很多前辈们的博客后总结了一些. Spring ...

  8. phonegap file api

    https://github.com/chrisben/imgcache.js/tree/master/examples 1.FILE API file api最大的两个功能是download和upl ...

  9. JavaScript Date to c# Ticks

    var ticks =((yourDateObject.getTime()*10000)+621355968000000000); var minDate = new Date("2013& ...

  10. CSS素材+特效

    1.字体:https://www.zhihu.com/question/19680724 2.loading特效:http://www.cnblogs.com/lhb25/archive/2013/1 ...