一、简单介绍

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

命令: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. C#反射 程序域

    1:加载dll到当前应用程序域: public static void LoadAllAssembly(string bindir) //bindir是dll所在的完整路径 { List<Ass ...

  2. 我的Android进阶之旅------>【强力推荐】Android开源图表库XCL-Charts版本发布及展示页

    因为要做图表相关的应用,后来百度发现了一个很好的Android开源图表库(XCL-Charts is a free charting library for Android platform.) 下面 ...

  3. java中使用axis发布和调用webService及dom4j解析xml字符串

    工作中需要调用webService服务,这里记录一下如何在java中发布和调用webService. 需要的jar包: webService服务端: import javax.jws.WebMetho ...

  4. SSH远程登陆docker容器

    环境: Ubuntu 16.04(mac osx的VMware Fushion环境) 任务: Ubuntu 16.04通过SSH登陆docker(目的是为了运行在其他服务器的Jenkins访问dock ...

  5. linux shell 入门

    本文是本人学习linux shell入门收集整理,不完全原创. 参考博文: http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html ...

  6. 前端基础之css样式(选择器)

    一.css概述 CSS是Cascading Style Sheets的简称,中文称为层叠样式表,对html标签的渲染和布局 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. 例如 二.c ...

  7. 【转】JAVA学习笔记----PL/SQL最差实践

    1. 超长的PL/SQL代码   影响:可维护性,性能   症状:    在复杂的企业应用中,存在动辄成百上千行的存储过程或上万行的包.为什么是最差:    太长的PL/SQL代码不利于阅读,第三方工 ...

  8. 谷歌机器学习速成课程---降低损失 (Reducing Loss):随机梯度下降法

    在梯度下降法中,批量指的是用于在单次迭代中计算梯度的样本总数.到目前为止,我们一直假定批量是指整个数据集.就 Google 的规模而言,数据集通常包含数十亿甚至数千亿个样本.此外,Google 数据集 ...

  9. extern "C" 有关问题

    之前帮老板编译一个库的代码,遇到了一些问题,后来发现问题出现在extern "C"语法上. 1. C/C++语法extern 关键字 extern是C/C++语言中表明函数和全局变 ...

  10. Funq之Lambda表达式入门

    今天接受了一个Tranning关于.net3.5 framework中的new feature. 其中最不明白的还是Lambda表达式.回来后又仔细的思考了一番,总算有点体会在这里写一下.既然是入门, ...