学习linux必会的命令行
2022-01-07目录说明
/bin:(命令)
bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot:(核心文件)
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :(设备)
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:(配置)
这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:(用户)
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:(库)
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:(丢失数据)
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:(媒体设备)
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:(挂载别的系统)
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt:(安装软件)
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:(根目录)
该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv:
该目录存放一些服务启动之后需要提取的数据。
/sys:
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:
这个目录是用来存放一些临时文件的。
/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin:
系统用户使用的应用程序。
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:
内核源代码默认的放置目录。
/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
1、系统服务管理
1.1、systemctl
Linux 服务管理两种方式service和systemctl
systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。systemd对应的进程管理命令是systemctl,systemctl命令兼容了service。
systemctl 提供了一组子命令来管理单个的 unit,其命令格式为:
systemctl [command] [unit]
command 主要有:
start:立刻启动后面接的 unit。
stop:立刻关闭后面接的 unit。
restart:立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。
reload:不关闭 unit 的情况下,重新载入配置文件,让设置生效。
enable:设置下次开机时,后面接的 unit 会被启动。
disable:设置下次开机时,后面接的 unit 不会被启动。
status:目前后面接的这个 unit 的状态,会列出有没有正在执行、开机时是否启动等信息。
is-active:目前有没有正在运行中。
is-enable:开机时有没有默认要启用这个 unit。
kill :不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程发送信号。
show:列出 unit 的配置。
mask:注销 unit,注销后你就无法启动这个 unit 了。
unmask:取消对 unit 的注销。
输出系统中各个服务的状态:
systemctl list-units --type=service
输出系统中各个服务的状态
查看服务的运行状态:
systemctl status firewalld
关闭服务:
systemctl stop firewalld
启动服务:
systemctl start firewalld
重新启动服务(不管当前服务是启动还是关闭):
systemctl restart firewalld
重新载入配置信息而不中断服务:
systemctl reload firewalld
禁止服务开机自启动:
systemctl disable firewalld
设置服务开机自启动:
systemctl enable firewalld
2、文件管理
2.1、ls
Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。
语法:ls [-alrtAFR] [name...]
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有文件,则以下之文件亦皆依序列出
ls -l /
显示指定工作目录下之内容
2.2、pwd
pwd(英文全拼:print work directory) 命令用于显示工作目录。
执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。
2.3、cd
cd(英文全拼:change directory)命令用于切换当前工作目录。
cd [dirName]
其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。
另外,~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, .. 则表示目前目录位置的上一层目录。
cd /usr/local
2.4、date
date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记。
date '+%Y-%m-%d %H:%M:%S'
显示或设定系统的日期与时间
2.5、passwd
用于设置用户密码:
语法:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
必要参数:
-d 删除密码
-f 强迫用户下次登录时必须修改口令
-w 口令要到期提前警告的天数
-k 更新只能发送在过期之后
-l 停止账号使用
-S 显示密码信息
-u 启用已被停止的账户
-x 指定口令最长存活期
-g 修改群组密码
指定口令最短存活期
-i 口令过期后多少天停用账户
设置用户密码命令帮助
passwd yonghu
2.6、su
su(英文全拼:swith user)命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。改变用户身份(切换到超级用户)
语法:su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
事例:su -
2.7、clear
用于清除屏幕信息
2.8、man
显示指定命令的帮助信息:
man ls
2.9、who
who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。
查询系统处于什么运行级别:
who -r
显示目前登录到系统的用户:
who -buT
2.10、free
显示系统内存状态(单位MB),会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
语法:free [-bkmotV][-s <间隔秒数>]
事例:free -m
2.11、ps
ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
显示系统进程运行动态:
ps -ef
查看sshd进程的运行动态:
ps -ef | grep sshd
ps aux 显示所有进程[一般配合grep使用],下面列出aux内容代表的含义:
-a 所有进程
-u 进程所属用户
-x 没有终端控制的进程
例如:
ps aux | grep httpd 查看Apache进程,在这里说明一下,这样使用ps -aux(centos6中会报出一个提示,影响不大)当然也是可行的,不强求记住,linux里面大多数命令后面都接了“-”符号,centos7中使用是没多大区别的。
2.12、top
查看即时活跃的进程,top命令是Linux下常用的性能分析工具,能够实时显示Linux系统中各个进程的资源占用状况,类似于Windows系统的任务管理器功能。
top命令的语法格式:
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
常用参数说明
-d 秒数:指定top命令每隔几秒刷新,默认3秒。
-b:使用批处理模式输出,一般和“-n”选项合用。
-n次数:指定top命令执行的次数, 一般和“-b”选项合用。
例如:top -b -n 1 > top.log 定向输出到top.log文件中,可以看到更多的信息
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID,仅仅监控某个进程的状态。
q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程。
c 显示整个命令行而不只是显示命令名
2.13、mkdir
mkdir(英文全拼:make directory)命令用于创建目录。
语法:mkdir [-p] dirName
2.14、more
more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
如:用于文件过长时分页查看文件内容 每页10行查看core50test.out.log文件
more -c -10 /root/app_data/data/logs/core50test/core50test.out.log
2.15、cat
查看Linux启动日志文件,并标明行号:
cat -Ab /var/log/boot.log
2.16、touch
创建text.txt文件:
touch text.txt
2.17、rm
rm(英文全拼:remove)命令用于删除一个文件或者目录。
语法
rm [options] name...
参数:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
删除文件:
rm text.txt
强制删除某个目录及其子目录:
rm -rf testdir/
2.18、cp
将test1目录复制到test2目录
cp -r /mydata/test1 /mydata/test2
2.19、mv
移动或覆盖文件:
mv text.txt text2.txt
2.20、jobs [-l]
-l:显示工作的PID
注意:“+”最后一个放入后台的工作,“-”倒数第二个放入后台的工作。
将暂停的工作恢复到前台执行
%工作号:%号可以省略,注意工作号和PID的区别
工作号是指下图箭头所示的1,2数字:
fg %工作号
例如top命令执行
使用ctrl+z命令快捷键,放入后台暂停,使用fg命令恢复到前台
fg 1 将top命令恢复到前台
将暂停的工作恢复到后台执行[注意:top和vi命令是不可以的]
bg %工作号
注意:后台恢复执行的命令不能和前台有交互,否则不能恢复到后台执行
3、压缩与解压
3.1、tar
tar(英文全拼:tape archive )命令用于备份文件。tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
将/etc文件夹中的文件归档到文件etc.tar(并不会进行压缩):
tar -cvf /root/mydata/etc.tar /etc
用gzip压缩文件夹/etc中的文件到文件etc.tar.gz:
tar -zcvf /root/mydata/etc.tar.gz /etc
用bzip2压缩文件夹/etc到文件/etc.tar.bz2:
tar -jcvf /root/mydata/etc.tar.bz2 /etc
查看压缩结果
分页查看压缩包中内容(gzip):
tar -ztvf /root/mydata/etc.tar.gz |more -c -10
解压文件到当前目录(gzip):
tar -zxvf /root/mydata/etc.tar.gz
4、磁盘和网络管理
4.1、df
df(英文全拼:disk free) 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。
df -hT
4.2、du
du (英文全拼:disk usage)命令用于显示目录或文件的大小。du 会显示指定的目录或文件所占用的磁盘空间。
du -h --max-depth=1 ./*
4.3、ifconfig
显示当前网络接口状态
4.4、netstat
netstat 命令用于显示网络状态。利用 netstat 指令可让你得知整个 Linux 系统的网络情况。
查看当前路由信息:
netstat -rn
查看所有有效TCP连接:
netstat -an
查看系统中启动的监听服务:
netstat -tulnp
查看处于连接状态的系统资源信息:
netstat -atunp
4.5、wget
wget是Linux中的一个下载文件的工具,wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上。
对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。
如果不能使用,请先安装wget
yum install -y wget
查看帮助手册
wget --help
a、使用 wget 下载单个文件
以下的例子是从网络下载一个文件并保存在当前目录
在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。
wget http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
b、使用 wget -O 下载并以不同的文件名保存
wget -O wordpress.tar.gz http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
c、使用 wget -c 断点续传
对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件
wget -c https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
d、使用 wget -b 后台下载
对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载
[root@network test]# wget -b https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
你可以使用以下命令来察看下载进度
tail -f wget-log
5、软件的安装与管理
5.1、rpm
rpm(英文全拼:redhat package manager) 命令用于管理套件。 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。
安装软件包:rpm -ivh nginx-1.12.2-2.el7.x86_64.rpm
模糊搜索软件包:rpm -qa | grep nginx
精确查找软件包:rpm -qa nginx
查询软件包的安装路径:rpm -ql nginx-1.12.2-2.el7.x86_64
查看软件包的概要信息:rpm -qi nginx-1.12.2-2.el7.x86_64
验证软件包内容和安装文件是否一致:rpm -V nginx-1.12.2-2.el7.x86_64
更新软件包:rpm -Uvh nginx-1.12.2-2.el7.x86_64
删除软件包:rpm -e nginx-1.12.2-2.el7.x86_64
用法: rpm [选项...]
-a:查询所有套件;
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合``"-l"``参数使用;
-d:只列出文本文件,本参数需配合``"-l"``参数使用;
-e<套件档>或--erase<套件档>:删除指定的套件;
-f<文件>+:查询拥有指定文件的套件;
-h或--``hash``:套件安装时列出标记;
-i:显示套件的相关信息;
-i<套件档>或--``install``<套件档>:安装指定的套件档;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合``"-l"``参数使用;
-U<套件档>或--upgrade<套件档>:升级指定的套件档;
-``v``:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错。
5.2、yum
yum(Yellow dog Updater Modified)是CentOS中属于RPM前端软件包管理器,能从指定的服务器中下载RPM包,并自动分析和处理RPM包之间的依赖关系,最后将依次所依赖的软件包都安装了,而无需繁琐的一个一个安装。
yum 语法
yum [options] [command] [package ...]
options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。
command:要进行的操作。
package:安装的包名
yum常用命令
安装软件包: yum install nginx
删除软件包命令:yum remove
检查可以更新的软件包:yum check-update
清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
更新指定的软件包:yum update nginx
在资源库中查找软件包信息:删除软件包命令:yum remove
image-20210119113801647
列出已经安装的所有软件包:yum info installed
列出软件包名称:yum list nginx*
模糊搜索软件包:yum search nginx
5.3 dnf
DNF 是新一代的rpm软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近,它取代了yum,正式成为 Fedora 22 的包管理器。
DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。
DNF 的最新稳定发行版版本号是 1.0,发行日期是2015年5月11日。 这一版本的额 DNF 包管理器(包括在他之前的所有版本) 都大部分采用 Python 编写,发行许可为GPL v2.
安装 DNF 包管理器:
1、为了安装 DNF ,您必须先安装并启用 epel-release 依赖。
yum install epel-release
2、使用 epel-release 依赖中的 YUM 命令来安装 DNF 包。在系统中执行以下命令:
yum install dnf
查看 DNF 包管理器版本
dnf –version
查看系统中可用的 DNF 软件库
dnf repolist
查看系统中可用和不可用的所有的 DNF 软件库
dnf repolist all
列出所有 RPM 包
dnf list
列出所有安装了的 RPM 包
dnf list installed
列出所有可供安装的 RPM 包
dnf list available
搜索软件库中的 RPM 包
dnf search nano
查找某一文件的提供者
dnf provides /bin/bash
查看软件包详情
dnf info nano
安装软件包
dnf install nano
升级软件包
dnf update systemd
检查系统软件包的更新
dnf check-update
升级所有系统软件包
dnf update 或 # dnf upgrade
删除软件包
dnf remove nano 或 # dnf erase nano
删除无用孤立的软件包
dnf autoremove
删除缓存的无用软件包
dnf clean all
获取有关某条命令的使用帮助
dnf help clean
查看所有的 DNF 命令及其用途
dnf help
查看 DNF 命令的执行历史
dnf history
查看所有的软件包组
dnf grouplist
安装一个软件包组
dnf groupinstall ‘Educational Software’
升级一个软件包组中的软件包
dnf groupupdate ‘Educational Software’
删除一个软件包组
dnf groupremove ‘Educational Software’
从特定的软件包库安装特定的软件
dnf –enablerepo=epel install phpmyadmin
更新软件包到最新的稳定发行版
dnf distro-sync
重新安装特定软件包
dnf reinstall nano
回滚某个特定软件的版本
dnf downgrade acpid
参考http://blog.rdiframework.net/article/247
vi/vim 的使用
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式。
查看端口占用 查看pid,可以用kill pid命令关掉进程
netstat -nap | grep 1234
防火墙(firewalld)
默认firewalld服务是关闭的
# systemctl status firewalld #查看状态
# service firewalld start #启动
# systemctl enable firewalld #开机启动
常用的firewalld服务命令 如下:
systemctl status firewalld # 查看firewalld服务状态
systemctl enable firewalld # 设置firewalld服务开机启动
systemctl disable firewalld # 禁止firewalld服务开机启动
service firewalld start # 开启
service firewalld restart # 重启
service firewalld stop # 关闭
2. 查看防火墙的状态
# firewall-cmd --state
可通过 firewall-cmd --help 查看帮助,常用的如下:
# 查看防火墙规则 注意:ssh的22端口默认开启,且不在该列表中
firewall-cmd --list-all
# 开放某个端口 如80
firewall-cmd --permanent --add-port=80/tcp
# 开放某个范围内的端口 如10000-11000
firewall-cmd --permanent --add-port=10000-11000/tcp
# 移除某个端口 如80
firewall-cmd --permanent --remove-port=80/tcp
# 移除某个范围内的端口 如10000-11000
firewall-cmd --permanent --remove-port=10000-11000/tcp
# 添加或移除端口 需重新加载才能生效
firewall-cmd --reload