1,grep:文本过滤工具
基础用法:grep "4" zhang.txt
-v 显示不匹配的行(取反)
-n显示匹配行及行号
-i 不区分大小写(只适合用于单字符),默认是区分大小写的
grep 搜索内容 搜索目标a 不要忽略二进制的数据。
-A 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B> 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c 计算符合样式的列数。
-C 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e 指定字符串做为查找文件内容的样式。
-E 将样式为延伸的普通表示法来使用。
-f 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式-F 将样式视为固定字符串的列表。
-G 将样式视为普通的表示法来使用。
-h 在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 忽略字符大小写的差别。
-l 列出文件内容符合指定的样式的文件名称。
-L 列出文件内容不符合指定的样式的文件名称。
-n 在显示符合样式的那一行之前,标示出该行的列数编号
-q 不显示任何信息。
-r 此参数的效果和指定“-d recurse”参数相同。
-s 不显示错误信息。
-v 显示不包含匹配文本的所有行。
-V 显示版本信息。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数的效果和指定“-i”参数相同。
重定向 将数据传到尖的方向> 输出重定向
直接覆盖内容>>追加输出重定向
追加在文件结尾<输入重定向
<<追加输入重定向2>错误输入 只输入错的 1>=> 只输入对的
- 普通文件d
目录文件b
设备文件(块)设备存储设备硬盘 /dev/sda1 /dev/sda2c 设备文件(字符设备)打印机 终端 /dev/tty1
dev/zeros 套接字文件
进程之间通信p 管道文件l 链接文件tar打包压缩命令z通过gzip进行压缩
c创建压缩包
v创建压缩包和解压的过程f指定的压缩包
f一定在最后解压
xfdata显示系统时间
find 根据下列规则判断 path 和 expression,
在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。
如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过-anewer
file : 比文件 file 更晚被读取过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去n天内被修改过的文件
-empty : 空的文件
-gid n or -group name : gid 是 n 或是 group 名称是 name-ipath p,
-path p : 路径名称符合 p 的文件,ipath 会忽略大小写-name name,
-iname name : 文件名称符合 name 的文件。
iname 会忽略大小写-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
s: socket-pid
n : process id 是 n 的文件
Linux 文件或目录的属性主要包括:文件或目录的节点、种类、权限模式、链接数量、所归属的用户和用户组、最近访问或修改的时间等内容。
具体情况如下:命令: ls -lih输出:
说明:第一列:inode
第二列:文件种类和权限;
第三列: 硬链接个数;
第四列: 属主;
第五列:所归属的组;
第六列:文件或目录的大小;
第七列和第八列:最后访问或修改时间;
第九列:文件名或目录名inode 译成中文就是索引节点。
每个存储设备或存储设备的分区(存储设备是硬盘、软盘、U盘等等)被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的
而inode呢,就是用来存储这些数 据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。
inode为每个文件进行信息索引,所以就有了inode的数值。
操作系统根据指令, 能通过inode值最快的找到相对应的文件。
做个比喻,比如一本书,存储设备或分区就相当于这本书,Block相当于书中的每一页,inode 就相当于这本书前面的目录,一本书有很多的内容,如果想查找某部份的内容,我们可以先查目录,通过目录能最快的找到我们想要看的内容。
Day12 预习笔记
在 bash 操作环境中有一个非常有用的功能,那就是通配符 (wildcard) !
有了wildcard利用 bash 处理数据就方便了!
一些常用的通配符:
符号 意义
* 代表『 0 个或无穷多个』任意字符
? 代表『一定有一个』任意字符
[ ] 同样代表『一定有一个在括号内』的字符(非任意字符)。
除了通配符之外,bash 环境中的特殊符号有哪些呢?
底下我们先汇整一下:
符号 内容
# 批注符号:这个最常被使用在 script 当中,规为说明!
\ 跳脱符号:将『特殊字符或通配符』还原成一般字符
| 管道 (pipe):分个两个管道命令的界定;
; 连续指令下达分隔符: (注意!与管道命令不相同)
~ 用户家目录
$ 取用变量前导符:亦即是取用变量前需要加的变量取代值
& 工作控制 (job control):将指令变成成背景下工作
! 逻辑运算意义上的『非』 not 癿意思!
/ 目录符号:路径分隔的符号
>, >> 数据流重导向:输出导向,分删是『叏代』不『累加』
<, << 数据流重导向:输入导向 (这两个留待下节介绍)
' ' 单引号不具有变量置换的功能
" " 具有发量置换的功能!
` ` 两个『 ` 』中间为可以先执行的指令,亦可使用 $( ) ( )
( ) 在中间为子 shell 的起始不结束
{ } 在中间为命令区块的组合!