Linux -基础指令3
文章目录
📚 前言
本文主要内容:
在Linux -初识 与基础指令1和Linux -初识 与基础指令2之后,
这应该是最后一篇讲基础指令了。
直接开始吧:
⏰ 时间相关
🔑 概念一:日志
日志是种类似于日记的东西,
程序在运行时,会自己在每个关键时刻打日志,
就类似于一些人会在每天晚上写篇日记。
日志通常包含以下信息:
时间、日志等级(如 warning
、error
、debug
等)、
日志具体信息(如“打开文件失败”、“打开文件成功”等)以及其他相关信息。
这些信息以 行 为单位打印到文件中,
该文件我们称之为日志文件。
日志非常重要,因为它能帮我们快速定位问题,
也可以找到某段史的作者,以便开展批判大会
而时间则对日志非常重要,
因此我们需要掌握时间相关的指令。
这里重点讲一个:date
date
date
用于查看Linux相关的时间。
date
支持:
1.按照需求进行信息提取
2.将时间转化为我们熟悉的格式
如打印年:
date +%Y
或者打印年月日:(分割符可以自定义)
date +%Y-%m-%d
甚至可以打印时分秒:
date +%Y/%m/%d-%H:%M:%S
上面的格式知道就行,不用记,需要的时候再查。
重点看看下面这个:
date +%s
我们可以多打印几行:
这里不得不再引入一个概念了:
🔑 概念二:时间戳
在不同的国家、不同的地区,对于时间的设定是有差异的。
而互联网,大家知道,是连在一起的。
为了确保互联网上的时间统一,时间戳应运而生。
时间戳,是从1970年1月1日午夜开始所经过的秒速。
由于是从一个固定的时间点开始计算的,因此它是单调递增的。
这意味着每一个新的时间戳总是大于前一个时间戳。
因此,应用到日志中,我们很容易对它进行范围查找和排序。
如何将时间戳转化为我们熟悉的时间呢,可以这样做:
date -d @1732880502
也可以加上刚刚的格式:
date +%Y/%m/%d-%H:%M:%S -d @1732880502
而打印0:
date +%Y/%m/%d-%H:%M:%S -d @0
为什么是8点呢,因为这是我们调整了时差后的时间。
Cal
这个指令不重要,不过和刚刚的时间相关,所以顺带讲讲。
cal
cal
就是Linux中的日历。
也可以看指定年份的日历:
cal 2023
🔍 查找
find
find
的作用与它的名字相同,是用来查找的。
选项非常多,但此处重点讲一个:-name
比如在家目录 ~
下,查找所有叫做test.c
的文件:
find ~ -name test.c
或者查找所有.c
为后缀的文件:
find ~ -name *.c
总结一下,find
就是在指定的路径下进行文件的搜索。
which
which
也可以进行搜索,
不过是在系统指令所在的路径下进行指令的搜索。
whereis
whereis
可以在系统特定的路径下查找,
既可以找到可执行程序,也可以找到手册,压缩包之类的。
grep
grep
是用来在文件中找东西的,并且是一行一行的找。
比如我现在有个文件test1.txt,里面有100000条内容,
每条内容为Hello World 加上对应行号-1。
现在我想找包含6666的内容:
grep 6666 test1.txt
而如果你想输出不包含某某某内容的东西,可以加上选项 -v
。
比如,我不想输出1、2、3、4、5、6、7、8:
选项 -n
,给每一行标号。
选项 -i
,忽略大小写。(这个用的还挺多)
grep
后面的地址可以跟多个,不同地址之间用空格隔开就行:
📦 打包压缩
🔑 概念三:打包和压缩
打包就是把所有的东西装在一起,
压缩就是让东西占的空间更小。
为什么要打包和压缩?
-
能被打包压缩的,一定是一个整体。
由多个文件变成一个文件,不容易造成文件缺失。 -
打包压缩,体积变小。
如果体积大,下载时间会变长,存储占据空间变大。
基于上面两点,诞生出很多打包压缩的工具。
Linux系统也需要打包和压缩工具,
因为当Linux充当服务器时,需要满足各种网络应用场景中的通讯需求。
这些工具可以减少传输的消耗,
还能提高效率和安全性。
zip/unzip
打包用的是 zip
指令。
比如现在我想打包目录d1:
zip d1.zip d1
zip 压缩包 原文件
再试试解包,先把压缩包移到上级路径,再 unzip
:
tree一下后发现,只打包了目录,因为 zip
默认只打包对应文件本身。
如果想要正确的打包整个目录,应该加上选项 -r
使其递归式的进行打包:
解包操作不变。
如果想打包同一路径下的多个文件,
直接把文件名跟在后面就行:
zip -r 压缩包 原文件1 原文件2
在Windows中,解压缩时有个选项——解压到…。
这里也有对应的指令:
unzip d1.zip -d test
unzip 压缩包 -d 路径
补充一点,如果你是第一次用,有可能还没装zip。
切到root或者用sudo安装就行:
tar
打包和压缩的方案有非常多,
这个从压缩包的后缀就看的出来。
但我们不需要全部掌握,
还是那句话,需要的时候再查就行。
下面来看看 tar
怎么用。
现在,我想将d1以及test.txt打包:
tar czf code.tar.gz d1 test.txt
c
—— create,创建的意思
z
—— 以zip的形式进行压缩
f
—— 指名,后面跟新形成的文档名称
或者tar czf code.tgz d1 test.txt
c
换成 t
,表示不解包,只预览一下里面的内容
tar tzf code.tgz
c
换成 x
,可以解包
tar xzf code.tgz
关于压缩包的名称,严格讲是没有要求的,甚至不加后缀都行:
但一般会用 .tar.gz
或 .tgz
作为文件扩展名,
以表示这是一个经过 gzip
压缩的 tar
归档文件。
.tar
为打包后缀,.gz
为压缩后缀,简写为 .tgz
tar czf XXX
tar tzf XXX
tar xzf XXX
一般,如果这个打包压缩后只在Linux下流转,那么用 tar
;
如果想要在windows下也能用,那么用 zip
。
但是,由于现在解压工具的功能强大,所以并不需要特别区分后缀,记住 tar
就行。
如果想更改解压路径,可以在后面跟一个 -C
加路径:
🧰 杂项
bc
接下来看看 bc
命令。
bc
命令就是Linux下的计算器,输入过后是这个样子的:
然后就可以进行相应的计算:
不用了输入 quit
退出:
可以与 echo
/ cat
等 和管道搭配使用:
uname
-a
表示全部(all)。
uname -a命令用来显示系统的详细信息:
free
free
用来查内存。
可以使用不同的选项来指定显示单位:
-k
表示按KB显示-m
表示按MB显示-g
表示按GB显示
df
df
可以查磁盘。
-h
选项表示以人类可读的格式显示:
人类可读。。有点奇怪,但man手册就是这样写的:
lscpu
lscpu
查cpu。
lsmem
lsmem
查内存。
nano
nano
是Linux中的记事本,可以用 nano --version
查看装了没有。
使用 nano
编辑文件非常简单。
比如可以用touch创建一个test.c文件,然后用nano编辑。
写完后按Ctrl x退出,它会问你要不要保存,输入Y,回车,就可以了。
cat test.c 可以看到已经有内容了,然后gcc test.c编译。
ls -l可以看见我们有了一个a.out的可执行程序,最后./a.out就能运行了。
history
history
用来记录我们输过的历史命令,
可以配合管道使用:
Linux默认记录最新的1000条命令,
这个具体记录多少条也可以自己改。
shutdown
关机指令,别用。
Linux操作系统(服务器),永远不要关机。
因为服务器一旦运行,是7*24小时跑的。
🛠️ 常用按键
🏷️ Tab
Tab
用于补全指令。
比如输入w,然后 Tab
两下,它会跳出以w开头的指令:
如果相关指令只有一个,那么按一下 Tab
,会自动补全。
比如whereis,只需要输入whe,再 Tab
一下,就可以自动补全了:
🏷️ Ctrl C
Ctrl C
用于退出异常的进程。
这个上篇讲过。
🏷️ Ctrl R
历史命令搜索:Ctrl R
。
Linux会把你输过命令记录下了,并且可以通过 Ctrl R
搜索,
如果是你想要的那就回车确认,
如果不是,就 Ctrl C
取消。
🏷️ Ctrl D
Ctrl D
用于退出终端登录/Xshell。
希望本篇文章对你有所帮助!并激发你进一步探索编程的兴趣!
本人仅是个C语言初学者,如果你有任何疑问或建议,欢迎随时留言讨论!让我们一起学习,共同进步!
原文地址:https://blog.csdn.net/2401_86587256/article/details/144336813
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!