1. 服务管理


1.1 service

  • 启动/停止服务

service 命令是最常用的服务管理工具之一,用于启动、停止、重启或检查服务的状态。

service [服务名] start|stop|restart|status
  • 查看已安装的服务

ls -l 命令结合 /etc/init.d/ 目录可以列出所有在系统中安装的服务脚本。这是一个快速检查服务是否已安装的方法。

ls -l /etc/init.d
  • 进入图形化管理界面
setup

在界面中使用Tab键进行按钮间的移动,使用[*]表示自启动。

1.2 chkconfig

  • 查看服务的运行级别和状态

chkconfig 可以显示所有服务的运行级别设置,或者只显示指定服务的设置。

chkconfig --list [服务名]
  • 设置服务的自启动状态

通过 chkconfig 命令,可以为不同的运行级别设置服务的自启动或禁用状态。

chkconfig --level [1-5] [服务名] on  # 启用自启动
chkconfig --level [1-5] [服务名] off # 禁用自启动

1.3 systemctl

在这里插入图片描述

  • 查看可用服务名

systemctl 可以列出所有在 /usr/lib/systemd/system/ 目录下的服务单元文件。

ls -l /usr/lib/systemd/system | grep [部分名]
  • 查看服务状态

systemctl 可以实时查看服务的当前状态。

systemctl status [服务名]
  • 启动/停止服务

systemctl 可以启动、停止、重启或重载服务。

systemctl start [服务名]
systemctl stop [服务名]
systemctl restart [服务名]
systemctl reload [服务名]
  • 设置自启动

systemctl 可以设置自启动,和开机不自启

systemctl enable [服务名]
systemctl disable [服务名]

1.4 firewalld

  • 打开端口

使用 firewall-cmd 命令可以永久地添加端口到防火墙。

firewall-cmd --permanent --add-port=[端口号]/[协议]
  • 关闭端口

同样,使用 firewall-cmd 命令可以永久地从防火墙中移除端口。

firewall-cmd --permanent --remove-port=[端口号]/[协议]
  • 重新加载配置,使改动生效

修改防火墙配置后,需要重新加载配置才能使改动生效。

firewall-cmd --reload
  • 查询端口是否开放

可以使用 firewall-cmd 命令来查询端口是否被防火墙允许。

firewall-cmd --query-port=[端口号]/[协议]
  • 连接端口测试

使用 telnet 或其他网络工具可以测试端口是否开放。

telnet [IP地址] [端口号]

1.5 Systemd

Systemd 是现代Linux系统中用于启动服务、管理系统和单元的一种系统和服务管理器。

在这里插入图片描述

  • 查看系统服务状态

    systemctl list-units --type=service 命令用于列出所有当前运行的服务或可能的服务单元。通过指定 --type=service,可以确保只显示与服务相关的单元。

    systemctl list-units --type=service
    

    这个命令对于检查系统服务的状态和配置非常有用。

2. 监控


2.1 动态监控进程

在这里插入图片描述

进程监控是确保Linux系统稳定运行的关键环节。

  • 使用 top 命令动态监控进程

top 命令是Linux系统中最常用的进程监控工具之一,它以实时方式显示系统的当前进程状态。

top
  • 交互操作
    在这里插入图片描述

top 命令提供了丰富的交互功能:

  • h:显示帮助信息。
  • k:结束一个进程。输入要结束的进程ID(PID),然后按回车确认。
  • u:切换到只显示用户特定的进程。
  • o:更改显示的列,例如CPU使用率、内存使用率等。
  • 1:显示所有进程的总CPU使用率。
  • 2:显示所有进程的内存使用情况。

2.2 监控网络

网络监控对于确保网络服务可用性和性能至关重要。

在这里插入图片描述

  • 使用 netstatss 命令监控网络连接

    netstatss 都是用于监控网络连接和端口状态的工具。

    • netstat

      netstat -tuln  # 显示所有监听的端口
      netstat -tunap | grep [端口号]  # 显示指定端口号的网络连接
      
    • ss

      ssnetstat 的一个替代品,它提供了更现代的接口和更多的功能。

      ss -tuln  # 显示所有监听的端口
      ss -tunap | grep [端口号]  # 显示指定端口号的网络连接
      
  • 其他网络监控工具

    • iftop:实时监控网络带宽使用情况。
    • nload:显示带宽使用情况,类似于 iftop
    • vnstat:记录网络流量统计信息。

3. RPM包管理


RPM(Red Hat Package Manager)是Linux系统中用于软件包管理和安装的标准格式。

3.1 查看

在这里插入图片描述

  • 查询所有已安装的包

    使用 rpm -qa 命令可以列出系统中所有已安装的软件包。通过管道和 grep 命令,可以过滤出包含特定名称的包。

    rpm -qa | grep [包名]
    
  • 查询特定软件包是否安装

    要检查特定软件包是否已安装,可以使用 rpm -q 命令。

    rpm -q [软件包名]
    

    如果软件包已安装,该命令将返回软件包的名称;如果没有安装,则返回空或错误信息。

  • 查询软件包信息

    rpm -qi 命令可以提供关于软件包的详细信息,包括版本、大小、提供者、安装日期等。

    rpm -qi [软件包名]
    

    这个命令对于了解软件包的完整信息非常有用。

  • 查询某个文件所属的软件包

    有时候,你可能想知道某个文件是由哪个软件包安装的。rpm -qf 命令可以帮助你找到答案。

    rpm -qf [文件路径]
    

    输入文件路径后,命令将返回包含该文件的软件包名称。

3.2 卸载

在这里插入图片描述

  • 卸载软件包

    要从系统中移除软件包,可以使用 rpm -e 命令。

    rpm -e [软件包名]
    

    在卸载之前,请确保该软件包不是其他软件包所依赖的。

3.3 安装

在这里插入图片描述

  • 安装软件包

    要安装一个RPM包,可以使用 rpm -ivh 命令。

    rpm -ivh [rpm包文件]
    

    i 表示安装,v 表示详细输出,h 表示显示进度条。

    注意事项

    • 在安装软件包之前,请确保它是来自可靠的来源,以避免安全风险。
    • 如果需要安装依赖项,RPM通常会自动处理,但有时候你可能需要手动安装某些依赖。
    • 在某些情况下,你可能需要使用 --nodeps 选项来忽略依赖检查。

4. yum包管理

Yum(Yellowdog Updater, Modified)是Linux系统中非常流行的包管理器,它简化了软件包的安装、更新和删除过程。

4.1 更换yum源

默认的yum源下载慢,且包的种类少,这个时候,我们可能需要一些国内的yum源

#备份
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

## 从阿里云下载 CentOS 7 的 yum 源配置文件并替换现有的配置
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

## 清理旧的缓存并生成新的缓存
sudo yum clean all
sudo yum makecache

4.2 更新yum

有时候为了安装我们想要的包的一些版本,我们可能需要更新yum

yum update

4.3 查询

查询命令用于查找系统中可用的软件包或搜索特定名称的软件包。

  • 查询所有包含“firebox”的软件包

    yum list | grep firebox
    

    这个命令会在所有可用的软件包中搜索包含“firebox”的条目。它会列出所有与“firebox”匹配的软件包及其版本信息。

4.4 安装

安装命令用于将软件包及其依赖项添加到系统中。

  • 安装名为“firebox”的软件包

    yum install firebox
    

    执行此命令后,yum将查找名为“firebox”的软件包,下载其依赖项,并安装到系统中。在安装过程中,yum将提示用户确认安装或回答一些问题,如选择软件包的版本。

4.5 yum的其他命令

  • 列出所有可用的软件包

    yum list
    

    这个命令会列出系统中所有可用的软件包及其版本。

  • 搜索软件包

    yum search firebox
    

    这个命令会搜索系统中所有与“firebox”相关的软件包,但不会安装它们。

  • 更新所有软件包

    yum update
    

    这个命令会更新系统中的所有软件包到最新版本。

  • 安装多个软件包

    yum install package1 package2 package3
    

    这个命令会一次性安装多个软件包。

  • 列出已安装的软件包

    yum list installed
    

    这个命令会列出系统中已安装的所有软件包。

  • 删除软件包

    yum remove package1 package2 package3
    

    这个命令会从系统中删除指定的软件包。

5. Linux启动管理


Linux系统的启动管理是系统维护和自动化任务的关键部分。

5.1 定时任务

定时任务允许用户在指定的时间自动执行命令或脚本。在Linux系统中,crontab 是管理定时任务的主要工具。

  • 编辑定时任务

    crontab -e 命令用于编辑当前用户的定时任务列表。

    crontab -e
    

    执行此命令后,会打开默认的文本编辑器(通常是 vinano),并展示当前用户的定时任务列表。以下是定时任务文件的基本格式:

    [分钟] [小时] [日] [月] [星期] [命令]
    
    • 分钟:从0到59的数字,指定了命令执行的时间点。
    • 小时:从0到23的数字,指定了命令执行的小时。
    • :从1到31的数字,指定了命令执行的日期。
    • :从1到12的数字,指定了命令执行的月份。
    • 星期:从0到7(0或7代表星期天),指定了命令执行星期几。
    • 命令:要执行的命令或脚本路径。

    示例

    0 5 * * * /usr/bin/myscript.sh  # 每天凌晨5点执行myscript.sh脚本
    

    交互操作

    • 保存并退出:在编辑器中修改完成后,保存文件并退出编辑器,定时任务将会更新。
    • 查看帮助:在编辑器中按 Ctrl + G 可以查看帮助信息。

5.2 其他定时任务管理命令

除了 crontab -e,还有一些其他命令可以帮助管理定时任务:

  • 列出定时任务

    crontab -l
    

    显示当前用户的定时任务列表。

  • 删除定时任务

    crontab -r
    

    删除当前用户的定时任务列表。

  • 查看定时任务

    crontab -l -v
    

    以可读的格式显示当前用户的定时任务列表。

通过使用定时任务,用户可以自动化许多重复性的任务,如备份、日志清理、系统维护等,从而提高工作效率和系统管理效率。

6. 网络管理


在这里插入图片描述
在这里插入图片描述

6.1 常用网络命令

  • 查看网络接口信息

    ip addr 命令可以显示所有网络接口的IP地址、子网掩码、广播地址等信息。

    ip addr
    
  • 修改主机名

    hostnamectl set-hostname "hostname" 命令用于更改系统的主机名。

    hostnamectl set-hostname "mynewhostname"
    

    更改主机名后,可能需要更新 /etc/hosts 文件以及重新启动网络服务。

  • 查看防火墙状态

    systemctl status firewalld 命令用于查看防火墙服务的当前状态。

    systemctl status firewalld
    

    如果防火墙服务正在运行,该命令将显示服务的活动状态。

  • 查看SELinux状态

    getenforce 命令用于查看SELinux(安全增强型Linux)的策略状态。

    getenforce
    

    返回值可以是 Enforcing(强制模式)或 Permissive(宽容模式),或者在某些系统上可能是 Disabled

6.2 网卡管理

  • 使用 NetworkManager 管理网络

    NetworkManager 是一个用于管理网络连接的库和工具,它简化了网络配置和连接管理。

    nmcli conn reload          # 重新加载连接
    nmcli conn down [连接名]  # 关闭连接
    nmcli conn up [连接名]    # 启动连接
    

    NetworkManager 提供了一个命令行界面 nmcli,可以用来管理网络连接。

  • 关闭 NetworkManager 服务

    如果需要手动管理网络接口,可以停止并禁用 NetworkManager 服务。

    systemctl stop NetworkManager
    systemctl disable NetworkManager
    

    关闭 NetworkManager 后,可以使用传统的网络配置文件来管理网络接口。

  • 重启网络服务

    重启网络服务可以重新加载网络配置或重启网络接口。

    systemctl restart network
    
  • 复制网卡配置文件

    当需要复制一个现有的网卡配置到另一个接口时,可以使用以下命令。

    cp -p /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-enp0s8
    

    -p 选项表示保留原始文件的权限和属性。

  • 修改网卡配置文件示例

    网卡配置文件通常位于 /etc/sysconfig/network-scripts/ 目录下,如:

    # 编辑 ifcfg-enp0s8 文件
    IPADDR=10.0.0.1
    PREFIX=30
    NM_CONTROLLED=no  # 禁用 NetworkManager 对此设备的管理
    ONBOOT=yes        # 启动时自动激活此接口