这些年用过的unix commands

在日常开发中, 通常会写一些自动化的脚本, 特别是文本自动化的脚本经常写。 而linux commands 在完成自动化工作的作用特别大。 

下面我会总结一下我使用过的Linux commands。 

1. 文件查看命令: cat , more , less, tail 和 head 。 这几个命令都可查看一个文件, 但是功能略微不同。 cat 适合查看一个较小的文件。 more 和 less 可以自动分页, 所以适合查看比较大的文件, 并且提供了上一页和下一页的翻页功能。 tail 和 head 也是很常见的查看命令, tail 用于查看文件末尾, head 用于查看文件开头。

2. 文本编辑命令:  sed, awk。 这两个命令在文本自动化工作方面赫赫有名。 sed 用于文本自动化的增删改查, sed最重要的功能就是基本正则表达式的文本替换。 awk 的侧重点则不同, awk的优势在于处理固定格式的文件, 如 csv。 awk 可以进行数据的 过滤, 聚集,如可以求和, 也可以求平均值, 适用于数据分析。如果要简单的实现一个对账系统, sed 和 awk 是一个很好的选择。 

3. 其他文件编辑命令: cut, tr。  cut 用于提取文件中每一行的一部分字符串, 例如一个csv文件, 可以用cut 提取某一个field。 tr 可以进行文本的替换, 可以把tr当做低级版的sed。 如 tr "abc" "xyz", 这个命令就把字符串中的a 替换成 x, b 替换成 y, c 替换成 z 

4. 文本比较命令: comm, diff。  comm 用于比较两个文件 common content 和 different content, 对账系统通常会用到这个命令。  diff 和 comm 很类似, 用于比较两个文件的不同之处, 通常可以用来作为文件的版本控制。 

5. 文本的拆分和合并: split, csplit, join。  split 和 csplit 都可以用于拆分一个文件为若干个小文件。 split 可以基于文件大小拆分, csplit 可以基于正则表达式拆分。 join 类似于关系型数据库的join 操作, 把相同的行join 起来。 

6. 与目录有关的命令: basename, dirname。 这两个命令接受的输入都是一个目录字符串, basename 返回文件名 , dirname 返回当前文件的目录。 

7. 排序和去重: sort , uniq。 sort 用于文本的排序, 如获取某个目录下的最大文件, 就可以用sort。 uniq 则用于去重。

8. 统计单词数量: wc  用于统计文本单词数量 或者字符数量。 

9. xargs:这个命令是非常强大的,通常跟find 或者grep 组合起来使用。 如要删除所有的log 文件 find -type f "*log" | xargs rm 

10. 文件文本的搜索: find 和 grep。  文本搜索是非常常用的功能, find 支持搜索文件, grep 支持搜索文本。 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • GitHub原文链接,转载到简书,只为方便查看。 命令行的艺术 前言 基础 日常使用 文件及数据处理 系统调试 单...
    月上秦少阅读 1,346评论 0 1
  • 命令行的艺术 前言 基础 日常使用 文件及数据处理 系统调试 单行脚本 冷门但有用 仅限 OS X 系统 仅限 W...
    进击的诺基亚阅读 3,873评论 0 19
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 5,758评论 0 5
  • 昨天,在回家的路上,坐在车里悠哉悠哉地看着三毛的《撒哈拉沙漠的故事》,我被里面的内容深深吸引住了,尽管上学时...
    夜阑晓语阅读 3,842评论 2 9
  • 一。匹配。 判断一个字符串是否符合我们制定的规则? 二…捕获 字符串中符合我们正则表达式,规则的,内容捕获到。 三...
    时修七年阅读 1,013评论 2 0