---
url: /diary/linux/3/index.md
description: Linux 基础学习笔记第三篇，时间日期命令和查找搜索命令，包括 date、cal、find、locate、grep 等。
---
## 九.时间日期类

### 1.date 指令 -显示当前日期

#### 基本语法：

| 命令                            | 功能       |
|-------------------------------|----------|
| date                          | 显示当前时间   |
| date +%Y                      | 显示当前年份   |
| date +%m                      | 显示当前月份   |
| date +%d                      | 显示当前是哪一天 |
| date “+%Y-%m-%d %H:%M:%S"     | 显示年月日分秒  |
| date -s ”2018-11-10 10:10:10“ | 设置日期     |

#### 应用实例：

```shell
[root@jhoncc ~]# date
2018年 05月 10日 星期日 17:22:29 CST
[root@jhoncc ~]# date +%Y
2018
[root@jhoncc ~]# date +%m
05
[root@jhoncc ~]# date +%d
10
[root@jhoncc ~]# date "+%Y-%m-%d"
2018-05-10
[root@jhoncc ~]# date "+%Y-%m-%d %H-%M-%S"
2018-05-10 17-24-48
```

### 2.cal 指令

> 日历

#### 应用案例：

```shell
[root@jhoncc ~]# cal 2018
                               2018

        一月                   二月                   三月
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
    1  2  3  4  5  6                1  2  3                1  2  3
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    4  5  6  7  8  9 10
14 15 16 17 18 19 20   11 12 13 14 15 16 17   11 12 13 14 15 16 17
21 22 23 24 25 26 27   18 19 20 21 22 23 24   18 19 20 21 22 23 24
28 29 30 31            25 26 27 28            25 26 27 28 29 30 31
```

## 十.搜索查找类

### 1.find 指令

#### 基本用法：

```shell
find [目录] -name [要搜索的文件名]
find [目录] -user [用户名]
find [目录] -size [指令文件大小]
```

#### 应用实例：

```shell
[root@jhoncc ~]# find / -name java
/etc/pki/ca-trust/extracted/java
/etc/pki/java
/etc/java
/etc/alternatives/java
/var/lib/alternatives/java
/usr/bin/java
/usr/lib/java
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.251-2.6.21.1.el7.x86_64/jre/bin/java
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.251-2.6.21.1.el7.x86_64/jre-abrt/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64/jre/bin/java
/usr/share/java
```

### 2.locate 指令

> locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路劲的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统，从查询速度较快。为了保证查询结果的准确度，管理员必须定期更新locate时刻。

#### 基本语法：

```shell
locate 搜索文件
```

#### 特别说明：

​		由于locate指令基于数据库进行查询，所以第一次运行前，必须使用	指令创建locate数据库。

```shell
updatedb
```

#### 应用实例：

```shell
[root@jhoncc ~]# locate java.vim
/usr/share/vim/vim74/ftplugin/java.vim
/usr/share/vim/vim74/indent/java.vim
/usr/share/vim/vim74/syntax/java.vim
```

### 3.grep 指令和 管道符号 |

> grep过滤查找，管道符，”|”，表示将前一个命令的处理结果输出传递给后面的命令处理。

#### 基本语法：

grep \[选项] 查找内容 源文件

#### 常用选项：

-n：显示匹配行以及行号。

-i： 忽略字母大小写。

#### 应用实例：

在 a.txt 文件中，查找“28" 所在行，并且显示行号。

```shell
[root@jhoncc ~]# grep -n 28 a.txt
7:24 25 26 27 28 29 30
15:24 25 26 27 28 29 30
23:24 25 26 27 28 29 30
```

## 十一.压缩和解压缩

### 1.gzip/gunzip 指令

> gzip用于压缩文件，gunzip 用于解压

#### 基本语法：

gzip 文件 （压缩文件，只能将文件压缩为 \*.gz 文件）

gunzip 文件.gz （解压缩文件命令）

#### 应用实例：

1.将 a.txt文件进行压缩

```shell
[root@jhoncc ~]# gzip a.txt
[root@jhoncc ~]# ls
a.txt.gz
```

2.将 a.txt文件进行解压缩

```shell
[root@jhoncc ~]# gunzip a.txt.gz
[root@jhoncc ~]# ls
a.txt
```

### 2.zip/unzip 指令

> zip 用于压缩文件，unzip 用于解压

#### 基本语法：

zip \[选项] xxx.zip 将要压缩的内容 （压缩文件和目录）

unzip \[选项] xxxx.zip （解压缩文件）

#### 常用选项：

##### zip：

-r：递归目录，即压缩目录

##### unzip：

-d<目录>：指定解压后文件的存放目录

#### 应用实例：

```shell
[root@jhoncc ~]# zip a.zip a.txt
  adding: a.txt (deflated 75%)
[root@jhoncc ~]# ls
a.zip
```

```shell
[root@jhoncc ~]# unzip a.zip -d /root/b.txt
Archive:  a.zip
  inflating: /root/b.txt/a.txt
[root@jhoncc ~]# ls
a.zip b.txt
```

### 3.tar指令

> tar 指令时打包指令，最后打包后的文件是 .tar.gz的文件。

#### 基本语法：

tar \[选项] xxxx.tar.gz 打包的内容 （打包目录，压缩后的文件格式 .tar.gz）

#### 常用选项：

| -c   | 产生 .tar 打包文件 |
| ---- | ------------------ |
| -v   | 显示详细信息       |
| -f   | 指定压缩后的文件名 |
| -z   | 打包同时压缩       |
| -x   | 解压 .tar 文件     |

#### 应用实例：

1.将 a.txt b.txt 压缩成 hello.tar.gz

```shell
[root@jhoncc mc]# tar -zcvf a.tar.gz a.txt b.txt
a.txt
b.txt
[root@jhoncc mc]# ls
a.tar.gz  a.txt  b.txt
```

2.将/home 文件夹压缩成 myhome.tar.gz

```shell
[root@jhoncc mc]# tar -zcvf myhome.tar.gz /home/
```

3.将 hello.tar.gz 解压到/opt目录

```shell
[root@jhoncc mc]# tar -zxvf a.tar.gz -C /opt/
```
