Shell常用内置命令与外部命令

这里写目录标题

  • Shell 内置命令 vs 外部命令
    • 内置命令
      • 1. `cd` —— **切换当前工作目录**
        • 常用例子:
      • 2. `export` —— **设置环境变量(供子进程继承)**
        • 常用例子:
      • 3. `source` —— **在当前 shell 中执行脚本(不新开进程)**
        • 常用例子:
      • 4. `history` —— **查看历史命令**
        • 常用例子:
      • 总结对比表
      • 它们如何协同工作?(完整例子)
    • 外部命令
      • cat
      • grep
        • 基本语法
        • 常用选项(flags)
        • 实际应用场景(运筹优化相关)
        • 小技巧:快速组合

Shell 内置命令 vs 外部命令

类型例子特点
Shell 内置命令cd,export,source,history由 shell 自己实现,不依赖外部文件
外部命令(程序)cat,nano,python,git,claude是磁盘上的可执行文件,shell 负责启动它们

💡 你可以用type命令区分:

typecd# cd is a shell builtintypecat# cat is /bin/cattypenano# nano is /usr/bin/nano

内置命令

你提到的这四个命令 ——cdexportsourcehistory—— 都是shell(如 zsh、bash)的内置命令(built-in commands),它们由 shell 本身直接实现,不依赖外部程序。下面我用简洁清晰的方式为你解释每个命令的作用,并结合你作为运筹优化研究者的实际使用场景。


1.cd——切换当前工作目录

  • 全称:change directory
  • 作用:进入某个文件夹
常用例子:
cd~/projects/vrp_solver# 进入你的 VRP 算法项目目录cd..# 返回上一级目录cd~# 回到用户主目录pwd# (配合使用)显示当前路径

为什么重要?
你运行python solve.py时,程序会从当前目录读取数据文件。用cd确保你在正确的项目文件夹里。


2.export——设置环境变量(供子进程继承)

  • 作用:定义一个环境变量,让后续启动的程序(如 Python、Claude、Gurobi)能读取它
常用例子:
# 设置 Claude 的任务列表 IDexportCLAUDE_CODE_TASK_LIST_ID=vrp-experiment# 设置 Gurobi 许可证路径exportGRB_LICENSE_FILE=/path/to/gurobi.lic# 查看所有环境变量env|grepCLAUDE

关键点

  • 普通赋值VAR=value只在当前 shell 有效,不会传递给子程序
  • export VAR=value会让VARPython、Claude、求解器等子进程看到

📌运筹场景:很多求解器(Gurobi/CPLEX)都通过环境变量读取许可证或配置!


3.source——在当前 shell 中执行脚本(不新开进程)

  • 作用:运行一个脚本文件,其中的变量和设置会直接影响当前终端环境
常用例子:
# 重新加载 ~/.zshrc 配置(比如你刚加了 export)source~/.zshrc# 激活 Python 虚拟环境(conda/venv 实际就是用 source)sourcevenv/bin/activate

⚠️ 对比:

  • 直接运行./script.sh→ 在新进程中执行,退出后变量失效
  • source script.sh→ 在当前 shell中执行,变量和路径修改会保留!

运筹场景
你写了一个setup_env.sh来设置求解器路径,必须用source setup_env.sh才能让当前终端生效。


4.history——查看历史命令

  • 作用:显示你之前在终端输入过的命令列表
常用例子:
history# 显示最近几百条命令history|grepclaude# 搜索所有含 "claude" 的历史命令

💡快捷技巧

  • ↑ / ↓ 方向键:快速浏览历史命令
  • !n:重新执行第 n 条命令(如!1024
  • !!:重复上一条命令

运筹场景
你昨天跑了一个复杂的实验命令,今天想复现?用history | grep python找回来!


总结对比表

命令类型主要用途是否影响当前 shell
cd内置命令切换目录✅ 是
export内置命令设置环境变量(供子程序使用)✅ 是
source内置命令执行脚本并继承其环境✅ 是
history内置命令查看命令历史❌ 否(只读)

它们如何协同工作?(完整例子)

假设你要为一个 VRP 实验配置环境:

# 1. 进入项目目录cd~/projects/vrp_study# 2. 设置共享任务列表(用于多会话协作)exportCLAUDE_CODE_TASK_LIST_ID=vrp-2026# 3. 激活虚拟环境(实际是 source 一个脚本)sourcevenv/bin/activate# 4. 启动 Claudeclaude# 5. 之后想找回这个命令?history|grepCLAUDE_CODE

外部命令

cat

快速显示小文件内容

grep

grep 是一个 shell 外部命令(external command)

grepUnix/Linux/macOS 系统中最强大、最常用的文本搜索命令之一,它的名字来源于“global regular expression print”(全局正则表达式打印)。


核心作用 :在文件或文本中快速查找包含特定关键词(或模式)的行。

💡 可以把它想象成“命令行里的 Ctrl+F(查找)”,但功能远比图形界面的查找更强大。


基本语法
grep"关键词"文件名
  1. 例子 1:在日志中找错误

    grep"ERROR"solver.log

    → 输出所有包含ERROR的行。

  2. 例子 2:在代码中找函数调用

    grep"solve_vrp"*.py

    → 在当前目录所有.py文件中搜索solve_vrp,并显示匹配的行和文件名。


常用选项(flags)
选项作用示例
-i忽略大小写grep -i "error" log.txt
-n显示行号grep -n "timeout" config.py
-r递归搜索子目录grep -r "GUROBI" ./projects/
-v反向匹配(显示不包含关键词的行)grep -v "#" config.txt(过滤掉注释)
-l只显示包含匹配项的文件名grep -l "main" *.py
-c统计匹配行数grep -c "Optimal" results.txt

实际应用场景(运筹优化相关)
  1. 分析求解器输出

    # 查看 Gurobi 是否找到最优解grep"Optimal solution found"gurobi.log# 提取运行时间grep"Time"cplex.log
  2. 批量检查实验结果

    # 在所有 result_*.txt 中找 "infeasible"grep"infeasible"result_*.txt
  3. 配合其他命令使用(管道|

    # 查看历史命令中所有含 "claude" 的history|grepclaude# 查看当前环境变量中与 "TASK" 相关的env|grepTASK
  4. 过滤数据文件

    # 从 VRP 实例文件中提取节点坐标(假设以 NODE 开头)grep"^NODE"instance.vrp

小技巧:快速组合
# 查找并高亮显示(macOS 需安装 GNU grep 或用 --color=always)grep--color=always"solution"output.txt# 同时搜索多个关键词(OR 关系)grep-E"Optimal|Infeasible|Timeout"results.log

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1210913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何防止 IPA 被反编译,从攻防视角构建一套真正实用的 iOS 成品保护体系

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

寒假spark学习2 - 2305

寒假spark学习2今天通过学习在hadoop数据库中使用spark操作文件 “Spark 读取文件系统的数据 (1)在 spark-shell 中读取 Linux 系统本地文件“/home/hadoop/test.txt”,然后统计出文 件的行数; (2)在 spark-shel…

费雪的创新型公司识别方法

费雪的创新型公司识别方法 关键词:费雪、创新型公司、识别方法、投资分析、公司评估 摘要:本文深入探讨了费雪的创新型公司识别方法。首先介绍了该方法的背景,包括其目的、预期读者和文档结构等内容。接着阐述了核心概念,展示了概念原理和架构的文本示意图与 Mermaid 流程图…

埃塞俄比亚启动建设非洲最大机场

新华社亚的斯亚贝巴1月11日电(记者刘方强)埃塞俄比亚总理阿比日前宣布启动比绍夫图国际机场的建设,该机场建成后将成为非洲最大航空枢纽。 阿比10日在机场动工仪式上表示,这个大型机场项目是埃塞发展战略的一部分,旨在…

2025年我国进口规模创新高 将连续17年成为全球第二大进口市场

中新网1月14日电 国新办14日举行新闻发布会,介绍2025年全年进出口情况。会上,海关总署副署长王军介绍,2025年我国进口达到18.48万亿元,规模创历史新高,将连续17年成为全球第二大进口市场。 王军表示,去年部…

这是一次必要的警示:AI 不是智能,也不会保护你

本文不讨论商业前景、不讨论模型迭代速度, 只讨论一个问题:我们正在把什么东西,错误地当成“可以信任的智能”。 一、先说结论:Transformer 决定了 AI 永远不是“智能体” 当前所有主流大模型,核心仍是 Transformer 架…

AI的“语言的流利度”不能等同于“思想的深度”

以下是为什么说我们可能“误会”了 AI 的三个核心真相:1. 它是“概率机器”,不是“逻辑器官”人类的智能是**“自顶向下”的:我们先有目标、有逻辑、有对世界的物理感知,最后才用语言表达出来。 而 AI(Transformer&…

深入解析:香港服务器CPU中E5和Gold的区别

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Windows 建立的git仓库如何给脚本增加默认的可执行权限

场景 如果我在 Windows 系统下建立一个git仓库,上传了一个 Linux 系统下使用的脚本 默认情况下,这个脚本没有Unix可执行权限标识位 所以当我在Linux系统中克隆下来时,还得执行 chmod +x myscript.sh 如何在Windows…

购买服务器,操作系统选Debian、Ubuntu 还是Rocky Linux? - 实践

购买服务器,操作系统选Debian、Ubuntu 还是Rocky Linux? - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

亲测好用!本科生毕业论文必备TOP8 AI论文软件

亲测好用!本科生毕业论文必备TOP8 AI论文软件 2026年本科生论文写作工具测评:为何要选对AI软件? 随着人工智能技术的不断进步,越来越多的本科生开始借助AI论文软件提升写作效率和质量。然而,面对市场上琳琅满目的工具&…

深度测评!9款AI论文写作软件评测:本科生毕业论文全场景应对指南

深度测评!9款AI论文写作软件评测:本科生毕业论文全场景应对指南 2026年AI论文写作工具测评:功能与效率的深度解析 随着人工智能技术的不断进步,AI论文写作工具逐渐成为本科生撰写毕业论文的重要辅助。然而,面对市场上…

Claude Code这周这波更新有点猛,一次性给你讲清楚

文末有老金的 开源知识库地址全免费 1月23日,Claude Code发布2.1.19版本。 这次更新不是小打小闹,距离老金上次讲2.1更新,Claude Code 2.1.2超详细更新说明,小白也能10分钟上手 也就是从2.1.12到2.1.19,短短7天时间&am…

手把手教你学Simulink--风电电机控制场景实例:基于Simulink的风电变流器SVPWM调制策略仿真

目录 手把手教你学Simulink 一、引言:为什么“风电变流器必须用SVPWM”? 二、SVPWM 基本原理 1. 八个基本电压矢量 2. 合成参考电压矢量 Vref​ 3. 扇区判断与作用时间计算 步骤: 4. 开关序列(7段式对称) 三、…

手把手教你学Simulink--风电电机控制场景实例:基于Simulink的DFIG有功/无功功率解耦控制仿真

目录 手把手教你学Simulink 一、引言:为什么“双馈感应发电机**(DFIG) 二、DFIG 功率控制原理 1. 定子功率表达式(静止坐标系) 2. 定子磁链定向(SFO)——关键一步! 三、系统架…

励磁电感 Lm 选对了,LLC 才真“高效”:半桥 LLC 效率优化

励磁电感 Lm 选对了,LLC 才真“高效”:半桥 LLC 效率优化 🎯🚗🔥 你有没有遇到过这种 LLC: 参数一套下来,ZVS 也有了,波形看着也“挺谐振”,但一上功率——MOSFET 发热、次级二极管发热、变压器也热,效率就是死活上不去。然后你开始怀疑人生:不是说 LLC 天生高效…

“Lm/Lr/Cr 初算 + 校核清单”

0)先定“你要的 LLC ”🎯 LLC 其实就三句话: 想高效:就把 RMS 电流压下去(MOS、变压器、整流都跟着凉快)。 想稳 ZVS:就保证死区里电流能把 Coss 的电荷搬完。 Lm 就是那个“既能压 RMS、又会影响 ZVS”的关键旋钮。拓扑和典型波形见上面配图。 1)最少的公式,但够用…

开源鸿蒙+Flutter:跨端隐私安全纵深防御方案——原生安全赋能与全场景合规实践 - 详解

开源鸿蒙+Flutter:跨端隐私安全纵深防御方案——原生安全赋能与全场景合规实践 - 详解2026-01-24 18:58 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; …

【算法通关指南:数据结构与算法篇】树形结构遍历指南:DFS 递归深搜与 BFS 队列广搜实战解析 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Vue.js 前端开发实战之 08-Vue 开发环境

Vue CLI 安装 Vue CLI Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,可以自动生成 Vue.jsWebpack 的项目模板,其提供了强大的功能,用于定制新项目、配置原型、添加插件和检查 webpack 配置。 Vue CLI 文档:https://cli.vuej…