Linux常见指令 ⑶
date指令
引入
时间 对Linux来说是非常重要的. 有可能我们现在对这个重要性没多大体会, 但在以后得 日志 就会体会的非常明显.
 日志是对我们的 检查 工作来说是很重要的. 程序运行到每一个关键时刻, 都需要程序员自己来打日志.
 ⇒ 就引出了 date指令, 用来查询时间.
这里还有一个概念, 就是 时间戳: 从1970年1月1日午夜到当前时间的秒数
 时间戳出现的原因:
- 时间是人定义的, 每个国家的时间不是统一的
- 互联网运行时间快, 需要一个统一的时间
- 时间戳是单调递增的, 便于我们进行范围查找(可以采用 二分的思想)
描述
date指令是用来查询 时间 和 时间戳的
用法
例子
时间

 注意:
 %F 相当于 %Y-%m-%d
 %X 相当于 %H:%M:%S
 中间的分隔符, 可以是任意符号, 但是 不能是空格
时间戳

 🗨️老陈, 你刚才不是说时间戳是从 1970年1月1日午夜到当前时间的秒数, 这上面显示的是 8点?
-  时间戳又叫做格林威治时间, 是外国人定义的. 由于存在时差, 在我们中国就是 8点.
 其实, 这也变相的说明了 时间戳存在的意义: 每个国家在国内都能统一使用, 在国际, 也有一个统一的时间标准.
cal指令
描述
cal指令是用来输出日历的
用法
例子

 
find指令
描述
find指令: 在目录结构中搜索文件, 并执行指定的操作
用法
例子

-  发现: 普通用户下, find指令可能会受到权限限制
 在家目录下, 即/home/用户名/xxx 或 ~, 不会受到权限限制. 因为家目录下的一棵 ‘树’ 就是自己的!!
 在其他目录下, 尤其是/usr/xxx可能会受到权限限制. 解决方法就是用 root用户去搜索
  
补充
同为搜索的指令, 还有 which 和 whereis
which指令

whereis指令

 
 find指令可以搜索任意文件, 但是速度较慢
 which指令, 搜索指令所在位置, 输出的信息更加详细
 whereis指令, 界于两者之间, 既可以搜索指令也可以是文件
grep指令
描述
grep指令: 在文件中以 行 为单位搜索字符串( 行文本过滤 ),将找到的行打印出来
用法
例子
grep 对文件的操作

 可以看出, 还是非常简单的, 很容易入手. 当然还有两个 极端情况:
 
 '' 这是一个 空字符, 满足这个要求的, 就是文件本身喽.
 -v , 逆反, 那就是空了
grep 对目录的操作

补充
- 管道文件是内存级的文件, 速度快
- 指令后面就不需要跟上 文件喽

打包压缩 和 解压解包
zip && unzip
描述
我们熟知的Windows操作系统, 有很多的打包压缩, 解包解压的软件. 打包压缩有很多的优势, 比如:
- 有多个文件变成一个文件, 不容易造成文件的缺失(就是不容易丢失其中的一两个)
- 体积变小, 下载时间变短
总结下来, 就是不容易造成文件的缺失 和 下载时间变短
🗨️Linux也是一个操作系统, 那么它在什么场景下使用打包压缩呢?
- Linux有充当服务器的时候, 也有各种网络应用场景, 满足通讯的需求, 这时候就有打包压缩的需求
安装zip 和 unzip 的命令: yum install -y zip unzip(记得要在root用户下)
zip 和 unzip 指令就是打包压缩 和 解压解包的功能
用法
例子
对文件的操作

 
对目录的操作

tar指令
用法
例子
对文件的操作

对目录的操作

 🗨️为什么tar指令后面的压缩后缀是 .tgz
-  xxx.tgz 的全称是 xxx.tar(打包后缀).gz(压缩后缀).
 起着打包压缩的功能, 所以简写就是 xxx.tgz
🗨️如果我们想到指定目录下解压解包, 除了用 -r 或 -C这两个选项, 我们能不能用别的方式实现同样的功能呢?
-  先明白一个点: 不能在原路径下解压, 因为已经存在一个一样的目录/文件, 就算你在原路径下进行解压解包, 也是无用的.
 其次, 我们可以巧用mv指令, 将压缩包移动到指定路径, 并在那个路径下进行解压解包.
🗨️有很多的打包压缩工具啊, 老陈, 为啥只介绍了这两个??
- 确实有很多的打包压缩工具, 但是这两个工具是很经典的, 其它的不清楚的可以直接去网上查询
bc指令
描述
bc指令可以进行浮点数的运算, 类似于 Windows下的 calc(计算器)
用法
例子

🗨️老陈, 有没有一种方式: 不进入 bc模式, 直接输出式子的结果
-  首先, 输入 — — echo
 其次, 把输入的结果给 bc — —管道 |

了解系统
用法
由于对系统的一些相关知识并没有深入了解, 在此处我们就看一看就行, 就当有这一回事~~
例子

别的东东, 老陈在这里就不多说了. 这里直说一个点:
热键
用法
例子

- 总结一下:
 连按两次 tab键, 就会输出这个系统现在已有的命令
 ctrl + r ⇒ 就会出现 ’ ', 然后在里面输入想要查找的历史命令, 退出就是 ctrl + c
 ctrl + d: 不仅可以退出终端(即退出xshell), 亦可以回退到上一个用户
 nano: 就相当于Windows下的记事本, 保存退出: ctrl + x 然后 y 然后 enter
🗨️ctrl + r 是查找历史命令, 难道Linux操作系统有历史存储功能??
-  观察力真不错!! 下面介绍一个命令 : history
  
  
 只不过, 不是把命令全部保存了下来, 只是记录最近的 1000 个左右. 不过这个默认记录个数是可以修改的, 这个其实没多大意义~
指令的运行原理
前面我们已经知道了, 指令的本质就是编译好的程序或者脚本, 只不过是放在了系统的特殊路径下.⇒ 指令其实就是字符串, 只不过这个字符串经过了系统的处理和加工; 和我们输入的字符串是不同的.
 
🗨️既然谈到了输入, 那么每次输入的时候前面的一段东西是什么?
  
 这个叫做- bash命令行, 我们先谈一下它的构成:
 muyu — — 是当前用户名
 @C-muyu-Y — — 主机名
 ~ — — 当前目录
 $ — — 命令行提示符. root用户下的命令行提示符是- #, 而普通用户下的命令行提示符是- $
  
 这个是我使用的云服务器的名字, 即- 主机名
  
 当我们改变用户为 root用户, 我们发现: 当前用户名 和 命令行提示符都发生了变化
🗨️ 老陈, 我之前听过 shell bash sh, 现在又有一个bash命令行, 这些怎么进行区分啊??
 Shell — — 命令行解释器, 相当于 一个- 类群的总称, 这里就以程序员来做比喻吧
 bash/ sh — —- 类群中的一个个成员, 程序员1, 程序员2, 程序员3 … …
 bash命令行 — —- bash的样子, 程序员bash长什么样
🗨️ 命令行解释器 Shell 是干什么的??
-  命令行解释器是介于用户 和 操作系统的的一个 中间人, 起着承上启下的一个作用.
 上达用户, 将操作系统的运行结果翻译给用户
 下至操作系统(OS), 将用户的需求翻译给操作系统
🗨️老陈, 我们用户为什么不能直接操作 操作系统 (Windows 和 Linux … …), 而是要借助一下 "中间人"  (图形化界面管理 和 命令行解释器) ?
-  设想一下: 如果我们丢掉 图形化界面管理 和 命令行解释器, 直接操作 操作系统:
 站在操作系统的角度:
 首先, 操作系统不知道用户的一个需求, 即我们输入一个指令操作系统不认识
 其次, 如果我们的需求是没有道理的, 蛮横的, 那么就会损伤操作系统
 站在用户的角度(假设我们的输入有结果输出):
 操作系统输出的命令也是指令类型的, 我们用户根本看不懂
 ⇒
 总结下来,中间人(图形化界面管理 和 命令行解释器) 是必不可少的. 它的意义是:
 1.命令处理:
 上达用户, 将操作系统的运行结果翻译给用户
 下至操作系统(OS), 将用户的需求翻译给操作系统
 2.保护操作系统, 拦截用户的非法请求
- 通过上面 老铁们的重重问题, 我们基本可以得知 操作系统, 用户, 命令行解释器 三者之间的关系











