# Linux 命令行转义
Linux 中,shell 转义符有三种:
""
(双引号),又叫软转义,其内部只允许出现特定的 shell 元字符$
用于参数代换``
用于命令代替''
(单引号),又叫硬转义,其内部所有的 shell 元字符、通配符都会被关掉。注意,硬转义中不允许出现'(单引号)\
(反斜杠),又叫转义,去除其后紧跟的元字符或通配符的特殊意义
# 环境变量修改
详见 Linux 环境变量
# 文件相关
# 软链接
# 创建软链接
ln -s [源文件或目录] [目标文件或目录]
# 删除软链接 注意不要加 软链接名称后面不要加 `/`
rm -rf 软链接名称
# 修改软链接
ln –snf [新的源文件或目录] [目标文件或目录]
参数:
-b
删除,覆盖以前建立的链接-d
允许超级用户制作目录的硬链接-f
强制执行-i
交互模式,文件存在则提示用户是否覆盖-n
把符号链接视为一般目录-s
软链接(符号链接)-v
显示详细的处理过程
# 日志查看分析
# tail (opens new window)
# head (opens new window)
# cat (opens new window)
# less (opens new window)
# more (opens new window)
# grep (opens new window)
语法:
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录。..]
参数:
-a
或--text
不要忽略二进制的数据。-A <显示行数>
或--after-context=<显示行数>
除了显示符合范本样式的那一列之外,并显示该行之后的内容。-b
或--byte-offset
在显示符合样式的那一行之前,标示出该行第一个字符的编号。-B <显示行数>
或--before-context=<显示行数>
除了显示符合样式的那一行之外,并显示该行之前的内容。-c
或--count
计算符合样式的列数。-C <显示行数>
或--context=<显示行数>
或-<显示行数>
除了显示符合样式的那一行之外,并显示该行之前后的内容。- ……
# sed (opens new window)
利用脚本来处理文本文件
这个命令可以查找日志文件特定的一段 , 根据时间的一个范围查询,可以按照行号和时间范围查询。
# 按照时间段(其实就是文字匹配 并不是真正的按时间范围匹配)
# `-n` 仅显示script处理后的结果 `p` 表示打印命令
sed -n '/2021-01-01 00:00:00/,/2021-02-01 00:00:00/p' xxx.log
# awk (opens new window)
一种处理文本文件的语言,是一个强大的文本分析工具
# wc (opens new window)
计数
-l
统计行数
-c
统计字节数
-w
统计字词数
不带参数三个都统计
# 解压缩
# 安装
yum install -y unzip zip
# zip (opens new window)
实例:
# 将当前目录下的所有文件和文件夹全部压缩成 xxx.zip 文件,-r 表示递归压缩子目录下所有文件
zip -r xxx.zip ./*
zip 命令语法参数详情
语法:
zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件。..][-i <范本样式>][-x <范本样式>]
参数:
-A
调整可执行的自动解压缩文件。-b <工作目录>
指定暂时存放文件的目录。-c
替每个被压缩的文件加上注释。-d
从压缩文件内删除指定的文件。-D
压缩文件内不建立目录名称。-f
更新现有的文件。-F
尝试修复已损坏的压缩文件。-g
将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。-h
在线帮助。-i <范本样式>
只压缩符合条件的文件。-j
只保存文件名称及其内容,而不存放任何目录名称。-J
删除压缩文件前面不必要的数据。-k
使用 MS-DOS 兼容格式的文件名称。-l
压缩文件时,把 LF 字符置换成 LF+CR 字符。-ll
压缩文件时,把 LF+CR 字符置换成 LF 字符。-L
显示版权信息。-m
将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。-n <字尾字符串>
不压缩具有特定字尾字符串的文件。-o
以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。-q
不显示指令执行过程。-r
递归处理,将指定目录下的所有文件和子目录一并处理。-S
包含系统和隐藏文件。-t <日期时间>
把压缩文件的日期设成指定的日期。-T
检查备份文件内的每个文件是否正确无误。-u
与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。-v
显示指令执行过程或显示版本信息。-V
保存 VMS 操作系统的文件属性。-w
在文件名称里假如版本编号,本参数仅在 VMS 操作系统下有效。-x <范本样式>
压缩时排除符合条件的文件。-X
不保存额外的文件属性。-y
直接保存符号连接,而非该连接所指向的文件,本参数仅在 UNIX 之类的系统下有效。-z
替压缩文件加上注释。-$
保存第一个被压缩文件所在磁盘的卷册名称。-<压缩效率>
压缩效率是一个介于 1-9 的数值。
# unzip (opens new window)
实例: 解压 zip 文件到当前目录
unzip filename.zip
unzip 命令语法参数详情
语法:
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip 文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]
参数:
-c
将解压缩的结果显示到屏幕上,并对字符做适当的转换。-f
更新现有的文件。-l
显示压缩文件内所包含的文件。-p
与-c 参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。-t
检查压缩文件是否正确。-u
与-f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。-v
执行是时显示详细的信息。-z
仅显示压缩文件的备注文字。-a
对文本文件进行必要的字符转换。-b
不要对文本文件进行字符转换。-C
压缩文件中的文件名称区分大小写。-j
不处理压缩文件中原有的目录路径。-L
将压缩文件中的全部文件名改为小写。-M
将输出结果送到 more 程序处理。-n
解压缩时不要覆盖原有的文件。-o
不必先询问用户,unzip 执行后覆盖原有文件。-P
<密码> 使用 zip 的密码选项。-q
执行时不显示任何信息。-s
将文件名中的空白字符转换为底线字符。-V
保留 VMS 的文件版本信息。-X
解压缩时同时回存文件原来的 UID/GID。[.zip 文件]
指定。zip 压缩文件。[文件]
指定要处理。zip 压缩文件中的哪些文件。-d
<目录> 指定文件解压缩后所要存储的目录。-x
<文件> 指定不要处理。zip 压缩文件中的哪些文件。-Z
unzip -Z 等于执行 zipinfo 指令。
# 进程相关
# 查看进程资源占用情况
top -p [pid]
# 查看进程 IO 统计,-d 表示统计间隔
pidstat -p [pid] -d 1
# 终止进程(发送对应信号)
# 如常见的 kill -9 pid 是发送 SIGKILL 信号而已
kill [-s signal|-p] [-q sigval] [-a] [--] pid
# 终止所有名称为 xxx 的进程
killall xxx
# 查看所有信号
kill -l
编号 | 信号名 | 含义 |
---|---|---|
0 | SIGEXIT | 程序退出时收到该信息 |
1 | SIGHUP | 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化 |
2 | SIGINT | 表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号 |
3 | SIGQUIT | 退出 |
9 | SIGKILL | 杀死进程,即强制结束进程 |
11 | SIGSEGV | 段错误 |
15 | SIGTERM | 正常结束进程,是 kill 命令的默认信号 |
# 定时任务 Crontab
我们经常使用的是 crontab (opens new window) 命令是 cron table 的简写,它是 cron 的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
- /var/spool/cron/ 目录下存放的是每个用户包括 root 的 crontab 任务,每个任务以创建者的名字命名
- /etc/crontab 这个文件负责调度各种管理和维护任务。
- /etc/cron.d/ 这个目录用来存放任何要执行的 crontab 文件或脚本。
- 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly 目录中,让它每小时/天/星期、月执行一次。
crontab [-u username] # 省略用户表表示操作当前用户的 crontab
-e # 编辑工作表
-l # 列出工作表里的命令
-r # 删除工作作
我们用 crontab -e
进入当前用户的工作表编辑,是常见的 vim 界面。每行是一条命令。
crontab 的命令构成为 时间 + 动作,其时间有分、时、日、月、周五种,操作符有
*
取值范围内的所有数字/
每过多少个数字-
从 X 到 Z,
散列数字
# 每周一到周五 8 点到 20 点每隔 1 小时的 30 分执行 xxx
30 8-20/1 * * 1-5 xxx
Linux Crontab 定时任务 | 菜鸟教程 (opens new window)
# 授权
# 授权可运行
chmod +x xxxxx.sh
# 主机名 hostname 修改
使用 hostname
命令可查看当前主机名。
- CentOS 7/8
# 使用这个命令会立即生效且重启也生效
hostnamectl set-hostname xxx
# 修改 hosts,添加 127.0.0.1 xxx
vim /etc/hosts
v1.4.14