学习笔记,内容基础,适合初学者。
阅读之前,请务必花30秒查看前言说明(在第一、二章前面部分)
《Unix & Linux 大学教程》 - 第一、二章 学习笔记 Unix简介 & 什么是Linux?什么是Unix
《Unix & Linux 大学教程》 - 第三、四章 学习笔记 Unix连接 & 开始使用Unix
《Unix & Linux 大学教程》 - 第五、六章 学习笔记 GUI:图形用户界面 & Unix工作环境
《Unix & Linux 大学教程》 - 第七、八章 学习笔记 Unix键盘使用 & 能够立即使用的程序
《Unix & Linux 大学教程》 - 第九、十章 学习笔记 文档资料:Unix手册与Info & 命令语法
《Unix & Linux 大学教程》 - 第十一、十二章 学习笔记 shell & 使用shell:变量和选项
《Unix & Linux 大学教程》 - 第十三章 学习笔记 使用shell:命令和定制
《Unix & Linux 大学教程》 - 第十四、十五章 学习笔记 使用shell:初始化文件
《Unix & Linux 大学教程》 - 第二十一章 学习笔记 显示文件
《Unix & Linux 大学教程》 - 第二十二章(一) 学习笔记 vi文本编辑器(一)
《Unix & Linux 大学教程》 - 第二十二章(二) 学习笔记 vi文本编辑器 (二)
《Unix & Linux 大学教程》 - 第二十二章(三) 学习笔记 vi文本编辑器 (三)
《Unix & Linux 大学教程》 - 第二十四章 学习笔记 目录操作
《Unix & Linux 大学教程》 - 第二十五章 学习笔记 文件操作
《Unix & Linux 大学教程》 - 第二十六章(一) 学习笔记 进程和作业控制
《Unix & Linux 大学教程》 - 第二十六章(二) 学习笔记 进程和作业控制
《Unix & Linux 大学教程》 - 附录F 时区与24小时制时间
第十八章:过滤器:统计和格式化
基础知识
命令/程序
nl
语法
nl [-v start] [-i increment] [-b a] [-n ln|rn|rz] [file...]
start是起始号
increment是增量
file是文件名称
默认情况下,wl编号从1开始,wl不对空行编号!
nl作用:
1.当希望在一些数据中永久插入行号然后保存时
2.当希望在命令的输出中临时插入行号
-v:改变起始编号
-i:改变增量
-b(body numbering):正文编号,强制对所以空行编号(-b a)
-n(number format):数字格式(ln=左对齐,没有前导0;rn=右对齐,没有前导0;rz=右对齐,有前导0)
下面还是以/etc/passwd为例
nl -v 0 -i 2 -n ln /etc/passwd
编号指定从0开始,步长=2,左对齐,没有前导0,结果如下
nl -v 1 -n rn /etc/passwd
编号指定从1开始,默认步长=1,右对齐,没有前导0,结果如下
nl -n rz /etc/passwd
默认步长=1,右对齐,有前导0,结果如下
wc(word count)
语法
wc [-clLw] [file...]
file是文件名
默认情况下,wc的输出包含3个数字:数据中的行数、单词数和字符数。如果指定文件不只一个,wc将为每个文件显示一行输出,最后显示总和
作用:
统计行、单词和字符的数量
字符:就是字母、数字、标点符号、空格、制表符或者新行字符
单词:就是一串连续的字符,用空格、制表符或者新行符分隔
行:就是以新行字符结尾的一串字符
-l:统计行
-w:统计单词
-c:统计字符
-L:显示该文件中最长行的长度
统计文件夹下文件数量(不递归计算)
ls /etc | wc -l
查看现在有多数用户标识登录系统
echo "There are `who | wc -l` userids logged in right now"
空格与制表符的互换
expand
语法
expand [-i] [-t size | -t list] [file...]
size是固定宽度制表符的大小
list是制表位列表
file是文件名称
作用:
将输入文件中所以的制表符改变为空格,并且同时维持与原始文本相同的对齐方式。默认情况下,将制表位设置为每8个位置一个,因此输入中的每个制表符都将被输出中的1-8个空格替换。
-t:改变制表位。(-t size,表示设置制表位每隔size个字符一个;-t list表示制表位设置在在list位置中)
-i(initial,初始):转换行开头的制表符
下面命令将myfile的开头的每个tab(直到遇到有效字符)替换为4个空格
expand -i -t 4 myfile
如果行开头有4个tab,那么此行开头将被16个空格替换
unexpand
语法
unexpand [-a] [-t size | -t list] [file...]
size是固定宽度制表符的大小
list是制表位列表
file是文件名称
默认情况下,只替换行开头的空格。
-a:替换文中所有空格
-t:改变制表位。(-t size,表示设置制表位每隔size个字符一个;-t list表示制表位设置在在list位置中)
格式化
fold
语法
fold [-s] [-w width] [file...]
width是新行的最大宽度
file是文件名称
默认情况下,在位置80处分隔行,会分隔单词。
-w:指定每行的长度
-s:不分隔单词
fmt
语法
fmt [-su] [-w width] [file...]
width是新行的最大宽度
file是文件名称
默认情况下,假定段落由空行分隔,根据下述规则每次读取并格式化一个段落。
行宽:最大行宽=75。
句子:无论何时,尽可能地在句子末尾分隔行。
空白符:保持单词以及空行之间的所有缩进、空格。
制表符:在读取文件时,将所有的制表符转换成空格,并且在最后的输出中合适位置上插入新的制表符。
-w:指定每行的长度
-s(split only,仅拆分):拆分长行,但不连接短行
-u(uniform spacing,统一间距):使单词之间最多只有一个空格,而且句子末尾最多只有两个空格(fmt不增加空格)。
pr
语法(按页格式化文本)
pr [-dt] [+beg[:end]] [-h text] [-l n] [-o margin] [-W width] [file...]
beg是需要格式化的第一页
end是需要格式化的最后一页
text是标题中间的文本
n是每页的行数
margin是左边缘的大小
width是输出的宽度
file是文件名称
默认情况下,在顶端插入一个标题、左边插入一个边缘、底部插入一个页尾来格式化页面。标题和页尾各占5行。左边缘和页尾只用于间距,所以它们是空白的。但是标题在其中间行上包含信息:文件上一次修改的日期和时间、文件的名称以及页号(根据pr版本不同,这些细节可能会有变化)
默认情况下,pr不插入左边缘
pr假定一页有66行,标题和页尾各占5行
默认每行有72个字符
作用:按页格式化文本,使其适合打印。
-d:使用双倍行距
-h:指定标题中间部分的文本
-l:改变每页的总行数
-t:消除标题,页之间没有分隔
-W:改变输出宽度(默认每行有72个字符)
-o(offset,偏移):添加指定的左边缘,指定空格数量(默认情况下,pr不插入左边缘)
pr +begin[:end]:指定格式化的页面
fmt myfile | pr -d +3(对myfile格式化段落后,从第三页开始按页格式化,双倍行间距)
fmt myfile | pr -h "Title" +3:6(对myfile格式化段落后,第三页到第六页按页格式化,指定标题文本为“Title”)
语法(按列格式化文本)
pr [-mt] [columns] [-l lines] [-W width] [file...]
columns是输出列的数量
lines是每页的行数
width是输出的宽度
file是文件名称
-m:在单独的列中输出每个文件
-数字:指定列的数量
fmt -w 35 myfile | pr -2 -l 48(对myfile以每行35个字符格式化段落后,按页格式化,每页48行,两列)
(pr默认每行72个字符,每列结尾至少有一个空格,所以就剩下70个字符,每列最多35个字符)
pr -m f1 f2 f3(将f1,f2,f3,三个文件格式化成3个单独的列)
名词解释:
tab(tabulate):制表
tab stop:制表位(老式打字机上的术语)
French spacing:法国式间距,句子末尾有两个空格,句子末尾前的问号和感叹号之前有一个空格。
转贴请保留以下链接
本人blog地址
http://su1216.iteye.com/
http://blog.csdn.net/su1216/
分享到:
相关推荐
Linux是一种免费使用和自由传播的类UNIX计算机操作系统的内核,其源代码可以免费获得。它诞生于1991年,由芬兰赫尔辛基大学的学生Linus Torvalds首次发布,并逐渐发展成为当今最流行的操作系统之一。Linux不仅广泛...
本资料“Linux学习笔记.pdf”将带你深入理解Linux的基础知识和高级应用。 一、Linux系统概述 1. Linux的起源:Linux的诞生源于托瓦兹对Minix系统的不满,他决定创建一个符合个人需求的、免费的Unix-like操作系统...
Linux学习笔记概述 Linux是一种自由和开放源代码的操作系统,其设计目标是提供一个轻量级、高效且安全的计算平台。Linux系统采用类UNIX目录结构,每个目录都有特定的功能和用途。以下是对Linux主要目录及其内容的...
### Linux系统学习笔记 #### 一、Linux系统Shell介绍 1. **Linux系统Shell类型**:Linux系统提供了多种Shell供用户选择,常见的包括Bourne shell (`sh`), C shell (`csh`), Korn shell (`ksh`)等。其中,`sh`是Unix...
集合了 所有的 Unix命令大全 登陆服务器时输入 公帐号 openlab-open123 telnet 192.168.0.23 自己帐号 sd08077-you0 ftp工具 192.168.0.202 tools-toolss 老师测评网址 http://172.16.0.198:8080/poll/ 各个 ...
- 第一部分的第二个至第十个字符分为三个三元组(triplet),分别表示文件属主、组用户和其他用户的权限。 - 第二部分表示文件的硬链接数目。 - 第三部分表示文件属主。 - 第四部分表示文件属主所在的默认组。 - 第...
### Linux命令笔记知识点详解 #### 1. UNIX发展历史与主要发行版本 ##### UNIX发展历史 - **1965年**:美国麻省理工学院(MIT)、通用电气公司(GE)以及AT&T贝尔实验室联合启动了名为Multics的项目。该项目旨在...
- **Unix手册页**:介绍如何使用`man`命令查询Unix/Linux系统中的命令、函数等的文档,是学习Unix编程的重要资料来源。 - **系统调用与库函数**:系统调用是应用程序与操作系统内核之间的接口,库函数则是对系统调用...
以下是对"第11章 Linux操作系统基础"的主要知识点的详细阐述。 一、Linux操作系统简介 Linux是基于Unix的操作系统,由林纳斯·托瓦兹于1991年创建。它的内核是开源的,允许全球开发者对其进行修改和优化。Linux系统...
VI(Vim)是一款强大的文本编辑器,广泛用于Linux和Unix系统中。它有三种主要模式:命令模式、插入模式和底行模式。本篇学习笔记将深入探讨VI的使用技巧,包括文本编辑、快速移动、缓存区操作以及ex编辑器的功能。 ...
通过“嵌入式Linux入门笔记”,学习者将能了解嵌入式系统的基础概念,熟悉Linux内核、设备驱动、Bootloader的工作原理,掌握构建和调试嵌入式系统的技能,为成为一名合格的嵌入式Linux开发者打下坚实基础。
通过这份学习笔记,初学者可以了解到Python的基础知识,包括但不限于Python的历史、版本、跨平台能力、基础语法、常用函数、数据类型、输入输出方法、以及一些常见的编程问题和解决方案。掌握这些知识点将有助于初学...
郝斌的C语言视频教程笔记,是一套针对学习C语言的专业视频教程笔记,其内容涵盖了C语言的基本概念、特点、程序结构、数据类型、变量、常量、指针、编译过程等基础知识,同时也对C语言在操作系统、驱动开发、数据库...
### Shell脚本编程知识点概述 #### 一、预备知识与基本概念 在开始Shell脚本文档的学习之前,首先需要理解Shell...以上就是文档《总结搜集的shell脚本学习笔记(完结篇)》中所涵盖的主要知识点,希望对你有所帮助。
Linux操作系统是开源的类Unix系统,广泛应用于服务器、嵌入式设备和桌面环境中。了解Linux的基础知识,特别是其目录结构和命令行操作,对于软件开发人员来说至关重要。 首先,让我们来详细了解一下Linux的目录结构...
Linux 101考试模块化培训笔记是为Linux专业人士协会(LPI)的LPI 101考试准备的,尤其针对考试的第2版目标。这本培训笔记由Andrew McGill编写,属于Leading Edge Business Solutions公司的Linux培训计划的一部分。该...
C ++入门手册第五版笔记与知识点整合 一.C ++基础知识 二。函数 三。类 四.IO库 ##五。顺序容器 六。泛型编程 七。关联容器 八。动态内存 九。拷贝控制 十。重载运算与类型转换 十一。面向对象程序设计 十二。模板...