file命令
文件可以包含多种类型的数据,使用file
命令检查文件的类型,然后确定适当的打开命令或应用程序使
用
格式:
file [options] <filename>...
常用选项:
- -b 列出文件辨识结果时,不显示文件名称
- -f filelist 列出文件filelist中文件名的文件类型
- -F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
- -L 查看对应软链接对应文件的文件类型
- –help 显示命令在线帮助
windows的文本格式和Linux的文本格式的区别在于linux
中换行使用的换行符,windows
中换行使用的回车换行符。
[xingmu@centos8 data]$ cat linux.txt
a
b
c
[xingmu@centos8 data]#cat win.txt
a
b
c[xingmu@centos8 data]$ file win.txt linux.txt
win.txt: ASCII text, with CRLF line terminators
linux.txt: ASCII text
[xingmu@centos8 data]$ hexdump -C linux.txt
# 这里的 0a 就是表示换行
00000000 61 0a 62 0a 63 0a |a.b.c.|
00000006
[xingmu@centos8 data]$ hexdump -C win.txt
# windows 中换行使用了 0d 0a 回车换车
00000000 61 0d 0a 62 0d 0a 63 |a..b..c|
00000007
#安装转换工具
[xingmu@centos8 data]$ dnf -y install dos2unix
#将Windows的文本格式转换成的Linux文本格式
[xingmu@centos8 data]$ dos2unix win.txt
dos2unix: converting file win.txt to Unix format...
[xingmu@centos8 data]#file win.txt
win.txt: ASCII text
#将Linux的文本格式转换成Windows的文本格式
[xingmu@centos8 data]$ unix2dos win.txt
unix2dos: converting file win.txt to DOS format...
[xingmu@centos8 data]$ file win.txt
win.txt: ASCII text, with CRLF line terminators
stat 命令
使用方式:stat FILE
显示文件或者文件系统的元数据。
文件一般有两类数据:元数据(matadata)和数据(data),元数据是用来描述文件本身的状态,数据是指文件具体的内容。
- 最近访问(
Access time
又叫atime
)是指最后一次读取的时间,有时对于间隔很短的频繁读取,时间不发生改变。 - 最近更改(
Modify time
又叫mtime
)是指内容数据发生改变,只要数据发生改变,元数据一定发生改变。 - 最近改动(
Change time
又叫ctime
)是指元数据的改变,atime
和mtime
的改变,都会引起ctime
的改变。
touch
change file timestamps 用来修改文件的时间戳
使用方式:touch [OPTIONS] FILE
默认是文件的三个时间戳都是更新
touch
还有另一个作用就是当文件不存在时,自动创建文件。
touch -c FILEPATH
: 指定文件不存在时,不允许创建文件touch -a FILEPATH
: 仅修改 access timetouch -m FILEPATH
: 仅修改 modify timetouch -t stamps FILEPATH
: 修改时间,可以和 -a/-m 一起使用
cat/tac
cat
主要有三大功能:
- 一次显示整个文件
cat filename
。 - 从键盘创建一个文件
cat > filename
,只能创建新文件,不能编辑已有文件。 - 将几个文件合并为一个文件:
$cat file1 file2 > file
tac
倒叙显示文件内容,参数和 cat
一样
参数:
-n 或 --number
由 1 开始对所有输出的行数编号-E
显示行结束符$
-b 或 --number-nonblank
和 -n 相似,只不过对于空白行不编号-s 或 --squeeze-blank
当遇到有连续两行以上的空白行,就代换为一行的空白行- -v 或 --show-nonprinting
示例
把 test 的内容加上行号后输入 test2 这个文件里:
把 test
和 test2
的内容加上行号(空白行不加)之后将内容附加到 test3
里。
清空 test3 的内容
head
用来查看文件的前 n 行内容,默认是前 10 行
head -n 20 FILE
tail
查看文件的后 n 行,默认是后 10 行
tail -n 20 FILEPATH
查看文件最后 20 行的内容;
tail -n +20 FILEPATH
查看文件第 20 行以后的内容;
相对于 head
来说,tail
命令可以通过指定 -f
参数,来使命令不退出,而是根据文件的更新显示最新的内容,通常用来查看日志。
## 显示文件 100 行之后的,50 行以内的内容
cat filename | tail -n +100 | head -n 50
more
more FILEPATH
分屏查看命令,只能向后翻屏,不能向前翻屏,到最后一屏,命令自动退出
less
less FILEPATH
less
命令和 man
命令相同,man
命令内部使用的就是less
命令。
- 空格键:向文件尾部翻一屏
b
: 向文件首部翻一屏ctrl+d
:向文件尾部翻半屏ctrl+u
:向文件首部翻半屏- 回车键:向文件尾部翻一行
k
:向文件首部翻一行G
:跳转至最后一行#G
:跳转至指定行1G
:跳转至文件首部q
:退出
文本搜索
/keyword
: 从文件首部向文件尾部依次查找,不区分大小写?keyword
: 从文件尾部向文件首部依次查找n
: 跳转到下一个匹配,与搜索命令方向相同N
:跳转到下一个匹配,与搜索命令方向相反