6.2、netstat命令 – 显示网络状态
netstat命令来自于英文词组”network statistics“的缩写,其功能是用于显示各种网络相关信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等等。
netstat命令不仅应用于Linux系统,而且在Windows XP、Windows 7、Windows 10及Windows 11中均已默认支持,并且可用参数也相同,有经验的运维人员可以直接上手。
语法格式:netstat [参数]
常用参数:
参考实例
显示系统网络状态中的所有连接信息:
[root@linuxcool ~]# netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:https 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ms-wbt-server 0.0.0.0:* LISTEN
显示系统网络状态中的UDP连接信息:
[root@linuxcool ~]# netstat -nu Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 172.19.226.238:68 172.19.239.253:67 ESTABLISHED
显示系统网络状态中的UDP连接端口号使用信息:
[root@linuxcool ~]# netstat -apu Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 linuxcool:bootpc _gateway:bootps ESTABLISHED 1024/NetworkManager udp 0 0 localhost:323 0.0.0.0:* 875/chronyd udp6 0 0 localhost:323 [::]:* 875/chronyd
显示网卡当前状态信息:
[root@linuxcool~]# netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 31945 0 0 0 39499 0 0 0 BMRU lo 65536 0 0 0 0 0 0 0 0 LRU
显示网络路由表状态信息:
[root@linuxcool ~]# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default _gateway 0.0.0.0 UG 0 0 0 eth0 172.19.224.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
找到某个服务所对应的连接信息:
[root@linuxcool ~]# netstat -ap | grep ssh unix 2 [ ] STREAM CONNECTED 89121805 203890/sshd: root [ unix 3 [ ] STREAM CONNECTED 27396 1754/sshd unix 3 [ ] STREAM CONNECTED 89120965 203890/sshd: root [ unix 2 [ ] STREAM CONNECTED 89116510 203903/sshd: root@p unix 2 [ ] STREAM CONNECTED 89121803 203890/sshd: root [ unix 2 [ ] STREAM CONNECTED 29959 1754/sshd unix 2 [ ] DGRAM 89111175 203890/sshd: root [ unix 3 [ ] STREAM CONNECTED 89120964 203903/sshd: root@p
6.3、dhclient命令 – 动态获取或释放IP地址
dhclient命令来自于英文词组“DHCP client”的缩写,其功能是用于动态获取或释放IP地址。使用dhclient命令前需要将网卡模式设置成DHCP自动获取,否则静态模式的网卡是不会主动向服务器获取如IP地址等网卡信息的。
语法格式:dhclient 参数 [网卡]
常用参数:
参考实例
通过指定网卡发起DHCP请求,获取网卡参数:
[root@linuxcool ~]# dhclient ens160
释放系统中已获取的网卡参数:
[root@linuxcool ~]# dhclient -r Killed old client process
向指定的服务器请求获取网卡参数:
[root@linuxcool ~]# dhclient -s 192.168.10.10
手动停止执行dhclient服务进程:
[root@linuxcool ~]# dhclient -x Removed stale PID file
6.4、ping命令 – 测试主机间网络连通性
ping命令的功能是用于测试主机间网络连通性,发送出基于ICMP传输协议的数据包,要求对方主机予以回复,若对方主机的网络功能没有问题且防火墙放行流量,则就会回复该信息,我们也就可得知对方主机系统在线并运行正常了。
不过值得我们注意的是Linux与Windows相比有一定差异,Windows系统下的ping命令会发送出去4个请求后自动结束该命令;而Linux系统则不会自动终止,需要用户手动按下组合键“Ctrl+c”才能结束,或是发起命令时加入-c参数限定发送个数。
语法格式:ping [参数] 目标主机
常用参数:
参考实例
测试与指定网站服务器之间的网络连通性(需手动按下“Ctrl+c”组合键结束命令):
[root@linuxcool ~]# ping www.linuxcool.com PING www.linuxcool.com.w.kunlunar.com (222.85.26.229) 56(84) bytes of data. 64 bytes from www.linuxcool.com (222.85.26.229): icmp_seq=1 ttl=52 time=22.4 ms 64 bytes from www.linuxcool.com (222.85.26.229): icmp_seq=2 ttl=52 time=22.4 ms 64 bytes from www.linuxcool.com (222.85.26.229): icmp_seq=3 ttl=52 time=22.4 ms 64 bytes from www.linuxcool.com (222.85.26.229): icmp_seq=4 ttl=52 time=22.4 ms ^C --- www.linuxcool.com.w.kunlunar.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 22.379/22.389/22.400/0.094 ms
测试与指定网站服务器之间的网络连通性,发送请求包限定为4次:
[root@linuxcool ~]# ping -c 4 www.linuxcool.com PING www.linuxcool.com (222.85.26.234) 56(84) bytes of data. 64 bytes from www.linuxcool.com (222.85.26.234): icmp_seq=1 ttl=52 time=24.7 ms 64 bytes from www.linuxcool.com (222.85.26.234): icmp_seq=2 ttl=52 time=24.7 ms 64 bytes from www.linuxcool.com (222.85.26.234): icmp_seq=3 ttl=52 time=24.7 ms 64 bytes from www.linuxcool.com (222.85.26.234): icmp_seq=4 ttl=52 time=24.7 ms --- www.linuxcool.com.w.kunlunar.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 24.658/24.664/24.673/0.111 ms
测试与指定主机之间的网络连通性,发送3次请求包,每次间隔0.2秒,最长等待时间为3秒:
[root@linuxcool ~]# ping -c 3 -i 0.2 -W 3 192.168.10.10 64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.166 ms 64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.060 ms 64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.113 ms --- 192.168.10.10 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 410ms rtt min/avg/max/mdev = 0.060/0.113/0.166/0.043 ms
6.5、ifconfig命令 – 显示或设置网络设备参数信息
ifconfig命令来自于英文词组”network interfaces configuring“的缩写,其功能是用于显示或设置网络设备参数信息。在Windows系统中与之类似的命令叫做ipconfig,同样的功能可以使用ifconfig去完成。
通常不建议使用ifconfig命令配置网络设备的参数信息,因为一旦服务器重启,配置过的参数会自动失效,还是编写到配置文件中更稳妥。
语法格式:ifconfig [参数] [网卡设备]
常用参数:
参考实例
显示系统的网络设备信息:
[root@linuxcool ~]# ifconfig ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.30 netmask 255.255.255.0 broadcast 192.168.10.255 inet6 fe80::4d16:980c:e0fe:51c2 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:60:cd:ee txqueuelen 1000 (Ethernet) RX packets 407 bytes 34581 (33.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 59 bytes 6324 (6.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ………………省略部分输出信息………………
对指定的网卡设备依次进行关闭和启动操作:
[root@linuxcool ~]# ifconfig ens160 down [root@linuxcool ~]# ifconfig ens160 up
对指定的网卡设备执行修改IP地址操作:
[root@linuxcool ~]# ifconfig ens160 192.168.10.20 netmask 255.255.255.0
对指定的网卡设备执行修改MAC地址操作:
注意Linux系统中的MAC地址间隔符为冒号(:),而在Windows系统中间隔符为减号(-)。
[root@linuxcool ~]# ifconfig ens160 hw ether 00:aa:bb:cc:dd:ee
对指定的网卡设备依次进行ARP协议关闭和开启操作:
[root@linuxcool ~]# ifconfig ens160 -arp [root@linuxcool ~]# ifconfig ens160 arp
7.设备管理
7.1、mount命令 – 把文件系统挂载到目录
mount命令的功能是用于把文件系统挂载到目录,文件系统指的是被格式化过的硬盘或分区设备,进行挂载操作后,用户便可以在挂载目录中使用硬盘资源了。
默认情况下Linux系统并不会像Windows系统那样自动的挂载光盘和U盘设备,需要自行完成。
语法格式:mount [参数] [设备] [挂载点]
常用参数:
参考实例
查看当前系统中已有的文件系统信息(可结合管道符与grep命令进行过滤):
[root@linuxcool ~]# mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=99130k,nr_inodes=27835,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) ………………省略部分输出信息………………
挂载/etc/fstab文件中所有已定义的设备文件:
[root@linuxcool ~]# mount -a
将光盘设备挂载到指定目录:
[root@linuxcool ~]# mount /dev/cdrom /media/cdrom mount: /media/cdrom: WARNING: device write-protected, mounted read-only.
强制以xfs文件系统挂载硬盘设备到指定目录:
[root@linuxcool ~]# mount -t xfs /dev/sdb /disk
7.2、lspci命令 – 显示当前设备PCI总线设备信息
lspci命令来自于英文词组“list PCI”的缩写,其功能是用于显示当前设备PCI总线设备信息。
语法格式:lspci [参数]
常用参数:
参考实例
显示当前主机的所有PCI总线设备信息:
[root@linuxcool ~]# lspci 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01) 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01) 00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08) 00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08) 00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10) ………………省略部分输出信息………………
以树状结构显示当前主机的所有PCI总线设备信息:
[root@linuxcool ~]# lspci -t -[0000:00]-+-00.0 +-01.0-[01]-- +-07.0 +-07.1 +-07.3 +-07.7 +-0f.0 +-11.0-[02]----00.0 +-15.0-[03]----00.0 +-15.1-[04]-- ………………省略部分输出信息………………
7.3、MAKEDEV命令 – 建立设备
MAKEDEV是一个脚本程序, 用于在 /dev 目录下建立设备, 通过这些设备文件可以 访问位于内核的驱动程序。
MAKEDEV 脚本创建静态的设备节点,通常位于/dev目录下。
语法格式:MAKEDEV [参数]
常用参数:
参考实例
显示出执行的每一个动作:
[root@linuxcool ~]# ./MAKEDEV -v update
删除设备:
[root@linuxcool ~]# ./MAKEDEV -d device
7.4、sensors命令 – 检测服务器硬件信息
sensors命令用于检测服务器硬件信息,例如CPU电压与温度、主板、风扇转速等数据。
语法格式:sensors
参考实例
检查当前CPU处理器得电压和温度信息
[root@linuxcool ~]# sensors coretemp-isa-0000 Core 0: +48.0°C (high = +87.0°C, crit = +97.0°C) Core 1: +46.0°C (high = +87.0°C, crit = +97.0°C) Core 2: +47.0°C (high = +87.0°C, crit = +97.0°C) Core 3: +46.0°C (high = +87.0°C, crit = +97.0°C)
7.5、setleds命令 – 设定键盘上方三个 LED 的状态
setleds即是英文词组“set leds”的合并,翻译为中文就是设置LED灯。setleds命令用来设定键盘上方三个 LED 灯的状态。在 Linux 中,每一个虚拟主控台都有独立的设定。
这是一个十分神奇的命令,竟然可以通过命令来控制键盘的灯的状态。那么下面我一起来学习一下这个命令吧。
语法格式:setleds [参数]
常用参数:
参考实例
控制键盘灯num灯亮和灯灭:
[root@linuxcool ~]# setleds +num [root@linuxcool ~]# setleds -num
控制键盘的大小写键打开或关闭,键盘指示灯亮与灭:
[root@linuxcool ~]# setleds +caps [root@linuxcool ~]# setleds -caps
控制键盘的选项键打开或关闭,键盘指示灯亮与灭:
[root@linuxcool ~]# setleds +scroll
对三灯的亮与灭的情况进行组合,分别设置为数字灯亮,大小写灯灭,选项键scroll灯灭:
[root@linuxcool ~]# setleds +num -caps -scroll
8、备份压缩
8.1、zip命令 – 压缩文件
zip命令的功能是用于压缩文件,解压命令为unzip。通过zip命令可以将文件打包成.zip格式的压缩包,里面会附含文件的名称、路径、创建时间、上次修改时间等等信息,与tar命令相似。
语法格式:zip 参数 文件
常用参数:
参考实例
将指定目录及其内全部文件都打包成zip格式压缩包文件:
[root@linuxcool ~]# zip -r backup1.zip /etc adding: etc/fstab (deflated 45%) adding: etc/crypttab (stored 0%) adding: etc/resolv.conf (stored 0%) adding: etc/dnf/ (stored 0%) adding: etc/dnf/modules.d/ (stored 0%) adding: etc/dnf/modules.d/container-tools.module (deflated 17%) adding: etc/dnf/modules.d/llvm-toolset.module (deflated 14%) ………………省略部分输出信息………………
将当前工作目录内所有以.cfg为后缀的文件打包:
[root@linuxcool ~]# zip -r backup2.zip *.cfg adding: anaconda-ks.cfg (deflated 44%) adding: initial-setup-ks.cfg (deflated 44%)
更新压缩包文件中某个文件:
[root@linuxcool ~]# zip -dv backup2.zip anaconda-ks.cfg 1>1: updating: anaconda-ks.cfg (deflated 44%)
8.2、unzip命令 – 解压缩zip格式文件
unzip命令用于解压缩zip格式文件,虽然Linux系统中更多的使用tar命令进行对压缩包的管理工作,但有时也会收到同Windows系统常用的.zip和.rar格式的压缩包文件,unzip格式便派上了用场。直接使用unzip命令解压缩文件后,压缩包内原有的文件会被提取并输出保存到当前工作目录下。
语法格式:unzip [参数] 压缩包
常用参数:
参考实例
将压缩包文件解压到当前工作目录中:
[root@linuxcool ~]# unzip latest.zip Archive: latest.zip creating: wordpress/ inflating: wordpress/xmlrpc.php inflating: wordpress/wp-blog-header.php inflating: wordpress/readme.html inflating: wordpress/wp-signup.php inflating: wordpress/index.php ………………省略部分输出信息………………
将压缩包文件解压到指定的目录中:
[root@linuxcool ~]# unzip latest.zip -d /home Archive: latest.zip creating: /home/wordpress/ inflating: /home/wordpress/xmlrpc.php inflating: /home/wordpress/wp-blog-header.php inflating: /home/wordpress/readme.html inflating: /home/wordpress/wp-signup.php inflating: /home/wordpress/index.php ………………省略部分输出信息………………
测试压缩包文件是否完整,文件有无损坏:
[root@linuxcool ~]# unzip -t latest.zip Archive: latest.zip testing: wordpress/ OK testing: wordpress/xmlrpc.php OK testing: wordpress/wp-blog-header.php OK testing: wordpress/readme.html OK testing: wordpress/wp-signup.php OK testing: wordpress/index.php OK ………………省略部分输出信息………………
8.3、gzip命令 – 压缩和解压文件
gzip命令来自于英文单词gunzip的缩写,其功能是用于压缩和解压文件。gzip是一款使用广泛的压缩工具,文件经过压缩后一般会以.gz后缀结尾,与tar命令合用后即为.tar.gz后缀。
据统计,gzip命令对文本文件的压缩比率通常能达到60%~70%,压缩后可以很好的提升存储空间的使用率,还能够在网络传输文件时减少等待时间。
语法格式:gzip [参数] 文件
常用参数:
参考实例
将指定的文件进行压缩,压缩包默认会以“原文件名.gz”保存到当前工作目录下,原文件会被自动删除:
[root@linuxcool ~]# gzip anaconda-ks.cfg
解压指定的压缩包文件,并显示解压过程。解压后的文件会保存在当前工作目录下,压缩包会被自动删除:
[root@linuxcool ~]# gzip -dv anaconda-ks.cfg.gz anaconda-ks.cfg.gz: 44.3% -- replaced with anaconda-ks.cfg
将指定的文件进行压缩,但是不删除原文件:
[root@linuxcool ~]# gzip -k initial-setup-ks.cfg
显示指定文件的压缩信息:
[root@linuxcool ~]# gzip -l initial-setup-ks.cfg.gz compressed uncompressed ratio uncompressed_name 929 1585 43.8% initial-setup-ks.cfg
8.4、zipinfo命令 – 查看压缩文件信息
zipinfo命令来自于英文词组“zip information”的缩写,其功能是用于查看压缩文件信息。zipinfo命令可以查看zip格式压缩包内的文件列表及详细信息。
语法格式:zipinfo [参数] 压缩包
常用参数:
参考实例
显示压缩包内的文件名称及简要属性信息:
[root@linuxcool ~]# zipinfo file.zip Archive: file.zip Zip file size: 1937 bytes, number of entries: 2 -rw------- 3.0 unx 1256 tx defN 21-Dec-14 08:42 anaconda-ks.cfg -rw-r--r-- 3.0 unx 1585 tx defN 21-Dec-14 08:43 initial-setup-ks.cfg 2 files, 2841 bytes uncompressed, 1589 bytes compressed: 44.1%
显示压缩包内的文件名称及详细属性信息:
[root@linuxcool ~]# zipinfo -v file.zip Archive: file.zip There is no zipfile comment. End-of-central-directory record: ------------------------------- Zip archive file size: 1937 (0000000000000791h) Actual end-cent-dir record offset: 1915 (000000000000077Bh) Expected end-cent-dir record offset: 1915 (000000000000077Bh) (based on the length of the central directory and its expected offset) This zipfile constitutes the sole disk of a single-part archive; its central directory contains 2 entries. The central directory is 175 (00000000000000AFh) bytes long, and its (expected) offset in bytes from the beginning of the zipfile is 1740 (00000000000006CCh). ………………省略部分输出信息………………
仅显示压缩包内文件大小及数目信息:
[root@linuxcool ~]# zipinfo -h file.zip Archive: file.zip Zip file size: 1937 bytes, number of entries: 2
仅显示压缩包内文件最后修改时间及简要属性信息:
[root@linuxcool ~]# zipinfo -T file.zip Archive: file.zip Zip file size: 1937 bytes, number of entries: 2 -rw------- 3.0 unx 1256 tx defN 20211214.084220 anaconda-ks.cfg -rw-r--r-- 3.0 unx 1585 tx defN 20211214.084343 initial-setup-ks.cfg 2 files, 2841 bytes uncompressed, 1589 bytes compressed: 44.1%
8.5、gunzip命令 – 解压提取文件内容
gunzip命令来自于英文词组”Gnu unzip“的缩写,其功能是用于解压提取文件内容。gunzip通常被用来解压那些被基于gzip格式压缩过的文件,也就是那些.gz结尾的压缩包。
语法格式:gunzip [参数] 压缩包
常用参数:
参考实例
解压指定的压缩包文件
[root@linuxcool ~]# gunzip Filename.gz
解压指定的压缩包文件,并输出解压过程:
[root@linuxcool ~]# gunzip -v Filename.gz
测试指定的压缩包文件内容是否损坏,能够正常解压:
[root@linuxcool ~]# gunzip -t Filename.gz
9、其他命令
9.1、hash命令 – 管理命令运行时查询的哈希表
hash命令来自于英文词组“Hash Algorithm”的缩写,中文译为哈希算法或杂凑算法,其功能是用于管理命令运行时查询的哈希表。hash命令可以显示与删除命令运行时系统查询的哈希表信息,如果不加任何参数,则会默认输出路径列表的信息,这份列表会包含先前hash命令调用找到的Shell环境中命令的路径名。
语法格式: hash [参数] [目录]
常用参数:
参考实例
显示哈希表中的命令:
[root@linuxcool ~]# hash -l builtin hash -p /usr/sbin/ifconfig ifconfig builtin hash -p /usr/bin/cat cat builtin hash -p /usr/bin/pidof pidof
删除哈希表中的命令:
[root@linuxcool ~]# hash -r
向哈希表中添加命令:
[root@linuxcool ~]# hash -p /usr/sbin/adduser myadduser
在哈希表中清除记录:
[root@linuxcool ~]# hash -d hits command 0 /usr/sbin/adduser
9.2、wait命令 – 等待指令执行完毕
wait命令的功能是用于等待指令执行完毕,常被用于Shell脚本中,用于等待某个指令执行结束后返回终端,然后才会继续执行后面的指令。
例如有个服务进程PID为12345,那么此时可以用“wait 12345”来持续等待此进程的结束,一旦进程结束则会将返回值输出到终端界面。
语法格式:wait 进程号/作业号
常用参数:
NUM 或%NUM | 进程号 或 作业号 |
参考实例
等待执行的进程结束并输出返回值:
[root@linuxcool ~]# wait 12345
9.3、bc命令 – 数字计算器
bc命令来自于英文词组“Binary Calculator”的缩写,中文译为二进制计算器,其功能是用于数字计算。Bash解释器仅能够进行整数计算,而不支持浮点运算,因此有时要用到bc命令进行高精度的数字计算工作。
语法格式:bc [选项]
常用参数:
参考实例
计算得出指定的浮点数乘法结果:
[root@linuxcool ~]# bc 1.2345*3 3.7035
设定计算精度为小数点后3位,取浮点数除法结果:
[root@linuxcool ~]# bc scale=3 3/8 .375
分别计算整数的平方与平方根结果:
[root@linuxcool ~]# bc 10^10 10000000000 sqrt(100) 10.000
9.4、history命令 – 显示与管理历史命令记录
history命令来自于英文单词历史,其功能是用于显示与管理历史命令记录。Linux系统默认会记录用户所执行过的所有命令,可以使用history命令查阅它们,也可以对其记录进行修改和删除操作。
语法格式: history [参数]
常用参数:
参考实例
显示执行过的全部命令记录:
[root@linuxcool ~]# history 1 vim /etc/sysconfig/network-scripts/ifcfg-ens160 2 reboot 3 vim /etc/sysconfig/network-scripts/ifcfg-ens160 4 vim /etc/yum.repos.d/rhel.repo 5 mkdir /media/cdrom 6 vim /etc/fstab 7 reboot 8 ping 192.168.10.10 9 dnf install httpd 10 exit ………………省略部分输出信息………………
显示执行过的最近5条命令:
[root@linuxcool ~]# history 5 11 exit 12 ifconfig 13 vim /etc/hostname 14 reboot 15 history
将本次缓存区信息写入到历史文件中(~/.bash_history):
[root@linuxcool ~]# history -w
将历史文件中的信息读入到当前缓冲区中:
[root@linuxcool ~]# history -r
将本次缓冲区信息追加写入到历史文件中(~/.bash_history):
[root@linuxcool ~]# history -a
清空本次缓冲区及历史文件中的信息:
[root@linuxcool ~]# history -c
9.5、wget命令 – 下载网络文件
wget命令来自于英文词组”web get“的缩写,其功能是用于从指定网址下载网络文件。wget命令非常稳定,一般即便网络波动也不会导致下载失败,而是不断的尝试重连,直至整个文件下载完毕。
wget命令支持如HTTP、HTTPS、FTP等常见协议,可以在命令行中直接下载网络文件。
语法格式: wget [参数] 网址
常用参数:
参考实例
下载指定的网络文件:
[root@linuxprobe ~]# wget https://www.linuxprobe.com/docs/LinuxProbe.pdf --2022-05-11 18:36:42-- https://www.linuxprobe.com/docs/LinuxProbe.pdf Resolving www.linuxprobe.com (www.linuxprobe.com)... 58.218.215.124 Connecting to www.linuxprobe.com (www.linuxprobe.com)|58.218.215.124|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 17676281 (17M) [application/pdf] Saving to: ‘LinuxProbe.pdf’ LinuxProbe.pdf 100%[=================================>] 16.86M 30.0MB/s in 0.6s 2022-05-11 18:36:42 (30.0 MB/s) - ‘LinuxProbe.pdf’ saved [17676281/17676281]
下载指定的网络文件,并定义保存在本地的文件名称:
[root@linuxcool ~]# wget -O Book.pdf https://www.linuxprobe.com/docs/LinuxProbe.pdf
下载指定的网络文件,限速最高每秒300k:
[root@linuxcool ~]# wget --limit-rate=300k https://www.linuxprobe.com/docs/LinuxProbe.pdf
启用断点续传技术下载指定的网络文件:
[root@linuxcool ~]# wget -c https://www.linuxprobe.com/docs/LinuxProbe.pdf
下载指定的网络文件,将任务放至后台执行:
[root@linuxcool ~]# wget -b https://www.linuxprobe.com/docs/LinuxProbe.pdf Continuing in background, pid 237616. Output will be written to ‘wget-log’.
10、扩充内容
10.1、xz命令 – POSIX 平台开发工具
XZ Utils 是为 POSIX 平台开发具有高压缩率的工具。它使用 LZMA2 压缩算法,生成的压缩文件比 POSIX 平台传统使用的 gzip、bzip2 生成的压缩文件更小,而且解压缩速度也很快。
最初 XZ Utils 的是基于 LZMA-SDK 开发,但是 LZMA-SDK 包含了一些 WINDOWS 平台的特性,所以 XZ Utils 为以适应 POSIX 平台作了大幅的修改。XZ Utils 的出现也是为了取代 POSIX 系统中旧的 LZMA Utils。
语法格式: xz [参数]
常用参数:
参考实例
压缩一个文件 test.txt,压缩成功后生成 test.txt.xz, 原文件会被删除:
[root@linuxcool ~]$ xz test.txt [root@linuxcool ~]$ ls test.txt* test.txt.xz
解压 test.txt.xz 文件,并使用参数 -k 保持原文件不被删除:
[root@linuxcool ~]$ xz -d -k test.txt.xz [root@linuxcool ~]$ ls test.txt* test.txt.xz test.txt
参数 -H 比使用参数 --help 显示的内容更详细:
[root@linuxcool ~]$ xz -H | more
借助 xargs 命令并行压缩多文件:
[root@linuxcool ~]find /var/log -type f -iname "*.log" -print0 | xargs -P4 -n16 xz -T1
10.2、gpg命令 – 加密工具
gpg是加密和数字签名的免费工具,大多用于加密信息的传递。除了仅用密码加密外,gpg最大的不同是提供了“公钥/私钥”对。利用你的“公钥”别人加密信息不再需要告诉你密码,随时随地都能发送加密信息。而这种加密是单向的,只有你的“私钥”能解开加密。数字签名又是另一大使用方向。通过签名认证,别人能确保发布的消息来自你,而且没有经过修改。
语法格式:gpg [参数]
常用参数:
参考实例
对称加密myfile文件:
[root@linuxcool ~]# gpg -c myfile
解密对称加密的文件:
[root@linuxcool ~]# gpg -o mydecrypt -d myfile.gpg
生成密钥对:
[root@linuxcool ~]# gpg --gen-key
查看已有的密钥:
[root@linuxcool ~]# gpg --list-keys
10.3、redis-benchmark命令 – Redis基准性能测试
redis-benchmark命令可以为Redis做基准性能测试,它提供了很多选项帮助开 发和运维人员测试Redis的相关性能。
语法格式:redis-benchmark [参数]
常用参数:
参考实例
使用默认配置对127.0.0.1:6379运行基准测试:
[root@linuxcool ~]# redis-benchmark
对192.168.1.1使用20个并行客户端,总共10万个请求:
[root@linuxcool ~]# redis-benchmark -h 192.168.1.1 -p 6379 -n 100000 -c 20
仅使用SET测试,用大约100万个键填充127.0.0.1:6379:
[root@linuxcool ~]# redis-benchmark -t set -n 1000000 -r 100000000
基准127.0.0.1:6379,用于生成CSV输出的几个命令:
[root@linuxcool ~]# redis-benchmark -t ping,set,get -n 100000 --csv
对特定命令行进行基准测试:
[root@linuxcool ~]# redis-benchmark -r 10000 -n 10000 eval 'return redis.call("ping")' 0
用10000个随机元素填充列表:
[root@linuxcool ~]# redis-benchmark -r 10000 -n 10000 lpush mylist rand_int
10.4、redis-cli命令 – redis客户端管理工具
Redis是一个开放源码(BSD授权)的内存数据结构存储,用作数据库、缓存和消息中介。同时是一个高性能的key-value数据库。
redis-cli命令是redis-server的命令行客户端。
语法格式:redis-cli [参数]
常用参数:
参考实例
使用默认端口,连接redis服务器:
[root@linuxcool ~]# redis-cli -h 127.0.0.1
通过指定端口连接redis:
[root@linuxcool ~]# redis-cli -h 192.168.1.1 -p 6380
使用密码认证连接:
[root@linuxcool ~]# redis-cli -h 127.0.0.1 -p 6379 -a myPassword
10.5、whatis命令 – 查询命令执行功能
whatis命令是用于查询一个命令执行什么功能,并将查询结果打印到终端上。
whatis命令在用catman -w命令创建的数据库中查找command参数指定的命令、系统调用、库函数或特殊文件名。whatis命令显示手册部分的页眉行。然后可以发出man命令以获取附加的信息。whatis命令等同于使用man -f命令。
语法格式: whatis [参数]
常用参数:
其他命令 | 显示该命令的执行功能 |
参考实例
ls命令执行情况:
[root@linuxcool ~]# whatis ls ls (1) - list directory contents ls (1p) - list directory contents
cp命令执行情况:
[root@linuxcool ~]# whatis cp cp (1) - copy files and directories cp (1p) - copy files
chown命令执行情况:
[root@linuxcool ~]# whatis chown chown (1) - change file owner and group chown (1p) - change the file ownership chown (2) - change ownership of a file chown (3p) - change owner and group of a file
man命令执行情况:
[root@linuxcool ~]# whatis man man (1) - format and display the on-line manual pages man (1p) - display system documentation man (7) - macros to format man pages man (rpm) - A set of documentation tools: man, apropos and whatis. man-pages (rpm) - Man (manual) pages from the Linux Documentation Project. man.config [man] (5) - configuration data for man
10.6、ifplugstatus命令 – 检查网线是否已插到在网络接口
ifplugstatus命令可以查看所有网络接口的状态,或是指定网络接口的状态。
这个命令Ubuntu没有预装,通过下面的命令来安装
sudo apt-get install ifplugd。
语法格式:ifplugstatus
参考实例
显示接口状态:
[root@linuxcool ~]# ifplugstatus lo:link beat detected wlan0:link beat detected eth0:unplugged
10.7、chronyc命令 – 设置时间与时钟服务器同步
chronyc命令来自于英文词组“chrony command-line”的缩写,其功能是用于设置时间与时钟服务器的同步工作。chrony是一个用于保持系统时间与NTP时钟服务器同步的服务,常见的是chronyd是其守护进程的名称,而chronyc命令则是用户的配置工具。
语法格式:chronyc [参数]
常用参数:
sources | 时间同步源 |
sourcestats | 时间同步源状态 |
-v | 详细信息模式 |
参考实例
查看当前系统的时间同步源信息:
[root@linuxcool ~]# chronyc sources -v .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current best, '+' = combined, '-' = not combined, | / 'x' = may be in error, '~' = too variable, '?' = unusable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- 120.25.115.20 2 10 337 31m -78us[ -49us] +/- 17ms ^? 10.143.33.49 0 10 0 - +0ns[ +0ns] +/- 0ns ^* 100.100.3.1 2 10 377 671 -128us[ -124us] +/- 3286us ^+ 100.100.3.2 2 10 377 535 +1377us[+1377us] +/- 4689us ^+ 100.100.3.3 2 10 175 25m +151us[ +155us] +/- 4858us ^- 203.107.6.88 2 10 377 192 -2029us[-2029us] +/- 16ms ^? 10.143.33.50 0 10 0 - +0ns[ +0ns] +/- 0ns ^? 10.143.33.51 0 10 0 - +0ns[ +0ns] +/- 0ns ^? 10.143.0.44 0 10 0 - +0ns[ +0ns] +/- 0ns ^? 10.143.0.45 0 10 0 - +0ns[ +0ns] +/- 0ns ^? 10.143.0.46 0 10 0 - +0ns[ +0ns] +/- 0ns ^+ 100.100.5.1 2 10 377 388 +111us[ +111us] +/- 4041us ^+ 100.100.5.2 2 10 377 732 +1110us[+1114us] +/- 5489us ^+ 100.100.5.3 2 10 377 629 -638us[ -638us] +/- 4120us
查看当前系统的时间同步源状态信息:
[root@linuxcool ~]# chronyc sourcestats Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== 120.25.115.20 59 31 18h -0.011 0.019 -536us 875us 10.143.33.49 0 0 0 +0.000 2000.000 +0ns 4000ms 100.100.3.1 64 36 18h +0.000 0.012 +65us 493us 100.100.3.2 64 33 18h -0.004 0.011 -189us 498us 100.100.3.3 42 22 17h +0.006 0.015 +150us 471us 203.107.6.88 64 40 18h -0.005 0.034 -79us 1467us 10.143.33.50 0 0 0 +0.000 2000.000 +0ns 4000ms 10.143.33.51 0 0 0 +0.000 2000.000 +0ns 4000ms 10.143.0.44 0 0 0 +0.000 2000.000 +0ns 4000ms 10.143.0.45 0 0 0 +0.000 2000.000 +0ns 4000ms 10.143.0.46 0 0 0 +0.000 2000.000 +0ns 4000ms 100.100.5.1 42 24 11h +0.014 0.017 +344us 378us 100.100.5.2 64 37 18h -0.000 0.009 -221us 367us 100.100.5.3 64 28 18h -0.003 0.010 -131us 430us