Linux 常用命令

4/8/2020, linux

# Linux 命令行转义

Linux 中,shell 转义符有三种:

  • ""(双引号),又叫软转义,其内部只允许出现特定的 shell 元字符 $ 用于参数代换``用于命令代替
  • ''(单引号),又叫硬转义,其内部所有的 shell 元字符、通配符都会被关掉。注意,硬转义中不允许出现'(单引号)
  • \ (反斜杠),又叫转义,去除其后紧跟的元字符或通配符的特殊意义

# 环境变量修改

详见 Linux 环境变量

# 文件相关

# 软链接

# 创建软链接
ln -s [源文件或目录] [目标文件或目录]
# 删除软链接 注意不要加 软链接名称后面不要加 `/`
rm -rf 软链接名称
# 修改软链接
ln –snf [新的源文件或目录]  [目标文件或目录]

参数:

  • -b 删除,覆盖以前建立的链接
  • -d 允许超级用户制作目录的硬链接
  • -f 强制执行
  • -i 交互模式,文件存在则提示用户是否覆盖
  • -n 把符号链接视为一般目录
  • -s 软链接(符号链接)
  • -v 显示详细的处理过程

# 日志查看分析

# tail (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 (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
Last Updated: 3/2/2021, 7:26:41 PM
Powered By Valine
v1.4.14