• Linux命令汇总


    目录

    一、Linux命令

    1.文件管理

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

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

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

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

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

    2.文件编辑

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

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

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

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

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

    3.系统管理

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

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

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

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

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

    4.磁盘管理

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

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

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

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

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

     5.文件传输

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

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

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

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

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

     6、网络通讯

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

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

     6.3、dhclient命令 – 动态获取或释放IP地址

     6.4、ping命令 – 测试主机间网络连通性

     6.5、ifconfig命令 – 显示或设置网络设备参数信息

     7.设备管理

    7.1、mount命令 – 把文件系统挂载到目录

     7.2、lspci命令 – 显示当前设备PCI总线设备信息

     7.3、MAKEDEV命令 – 建立设备

     7.4、sensors命令 – 检测服务器硬件信息

     7.5、setleds命令 – 设定键盘上方三个 LED 的状态

     8、备份压缩

    8.1、zip命令 – 压缩文件 

     8.2、unzip命令 – 解压缩zip格式文件

    8.3、gzip命令 – 压缩和解压文件

     8.4、zipinfo命令 – 查看压缩文件信息

    8.5、gunzip命令 – 解压提取文件内容

     9、其他命令

    9.1、hash命令 – 管理命令运行时查询的哈希表 

    9.2、wait命令 – 等待指令执行完毕

     9.3、bc命令 – 数字计算器

     9.4、history命令 – 显示与管理历史命令记录

     9.5、wget命令 – 下载网络文件

     10、扩充内容

    10.1、xz命令 – POSIX 平台开发工具

     10.2、gpg命令 – 加密工具

     10.3、redis-benchmark命令 – Redis基准性能测试

    10.4、redis-cli命令 – redis客户端管理工具

     10.5、whatis命令 – 查询命令执行功能

    10.6、ifplugstatus命令 – 检查网线是否已插到在网络接口

    10.7、chronyc命令 – 设置时间与时钟服务器同步

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


    一、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输出信息中带有着色效果

     参考实例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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目录中,如已有目标文件名称则默认询问是否覆盖:

    1. [root@linuxcool ~]# cp anaconda-ks.cfg ks.cfg /etc
    2. 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显示逻辑路径

     参考实例

    查看当前工作目录路径:

    1. [root@linuxcool ~]# pwd
    2. /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显示版本信息

    参考实例

    查看某个文件的内容: 

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

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

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

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

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

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

    1. [root@linuxcool ~]# cat > anaconda-ks.cfg << EOF
    2. > Hello,World
    3. > Linux!~
    4. > EOF
    5. [root@linuxcool ~]# cat anaconda-ks.cfg
    6. Hello,World
    7. Linux!~

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

    1. [root@linuxcool ~]# cat /dev/cdrom > rhel.iso
    2. [root@linuxcool ~]# ls rhel.iso -lh
    3. -rw-r--r--. 1 root root 6.7G May 2 00:43 rhel.iso
    4. [root@linuxcool ~]# file rhel.iso
    5. 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查看帮助信息

    参考实例

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

    1. [root@linuxcool ~]# echo LinuxCool
    2. LinuxCool

    输出某个变量值内容: 

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

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

    1. [root@linuxcool ~]# echo \$PATH
    2. $PATH

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

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

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

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

     输出带有换行符的内容:

    1. [root@linuxcool ~]# echo -e "First\nSecond\nThird"
    2. First
    3. Second
    4. Third

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

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

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

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

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

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

    常用参数:

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

    参考实例

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

    1. [root@linuxcool ~]# rm anaconda-ks.cfg
    2. 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
    与选项“-follow=name”和“--retry”连用时功能相同

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

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

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

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

    参考实例

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

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

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

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

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

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

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

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

    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支持扩展的正则表达式

     参考实例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    1. [root@linuxcool ~]# grep -l root *
    2. anaconda-ks.cfg
    3. grep: Desktop: Is a directory
    4. grep: Documents: Is a directory
    5. grep: Downloads: Is a directory
    6. initial-setup-ks.cfg
    7. grep: Music: Is a directory
    8. grep: Pictures: Is a directory
    9. grep: Public: Is a directory
    10. grep: Templates: Is a directory
    11. grep: Videos: Is a directory

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

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

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

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

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

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

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

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

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

    1. [root@linuxcool ~]# grep -c ^$ anaconda-ks.cfg
    2. 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详细显示指令执行过程

     参考实例

    正常安装软件包:

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

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

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

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

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

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

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

     升级某个软件包:

    1. [root@linuxcool ~]# rpm -Uvh cockpit-185-2.el8.x86_64.rpm
    2. Verifying... ################################# [100%]
    3. Preparing... ################################# [100%]
    4. Updating / installing...
    5. 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结尾的文件:

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

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

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

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

    1. [root@linuxcool ~]# find /home -user linuxprobe
    2. /home/linuxprobe
    3. /home/linuxprobe/.mozilla
    4. /home/linuxprobe/.mozilla/extensions
    5. /home/linuxprobe/.mozilla/plugins
    6. /home/linuxprobe/.bash_logout
    7. /home/linuxprobe/.bash_profile
    8. /home/linuxprobe/.bashrc

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

    1. [root@linuxcool ~]# find .
    2. .
    3. ./.bash_logout
    4. ./.bash_profile
    5. ./.bashrc
    6. ./.cshrc
    7. ./.tcshrc
    8. ./anaconda-ks.cfg
    9. ………………省略部分输出信息………………

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

    1. [root@linuxcool ~]# find /var/log -iname "*.log"
    2. /var/log/audit/audit.log
    3. /var/log/rhsm/rhsmcertd.log
    4. /var/log/rhsm/rhsm.log
    5. /var/log/sssd/sssd.log
    6. /var/log/sssd/sssd_implicit_files.log
    7. /var/log/sssd/sssd_nss.log
    8. /var/log/sssd/sssd_kcm.log
    9. /var/log/tuned/tuned.log
    10. /var/log/anaconda/anaconda.log
    11. /var/log/anaconda/X.log
    12. ………………省略部分输出信息………………

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

    1. [root@linuxcool ~]# find /var/log ! -name "*.log"
    2. /var/log
    3. /var/log/lastlog
    4. /var/log/README
    5. /var/log/private
    6. /var/log/wtmp
    7. /var/log/btmp
    8. /var/log/samba

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

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

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

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

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

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

     全盘搜索系统中所有后缀为.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窗口系统: 

    1. [root@linuxcool ~]# startx
    2. X.Org X Server 1.20.3
    3. X Protocol Version 11, Revision 0
    4. Build Operating System: 4.14.0-49.el7a.noaead.x86_64
    5. 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
    6. ………………省略部分输出信息………………

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

    1. [root@linuxcool ~]# startx -- -depth 16
    2. X.Org X Server 1.20.3
    3. X Protocol Version 11, Revision 0
    4. Build Operating System: 4.14.0-49.el7a.noaead.x86_64
    5. 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
    6. ………………省略部分输出信息………………

     强制启动X窗口系统:

    1. [root@linuxcool ~]# startx -w
    2. X.Org X Server 1.20.3
    3. X Protocol Version 11, Revision 0
    4. Build Operating System: 4.14.0-49.el7a.noaead.x86_64
    5. 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
    6. ………………省略部分输出信息………………

    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 <显示列数>设置显示画面的列数

     参考实例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    语法格式:uname [参数] 

    常用参数:

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

     参考实例

    显示系统内核名称: 

    1. [root@linuxcool ~]# uname
    2. Linux

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

    1. [root@linuxcool ~]# uname -a
    2. 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

     显示系统内核版本号:

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

     现在系统硬件架构:

    1. [root@linuxcool ~]# uname -i
    2. 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命令

    参考实例 

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

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

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

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

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

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

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

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

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

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

    常用参数:

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

     参考实例

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

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

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

    1. [root@linuxcool ~]# fdisk /dev/sda
    2. Welcome to fdisk (util-linux 2.32.1).
    3. Changes will remain in memory only, until you decide to write them.
    4. Be careful before using the write command.
    5. Command (m for help): n
    6. All space for primary partitions is in use.
    7. Command (m for help): m
    8. Help:
    9. DOS (MBR)
    10. a toggle a bootable flag
    11. b edit nested BSD disklabel
    12. c toggle the dos compatibility flag
    13. Generic
    14. d delete a partition
    15. F list free unpartitioned space
    16. l list known partition types
    17. n add a new partition
    18. p print the partition table
    19. t change a partition type
    20. v verify the partition table
    21. i print information about a partition
    22. Misc
    23. m print this menu
    24. u change display/entry units
    25. x extra functionality (experts only)
    26. Script
    27. I load disk layout from sfdisk script file
    28. O dump disk layout to sfdisk script file
    29. Save & Exit
    30. w write table to disk and exit
    31. q quit without saving changes
    32. Create a new label
    33. g create a new empty GPT partition table
    34. G create a new empty SGI (IRIX) partition table
    35. o create a new empty DOS partition table
    36. s create a new empty Sun partition table
    37. ………………省略部分输出信息………………

    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显示拓扑结构信息

     参考实例

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

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

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

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

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

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

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

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

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

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

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

    常用参数:

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

     参考实例

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

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

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

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

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

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

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

    1. [root@linuxcool ~]# hdparm -X /dev/sdb
    2. /dev/sdb:
    3. setting xfermode to 0 (default PIO mode)
    4. 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仅测试

     参考实例

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

    1. [root@linuxcool ~]# vgextend storage /dev/sdb
    2. 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二进制传输模式
    asciiascii 传送模式
    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上传文件

     参考实例

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

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

     下载指定网站中的文件:

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

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

    1. [root@linuxcool ~]# curl -I https://www.linuxcool.com
    2. % Total % Received % Xferd Average Speed Time Time Time Current
    3. Dload Upload Total Spent Left Speed
    4. 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
    5. HTTP/2 200
    6. server: Tengine
    7. content-type: text/html; charset=UTF-8
    8. vary: Accept-Encoding
    9. date: Wed, 04 May 2022 06:44:26 GMT
    10. vary: Accept-Encoding
    11. x-powered-by: PHP/7.4.11
    12. vary: Accept-Encoding, Cookie
    13. cache-control: max-age=3, must-revalidate
    14. ali-swift-global-savetime: 1651646666
    15. via: cache3.l2cn1802[235,234,200-0,M], cache17.l2cn1802[236,0], kunlun10.cn257[403,414,200-0,M], kunlun
    16. 2.cn257[417,0]
    17. x-cache: MISS TCP_REFRESH_MISS dirn:0:416601537
    18. x-swift-savetime: Wed, 04 May 2022 06:44:26 GMT
    19. x-swift-cachetime: 3
    20. timing-allow-origin: *
    21. 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显示指令执行过程

     参考实例

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

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

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

    1. [root@linuxcool ~]# fsck -f /dev/sdb
    2. fsck from util-linux 2.32.1
    3. e2fsck 1.44.3 (10-July-2018)
    4. Pass 1: Checking inodes, blocks, and sizes
    5. Pass 2: Checking directory structure
    6. Pass 3: Checking directory connectivity
    7. Pass 4: Checking reference counts
    8. Pass 5: Checking group summary information
    9. /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地址
    -C请求压缩所有数据
    -F<配置文件>指定ssh指令的配置文件,默认的配置文件为“/etc/ssh/ssh_config”
    -f后台执行ssh指令
    -g允许远程主机连接本机的转发端口
    -i<身份文件>指定身份文件(即私钥文件)
    -l<登录名>指定连接远程服务器的登录用户名
    -N不执行远程指令
    -o<选项>指定配置选项
    -p<端口>指定远程服务器上的端口
    -q静默模式,所有的警告和诊断信息被禁止输出
    -X开启X11转发功能
    -x关闭X11转发功能
    -y开启信任X11转发功能

     参考实例

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

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

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

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

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

    1. [root@linuxcool ~]# ssh 192.168.10.10 "free -m"
    2. root@192.168.10.10's password: 此处输入远程服务器管理员密码
    3. total used free shared buff/cache available
    4. Mem: 1966 1359 76 21 530 407
    5. 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地址,不通过域名服务器

     参考实例

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

    1. [root@linuxcool ~]# netstat -a
    2. Active Internet connections (servers and established)
    3. Proto Recv-Q Send-Q Local Address Foreign Address State
    4. tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN
    5. tcp 0 0 0.0.0.0:https 0.0.0.0:* LISTEN
    6. tcp 0 0 0.0.0.0:ms-wbt-server 0.0.0.0:* LISTEN

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

    1. [root@linuxcool ~]# netstat -nu
    2. Active Internet connections (w/o servers)
    3. Proto Recv-Q Send-Q Local Address Foreign Address State
    4. udp 0 0 172.19.226.238:68 172.19.239.253:67 ESTABLISHED

     显示系统网络状态中的UDP连接端口号使用信息:

    1. [root@linuxcool ~]# netstat -apu
    2. Active Internet connections (servers and established)
    3. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    4. udp 0 0 linuxcool:bootpc _gateway:bootps ESTABLISHED 1024/NetworkManager
    5. udp 0 0 localhost:323 0.0.0.0:* 875/chronyd
    6. udp6 0 0 localhost:323 [::]:* 875/chronyd

     显示网卡当前状态信息:

    1. [root@linuxcool~]# netstat -i
    2. Kernel Interface table
    3. Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
    4. eth0 1500 31945 0 0 0 39499 0 0 0 BMRU
    5. lo 65536 0 0 0 0 0 0 0 0 LRU

    显示网络路由表状态信息:

    1. [root@linuxcool ~]# netstat -r
    2. Kernel IP routing table
    3. Destination Gateway Genmask Flags MSS Window irtt Iface
    4. default _gateway 0.0.0.0 UG 0 0 0 eth0
    5. 172.19.224.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0

     找到某个服务所对应的连接信息:

    1. [root@linuxcool ~]# netstat -ap | grep ssh
    2. unix 2 [ ] STREAM CONNECTED 89121805 203890/sshd: root [
    3. unix 3 [ ] STREAM CONNECTED 27396 1754/sshd
    4. unix 3 [ ] STREAM CONNECTED 89120965 203890/sshd: root [
    5. unix 2 [ ] STREAM CONNECTED 89116510 203903/sshd: root@p
    6. unix 2 [ ] STREAM CONNECTED 89121803 203890/sshd: root [
    7. unix 2 [ ] STREAM CONNECTED 29959 1754/sshd
    8. unix 2 [ ] DGRAM 89111175 203890/sshd: root [
    9. 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

     释放系统中已获取的网卡参数:

    1. [root@linuxcool ~]# dhclient -r
    2. Killed old client process

     向指定的服务器请求获取网卡参数:

    [root@linuxcool ~]# dhclient -s 192.168.10.10

     手动停止执行dhclient服务进程:

    1. [root@linuxcool ~]# dhclient -x
    2. 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”组合键结束命令): 

    1. [root@linuxcool ~]# ping www.linuxcool.com
    2. PING www.linuxcool.com.w.kunlunar.com (222.85.26.229) 56(84) bytes of data.
    3. 64 bytes from www.linuxcool.com (222.85.26.229): icmp_seq=1 ttl=52 time=22.4 ms
    4. 64 bytes from www.linuxcool.com (222.85.26.229): icmp_seq=2 ttl=52 time=22.4 ms
    5. 64 bytes from www.linuxcool.com (222.85.26.229): icmp_seq=3 ttl=52 time=22.4 ms
    6. 64 bytes from www.linuxcool.com (222.85.26.229): icmp_seq=4 ttl=52 time=22.4 ms
    7. ^C
    8. --- www.linuxcool.com.w.kunlunar.com ping statistics ---
    9. 5 packets transmitted, 5 received, 0% packet loss, time 4005ms
    10. rtt min/avg/max/mdev = 22.379/22.389/22.400/0.094 ms

    测试与指定网站服务器之间的网络连通性,发送请求包限定为4次:

    1. [root@linuxcool ~]# ping -c 4 www.linuxcool.com
    2. PING www.linuxcool.com (222.85.26.234) 56(84) bytes of data.
    3. 64 bytes from www.linuxcool.com (222.85.26.234): icmp_seq=1 ttl=52 time=24.7 ms
    4. 64 bytes from www.linuxcool.com (222.85.26.234): icmp_seq=2 ttl=52 time=24.7 ms
    5. 64 bytes from www.linuxcool.com (222.85.26.234): icmp_seq=3 ttl=52 time=24.7 ms
    6. 64 bytes from www.linuxcool.com (222.85.26.234): icmp_seq=4 ttl=52 time=24.7 ms
    7. --- www.linuxcool.com.w.kunlunar.com ping statistics ---
    8. 4 packets transmitted, 4 received, 0% packet loss, time 3005ms
    9. rtt min/avg/max/mdev = 24.658/24.664/24.673/0.111 ms

     测试与指定主机之间的网络连通性,发送3次请求包,每次间隔0.2秒,最长等待时间为3秒:

    1. [root@linuxcool ~]# ping -c 3 -i 0.2 -W 3 192.168.10.10
    2. 64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.166 ms
    3. 64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.060 ms
    4. 64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.113 ms
    5. --- 192.168.10.10 ping statistics ---
    6. 3 packets transmitted, 3 received, 0% packet loss, time 410ms
    7. 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地址

     参考实例

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

    1. [root@linuxcool ~]# ifconfig
    2. ens160: flags=4163 mtu 1500
    3. inet 192.168.10.30 netmask 255.255.255.0 broadcast 192.168.10.255
    4. inet6 fe80::4d16:980c:e0fe:51c2 prefixlen 64 scopeid 0x20
    5. ether 00:0c:29:60:cd:ee txqueuelen 1000 (Ethernet)
    6. RX packets 407 bytes 34581 (33.7 KiB)
    7. RX errors 0 dropped 0 overruns 0 frame 0
    8. TX packets 59 bytes 6324 (6.1 KiB)
    9. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    10. ………………省略部分输出信息………………

     对指定的网卡设备依次进行关闭和启动操作:

    1. [root@linuxcool ~]# ifconfig ens160 down
    2. [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协议关闭和开启操作:

    1. [root@linuxcool ~]# ifconfig ens160 -arp
    2. [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命令进行过滤): 

    1. [root@linuxcool ~]# mount
    2. sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
    3. proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
    4. devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=99130k,nr_inodes=27835,mode=755)
    5. securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
    6. ………………省略部分输出信息………………

     挂载/etc/fstab文件中所有已定义的设备文件:

    [root@linuxcool ~]# mount -a

     将光盘设备挂载到指定目录:

    1. [root@linuxcool ~]# mount /dev/cdrom /media/cdrom
    2. 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总线设备信息: 

    1. [root@linuxcool ~]# lspci
    2. 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
    3. 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
    4. 00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
    5. 00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
    6. 00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
    7. 00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)
    8. ………………省略部分输出信息………………

     以树状结构显示当前主机的所有PCI总线设备信息:

    1. [root@linuxcool ~]# lspci -t
    2. -[0000:00]-+-00.0
    3. +-01.0-[01]--
    4. +-07.0
    5. +-07.1
    6. +-07.3
    7. +-07.7
    8. +-0f.0
    9. +-11.0-[02]----00.0
    10. +-15.0-[03]----00.0
    11. +-15.1-[04]--
    12. ………………省略部分输出信息………………

     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处理器得电压和温度信息 

    1. [root@linuxcool ~]# sensors
    2. coretemp-isa-0000
    3. Core 0: +48.0°C (high = +87.0°C, crit = +97.0°C)
    4. Core 1: +46.0°C (high = +87.0°C, crit = +97.0°C)
    5. Core 2: +47.0°C (high = +87.0°C, crit = +97.0°C)
    6. 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灯亮和灯灭:

    1. [root@linuxcool ~]# setleds +num
    2. [root@linuxcool ~]# setleds -num

     控制键盘的大小写键打开或关闭,键盘指示灯亮与灭:

    1. [root@linuxcool ~]# setleds +caps
    2. [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格式压缩包文件:

    1. [root@linuxcool ~]# zip -r backup1.zip /etc
    2. adding: etc/fstab (deflated 45%)
    3. adding: etc/crypttab (stored 0%)
    4. adding: etc/resolv.conf (stored 0%)
    5. adding: etc/dnf/ (stored 0%)
    6. adding: etc/dnf/modules.d/ (stored 0%)
    7. adding: etc/dnf/modules.d/container-tools.module (deflated 17%)
    8. adding: etc/dnf/modules.d/llvm-toolset.module (deflated 14%)
    9. ………………省略部分输出信息………………

     将当前工作目录内所有以.cfg为后缀的文件打包:

    1. [root@linuxcool ~]# zip -r backup2.zip *.cfg
    2. adding: anaconda-ks.cfg (deflated 44%)
    3. adding: initial-setup-ks.cfg (deflated 44%)

     更新压缩包文件中某个文件:

    1. [root@linuxcool ~]# zip -dv backup2.zip anaconda-ks.cfg
    2. 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不处理压缩文件中原有的目录路径

    参考实例 

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

    1. [root@linuxcool ~]# unzip latest.zip
    2. Archive: latest.zip
    3. creating: wordpress/
    4. inflating: wordpress/xmlrpc.php
    5. inflating: wordpress/wp-blog-header.php
    6. inflating: wordpress/readme.html
    7. inflating: wordpress/wp-signup.php
    8. inflating: wordpress/index.php
    9. ………………省略部分输出信息………………

     将压缩包文件解压到指定的目录中:

    1. [root@linuxcool ~]# unzip latest.zip -d /home
    2. Archive: latest.zip
    3. creating: /home/wordpress/
    4. inflating: /home/wordpress/xmlrpc.php
    5. inflating: /home/wordpress/wp-blog-header.php
    6. inflating: /home/wordpress/readme.html
    7. inflating: /home/wordpress/wp-signup.php
    8. inflating: /home/wordpress/index.php
    9. ………………省略部分输出信息………………

     测试压缩包文件是否完整,文件有无损坏:

    1. [root@linuxcool ~]# unzip -t latest.zip
    2. Archive: latest.zip
    3. testing: wordpress/ OK
    4. testing: wordpress/xmlrpc.php OK
    5. testing: wordpress/wp-blog-header.php OK
    6. testing: wordpress/readme.html OK
    7. testing: wordpress/wp-signup.php OK
    8. testing: wordpress/index.php OK
    9. ………………省略部分输出信息………………

    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

     解压指定的压缩包文件,并显示解压过程。解压后的文件会保存在当前工作目录下,压缩包会被自动删除:

    1. [root@linuxcool ~]# gzip -dv anaconda-ks.cfg.gz
    2. anaconda-ks.cfg.gz: 44.3% -- replaced with anaconda-ks.cfg

    将指定的文件进行压缩,但是不删除原文件:

    [root@linuxcool ~]# gzip -k initial-setup-ks.cfg

    显示指定文件的压缩信息:

    1. [root@linuxcool ~]# gzip -l initial-setup-ks.cfg.gz
    2. compressed uncompressed ratio uncompressed_name
    3. 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将注释显示出来

     参考实例

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

    1. [root@linuxcool ~]# zipinfo file.zip
    2. Archive: file.zip
    3. Zip file size: 1937 bytes, number of entries: 2
    4. -rw------- 3.0 unx 1256 tx defN 21-Dec-14 08:42 anaconda-ks.cfg
    5. -rw-r--r-- 3.0 unx 1585 tx defN 21-Dec-14 08:43 initial-setup-ks.cfg
    6. 2 files, 2841 bytes uncompressed, 1589 bytes compressed: 44.1%

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

    1. [root@linuxcool ~]# zipinfo -v file.zip
    2. Archive: file.zip
    3. There is no zipfile comment.
    4. End-of-central-directory record:
    5. -------------------------------
    6. Zip archive file size: 1937 (0000000000000791h)
    7. Actual end-cent-dir record offset: 1915 (000000000000077Bh)
    8. Expected end-cent-dir record offset: 1915 (000000000000077Bh)
    9. (based on the length of the central directory and its expected offset)
    10. This zipfile constitutes the sole disk of a single-part archive; its
    11. central directory contains 2 entries.
    12. The central directory is 175 (00000000000000AFh) bytes long,
    13. and its (expected) offset in bytes from the beginning of the zipfile
    14. is 1740 (00000000000006CCh).
    15. ………………省略部分输出信息………………

     仅显示压缩包内文件大小及数目信息:

    1. [root@linuxcool ~]# zipinfo -h file.zip
    2. Archive: file.zip
    3. Zip file size: 1937 bytes, number of entries: 2

     仅显示压缩包内文件最后修改时间及简要属性信息:

    1. [root@linuxcool ~]# zipinfo -T file.zip
    2. Archive: file.zip
    3. Zip file size: 1937 bytes, number of entries: 2
    4. -rw------- 3.0 unx 1256 tx defN 20211214.084220 anaconda-ks.cfg
    5. -rw-r--r-- 3.0 unx 1585 tx defN 20211214.084343 initial-setup-ks.cfg
    6. 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显示哈希表中命令的完整路径

    参考实例

    显示哈希表中的命令: 

    1. [root@linuxcool ~]# hash -l
    2. builtin hash -p /usr/sbin/ifconfig ifconfig
    3. builtin hash -p /usr/bin/cat cat
    4. builtin hash -p /usr/bin/pidof pidof

     删除哈希表中的命令:

    [root@linuxcool ~]# hash -r 

     向哈希表中添加命令:

    [root@linuxcool ~]# hash -p /usr/sbin/adduser myadduser 

     在哈希表中清除记录:

    1. [root@linuxcool ~]# hash -d
    2. hits command
    3. 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环境信息

    参考实例

    计算得出指定的浮点数乘法结果: 

    1. [root@linuxcool ~]# bc
    2. 1.2345*3
    3. 3.7035

     设定计算精度为小数点后3位,取浮点数除法结果:

    1. [root@linuxcool ~]# bc
    2. scale=3
    3. 3/8
    4. .375

     分别计算整数的平方与平方根结果:

    1. [root@linuxcool ~]# bc
    2. 10^10
    3. 10000000000
    4. sqrt(100)
    5. 10.000

     9.4、history命令 – 显示与管理历史命令记录

    history命令来自于英文单词历史,其功能是用于显示与管理历史命令记录。Linux系统默认会记录用户所执行过的所有命令,可以使用history命令查阅它们,也可以对其记录进行修改和删除操作。 

    语法格式: history [参数]

    常用参数:

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

     参考实例

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

    1. [root@linuxcool ~]# history
    2. 1 vim /etc/sysconfig/network-scripts/ifcfg-ens160
    3. 2 reboot
    4. 3 vim /etc/sysconfig/network-scripts/ifcfg-ens160
    5. 4 vim /etc/yum.repos.d/rhel.repo
    6. 5 mkdir /media/cdrom
    7. 6 vim /etc/fstab
    8. 7 reboot
    9. 8 ping 192.168.10.10
    10. 9 dnf install httpd
    11. 10 exit
    12. ………………省略部分输出信息………………

     显示执行过的最近5条命令:

    1. [root@linuxcool ~]# history 5
    2. 11 exit
    3. 12 ifconfig
    4. 13 vim /etc/hostname
    5. 14 reboot
    6. 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=<速率>限制下载速度

     参考实例

    下载指定的网络文件: 

    1. [root@linuxprobe ~]# wget https://www.linuxprobe.com/docs/LinuxProbe.pdf
    2. --2022-05-11 18:36:42-- https://www.linuxprobe.com/docs/LinuxProbe.pdf
    3. Resolving www.linuxprobe.com (www.linuxprobe.com)... 58.218.215.124
    4. Connecting to www.linuxprobe.com (www.linuxprobe.com)|58.218.215.124|:443... connected.
    5. HTTP request sent, awaiting response... 200 OK
    6. Length: 17676281 (17M) [application/pdf]
    7. Saving to: ‘LinuxProbe.pdf’
    8. LinuxProbe.pdf 100%[=================================>] 16.86M 30.0MB/s in 0.6s
    9. 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

     下载指定的网络文件,将任务放至后台执行:

    1. [root@linuxcool ~]# wget -b https://www.linuxprobe.com/docs/LinuxProbe.pdf
    2. Continuing in background, pid 237616.
    3. 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, 原文件会被删除:

    1. [root@linuxcool ~]$ xz test.txt
    2. [root@linuxcool ~]$ ls test.txt*
    3. test.txt.xz

     解压 test.txt.xz 文件,并使用参数 -k 保持原文件不被删除:

    1. [root@linuxcool ~]$ xz -d -k test.txt.xz
    2. [root@linuxcool ~]$ ls test.txt*
    3. 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服务器端口
    -aredis密码
    -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命令执行情况:

    1. [root@linuxcool ~]# whatis ls
    2. ls (1) - list directory contents
    3. ls (1p) - list directory contents

    cp命令执行情况:

    1. [root@linuxcool ~]# whatis cp
    2. cp (1) - copy files and directories
    3. cp (1p) - copy files

    chown命令执行情况:

    1. [root@linuxcool ~]# whatis chown
    2. chown (1) - change file owner and group
    3. chown (1p) - change the file ownership
    4. chown (2) - change ownership of a file
    5. chown (3p) - change owner and group of a file

    man命令执行情况:

    1. [root@linuxcool ~]# whatis man
    2. man (1) - format and display the on-line manual pages
    3. man (1p) - display system documentation
    4. man (7) - macros to format man pages
    5. man (rpm) - A set of documentation tools: man, apropos and whatis.
    6. man-pages (rpm) - Man (manual) pages from the Linux Documentation Project.
    7. man.config [man] (5) - configuration data for man

    10.6、ifplugstatus命令 – 检查网线是否已插到在网络接口

    ifplugstatus命令可以查看所有网络接口的状态,或是指定网络接口的状态。

    这个命令Ubuntu没有预装,通过下面的命令来安装
    sudo apt-get install ifplugd。

    语法格式:ifplugstatus

    参考实例 

    显示接口状态:

    1. [root@linuxcool ~]# ifplugstatus
    2. lo:link beat detected
    3. wlan0:link beat detected
    4. eth0:unplugged

    10.7、chronyc命令 – 设置时间与时钟服务器同步

    chronyc命令来自于英文词组“chrony command-line”的缩写,其功能是用于设置时间与时钟服务器的同步工作。chrony是一个用于保持系统时间与NTP时钟服务器同步的服务,常见的是chronyd是其守护进程的名称,而chronyc命令则是用户的配置工具。

    语法格式:chronyc [参数]

    常用参数:

    sources时间同步源
    sourcestats时间同步源状态
    -v详细信息模式

    参考实例

    查看当前系统的时间同步源信息:

    1. [root@linuxcool ~]# chronyc sources -v
    2. .-- Source mode '^' = server, '=' = peer, '#' = local clock.
    3. / .- Source state '*' = current best, '+' = combined, '-' = not combined,
    4. | / 'x' = may be in error, '~' = too variable, '?' = unusable.
    5. || .- xxxx [ yyyy ] +/- zzzz
    6. || Reachability register (octal) -. | xxxx = adjusted offset,
    7. || Log2(Polling interval) --. | | yyyy = measured offset,
    8. || \ | | zzzz = estimated error.
    9. || | | \
    10. MS Name/IP address Stratum Poll Reach LastRx Last sample
    11. ===============================================================================
    12. ^- 120.25.115.20 2 10 337 31m -78us[ -49us] +/- 17ms
    13. ^? 10.143.33.49 0 10 0 - +0ns[ +0ns] +/- 0ns
    14. ^* 100.100.3.1 2 10 377 671 -128us[ -124us] +/- 3286us
    15. ^+ 100.100.3.2 2 10 377 535 +1377us[+1377us] +/- 4689us
    16. ^+ 100.100.3.3 2 10 175 25m +151us[ +155us] +/- 4858us
    17. ^- 203.107.6.88 2 10 377 192 -2029us[-2029us] +/- 16ms
    18. ^? 10.143.33.50 0 10 0 - +0ns[ +0ns] +/- 0ns
    19. ^? 10.143.33.51 0 10 0 - +0ns[ +0ns] +/- 0ns
    20. ^? 10.143.0.44 0 10 0 - +0ns[ +0ns] +/- 0ns
    21. ^? 10.143.0.45 0 10 0 - +0ns[ +0ns] +/- 0ns
    22. ^? 10.143.0.46 0 10 0 - +0ns[ +0ns] +/- 0ns
    23. ^+ 100.100.5.1 2 10 377 388 +111us[ +111us] +/- 4041us
    24. ^+ 100.100.5.2 2 10 377 732 +1110us[+1114us] +/- 5489us
    25. ^+ 100.100.5.3 2 10 377 629 -638us[ -638us] +/- 4120us

     查看当前系统的时间同步源状态信息:

    1. [root@linuxcool ~]# chronyc sourcestats
    2. Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
    3. ==============================================================================
    4. 120.25.115.20 59 31 18h -0.011 0.019 -536us 875us
    5. 10.143.33.49 0 0 0 +0.000 2000.000 +0ns 4000ms
    6. 100.100.3.1 64 36 18h +0.000 0.012 +65us 493us
    7. 100.100.3.2 64 33 18h -0.004 0.011 -189us 498us
    8. 100.100.3.3 42 22 17h +0.006 0.015 +150us 471us
    9. 203.107.6.88 64 40 18h -0.005 0.034 -79us 1467us
    10. 10.143.33.50 0 0 0 +0.000 2000.000 +0ns 4000ms
    11. 10.143.33.51 0 0 0 +0.000 2000.000 +0ns 4000ms
    12. 10.143.0.44 0 0 0 +0.000 2000.000 +0ns 4000ms
    13. 10.143.0.45 0 0 0 +0.000 2000.000 +0ns 4000ms
    14. 10.143.0.46 0 0 0 +0.000 2000.000 +0ns 4000ms
    15. 100.100.5.1 42 24 11h +0.014 0.017 +344us 378us
    16. 100.100.5.2 64 37 18h -0.000 0.009 -221us 367us
    17. 100.100.5.3 64 28 18h -0.003 0.010 -131us 430us

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

  • 相关阅读:
    base系列编码
    MSF入门
    汽车变排量空调压缩机电磁阀故障诊断
    Netty 网络传输TCP粘包拆包
    yolov5训练步骤及安全帽检测
    L1-101 别再来这么多猫娘了!(2024PTA天梯赛)
    智能网关在校园能耗监测系统中的应用介绍
    vue实现自定义指令和指令的周期
    pytorch-10.卷积神经网络
    Spring 事务
  • 原文地址:https://blog.csdn.net/m0_58719994/article/details/125877286