第五次shell理解练习
课后作业《理解Shell》一、Shell的类型默认Shell配置位置用户登录后启动的默认Shell记录在/etc/passwd文件第7个字段登录终端/图形终端仿真器都会自动加载该Shell绝大多数Linux系统默认使用bash。查看指定用户配置cat /etc/passwd | grep 用户名示例zhangzy:x:1165:1165:,,,:/home/zhanqzy:/bin/bash末尾/bin/bash为默认Shell。Linux主流Shell程序通过ls -lF /bin/*sh可查看系统全部Shell可执行文件bash系统主流交互Shellrbash是bash限制模式软链接dash系统开机、脚本默认轻量Shell/bin/sh软链接指向dashcsh、bsd-cshC语法风格Shellzsh/rzsh扩展增强型Shellstatic-shbusybox嵌入式极简ShellShell切换操作直接输入Shell程序名如/bin/dash即可启动对应Shell执行exit退出返回上一级Shell。二、Shell父子进程关系父Shell 子Shell父Shell登录终端、图形界面打开终端时自动生成的交互式Shell提供命令行提示符是所有子Shell的父进程。子Shell生成方式与验证在父Shell输入bash/其他Shell程序会新建独立子Shell多层输入可实现嵌套子Shell1查看进程层级命令ps -f查看进程PID、父PIDPPID ps --forest树形直观展示父子Shell嵌套结构exit逐层退出子Shell回到上级父Shell2进程列表括号()创建子Shell普通命令列表cmd1;cmd2;cmd3分号分隔不生成子Shell全部在当前Shell执行进程列表(cmd1;cmd2;cmd3)括号包裹命令强制创建子Shell独立运行子Shell检测变量echo $BASH_SUBSHELL返回0无额外子Shell返回≥1存在子Shell数字代表嵌套层数。3后台运行 后台子Shell命令末尾加将任务放入后台释放终端前台基础后台sleep 60 终端返回任务号与PID子Shell后台(多条命令)在独立子Shell后台执行不阻塞终端后台任务管理jobs查看当前终端后台作业jobs -l附带进程PID任务结束后终端自动打印终止提示。4协程 coproc高级后台子Shellcoproc是bash内置工具在后台生成独立子Shell支持双向管道通信基础用法coproc sleep 10默认协程名COPROC自定义协程名称coproc My_Job { sleep 10; }语法强制要求{前后带空格命令末尾分号}前留空格查看协程进程jobs -l协程生命周期独立于前台终端。三、Shell命令分类内建命令 vs 外部命令外部命令文件系统命令存储路径/bin、/usr/bin、/sbin、/usr/sbin等目录下独立可执行文件执行机制运行时调用fork创建全新子进程资源开销更大示例ps、ls查找命令路径工具which 命令仅输出外部命令文件路径无法识别内建命令type -a 命令同时展示内建实现外部可执行文件两种形式。内建命令Shell内置实现机制编译嵌入bash本体无需创建子进程执行速度更快典型基础内建cd、exit、history、alias、type特殊双实现命令echo、pwd既有Shell内置版本也存在独立外部可执行文件判断命令类型type cd输出cd is a shell builtin代表内建。四、重点内建命令详解 1. history 命令命令历史存储规则命令先缓存内存**关闭Shell会话时才写入家目录隐藏文件.bash_history核心操作history查看当前会话内存中全部历史命令cat ~/.bash_history读取磁盘持久化历史文件未退出前内容少于内存story -a强制将内存中当前会话历史写入.bash_history!!快速执行上一条命令!编号执行history对应序号命令配套练习对比history与cat .bash_history输出差异执行history -a后再次对比。alias 命令命令别名作用为长命令/带参数命令设置简短别名简化输入查看现有别名alias -p系统默认预装ll、la、l、grep --color等彩色别名自定义别名alias lils -li生效范围别名仅在当前Shell进程有效新建子Shell/重启终端全部失效。五、小结分清父Shell、子Shell进程层级会用ps --forest查看树形进程掌握多种创建子Shell的方式执行bash、括号进程列表、后台、coproc协程区分两类命令内建命令无新进程、速度快外部命令fork子进程、依赖磁盘文件熟练使用history管理命令历史、alias自定义快捷命令。

相关新闻

洛谷 T692586:树上选点 ← 树形DP

洛谷 T692586:树上选点 ← 树形DP

【题目来源】 https://www.luogu.com.cn/problem/T692586 【题目描述】 给定一棵有 n 个结点的无向树,结点编号为 1∼n。 每个结点 i 有一个权值 ai(可以为负数、零或正数)。 现在要从这些结点中选出若干个,使得: &am…

2026/7/6 3:09:17阅读更多 →
高效制作专业幻灯片的完全指南:Marp for VS Code实用教程

高效制作专业幻灯片的完全指南:Marp for VS Code实用教程

高效制作专业幻灯片的完全指南:Marp for VS Code实用教程 【免费下载链接】marp-vscode Marp for VS Code: Create slide deck written in Marp Markdown on VS Code 项目地址: https://gitcode.com/gh_mirrors/ma/marp-vscode Marp for VS Code是一个强大的…

2026/7/6 3:04:17阅读更多 →
Flutter 开发鸿蒙实战:Windows 环境下从 HAP 构建到四 Tab 页面运行

Flutter 开发鸿蒙实战:Windows 环境下从 HAP 构建到四 Tab 页面运行

Flutter 开发鸿蒙实战:Windows 环境下从 HAP 构建到四 Tab 页面运行 很多初学者第一次用 Flutter 开发鸿蒙时,最容易卡在两个地方:一是看到项目里生成了 ohos 目录,就忍不住直接改鸿蒙工程;二是构建时不知道应该先启动…

2026/7/6 3:04:17阅读更多 →
商用轨道插座怎么选更划算 各品牌性价比盘点帮你避坑少花冤枉钱

商用轨道插座怎么选更划算 各品牌性价比盘点帮你避坑少花冤枉钱

开过咖啡店、装过联合办公、做过商业展厅的朋友都懂,配电布局绝对是装修前期最容易踩的坑:插座布少了,后期加设备要拖插排乱不说,还容易过载跳闸;布多了,闲置的插座丑还浪费钱,换个业态还要砸墙…

2026/7/6 3:54:20阅读更多 →
MLflow在LLM评估中的工程实践:实现可追溯、可比较、可归因的模型管理

MLflow在LLM评估中的工程实践:实现可追溯、可比较、可归因的模型管理

1. 为什么我坚持用 MLflow 做 LLM 评估——一个实战派的坦白局你有没有过这种经历:上周跑通的微调实验,这周想复现时发现连自己都搞不清当时用的是哪个 tokenizer、哪版数据清洗脚本、甚至 batch size 是 8 还是 16?更别提团队协作时&#xf…

2026/7/6 3:54:20阅读更多 →
FastAPI 新手入门第 9 篇:配置不要写死在代码里

FastAPI 新手入门第 9 篇:配置不要写死在代码里

前面几篇我们一直把代码写在项目里,接口也能正常跑。但真实项目里总会遇到一类值:本地和线上不一样,今天和明天也可能不一样。 比如应用名称、运行环境、数据库地址。它们不适合写死在代码里。 这一篇我们先不接数据库,只做一件事…

2026/7/6 3:54:20阅读更多 →
优化Java应用性能的五个实战技巧

优化Java应用性能的五个实战技巧

性能优化是工程实践,不是玄学当你盯着VisualVM里那条几乎垂直上升的CPU曲线,或者GC日志里频繁出现的Full GC字样时,总希望有一种能一键解决所有问题的银弹。可惜,Java性能优化从来不是靠某个参数或某个框架就能搞定的。它是一场需…

2026/7/6 3:54:20阅读更多 →
javascript的动态this与动态绑定

javascript的动态this与动态绑定

javascript是一门动态语言,最明显就是那个dynamic this。它一般都是作为函数调用者存在。在javascript,所有关系都可以作为对象的一个关联数组元素而存在。那么函数就是被掰成两部分储存于对象,一是其函数名(键)&#…

2026/7/6 3:54:20阅读更多 →
关于对类和对象的理解

关于对类和对象的理解

关于类的理解 对具有相同特征和作用的对象集合.类定义事物含有的属性和行为,常有于描述对象 关于对象的理解 任何一个具体的事物或者物体是一个对象,是类实例化之后的具体个体 下面是对于类和对象写的一段代码,如有不对之处希望指出 public c…

2026/7/6 3:49:20阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/6 2:48:33阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/6 0:10:35阅读更多 →
Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 技术架构先行:官方接口的合规应用 你是否曾在BP阶段手忙脚乱&#x…

2026/7/6 0:03:39阅读更多 →
多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理 【免费下载链接】mRemoteNG mRemoteNG is the next generation of mRemote, open source, tabbed, multi-protocol, remote connections manager. 项目地址: https://gitcode.com/gh_m…

2026/7/6 0:03:39阅读更多 →
COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南在数据分析和处理领域,去重统计是最基础也是最频繁使用的操作之一。当数据量达到亿级规模时,不同的去重统计方法在性能上可能产生天壤之别。本文将基于 5 亿行数据的实…

2026/7/6 0:03:39阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/5 1:30:27阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/5 3:48:10阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/5 3:48:09阅读更多 →