周边知识:
1.Linux中, 一切皆文件
构建大文件 输入如下shell命令
i=1; while [ $i -le 10000]; do echo "hello Linux $i"; let i++; done
此时大文件已经创建在big.txt 此时我们发现cat查看无法查看开始内容 我们使用more
当占满一屏之后就不会继续,支持我们回车逐行阅读,也可以输入行数查看内容,输入q退出
但我们不推荐使用more阅读大文件内容,通常使用less 上下键就可以翻阅
2.查日志
有些程序运行会产生很多记录信息 在查看日志时,使用less会更加便捷
3. 管道 |
管道可以集联两个文件的命令 例: 查看一个大文件中的中间行文件
head -9010 big.txt | tail -11
4. wc
统计文本行数
wc -l
5.时间
时间在计算机中十分重要
如果在日志中 查看日志就可以搭配 |
date +%s :时间戳 单调递增的时间
6.打包和压缩
1.什么是打包压缩,为什么要打包压缩
a.缩小体积,占用资源比较少,占据磁盘空间比较小,下载快
b.不会轻易的丢失文件
2.怎么办 zip,unzip
1.输出重定向 >
首先我们使用echo命令输出语句
紧接着我们使用了 “>” called “输出重定向”
我们发现原本打印在显示器屏幕上的内容打印在了文件内 由此我们可以推出
输出重定向:
- 创建一个新的文件 或者清空文件
- 将显示器上的内容转移到文件内显示
- 每次进行重定向,都会从文件开始处写入文件
- 所以可以用重定向清空文件
所以我们可以推出单独使用 > 是否也可以创建文件呢?
答案是可以
1.1 输出重定向原理
1. 众所周知,在Linux中有一重要理念:一切皆文件。
也就是说我们的电脑分为键盘,鼠标,显示器等等都可以看作是文件 。键盘有读取操作 写入为空。对于任何文件来讲都可以分为 读取文件和写入文件。 所以向显示器设备打印就相当于向显示器文件打印。就是 向显示器文件写入。 而‘>’ 就是重定向 将原本向显示器文件打印的内容打印到文件内。由于他是输出流,所以叫做 “输出重定向”
2.每次重定向时就相当于执行C语言的打开与关闭操作
#include <stdio.h>
int main()
{FILE* fp = fopen("log.txt","w");fclose(fp);return 0;
]
有文件就打开 没文件就创建 打开关闭就清空
2.追加重定向 >>
输出重定向是每次从文件开始处写入 而 追加重定向是从文件末尾处进行写入,并不会覆盖原先内容。
2.1追加重定向原理
.当我们使用fputs时以a方式写入 就相当于追加,再进行gcc code.c .a./out 后不会进行清空操作
只会进行追加操作。
就相当于我们使用>> 时 进行a方式的fopen 此时只会追加,不会删除
3.输入重定向 <
当我们输入cat 命令时如果后面什么都不加 代表从键盘中读取文件打印到显示器文件中
如果我们进行输入重定向,就代表将原本cat从键盘文件读取转为从log.txt文件进行读取
4.more指令
[atong@LiWenTong ~]$ ls -l / | more
total 162
drwxr-xr-x 2 root root 4096 Apr 25 05:39 bin
drwxr-xr-x 4 root root 1024 Apr 25 04:11boot
drwxr-xr-x 9 root root 3820 May 4 23:20 dev
drwxr-xr-x 84 root root 4096 May 5 00:37 etc
5.less指令(重要)
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。 less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用 来查看一个文件的内容! 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
6.head指令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的 开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
上图可以看出 在对应位置加入数字即可查看对应前多少行
7. tail指令
有一个文件共有100行内容,请取出第50行内容<br>
seq 1 100 > test # 生成1到100的序列装入test
方法1 head -n50 test > tmp #将前50行装入临时文件tmp
tail -n1 tmp #得到中建行
方法2 head -n50 test | tail -n1
8.时间相关的指令
date显示
date 指定格式显示时间: date +%Y:%m:%d
date -s // 设置当前时间,只有 root 权限才能设置,其他只能查看。date -s 20080523 // 设置成 20080523 ,这样会把具体时间设置成空 00:00:00date -s 01:01:01 // 设置具体时间,不会对日期做更改date -s “01:01:01 2008-05-23″ // 这样可以设置全部时间date -s “01:01:01 20080523″ // 这样可以设置全部时间date -s “2008-05-23 01:01:01″ // 这样可以设置全部时间date -s “20080523 01:01:01″ // 这样可以设置全部时间
9.Cal指令
命令格式: cal [参数][月份][年份]
Cal –y 2018
10.find指令:(灰常重要) -name
11.grep指令
12.zip/unzip指令
举例:将 test2 目录压缩: zip test2.zip test2/*解压到 tmp 目录: unzip test2.zip -d /tmp
如上图所示 ,我们先递归打包,再剪切到根目录,再解压,再tree发现操作成功