# Linux运维必会的命令详解（二）

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/10213.html | 发布：2022-09-19 | 更新：2022-09-19 | 分类：建站教程、投稿分享

## 11. crontab

 

#### 简介

 

执行定时任务

 

#### 语法

 

crontab [ -u user ] file  
#或者  
crontab [ -u user ] { -l | -r | -e }

 

crontab [ -u user ] file  
#或者  
crontab [ -u user ] { -l | -r | -e }

 

#### 参数

 

-e : 执行文字编辑器来设定时程表，内定的文字编辑器是 VI，如果你想用别的文字编辑器，则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)  
-r : 删除目前的时程表  
-l : 列出目前的时程表  
时间格式：  
(1) 其中 f1 是表示分钟，f2 表示小时，f3 表示一个月份中的第几日，f4 表示月份，f5 表示一个星期中的第几天。program 表示要执行的程序。  
当 f1 为 * 时表示每分钟都要执行 program，f2 为 * 时表示每小时都要执行程序，其余类推  
(2) 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行，f2 为 a-b 时表示从第 a 到第 b 小时都要执行，其余类推  
(3) 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次，f2 为 */n 表示每 n 小时个时间间隔执行一次，其余类推  
(4) 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行，f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行，其余类推

 

f1 f2 f3 f4 f5 program  
* * * * *  
- - - - -  
| | | | |  
| | | | +----- 星期中星期几 (0 - 7) (星期天 为0)  
| | | +---------- 月份 (1 - 12)   
| | +--------------- 一个月中的第几天 (1 - 31)  
| +-------------------- 小时 (0 - 23)  
+------------------------- 分钟 (0 - 59)

 

#### 示例

 

每分钟执行一次/bin/ls

 

* * * * * /bin/ls

 

在 12 月内, 每天的早上 6 点到 12 点，每隔 3 个小时 0 分钟执行一次 /usr/bin/backup

 

0 6-12/3 * 12 * /usr/bin/backup

 

每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分…执行 echo “haha”

 

20 0-23/2 * * * echo"haha"

 

每天22：50关闭ssh服务

 

50 22 * * * /sbin/service sshd stop

 

每月1号和15号检查/home 磁盘

 

0 0 1,15 * * fsck /home

 

0 0 1,15 * * fsck /home

 

## 12. lsof

 

#### 简介

 

列出当前系统打开文件的工具

 

#### 语法

 

lsof ［options］ filename

  

#### 参数

 

默认 : 没有选项，lsof列出活跃进程的所有打开文件  
组合 : 可以将选项组合到一起，如-abc，但要当心哪些选项需要参数  
-a 结果进行“与”运算（而不是“或”）  
-c<进程名> 列出指定进程锁打开的文件  
-g 列出GID号进程详情  
+d<文件号> 列出占用该文件号的进程  
+D<目录> 递归列出目录下被打开的文件  
-n<目录> 列出NFS的文件  
-i<条件> 列出符合条件的进程  
-p<进程号> 列出指定进程号打开的文件  
-l 在输出显示用户ID而不是用户名  
-h 获得帮助  
-t 仅获取进程ID  
-U 获取UNIX套接口地址  
-F 格式化输出结果，用于其它命令。可以通过多种方式格式化，如-F pcfn（用于进程id、命令名、文件描述符、文件名，并以空终止）

 

#### 示例

 

#列出所有打开的文件:  
$ lsof  
#备注: 如果不加任何参数，就会打开所有被打开的文件，建议加上一下参数来具体定位

 

#递归查看某个目录的文件信息  
$ lsof +D /filepath/filepath2/  
#备注: 使用了+D，对应目录下的所有子目录和文件都会被列出

 

# 列出某个用户打开的文件信息  
lsof -u username

 

# 列出某个程序所打开的文件信息  
lsof -c mysql

 

# 通过某个进程号显示该进行打开的文件  
lsof -p 1

 

# 列出所有tcp 网络连接信息  
lsof -i tcp

 

# 列出谁在使用某个端口  
lsof -i :3306

 

# 列出所有网络文件系统  
lsof -N

 

# 根据文件描述列出对应的文件信息  
lsof -d description(like 2)

 

## 13. netstat

 

#### 简介

 

获取系统的网络状况

 

#### 语法

 

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

 

#### 参数

 

-a或–all 显示所有连线中的Socket  
-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址  
-c或–continuous 持续列出网络状态  
-C或–cache 显示路由器配置的快取信息  
-e或–extend 显示网络其他相关信息  
-F或–fib 显示FIB  
-g或–groups 显示多重广播功能群组组员名单  
-h或–help 在线帮助  
-i或–interfaces 显示网络界面信息表单  
-l或–listening 显示监控中的服务器的Socket  
-M或–masquerade 显示伪装的网络连线  
-n或–numeric 直接使用IP地址，而不通过域名服务器  
-N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称  
-o或–timers 显示计时器  
-p或–programs 显示正在使用Socket的程序识别码和程序名称  
-r或–route 显示Routing Table  
-s或–statistics 显示网络工作信息统计表  
-t或–tcp 显示TCP传输协议的连线状况  
-u或–udp 显示UDP传输协议的连线状况  
-v或–verbose 显示指令执行过程  
-V或–version 显示版本信息  
-w或–raw 显示RAW传输协议的连线状况  
-x或–unix 此参数的效果和指定"-A unix"参数相同  
–ip或–inet 此参数的效果和指定"-A inet"参数相同

 

#### 示例

 

显示详细的网络状况

 

$ netstat -a

 

显示所有的监听套接口

 

$ netstat -l

 

显示所有tcp和udp连接

 

$ netstat -tuln

 

## 14. route

 

#### 简介

 

查看路由表

 

#### 语法

 

route [-f] [-p] [Command] [Destination] [mask Netmask] [Gateway] [metric Metric] [if Interface]

 

#### 参数

 

-c 显示更多信息  
-n 不解析名字  
-v 显示详细的处理信息  
-F 显示发送信息  
-C 显示路由缓存  
-f 清除所有网关入口的路由表  
-p 与 add 命令一起使用时使路由具有永久性  
add:添加一条新路由。  
del:删除一条路由。  
-net:目标地址是一个网络  
-host:目标地址是一个主机  
netmask:当添加一个网络路由时，需要使用网络掩码  
gw:路由数据包通过网关。注意，你指定的网关必须能够达到  
metric：设置路由跳数

 

#### 示例

 

添加网关/设置网关

 

$ route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

 

屏蔽一条路由

 

$ route add -net 224.0.0.0 netmask 240.0.0.0 reject

 

删除路由记录

 

$ route del -net 224.0.0.0 netmask 240.0.0.0  
$ route del -net 224.0.0.0 netmask 240.0.0.0 reject

 

删除和添加设置默认网关

 

$ route del default gw 192.168.120.240  
$ route add default gw 192.168.120.240

 

## 15. tcpdump

 

#### 简介

 

用于抓包分析数据包

 

#### 语法

 

tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]

 

#### 参数

 

-a 尝试将网络和广播地址转换成名称  
-c<数据包数目> 收到指定的数据包数目后，就停止进行倾倒操作  
-d 把编译过的数据包编码转换成可阅读的格式，并倾倒到标准输出  
-dd 把编译过的数据包编码转换成C语言的格式，并倾倒到标准输出  
-ddd 把编译过的数据包编码转换成十进制数字的格式，并倾倒到标准输出  
-e 在每列倾倒资料上显示连接层级的文件头  
-f 用数字显示网际网络地址  
-F<表达文件> 指定内含表达方式的文件  
-i<网络界面> 使用指定的网络截面送出数据包  
-l 使用标准输出列的缓冲区  
-n 不把主机的网络地址转换成名字  
-N 不列出域名  
-O 不将数据包编码最佳化  
-p 不让网络界面进入混杂模式  
-q 快速输出，仅列出少数的传输协议信息  
-r <数据包文件> 从指定的文件读取数据包数据  
-s <数据包大小> 设置每个数据包的大小  
-S 用绝对而非相对数值列出TCP关联数  
-t 在每列倾倒资料上不显示时间戳记  
-tt 在每列倾倒资料上显示未经格式化的时间戳记  
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型  
-v 详细显示指令执行过程  
-vv 更详细显示指令执行过程  
-x 用十六进制字码列出数据包资料  
-w<数据包文件> 把数据包数据写入指定的文件

 

#### 示例

 

显示TCP包信息

 

$ tcpdump

 

显示指定数量包

 

$ tcpdump -c 20

 

精简显示

 

$ tcpdump -c 10 -q //精简模式显示 10个包

 

## 16. tar

 

#### 简介

 

用于文件备份

 

#### 语法

 

tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Script文件>][-K <文件>][-L <媒体容量>][-N <日期时间>][-T <范本文件>][-V <卷册名称>][-X <范本文件>][-<设备编号><存储密度>][--after-date=<日期时间>][--atime-preserve][--backuup=<备份方式>][--checkpoint][--concatenate][--confirmation][--delete][--exclude=<范本样式>][--force-local][--group=<群组名称>][--help][--ignore-failed-read][--new-volume-script=<Script文件>][--newer-mtime][--no-recursion][--null][--numeric-owner][--owner=<用户名称>][--posix][--erve][--preserve-order][--preserve-permissions][--record-size=<区块数目>][--recursive-unlink][--remove-files][--rsh-command=<执行指令>][--same-owner][--suffix=<备份字尾字符串>][--totals][--use-compress-program=<执行指令>][--version][--volno-file=<编号文件>][文件或目录...]

 

#### 参数

 

-A或–catenate 新增文件到已存在的备份文件  
-b<区块数目>或–blocking-factor=<区块数目> 设置每笔记录的区块数目，每个区块大小为12Bytes  
-B或–read-full-records 读取数据时重设区块大小  
-c或–create 建立新的备份文件  
-C<目的目录>或–directory=<目的目录> 切换到指定的目录  
-d或–diff或–compare 对比备份文件内和文件系统上的文件的差异  
-f<备份文件>或–file=<备份文件> 指定备份文件  
-F<Script文件>或–info-script=<Script文件> 每次更换磁带时，就执行指定的Script文件  
-g或–listed-incremental 处理GNU格式的大量备份  
-G或–incremental 处理旧的GNU格式的大量备份  
-h或–dereference 不建立符号连接，直接复制该连接所指向的原始文件  
-i或–ignore-zeros 忽略备份文件中的0 Byte区块，也就是EOF  
-k或–keep-old-files 解开备份文件时，不覆盖已有的文件  
-K<文件>或–starting-file=<文件> 从指定的文件开始还原  
-l或–one-file-system 复制的文件或目录存放的文件系统，必须与tar指令执行时所处的文件系统相同，否则不予复制  
-L<媒体容量>或-tape-length=<媒体容量> 设置存放每体的容量，单位以1024 Bytes计算  
-m或–modification-time 还原文件时，不变更文件的更改时间  
-M或–multi-volume 在建立，还原备份文件或列出其中的内容时，采用多卷册模式  
-N<日期格式>或–newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里  
-o或–old-archive或–portability 将资料写入备份文件时使用V7格式  
-O或–stdout 把从备份文件里还原的文件输出到标准输出设备  
-p或–same-permissions 用原来的文件权限还原文件  
-P或–absolute-names 文件名使用绝对名称，不移除文件名称前的"/“号  
-r或–append 新增文件到已存在的备份文件的结尾部分  
-R或–block-number 列出每个信息在备份文件中的区块编号  
-s或–same-order 还原文件的顺序和备份文件内的存放顺序相同  
-S或–sparse 倘若一个文件内含大量的连续0字节，则将此文件存成稀疏文件。  
-t或–list 列出备份文件的内容  
-T<范本文件>或–files-from=<范本文件> 指定范本文件，其内含有一个或多个范本样式，让tar解开或建立符合设置条件的文件  
-u或–update 仅置换较备份文件内的文件更新的文件  
-U或–unlink-first 解开压缩文件还原文件之前，先解除文件的连接  
-v或–verbose 显示指令执行过程  
-V<卷册名称>或–label=<卷册名称> 建立使用指定的卷册名称的备份文件  
-w或–interactive 遭遇问题时先询问用户  
-W或–verify 写入备份文件后，确认文件正确无误  
-x或–extract或–get 从备份文件中还原文件  
-X<范本文件>或–exclude-from=<范本文件> 指定范本文件，其内含有一个或多个范本样式，让ar排除符合设置条件的文件  
-z或–gzip或–ungzip 通过gzip指令处理备份文件  
-Z或–compress或–uncompress 通过compress指令处理备份文件  
-<设备编号><存储密度> 设置备份用的外围设备编号及存放数据的密度  
–after-date=<日期时间> 此参数的效果和指定”-N"参数相同  
–atime-preserve 不变更文件的存取时间  
–backup=<备份方式>或–backup 移除文件前先进行备份  
–checkpoint 读取备份文件时列出目录名称  
–concatenate 此参数的效果和指定"-A"参数相同  
–confirmation 此参数的效果和指定"-w"参数相同  
–delete 从备份文件中删除指定的文件。  
–exclude=<范本样式> 排除符合范本样式的文件  
–group=<群组名称> 把加入设备文件中的文件的所属群组设成指定的群组  
–help 在线帮助  
–ignore-failed-read 忽略数据读取错误，不中断程序的执行  
–new-volume-script=<Script文件> 此参数的效果和指定"-F"参数相同  
–newer-mtime 只保存更改过的文件  
–no-recursion 不做递归处理，也就是指定目录下的所有文件及子目录不予处理  
–null 从null设备读取文件名称  
–numeric-owner 以用户识别码及群组识别码取代用户名称和群组名称  
–owner=<用户名称> 把加入备份文件中的文件的拥有者设成指定的用户  
–posix 将数据写入备份文件时使用POSIX格式  
–preserve 此参数的效果和指定"-ps"参数相同  
–preserve-order 此参数的效果和指定"-A"参数相同  
–preserve-permissions 此参数的效果和指定"-p"参数相同  
–record-size=<区块数目> 此参数的效果和指定"-b"参数相同  
–recursive-unlink 解开压缩文件还原目录之前，先解除整个目录下所有文件的连接  
–remove-files 文件加入备份文件后，就将其删除  
–rsh-command=<执行指令> 设置要在远端主机上执行的指令，以取代rsh指令  
–same-owner 尝试以相同的文件拥有者还原文件  
–suffix=<备份字尾字符串> 移除文件前先行备份  
–totals 备份文件建立后，列出文件大小  
–use-compress-program=<执行指令> 通过指定的指令处理备份文件  
–version 显示版本信息  
–volno-file=<编号文件> 使用指定文件内的编号取代预设的卷册编号

 

#### 示例

 

压缩当前目录下所有的文件，非打包

 

$ tar -czvf test.tar.gz *

 

列出压缩文件内容

 

$ tar -tzvf test.tar.gz

 

解压文件

 

$ tar -zxvf test.tar.gz

 

![Linux运维必会的命令详解（二）](https://www.mfisp.com/wp-content/uploads/2021/12/13cb04672b711f0_1_post.png)

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
