一、简单介绍

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

命令: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. jquery,日常 记录知识 点 (选择器的引用类型)

    1.标签引用$("p").$("input")例子 $("p").append( $("input").map(func ...

  2. Exploiting second-order SQL injection 利用二阶注入获取数据库版本信息 SQL Injection Attacks and Defense Second Edition

    w SQL Injection Attacks and Defense  Second Edition Exploiting second-order SQL injection Virtually ...

  3. Android系统移植与调试之------->Amlogic方案编译步骤

    1. 拷贝Amlogic的SourceCode 切换目录到  /home/roco/work/amlogic/SourceCode/mx0831-0525下将mx0831-0525.tgz拷贝到  / ...

  4. 斯坦福大学Andrew Ng - 机器学习笔记(1) -- 单变量&多变量线性回归

    大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...

  5. 给俺的 CSDN 博客加背景音乐 - 高大尚的《心经》背景音乐

    给俺的 CSDN 博客加背景音乐 - 高大尚的<心经>背景音乐 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途- ...

  6. 剑指offer 面试27题

    面试27题: 题目:二叉树的镜像 题:操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / ...

  7. 如何使用 LINQ 执行插入、修改和删除操作

        本实例实现创建 LINQ To SQL 类对数据库进行插入.修改和删除的操作:以下是 具体步骤: 1 )建立 windows 窗体应用项目文件 2 )选择 ' 项目 \ 添加新项 ' 菜单,在 ...

  8. selenium之坑:点击后页面刷新重新获取刷新前的页面(StaleElementReferenceException:Message:Element not found in the cache...)

    循环点击一列链接,但只能点到第一个,第二个失败,这是为什么,因为第二个已经是新页面,当然找不到之前页面的元素,虽然元素没变,甚至是后退回来,页面都没有变,为什么是新页面,页面长的一样不代表是同一张页面 ...

  9. python glob

    http://python.jobbole.com/81552/ glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多.查找文件只用 ...

  10. CentOS7在VMWare12中安装后不能上网解决办法

    首先要保证你的VMWare Workstation12 在安装号CentOS7后没改动什么关于网络相关的. 1.我的电脑一开始用的是VMWare WorkStations10,发现VMnet8根本不通 ...