1. 创建普通文件1.1 touch用法一文件不存在时创建新文件可以使用花括号touch a.txt touch b{1..4..2}.txt用法二文件存在时文件的三个时间会修改时间访问时间atime文件最后被访问的时间修改时间mtime文件内容修改时间更改时间ctime文件元数据属性修改时间文件修改时文件大小也会修改mtime修改时ctime也会修改1.2 dd创建指定大小和数量的大文件格式dd if来源 of文件名 count数据块数量 bs块大小if/dev/zero空数据设备文件填充无数个数据 0创建指定容量的空文件of文件名新文件路径count数据块数量bs块大小文件的总容量 数据块数量 × 块大小例如2. 查看普通文件2.1 直接查看普通文件2.1.1 cat查看文件内容适合内容较少的文件文件内容直接显示在终端屏幕上格式cat [选项] 文件选项-n显示行号空行也显示-b空行不显示行号不加选项直接显示内容例如2.1.2 tac倒叙查看文件内容格式tac 文件2.1.3 more翻页查看文件内容适合内容较多的回车往下翻一行空格或者上下键翻页q 退出或者看完文件自动退出退出后文件会保留在屏幕上访问到底会自动退出不能进行搜索格式more -选项 文件选项选项功能-s压缩多个空行为一个空行2.1.4 less与more相同但退出后内容不会保留在屏幕上访问到底后不会自动退出可以进行搜索格式less -选项 文件选项选项功能-s压缩多个空行为一个空行2.1.5 head显示前n行内容默认是显示前10行格式head -选项 文件选项选项功能-数字显示行数2.1.6 tail显示后n行内容默认是后10行格式tail -选项 文件选项选项功能-数字显示行数-f动态查看文件内容tail -f 动态查看这个日志文件su 切换用户开两个终端分屏查看日志文件更新2.2 进一步处理文件内容2.2.1 |管道符将左边的命令结果作为右边命令的输入格式命令A | 命令B | 命令C注意使用管道会加大耗时在极致追求效率 / 高性能的场景要「尽量少用管道 | 」且管道越多、耗 时越明显。2.2.2 grep过滤文件内容将文件中查找含有指定的字符格式grep -选项 查找条件 文件选项选项功能-c显示查找到的行数统计行-i忽略大小-n显示行号-v取反-r递归搜索文件内容当前目录递归-w按完整单词匹配-A 数字匹配行及下n行-B 数字匹配行及上n行-C 数字匹配行及上下n行#将包含a的行标记出来grep a anaconda-ks.cfg#将包含a的行数量统计出来[rootredhat ~]#grep -c a anaconda-ks.cfg#将包含A/a的行数显示出来[rootredhat ~]#grep -ic a anaconda-ks.cfg#将包含a的行统计出来标号[rootredhat ~]# grep -n a anaconda-ks.cfg#将不含a的行显示出来[rootredhat ~]# grep -v a anaconda-ks.cfg#将按完整单词过滤[rootredhat ~]# grep -w root /etc/passwd#显示包含root行以及下两行[rootredhat ~]# grep -A2 root /etc/passwd#显示包含root行以及上两行[rootredhat ~]# grep -B2 root /etc/passwd#显示包含root行以及上下两行[rootredhat ~]# grep -C2 root /etc/passwd加上符号过滤命令说明grep ^root 文件匹配以root单词开头的行grep ^[root] 文件匹配以r o t 开头的行grep ^[ ^ab] 文件匹配不以 a 或 b 开头的行grep ^[0-9] 文件匹配以数字开头的行grep ^[a-zA-Z] 文件匹配以字母开头的行grep q$ 文件名匹配以 q 结尾的行grep ^$匹配空白行grep -r h .递归匹配当前目录下的子目录和子文件中包含 h 的行包括隐藏文件grep -r h ./*递归匹配当前目录下的子目录和子文件中包含 h 的行不包括隐藏文 件grep -d skip h ./*只查找当前目录下的普通文件不递归查找子目录不包括隐藏文件#匹配以a开头的行[rootredhat ~]# grep ^a /etc/passwd#匹配以h结尾的行[rootredhat ~]# grep h$ /etc/passwd#匹配以root开头的行并加上行号[rootredhat ~]# grep -n ^root /etc/passwd[rootredhat ~]# grep -n ^root /etc/passwd#匹配以r o t开头的行[rootredhat ~]# grep ^[root] /etc/passwd#匹配空行并加上行号[rootredhat ~]# grep -n ^$ a12.2.3 cut按列提取文本内容格式cut -d “分隔符” -f 列数字 文件名#提取用户名[rootredhat ~]# cut -d : -f 1 /etc/passwd#提取内核版本号[rootredhat ~]# uname -a | cut -d -f32.2.4 tr替换、删除文本输出到屏幕上缩减多个字符源文件不会更改格式tr -选项 内容 新内容选项选项功能-c取反-d删除-s缩减连续重复字符为单个字符常将空格缩减#替换文件字符[rootredhat ~]# cat /etc/passwd | tr a-z A-Z#删除文件的字符[rootredhat ~]# cat /etc/passwd | tr -d a-z#提取IP地址[rootredhat ~]# ip a | grep ens160$ | tr -s | cut -d / -f 1 | cut -d -f 3#提取MAC地址[rootredhat ~]# ip a | grep link/ether | tr -s | cut -d -f 32.2.5 sort排列显示格式sort -选项 文件选项选项功能-f忽略大小写默认aA-n数值排序-r逆序-u排序后去除重复行-t指定间隔符-k按照第几列进行排序#将用户名排序[rootredhat ~]# cut -d : -f 1 /etc/passwd | sort#排序不区分大小写[rootredhat ~]# sort -f file#去除重复行[rootredhat ~]# sort -u file#数值排序[rootredhat ~]# cut -d : -f 3 /etc/passwd | sort -n#数值从大到小[rootredhat ~]# cut -d : -f 3 /etc/passwd | sort -nr#按照用户数值排序[rootredhat ~]# sort -t : -k 3 -n /etc/passwd2.2.6 uniq去重显示去除文本中的“连续”重复行格式uniq -选项 文件选项选项功能-c统计重复行出现的次数不加去除重复行#将重复内容去重[rootredhat ~]# uniq file1#将重复行的行数统计出来[rootredhat ~]# uniq -c file1练习#列出所有账号的账号名/etc/passwd[rootredhat ~]# cut -d : -f 1 /etc/passwd#将 /etc/passwd 中内容按照冒号隔开的第三个字符从大到小排序后输出所有内容[rootredhat ~]# sort -t : -k 3 -nr /etc/passwd#列出 /etc/passwd 中的的 15 - 20 行内容[rootredhat ~]# head -20 /etc/passwd | tail -6#切割出你的 IP 地址和 mac 地址[rootredhat ~]# ip a | grep ens160$ | cut -d / -f 1 | tr -s | cut -d -f 3#切割出 /etc/passwd 最后一个字段并进行重复内容的重复次数统计[rootredhat ~]# cut -d : -f 7 /etc/passwd | sort | uniq -c