终端是什么,怎么用?
给大家安利一个 AI 学习神站!在这个 AI 卷成红海的时代,甭管你是硬核开发者还是代码小白,啃透 AI 技能树都是刚需。这站牛逼之处在于:全程用 "变量名式" 幽默 + 生活化类比拆解 AI,从入门到入土(啊不,到精通)一站式通关,理解效率直接拉满。话不多说,链接甩这了,懂的都懂→前言 – 人工智能教程
首先来说,要弄清楚终端。就要知道操作系统
操作系统分为两部分: 1.内核。 2. 用户交界页面
内核负责系统的全部逻辑操作,由大量的命令组成,常规的用户是接触不到的
交界页面就是开机之后我们看到的全部东西,包括软件,窗口,应用程序等等;
-
用户界面:
-
图形用户界面 (GUI): 你看到的桌面、窗口、图标、菜单、鼠标点击。直观、易用,适合日常操作(浏览网页、写文档、看视频)。
-
命令行界面 (CLI): 一个黑色的窗口(终端/Terminal/Shell),你需要在里面输入文字命令并按回车来执行。更原始,但更强大、更灵活、更精确。
-
那终端就是连接这两部分的纽带:可以在交换界面上打开终端这个app,对内核部分某些逻辑进行修改;
终端命令格式
- 对象; 2.内容修饰; 3.内容
命令1:echo”wo 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)。
- 移动:mv old.txt documents/
- 重命名: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等时也会用到终端?
-
最底层、最直接的访问:
-
调试嵌入式系统(如 Zynq FPGA/SoC 板子)或硬件外设(如 ADC 模数转换芯片)时,工程师需要绕过复杂的图形界面,直接与硬件或底层固件对话。
-
终端提供了一个纯文本、无干扰、极其高效的通道。
-
-
串口通信 (Serial Communication):
-
这是嵌入式开发调试的生命线!开发板(Zynq)通常通过 UART/USB 转串口 连接到开发者的电脑。
-
终端程序(如 macOS/Linux 的
screen
,minicom
,picocom
;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
)。终端是发送这些命令和查看响应的最直接工具。
-
-
-
网络调试 (SSH/Telnet):
-
一旦开发板有了网络连接,开发者通常使用
ssh
(安全) 或telnet
(不安全) 命令通过终端远程登录到开发板的操作系统。这比物理串口速度更快,功能更全,是后续开发和调试的主要方式。
-
-
编译与构建:
-
嵌入式开发离不开交叉编译(在电脑上生成能在 ARM 等处理器上运行的程序)。庞大的编译工具链 (
gcc
,make
,cmake
等) 通常只提供命令行接口。终端是运行编译命令、查看编译错误和警告的自然选择。集成开发环境 (IDE) 如 Vitis/Vivado 内部也是调用这些命令行工具。
-
-
脚本自动化:
-
复杂的开发、测试、部署流程(如自动编译、烧写固件、运行测试用例、收集数据)可以通过编写 Shell 脚本 (如
.sh
文件) 在终端中自动执行,大大提高效率。GUI 很难实现这种级别的自动化。
-
总结:
-
必要通道: 串口是连接开发板和电脑的物理/逻辑桥梁,终端是使用这个桥梁的标准工具。
-
信息窗口: 启动日志、调试打印 (
printf
) 都输出到终端,可诊断问题。 -
控制台: 登录到目标板的操作系统 Shell 进行各种操作。
-
硬件交互: 直接发送命令给硬件或底层驱动(尤其在没有 GUI 工具时)。
-
工具链基础: 编译、构建等核心开发工具都是命令行的。