💭 写在前面
本章仍然是继续对Linux 常用指令进行介绍,将讲解重定向、时间相关的指令、文件查找和打包压缩等指令。我们将初次理解 "Linux下一切皆文件"这一概念,我将通过一个有趣的故事去讲解它。
我们现在来正式介绍一下:
$ echo "内容" > [目标]
本来应该写入到显示器的内容,把他写入到文件中,我们称之为 输出重定向 。
📌 注意事项: >?会清空原始的文件内容,进行重新写入。
? 输出重定向 >?会清空原始内容,如果你不想清空原始内容呢?
💡 我们可以使用 " 追加重定向 >> " ,可以做到在原有内容后?"追加" :
? 说明:追加重定向不会清空原始内容,而是在原始文件的结尾进行新增式的写入。
$ echo "内容" >> [目标]
?
在这之前我们先来补充一下 cat 后面什么都不加:
$ cat
?cat 后面什么都不加,cat 就会默认从键盘(标准输入):
它一直复读我说的话我按什么都不出去,q 也给我反个 q,怎么退出呢?
所有的阻碍你命令行操作,先无脑 ctrl + c (暂停)就完事了,这些热键我们下面会细说。
输入重定向:将本来应该从键盘中读取的方式,改成从指定的文件中读取。
(不过我们用的最多的还是输出重定向和追加重定向)
Linux 操作系统有自己的设计哲学,它认为所有的东西都可以当作文件,
甚至你所看到的键盘、显示器、显卡等外设,都可以当作文件。
现阶段还没有去讲解系统方面的知识,至于底层是如何做到的我们暂时不深入讲解。
当前学习阶段我们可以感性理解 "Linux 下一期皆文件" 这句话。
我们把磁盘、显示器、网卡、显卡、键盘、鼠标等设备(我们统称之为外设),
都看作文件,以同样的方式看待这些设备。
注意事项:
Linux 是不把 CPU 看成文件的,因为 CPU 是要帮你完成 "一切皆文件" 的设计理念的,
而你要把 CPU 也当作文件,这显然是不合理的!
在 Linux 中我们可以直接输入 date 去查看当前的时间:
date # 显示时间
默认输出的格式好像不符合我们日常生活的使用习惯啊,我们习惯的是 年月日 + 时间。
在显示方面,Linux 也是可以设定格式去显示时间的。
date +%Y:%m:%d # date 指定格式显示时间
date 标记列表:格式设定为一个加号后接数个标记,其中常用的标记列表如下:
?我们就可以通过这种方式去控制格式,显示我们想要显示的:
Linux 也同样支持修改时间:
概念:自??年 ?月 ?日午夜开始,到现在为止所累计的秒数,即为时间戳。
计算机插电之后就会一直有一个递增的数据,这个不断线性递增的数据就是时间戳。
date +%s # 查看当前时间戳
那么问题来了,时间戳有什么用途呢?
它可以作为日志的一部分,如果一个项目比较大,必须得有日志的能力。
因为时间戳是不断递增的,递增值有很强的惟一性,所以在做日志信息归档的时候很方便。
日志我们一般从尾部看,时间 + 错误信息。日志,具有排查错误的能力!
在 Linux 中,时间是很重要的。
如果我想自己获取一下时间戳,系统中可以用 date +%s ,如果我们想自己写程序,也是可以的。
代码:获取时间戳?
?
?
(拼写一定要拼写正确)!!!!!!!!!!
在 Linux 中输入 cal 就显示出一个日历:
cal
指令功能?:用于查看日历等时间信息。
如果只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。
cal [参数][月份][年份]
常用选项:
?
?思考:Linux 命令的时间和日历存在的意义是什么?
有些语言是基于 Linux 命令组成起来的语言,比如 shell 。因为脚本也是要打日志的,所以脚本也是需要有时间的。现在用命令行看时间的人很少,但是如果把时间倒退到 40 年前,就会有人去拿命令行去查看时间。
find 路径 -[选项]
指令功能 :用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)。
?指令介绍:
常用选项:
name?按照文件名查找文件?
用法演示:查找C语言的 stdio.h | 在家目录下查找所有 test.c 文件?
?
在家目录下查找所有的test.c文件
?
在我们之前形成的有十万行的大文本 large.txt 中,
如果我想把其中的 1234 关键字的行拎出来,我们就可以使用 grep 命令:
$ grep '1234' large.txt # 显示large.txt中带有1234的行
?
?grep [选项] 搜寻字符串 文件
指令功能?:在文件中搜索字符串,将找到的行打印出来。
?常用选项:
注意事项:
①?只要某行存在你要找的关键字,整行都会被保留显示出来,所以称 grep 为行文本过滤工具。
②?grep 匹配时是明确大小写的?,如果想忽略大小写,须加 -i 选项。
操作演示:?
①? -v?反向选择? |? -iv 忽略大小写并反向选择
②-n 选项,将查找的结果带上匹配行所在行号?
zip [压缩文件.zip] [目录或文件]
当前目录下会多出一个红色的压缩文件
假设要压缩一个目录下所有的文件:
使用指令:
zip -r xxx.zip xxx文件
?
?
那么如何解压呢?
unzip [目标] # 解压目标文件
操作演示:我们可以使用 zip 指令对应的?unzip 指令对它进行解压操作:
我们先把lesson1移到lesson3中,再进行解压
?
一般一个压缩包是需要有两个步骤的:① 打包? ? ② 压缩。
我们还要讲一种压缩方式,这种压缩方式也是 Linux 中最常见的一种 —— tar 指令。
tar [-cxtzjvf] 文件与目录 .... 参数
指令功能 :打包 / 解包(不打开它,直接看内容)
常用选项:
?
(test.tzg是输入错误的产物) ,,,一定要输入正确
通过此种操作,我们把lesson1压缩成为test.tgz
解压缩,我们先把本体lesson1删除,在进行解压缩-------回来了,都回来了
?大家可以自行尝试!!!
Linux 下,我们可以用 bc 命令很方便地进行浮点运算:
echo " [计算内容] " | bc
不同的平台下对应的指针大小是不一样的,在 VS32 位下指针对应的大小是 4 个字节,
在64位下系统,我们的指针大小就是 8 字节。我们该怎么知道当前系统的体系结构信息呢?
我们可以用 uname -a 查看系统中的很多信息,如果只想看内核版本,可以输 uname -r:
uname [选项]
注意事项:如果使用的是云服务器,云服务器是不需要关机的,永远不关机。
shutdown [选项] ** 常见选项: **
🔨 指令功能?:关机
📜?常用选项:
?