✨ 复制成功!

以文会友,打造好学人设!

📋 已复制到剪贴板:

《趣谈Shell》简介

创建时间:2022-04-16 更新时间:2026-08-21 阅读次数:1934 次

1、《趣谈Shell》诞生背景

我在网易工作的时候,曾经有段时间负责大数据平台的开发和维护,每天使用shell操作Linux服务器,也就是在那段时间,我深入了解了一下shell。后来,心血来潮,我写了几篇关于shell的小故事,大家看了感觉很有意思,所以我就增加内容,形成了一本小册子。

毕竟shell的内容并不多,可以挖掘的地方不太多,所以在《趣谈Shell》里面有十分出彩的内容,也有十分牵强的内容,大家不要抱有太高的期望,那怕学到一两个命令,也算是值了。

2、人们对shell的误解

下面这个问题来自于知乎的菜鸟误解:

最近想学学 Linux 下的 shell,基础知识都看完了,想做点东西,但是绞尽脑汁还是没想起来做点什么,最后我也查了一下 shell 的作用,到现在还没有一个很好的答案,都说 shell 可以直接与计算机交互,但是我想其他语言不也能方便的与计算机进行交互吗?shell 实现的功能,其他语言也能实现,可能会稍微复杂一些,难道 shell 就这点优势吗?望解惑!感激不尽。

下面是高赞答案:

从这个问题就能看出来,题主对shell的定位没有理解。题主不应该拿shell跟其他语言来对比,更不应该有这样的质疑:shell 实现的功能,其他语言也能实现,可能会稍微复杂一些,难道 shell 就这点优势吗?

关于shell的定位,应该从它的名字说起,操作系统分为内核(kernel)和外壳(shell)。也就是说shell的定位属于操作系统。题主拿操作系统的东西去跟编程语言去对比,明显不对等,门不当户不对啊。

操作系统的作用是什么呢?是管理计算机硬件与软件资源的计算机程序。那么shell的作用也是如此,即是管理计算机硬件与软件资源。

正如题主所说,“最近想学学 Linux 下的 shell,基础知识都看完了,想做点东西,但是绞尽脑汁还是没想起来做点什么”。因为我们平时很少会去管理计算机硬件和软件的,所以题主找不到shell的用武之地,这很正常。

shell是用来管理计算机硬件与软件资源的,所以shell就像一个胶水,能粘合其他的各种语言,实现软件资源的配合和协作。

3、在大模型时代,有必要学习shell吗?

这是一个非常经典且现实的问题。我的结论很明确:非常有必要,而且在大模型时代,Shell(尤其是Bash)的重要性不降反升,它是你驾驭AI的“方向盘”,而不是可以被取代的“打字机”。

如果你把大模型当作“大脑”,那么Shell就是你的“双手”。大脑想出再精妙的计划,没有双手去执行,也只是空谈。大模型本身是一个静态的权重文件,它无法直接操作文件、安装软件、调用API或管理服务器。所有让大模型“动起来”的动作,最终都要翻译成Shell命令。

大模型训练和推理极度依赖Linux服务器(几乎100%)。无论你用的是PyTorch、DeepSpeed还是vLLM,官方文档里的调试命令、分布式启动(torchrun)、环境变量设置(export CUDA_VISIBLE_DEVICES),全是Shell。

如果你不会Shell,在云端租用GPU服务器时,连看报错日志(tail -f)都费劲,更别提排查OOM(显存溢出)问题了。在这个领域,Shell就是“工地上的安全帽”——不戴也能进,但寸步难行。

4、在大模型时代,Shell需要学到什么程度?

你不需要成为Shell编程专家(像运维工程师那样写几千行的 configure 脚本),但你需要掌握 “20% 的核心高频命令”:

  • 文件操作:ls, cd, cp, mv, rm, touch
  • 文本三剑客:grep(查找), sed(替换), awk(格式化)
  • 系统管理:ps(进程), kill(结束进程), netstat(端口,就像你刚才遇到的8585端口问题)
  • 权限与管道:chmod, |(管道符), >(重定向)

你的学习策略可以是这样:

不需要死记硬背。你需要做的只是看懂基本命令。当遇到复杂任务时,直接对AI说:“我想在Linux下找出所有大于100M的日志文件,并删除7天前的,请给我Shell命令,并加注释。” AI会给出命令,而你因为懂基础语法,能看懂注释并确认安全,然后执行。这就是大模型时代学习Shell的最佳姿势:作为命令的“审核官”而非“打字员”。

5、Shell 核心高频命令速查表(20%命令解决80%问题)

下面我把 “20%核心高频命令” 整理成一份速查表发给大家,方便大家随时查阅,这样遇到问题时可以快速对照。需要说明的是,这份速查表我按使用场景来组织,而不是按字母顺序。你不需要背下来,收藏这篇文章,遇到任务时回来对照着看就行。

一、文件与目录操作(最基础)

命令作用常用示例
pwd显示当前所在路径pwd/home/user/project
ls列出目录内容ls -la(显示所有文件+详细信息)
cd切换目录cd ..(上级目录),cd ~(用户主目录)
mkdir创建目录mkdir -p a/b/c(一次性创建多级目录)
touch创建空文件 / 更新文件时间戳touch main.py
cp复制文件或目录cp -r source/ dest/(递归复制目录)
mv移动 / 重命名mv old.txt new.txt(重命名)
rm删除(危险!rm -rf folder/强制递归删除,慎用!

二、查看与搜索(排查问题的利器)

命令作用常用示例
cat查看整个文件内容cat log.txt
less分页查看(大文件用这个)less huge.log(按 q 退出)
head查看文件开头N行head -100 log.txt(前100行)
tail查看文件末尾N行(看日志常用)tail -f log.txt实时追踪新增内容)
grep搜索文本(核心技能)grep "ERROR" app.log(查找包含ERROR的行)
grep -r "TODO" ./(递归搜索当前目录下所有文件)
find按条件找文件find . -name "*.py"(所有Python文件)
find . -size +100M(大于100MB的文件)

三、文本处理(三剑客)

命令作用常用示例
|(管道)把前一个命令的输出传给后一个命令cat log.txt | grep "ERROR" | head -10
>重定向输出到文件(覆盖)echo "hello" > file.txt
>>重定向输出到文件(追加)echo "world" >> file.txt
sed替换/删除文本(流编辑器)sed 's/旧/新/g' file.txt(全局替换)
awk提取列 / 格式化awk '{print $1, $3}' data.txt(打印第1和第3列)

四、系统与进程管理

命令作用常用示例
ps查看当前运行的进程ps aux(所有进程)
ps aux | grep python(找Python进程)
kill终止进程kill -9 PID强制终止,-9是核弹级)
top / htop实时查看系统资源占用htop(更直观,需要安装)
netstat / ss查看端口占用(netstat -tlnp(Linux查看监听端口)
netstat -ano | findstr :8585(Windows)
df查看磁盘剩余空间df -h(人类可读格式)
du查看文件/文件夹大小du -sh *(当前目录下每个文件的大小)

五、权限管理

命令作用常用示例
chmod修改文件权限chmod +x script.sh(添加可执行权限)
chown修改文件所有者chown user:group file.txt
sudo以管理员身份执行sudo apt install python3(Linux安装软件)

六、网络与下载

命令作用常用示例
curl发送HTTP请求 / 下载curl -O https://example.com/file.zip(下载文件)
wget下载文件wget https://example.com/model.bin
ping测试网络连通性ping baidu.com
ssh远程连接服务器ssh user@192.168.1.100

七、打包与压缩(传输数据必备)

命令作用常用示例
tar打包/解包(Linux最常用)tar -czvf archive.tar.gz folder/(打包+压缩)
tar -xzvf archive.tar.gz(解压)
zip / unzipWindows风格压缩unzip file.zip -d target/

八、快捷操作(提高效率)

快捷键/技巧作用
Ctrl + C终止当前正在运行的命令
Ctrl + Z挂起当前命令(后台运行)
Ctrl + R搜索历史命令(强烈推荐
!!重复上一条命令
!$上一条命令的最后一个参数
Tab自动补全路径(多用!
本教程共16节,当前为教程简介!
本教程最新修订时间为:2026-08-21 21:27:37

📌 面试天下网:一款服务于大一新生的口袋书,让大家在无聊的公共课上可以学习大模型技术!
📌 网站公告:【悬赏 200 元/篇】寻找“大模型面试战场”的一手回忆录

评论专区

评论加载中...