当前位置: 首页 > news >正文

终端是什么,怎么用?

        给大家安利一个 AI 学习神站!在这个 AI 卷成红海的时代,甭管你是硬核开发者还是代码小白,啃透 AI 技能树都是刚需。这站牛逼之处在于:全程用 "变量名式" 幽默 + 生活化类比拆解 AI,从入门到入土(啊不,到精通)一站式通关,理解效率直接拉满。话不多说,链接甩这了,懂的都懂→前言 – 人工智能教程

首先来说,要弄清楚终端。就要知道操作系统

操作系统分为两部分: 1.内核。 2. 用户交界页面

内核负责系统的全部逻辑操作,由大量的命令组成,常规的用户是接触不到的

交界页面就是开机之后我们看到的全部东西,包括软件,窗口,应用程序等等;

  • 用户界面:

    • 图形用户界面 (GUI): 你看到的桌面、窗口、图标、菜单、鼠标点击。直观、易用,适合日常操作(浏览网页、写文档、看视频)。

    • 命令行界面 (CLI): 一个黑色的窗口(终端/Terminal/Shell),你需要在里面输入文字命令并按回车来执行。更原始,但更强大、更灵活、更精确。

那终端就是连接这两部分的纽带:可以在交换界面上打开终端这个app,对内核部分某些逻辑进行修改;


终端命令格式

  1. 对象; 2.内容修饰; 3.内容

命令1:echowo shi ge da shuai ge

这样电脑就会输出“wo shi ge da shuai ge”

终端启动后,默认路径在当前用户文件夹的根目录下,可以输入

命令2:pwd

来查看当前路径

终端具有相对路径与绝对路径;

命令3:cd /application  就是绝对路径

而相对路径则告诉你从现在开始,该怎么走。就是在绝对路径前加一个.

若目前已经在application文件夹下,想进入vivado子文件夹

就可以使用相对路径:命令4:cd ./vivado

最常用的就是:直接将文件夹拖到终端界面中,便会自动显示路径;

若是想查看当前路径下有什么文件,可以使用

命令5:ls

命令6:ls -R(会将子文件也列出来)

命令7:clear(清楚页面)

值得一提的是sudo是超级管理员指令前缀

命令8:caffeinate(临时禁止系统休眠)

命令9:touch -t 199606060030 拖入文件(可更改文件比如照片创建日期)

命令10:killall wechat(结束应用进程并退出)

需要显示隐藏文件夹时:

命令11:defaults write com.apple.finder AppleShowAllFiles -bool true; killall Finder

当不需要显示时:

命令12:defaults write com.apple.finder AppleShowAllFiles -bool false; killall Finder

命令13:rm(删除)

        rm 文件名:删除文件。

        rm -r 目录名:递归删除目录及其里面所有内容。

        rm -i 文件名:删除前询问确认 (Interactive)。建议养成加 -i 的习惯。

        rm -f 文件名:强制删除,不询问 (Force)。更危险。


路径知识补充

  • ~ (波浪号): 代表当前用户的家目录 (/Users/你的用户名 on macOS, /home/你的用户名 on Linux)。这是你登录后默认的位置,也是 cd 不加参数时去的地方。cd ~ 非常常用!

  • . (一个点): 代表当前目录。如 ./myprogram 表示运行当前目录下的 myprogram 文件。

  • .. (两个点): 代表上级目录。如 cd .. 返回上一层目录。

  • /

    • 在路径开头:表示根目录(整个文件系统的起点),如 /Users

    • 在路径中间:表示目录层级的分隔符,如 /Users/YourName/Documents

常用命令补充

mkdir 目录名: 创建新目录 (Make Directory)。如 mkdir project。

rmdir 目录名: 删除空目录 (Remove Directory)。

cp 源文件 目标位置: 复制文件 (Copy)。如 cp report.txt backup/。

cp -r 源目录 目标位置:复制整个目录。

mv 源文件 目标位置: 移动文件或目录,也可用于重命名 (Move)。

  1. 移动:mv old.txt documents/
  2. 重命名:mv old.txt new.txt (在同一目录下操作就是重命名)

cat 文件名: 在终端显示整个文件内容 (Concatenate)。适合看短文件

less 文件名 / more 文件名: 分页显示文件内容。按空格翻页,按 q 退出。看长文件必备! (less 比 more 功能更强)。

grep "关键词" 文件名: 在文件中搜索包含指定关键词的行。如 grep "error" logfile.txt 找出所有含 “error” 的行。用来调试找错误!

ps: 查看当前运行的进程 (Process Status)。常用组合 ps aux 查看所有进程详细信息。

man 命令名: 查看命令的详细手册 (Manual)。如 man ls。 按 q 退出。

chmod 和 chown: 修改文件/目录的权限和所有者。很重要,但相对复杂一些,涉及文件权限概念(rwx)。

查看实时日志:tail -f app.log

cat minicom.log 查看串口通信日志


为什么调试zynq, adc等时也会用到终端?

  1. 最底层、最直接的访问:

    • 调试嵌入式系统(如 Zynq FPGA/SoC 板子)或硬件外设(如 ADC 模数转换芯片)时,工程师需要绕过复杂的图形界面,直接与硬件或底层固件对话。

    • 终端提供了一个纯文本、无干扰、极其高效的通道。

  2. 串口通信 (Serial Communication):

    • 这是嵌入式开发调试的生命线!开发板(Zynq)通常通过 UART/USB 转串口 连接到开发者的电脑。

    • 终端程序(如 macOS/Linux 的 screenminicompicocom;Windows 的 PuTTY, Tera Term, MobaXterm)可以打开电脑上的串口设备文件 (如 macOS/Linux 的 /dev/cu.usbserial-XXXX 或 /dev/ttyUSB0;Windows 的 COMx )。

    • 通过这个串口连接:

      • 接收信息: 可以看到开发板启动时 Bootloader (如 U-Boot) 的输出信息、操作系统内核 (如 Linux) 的启动日志、应用程序打印的调试信息 (printf)。这是诊断启动失败、驱动问题的关键!

      • 发送命令: 可以在 Bootloader 阶段中断启动流程、设置环境变量、更新固件;可以在操作系统启动后,登录到板子的 Linux Shell 中,像操作本地电脑一样操作开发板(运行程序、查看文件、配置网络、读写设备节点)。

      • 与硬件交互: 很多传感器、ADC 模块、简单的控制板,其驱动程序或测试程序就是设计成通过串口发送文本命令(如 READ A0)并接收文本响应(如 A0: 3.25V)。终端是发送这些命令和查看响应的最直接工具。

  3. 网络调试 (SSH/Telnet):

    • 一旦开发板有了网络连接,开发者通常使用 ssh (安全) 或 telnet (不安全) 命令通过终端远程登录到开发板的操作系统。这比物理串口速度更快,功能更全,是后续开发和调试的主要方式。

  4. 编译与构建:

    • 嵌入式开发离不开交叉编译(在电脑上生成能在 ARM 等处理器上运行的程序)。庞大的编译工具链 (gccmakecmake 等) 通常只提供命令行接口。终端是运行编译命令、查看编译错误和警告的自然选择。集成开发环境 (IDE) 如 Vitis/Vivado 内部也是调用这些命令行工具。

  5. 脚本自动化:

    • 复杂的开发、测试、部署流程(如自动编译、烧写固件、运行测试用例、收集数据)可以通过编写 Shell 脚本 (如 .sh 文件) 在终端中自动执行,大大提高效率。GUI 很难实现这种级别的自动化。

总结:

  • 必要通道: 串口是连接开发板和电脑的物理/逻辑桥梁,终端是使用这个桥梁的标准工具。

  • 信息窗口: 启动日志、调试打印 (printf) 都输出到终端,可诊断问题。

  • 控制台: 登录到目标板的操作系统 Shell 进行各种操作。

  • 硬件交互: 直接发送命令给硬件或底层驱动(尤其在没有 GUI 工具时)。

  • 工具链基础: 编译、构建等核心开发工具都是命令行的。

http://www.dtcms.com/a/320669.html

相关文章:

  • 基于Spring Boot的Minio图片定时清理实践总结
  • Mac下安装Conda虚拟环境管理器
  • Vue3 计算属性与监听器
  • 基于django电子产品销售系统的设计与实现/基于python的在线购物商城系统
  • 豆包新模型矩阵+PromptPilot:AI开发效率革命的终极方案
  • 3 种简单方法备份 iPhone 上的短信 [2025]
  • 僵尸进程、孤儿进程、进程优先级、/proc 文件系统、CRC 与网络溢出问题处理(实战 + 原理)
  • 从安卓兼容性困境到腾讯Bugly的救赎:全链路崩溃监控解决方案-卓伊凡|bigniu
  • 【前端】纯代码实现Power BI自动化
  • 【Linux系统】万字解析,文件IO
  • 代码随想录刷题Day26
  • 最长回文子串
  • Redis(④-消息队列削峰)
  • 使用OAK相机实现智能物料检测与ABB机械臂抓取
  • 《Hive、HBase、StarRocks、MySQL、OceanBase 全面对比:架构、优缺点与使用场景详解》
  • Numpy科学计算与数据分析:Numpy数据分析与图像处理入门
  • [激光原理与应用-182]:测量仪器 - 光束型 - 光束质量分析仪
  • 无人机航拍数据集|第9期 无人机风力电机表面损伤目标检测YOLO数据集2995张yolov11/yolov8/yolov5可训练
  • WORD接受修订,并修改修订后文字的颜色
  • 2-等级保护
  • LabVIEW多循环架构
  • (已解决)IDEA突然无法使用Git功能
  • 利用千眼狼sCMOS相机开展冷离子云成像与测量实验
  • Mac上安装和配置MySQL(使用Homebrew安装MySQL 8.0)
  • LeetCode 面试经典 150_数组/字符串_加油站(14_134_C++_中等)(贪心算法)
  • OpenBMC Entity Manager 深度解析:架构、原理与应用实践
  • 【优选算法】多源BFS
  • C#调用Unity实现设备仿真开发
  • Java+uniapp+websocket实现实时聊天,并保存聊天记录
  • (nice!!!)(LeetCode 每日一题) 808. 分汤 (深度优先搜索dfs)