Linux命令汇总

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Linux命令汇总



一、Linux命令

1.文件管理

1.1、ls命令 – 显示指定工作目录下的文件及属性信息

ls是最常被使用到的Linux命令之一,来自于英文单词list的缩写,也正如list单词的英文意思,其功能是列举出指定目录下的文件名称及其属性。

默认不加参数的情况下,ls命令会列出当前工作目录中的文件信息,经常与cd和pwd命令搭配使用,十分方便。而带上参数后,我们则可以做更多的事情,作为最基础、最频繁使用的命令,有必要仔细了解下其常用功能。

语法格式: ls [参数] [文件]

常用参数:

-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l 使用长格式列出文件及目录的详细信息
-r 将文件以相反次序显示(默认依英文字母次序)
-t 根据最后的修改时间排序
-A 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-S 根据文件大小排序
-R 递归列出所有子目录
-d 查看目录的信息,而不是里面子文件的信息
-i 输出文件的inode节点信息
-m 水平列出文件,以逗号间隔
-X 按文件扩展名排序
--color 输出信息中带有着色效果

参考实例

输出当前目录中的文件(默认不含隐藏文件):

[root@linuxcool ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos

输出当前目录中的文件(含隐藏文件):

[root@linuxcool ~]# ls -a
.                .bashrc  Documents             Music      Videos
..               .cache   Downloads             Pictures   .viminfo
anaconda-ks.cfg  .config  .esd_auth             .pki
.bash_history    .cshrc   .ICEauthority         Public
.bash_logout     .dbus    initial-setup-ks.cfg  .tcshrc
.bash_profile    Desktop  .local                Templates

输出文件的长格式,包含属性详情信息:

[root@linuxcool ~]# ls -l
total 8
-rw-------. 1 root root 1430 Dec 14 08:05 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Desktop
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Documents
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Downloads
-rw-r--r--. 1 root root 1585 Dec 14 08:34 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Music
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Pictures
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Public
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Templates
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Videos

输出指定目录中的文件列表:

[root@linuxcool ~]# ls /etc
adjtime                     hosts                     pulse
aliases                     hosts.allow               qemu-ga
alsa                        hosts.deny                qemu-kvm
alternatives                hp                        radvd.conf
anacrontab                  idmapd.conf               ras
asound.conf                 init.d                    rc0.d
at.deny                     inittab                   rc1.d
………………省略部分输出信息………………

输出文件名称及inode属性块号码:

[root@linuxcool ~]# ls -i
35290115 anaconda-ks.cfg  35290137 initial-setup-ks.cfg  35290164 Templates
 1137391 Desktop          17840039 Music                 51609597 Videos
 1137392 Documents        35290165 Pictures
17840038 Downloads        51609596 Public

搭配通配符一起使用,输出指定目录中所有以sd开头的文件名称:

[root@linuxcool ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2

依据文件大小进行排序,输出指定目录中文件属性详情信息:

[root@linuxcool ~]# ls -Sl /etc
total 1348
-rw-r--r--.  1 root root    692241 Sep 10  2018 services
-rw-r--r--.  1 root root     66482 Dec 14 08:34 ld.so.cache
-rw-r--r--.  1 root root     60352 May 11  2017 mime.types
-rw-r--r--.  1 root dnsmasq  26843 Aug 12  2018 dnsmasq.conf
-rw-r--r--.  1 root root     25696 Dec 12  2018 brltty.conf
-rw-r--r--.  1 root root      9450 Aug 12  2018 nanorc
-rw-r--r--.  1 root root      7265 Dec 14 08:03 kdump.conf
-rw-------.  1 tss  tss       7046 Aug 13  2018 tcsd.conf
………………省略部分输出信息………………

1.2、cp命令 – 复制文件或目录

cp命令来自于英文单词copy的缩写,用于将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作。-r参数用于递归操作,复制目录时若忘记加则会直接报错,而-f参数则用于当目标文件已存在时会直接覆盖不再询问,这两个参数尤为常用。

语法格式:cp [参数] 源文件 目标文件

常用参数:

-f 若目标文件已存在,则会直接覆盖原文件
-i 若目标文件已存在,则会询问是否覆盖
-p 保留源文件或目录的所有属性
-r 递归复制文件和目录
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-l 对源文件建立硬连接,而非复制文件
-s 对源文件建立符号连接,而非复制文件
-b 覆盖已存在的文件目标前将目标文件备份
-v 详细显示cp命令执行的操作过程
-a 等价于“pdr”选项

参考实例

在当前工作目录中,将某个文件复制一份,并定义新文件名称:

[root@linuxcool ~]# cp anaconda-ks.cfg kickstart.cfg

在当前工作目录中,将某个目录复制一份,并定义新目录名称:

[root@linuxcool ~]# cp -r Documents Doc

复制某个文件时,保留其原始权限及用户归属信息:

[root@linuxcool ~]# cp -a kickstart.cfg ks.cfg

将某个文件复制到/etc目录中,并覆盖已有文件,不进行询问:

[root@linuxcool ~]# cp -f ks.cfg /etc

将多个文件一同复制到/etc目录中,如已有目标文件名称则默认询问是否覆盖:

[root@linuxcool ~]# cp anaconda-ks.cfg ks.cfg /etc
cp: overwrite '/etc/ks.cfg'? y

1.3、mkdir命令 – 创建目录文件

mkdir命令来自于英文词组“make directories”的缩写,其功能是用来创建目录文件。使用简单,但需要注意若要创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件。而目录不存在,但具有嵌套的依赖关系,例如a/b/c/d/e/f,要想一次性创建则需要加入-p参数,进行递归操作。

语法格式 : mkdir [参数] 目录

常用参数:

-p 递归创建多级目录
-m 建立目录的同时设置目录的权限
-z 设置安全上下文
-v 显示目录的创建过程

参考实例

在当前工作目录中,建立一个目录文件:

[root@linuxcool ~]# mkdir dir1

在当前工作目录中,创建一个目录文件并设置700权限,不让除所有主以外任何人读、写、执行它:

[root@linuxcool ~]# mkdir -m 700 dir2

在当前工作目录中,一次性创建多个目录文件:

[root@linuxcool ~]# mkdir dir3 dir4 dir5

在系统根目录中,一次性创建多个有嵌套关系的目录文件:

[root@linuxcool ~]# mkdir -p /dir1/dir2/dir3/dir4/dir5

1.4、mv命令 – 移动或改名文件

mv命令来自于英文单词move的缩写,其功能与英文含义相同,用于对文件进行剪切和重命名。

这是一个高频使用的文件管理命令,我们需要留意它与复制命令的区别。cp命令是用于文件的复制操作,文件个数是增加的,而mv则为剪切操作,也就是对文件进行移动(搬家)操作,文件位置发生变化,但总个数并无增加。

在同一个目录内对文件进行剪切的操作,实际应理解成重命名操作,例如下面的实例一所示。

语法格式:mv [参数] 源文件 目标文件

常用参数:

-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
-b 当文件存在时,覆盖前为其创建一个备份
-u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

参考实例

在当前工作目录中,对某个文件进行剪切后粘贴(重命名)操作:

[root@linuxcool ~]# mv anaconda-ks.cfg ks.cfg

将某个文件移动到/etc目录中,保留文件原始名称:

[root@linuxcool ~]# mv ks.cfg /etc

将某个目录移动到/etc目录中,并定义新的目录名称:

[root@linuxcool ~]# mv Documents /etc/docs

将/home目录中所有的文件都移动到当前工作目录中,遇到已存在文件则直接覆盖:

[root@linuxcool ~]# mv -f /home/* .

1.5、pwd命令 – 显示当前工作目录的路径

pwd命令来自于英文词组”print working directory“的缩写,其功能是用于显示当前工作目录的路径,即显示所在位置的绝对路径。

在实际工作中,我们经常会在不同目录之间进行切换,为了防止”迷路“,可以使用pwd命令快速查看当前所处的工作目录路径,方便开展后续工作。

语法格式:pwd [参数]

常用参数:

-L 显示逻辑路径

参考实例

查看当前工作目录路径:

[root@linuxcool ~]# pwd
/root

2.文件编辑

2.1、cat命令 – 在终端设备上显示文件内容

cat 命令来自于英文单词 concatenate 的缩写,其功能是用于查看文件内容。在Linux系统中有很多用于查看文件内容的命令,例如more、tail、head……等等,每个命令都有各自的特点。cat命令适合查看内容较少的、纯文本的文件。

对于内容较多的文件,使用cat命令查看后会在屏幕上快速滚屏,用户往往看不清所显示的具体内容,只好按Ctrl+c键中断命令的执行,所以对于大文件,干脆用more命令吧~

语法格式:cat [参数] 文件

常用参数:

-n 显示行数(空行也编号)
-s 显示行数(多个空行算一个编号)
-b 显示行数(空行不编号)
-E 每行结束处显示$符号
-T 将TAB字符显示为 ^I符号
-v 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e 等价于”-vE”组合
-t 等价于”-vT”组合
-A 等价于 -vET组合
--help 显示帮助信息
--version 显示版本信息

参考实例

查看某个文件的内容:

[root@linuxcool ~]# cat anaconda-ks.cfg
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
………………省略部分输出信息………………

查看某个文件的内容,并显示行号:

[root@linuxcool ~]# cat -n anaconda-ks.cfg
     1  #version=RHEL8
     2  ignoredisk --only-use=sda
     3  autopart --type=lvm
     4  # Partition clearing information
     5  clearpart --none --initlabel
     6  # Use graphical install
………………省略部分输出信息………………

搭配空设备文件和输出重定向操作符,将某个文件内容清空:

[root@linuxcool ~]# cat /dev/null > anaconda-ks.cfg 
[root@linuxcool ~]# cat anaconda-ks.cfg 
[root@linuxcool ~]#

持续写入文件内容,直到碰到EOF符后才会结束并保存:

[root@linuxcool ~]# cat > anaconda-ks.cfg << EOF
> Hello,World
> Linux!~
> EOF
[root@linuxcool ~]# cat anaconda-ks.cfg 
Hello,World
Linux!~

搭配输出重定向操作符,将光盘设备制作成镜像文件:

[root@linuxcool ~]# cat /dev/cdrom > rhel.iso
[root@linuxcool ~]# ls rhel.iso  -lh
-rw-r--r--. 1 root root 6.7G May  2 00:43 rhel.iso
[root@linuxcool ~]# file rhel.iso 
rhel.iso: DOS/MBR boot sector; partition 2 : ID=0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsector 23128, 19888 sectors

2.2、echo命令 – 输出字符串或提取后的变量值

echo是用于在终端设备上输出指定字符串或变量提取后值的命令,能够给用户一些简单的提醒信息,也可以将输出的指定字符串内容同管道符一起传递给后续命令作为标准输入信息再来进行二次处理,又或者同输出重定向符一起操作,将信息直接写入到文件中。

如需提取变量值,需在变量名称前加入$符号做提取,变量名称一般均为大写形式。

语法格式:echo [参数] 字符串/变量

常用参数:

-n 不输出结尾的换行符
-e “\a” 发出警告音
-e “\b” 删除前面的一个字符
-e “\c” 结尾不加换行符
-e “\f” 换行,光标扔停留在原来的坐标位置
-e “\n” 换行,光标移至行首
-e “\r” 光标移至行首,但不换行
-E 禁止反斜杠转移,与-e参数功能相反
—version 查看版本信息
--help 查看帮助信息

参考实例

输出指定字符串到终端设备界面(默认为电脑屏幕):

[root@linuxcool ~]# echo LinuxCool
LinuxCool

输出某个变量值内容:

[root@linuxcool ~]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/root/bin

搭配转义符一起使用,输出纯字符串内容:

[root@linuxcool ~]# echo \$PATH
$PATH

搭配输出重定向符一起使用,将字符串内容直接写入文件中:

[root@linuxcool ~]# echo "Hello World" > Document

搭配反引号执行命令,并将执行结果输出:

[root@linuxcool ~]# echo `uptime`
16:16:12 up 52 min, 1 user, load average: 0.00, 0.00, 0.00

输出带有换行符的内容:

[root@linuxcool ~]# echo -e "First\nSecond\nThird"
First
Second
Third

指定删除字符串中某些字符,随后将内容输出:

[root@linuxcool ~]# echo -e "123\b456" 
12456

2.3、rm命令 – 删除文件或目录

rm 命令来自于英文单词 remove 的缩写,其功能是用于删除文件或目录,一次可以删除多个文件,或递归删除目录及其内的所有子文件。

rm也是一个很危险的命令,使用的时候要特别当心,尤其对于新手更要格外注意,如执行rm -rf /*命令则会清空系统中所有的文件,甚至无法恢复回来。所以我们在执行之前一定要再次确认下在哪个目录中,到底要删除什么文件,考虑好后再敲击回车,时刻保持清醒的头脑。

语法格式:rm [参数] 文件

常用参数:

-f 强制删除(不二次询问)
-i 删除前会询问用户是否操作
-r/R 递归删除
-v 显示指令的详细执行过程

参考实例

删除某个文件,默认会进行二次确认,敲击y进行确认。

[root@linuxcool ~]# rm anaconda-ks.cfg 
rm: remove regular file 'anaconda-ks.cfg'? y

删除某个文件,强制操作不需要二次确认:

[root@linuxcool ~]# rm -f initial-setup-ks.cfg

删除某个目录及其内的子文件或子目录,一并都强制删除:

[root@linuxcool ~]# rm -rf Documents

强制删除当前工作目录内的所有以.txt为后缀的文件

[root@linuxcool ~]# rm -f *.txt

【离职小妙招,谨慎!!!】强制清空服务器系统内的所有文件:

[root@linuxcool ~]# rm -rf /*

2.4、tail命令 – 查看文件尾部内容

tail命令的功能是用于查看文件尾部内容,例如默认会在终端界面上显示出指定文件的末尾十行,如果指定了多个文件,则会在显示的每个文件内容前面加上文件名来加以区分。

高阶玩法的-f参数作用是持续显示文件的尾部最新内容,类似于机场候机厅的大屏幕,总会把最新的消息展示给用户,对阅读日志文件尤为适合,而不需要手动刷新。

语法格式:tail [参数] 文件

常用参数:


-c
输出文件尾部的N(N为整数)个字节内容

-f
持续显示文件最新追加的内容

-F <N>
与选项“-follow=name”和“--retry”连用时功能相同

-n <N>
输出文件的尾部N(N位数字)行内容
--retry 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。

--pid=<进程号>
与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令

--help
显示指令的帮助信息

--version
显示指令的版本信息

参考实例

默认显示某个文件尾部的后10行内容:

[root@linuxcool ~]# tail initial-setup-ks.cfg 
%addon com_redhat_subscription_manager 
%end
%addon ADDON_placeholder --disable --reserve-mb=auto
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

指定显示某个文件尾部的后5行内容:

[root@linuxcool ~]# tail -n 5 initial-setup-ks.cfg 
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

指定显示某个文件尾部的后15个字节:

[root@linuxcool ~]# tail -c 30 initial-setup-ks.cfg 
t --nochanges --notempty
%end

持续刷新显示某个文件尾部的后10行内容:

[root@linuxcool ~]# tail -f /var/log/messages
………………省略输出信息………………

2.5、grep命令 – 强大的文本搜索工具

grep来自于英文词组“global search regular expression and print out the line”的缩写,意思是用于全面搜索的正则表达式,并将结果输出。人们通常会将grep命令与正则表达式搭配使用,参数作为搜索过程中的补充或对输出结果的筛选,命令模式十分灵活。

与之容易混淆的是egrep命令和fgrep命令。如果把grep命令当作是标准搜索命令,那么egrep则是扩展搜索命令,等价于“grep -E”命令,支持扩展的正则表达式。而fgrep则是快速搜索命令,等价于“grep -F”命令,不支持正则表达式,直接按照字符串内容进行匹配。

语法格式: grep [参数] 文件

常用参数:

-i 忽略大小写
-c 只输出匹配行的数量
-l 只列出符合匹配的文件名,不列出具体的匹配行
-n 列出所有的匹配行,显示行号
-h 查询多文件时不显示文件名
-s 不显示不存在、没有匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-w 匹配整词
-x 匹配整行
-r 递归搜索
-q 禁止输出任何结果,已退出状态表示搜索是否成功
-b 打印匹配行距文件头部的偏移量,以字节为单位
-o 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位
-F 匹配固定字符串的内容
-E 支持扩展的正则表达式

参考实例

搜索某个文件中,包含某个关键词的内容:

[root@linuxcool ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

搜索某个文件中,以某个关键词开头的内容:

[root@linuxcool ~]# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash

搜索多个文件中,包含某个关键词的内容:

[root@linuxcool ~]# grep linuxprobe /etc/passwd /etc/shadow
/etc/passwd:linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash
/etc/shadow:linuxprobe:$6$9Av/41hCM17T2PrT$hoggWJ3J/j6IqEOSp62elhdOYPLhQ1qDho7hANcm5fQkPCQdib8KCWGdvxbRvDmqyOarKpWGxd8NAmp3j2Ln00::0:99999:7:::

搜索多个文件中,包含某个关键词的内容,不显示文件名称:

[root@linuxcool ~]# grep -h linuxprobe /etc/passwd /etc/shadow
linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash
linuxprobe:$6$9Av/41hCM17T2PrT$hoggWJ3J/j6IqEOSp62elhdOYPLhQ1qDho7hANcm5fQkPCQdib8KCWGdvxbRvDmqyOarKpWGxd8NAmp3j2Ln00::0:99999:7:::

输出在某个文件中,包含某个关键词行的数量:

[root@linuxcool ~]# grep -c root /etc/passwd /etc/shadow
/etc/passwd:2
/etc/shadow:1

搜索某个文件中,包含某个关键词位置的行号及内容:

[root@linuxcool ~]# grep -n network anaconda-ks.cfg 
17:network  --bootproto=static --device=ens160 --ip=192.168.10.10 --netmask=255.255.255.0 --onboot=off --ipv6=auto --activate
18:network  --hostname=linuxcool.com

搜索某个文件中,不包含某个关键词的内容:

[root@linuxcool ~]# grep -v nologin /etc/passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash

搜索当前工作目录中,包含某个关键词内容的文件,未找到则提示:

[root@linuxcool ~]# grep -l root *
anaconda-ks.cfg
grep: Desktop: Is a directory
grep: Documents: Is a directory
grep: Downloads: Is a directory
initial-setup-ks.cfg
grep: Music: Is a directory
grep: Pictures: Is a directory
grep: Public: Is a directory
grep: Templates: Is a directory
grep: Videos: Is a directory

搜索当前工作目录中,包含某个关键词内容的文件,未找到不提示:

[root@linuxcool ~]# grep -sl root *
anaconda-ks.cfg
initial-setup-ks.cfg

递归搜索,不仅搜索指定目录,还搜索其内子目录内是否有关键词文件:

[root@linuxcool ~]# grep -srl root /etc
/etc/fstab
/etc/X11/xinit/Xclients
/etc/X11/xinit/xinitrc
/etc/libreport/events.d/collect_dnf.conf
/etc/libreport/events.d/bugzilla_anaconda_event.conf
/etc/libreport/forbidden_words.conf
………………省略部分输出信息………………

搜索某个文件中,精准匹配到某个关键词的内容(搜索词应与整行内容完全一样才会显示,有别于一般搜索):

[root@linuxcool ~]# grep -x cd anaconda-ks.cfg 
[root@linuxcool ~]# grep -x cdrom anaconda-ks.cfg 
cdrom

判断某个文件中,是否包含某个关键词,通过返回状态值输出结果(0为包含,1为不包含),方便在Shell脚本中判断和调用:

[root@linuxcool ~]# grep -q linuxprobe anaconda-ks.cfg 
[root@linuxcool ~]# echo $?
0
[root@linuxcool ~]# grep -q linuxcool anaconda-ks.cfg 
[root@linuxcool ~]# echo $?
1

搜索某个文件中,空行的数量:

[root@linuxcool ~]# grep -c ^$ anaconda-ks.cfg 
6

3.系统管理

3.1、rpm命令 – RPM软件包管理器

rpm命令来自于英文词组”RedHat Package Manager“的缩写,中文译为红帽软件包管理器,其功能是用于在Linux系统下对软件包进行安装、卸载、查询、验证、升级等工作。

语法格式:rpm [参数] 软件包

常用参数:

-a 查询所有的软件包
-b或-t 设置包装套件的完成阶段,并指定套件档的文件名称;
-c 只列出组态配置文件,本参数需配合”-l”参数使用
-d 只列出文本文件,本参数需配合”-l”参数使用
-e 卸载软件包
-f 查询文件或命令属于哪个软件包
-h 安装软件包时列出标记
-i 安装软件包
-l 显示软件包的文件列表
-p 查询指定的rpm软件包
-q 查询软件包
-R 显示软件包的依赖关系
-s 显示文件状态,本参数需配合”-l”参数使用
-U 升级软件包
-v 显示命令执行过程
-vv 详细显示指令执行过程

参考实例

正常安装软件包:

[root@linuxcool ~]# rpm -ivh cockpit-185-2.el8.x86_64.rpm 
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
  package cockpit-185-2.el8.x86_64 is already installed

显示系统已安装过的全部RPM软件包:

[root@linuxcool ~]# rpm -qa
qemu-kvm-block-gluster-2.12.0-63.module+el8+2833+c7d6d092.x86_64
boost-atomic-1.66.0-6.el8.x86_64
gnome-session-wayland-session-3.28.1-6.el8.x86_64
grub2-tools-2.02-66.el8.x86_64
lohit-gurmukhi-fonts-2.91.2-3.el8.noarch
liberation-fonts-common-2.00.3-4.el8.noarch
policycoreutils-python-utils-2.8-16.1.el8.noarch
………………省略部分输出信息………………

查询某个软件的安装路径:

[root@linuxcool ~]# rpm -ql cockpit
/usr/share/cockpit
/usr/share/doc/cockpit/AUTHORS
/usr/share/doc/cockpit/COPYING
/usr/share/doc/cockpit/README.md
/usr/share/man/man1/cockpit.1.gz
/usr/share/metainfo/cockpit.appdata.xml
/usr/share/pixmaps/cockpit.png

卸载某个通过RPM软件包安装的服务:

[root@linuxcool ~]# rpm -evh cockpit
Preparing...                          ################################# [100%]
Cleaning up / removing...
   1:cockpit-185-2.el8                ################################# [100%]

升级某个软件包:

[root@linuxcool ~]# rpm -Uvh cockpit-185-2.el8.x86_64.rpm 
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:cockpit-185-2.el8                ################################# [100%]

3.2、find命令 – 根据路径和条件搜索指定文件

find命令的功能是根据给定的路径和条件查找相关文件或目录,可以使用的参数很多,并且支持正则表达式,结合管道符后能够实现更加复杂的功能,是系统管理员和普通用户日常工作必须掌握的命令之一。

find命令通常进行的是从根目录(/)开始的全盘搜索,有别于whereis、which、locate……等等的有条件或部分文件的搜索。对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,会相对消耗较多的系统资源。

语法格式:find [路径] [参数]

常用参数

-name 匹配名称
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件f1新但比f2旧的文件
-type b/d/c/p/l/f 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune 忽略某个目录
-exec …… {}\; 后面可跟用于进一步处理搜索结果的命令

参考实例

全盘搜索系统中所有以.conf结尾的文件:

[root@linuxcool ~]# find / -name *.conf
/run/tmpfiles.d/kmod.conf
/etc/resolv.conf
/etc/dnf/dnf.conf
/etc/dnf/plugins/copr.conf
/etc/dnf/plugins/debuginfo-install.conf
/etc/dnf/plugins/product-id.conf
/etc/dnf/plugins/subscription-manager.conf
………………省略部分输出信息………………

在/etc目录中搜索所有大约1M大小的文件:

[root@linuxcool ~]# find /etc -size +1M
/etc/selinux/targeted/policy/policy.31
/etc/udev/hwdb.bin

在/home目录中搜索所有属于指定用户的文件:

[root@linuxcool ~]# find /home -user linuxprobe
/home/linuxprobe
/home/linuxprobe/.mozilla
/home/linuxprobe/.mozilla/extensions
/home/linuxprobe/.mozilla/plugins
/home/linuxprobe/.bash_logout
/home/linuxprobe/.bash_profile
/home/linuxprobe/.bashrc

列出当前工作目录中的所有文件、目录以及子文件信息:

[root@linuxcool ~]# find .
.
./.bash_logout
./.bash_profile
./.bashrc
./.cshrc
./.tcshrc
./anaconda-ks.cfg
………………省略部分输出信息………………

在/var/log目录下搜索所有指定后缀的文件,后缀不需要大小写。

[root@linuxcool ~]# find /var/log -iname "*.log"
/var/log/audit/audit.log
/var/log/rhsm/rhsmcertd.log
/var/log/rhsm/rhsm.log
/var/log/sssd/sssd.log
/var/log/sssd/sssd_implicit_files.log
/var/log/sssd/sssd_nss.log
/var/log/sssd/sssd_kcm.log
/var/log/tuned/tuned.log
/var/log/anaconda/anaconda.log
/var/log/anaconda/X.log
………………省略部分输出信息………………

在/var/log目录下搜索所有后缀不是.log的文件:

[root@linuxcool ~]# find /var/log ! -name "*.log"
/var/log
/var/log/lastlog
/var/log/README
/var/log/private
/var/log/wtmp
/var/log/btmp
/var/log/samba

搜索当前工作目录中的所有近7天被修改过的文件:

[root@linuxcool ~]# find . -mtime +7
./.bash_logout
./.bash_profile
./.bashrc
./.cshrc
./.tcshrc
………………省略部分输出信息………………

全盘搜索系统中所有类型为目录,且权限为1777的目录文件:

[root@linuxcool ~]# find / -type d -perm 1777
/dev/mqueue
/dev/shm
/var/tmp
/tmp
………………省略部分输出信息………………

全盘搜索系统中所有类型为普通文件,且可以执行的文件信息:

[root@linuxcool ~]# find / -type f -perm /a=x 
/boot/vmlinuz-4.18.0-80.el8.x86_64
/boot/vmlinuz-0-rescue-c8b04558503242459d908c6c22a2d481
/etc/X11/xinit/xinitrc.d/50-systemd-user.sh
/etc/X11/xinit/xinitrc.d/00-start-message-bus.sh
/etc/X11/xinit/xinitrc.d/localuser.sh
/etc/X11/xinit/Xclients
/etc/X11/xinit/Xsession
/etc/X11/xinit/xinitrc
………………省略部分输出信息………………

全盘搜索系统中所有后缀为.mp4的文件,并删除所有查找到的文件:

[root@linuxcool ~]# find / -name "*.mp4" -exec rm -rf {} \;

3.3、startx命令 – 初始化X-windows系统

startx命令来自于英文词组”start X-windows“的缩写,其功能是用于启动X-Windows系统。X-Windows System也被称为X或X11,中文译为X窗口系统,主要工作就是以图形方式显示软件窗口的系统,现在的GNOME和KDE桌面环境都是以X窗口系统为基础构建成的。

语法格式:startx [参数]

常用参数:

— -depth <数字> 指定颜色深度
-m 当未找到启动脚本时,启动窗口管理器
-r 当未找到启动脚本时,装入资源文件
-w 强制启动
-x 使用startup脚本启动X-windows会话

参考实例

以默认方式初始化启动X窗口系统:

[root@linuxcool ~]# startx
X.Org X Server 1.20.3
X Protocol Version 11, Revision 0
Build Operating System:  4.14.0-49.el7a.noaead.x86_64 
Current Operating System: Linux linuxcool.com 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64
………………省略部分输出信息………………

指定以16位颜色深度启动X窗口系统:

[root@linuxcool ~]# startx -- -depth 16
X.Org X Server 1.20.3
X Protocol Version 11, Revision 0
Build Operating System:  4.14.0-49.el7a.noaead.x86_64 
Current Operating System: Linux linuxcool.com 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64
………………省略部分输出信息………………

强制启动X窗口系统:

[root@linuxcool ~]# startx -w
X.Org X Server 1.20.3
X Protocol Version 11, Revision 0
Build Operating System:  4.14.0-49.el7a.noaead.x86_64 
Current Operating System: Linux linuxcool.com 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64
………………省略部分输出信息………………

3.4、ps命令 – 显示进程状态

ps命令来自于英文词组”process status“的缩写,其功能是用于显示当前系统的进程状态。使用ps命令可以查看到进程的所有信息,例如进程的号码、发起者、系统资源使用占比(处理器与内存)、运行状态等等。帮助我们及时的发现哪些进程出现”僵死“或”不可中断“等异常情况。

经常会与kill命令搭配使用来中断和删除不必要的服务进程,避免服务器的资源浪费。

语法格式:ps [参数]

常用参数:

a 显示现行终端机下的所有程序,包括其他用户的程序
-A 显示所有程序
c 显示每个程序真正的指令名称,而不包含路径
-C <指令名称> 指定执行指令的名称,并列出该指令的程序的状况
-d 显示所有程序,但不包括阶段作业管理员的程序
e 列出程序时,显示每个程序所使用的环境变量
-f 显示UID,PPIP,C与STIME栏位
f 用ASCII字符显示树状结构,表达程序间的相互关系
g 显示现行终端机下的所有程序,包括所属组的程序
-G <群组识别码> 列出属于该群组的程序的状况
h 不显示标题列
-H 显示树状结构,表示程序间的相互关系
-j 采用工作控制的格式显示程序状况
-l 采用详细的格式来显示程序状况
L 列出栏位的相关信息
-m 显示所有的执行绪
n 以数字来表示USER和WCHAN栏位
-N 显示所有的程序,除了执行ps指令终端机下的程序之外
-p <程序识别码> 指定程序识别码,并列出该程序的状况
r 只列出现行终端机正在执行中的程序
-s <阶段作业> 列出隶属该阶段作业的程序的状况
s 采用程序信号的格式显示程序状况
S 列出程序时,包括已中断的子程序资料
-t <终端机编号> 列出属于该终端机的程序的状况
-T 显示现行终端机下的所有程序
u 以用户为主的格式来显示程序状况
-U <用户识别码> 列出属于该用户的程序的状况
U <用户名称> 列出属于该用户的程序的状况
v 采用虚拟内存的格式显示程序状况
-V或V 显示版本信息
-w或w 采用宽阔的格式来显示程序状况
x 显示所有程序,不以终端机来区分
X 采用旧式的Linux i386登陆格式显示程序状况
-y 配合选项”-l”使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位
--cols <每列字符数> 设置每列的最大字符数
--headers 重复显示标题列
--help 在线帮助
--info 显示排错信息
--lines <显示列数> 设置显示画面的列数

参考实例

显示系统中全部的进程信息,含详细信息:

[root@linuxcool ~]# ps aux 
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          2  0.0  0.0      0     0 ?        S    20:05   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        I<   20:05   0:00 [rcu_gp]
root          4  0.0  0.0      0     0 ?        I<   20:05   0:00 [rcu_par_gp]
………………省略部分输出信息………………

结合输出重定向,将当前进程信息保留备份至指定文件:

[root@linuxcool ~]# ps aux > backup.txt

结合管道操作符,将当前系统运行状态中指定进程信息过滤出来:

[root@linuxcool ~]# ps -ef | grep ssh
………………省略输出信息………………

结合管道操作符,将当前系统运行状态中指定用户的进程信息过滤出来:

[root@linuxcool ~]# ps -u root
   PID TTY          TIME CMD
     1 ?        00:00:01 systemd
     2 ?        00:00:00 kthreadd
     3 ?        00:00:00 rcu_gp
     4 ?        00:00:00 rcu_par_gp
………………省略部分输出信息………………

结合管道操作符与sort命令,依据处理器使用量(第三列)情况降序排序:

[root@linuxcool ~]# ps aux | sort -rnk 3
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       2341  0.4  8.1 4504040 164896 tty2   Sl+  20:05   0:24 /usr/bin/gnome-shell
root       4534  0.3  0.4 220064  8520 ?        Ssl  21:37   0:00 /usr/libexec/nm-dispatcher
gdm        1541  0.1  7.3 4211428 147400 tty1   Sl+  20:05   0:06 /usr/bin/gnome-shell
………………省略部分输出信息………………

结合管道操作符与sort命令,依据内存使用量(第四列)情况降序排序:

[root@linuxcool ~]# ps aux | sort -rnk 4
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       2341  0.4  8.1 4503976 164828 tty2   Sl+  20:05   0:27 /usr/bin/gnome-shell
gdm        1541  0.1  7.3 4211428 147556 tty1   Sl+  20:05   0:08 /usr/bin/gnome-shell
root       2661  0.0  3.1 1271636 63004 tty2    Sl+  20:05   0:01 /usr/bin/gnome-software --gapplication-service
………………省略部分输出信息………………

3.5、uname命令 – 显示系统内核信息

uname命令来自于英文词组”Unix name“的缩写,其功能是用于查看系统主机名、内核及硬件架构等信息。如果不加任何参数,默认仅显示系统内核名称,相当于-s参数。

语法格式:uname [参数]

常用参数:

-a 显示系统所有相关信息
-m 显示计算机硬件架构
-n 显示主机名称
-r 显示内核发行版本号
-s 显示内核名称
-v 显示内核版本
-p 显示主机处理器类型
-o 显示操作系统名称
-i 显示硬件平台

参考实例

显示系统内核名称:

[root@linuxcool ~]# uname
Linux

显示系统所有相关信息(含内核名称、主机名、版本号及硬件架构):

[root@linuxcool ~]# uname -a
Linux linuxcool.com 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

显示系统内核版本号:

[root@linuxcool ~]# uname -r 
4.18.0-80.el8.x86_64

现在系统硬件架构:

[root@linuxcool ~]# uname -i
x86_64

4.磁盘管理

4.1、df命令 – 显示磁盘空间使用情况

df命令来自于英文词组”Disk Free“的缩写,其功能是用于显示系统上磁盘空间的使用量情况。df命令显示的磁盘使用量情况含可用、已有及使用率等信息,默认单位为Kb,建议使用-h参数进行单位换算,毕竟135M比138240Kb更利于阅读对吧~

语法格式: df [参数] [对象磁盘/分区]

常用参数:

-a 显示所有系统文件
-B <块大小> 指定显示时的块大小
-h 以容易阅读的方式显示
-H 以1000字节为换算单位来显示
-i 显示索引字节信息
-k 指定块大小为1KB
-l 只显示本地文件系统
-t <文件系统类型> 只显示指定类型的文件系统
-T 输出时显示文件系统类型
-- -sync 在取得磁盘使用信息前,先执行sync命令

参考实例

带有容量单位的显示系统全部磁盘使用量情况:

[root@linuxcool ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               969M     0  969M   0% /dev
tmpfs                  984M     0  984M   0% /dev/shm
tmpfs                  984M  9.6M  974M   1% /run
tmpfs                  984M     0  984M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   17G  3.9G   14G  23% /
/dev/sr0               6.7G  6.7G     0 100% /media/cdrom
/dev/sda1             1014M  152M  863M  15% /boot
tmpfs                  197M   16K  197M   1% /run/user/42
tmpfs                  197M  3.5M  194M   2% /run/user/0

带有容量单位的显示指定磁盘分区使用量情况:

[root@linuxcool ~]# df -h /boot
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1      1014M  152M  863M  15% /boot

显示系统中所有文件系统格式为xfs的磁盘分区使用量情况:

[root@linuxcool ~]# df -t xfs
Filesystem            1K-blocks    Used Available Use% Mounted on
/dev/mapper/rhel-root  17811456 4041320  13770136  23% /
/dev/sda1               1038336  155556    882780  15% /boot

4.2、fdisk命令 – 管理磁盘分区

fdisk命令来自于英文词组“Partition table manipulator for Linux”的缩写,其功能是用于管理磁盘的分区信息。如果一套几百平米的房子内部没有墙壁,虽然看起来会很敞亮,但是各种声音、气味、物品会随意充斥在整个房子内,让人极不舒适,因此需要用墙壁按照功能进行划分,例如卧室、厕所、厨房、阳台等等。

fdisk命令可以用于对磁盘进行分区操作,用户可以根据实际情况进行合理划分,这样后期挂载和使用时会方便很多。

语法格式:fdisk [参数] [设备]

常用参数:

-b 指定每个分区的大小
-l 列出指定的外围设备的分区表状况
-s 将指定的分区大小输出到标准输出上,单位为区块
-u 搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址
-v 显示版本信息

参考实例

查看当前系统的分区情况:

[root@linuxcool ~]# fdisk -l
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5f1d8ee5
Device     Boot   Start      End  Sectors Size Id Type
/dev/sda1  *       2048  2099199  2097152   1G 83 Linux
/dev/sda2       2099200 41943039 39843840  19G 8e Linux LVM
………………省略部分输出信息………………

管理指定硬盘的分区(过程省略,以《Linux就该这么学》第6章节为准):

[root@linuxcool ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n 
All space for primary partitions is in use.
Command (m for help): m 
Help:
  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag
  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition
  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)
  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file
  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes
  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table
………………省略部分输出信息………………

4.3、lsblk命令 – 查看系统的磁盘使用情况

lsblk命令来自于英文词组”list block“的缩写,其功能是用于查看系统的磁盘使用情况。

语法格式:lsblk [参数]

常用参数:

-a 显示所有设备
-b 以字节单位显示设备大小
-d 不显示 slaves 或 holders
-e 排除设备
-f 显示文件系统信息
-h 显示帮助信息
-i 仅使用字符
-m 显示权限信息
-l 使用列表格式显示
-n 不显示标题
-o 输出列
-P 使用key=”value”格式显示
-r 使用原始格式显示
-t 显示拓扑结构信息

参考实例

显示系统中所有磁盘设备的使用情况信息:

[root@linuxcool ~]# lsblk -a
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   20G  0 disk 
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   19G  0 part 
  ├─rhel-root 253:0    0   17G  0 lvm  /
  └─rhel-swap 253:1    0    2G  0 lvm  [SWAP]
sr0            11:0    1  6.6G  0 rom  /media/cdrom

显示系统中磁盘设备的归属及权限信息:

[root@linuxcool ~]# lsblk -m
NAME           SIZE OWNER GROUP MODE
sda             20G root  disk  brw-rw----
├─sda1           1G root  disk  brw-rw----
└─sda2          19G root  disk  brw-rw----
  ├─rhel-root   17G root  disk  brw-rw----
  └─rhel-swap    2G root  disk  brw-rw----
sr0            6.6G root  cdrom brw-rw----

显示系统中所有SCSI类型的磁盘设备信息:

[root@linuxcool ~]# lsblk -S
NAME HCTL       TYPE VENDOR   MODEL             REV TRAN
sda  2:0:0:0    disk ATA      VMware Virtual S 0001 sata
sr0  3:0:0:0    rom  NECVMWar VMware SATA CD01 1.00 sata

以列表格式显示磁盘设备信息,并且不显示标题:

[root@linuxcool ~]# lsblk -nl
sda         8:0    0   20G  0 disk 
sda1        8:1    0    1G  0 part /boot
sda2        8:2    0   19G  0 part 
sr0        11:0    1  6.6G  0 rom  /media/cdrom
rhel-root 253:0    0   17G  0 lvm  /
rhel-swap 253:1    0    2G  0 lvm  [SWAP]

4.4、hdparm命令 – 显示与设定硬盘参数

hdparm命令来自于英文词组“hard disk parameters”的缩写,其功能是用于显示与设定硬盘参数。对于初次接手一块硬盘设备,了解相关性能属性有很好的帮助。

语法格式:hdparm [参数] 设备名

常用参数:

-a 设定读取文件时,预先存入块区的分区数
-f 将内存缓冲区的数据写入硬盘,并清空缓冲区
-g 显示硬盘的磁轨,磁头,磁区等参数
-t 评估硬盘读取效率
-I  直接读取硬盘所提供的硬件规格信息
-X 设定硬盘的传输模式

参考实例

显示指定硬盘的相关信息:

[root@linuxcool ~]# hdparm /dev/sdb
/dev/sdb:
 multcount     = 255 (on)
 IO_support    =  1 (32-bit)
 readonly      =  0 (off)
 readahead     = 8192 (on)
 geometry      = 2610/255/63, sectors = 41943040, start = 0

仅显示指定硬盘的柱面、磁头和扇区数信息:

[root@linuxcool ~]# hdparm -g /dev/sdb
/dev/sdb:
 geometry      = 2610/255/63, sectors = 41943040, start = 0

评估指定硬盘的读取效率:

[root@linuxcool ~]# hdparm -t /dev/sdb
/dev/sdb:
 Timing buffered disk reads: 5386 MB in  3.00 seconds = 1795.12 MB/sec

读取指定硬盘所提供的硬件规格信息:

[root@linuxcool ~]# hdparm -X /dev/sdb
/dev/sdb:
 setting xfermode to 0 (default PIO mode)
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 12 00 00 00 00 24 00 00 c0 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00

4.5、vgextend命令 – 扩展卷组设备

vgextend命令来自于英文词组“volume group extend”的缩写,其功能是用于扩展卷组设备。LVM逻辑卷管理器技术具有灵活调整卷组与逻辑卷的特点,卷组可以在创建时规定物理卷的数量,亦可以在后期使用vgextend命令进行扩展。

语法格式:vgextend [参数] 卷组

常用参数:

-d 调试模式
-t 仅测试

参考实例

将指定的物理卷加入到卷组设备中:

[root@linuxcool ~]# vgextend storage /dev/sdb
 Volume group "storage" successfully extended

5.文件传输

5.1、tftp命令 – 上传及下载文件

tftp命令来自于英文词组”Trivial File Transfer Protocol“的缩写,中文译为简单文件传输协议,其功能是基于TFTP协议进行的文件传输工作。用户可以通过文字模式将文件上传至远程服务器,亦可以从服务器下载文件到本地主机。

TFTP基于69/udp协议,不同于FTP文件传输协议,属于轻量级的传输服务,不具备显示文件列表、断点续传等功能。

语法格式:tftp [参数] 主机

常用参数:

connect 连接到远程tftp服务器
mode 文件传输模式
put 上传文件
get 下载文件
quit 退出
verbose 显示详细的处理信息
trace 显示包路径
status 显示当前状态信息
binary 二进制传输模式
ascii ascii 传送模式
rexmt 设置包传输的超时时间
timeout 设置重传的超时时间
help 帮助信息
? 帮助信息

参考实例

远程连接至指定服务器:

[root@linuxcool ~]# tftp 192.168.10.10

下载远程指定服务器中的文件至本地工作目录:

tftp> get File1.txt

上传本地工作目录中某个文件至远程指定服务器:

tftp> put File2.txt

退出登录某台远程服务器:

tftp> quit

5.2、curl命令 – 文件传输工具

curl命令来自于英文词组”CommandLine URL“的缩写,其功能是用于在Shell终端界面中基于URL规则进行的文件传输工作。curl是一款综合的传输工具,可以上传也可以下载,支持HTTP、HTTPS、FTP等三十余种常见协议

语法格式:curl [参数] 网址

常用参数:

-o 指定新的本地文件名
-O 保留远程文件的原始名
-u 通过服务端配置的用户名和密码授权访问
-I 打印HTTP响应头信息
-u 指定登录账户密码信息
-A 设置用户代理标头信息
-b 设置用户cookie信息
-C 支持断点续传
-s 静默模式,不输出任何信息
-T 上传文件

参考实例

获取指定网站的网页源码:

[root@linuxcool ~]# curl https://www.linuxcool.com
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
<meta charset="UTF-8" />
………………省略部分输出信息………………

下载指定网站中的文件:

[root@linuxcool ~]# curl -O https://www.linuxprobe.com/docs/LinuxProbe.pdf
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16.8M  100 16.8M    0     0  22.5M      0 --:--:-- --:--:-- --:--:-- 22.5M

打印指定网站的HTTP响应头信息:

[root@linuxcool ~]# curl -I https://www.linuxcool.com
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/2 200 
server: Tengine
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
date: Wed, 04 May 2022 06:44:26 GMT
vary: Accept-Encoding
x-powered-by: PHP/7.4.11
vary: Accept-Encoding, Cookie
cache-control: max-age=3, must-revalidate
ali-swift-global-savetime: 1651646666
via: cache3.l2cn1802[235,234,200-0,M], cache17.l2cn1802[236,0], kunlun10.cn257[403,414,200-0,M], kunlun
2.cn257[417,0]
x-cache: MISS TCP_REFRESH_MISS dirn:0:416601537
x-swift-savetime: Wed, 04 May 2022 06:44:26 GMT
x-swift-cachetime: 3
timing-allow-origin: *
eagleid: ab08f29616516466664417014e

下载指定文件服务器中的文件(用户名:linuxcool,密码:redhat):

[root@linuxprobe ~]# curl -u linuxprobe:redhat ftp://www.linuxcool.com/LinuxProbe.pdf

5.3、fsck命令 – 检查与修复文件系统

fsck命令来自于英文词组“filesystem check”的缩写,其功能是用于检查与修复文件系统。若系统有过突然断电或磁盘异常的情况,建议使用fsck命令对文件系统进行检查与修复,以防数据丢失。

语法格式:fsck [参数] 文件系统

常用参数:

-a 自动修复文件系统
-f 强制检查
-A 依照/etc/fstab文件来检查全部文件系统
-N 不执行指令,仅列出实际执行会进行的动作
-r 采用互动模式,在执行修复时询问问题
-R 略过指定的文件系统不予检查
-t 指定要检查的文件系统类型
-T 执行fsck指令时,不显示标题信息
-V 显示指令执行过程

参考实例

检查是否的文件系统是否有损坏:

[root@linuxcool ~]# fsck /dev/sdb
fsck from util-linux 2.32.1
e2fsck 1.44.3 (10-July-2018)
/dev/sdb: clean, 11/1310720 files, 126322/5242880 blocks

强制检查文件系统的损坏情况:

[root@linuxcool ~]# fsck -f /dev/sdb
fsck from util-linux 2.32.1
e2fsck 1.44.3 (10-July-2018)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb: 11/1310720 files (0.0% non-contiguous), 126322/5242880 blocks

5.4、lprm命令 – 删除打印队列中的打印任务

lprm命令的英文全称是“Remove jobs from the print queue”,意为用于删除打印队列中的打印任务。尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将未送到打印机的工作取消。

语法格式:lprm [参数] [任务编号]

常用参数:

-E 与打印服务器连接时强制使用加密
-P 指定接受打印任务的目标打印机
-U 指定可选的用户名

参考实例

将打印机hpprint中的第102号任务移除:

[root@linuxcool ~]# lprm -Phpprint 102

将第101号任务由预设打印机中移除:

[root@linuxcool ~]# lprm 101

5.5、ftpwho命令 – 显示ftp会话信息

ftpwho命令用于显示当前所有以FTP登入的用户会话信息。

执行该命令可得知当前用FTP登入系统的用户有哪些人,以及他们正在进行的操作。

语法格式:ftpwho [参数]

常用参数:

-h 显示帮助信息
-v 详细模式,输出更多信息

参考实例

查询当前正在登录FTP 服务器的用户:

[root@linuxcool ~]# ftpwho

在详细模式下,查询当前正在登录FTP 服务器的用户:

[root@linuxcool ~]# ftpwho -v

显示帮助信息:

[root@linuxcool ~]# ftpwho -h

6、网络通讯

6.1、ssh命令 – 安全的远程连接服务器

ssh命令的功能是用于安全的远程连接服务器主机系统,作为openssh套件中的客户端连接工具,ssh命令可以让我们轻松的基于ssh加密协议进行远程主机访问,从而实现对远程服务器的管理工作。

语法格式: ssh [参数] 远程主机

常用参数:

-1 强制使用ssh协议版本1
-2 强制使用ssh协议版本2
-4 强制使用IPv4地址
-6 强制使用IPv6地址
-A 开启认证代理连接转发功能
-a 关闭认证代理连接转发功能
-b<IP地址> 使用本机指定的地址作为对位连接的源IP地址
-C 请求压缩所有数据
-F<配置文件> 指定ssh指令的配置文件,默认的配置文件为“/etc/ssh/ssh_config”
-f 后台执行ssh指令
-g 允许远程主机连接本机的转发端口
-i<身份文件> 指定身份文件(即私钥文件)
-l<登录名> 指定连接远程服务器的登录用户名
-N 不执行远程指令
-o<选项> 指定配置选项
-p<端口> 指定远程服务器上的端口
-q 静默模式,所有的警告和诊断信息被禁止输出
-X 开启X11转发功能
-x 关闭X11转发功能
-y 开启信任X11转发功能

参考实例

基于ssh协议,远程访问服务器主机系统:

[root@linuxcool ~]# ssh 192.168.10.10
The authenticity of host '192.168.10.10 (192.168.10.10)' can't be established.
ECDSA key fingerprint is SHA256:ZEjdfRjQV8pVVfu0TSYvDP5UvOHuuogMQSDUgLPG3Kc.
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added '192.168.10.10' (ECDSA) to the list of known hosts.
root@192.168.10.10's password: 此处输入远程服务器管理员密码
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Tue Dec 14 08:49:08 2022
[root@linuxprobe ~]#

使用指定的用户身份登录远程服务器主机系统:

[root@linuxcool ~]# ssh -l linuxprobe 192.168.10.10
linuxprobe@192.168.10.10's password: 此处输入指定用户的密码
Activate the web console with: systemctl enable --now cockpit.socket
[linuxprobe@linuxprobe ~]$

登录远程服务器主机系统后执行一条命令:

[root@linuxcool ~]# ssh 192.168.10.10 "free -m"
root@192.168.10.10's password: 此处输入远程服务器管理员密码
              total        used        free      shared  buff/cache   available
Mem:           1966        1359          76          21         530         407
Swap:          2047           9        2038

强制使用v1版本的ssh加密协议连接远程服务器主机:

[root@linuxcool ~]# ssh -1 192.168.10.10

6.2、netstat命令 – 显示网络状态

netstat命令来自于英文词组”network statistics“的缩写,其功能是用于显示各种网络相关信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等等。

netstat命令不仅应用于Linux系统,而且在Windows XP、Windows 7、Windows 10及Windows 11中均已默认支持,并且可用参数也相同,有经验的运维人员可以直接上手。

语法格式:netstat [参数]

常用参数:

-a 显示所有连线中的Socket
-p 显示正在使用Socket的程序识别码和程序名称
-l 仅列出在监听的服务状态
-t 显示TCP传输协议的连线状况
-u 显示UDP传输协议的连线状况
-i 显示网络界面信息表单
-r 显示路由表信息
-n 直接使用IP地址,不通过域名服务器

参考实例

显示系统网络状态中的所有连接信息:

[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 参数 [网卡]

常用参数:

-p 指定dhcp客户端监听的端口号(默认端口号86)
-d 总是以前台方式运行程序
-q 安静模式,不打印任何错误的提示信息
-r 释放ip地址
-n 不配置任何接口
-x 停止正在运行的DHCP客户端,而不释放当前租约,杀死现有的dhclient
-s 在获取ip地址之前指定DHCP服务器
-w 即使没有找到广播接口,也继续运行

参考实例

通过指定网卡发起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 [参数] 目标主机

常用参数:

-d 使用Socket的SO_DEBUG功能
-c 指定发送报文的次数
-i 指定收发信息的间隔时间
-I 使用指定的网络接口送出数据包
-l 设置在送出要求信息之前,先行发出的数据包
-n 只输出数值
-p 设置填满数据包的范本样式
-q 不显示指令执行过程
-R 记录路由过程
-s 设置数据包的大小
-t 设置存活数值TTL的大小
-v 详细显示指令的执行过程

参考实例

测试与指定网站服务器之间的网络连通性(需手动按下“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 [参数] [网卡设备]

常用参数:

add<地址> 设置网络设备IPv6的IP地址
del<地址> 删除网络设备IPv6的IP地址
down 关闭指定的网络设备
up 启动指定的网络设备
IP地址 指定网络设备的IP地址

参考实例

显示系统的网络设备信息:

[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 [参数] [设备] [挂载点]

常用参数:

-t 指定挂载类型
-l 显示已加载的文件系统列表
-h 显示帮助信息并退出
-V 显示程序版本
-n 加载没有写入文件“/etc/mtab”中的文件系统
-r 将文件系统加载为只读模式
-a 加载文件“/etc/fstab”中描述的所有文件系统

参考实例

查看当前系统中已有的文件系统信息(可结合管道符与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 [参数]

常用参数:

-n 以数字方式显示PCI厂商和设备代码
-t 以树状结构显示PCI设备的层次关系
-b 以总线为中心的视图
-s 仅显示指定总线插槽的设备和功能块信息
-i 指定PCI编号列表文件,不使用默认文件
-m 以机器可读方式显示PCI设备信息

参考实例

显示当前主机的所有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 [参数]

常用参数:

-v 显示出执行的每一个动作
-n 并不做真正的更新, 只是显示一下它的执行效果
-d 删除设备文件

参考实例

显示出执行的每一个动作:

[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 [参数]

常用参数:

-F 设定虚拟主控台的状态
-D 改变虚拟主控台的状态和预设的状态
-L 直接改变 LED 显示的状态
+num/-num 将数字键打开或关闭
+caps/-caps 把大小写键打开或关闭
+scroll /-scroll 把选项键打开或关闭

参考实例

控制键盘灯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 参数 文件

常用参数:

-q 不显示指令执行过程
-r 递归处理,将指定目录下的所有文件和子目录一并处理
-z 替压缩文件加上注释
-v 显示指令执行过程或显示版本信息
-d 更新压缩包内文件
-n<字尾字符串> 不压缩具有特定字尾字符串的文件

参考实例

将指定目录及其内全部文件都打包成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 [参数] 压缩包

常用参数:

-l 显示压缩文件内所包含的文件
-v 执行时显示详细的信息
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-n 解压缩时不要覆盖原有的文件
-j 不处理压缩文件中原有的目录路径

参考实例

将压缩包文件解压到当前工作目录中:

[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 [参数] 文件

常用参数:

-a 使用ASCII文字模式
-d 解开压缩文件
-f 强行压缩文件
-k 保留原文件
-l 列出压缩文件的相关信息
-c 把压缩后的文件输出到标准输出设备,不去更动原始文件
-r 递归处理,将指定目录下的所有文件及子目录一并处理
-q 不显示警告信息

参考实例

将指定的文件进行压缩,压缩包默认会以“原文件名.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 [参数] 压缩包

常用参数:

-1 只列出文件名称
-h 只列出压缩文件名称
-l 列出原始文件的大小
-m 列出每个文件的压缩率
-M 以分页形式显示内容
-s 列出压缩文件内容
-t 列出压缩前后大小及压缩率
-T 列出每个文件的日期时间
-v 详细显示每一个文件的信息
-x<范本样式> 不列出符合条件的文件的信息
-z 将注释显示出来

参考实例

显示压缩包内的文件名称及简要属性信息:

[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 [参数] 压缩包

常用参数:

-a 使用ASCII文字模式
-c 把解压后的文件输出到标准输出设备
-f 强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接
-h 在线帮助
-l 列出压缩文件的相关信息
-L 显示版本与版权信息
-n 解压缩时,若压缩文件内含有远来的文件名称及时间戳记,则将其忽略不予处理
-N 解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上
-q 不显示警告信息
-r 递归处理,将指定目录下的所有文件及子目录一并处理
-S<压缩字尾字符串> 更改压缩字尾字符串
-t 测试压缩文件是否正确无误
-v 显示指令执行过程
-V 显示版本信息

参考实例

解压指定的压缩包文件

[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 [参数] [目录]

常用参数:

-d 在哈希表中清除记录
-l 显示哈希表中的命令
-p<指令> 将具有完整路径的命令加入到哈希表中
-r 清除哈希表中的记录
-t 显示哈希表中命令的完整路径

参考实例

显示哈希表中的命令:

[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 [选项]

常用参数:

-i 强制进入交互式模式
-l 定义使用的标准数学库
-w 定义使用的标准数学库
-q 打印正常的GNU 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 [参数]

常用参数:

-a 写入命令记录
-c 清空命令记录
-d 删除指定序号的命令记录
-n 读取命令记录
-r 读取命令记录到缓冲区
-s 将指定的命令添加到缓冲区
-w 将缓冲区信息写入到历史文件

参考实例

显示执行过的全部命令记录:

[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 [参数] 网址

常用参数:

-V 显示版本信息
-h 显示帮助信息
-b 启动后转入后台执行
-c 支持断点续传
-O 定义本地文件名
-e <命令> 执行指定的命令
--limit-rate=<速率> 限制下载速度

参考实例

下载指定的网络文件:

[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 [参数]

常用参数:

z, --compress 强制压缩
-t, --test 测试压缩文件的完整性
-l, --list 列出有关.xz文件的信息
-k, --keep 保留(不要删除)输入文件
-f, --force 强制覆盖输出文件和(解)压缩链接
-c, --stdout, --to-stdout 写入标准输出,不要删除输入文件
-0 … -9 压缩预设; 默认为6; 取压缩机和
使用7-9之前解压缩内存使用量考虑在内!
-e, --extreme 尝试通过使用更多的CPU时间来提高压缩比
-T, --threads=NUM 最多使用NUM个线程; 默认值为1
set to 0 设置为0,使用与处理器内核一样多的线程
-q, --quiet 抑制警告; 指定两次以抑制错误
-v, --verbose 冗长; 指定两次更详细
-h, --help 显示这个简洁的帮助并退出
-H, --long-help 显示更多帮助(还列出了高级选项)
-V, --version 显示版本号并退出

参考实例

压缩一个文件 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 [参数]

常用参数:

-c 指定加密文件
-o 指定解密文件
--gen-key 生成密钥对
--list-keys 查看已有的密钥

参考实例

对称加密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 [参数]

常用参数:

-h 服务端IP
-p 服务器端口
-a redis密码
-c 客户端连接数量
-n 请求总数

参考实例

使用默认配置对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 [参数]

常用参数:

-h 服务器主机名称
-p 服务器端口
-a 连接到服务器时使用的密码
-r 执行指定命令N次
-n 数据库编号
--csv 以csv格式输出

参考实例

使用默认端口,连接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

11、还有好多  中间件命令  和 基础命令(敬请期待)

目录
相关文章
|
23天前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
52 8
|
23天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
145 6
|
24天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
65 3
|
24天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
60 2
|
6天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
32 14
Linux 10 个“who”命令示例
|
15天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
30 9
|
1月前
|
缓存 监控 Linux
|
13天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
19天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
59 3
|
23天前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
39 4