前言:
在前面我们已经讲了有十几个Linux的基础指令,今天我们再补充几个常用的基础指令,为后面的学习做准备 。

目录
[演示 :](#演示 :)
[二、find 指令](#二、find 指令)
[三、 grep 指令](#三、 grep 指令)
[演示 :](#演示 :)
[七、bc 指令](#七、bc 指令)
[演示 :](#演示 :)
一、两个与时间相关的指令
1.date指令
功能: 用于显示和设置系统的日期和时间
基本用途:
查看当前时间: 直接在终端中输入date;
设置系统时间: 使用date -s后跟日期和时间字符串,格式为"YYYY-MM-DD HH:MM:SS",注意字符串需要用双引号括起来;(讲的可能太抽象了,还是看下面的例子)
显示特定格式的日期和时间: 可以使用date +下面的格式化选项(这里的"+"是要写上去的)
常用选项(关于选项的记忆,大家直接当成相关的英文单词记忆就行, 月和分选项的大小写要注意区分**)**
- %H:小时
- %M:分钟
- %S:秒
- %X:相当于%H:%M:%S
- %d:日
- %m:月
- %Y:年
- %F/%x:相当于%Y-%m-%d
相信大部分同学对上面功能的简述不理解,接下来我将用示例带大家学习。
演示 :
1)基础指令

2) 以特定的格式显示当前时间



时间戳
时间戳是一个很有意思的概念,因为每个地方时间都不一样,计算机界为了同一时间,就把1970年午夜作为一个起点,之后每过一秒加1,一直持续到现在。
查看当前时间对应的时间戳的方法:date +%s

查看一个时间戳所对应的时间的方法:date -d@数字

在上面我们提到了时间戳,时间戳又是什么呢?为啥为0的时间戳对应的时间是早上八点呢?关于它的详细概念,我会像之前那样专门写一篇博客介绍一下。
设置时间
date -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20250412 //设置成20250412,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
----------下面的几种写法只是将时间点的书写顺序改变了,效果是不变的------------------------
date -s "01:01:01 2025-04-12″ //这样可以设置全部时间
date -s "01:01:01 20250412″ //这样可以设置全部时间
date -s "2025-04-12 01:01:01″ //这样可以设置全部时间
date -s "20250412 01:01:01″ //这样可以设置全部时间
这里我就不是叫演示了,大家有兴趣的可以尝试一下
2、cal指令
cal指令
cal指令可以帮助我们查看日历相关的信息
- 语法:cal 【选项】【时间】
- 功能:查看当前的日历
- 常用选项:
-3 显示系统前一个月,当前月,下一个月的月历
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天 数)
-y 显示当前年份的日历
演示:
1)-3

2)-j**(偷偷告诉你,在date指令当中用该选项同样有这种效果)**


- -y

二、find 指令
find指令
find指令是非常重要的,它能帮助我们在指定路径下查找文件,功能非常强大。
- 语法: find 【路径】【选项】【文件名】
- 功能: 用于在文件中查找文件,并作出相应的处理(可能访问磁盘)
- 常用选项:
- -name:按文件名搜索。支持使用通配符(如*、?等)
- -iname:类似于-name,但搜索时不区分大小写
- -type:按文件类型搜索。例如,f表示普通文件,d表示目录
演示:

注:在前面我们讲过Linux下文件的存放形式是类似树状的,而我们普通用户的家目录也只是树上的一个分支,当我们以普通用户的身份查找文件时,我们只能查找我们这个家目录下的文件,其它文件我们是无权查看的,是会收到权限的限制。
如下:我们是普通用户,但尝试在其他用户家目录下查找

我们发现文件后面有:Permission denied ,这就是我们没有权限的意思,如果想要查看这种文件我们可以切换到root身份下进行
三、 grep 指令
**grep指令的功能就是在文件中搜索特定字符串,并将找到的文本行打印出来,**在配合查找大型文件时十分好用
grep指令
- 语法: grep [选项】[模式] [文件]
- 功能: 在文件中搜索字符串,将找到的行打印出来
- 常用选项:
-i: 忽略大小写
-v: 反向选择,只显示不匹配的文本行
-c: 计算匹配的行数,而不是显示匹配的行内容
-l: 只列出包含匹配文本的文件名,而不显示匹配的文本行
-L: 只列出不包含匹配文本的文件名
-n: 显示匹配的行号及内容
演示 :
首先,我们创建一个较大的文本用来模拟现实可能出现的使用场景。
cpp
1 #include<stdio.h>
2
3
4 int main()
5 {
6
7 for(int i=0;i<10000;i++)
8 {
9 printf("这是第%d行\n",i);
10 }
11
12 return 0;
13 }
利用重定向快速创建出来,上面是test.c的代码。

1)不带选项

2)-v

- -c(这里我将两个指令连用了,单用效果是一样的)

由于选项较多,但是使用方法就是上面的那些,所以剩下的大家直接去实践一下吧。
五、zip/unzip指令
zip和unzip是两个命令行工具,分别用于压缩文件和目录(打包成.zip格式)以及解压缩.zip文件,
打包和压缩对于我们来说应该并不陌生,在Windows下就经常需要将一个或几个相关联的文件打包压缩在一起,这样即可以防止这些文件中发生部分丢失也可以节省内存;在Linux下同理。
首先在使用它们之前,我们应该确保操作系统已经安装了这个软件,如果没有安装可以通过执行一下命令来安装。
cpp
yum install -y unzip zip
如果已有了,就会显示下图。

zip/unzip指令
- 语法: zip 【选项】【压缩文件】/ unzip 【选项】【以压缩文件】
- 功能: 将目录或文件压缩成zip格式
- 常用选项:
-r: 递归地将目录及子目录下的所有文件和目录都压缩到压缩文件中
-d: 将压缩文件解压到指定目录下。
演示:
1)-r,观察下图我们发现如果没带 -r选项,zip选项只能压缩一个空文件,没有用。

2)-r+-d

进行解压,下面的问题是因为我选择的新目录当中有同名文件。


六、tar指令
**Linux中最常用的归档(打包)命令,该命令可以将许多文件一起保存到一个单独的磁带或磁盘中进行归档。不仅如此,该命令还可以从归档文件中还原所需文件,也就是打包的反过程,称为解包,**但是它与zip/unzip指令还是有所不同的
tar指令
- 语法:tar [选项] 源文件或目录
- 作用: 打包和解包文件
- 常用选项:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录
tar指令的相关选项的组合有很多,但我们主要记住下面三个就行:
- tar czf dir.tgz dir:将目录dir打包成dir.zip文件
- tar xzf dir.tgz:将文件dir.zip解压到当前目录
- tar xzf dir.tgz -C otherdir:将文件dir.zip解压到指定目录
tar ztvf dir.tgz
:直接查看压缩包内的文件(无需解压)
演示:
1)czf与xzf


先将原来的文件改名,防止影响解压

2)xzf + -C

3)ztvf

关于两种打包压缩指令的选择
一般在纯Linux环境下使用我们更建议使用tar指令,如果是希望我们打包和压缩的文件在windows下也可以很方便的互通,那么我们更建议zip/unzip指令
七、bc 指令
bc指令就是操作系统当中一个内置的简单计算器,可以很方便的进行浮点运算。
bc指令
- 语法:bc
- 作用:进行简单的计算
- 常用选项:无
演示 :

比如这个例子中,我们进行了加法和乘法的运算,在执行完相关的运算后,按crtl+c/按quit退出

八、uname指令
uname指令是用来帮助我们查看我们当前使用的Linux的内核版本的各种信息,就类似Windows下的电脑管家。
uname指令
- 语法:uname [选项]
- 功能:uname用来获取电脑和操作系统的相关信息。
- 补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
- 常用选项:
-a或--all 显示全部的信息。
-m或--machine 显示电脑类型。
-n或--nodename 显示在网络上的主机名称。
-r或--release 显示操作系统的发行编号。
-s或--sysname 显示操作系统名称。
-v 显示操作系统的版本。
--help 显示帮助。
演示:
1)-a

对应打印出来的信息解读,大家可以结合下图理解,或者上网查找更详细的资料。
a或--all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
后面的选项结果不好放出,我就不做演示了,大家可以自己试试。
总结
结合之前讲的两篇,我们讲的指令总共也有二三十个了,这些就是Linux中的一些常用的并且比较基础的指令,接下来还会有一篇指令的讲解。
本篇文章的分享就到这里了,如果您觉得在本文有所收获,能不能点一个免费的赞支持一下呢。
