【Linux】Linux入门实战教程:文件系统与进程管理

Linux入门实战教程:文件系统与进程管理

引言

对于零基础读者来说,Linux的"文件系统"和"进程管理"就像认识一台新电脑的"文件柜"和"正在运行的程序"------前者管文件怎么放,后者管程序怎么跑。这篇教程全程用生活化类比,搭配可直接复制的命令,带你边操作边理解核心逻辑,摆脱"命令行恐惧"。

第一部分:Linux文件系统------你的"无盘符文件柜"

Windows用C盘、D盘分类文件,而Linux没有盘符,所有文件都装在一个"根文件柜"(/)里,里面的文件夹层层嵌套,就像文件柜的抽屉和隔层。我们先搞懂这个"文件柜"的结构,再学习文件的"身份标识"和"快捷方式"。

一、Linux目录结构:认识"文件柜"的抽屉

核心逻辑:根目录(/)是所有目录的起点,下面的核心目录各有分工,类比成日常场景更好记:

  • /(根目录):整个文件系统的"总文件柜",所有文件和目录都从这里延伸,没有它就没有其他目录。

  • /home:普通用户的"个人抽屉",每个用户都有专属子目录(比如 /home/zhang san),就像你的私人文件盒,只能自己自由操作。

  • /etc:系统的"设置抽屉",存放系统和软件的配置文件,类比成电脑的"控制面板",修改这里的文件能调整系统规则。

  • /bin:系统的"工具抽屉",存放ls、cd等常用命令,就像工具箱里的螺丝刀、扳手,保证系统最基本的运行。

  • /var:程序的"日志抽屉",存放软件运行产生的日志、缓存,类比成软件的"操作记录本",出问题时可查这里的记录。

  • /tmp:临时的"杂物抽屉",存放系统和软件的临时文件,重启电脑后自动清空,就像垃圾桶的临时存放区。

实战任务1:浏览核心目录

用以下命令切换、查看目录,亲手感受Linux的目录结构:

bash 复制代码
# 切换到根目录(进入总文件柜)
cd /

# 查看根目录下的所有目录(列出所有抽屉)
ls -l

# 切换到自己的个人目录(进入专属抽屉)
cd /home

# 查看当前目录路径(确认自己在哪)
pwd

预期输出:ls -l 会显示根目录下的所有核心目录(home、etc、bin等);pwd 会输出 /home,确认已切换到个人目录。

二、inode、硬链接与软链接:文件的"身份"与"快捷方式"

我们看到的文件名只是"表象",Linux底层靠 inode 识别文件,而链接就是给文件"起别名"或"建快捷方式"。

1. inode:文件的"身份证号"

类比:每个文件都有一个唯一的 inode 编号,就像人的身份证号,包含文件的大小、权限、存储位置等信息。文件名只是 inode 的"昵称"------删除文件名,只要 inode 还在,文件数据就没丢,只是找不到入口了。

2. 硬链接:文件的"别名"

类比:给你的文件"起另一个名字",两个名字指向同一个 inode(同一个文件本体)。删除其中一个名字,另一个仍能正常访问文件,就像一个人有大名和小名,叫哪个都能找到他。

3. 软链接:文件的"快捷方式"

类比:和Windows快捷方式完全一样,只记录原文件的路径,不指向 inode。如果原文件被删除,软链接就会"失效"(显示红色断裂状态),就像快捷方式指向的文件被删了,快捷方式也没用了。

核心区别总结
  • 硬链接:别名,删一个不影响其他,不能跨磁盘创建;

  • 软链接:快捷方式,原文件删了就失效,可跨磁盘创建。

实战任务2:操作inode与链接
bash 复制代码
# 1. 创建一个测试文件(生成一个"文件本体")
echo "hello linux" > test.txt

# 2. 查看文件的inode编号(查看文件身份证)
ls -i test.txt

# 3. 创建硬链接(起别名 test_hard.link)
ln test.txt test_hard.link

# 4. 创建软链接(建快捷方式 test_soft.link)
ln -s test.txt test_soft.link

# 5. 查看三个文件的inode和状态
ls -li

# 6. 修改原文件,观察链接文件变化
echo "add content" >> test.txt
cat test_hard.link  # 硬链接同步变化
cat test_soft.link  # 软链接同步变化

# 7. 删除原文件,观察链接文件
rm -f test.txt
cat test_hard.link  # 硬链接仍能访问内容
cat test_soft.link  # 软链接失效,提示"没有那个文件或目录"

预期输出:ls -li 会显示 test.txt 和 test_hard.link 的 inode 编号相同,test_soft.link 有特殊标识(l开头);删除原文件后,软链接访问失败,硬链接正常。

三、常用文件系统命令:管理"文件柜"的工具

除了上面的命令,这几个工具能帮你查看磁盘空间、文件大小:

bash 复制代码
# 查看磁盘空间使用情况(人性化显示GB/MB)
df -h

# 查看当前目录总大小(汇总显示,不展开子目录)
du -sh

# 查看当前目录下所有文件/目录的大小
du -h --max-depth=1

预期输出:df -h 显示各分区的已用空间、剩余空间;du -sh 显示当前目录总大小,帮你快速排查"空间被谁占了"。

Linux文件系统层级结构简图

第二部分:Linux进程管理------你的"后台运行程序"

打开浏览器、微信,这些"正在运行的程序"在Linux里就叫"进程"。进程有自己的"身份证(PID)",有父有子,还能被我们手动控制(启动、停止)。

一、进程基础概念:认识"运行中的程序"

  • 进程:类比"正在播放的电影",程序是电影文件(静态),进程是播放中的画面(动态),占用CPU、内存资源,有生命周期。

  • PID:进程ID,类比"电影票座位号",每个进程启动后系统分配唯一PID,是控制进程的核心标识。

  • 父子进程:类比"主程序和子窗口",你打开终端(父进程),在终端里运行ls命令(子进程)。父进程终止,子进程可能跟着终止;子进程终止,父进程不受影响。

二、常用进程管理命令:查看与控制进程

1. 查看进程:监控"运行中的程序"
bash 复制代码
# 查看系统所有进程(全景图,包含PID、占用资源)
ps aux

# 动态监控进程(实时刷新,按CPU占用排序)
top

# 增强版动态监控(界面更友好,支持鼠标操作)
htop  # 若未安装,先执行:sudo apt install htop(Ubuntu)/ sudo yum install htop(CentOS)

操作说明:top/htop 中,按"q"退出监控,top按"k"可输入PID终止进程,htop直接用鼠标点击进程后按"F9"终止。

2. 控制进程:启动、停止、后台运行
bash 复制代码
# 1. 后台运行进程(加&,终端可继续操作)
sleep 100 &  # 让系统休眠100秒,后台运行

# 2. 查看后台进程
jobs

# 3. 终止进程(按PID终止,先查PID再终止)
ps aux | grep sleep  # 查找sleep进程的PID(假设是1234)
kill 1234  # 正常终止进程

# 4. 强制终止进程(针对卡死的进程)
kill -9 1234

# 5. 后台持久运行进程(关闭终端也不终止)
nohup sleep 300 &  # 输出日志保存到nohup.out

避坑提示:不要轻易终止PID为1的进程,这是系统初始化进程,终止会导致系统崩溃。优先终止自己创建的进程(如sleep、自定义脚本)。

实战任务3:管理进程生命周期
bash 复制代码
# 1. 前台运行一个进程(终端被占用,无法输入其他命令)
sleep 60  # 此时终端卡住,等待60秒或按Ctrl+C终止

# 2. 后台运行进程,记录PID
sleep 1000 &
echo $!  # 输出最后一个后台进程的PID(记下来,比如2345)

# 3. 用top监控该进程
top -p 2345  # 只监控PID为2345的进程,按q退出

# 4. 用kill终止进程
kill 2345

# 5. 验证进程是否终止
ps aux | grep 2345  # 无结果则说明已终止
进程生命周期流程图(从启动到终止)

课后练习建议(边练边巩固)

  1. 文件系统练习:在/home目录创建文件,为其创建硬链接和软链接,移动链接到/tmp目录,验证访问效果,最后删除原文件观察链接状态。

  2. 磁盘排查练习:用df -h和du -sh命令,找出根目录下占用空间最大的3个目录。

  3. 进程练习:用nohup后台运行一个脚本(如echo "test" && sleep 500),关闭终端重新登录,用ps aux找到该进程并终止。

  4. 进阶练习:观察父子进程关系------打开终端(查其PID),在终端中运行ls命令,用ps aux找到ls进程,查看其父PID是否与终端PID一致。

提示:所有命令在Ubuntu、CentOS等主流Linux系统中均可通用,若遇权限问题,在命令前加sudo(如sudo rm -f 文件名),输入用户密码即可执行。

相关推荐
ts9772 小时前
Nginx + Vue History 模式刷新 404 的完整排查与解决方案
运维·vue.js·nginx
HIT_Weston2 小时前
76、【Ubuntu】【Hugo】搭建私人博客:Hugo 版本更新
linux·运维·ubuntu
qq_353737542 小时前
服务器防止宕机
运维·服务器
LucianaiB2 小时前
【基于昇腾平台的CodeLlama实践:从环境搭建到高效开发】
运维·人工智能·性能优化
运维行者_2 小时前
网络流量分析入门:从流量监控与 netflow 看懂核心作用
运维·开发语言·网络·云原生·容器·kubernetes·php
wangyongpro2 小时前
Ubuntu 系统盘拓展分区空间大小
linux·运维·ubuntu
guaiyud52 小时前
vmware安装centos 8
linux·centos·vmware
熊猫钓鱼>_>2 小时前
解决Web游戏Canvas内容在服务器部署时的显示问题
服务器·前端·游戏·canvas·cors·静态部署·资源路径
代码游侠2 小时前
应用——Linux FIFO(命名管道)与I/O多路复用
linux·运维·服务器·网络·笔记·学习