Linux系统管理

用户与组管理

用户管理命令

# 用户创建
useradd [选项] 用户名
useradd -m -s /bin/bash username    # 创建用户并创建家目录,指定shell
useradd -G sudo,docker username      # 创建用户并加入多个附加组
 
# 用户修改
usermod [选项] 用户名
usermod -aG wheel username           # 将用户添加到wheel组
usermod -l newname oldname           # 修改用户名
usermod -L username                  # 锁定用户
usermod -U username                  # 解锁用户
 
# 用户删除
userdel username                     # 删除用户(保留家目录)
userdel -r username                  # 删除用户及家目录
 
# 查看用户信息
id username                          # 显示用户UID、GID和所属组
finger username                      # 显示用户详细信息

用户配置文件

文件说明
/etc/passwd用户账户信息(用户名、UID、家目录、Shell等)
/etc/shadow用户密码信息(加密密码、密码策略等)
/etc/group组账户信息
/etc/gshadow组密码信息

组管理命令

# 创建组
groupadd groupname
groupadd -g 1001 groupname          # 指定GID
 
# 修改组
groupmod -n newname oldname          # 修改组名
groupmod -g 1002 groupname           # 修改GID
 
# 删除组
groupdel groupname
 
# 管理组成员
gpasswd -a user groupname            # 添加用户到组
gpasswd -d user groupname            # 从组中移除用户
gpasswd -M user1,user2 groupname     # 设置组成员列表

密码管理

# 修改密码
passwd username                      # 修改用户密码
passwd -l username                   # 锁定用户密码
passwd -u username                   # 解锁用户密码
passwd -e username                   # 强制用户下次登录修改密码
 
# 密码策略设置
chage -l username                    # 查看密码策略
chage -M 90 username                 # 设置密码最大有效期90天
chage -m 7 username                  # 设置密码最小使用天数
chage -W 7 username                  # 设置密码过期前警告天数
chage -I 30 username                 # 设置密码过期后账户锁定天数

服务管理(systemd)

systemctl基本命令

# 服务控制
systemctl start service              # 启动服务
systemctl stop service               # 停止服务
systemctl restart service            # 重启服务
systemctl reload service             # 重载配置(不中断服务)
systemctl status service             # 查看服务状态
 
# 开机自启管理
systemctl enable service             # 设置开机自启
systemctl disable service            # 取消开机自启
systemctl is-enabled service         # 查看是否开机自启
 
# 服务状态检查
systemctl is-active service          # 检查服务是否运行
systemctl is-failed service          # 检查服务是否失败
systemctl list-units --type=service  # 列出所有服务
systemctl list-unit-files --type=service  # 列出所有服务文件

服务配置文件

# 服务单元文件位置
/etc/systemd/system/                 # 系统管理员创建的服务
/lib/systemd/system/                 # 软件包安装的服务
/usr/lib/systemd/system/             # 同上
 
# 重载systemd配置
systemctl daemon-reload              # 重新加载所有单元文件

自定义服务示例

# /etc/systemd/system/myapp.service
[Unit]
Description=My Application Service
After=network.target
Wants=network-online.target
 
[Service]
Type=simple
User=myapp
Group=myapp
WorkingDirectory=/opt/myapp
ExecStart=/opt/myapp/bin/myapp
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5s
 
[Install]
WantedBy=multi-user.target

系统信息查看

主机信息

# 主机名管理
hostname                             # 查看主机名
hostnamectl set-hostname new-name    # 设置主机名
hostnamectl status                   # 查看主机信息
 
# 系统信息
uname -a                             # 显示所有系统信息
uname -r                             # 显示内核版本
uname -m                             # 显示系统架构
 
# 发行版信息
cat /etc/os-release                  # LSB发行版信息
lsb_release -a                       # 发行版详细信息
cat /etc/issue                       # 系统版本信息

系统运行时间

uptime                               # 系统运行时间和负载
who -b                               # 系统最后启动时间
last reboot                          # 重启历史

硬件信息

# CPU信息
lscpu                                # CPU详细信息
cat /proc/cpuinfo                    # CPU详细信息
nproc                                # CPU核心数
 
# 内存信息
free -h                              # 内存使用情况
cat /proc/meminfo                    # 内存详细信息
 
# 磁盘信息
lsblk                                # 块设备列表
fdisk -l                             # 磁盘分区信息
df -h                                # 文件系统使用情况

系统时间管理

时间查看与设置

# 查看时间
date                                 # 显示当前时间
date +"%Y-%m-%d %H:%M:%S"           # 格式化输出
timedatectl                          # 查看时间和时区设置
 
# 设置时间
date -s "2026-04-20 10:30:00"        # 设置系统时间
timedatectl set-time "2026-04-20 10:30:00"
 
# 时区管理
timedatectl list-timezones           # 列出所有时区
timedatectl set-timezone Asia/Shanghai  # 设置时区
 
# NTP时间同步
timedatectl set-ntp true             # 启用NTP同步

硬件时钟

hwclock --show                       # 显示硬件时钟
hwclock --systohc                    # 将系统时间写入硬件时钟
hwclock --hctosys                    # 将硬件时钟写入系统时间

系统日志管理

journalctl日志查看

# 基本用法
journalctl                           # 查看所有日志
journalctl -f                        # 实时跟踪日志
journalctl -n 100                    # 显示最近100条日志
journalctl --since "2026-04-01"      # 指定时间范围
journalctl --until "2026-04-20"
 
# 按服务过滤
journalctl -u nginx                  # 查看nginx服务日志
journalctl -u sshd --since today
 
# 按优先级过滤
journalctl -p err                    # 错误级别及以上
journalctl -p warning                # 警告级别及以上
 
# 内核日志
journalctl -k                        # 内核日志

传统日志文件

# 系统日志位置
/var/log/messages                    # 主系统日志(RHEL/CentOS)
/var/log/syslog                      # 系统日志(Debian/Ubuntu)
/var/log/auth.log                    # 认证日志
/var/log/kern.log                    # 内核日志
/var/log/dmesg                       # 启动日志
 
# 日志查看工具
tail -f /var/log/syslog              # 实时查看日志
grep "error" /var/log/messages       # 搜索错误日志

系统更新与软件包管理

APT(Debian/Ubuntu)

# 更新软件源
sudo apt update
 
# 升级软件包
sudo apt upgrade                     # 升级已安装的包
sudo apt full-upgrade                # 完整升级(可能删除包)
 
# 安装/删除软件
sudo apt install package
sudo apt remove package              # 删除软件(保留配置)
sudo apt purge package               # 完全删除
 
# 搜索软件
apt search keyword
apt show package                     # 显示软件包信息
 
# 清理缓存
sudo apt autoremove                  # 删除不需要的依赖
sudo apt clean                       # 清理下载缓存

DNF/YUM(RHEL/CentOS/Fedora)

# 更新系统
sudo dnf update                      # 更新所有软件包
 
# 安装/删除软件
sudo dnf install package
sudo dnf remove package
 
# 搜索软件
dnf search keyword
dnf info package
 
# 软件组管理
dnf group list                       # 列出软件组
dnf group install "Development Tools"
 
# 清理缓存
sudo dnf clean all

💡 系统管理建议:

  • 定期更新系统和软件包
  • 合理设置用户权限和密码策略
  • 使用systemd管理服务,避免使用init.d
  • 定期检查系统日志,及时发现异常

🔗 相关笔记: 02.01_帮助 02.07_进程管理 06.01_系统安全