时间
对Linux来说是非常重要的. 有可能我们现在对这个重要性没多大体会, 但在以后得 日志
就会体会的非常明显.
日志是对我们的 检查
工作来说是很重要的. 程序运行到每一个关键时刻, 都需要程序员自己来打日志.
⇒ 就引出了 date指令, 用来查询时间.
这里还有一个概念, 就是 时间戳
: 从1970年1月1日午夜到当前时间的秒数
时间戳出现的原因:
date指令是用来查询 时间 和 时间戳的
date — — 按照默认的方式输出当前时间
date +格式要求(%Y分隔符%m分隔符%d… …) — — 按照要求输出当前时间
date +%s — — 输出当前的时间戳
date -d @时间戳 — — 按照默认的方式输出此时间戳对应的时间
date 格式要求 -d @时间戳 — — 按照要求输出此时间戳对应的时间
注意:
%F 相当于 %Y-%m-%d
%X 相当于 %H:%M:%S
中间的分隔符, 可以是任意符号, 但是 不能是空格
️老陈, 你刚才不是说时间戳是从 1970年1月1日午夜到当前时间的秒数, 这上面显示的是 8点?
cal指令是用来输出日历的
cal — — 输出当前月份的日历
cal 年 — — 输出这一年的日历
cal -3 — — 输出这当前月份, 上个月份, 下个月份的日历
find指令: 在目录结构中搜索文件, 并执行指定的操作
find 指定目录 -name 文件名 — — 从指定目录开始以递归的方式搜索此文件名的所有文件
家目录
下, 即 /home/用户名/xxx 或 ~
, 不会受到权限限制. 因为家目录下的一棵 ‘树’ 就是自己的!!其他目录
下, 尤其是 /usr/xxx
可能会受到权限限制. 解决方法就是用 root用户去搜索同为搜索的指令, 还有 which
和 whereis
which 指令 — — 在指令路径下
/usr/bin/xxx
搜索指令所在位置
whereis 指令/文件 — — 在系统特定路径下进行搜索(搜索结果一般是
文件路径, 头文件, 可执行程序, 手册, 安装包 ... ...
)
grep指令: 在文件中以 行
为单位搜索字符串( 行文本过滤
),将找到的行打印出来
grep 条件 文件名/文件地址 — — 在文件中以行为单位, 将满足条件的行的内容默认输出到显示屏文件
grep -r 条件 目录/目录地址 — — 在目录路径下以递归的方式, 在各个文件中以行为单位, 将满足条件的行的内容默认输出到显示屏文件跟选项:
-i — — 忽略条件中的大小写
-v — — 逆反, 将不满足条件的行的内容输出出来
-n — — 显示输出结果的行号
可以看出, 还是非常简单的, 很容易入手. 当然还有两个 极端情况
:
''
这是一个 空字符
, 满足这个要求的, 就是文件本身喽.
-v , 逆反, 那就是空了
一般指令后面跟的有文件, 可以尝试使用
管道
来进行优化. 这样写有两点好处:
grep指令常用的用法是:
配合管道, 来查看进程
. 由于进程是后面才学习的, 这个以后再讲!!
我们熟知的Windows操作系统, 有很多的打包压缩, 解包解压的软件. 打包压缩有很多的优势, 比如:
缺失
(就是不容易丢失其中的一两个)总结下来, 就是不容易造成文件的缺失 和 下载时间变短
️Linux也是一个操作系统, 那么它在什么场景下使用打包压缩呢?
安装zip 和 unzip 的命令: yum install -y zip unzip(记得要在root用户下)
zip 和 unzip 指令就是打包压缩 和 解压解包的功能
zip指令默认后面跟的是一个文件
zip xxx.zip 文件 — — 打包压缩一个文件
zip -r xxx.zip 目录 — — 打包压缩整个目录
unzip xxx.zip — — 默认解压到当前目录下
unzip xxx.zip -d 目录路径 — — 解压到指定路径下
打包压缩 可以使
多个目录/文件
变成一个文件
tar czf xxx.tgz 文件/目录 — — 打包压缩
tar tzf xxx.tgz — — 预览
tar xzf xxx.tgz — — 默认解压到当前路径下
tar xzf xxx.tgz -C 目录路径 — — 解压到指定路径下
.tar
(打包后缀) .gz
(压缩后缀).️如果我们想到指定目录下解压解包, 除了用 -r 或 -C这两个选项, 我们能不能用别的方式实现同样的功能呢?
mv指令
, 将压缩包移动到指定路径, 并在那个路径下进行解压解包.️有很多的打包压缩工具啊, 老陈, 为啥只介绍了这两个??
bc指令可以进行浮点数的运算, 类似于 Windows下的 calc(计算器)
首先进入 bc模式
然后输入计算的式子
️老陈, 有没有一种方式: 不进入 bc模式, 直接输出式子的结果
管道 |
总结就是: echo 式子 | bc
由于对系统的一些相关知识并没有深入了解, 在此处我们就看一看就行, 就当有这一回事~~
uname— — 系统的名字
uname -a — — 查看系统的详细信息
uname -r — — 查看系统的体系结构 和 内核版本
free -单位(m, g, t … …) — — 查看内存
df -h — — 查看磁盘
别的东东, 老陈在这里就不多说了. 这里直说一个点:
x86 — — 32位机器
x86-64 == x64 — — 64位机器
tab — — 自动补全
ctrl + r — — 历史命令查询(ctrl + c 结束)
nano — — 记事本
ctrl + d — — 退出终端, 退出用户
ctrl + c — — 让当前命令 强制停止
️ctrl + r 是查找历史命令, 难道Linux操作系统有历史存储功能??
前面我们已经知道了, 指令的本质就是编译好的程序或者脚本, 只不过是放在了系统的特殊路径下.
⇒ 指令其实就是字符串
, 只不过这个字符串经过了系统的处理和加工; 和我们输入的字符串是不同的.
️既然谈到了输入, 那么每次输入的时候前面的一段东西是什么?
bash命令行
, 我们先谈一下它的构成:#
, 而普通用户下的命令行提示符是 $
主机名
️ 老陈, 我之前听过 shell bash sh, 现在又有一个bash命令行, 这些怎么进行区分啊??
类群的总称
, 这里就以程序员来做比喻吧类群中的一个个成员
, 程序员1, 程序员2, 程序员3 … …bash的样子
, 程序员bash长什么样️ 命令行解释器 Shell 是干什么的??
中间人
, 起着承上启下的一个作用.上达用户
, 将操作系统的运行结果翻译给用户下至操作系统(OS)
, 将用户的需求翻译给操作系统这里多说一句, 通过前面的学习, 我们知道了 Linux下的
命令行解释器
和 Windows下的图形化界面操作
的作用是一样的. 只不过它们的使用群体不一样, Windows面向大众, 操作简单; 而Linux面向程序员, 是需要一定的技术基础的!!
️老陈, 我们用户为什么不能直接操作 操作系统 (Windows 和 Linux … …), 而是要借助一下 "中间人"
(图形化界面管理 和 命令行解释器) ?
操作系统
的角度:用户
的角度(假设我们的输入有结果输出):中间人
(图形化界面管理 和 命令行解释器) 是必不可少的. 它的意义是:上达用户
, 将操作系统的运行结果翻译给用户下至操作系统(OS)
, 将用户的需求翻译给操作系统各位老铁, 关于Linux常见指令的知识, 老陈就先讲到这里.
Linux指令众多, 在以后的学习中, 我们一边学习其它知识, 一边巩固记忆指令操作
先说一下 后面的的内容: Linux权限
预知权限如何, 且听下回分解
放弃时间的人,时间也会放弃他. —— 莎士比亚