目录
一. date指令 -- 显示时间
二. cal指令 -- 日历打印指令
三. find指令 -- 查找文件
四. grep指令 -- 行过滤指令
五. zip/unzip指令 -- 压缩和解压缩
六. tar指令 -- 解压/打包 或 查看压缩包内文件
七. bc指令 -- 计算器
八. uname指令 -- 获取电脑和操作系统相关信息
九. Tab、Ctrl+C、Ctrl+r和Ctrl+d
十. shutdown指令 -- 关机
一. date指令 -- 显示时间
实际项目中写代码,日志很重要,这有助于定位异常发生时间以及记录程序运行过程等。程序每运行到一个关键时刻,都要打日志。
日志内容主要包括:时间、日志等级、日志具体信息以及其他与业务相关的信息。
date指令的使用:
- 指定格式显示时间:date +%Y:%m:%d -- 年:月:日
- date使用方法:date 选项 格式
[zhangHHH@VM-8-5-centos ~]$ date +%Y:%m:%d
2023:05:14
[zhangHHH@VM-8-5-centos ~]$ date +%Y_%m_%d
2023_05_14
[zhangHHH@VM-8-5-centos ~]$ date +%Y:%m:%d_%H:%M:%S
2023:05:14_19:54:41
时间戳:为了满足不同时区之间进行通讯的时间记录问题,引入时间戳来对各地区的计算机时间进行统一。时间戳指从格林威治时间1970年1月1日午夜到现在所经历的秒数。
我们在自己的Linux系统下使用指令将时间戳转换为具体时间时,会转换为本地区的时间显示。
- 时间 -> 时间戳:date +%s
- 时间戳 -> 时间:date -d @时间戳
[zhangHHH@VM-8-5-centos ~]$ date +%s
1684065566
[zhangHHH@VM-8-5-centos ~]$ date -d @1684065566
Sun May 14 19:59:26 CST 2023
[zhangHHH@VM-8-5-centos ~]$ date -d @168406
Sat Jan 3 06:46:46 CST 1970
[zhangHHH@VM-8-5-centos ~]$ date -d @5
Thu Jan 1 08:00:05 CST 1970
[zhangHHH@VM-8-5-centos ~]$ date -d @0
二. cal指令 -- 日历打印指令
- 语法:cal [参数][月份][年份]
- 打印指定年份/月份的日历
-3:当前月、前一个月和后一个月的日历。
[zhangHHH@VM-8-5-centos ~]$ cal
May 2023
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
[zhangHHH@VM-8-5-centos ~]$ cal 2 2023
February 2023
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28
[zhangHHH@VM-8-5-centos ~]$ cal -3
April 2023 May 2023 June 2023
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 2 3 4 5 6 1 2 3
2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10
9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17
16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24
23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30
30
三. find指令 -- 查找文件
find的选项极多,但最常使用的就是在指定路径下按照文件名查找文件,语法为
- find 路径名 -name 文件名
[zhangHHH@VM-8-5-centos ~]$ ls ./dir1
test1.txt test2.txt
[zhangHHH@VM-8-5-centos ~]$ find ./dir1/ -name test1.txt
./dir1/test1.txt
[zhangHHH@VM-8-5-centos ~]$ find ./dir1/ -name test2.txt
./dir1/test2.txt
注意:如果普通用户在home以外查找文件,那么大概率会报错,而root用户一般不会。报错信息:Permission denied -- 禁止访问。
- which 指令 -- 在指令路径下(user/bin/)下搜索指令
- whereis 指令 -- 搜索更多与指令相关的文件
[zhangHHH@VM-8-5-centos ~]$ which ls
alias ls='ls --color=auto'
/usr/bin/ls
[zhangHHH@VM-8-5-centos ~]$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
四. grep指令 -- 行过滤指令
- 语法:grep [选项] '字符串' 文件
- 功能:在文件中搜索包含特定字符串(或不包含)的行
- 选项:-i:忽略字母大小写,-n:打印行号,-v:反向选择(不包含特定字符串)
[zhangHHH@VM-8-5-centos ~]$ cat test.txt
hello Linux
hello Linux
hello linux
hello LINUX
hello world
hello World
hello WORLD
[zhangHHH@VM-8-5-centos ~]$ grep 'Linux' test.txt
hello Linux
hello Linux
[zhangHHH@VM-8-5-centos ~]$ grep -i 'Linux' test.txt
hello Linux
hello Linux
hello linux
hello LINUX
[zhangHHH@VM-8-5-centos ~]$ grep -n 'world' test.txt
6:hello world
[zhangHHH@VM-8-5-centos ~]$ grep -vn 'world' test.txt
1:hello Linux
2:hello Linux
3:hello linux
4:hello LINUX
5:
7:hello World
8:hello WORLD
9:
[zhangHHH@VM-8-5-centos ~]$
- grep -r ‘字符串’ 目录 -- 在目录下递归查找不同文件的指定内容
- cat 文件名 | grep '字符串' -- 通过管道打印
- grep后面可以跟多个文件名
五. zip/unzip指令 -- 压缩和解压缩
打包和压缩的概念:打包是指将多个文件合为一个文件,压缩是指通过算法将文件进行合理摆放,使其占用更少的空间。
为什么要打包和压缩:(1)能被打包的一定是多个文件构成的整体,对整体进行传输,不会造成文件的部分缺失。(2)让体积变小,减少传输时间。
- zip 前缀.zip 文件或目录名 -- 文件压缩
- zip -r 前缀.zip 目录/文件 -- 递归压缩,不加-r无法实现将一个目录下面的所有文件递归压缩
-r为递归压缩选项。
dir1 test1.txt test2.cpp test.cpp test.txt
[zhangHHH@VM-8-5-centos ~]$ zip -r d.zip dir1 test1.txt test2.cpp
adding: dir1/ (stored 0%)
adding: dir1/test1.txt (deflated 21%)
adding: dir1/test2.txt (deflated 7%)
adding: test1.txt (stored 0%)
adding: test2.cpp (stored 0%)
[zhangHHH@VM-8-5-centos ~]$ ls
dir1 d.zip test1.txt test2.cpp test.cpp test.txt
[zhangHHH@VM-8-5-centos ~]$
- unzip 前缀.zip -- 解压缩到当前路径
- unzip 前缀.zip -d 指定路径 -- 解压到指定路径(-d)
-d为指定解压缩路径选项。
[zhangHHH@VM-8-5-centos ~]$ ls
dir1 d.zip test1.txt test2.cpp test.cpp test.txt
[zhangHHH@VM-8-5-centos ~]$ unzip d.zip -d ./dir1
Archive: d.zip
inflating: ./dir1/dir1/test1.txt
inflating: ./dir1/dir1/test2.txt
extracting: ./dir1/test1.txt
extracting: ./dir1/test2.cpp
[zhangHHH@VM-8-5-centos ~]$ ls ./dir1
dir1 test1.txt test2.cpp
[zhangHHH@VM-8-5-centos ~]$
六. tar指令 -- 解压/打包 或 查看压缩包内文件
- tar czf XXX.tgz 文件名 -- 打包
- tar tzf XXX.tgz -- 不解压压缩包,预览压缩包里面的内容
- tar xzf XXX.tgz -- 解压
- tar xzf XXX.tgz -C 路径 -- 解压到指定路径
-C选项为解压到指定路径。
.tar为打包后缀,.gz为压缩后缀,.tgz等价于.tar.gz
[zhangHHH@VM-8-5-centos dir2]$ ls
dir1 dir3 test1.c test2.c
[zhangHHH@VM-8-5-centos dir2]$ tar czf d.tgz dir1 test1.c test2.c
[zhangHHH@VM-8-5-centos dir2]$ ls
dir1 dir3 d.tgz test1.c test2.c
[zhangHHH@VM-8-5-centos dir2]$ tar tzf d.tgz
dir1/
dir1/test1.txt
dir1/test2.txt
test1.c
test2.c
[zhangHHH@VM-8-5-centos dir2]$ tar xzf d.tgz -C ./dir3
[zhangHHH@VM-8-5-centos dir2]$ ls ./dir3
dir1 test1.c test2.c
[zhangHHH@VM-8-5-centos dir2]$
七. bc指令 -- 计算器
- 可以支持浮点数运算,可以分辨优先级。
- 输入quit退出计算器
- 可以通过管道计算,如echo "1+2+3" | bc
[zhangHHH@VM-8-5-centos dir2]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2+3
6
(1+3)*2
8
1.23+2.13
3.36
quit
[zhangHHH@VM-8-5-centos dir2]$ echo "1+2*4" | bc
9
[zhangHHH@VM-8-5-centos dir2]$
八. uname指令 -- 获取电脑和操作系统相关信息
- uname -- 获取当前系统
- uname -a -- 获取系统所有信息
- uname -r -- 查看当前系统的体系结构(内核版本、系统、32/64位)
[zhangHHH@VM-8-5-centos dir2]$ uname
Linux
[zhangHHH@VM-8-5-centos dir2]$ uname -a
Linux VM-8-5-centos 3.10.0-1160.88.1.el7.x86_64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
[zhangHHH@VM-8-5-centos dir2]$ uname -r
3.10.0-1160.88.1.el7.x86_64
[zhangHHH@VM-8-5-centos dir2]$
九. Tab、Ctrl+C、Ctrl+r和Ctrl+d
- Tab:单击补全指令,双击输出以特定字符串开头的指令
- ctrl+r:搜索历史指令
- ctrl+c:强制进程终止
- ctrl+d:退出当前用户
history:打印历史上的指令(默认1000条)。Linux会对进行执行过的,特定数量的指令进行记录,一般记录最近执行的1000条指令。
十. shutdown指令 -- 关机
注意:运行在Linux云服务器上的操作系统,永远不关机。
- shutdown -h:立即关机
- shutdown -r:立即重新启动
- shutdown -t 秒数:指定多少秒后关机