cat
cat
指令:
首先我们知道一个文件=内容+属性
我们对文件操作就有两个方面:对文件内容和属性的操作
扩展:echo
指令
直接打印echo
后面跟的字符串
看:
这其实是把它打印到了显示器上,我们也可以改变一下它的打印位置,比如把它打印到文件中,我们只需要加上:>
就行了
这里插一下:linux下,一切皆文件,显示器也是文件
: echo "woshidashuaige" > test.txt
如果你没有test.txt
这个文件,则它会自动新建这个文件,然后把内容打印到这个文件中
这种操做我们叫他:输出重定向
如果,重新用echo
打印文件到这个路径中就会覆盖掉之前的值
>
的意思是:
- 将本来在显示器上显示的内容显示到我们指定的位置之中。即:输出重定向
- 打开文件的意思,如果你让它打开一个你没有创建过的文件,那么它就会自动给你创建那个文件,比如:
- 我们也可以用
>
来删除文件的内容:> 直接跟要被清空内容的文件
看!已经被清空了
有没有办法让echo
不覆盖之前写的内容呢?
使用:>>
它的意思是:追加
看:
好 说了那么多与cat 无关的,终于到了cat了
cat -n
输出文件内容时同时对所有的行进行编号
cat -s
指令,不输出多行空格;
你看嘛,空格只有一行输出了
cat -b
不对空行编号
cat
查看文件默认是从上往下查看的,我们如果想要从下往上查看, 则可以把cat
反着写:tac
就行了
head
head+文件名
默认显示该文件的开头前10行内容
head -n + 文件名
显示文件的前n行
tail
tail + 文件名
默认显示文件的末尾10行的内容
tail -n + 文件名
显示文件的倒数第n行
问题来了,如果我们想看一个文件的第10行~第20行,阁下又该使用什么方法?
head -20 test.txt | tail 10
这个竖划线:|
我们叫管道
wc
wc
统计文件的属性信息
wc -l
统计文件的行号
uniq
uniq + 文件名
将相邻的相同信息压缩成一行输出。
时间方面的相关指令
date
%H : 小时(00…23)
%M : 分钟(00…59)
%S : 秒(00…61)
%X : 相当于 %H:%M:%S
%d : 日 (01…31)
%m : 月份 (01…12)
%Y : 完整年份 (0000…9999)
%F : 相当于 %Y-%m-%d
看例子:
find 指令 - name
Linux下find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
which
which
可以在指令路径下查找相应的指令
which + 你想要查找的指令
whereis
whereis
专门用来查文档的指令
grep-行过滤工具
Linux如何搜索历史的指令
第一步:按 Ctrl + r
第二步:输入你要搜索的指令的片段即可,
第3步:回车即可
grep
zip/unzip 指令
语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项:
-r 递 归处理,将指定目录下的所有文件和子目录一并处理
但是这种方法只压缩了目录,并没有压缩这些目录下的的其他文件
我们要使用递归来压缩:
zip -r ya_suo.zip ./*
加上-r
就可以了。
解压缩的话就用:unzip
指令
unzip + 要被解压缩的名称
但是这种方法默认是解压缩到当前目录的,那我们如何将文件解压到我们想要的目录中?
unzip 要解压的压缩包 -d 要放在的目录名
tar 指令
c
表示创建
z
表示压缩
f
表示:指名新的文件名
./*
表示当前目录下的所有文件
看:
tar -czf test.tgz ./*
那如何解压呢?
把c
换成x
看:
tar -xzf test.tgz
这个也是默认解压到当前目录的,那我们如何解压到我们指定的目录中呢?
tar -xzf test.tgz -C + 我们指定的目录