一、简单介绍

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

命令: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. RabbitMQ中Queue详细介绍

    新建队列 新建Queue时有很多参数,都代表什么含义,在这里解释一下: 前述:Rabbit版本为3.7.6 ErLang 版本为 21.0.1 Name 必填项,队列的名字,建议格式可以为多个字段,表 ...

  2. python系列十五:Python3 错误和异常

    #!/usr/bin/python #-*-coding:gbk-*- #Python3 错误和异常'''Python 语法错误或者称之为解析错语法分析器指出了出错的一行,并且在最先找到的错误的位置标 ...

  3. python系列六:Python3元组tuple

    '''元组与列表类似,不同之处在于元组的元素不能修改.元组使用小括号,列表使用方括号.''''''uple元素不可变有一种特殊情况,当元素是可变对象时.对象内部属性是可以修改的!tuple的不可变限制 ...

  4. ECMAScript6面对大于0xFFFF的Unicode字符如何正确返回长度

    一.match() 1.定义 match()方法用于检索字符串内指定(字符串或正则)的值,返回指定值的数组,若找不到,返回null. 2.语法 str.match(searchvalue) str.m ...

  5. ASP-Server.Transfer-Response.Redirect

    Server.Transfer Transfer 方法把一个 ASP 文件中创建的所有状态信息(所有 application/session 变量以及所有 request 集合中的项目)发送(传输)到 ...

  6. IBM WebSphere cannot start in RAD 9.1

    Have solved the problem. Solutions follows Step 1: double click on "WebSphere Application Serve ...

  7. Linux下查看CPU型号,内存大小,硬盘空间命令

    1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:删除重 ...

  8. Linux python3安装/shell脚本/if/循环/函数

    python3安装 安装过程 安装包: wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgztar -xvf Python-3.7 ...

  9. nodejs从服务器获取数据

    // 从服务器获取数据 request('http://192.168.1.7:8080/getDemo', function(error, response, body) { console.log ...

  10. C++语言的I/o使用方法详解

    构造器 语法: fstream( const char *filename, openmode mode ); ifstream( const char *filename, openmode mod ...