Linux基础
目录
本文基于 Red Hat Enterprise Linux 9.6 整理。Red Hat 官方发布信息显示,RHEL 9.6 的 GA 日期为 2025-05-20,随版本发布的内核为 5.14.0-570.12.1.el9_6。需要注意,系统安装后若执行过更新,实际运行内核可能高于这个版本,应以本机命令结果为准:
cat /etc/redhat-releaseuname -r一、学习 Linux 时先建立的框架
Linux 的基础学习可以按一条主线理解:系统如何识别用户,用户如何访问文件,程序如何变成进程,服务如何长期运行,系统如何联网、安装软件和传输数据。
| 模块 | 要解决的问题 | 常用命令 |
|---|---|---|
| 帮助手册 | 不记死命令,知道如何查 | man、whatis、--help |
| 文件系统 | 文件在哪里、如何管理 | ls、cp、mv、rm、find、ln |
| 用户管理 | 谁在操作系统 | useradd、usermod、passwd、su、sudo |
| 权限管理 | 谁能读、写、执行什么 | chmod、chown、setfacl、chattr |
| 进程管理 | 程序如何运行和停止 | ps、top、pgrep、kill |
| 服务管理 | 后台服务如何开关和自启 | systemctl、journalctl |
| 软件管理 | 软件从哪里安装和更新 | rpm、dnf |
| 网络管理 | 主机如何接入网络 | ip、nmcli、ping、ss |
| 文件传输 | 主机之间如何交换文件 | scp、rsync、tar |
在实验时,建议优先参考系统自带手册:
mandbwhatis commandcommand --helpman command二、Linux 文件系统与常用操作
1.目录结构
Linux 采用单根目录结构,所有路径都从 / 开始。
| 目录 | 作用 |
|---|---|
/ |
根目录,所有目录的起点 |
/boot |
内核、引导加载器相关文件 |
/etc |
系统和服务配置文件 |
/home |
普通用户家目录 |
/root |
root 用户家目录 |
/usr |
系统程序、库、文档等主要软件资源 |
/var |
经常变化的数据,如日志、缓存、邮件 |
/tmp |
临时文件目录 |
/dev |
设备文件 |
/proc |
内核和进程的虚拟文件系统 |
/run |
系统启动后生成的运行时数据 |
/mnt、/media |
临时挂载点 |
路径分为绝对路径和相对路径:
/etc/passwd # 绝对路径,从 / 开始../file # 相对路径,相对当前目录. # 当前目录.. # 上级目录~ # 当前用户家目录2.常用文件命令
pwd # 查看当前目录ls -lah # 查看文件列表和隐藏文件cd /etc # 切换目录mkdir -p dir/subdir # 创建多级目录touch file # 创建空文件或更新时间戳cp file newfile # 复制文件cp -a dir dir.bak # 归档方式复制目录,尽量保留属性mv old new # 移动或重命名rm -i file # 删除文件,交互确认rm -r dir # 删除目录file filename # 判断文件类型stat filename # 查看文件元数据du -sh dir # 查看目录占用空间df -h # 查看文件系统容量查找文件常用 find:
find /etc -name "*.conf"find /var/log -type f -size +100Mfind /home -user lehuang3.链接文件
Linux 中常见硬链接和软链接:
ln source hardlinkln -s source softlink| 类型 | 特点 |
|---|---|
| 硬链接 | 指向同一个 inode,不能跨文件系统,通常不能给目录创建 |
| 软链接 | 类似快捷方式,保存目标路径,可跨文件系统,可指向目录 |
三、用户与用户组管理
1.用户、用户组和 3A 机制
Linux 通过用户和用户组管理系统资源。用户解决“谁在操作”,用户组解决“如何批量授权”。
Linux 安全管理可用 3A 机制理解:
| 机制 | 含义 |
|---|---|
| Authentication | 身份认证,确认用户是谁 |
| Authorization | 授权,决定用户能做什么 |
| Accounting | 审计,记录用户做了什么 |
用户组有两类:
| 类型 | 说明 |
|---|---|
| 主组 | 用户创建后默认所属的组 |
| 附加组 | 为了获得额外权限而加入的其他组 |
2.UID 和 GID
Linux 内部通过 UID 和 GID 识别用户和用户组。
| UID 区间 | 类型 | 说明 |
|---|---|---|
| 0 | 超级用户 | root,拥有系统最高权限 |
| 1-999 | 系统用户 | 用于运行系统服务,通常不可交互登录 |
| 1000-65535 | 普通用户 | 日常登录和操作使用 |
不同发行版的区间可能略有差异,可以查看配置:
grep -E 'UID_MIN|UID_MAX|SYS_UID_MIN|SYS_UID_MAX' /etc/login.defsgrep -E 'GID_MIN|GID_MAX|SYS_GID_MIN|SYS_GID_MAX' /etc/login.defs3.用户相关配置文件
| 文件或目录 | 作用 |
|---|---|
/etc/passwd |
用户基本信息,所有用户可读 |
/etc/group |
用户组基本信息 |
/etc/shadow |
用户密码哈希和密码有效期,仅 root 可读 |
/etc/skel/ |
新用户家目录模板 |
/home/username |
普通用户家目录 |
/var/spool/mail/username |
用户本地邮件文件 |
/etc/passwd 一行有 7 列:
用户名:密码占位符:UID:GID:注释:家目录:默认Shell/etc/group 一行常见 4 列:
组名:密码占位符:GID:附加成员列表/etc/shadow 保存密码哈希和账号有效期,不应随意手工编辑。需要管理密码时优先使用 passwd 或 chage。
4.查看与切换用户
whoamiidid lehuangid -u lehuangid -g lehuangid -G lehuang
su username # 切换身份,不完整切换环境su - username # 切换身份并加载目标用户环境exit # 退出当前用户身份做用户切换时建议使用 su - username,使用完及时 exit,不要在同一个 Shell 中反复嵌套切换。
5.创建、修改和删除用户
useradd usernameuseradd -u 2000 -g groupname -G wheel -d /home/username -s /bin/bash username
userdel usernameuserdel -r username
groupadd groupnamegroupadd -g 3000 groupnamegroupdel groupname常用 usermod 参数:
usermod -l newname oldname # 修改用户名usermod -u 2001 username # 修改 UIDusermod -g group username # 修改主组usermod -G group1,group2 user # 重设附加组usermod -aG wheel username # 追加附加组usermod -d /new/home -m user # 修改并迁移家目录usermod -s /bin/bash username # 修改默认 Shellusermod -L username # 锁定用户usermod -U username # 解锁用户观察用户和组变化:
watch -n 1 "tail -n 3 /etc/passwd /etc/group; ls -l /home"6.密码和账号有效期
passwd username # 设置密码passwd -S username # 查看密码状态passwd -l username # 锁定密码认证passwd -u username # 解锁密码认证passwd -d username # 删除密码passwd -e username # 强制下次登录改密码
chage -l username # 查看账号密码周期chage -d 0 username # 强制下次登录改密码chage -m 1 username # 最短使用 1 天chage -M 40 username # 最长使用 40 天chage -W 7 username # 过期前 7 天警告chage -I 7 username # 过期后 7 天宽限chage -E 2026-01-01 username7.sudo 权限下放
普通用户默认不能执行系统管理命令。需要临时授权时使用 sudo,配置时应使用 visudo,因为它会做语法检查:
visudo示例:允许 lehuang 在本机以 root 身份免密执行 useradd 和 userdel:
lehuang localhost.localdomain=(root) NOPASSWD:/usr/sbin/useradd,/usr/sbin/userdel更常见的管理员授权方式是把用户加入 wheel 组:
usermod -aG wheel lehuang四、文件权限管理
1.普通权限 r、w、x
Linux 基础权限分为读、写、执行。
| 权限 | 对文件的含义 | 对目录的含义 |
|---|---|---|
r |
查看文件内容 | 列出目录中的文件名 |
w |
修改文件内容 | 在目录中创建、删除、重命名文件 |
x |
执行文件 | 进入目录、访问目录内对象 |
查看权限:
ls -l filels -ld dir权限示例:
-rw-r--r--. 1 root root 1997 Nov 30 14:48 /etc/passwddrwxr-xr-x. 136 root root 8192 Nov 30 21:14 /etc各字段含义:
| 字段 | 含义 |
|---|---|
| 第 1 位 | 文件类型,如 - 普通文件、d 目录、l 软链接 |
| 2-10 位 | 所有者、所属组、其他人的权限 |
. 或 + |
SELinux 上下文或 ACL 标记 |
| 链接数 | 文件硬链接数或目录子目录计数 |
| 所有者 | 文件属于哪个用户 |
| 所属组 | 文件属于哪个组 |
| 大小 | 文件内容大小或目录元数据大小 |
| 时间 | 最近修改时间 |
| 文件名 | 文件或目录名称 |
2.文件类型
| 符号 | 类型 |
|---|---|
- |
普通文件 |
d |
目录 |
l |
软链接 |
b |
块设备 |
c |
字符设备 |
s |
socket |
p |
管道 |
3.修改归属
chown username filechgrp groupname filechown username:groupname filechown -R username:groupname dirchown --reference=ref_file target_file4.修改权限
符号法:
chmod u+r filechmod g-w filechmod o= filechmod u=rwx,g=rx,o=rx script.shchmod -R u=rwX,g=rX,o=rX dir数字法:
| 权限 | 二进制 | 八进制 |
|---|---|---|
rwx |
111 | 7 |
rw- |
110 | 6 |
r-x |
101 | 5 |
r-- |
100 | 4 |
-wx |
011 | 3 |
-w- |
010 | 2 |
--x |
001 | 1 |
--- |
000 | 0 |
chmod 644 filechmod 755 dirchmod 700 private.sh目录通常需要 x 权限才能进入;只有 r 而没有 x 时,很多目录内容无法正常访问。
5.umask 默认权限
umask 表示系统创建文件或目录时默认保留掉的权限。
umaskumask 022常见默认值:
| umask | 新文件常见权限 | 新目录常见权限 |
|---|---|---|
022 |
644 |
755 |
002 |
664 |
775 |
077 |
600 |
700 |
永久修改通常放在 /etc/bashrc、/etc/profile 或用户自己的 Shell 配置文件中,修改后可用 source 立即加载:
source /etc/bashrcsource /etc/profile6.特殊权限
| 权限 | 数字 | 常见表现 | 作用 |
|---|---|---|---|
| SUID | 4xxx | 所有者执行位显示 s |
执行程序时临时获得文件所有者权限 |
| SGID | 2xxx | 所属组执行位显示 s |
对文件表示临时获得组权限;对目录表示新文件继承目录所属组 |
| Sticky Bit | 1xxx | 其他人执行位显示 t |
目录中文件只能由文件所有者、目录所有者或 root 删除 |
chmod u+s filechmod g+s dirchmod o+t dir
chmod 4755 filechmod 2775 shared_dirchmod 1777 /tmp_like_dirSUID 会放大权限,生产环境中应谨慎设置。常见的 Sticky Bit 示例是 /tmp。
7.ACL 权限列表
ACL 用于在传统 u/g/o 权限之外,对指定用户或组单独授权。
查看 ACL:
getfacl file设置 ACL:
setfacl -m u:lehuang:rw filesetfacl -m g:dev:rwx dirsetfacl -x u:lehuang filesetfacl -b file目录默认 ACL:
setfacl -m d:u:lehuang:rwx /mnt/pubACL 中的 mask 是指定用户和指定组能获得的最大权限阈值。若发现 ACL 明明授予了权限但不生效,应检查 mask:
setfacl -m m:rwx file权限判断大致顺序:
所有者 > 指定用户 ACL > 所属组/指定组 ACL > 其他人8.attr 文件属性
attr 是传统权限之外的文件属性限制,对 root 也有约束效果。
lsattr filechattr +i file # 不允许修改、删除、重命名chattr -i filechattr +a file # 只允许追加写入chattr -a file常见用途:
chattr +i /etc/passwdchattr +a /var/log/messages使用时要谨慎,否则容易造成自己无法修改配置文件。
9.SELinux 基础补充
RHEL 默认启用 SELinux。传统权限允许访问,不代表 SELinux 一定允许访问。查看状态:
getenforcesestatus常见模式:
| 模式 | 说明 |
|---|---|
| Enforcing | 强制执行策略 |
| Permissive | 只记录不拦截 |
| Disabled | 禁用 |
查看文件安全上下文:
ls -Z filels -Zd dir恢复默认上下文:
restorecon -Rv /path五、进程与服务管理
1.进程和线程
程序是静态的代码文件,进程是程序运行后的实例。进程有独立的地址空间、文件描述符和资源。线程是进程内部的执行单元,同一进程内的线程共享进程资源,但每个线程有自己的栈和执行状态。
进程状态常见标记:
| 状态 | 含义 |
|---|---|
R |
运行或可运行 |
S |
可中断睡眠 |
D |
不可中断睡眠,常见于 I/O 等待 |
T |
暂停或被跟踪 |
Z |
僵尸进程 |
2.查看进程
ps auxps -efps axjfps -eo pid,ppid,user,stat,ni,pri,pcpu,pmem,comm --sort=-pcpu
pgrep sshdpgrep -a sshdpidof sshdtopps aux 常见字段:
| 字段 | 含义 |
|---|---|
| USER | 进程所有者 |
| PID | 进程 ID |
| %CPU | CPU 占用 |
| %MEM | 内存占用 |
| VSZ | 虚拟内存大小 |
| RSS | 常驻内存大小 |
| TTY | 关联终端 |
| STAT | 进程状态 |
| START | 启动时间 |
| TIME | 累计 CPU 时间 |
| COMMAND | 命令 |
top 内部常用操作:
| 按键 | 作用 |
|---|---|
P |
按 CPU 排序 |
M |
按内存排序 |
T |
按累计 CPU 时间排序 |
1 |
展示每个 CPU 核心 |
k |
向进程发送信号 |
u |
只看指定用户进程 |
q |
退出 |
3.前后台任务
command &jobsCtrl+Zbg %1fg %1Ctrl+Z 是暂停当前前台任务,bg 让暂停任务在后台继续运行,fg 把后台任务调回前台。
4.进程优先级
Linux 中普通用户可调的 nice 值范围是 -20 到 19,数值越小优先级越高。
nice -n 5 commandrenice -n 10 -p PID优先级标记:
| 标记 | 含义 |
|---|---|
< |
高优先级 |
N |
低优先级 |
+ |
前台进程组 |
5.进程信号
信号是 Linux 进程之间传递异步通知的机制。
| 信号 | 编号 | 默认行为 | 常见用途 |
|---|---|---|---|
| SIGHUP | 1 | 终止 | 终端断开、服务重新加载配置 |
| SIGINT | 2 | 终止 | Ctrl+C |
| SIGQUIT | 3 | 终止并转储 | Ctrl+\ |
| SIGKILL | 9 | 强制终止 | 无法被捕获、阻塞或忽略 |
| SIGTERM | 15 | 终止 | 默认优雅结束进程 |
| SIGCONT | 18 | 继续 | 恢复暂停进程 |
| SIGSTOP | 19 | 暂停 | 无法被捕获、阻塞或忽略 |
| SIGTSTP | 20 | 暂停 | Ctrl+Z |
kill -15 PIDkill -9 PIDkillall -15 process_namepkill -u usernamepkill -f "command pattern"优先使用 SIGTERM,只有进程无法正常退出时再使用 SIGKILL。
6.systemd 服务管理
守护进程是在后台长期运行的服务进程,RHEL 9 使用 systemd 管理系统启动和服务。
systemctl status sshdsystemctl start sshdsystemctl stop sshdsystemctl restart sshdsystemctl reload sshdsystemctl enable sshdsystemctl enable --now sshdsystemctl disable sshdsystemctl list-units --type=servicesystemctl list-unit-filessystemctl list-dependencies sshd冻结与解冻服务:
systemctl mask servicesystemctl unmask service系统运行目标:
systemctl get-defaultsystemctl set-default multi-user.targetsystemctl set-default graphical.targetsystemctl isolate multi-user.targetsystemctl isolate graphical.target传统运行级别与 systemd target 的关系:
| 传统级别 | systemd target | 含义 |
|---|---|---|
| 0 | poweroff.target |
关机 |
| 1 | rescue.target |
救援模式 |
| 3 | multi-user.target |
多用户无图形模式 |
| 5 | graphical.target |
图形模式 |
| 6 | reboot.target |
重启 |
查看服务日志:
journalctl -u sshdjournalctl -u sshd -fjournalctl -xe六、软件管理
1.RHEL 9 软件管理体系
RHEL 9 常用 rpm 和 dnf 管理软件:
| 工具 | 作用 |
|---|---|
rpm |
管理本地 rpm 包,适合查询、安装单个包 |
dnf |
自动处理仓库、依赖、安装、更新和卸载 |
RHEL 9 常见仓库:
| 仓库 | 作用 |
|---|---|
| BaseOS | 操作系统核心组件 |
| AppStream | 应用程序、语言运行时、数据库等 |
| CRB | CodeReady Builder,开发库和构建依赖 |
| EPEL | Fedora 社区为 RHEL 生态提供的额外软件源 |
未注册的 RHEL 系统无法直接使用 Red Hat 官方订阅仓库。实验环境可使用 Red Hat Developer Subscription、离线 ISO 仓库,或使用兼容发行版仓库进行练习。
2.订阅提示与插件
原文提到为了避免未订阅系统的订阅管理提示,可以禁用订阅管理器插件。更准确的做法是修改插件配置,而不是把错误拼写写入 dnf.cong。
只禁用 subscription-manager 插件:
vim /etc/dnf/plugins/subscription-manager.conf将配置改为:
[main]enabled=0不建议直接关闭所有 DNF 插件;若确实需要全局关闭插件,应修改 /etc/dnf/dnf.conf 中的 plugins=0,但这会影响其他插件。
3.rpm 常用命令
rpm -ivh package.rpm # 安装rpm -Uvh package.rpm # 升级或安装rpm -e package # 卸载rpm -qa # 查看所有已安装包rpm -q package # 查询包是否安装rpm -ql package # 查看包安装了哪些文件rpm -qc package # 查看包配置文件rpm -qf /path/file # 查询文件来自哪个包rpm -qi package # 查看包信息rpm 不擅长自动解决依赖,日常优先使用 dnf。
4.dnf 常用命令
dnf repolistdnf search nginxdnf info nginxdnf install nginx -ydnf remove nginx -ydnf update -ydnf list installeddnf provides /usr/sbin/semanagednf historydnf history undo IDdnf clean alldnf makecache软件包组:
dnf group listdnf group info "Server with GUI"dnf group install "Development Tools" -y5.配置本地 ISO 仓库
实验环境中,如果 RHEL 未订阅,可以把安装 ISO 挂载为本地仓库:
mkdir -p /mnt/rhel9mount /dev/sr0 /mnt/rhel9创建仓库文件:
vim /etc/yum.repos.d/rhel9-local.repo内容示例:
[BaseOS]name=RHEL9 BaseOSbaseurl=file:///mnt/rhel9/BaseOSenabled=1gpgcheck=0
[AppStream]name=RHEL9 AppStreambaseurl=file:///mnt/rhel9/AppStreamenabled=1gpgcheck=0刷新缓存:
dnf clean alldnf makecachednf repolist七、网络管理
1.NetworkManager
RHEL 9 使用 NetworkManager 管理网络。从 RHEL 9 开始,新连接默认以 keyfile 格式存放在:
/etc/NetworkManager/system-connections/旧的 /etc/sysconfig/network-scripts/ifcfg-* 格式仍可兼容,但不再是新配置的默认存储方式。
NetworkManager 可以管理有线、无线、动态 IP、静态 IP、物理网卡、虚拟网卡等,常用工具包括:
| 工具 | 作用 |
|---|---|
nmcli |
命令行管理网络 |
nmtui |
文本界面管理网络 |
nm-connection-editor |
图形界面管理网络 |
2.查看网络状态
ip addrip routeip linknmcli device statusnmcli connection showss -tunlpifconfig 和 route 属于较旧工具,RHEL 9 中更推荐 ip 和 ss。
3.临时配置网络
临时配置重启网络或系统后会丢失。
ip addr add 192.168.78.210/24 dev eth1ip link set eth1 upip link set eth1 downip route add default via 192.168.2.24.网卡命名规则
| 类型 | 示例 | 特点 |
|---|---|---|
| 传统命名 | eth0、eth1 |
依赖识别顺序,可能不稳定 |
| 可预测命名 | ens160、ens192 |
依据硬件位置或固件信息,更稳定 |
RHEL/CentOS 7 之后默认使用可预测命名。若实验中想恢复 eth0 风格,可修改内核参数:
grubby --update-kernel ALL --args "net.ifnames=0 biosdevname=0"reboot撤销:
grubby --update-kernel ALL --remove-args "net.ifnames=0 biosdevname=0"reboot5.nmcli 永久配置网络
查看连接:
nmcli connection shownmcli connection show eth1nmcli device status启动和关闭连接:
nmcli connection up eth1nmcli connection down eth1配置动态 IP:
nmcli connection add type ethernet con-name eth1 ifname eth1 ipv4.method auto autoconnect yes配置静态 IP:
nmcli connection add type ethernet con-name eth1 ifname eth1 \ ipv4.method manual \ ipv4.addresses 192.168.78.100/24 \ ipv4.gateway 192.168.78.2 \ ipv4.dns 114.114.114.114 \ autoconnect yes修改已有连接:
nmcli connection modify eth1 ipv4.addresses 192.168.78.200/24nmcli connection modify eth1 ipv4.gateway 192.168.78.2nmcli connection modify eth1 ipv4.dns "114.114.114.114 8.8.8.8"nmcli connection modify eth1 ipv4.method manualnmcli connection up eth1配置文件示例:
[connection]id=eth1type=ethernetinterface-name=eth1
[ipv4]address1=192.168.78.200/24,192.168.78.2dns=114.114.114.114;method=manual
[ipv6]method=auto手工修改 .nmconnection 文件后,通常需要:
chmod 600 /etc/NetworkManager/system-connections/*.nmconnectionnmcli connection reloadnmcli connection up eth16.ping 与基础排错
ping -c 4 www.baidu.comping -c 4 8.8.8.8ping -s 1000 -c 4 192.168.78.2ping -t 64 -c 4 192.168.78.2ping 输出中的常见字段:
| 字段 | 含义 |
|---|---|
| bytes | ICMP 数据大小 |
| time | 响应耗时,越小越快 |
| ttl | IP 包生存时间,每经过一跳通常减 1 |
TTL 不是 DNS 记录存在时间。DNS 记录也有 TTL,但 ping 输出中的 TTL 是 IP 报文的 TTL。
基础排错顺序:
ip addr # 是否有 IPip route # 是否有默认网关ping -c 4 gateway # 网关是否通ping -c 4 8.8.8.8 # 外网 IP 是否通ping -c 4 www.baidu.com # DNS 是否正常cat /etc/resolv.conf # DNS 配置nmcli device status # NM 管理状态7.域名解析
静态解析:
vim /etc/hosts示例:
154.19.232.119 www.example.comDNS 解析可通过 NetworkManager 配置:
nmcli connection modify eth1 ipv4.dns "114.114.114.114 8.8.8.8"nmcli connection up eth1排查 DNS:
getent hosts www.baidu.comresolvectl status8.wget 和 curl
wget 适合下载文件,curl 更适合调试 HTTP 请求、上传下载和接口测试。
wget -P /tmp https://example.com/file.tar.gzwget -c https://example.com/big.isowget -r -p https://example.com/
curl -o index.html https://www.baidu.comcurl -I https://www.baidu.comcurl -L https://example.com9.VMware 三种网络模式
VMware 常见网络模式有桥接、NAT、仅主机三种。

Bridged 桥接模式
桥接模式让虚拟机像局域网中的一台真实主机一样接入网络。虚拟机 IP 应与物理主机在同一网段,网关和 DNS 通常与物理主机一致。

适用场景:
- 虚拟机需要被局域网其他主机直接访问。
- 局域网 IP 资源充足。
- 网络环境允许新增主机接入。
注意事项:
- 虚拟交换机应桥接到当前真正联网的物理网卡。
- 不建议在复杂网络中长期使用“自动桥接”。
NAT 地址转换模式
NAT 模式通过 VMware 的虚拟 NAT 设备和虚拟 DHCP 服务让虚拟机访问外网。外部网络通常不能直接访问虚拟机,除非配置端口转发。

适用场景:
- IP 资源紧张。
- 只要求虚拟机能访问外网。
- 实验环境不希望暴露虚拟机。
Host-Only 仅主机模式
Host-Only 模式把虚拟机限制在主机和虚拟机组成的私有网络中。默认不能访问外网,适合封闭实验环境、内部服务测试、安全隔离练习。
| 模式 | 虚拟机访问外网 | 主机访问虚拟机 | 局域网其他机器访问虚拟机 |
|---|---|---|---|
| Bridged | 可以 | 可以 | 可以 |
| NAT | 可以 | 可以 | 通常不可以 |
| Host-Only | 默认不可以 | 可以 | 不可以 |
八、文件传输、归档与压缩
1.sshd 服务
Linux 主机之间常用 SSH 协议进行远程登录和文件传输。先确认 sshd 服务:
systemctl status sshdsystemctl enable --now sshd如果防火墙开启,需要放行 SSH:
firewall-cmd --add-service=ssh --permanentfirewall-cmd --reload不建议为了传文件直接关闭防火墙。实验中若临时关闭,也要知道它的影响:
systemctl disable --now firewalld2.scp
scp 基于 SSH,用法简单,适合临时复制文件。
scp file root@192.168.78.129:/root/Desktop/scp -r dir root@192.168.78.129:/root/Desktop/scp root@192.168.78.129:/root/Desktop/file /tmp/常用参数:
| 参数 | 作用 |
|---|---|
-r |
复制目录 |
-q |
安静模式,不显示进度 |
-P |
指定 SSH 端口,注意是大写 |
3.rsync
rsync 支持增量同步,适合重复传输、目录同步和备份。
rsync -av file root@192.168.78.129:/root/Desktop/rsync -av dir/ root@192.168.78.129:/root/Desktop/dir/rsync -av root@192.168.78.129:/mnt/ /mnt/常用参数:
| 参数 | 作用 |
|---|---|
-a |
归档模式,包含递归、权限、时间戳、链接等 |
-v |
显示过程 |
-z |
传输时压缩 |
--delete |
删除目标端多余文件,使两端一致 |
--progress |
显示传输进度 |
注意源路径结尾 / 的区别:
rsync -av /mnt root@host:/backup/ # 把 mnt 目录本身复制到 /backup/rsync -av /mnt/ root@host:/backup/ # 只复制 /mnt/ 中的内容4.测试文件生成
truncate -s 500M filedd if=/dev/zero of=file bs=1M count=500truncate 速度快,常用于创建稀疏文件;dd 会实际写入数据,更适合模拟真实写入。
5.tar 归档
归档是把多个文件或目录打包成一个文件,不一定压缩。
tar cf etc.tar /etctar tf etc.tartar rf etc.tar filetar xf etc.tartar xf etc.tar -C /mnttar --delete -f etc.tar filetar --get -f etc.tar file常用参数:
| 参数 | 作用 |
|---|---|
c |
创建归档 |
x |
解归档 |
t |
查看归档内容 |
f |
指定归档文件名 |
v |
显示过程 |
r |
向归档中追加文件 |
-C |
指定解包目录 |
6.压缩格式
| 格式 | 特点 |
|---|---|
.gz |
速度快,压缩率一般 |
.bz2 |
压缩率较高,速度较慢 |
.xz |
压缩率高,速度更慢 |
.zip |
跨平台友好 |
tar 归档压缩:
tar zcf file.tar.gz dirtar jcf file.tar.bz2 dirtar Jcf file.tar.xz dir
tar zxf file.tar.gztar jxf file.tar.bz2tar Jxf file.tar.xz九、防火墙基础补充
RHEL 9 默认使用 firewalld 管理防火墙。
systemctl status firewalldfirewall-cmd --statefirewall-cmd --get-default-zonefirewall-cmd --list-all放行服务和端口:
firewall-cmd --add-service=http --permanentfirewall-cmd --add-port=8080/tcp --permanentfirewall-cmd --reload移除规则:
firewall-cmd --remove-service=http --permanentfirewall-cmd --remove-port=8080/tcp --permanentfirewall-cmd --reload排查服务访问问题时,顺序通常是:
systemctl status 服务名ss -tunlpfirewall-cmd --list-allgetenforcejournalctl -u 服务名 -xe十、常用排障清单
1.系统版本和内核
cat /etc/redhat-releaseuname -rhostnamectl2.资源占用
uptimetopfree -hdf -hdu -sh /var/log3.服务异常
systemctl status servicejournalctl -u service -xesystemctl restart service4.网络不通
ip addrip routenmcli device statusping -c 4 网关ping -c 4 8.8.8.8ping -c 4 域名ss -tunlp5.权限异常
ls -l filenamei -l /path/to/filegetfacl filelsattr filegetenforcels -Z file6.软件安装失败
dnf repolistdnf clean alldnf makecachednf provides command_namednf history十一、基础总结
Linux 基础不是零散命令的堆砌,而是一套围绕“资源管理”的体系:用户和权限决定谁能访问资源,进程和服务决定程序如何运行,软件管理决定系统能力如何扩展,网络和文件传输决定主机如何与外界协作。
学习时建议按以下顺序练习:
- 先熟悉路径、文件、帮助命令和文本编辑。
- 再掌握用户、组、权限、ACL、SELinux 的关系。
- 然后学习进程、服务、日志和软件包管理。
- 最后把网络配置、SSH、传输、归档和防火墙串起来做完整实验。
当遇到问题时,不要只记某个命令的结果,而要追问:这个问题属于身份、权限、进程、服务、软件、网络、存储中的哪一类。分类清楚后,Linux 的排障会轻松很多。