Linux 命令大全(上)
6. 网络通讯 常用命令
6.1 ssh 命令 – 安全的远程连接服务器
6.1.1 含义
ssh
命令的功能是用于安全地远程连接服务器主机系统,作为 openssh 套件中的客户端连接工具,ssh
命令可以让我们轻松地基于 ssh
加密协议进行远程主机访问 ,从而实现对远程服务器的管理工作。
6.1.2 语法格式
6.1.3 常用参数
参数
含义
-1
使用 ssh 协议版本 1
-2
使用 ssh 协议版本 2
-4
基于 IPv4 网络协议
-6
基于 IPv6 网络协议
-a
关闭认证代理连接转发功能
-A
开启认证代理连接转发功能
-b
设置本机对外提供服务的 IP 地址
-c
设置会话的密码算法
-C
压缩所有数据
-f
后台执行 ssh 指令
-F
设置配置文件
-g
允许远程主机连接本机的转发端口
-i
设置密钥文件
-l
设置登录用户名
-N
不执行远程指令
-o
设置配置参数选项
-p
设置远程服务器上的端口号
-q
静默执行模式
-s
请求远程主机上的子系统调用
-v
显示执行过程详细信息
-V
显示版本信息
-x
关闭 X11 转发功能
-X
开启 X11 转发功能
-y
信任 X11 转发功能
6.1.4 参考示例
ssh 192.168 .10.10
ssh -l linuxprobe 192.168 .10.10
ssh 192.168 .10.10 "free -m"
强制使用 v1 版本的 ssh 加密协议连接远程服务器主机:
ssh -1 192.168 .10.10
6.2 netstat 命令 – 显示网络状态
6.2.1 含义
netstat
命令来自英文词组 network statistics
的缩写,其功能是用于显示各种网络相关信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等等。
netstat
命令不仅应用于 Linux 系统,而且在 Windows XP、Windows 7、Windows 10 及 Windows 11 中均已默认支持,并且可用参数也相同,有经验的运维人员可以直接上手。
6.2.2 语法格式
6.2.3 常用参数
参数
含义
-a
显示所有连接中的接口信息
-A
设置网络连接类型
-c
持续显示网络状态
-C
显示路由配置信息
-F
显示路由缓存信息
-g
显示多重广播功能群组成员名单
-h
显示帮助信息
-i
显示网络界面信息表单
-l
仅显示正在监听的服务状态
-n
直接使用IP地址,而不是域名
-N
显示网络硬件外围设备的符号链接名称
-o
显示计时器数据信息
-p
显示正在使用接口的程序识别码和名称
-r
显示路由表信息
-s
显示网络工作信息统计表信息
-t
显示TCP传输协议的连线状态
-u
显示UDP传输协议的连线状态
-V
显示版本信息
6.2.4 参考示例
netstat -a
netstat -nu
显示系统网络状态中的 UDP 连接端口号使用信息:
netstat -apu
netstat -i
netstat -r
netstat -ap | grep ssh
6.3 dhclient 命令 – 动态获取或释放 IP 地址
6.3.1 含义
dhclient
命令来自英文词组 DHCP client
的缩写,其功能是用于动态获取或释放 IP 地址。使用 dhclient
命令前需要将网卡模式设置成 DHCP 自动获取,否则静态模式的网卡是不会主动向服务器获取如IP地址等网卡信息的。
6.3.2 语法格式
6.3.3 常用参数
参数
含义
-4
基于 IPv4 网络协议
-6
基于 IPv6 网络协议
-d
以前台方式运行
-F
设置向 DHCP 服务器发送的 FQDN
-H
设置向 DHCP 服务器发送的主机名
-n
不配置任何接口
-p
设置 DHCP 客户端监听的端口号
-q
静默执行模式
-r
释放 IP 地址
-s
在获取 IP 地址前指定 DHCP 服务器
-v
显示执行过程详细信息
-V
设置要发送给 DHCP 服务器的厂商类标识符
-w
即使没有找到广播接口,也继续运行
-x
停止 DHCP 客户端,而不释放当前租约
--timeout
设置最大响应超时时间
--version
显示版本信息
6.3.4 参考示例
dhclient ens33
dhclient -r
dhclient -s 192.168 .10.10
dhclient -x
6.4 ifconfig 命令 – 显示或设置网络设备参数信息
6.4.1 含义
ifconfig
命令来自英文词组 network interfaces configuring
的缩写,其功能是用于显示或设置网络设备参数信息 。在 Windows 系统中与之类似的命令叫做 ipconfig
,同样的功能可以使用 ifconfig
去完成。
通常不建议使用 ifconfig
命令配置网络设备的参数信息,因为一旦服务器重启,配置过的参数会自动失效,还是编写到配置文件中更稳妥。
6.4.2 语法格式
6.4.3 常用参数
参数
含义
-a
显示所有网卡状态
-s
显示简短状态列表
-v
显示执行过程详细信息
6.4.4 常用动作
add
设置网络设备的 IP 地址
del
删除网络设备的 IP 地址
down
关闭指定的网络设备
up
启动指定的网络设备
6.4.5 参考示例
ifconfig
ifconfig ens33 down
ifconfig ens33 up
ifconfig ens33 192.168 .10.20 netmask 255.255 .255.0
ifconfig ens33 hw ether 00:aa:bb:cc:dd:ee
对指定的网卡设备依次进行 ARP 协议关闭和开启操作:
ifconfig ens33 -arp
ifconfig ens33 arp
6.4.6 补充
ifconfig
可以查看/配置计算机当前的网卡配置信息。
$ ifconfig
$ ifconfig | grep inet
提示:一台计算机中有可能会有一个物理网卡和多个虚拟网卡,在 Linux 中物理网卡的名字通常以 ensXX
表示。
127.0.0.1
被称为本地回环/环回地址,一般用来测试本机网卡是否正常。
6.5 ping 命令 – 测试主机间网络连通性
6.5.1 含义
ping
命令的功能是用于测试主机间网络连通性,发送出基于 ICMP 传输协议的数据包,要求对方主机予以回复,若对方主机的网络功能没有问题且防火墙放行流量,则就会回复该信息,我们也就可得知对方主机系统在线并运行正常了。
不过值得我们注意的是 Linux 与 Windows 相比有一定差异,Windows 系统下的 ping
命令会发送出去 4 个请求后自动结束该命令;而 Linux 系统则不会自动终止,需要用户手动按下组合键“Ctrl+c”才能结束,或是发起命令时加入 -c
参数限定发送个数。
6.5.2 语法格式
6.5.3 常用参数
参数
含义
-4
基于 IPv4 网络协议
-6
基于 IPv6 网络协议
-a
发送数据时发出鸣响声
-b
允许 ping 一个广播地址
-c
设置发送报文的次数
-d
使用接口的 SO_DEBUG 功能
-f
使用洪泛模式大量向目标发送数据包
-h
显示帮助信息
-i
设置收发信息的间隔时间
-I
使用指定的网络接口送出数据包
-n
仅输出数值
-p
设置填满数据包的范本样式
-q
静默执行模式
-R
记录路由过程信息
-s
设置数据包的大小
-t
设置存活数值TTL的大小
-v
显示执行过程详细信息
-V
显示版本信息
6.5.4 参考示例
测试与指定网站服务器之间的网络连通性(需手动按下“Ctrl+c”组合键结束命令):
ping www.linuxcool.com
测试与指定网站服务器之间的网络连通性,发送请求包限定为 4 次:
ping -c 4 www.linuxcool.com
测试与指定主机之间的网络连通性,发送 3 次请求包,每次间隔 0.2 秒,最长等待时间为 3 秒:
ping -c 3 -i 0.2 -W 3 192.168 .10.10
6.6 sshd 命令 – openssh 服务器守护进程
6.6.1 含义
sshd
命令来自英文词组 SSH daemon
的缩写,其功能是用于 openssh 服务器守护进程 。openssh 套件能够为两台主机之间建立加密的、可信任的数据通信服务,是 rlogin 与 rsh 等明文数据通信的替代品,而 sshd
命令即为 openssh 套件中的核心程序。
6.6.2 语法格式
6.6.3 常用参数
参数
含义
-4
基于 IPv4 网络协议
-6
基于 IPv6 网络协议
-d
使用调试模式
-D
使用非后台守护进程的方式运行服务
-e
直接显示报错信息
-f
设置服务器的配置文件
-g
设置客户端登录的过期时间
-h
设置读取主机密钥文件
-i
使用 inetd 方式运行
-o
设置服务配置选项
-p
设置使用的端口号
-q
静默执行模式
-t
使用测试模式
6.6.4 参考示例
/usr/sbin/sshd -d
/usr/sbin/sshd -t
/usr/sbin/sshd -6
7. 设备管理 常用命令
7.1 mount 命令 – 将文件系统挂载到目录
7.1.1 含义
mount
命令的功能是用于将文件系统挂载到目录,文件系统指的是被格式化过的硬盘或分区设备,进行挂载操作后,用户便可以在挂载目录中使用硬盘资源了。
默认情况下 Linux 系统并不会像 Windows 系统那样自动地挂载光盘和U盘设备,需要自行完成。
7.1.2 语法格式
7.1.3 常用参数
参数
含义
-a
加载“/etc/fstab”文件中记录的所有文件系统
-F
为每个设备创建出一个新的挂载版本
-h
显示帮助信息
-l
显示已加载的文件系统列表
-L
挂载具有指定标签的分区
-n
加载没有写入“/etc/mtab”文件中的文件系统
-r
将文件系统设置为只读模式
-t
挂载指定文件类型的设备分区
-U
挂载指定 UUID 的设备分区
-V
显示版本信息
-w
以读写方式挂载文件系统
7.1.4 参考示例
mount
挂载 /etc/fstab 文件中所有已定义的设备文件:
mount -a
mount /dev/cdrom /Dir
mount -t xfs /dev/sdb /Dir
7.2 lspci 命令 – 显示当前设备 PCI 总线设备信息
7.2.1 含义
lspci
命令来自英文词组 list PCI
的缩写,其功能是用于显示当前设备 PCI 总线设备信息 。
7.2.2 语法格式
7.2.3 常用参数
参数
含义
-b
使用以总线为中心的视图
-d
仅显示指定厂商和设备信息
-i
设置 PCI 编号列表文件
-m
以机器可读方式显示 PCI 设备信息
-M
使用总线映射模式
-n
以数字方式显示 PCI 设备信息
-nn
将 PCI 厂商和设备代码显示为数字和名称形式
-q
使用 DNS 查询中央 PCI ID 数据库
-p
设置包含 PCI 总线信息的目录
-s
仅显示指定总线插槽的设备和功能块信息
-t
使用树状结构显示 PCI 设备的层次关系
-v
显示执行过程详细信息
7.2.4 参考示例
lspci
以树状结构显示当前主机的所有 PCI 总线设备信息:
lspci -t
7.3 sensors 命令 – 检测服务器硬件信息
7.3.1 含义
sensors
命令用于检测服务器硬件信息,例如 CPU 电压与温度、主板、风扇转速等数据。
7.3.2 语法格式
7.3.3 常用参数
参数
含义
-A
不显示每个芯片的适配器信息
-c
指定配置文件
-F
显示华氏度温度
-H
显示帮助信息
-u
输出原始信息
-v
显示版本信息
7.3.4 参考示例
sensors
8. 备份压缩 常用命令
8.1 zip 命令 – 压缩文件
8.1.1 含义
zip
命令的功能是用于压缩文件,解压命令为 unzip
。通过 zip
命令可以将文件打包成 .zip
格式的压缩包,里面会包含文件的名称、路径、创建时间、上次修改时间等等信息,与 tar
命令相似。
8.1.2 语法格式
8.1.3 常用参数
参数
含义
-A
自动解压缩文件
-b
设置暂存文件的目录
-c
添加注释信息到压缩文件
-d
更新压缩包内文件
-F
尝试修复损坏的压缩文件
-h
显示帮助信息
-i
仅压缩符合条件的文件
-k
使用MS-DOS兼容格式
-l
将“LF”替换成“LF+CR”字符
-L
显示版本信息
-m
压缩后删除源文件
-n
不压缩具有特定字符串的文件
-q
静默执行模式
-r
递归处理所有子文件
-S
包含系统和隐藏文件
-t
设置压缩时间为指定日期
-T
检查压缩文件是否正确无误
-v
显示执行过程详细信息
-V
保留VMS操作系统的文件属性
-w
在文件名称中加入版本编号
-X
不保留过多的文件属性信息
-y
直接保存符号链接,而不是对应文件
8.1.4 参考示例
将指定目录及其内全部文件都打包成 zip 格式压缩包文件:
zip -r File.zip /etc
将当前工作目录内所有以 .cfg
为后缀的文件打包:
zip -r File.zip *.cfg
zip -dv File.zip File.cfg
8.2 unzip 命令 – 解压缩 zip 格式文件
8.2.1 含义
unzip
命令用于解压缩 zip 格式文件,虽然 Linux 系统中更多地使用 tar
命令进行对压缩包的管理操作,但有时也会收到 Windows 系统常用的 .zip
和 .rar
格式的压缩包文件,unzip
命令便派上了用场。直接使用 unzip
命令解压缩文件后,压缩包内原有的文件会被提取并输出保存到当前工作目录下。
8.2.2 语法格式
8.2.3 常用参数
参数
含义
-a
对文本进行必要的字符转换
-b
不要对文本进行任何字符转换
-c
适当转换字符后输出解压缩结果
-C
严格区分大小写
-d
解压缩文件到指定目录中
-f
强制覆盖已有文件
-j
不处理压缩文件中原有的目录路径
-l
显示压缩包内文件列表
-L
将压缩包内文件名改为小写
-n
解压缩时不覆盖已有文件
-p
使用密码加密
-q
静默执行模式
-t
检查压缩包完整性
-v
显示执行过程详细信息
-x
跳过压缩包内的指定文件
-z
显示压缩包内的备注文字
8.2.4 参考示例
unzip File.zip
unzip File.zip -d /home
unzip -t File.zip
8.3 gzip 命令 – 压缩和解压文件
8.3.1 含义
gzip
命令来自英文单词 gunzip
的缩写,其功能是用于压缩和解压文件。gzip
是一款使用广泛的压缩工具,文件经过压缩后一般会以 .gz
后缀结尾,与 tar
命令合用后即为 .tar.gz
后缀。
据统计,gzip
命令对文本文件的压缩比率通常能达到60%~70%,压缩后可以很好地提升存储空间的使用率,还能够在网络传输文件时减少等待时间。
8.3.2 语法格式
8.3.3 常用参数
参数
含义
-a
使用 ASCII 文本模式
-c
把压缩后的文件输出到标准输出设备
-d
解压指定压缩包文件
-f
强行压缩文件而不询问
-h
显示帮助信息
-k
保留原文件
-l
显示压缩包内的文件信息
-L
显示版权信息
-n
不保存原来的文件名及时间戳
-N
保存原来的文件名及时间戳
-t
测试压缩包是否正确无误
-q
静默执行模式
-r
递归处理所有子文件
-S
设置解压或压缩后文件的后缀名
-v
显示执行过程详细信息
-V
显示版本信息
8.3.4 参考示例
将指定的文件进行压缩,压缩包默认会以“原文件名.gz”保存到当前工作目录下,原文件会被自动删除:
gzip File.cfg
解压指定的压缩包文件并显示解压过程,解压后的文件会保存在当前工作目录下,压缩包会被自动删除:
gzip -dv File.cfg.gz
gzip -k File.cfg
gzip -l File.cfg.gz
9. 其它常用命令
9.1 hash 命令 – 管理命令运行时查询的哈希表
9.1.1 含义
hash
命令来自英文词组 Hash Algorithm
的缩写,中文译为哈希算法或杂凑算法,其功能是用于管理命令运行时查询的哈希表 。hash
命令可以显示与删除命令运行时系统查询的哈希表信息,如果不加任何参数,则会默认输出路径列表的信息,这个列表会包含先前 hash
命令调用找到的 Shell 环境中命令的路径名。
9.1.2 语法格式
9.1.3 常用参数
参数
含义
-f
设置要进行哈希运算的文件路径
-l
显示哈希表中的命令
-p
将完整路径的命令加入到哈希表中
-r
清除哈希表中的记录
-t
显示哈希表中命令的完整路径
--help
显示帮助信息
--verbose
显示执行过程详细信息
9.1.4 参考示例
hash -l
hash -r
hash -p /usr/sbin/adduser myadduser
hash -d
9.2 wait 命令 – 等待指令执行完毕
9.2.1 含义
wait
命令的功能是用于等待指令执行完毕,常被用于 Shell 脚本中,用于等待某个指令执行结束后返回终端,然后才会继续执行后面的指令。
例如有个服务进程 PID 为 12345,那么此时可以用 wait 12345
来持续等待此进程的结束,一旦进程结束则会将返回值输出到终端界面。
9.2.2 语法格式
9.2.3 常用参数
9.2.4 参考示例
wait 12345
9.3 wget 命令 – 下载网络文件
9.3.1 含义
wget
命令来自英文词组 web get
的缩写,其功能是用于从指定网址下载网络文件。wget
命令非常稳定,一般即便网络波动也不会导致下载失败,而是不断地尝试重连,直至整个文件下载完毕。
wget
命令支持如 HTTP、HTTPS、FTP 等常见协议,可以在命令行中直接下载网络文件。
9.3.2 语法格式
9.3.3 常用参数
参数
含义
-4
基于 IPv4 网络协议
-6
基于 IPv6 网络协议
-a
将日志追加写入至指定文件
-b
启动后转入后台执行
-c
支持断点续传
-d
使用调试模式
-e
执行指定的命令
-F
将输入文件当作 HTML 处理
-h
显示帮助信息
-i
下载指定文件中的链接
-l
设置最大递归目录深度
-nd
不要创建目录
-N
只获取比本地更新的文件
-o
将日志信息写入指定文件
-O
设置本地文件名
-P
设置文件前缀
-q
静默执行模式
-r
递归处理所有子文件
-S
显示服务器响应信息
-t
设置最大尝试次数
-T
设置最长等待时间
-v
显示执行过程详细信息
-V
显示版本信息
-w
设置等待间隔秒数
-x
强制创建目录
--ask-password
提示输入密码
--limit-rate
限制下载速度
--no-dns-cache
关闭DNS查询缓存
--no-proxy
禁止使用代理
--password
设置密码值
--random-wait
下载多个文件时,随机等待间隔秒数
--spider
仅检查文件是否存在
--user
设置用户名
9.3.4 参考示例
wget https://www.linuxprobe.com/docs/LinuxProbe.pdf
wget -O Book.pdf https://www.linuxprobe.com/docs/LinuxProbe.pdf
wget --limit-rate= 300k https://www.linuxprobe.com/docs/LinuxProbe.pdf
wget -c https://www.linuxprobe.com/docs/LinuxProbe.pdf
wget -b https://www.linuxprobe.com/docs/LinuxProbe.pdf