news 2026/10/4 5:57:18

Linux 基础学习全景笔记:从命令入门到 CentOS Stream 10 环境实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux 基础学习全景笔记:从命令入门到 CentOS Stream 10 环境实战

本文根据一份完整的 Linux 基础课程笔记整理而成,适合零基础入门、期末复习或运维入门打底。
内容覆盖:目录与路径、常用命令、文件操作、查找与文本处理、vim/nano、用户权限、软件包管理、网络配置、进程监控、磁盘管理、环境变量、压缩解压、仓库配置、国内镜像源、EPEL、VirtualBox 网络切换与系统监控。
建议边看边在虚拟机或云服务器上敲一遍,Linux 是练出来的。


一、Linux 目录结构与路径

Linux 的目录结构是一棵“树”,只有一个根目录/。Windows 有 C、D、E 盘,而 Linux 没有盘符,所有文件都挂在/下面。

路径分隔符也不同:

  • Linux:/usr/local/hello.txt

  • Windows:D:\data\work\hello.txt

路径分两种:

  • 绝对路径:以/开头,从根目录出发,如/etc/hosts

  • 相对路径:不以/开头,从当前目录出发,如test/hello.txt

特殊路径符:

符号含义示例
.当前目录cd ./Desktop
..上一级目录cd ..
~当前用户 HOME 目录cd ~/Desktop

普通用户的 HOME 目录一般是/home/用户名。


二、命令基础与文件操作

Linux 命令通用格式:

command [-options] [parameter]

例如:

ls -l /home/itheima cp -r test1 test2

1. ls:列出目录内容

ls # 平铺列出当前目录 ls / # 查看根目录 ls -a # 显示隐藏文件,以 . 开头 ls -l # 列表形式,显示权限、大小、日期等 ls -h # 人性化显示大小,通常配合 -l ls -lah # 等价于 ls -a -l -h

2. cd 与 pwd

cd /etc # 切换到 /etc cd # 回到 HOME cd ~ # 回到 HOME cd .. # 上一级 pwd # 查看当前工作目录

3. 创建目录与文件

mkdir test mkdir -p itcast/good/666 # 自动创建多级父目录 touch hello.txt # 创建空文件

4. 查看文件内容:cat、more、less、head、tail

命令特点常用场景
cat一次性输出全部小文件
more分页,只能向下中大文件
less分页,可上下翻、搜索大文件、日志,最推荐
head看开头,默认前 10 行看表头、日志头部
tail看结尾,默认后 10 行,支持-f实时监控日志

示例:

cat test.txt more /etc/services less -N /etc/services head -n 5 test.txt tail -n 3 test.txt tail -f work.txt # 持续跟踪文件变化

less常用操作:空格翻页、b上翻、/关键字搜索、n下一个、q退出。

5. 复制、移动、删除

cp -r test1 test2 # 复制文件夹 mv test.txt Desktop/ # 移动 mv test2.txt test3.txt # 目标不存在时改名 rm -r test # 删除文件夹 rm -rf test # 强制删除,慎用 rm -r test* # 通配符删除

⚠️危险警告:
rm -rf /和rm -rf /*等同于格式化系统,绝对不要执行。


三、查找、文本处理与重定向

1. which、find、locate

which cd # 查看命令程序文件位置 find / -name "*centos*" # 按文件名查找 find /usr -size +100M # 按大小查找 locate itcast # 查索引数据库,速度极快 updatedb # 手动更新 locate 数据库,需 root

find实时遍历磁盘,准确但慢;locate查数据库,快但非实时。

2. grep、wc 与管道符

grep -n "itheima" test.txt wc -l test.txt cat test.txt | grep itcast | wc -l

管道符|把左边命令的输出,作为右边命令的输入。

3. echo、反引号与重定向

echo "Hello Linux" echo `pwd` echo "Hello Linux" > itheima.txt # 覆盖 echo "Hello itcast" >> itheima.txt # 追加

标准错误重定向:

find / -name "test" > success.log 2> error.log find / -name "test" > all.log 2>&1 find / -name "test" &> all.log find / -name "test" 2> /dev/null
  • >:重定向标准输出

  • 2>:重定向标准错误

  • 2>&1或&>:合并输出和错误

  • /dev/null:Linux 黑洞,丢弃输出


四、文本编辑器:vim 与 nano

1. vim 三种模式

  • 命令模式:默认模式,按键是命令

  • 输入模式:按i、a、o等进入,正常打字

  • 底线命令模式:按:进入,用于保存退出

常用操作:

vim hello.txt # 按 i 进入输入模式,输入内容 # 按 Esc 回命令模式 # 输入 :wq 保存退出

底线命令:

命令作用
:wq保存退出
:q退出
:q!强制退出
:w仅保存
:set nu显示行号

命令模式常用:dd删除行、yy复制行、p粘贴、u撤销、gg首行、G尾行、/搜索。

2. nano:更简单的编辑器

nano test.txt

Ctrl+O保存,Ctrl+X退出,Ctrl+W搜索。适合快速改配置文件。


五、用户与权限管理

1. root、su、sudo

su - root # 切换到 root exit # 退出 sudo ls /root # 临时以 root 身份执行

为普通用户配置 sudo:

visudo # 添加: itheima ALL=(ALL) NOPASSWD: ALL

2. 用户与用户组

groupadd itcast groupdel itcast useradd -g itcast itheima userdel -r itheima id itheima usermod -aG itcast itheima getent passwd getent group passwd itheima

passwd用于设置或修改密码,实际写入/etc/shadow。

3. chmod、chown、chgrp

权限字符:r=4、w=2、x=1。

chmod 755 hello.txt chmod u=rwx,g=rx,o=x hello.txt chown root:itcast hello.txt chgrp itcast hello.txt chown -R root test
命令作用
chmod修改读写执行权限
chown修改所属用户和组,通常 root
chgrp仅修改所属组

六、软件包与服务管理

1. yum、apt、dnf、rpm

工具适用系统特点
yumCentOS 7、RHEL 7自动解决依赖
dnfCentOS 8/9、Rocky、Fedorayum 升级版
aptUbuntu、Debian自动解决依赖
rpmRPM 系通用底层工具,不自动解决依赖
yum -y install wget yum -y remove wget yum search wget yum update wget apt install wget apt remove wget rpm -ivh package.rpm rpm -Uvh package.rpm rpm -e wget rpm -qa | grep wget

2. systemctl

systemctl start sshd systemctl stop sshd systemctl status sshd systemctl enable sshd systemctl disable sshd systemctl enable --now chronyd

常见服务:NetworkManager、firewalld、sshd、httpd、chronyd。

3. 时间同步:chrony 替代 ntp

CentOS Stream 8/9/10 已废弃ntp,推荐chrony:

yum install chrony -y systemctl enable --now chronyd chronyc -a makestep chronyc tracking

七、网络基础与远程连接

1. IP 与特殊地址

ifconfig ip addr
  • 127.0.0.1:本机回环地址

  • 0.0.0.0:本机或所有 IP,常用于端口绑定和放行规则

2. 主机名与域名解析

hostname hostnamectl set-hostname centos

域名解析先查本机 hosts:

  • Windows:C:\Windows\System32\drivers\etc\hosts

  • Linux:/etc/hosts

再查公开 DNS,如114.114.114.114、8.8.8.8。

3. 固定 IP:CentOS Stream + nmcli

nmcli connection show nmcli connection modify "连接名" ipv4.method manual ipv4.addresses 192.168.88.130/24 ipv4.gateway 192.168.88.1 ipv4.dns 114.114.114.114 nmcli connection up "连接名"

4. VirtualBox 网络模式简表

模式虚拟机上网宿主机直连多虚拟机互通适用
NAT✅❌ 端口转发❌单机学习
NAT 网络✅❌ 端口转发✅多机集群
桥接✅✅✅局域网访问

5. 网络工具与端口

ping -c 3 baidu.com wget http://example.com/file.tar.gz curl -O http://example.com/file.tar.gz nmap 127.0.0.1 netstat -anp | grep 22

端口范围:

  • 公认端口:1~1023

  • 注册端口:1024~49151

  • 动态端口:49152~65535


八、进程、磁盘与系统监控

1. 进程管理

ps -ef ps -ef | grep tail kill 2339 kill -9 2339

top类似 Windows 任务管理器:

top top -p 1234 top -d 2 top -n 3

交互按键:P按 CPU 排序、M按内存排序、q退出。

2. 作业管理

tail -f test.txt & Ctrl + Z jobs bg %1 fg %1 kill %1
  • &:后台运行

  • Ctrl+Z:挂起当前前台进程

  • jobs:查看后台作业

  • bg:后台继续运行

  • fg:调回前台

3. 磁盘管理

df -h du -sh /var du -h --max-depth=1 /var iostat -x mount /dev/sdb1 /mnt/usb umount /mnt/usb

df看分区整体使用率,du看目录/文件占用。

4. 网络统计

sar -n DEV 3 2

查看网卡收发数据包、流量等。


九、环境变量、压缩与仓库配置

1. 环境变量

env echo $PATH export ITHEIMA=666 source ~/.bashrc

PATH决定命令搜索路径。临时生效用export,永久生效写入:

  • 当前用户:~/.bashrc

  • 所有用户:/etc/profile

2. 上传下载与压缩解压

yum -y install lrzsz rz sz test.txt

压缩解压:

tar -zcvf test.tar.gz 1.txt 2.txt tar -zxvf test.tar.gz -C /home/itheima zip -r test.zip test itheima unzip test.zip -d /home/itheima gzip test.txt gunzip test.txt.gz

记忆技巧:-f永远紧挨包名,且放在选项最后。

3. Yum/DNF 仓库

仓库配置文件在/etc/yum.repos.d/,以.repo结尾。

yum repolist yum makecache yum clean all yum --disablerepo="仓库ID" install 软件名 yum --enablerepo="仓库ID" install 软件名

常见第三方源:EPEL、Remi、Docker、Nginx、MySQL。


十、CentOS Stream 10 配置国内镜像源与 EPEL

适用环境:VirtualBox + CentOS Stream 10。
操作前先切换到 root:su -

1. 备份原有 repo

CentOS Stream 10 默认源文件:

/etc/yum.repos.d/centos.repo /etc/yum.repos.d/centos-addons.repo

先备份,出错可恢复:

cp /etc/yum.repos.d/centos.repo /etc/yum.repos.d/centos.repo.bak cp /etc/yum.repos.d/centos-addons.repo /etc/yum.repos.d/centos-addons.repo.bak

2. 替换为中科大源

中科大源国内稳定,推荐使用。
覆盖/etc/yum.repos.d/centos.repo:

cat > /etc/yum.repos.d/centos.repo <<'EOF' [baseos] name=CentOS Stream $releasever - BaseOS baseurl=https://mirrors.ustc.edu.cn/centos-stream/$releasever-stream/BaseOS/$basearch/os gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=1 [baseos-debuginfo] name=CentOS Stream $releasever - BaseOS - Debug baseurl=https://mirrors.ustc.edu.cn/centos-stream/$releasever-stream/BaseOS/$basearch/debug/tree/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=0 [baseos-source] name=CentOS Stream $releasever - BaseOS - Source baseurl=https://mirrors.ustc.edu.cn/centos-stream/$releasever-stream/BaseOS/source/tree/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=0 [appstream] name=CentOS Stream $releasever - AppStream baseurl=https://mirrors.ustc.edu.cn/centos-stream/$releasever-stream/AppStream/$basearch/os gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=1 [appstream-debuginfo] name=CentOS Stream $releasever - AppStream - Debug baseurl=https://mirrors.ustc.edu.cn/centos-stream/$releasever-stream/AppStream/$basearch/debug/tree/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=0 [appstream-source] name=CentOS Stream $releasever - AppStream - Source baseurl=https://mirrors.ustc.edu.cn/centos-stream/$releasever-stream/AppStream/source/tree/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=0 [crb] name=CentOS Stream $releasever - CRB baseurl=https://mirrors.ustc.edu.cn/centos-stream/$releasever-stream/CRB/$basearch/os gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=0 EOF

再覆盖/etc/yum.repos.d/centos-addons.repo:

cat > /etc/yum.repos.d/centos-addons.repo <<'EOF' [extras-common] name=CentOS Stream $releasever - Extras packages baseurl=https://mirrors.ustc.edu.cn/centos-stream/SIGs/$releasever-stream/extras/$basearch/extras-common gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras-SHA512 gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=1 EOF

如果你想用清华源,把上面所有:

mirrors.ustc.edu.cn

替换成:

mirrors.tuna.tsinghua.edu.cn

即可。

3. 清理旧缓存并生成新缓存

dnf clean all dnf makecache

如果这一步无报错,说明镜像源配置成功。
如果出现元数据失败,优先检查虚拟机网络和 URL 拼写。

4. 测试安装软件

dnf install -y tree

能正常下载安装,就说明源可用。

5. 开启 CRB 仓库

EPEL 很多包依赖 CRB,必须先开启。

dnf config-manager --set-enabled crb

等价 yum 写法:

yum config-manager --set-enabled crb

6. 安装 EPEL

dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm

yum 写法:

yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm

刷新缓存:

dnf makecache

验证 EPEL 是否启用:

dnf repolist enabled | grep epel

出现epel仓库即成功。

测试安装:

dnf install -y tree # 或 yum install -y tree

7. 检查 EPEL 是否走国内镜像

cat /etc/yum.repos.d/epel.repo

如果发现仍然走官方源,可以手动把metalink注释掉,改用中科大 EPEL 的baseurl。
正常情况下,系统源替换为 USTC 后,EPEL 下载速度也会明显改善。

8. 恢复官方源

如果配置出错,可以直接还原备份:

mv /etc/yum.repos.d/centos.repo.bak /etc/yum.repos.d/centos.repo mv /etc/yum.repos.d/centos-addons.repo.bak /etc/yum.repos.d/centos-addons.repo dnf clean all && dnf makecache

9. 常见坑

  1. 虚拟机网络不通:
    VirtualBox 设置 → 网卡 1 → 连接方式选NAT,启动虚拟机后ping mirrors.ustc.edu.cn。

  2. SELinux / 防火墙一般不影响 dnf 源,不用特意关闭。

  3. CRB 仓库一定要开,否则 EPEL 很多包会依赖报错。

  4. 卸载 EPEL:

dnf remove -y epel-release

十一、VirtualBox + CentOS Stream 10 网络模式切换

网卡名:enp0s3
备份文件:enp0s3.nmconnection.bak
前提:备份文件已存在,里面存的是 NAT 静态 IP 配置192.168.88.130

模式 1:NAT 静态 IP → 桥接 DHCP

目标:从192.168.88.130切换到路由器分配的192.168.20.x。

操作步骤:

  1. 关闭虚拟机

  2. VirtualBox 设置 → 网络 → 网卡 1:

    • 连接到:桥接网卡

    • 选择你的 Realtek WiFi 网卡

    • 保存确定

  3. 开机启动虚拟机

  4. 推荐在虚拟机本地终端执行,不要用 FinalShell,因为执行后会断连

第一次切换时先备份:

sudo cp /etc/NetworkManager/system-connections/enp0s3.nmconnection /etc/NetworkManager/system-connections/enp0s3.nmconnection.bak

查看备份:

sudo cat /etc/NetworkManager/system-connections/enp0s3.nmconnection.bak sudo ls -l /etc/NetworkManager/system-connections/

确认存在:

enp0s3.nmconnection enp0s3.nmconnection.bak

切换为 DHCP 自动获取:

sudo nmcli connection modify enp0s3 ipv4.method auto ipv4.addresses "" ipv4.gateway "" ipv4.dns "" sudo nmcli connection reload sudo nmcli device reapply enp0s3

查看 IP:

ifconfig

预期拿到路由器分配的192.168.20.x。
如果笔记本 WiFi 桥接失败,可能仍然拿到192.168.88.x。


模式 2:桥接 DHCP → NAT 静态 IP

目标:从桥接 DHCP 切回 NAT 静态 IP192.168.88.130。

操作步骤:

  1. 关闭虚拟机

  2. VirtualBox 设置 → 网络 → 网卡 1:

    • 连接到:NAT

    • 保存确定

  3. 开机启动虚拟机

  4. 在 FinalShell 或虚拟机本地终端执行:

sudo cp /etc/NetworkManager/system-connections/enp0s3.nmconnection.bak /etc/NetworkManager/system-connections/enp0s3.nmconnection sudo nmcli connection reload sudo nmcli device reapply enp0s3

回车执行瞬间,当前 SSH 会话会断开,这是正常现象。

然后在 FinalShell 中用旧连接重新连接:

192.168.88.130

关键规则

  1. VirtualBox 网卡模式必须和 Linux 内网络配置匹配

    • VirtualBox 网卡 = NAT → Linux 配置必须是静态192.168.88.130

    • VirtualBox 网卡 = 桥接 → Linux 配置必须是 DHCP auto

    • 不匹配会导致网络异常:可能能 ping 通外网,但宿主机无法互通。

  2. 修改网卡配置的命令都会断 SSH,优先在虚拟机本地终端执行更稳。

  3. 备份操作只需要执行一次,后续来回切换不用重复备份。


十二、学习建议与避坑清单

  1. 不要长期使用 root,日常用普通用户 +sudo。

  2. rm -rf /绝对禁止,删除前先pwd、ls确认。

  3. -f在 tar 中必须放最后,如tar -zcvf test.tar.gz file。

  4. CentOS Stream 8/9/10 用 chrony,不用 ntp。

  5. less 比 more 更强,看大文件优先用less。

  6. find 慢但准,locate 快但可能不是最新。

  7. 管道符|是 Linux 的灵魂,多练grep、wc、tail -f组合。

  8. 权限数字法:r=4、w=2、x=1,755是常见目录权限。

  9. 环境变量 PATH 决定命令能否直接执行。

  10. 多敲命令,多查man和--help。


总结

Linux 基础并不只是背命令,而是理解一套“一切皆文件、权限分明、组合小工具完成大任务”的思想。
从ls、cd、cp、rm到grep、find、chmod、systemctl、nmcli,这些命令构成了日常运维和开发的基石。

建议你按本文顺序在虚拟机里完整走一遍:
建目录 → 建文件 → 改权限 → 配网络 → 装软件 → 看进程 → 查磁盘 → 写脚本。
当你能不查笔记就完成这些操作时,Linux 基础就算真正入门了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 5:54:59

Python读取Excel的底层原理与工程化实践

1. 为什么“把Excel的数据导入Python”不是个简单操作&#xff0c;而是一道必须跨过的数据工程门槛&#xff1f;你刚在Excel里整理完销售报表&#xff0c;想用Python画个趋势图&#xff0c;结果卡在第一步&#xff1a;怎么把表格里的数字塞进Python&#xff1f;不是点几下鼠标就…

作者头像 李华
网站建设 2026/10/4 5:52:26

甲骨文服务器搭建应用无法访问解决办法

关掉iptables 或者放行全部端口&#xff0c;我选择放行全部端口sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -F

作者头像 李华
网站建设 2026/10/4 5:51:53

DeepSeek Harness 桌面端实战:安装配置、工作区与 Skill 部署全解析

1. 从命令行到桌面窗口&#xff1a;DeepSeek Harness 桌面端到底解决了谁的痛点如果你最近半年一直在用 DeepSeek 系列模型做开发&#xff0c;大概率经历过这样一个阶段&#xff1a;终端里开着deepseek的命令行会话&#xff0c;旁边再挂一个编辑器&#xff0c;中间靠复制粘贴来…

作者头像 李华
网站建设 2026/10/4 5:51:50

dsh插件开发踩坑实录:manifest、harness与权限实战

如果你是一个正在为dsh这个插件化平台build插件的AI agent&#xff0c;那你现在大概率已经翻过了不少文档&#xff0c;但依然被一堆莫名其妙的报错卡住。这篇踩坑实录就是写给你的。dsh不是那种只能跑几个脚本的小玩具&#xff0c;它有自己的market、harness、profile体系&…

作者头像 李华
网站建设 2026/10/4 5:51:19

akshare数据获取与布林通道策略回测:量化入门实战

如果有人问我&#xff0c;量化交易入门最难的一步是什么&#xff0c;我的答案大概率不是策略设计&#xff0c;也不是回测框架&#xff0c;而是“搞到一份靠谱的历史数据”。早期我做回测&#xff0c;光在数据获取上就折腾了一周&#xff1a;有的平台要积分、有的接口限流、有的…

作者头像 李华
网站建设 2026/10/4 5:49:13

MCP + Playwright:用自然语言驱动浏览器自动化抓取网页数据

上周帮朋友处理一个公开网站上的新闻列表&#xff0c;需要把几十条标题和链接整理成表格。搁在一年前&#xff0c;我得打开编辑器写一段Playwright脚本&#xff0c;处理依赖、等待页面渲染、调试定位符&#xff0c;没半小时根本搞不定。现在我在Trae IDE的对话框里打了一句话&a…

作者头像 李华