查看文件内容的相关命令
在Linux系统中具有丰富的查看文件内容的命令,什么情况适合用哪个命令呢其实根本不用纠结,梳理这些命名的特点如下:
命令cat #适合查看较小文件,
命令more #适合查看加大文件,
命令head #适合只查看文件的前若干行,
命令tail #适合只查看文件的末若干行,
其实用于查看文件内容的命令远不止这几个,比如还有less、vim等,我也不知道文件是大还是小那么到底用哪个呢?为什么说命令cat适合小文件呢用在大文件会报错吗?试一下就知道了,当使用命令cat查看较大文件时屏幕刷刷地向上滚屏最后只能查看到文件末尾那一页,说白了就是cat命令不支持分页查看,more适合查看大文件是因为more命令支持分页查看,至于如何上下翻页只要man一下就清楚了;至于head与tail是相对的,在查看滚动日志文件时使用tail -f那是相当方便,有种黑客大片儿的感觉,我是启动tomcat时看一下启动日志判断是否启动成功时用到;当然这些命令还有其他妙用等着用到时在掌握也不迟!
命令tr
文件内容批量替换,需要结合cat命令读取文件,使用管道符|将cat读取的内容传递给tr命令
用例:将某文件内容小写字母替换为大写字母进行显示,原文件内容不变
cat anaconda-ks.cfg | tr [a-z] [A-Z]
命令wc
此wc非彼wc这个命令跟厕所没有任何关系;该命令统计文件内容的行数、字数(单词数量)、字节数,注意是无法统计列数量的!
参数-l:行数
参数-c:字节
参数-w:单词数量,不适合中文文件
命令stat
查看文件具体存储细节和存储时间
Linux系统中的文件时间属性有三种类型
atime:最后一次访问(文件内容)的时间
mtime:修改文件内容的时间,
ctime:最后一次更改文件属性(比如所属组、rwx)的时间
ctime与mtime一般是同步变化,因为修改了文件内容则文件属性(文件大小)也会变化
文件内容提取(搜索)命令
在windows系统中搜索文本文件中的关键词一般使用Ctrl+F快捷键,那么在linux中也对文本文件提供了关键词搜索命令,而且还可以按行或列两种方式进行搜索;
命令grep用于关键词按行搜索
grep 关键词 文件
-v:反选搜索
命令cut,通过间隔符把内容分成多个列,然后按照列提取文本内容
-d:间隔符
-f:列号
做个简单的记忆图,大概就是这个样子:
用例:提取/etc/passwd文件中的用户名称
命令diff
比较两个文件内容是否相同
--brief:输出简单结果
-c:输出详细模式,在不同内容行左边标注符号!
命令uniq
去掉文件内容中相同的行进行显示,原文件内容不变
命令sort
按照首个字母进行排序
-n:按照数字升序排序
-t:指定间隔符
-k:指定第几个字段
用例:将/etc/passwd文件内容按照第3列排序输出
命令touch
新建一般文件,其实该命令还有很多黑客方面的能力,比如修改文件属性时间等
用例:修改指定文件的“修改时间(mtime)”
命令mkdir
新建目录
参数-p:新建嵌套关系的目录(p代表parents,可以理解为父级或递归目录)
命令cp
复制文件,最好加上-rp参数,如果记不清参数是什么意思,那就使用-a参数,此时无论什么意思都包含了!
cp 原文件 新文件
cp -r 原目录 新目录:递归复制
cp -a 原文件 新文件:包含pdr所有功能,p表示保留原始文件属性,d表示保留链接文件原始属性,r表示递归(用于目录)
命令mv
剪切文件
在同一个目录中执行mv命令可达到重命名操作
命令rm
删除操作(且无法还原)
-r:递归删除目录
-f:强制删除(不需要二次确认)
命令dd
复制操作
将光驱设备中的光盘制作成iso镜像文件
if input file 输入文件
of output file 输出文件
count 个数
bs 大小
扩展:dd与cp的区别:dd是复制文件中的一部分内容(根据块或容量大小复制)。
扩展:/dev/zero是Linux中不占用存储空间却能提供无穷数据的文件,这真是个神器的文件,通过命令dd和/dev/zero文件就可以创建任意大小的文件了。
用例:复制某文件中的560字节到新文件里
用例:将光驱设备中的光盘制作成iso镜像文件
命令file
查看文件类型
命令tar
压缩包 打包/解压
-c:打包归档
-z:压缩格式(gzip),后缀为tar.gz
-v:显示压缩过程,用于查看进度
-f:压缩包名称,该参数必须放在最后
tar czvf 压缩包.tar.gz 目标文件或目录名称 :打包
tar xzvf 压缩包.tar.gz :解压缩包,默认解压到当前目录下
-C:解压到指定目录
用例:将/etc目录通过gzip格式打包压缩,把文件命名为etc.tar.gz
将打包压缩的文件解压到/root/etc目录(先使用mkdir命令创建/root/etc目录)
管道符|
将前面命令要输出到屏幕的信息交给后面命令处理(可以比喻成动漫机器猫中的任意门,感谢作者丰富的想象力)!
扩展:终端类型
/sbin/nologin :不可以登录系统
/bin/bash :可以登录系统
用例:查看passwd文件中哪些用户可以登录系统
用例:统计不同登录系统的用户数量
扩展:passwd命令--stdin参数:特指从管道符接收被用于指定密码
用例:设置用户密码
重定向操作符
将命令原本要输出到屏幕的内容输出到文件里或者将内容导入到一个命令里面
输出重定向,命令把内容输出到文件
标准清空 >
标准追加 >>
错误清空 2>
错误追加 2>>
全部清空 &>
全部追加 &>>
输入重定向,将文件内容输入到命令
扩展:输出重定向符与管道符的区别:
重定向符,将命令与文件关联起来,比如符号">"是不可以重定向到命令的
管道符,将命令与命令关联起来