Linux 终端与 Shell 入门:命令结构、引号和帮助用法
在 Linux 中运行命令,通常先打开终端,再向 Shell(命令解释器)输入指令。终端提供输入与显示输出的界面,Shell 则解释输入并执行命令。本课从命令结构、输出和错误入手,帮助您在遇到陌生命令时查找可靠的用法说明。
还没有可操作的 Linux 环境时,可先参考虚拟机安装与基本设置课程(英语)。以下练习应在 Linux 虚拟机的来宾系统终端中输入,避免把宿主 Windows 的 PowerShell 当成 Bash;不同 Shell 的语法和命令实现可能不同。
终端与 Shell 有什么区别?
终端应用负责接收键盘输入并显示文字。Shell 在其中读取、解析命令,可以直接处理自身的内置功能,也可以启动外部程序。程序输出再通过终端显示,因此窗口外观不同,并不意味着同一种 Shell 的基本命令写法也不同。
本课使用 Bash,全称为 Bourne Again Shell。Ubuntu 和 Rocky Linux 都可使用 Bash,但实际运行的 Shell、已安装命令和默认设置仍应以当前环境为准。远程服务器可能没有图形终端应用,仍可以通过相应连接进入 Shell 操作。
打开终端并找到提示符
在图形桌面的应用列表中搜索“终端”或 Terminal,打开后观察闪烁的输入光标。菜单名称和启动方式随桌面环境而变,提示文字通常包含用户名、主机或当前路径。这些提示符表示 Shell 正在等待输入。
提示符中可能有 $ 或 #,它们不是要输入的命令内容,也不能单凭外观判断真实权限。本文代码块仅列出可复制的命令;需要管理员权限的操作应另行说明是否使用 sudo,本课这些基础练习不需要 sudo。
输入下面的命令,然后按 Enter:
printf '%s\n' hello
命令输出 hello,完成后 Shell 再次等待输入:
hello
printf 按格式输出文字,其中 %s 代表字符串,\n 表示换行。这里的单引号使格式字符串按原样传给 printf。您看到的提示符文字与其他截图不同,并不影响这段输出。
读懂命令、选项与参数
许多命令采用命令名 + 选项 + 参数的形式:命令名决定做什么,选项调整做法,参数指定处理对象。并非每条命令都必须有选项和参数,也不能假定所有程序都用相同的选项字母。
ls -l /etc
| 部分 | 示例 | 含义 |
|---|---|---|
| 命令名 | ls |
列出条目。 |
| 选项 | -l |
使用详细列表格式。 |
| 参数 | /etc |
指定要列出的目录。 |
这条命令查看 /etc 的目录条目,不会仅因指定目录就显示其中每个文件的内容。具体条目、时间和权限随系统变化,不应把另一台机器的列表当作固定预期结果。
空格在命令行中分隔各部分。手册中的 ls [OPTION] [FILE...] 是用法概述,方括号表示该部分可省略,省略号表示可重复指定对象;这些说明符号不应原样输入。某些实际命令也会使用方括号字符,需根据对应手册区分,不能一概删除。
要把包含空格的文字作为一个参数传入,可用引号包住。比较以下两条命令:
printf '%s\n' hello world
printf '%s\n' 'hello world'
第一条把 hello 和 world 作为两个参数,输出两行;第二条只传入一个字符串,输出一行。依次运行时的实际连续输出为:
hello
world
hello world
两条输入命令之间的空行不额外打印空行。不同引号还会影响变量等 Shell 扩展,单引号与双引号不能在所有情况下互换;这里先掌握把含空格的值保留为一个参数的用法即可。
处理输入、输出与错误
输入命令并按 Enter 后,Shell 执行相应操作。屏幕上的文字可能是正常结果,也可能是在报告无效选项或文件不存在等错误。没有输出不一定失败,有输出也不一定成功;应结合命令目的、错误信息及需要时的退出状态判断。
输出较长时,可以在终端中向上滚动查看。想重复执行前一条命令,可用上箭头调出历史记录,先检查内容再按 Enter。由于命令可能被保存到历史中,不要把密码或令牌直接写成命令行参数。
中断正在前台运行的命令,通常按 Ctrl+C,终端一般会发送中断信号;它在这里通常不是复制快捷键。程序可能处理或忽略该信号,因此不保证所有任务立即停止,操作前应了解当前程序。
输入 exit 可退出当前 Shell。空输入行上的 Ctrl+D 常用于表示输入结束并退出,但可以受 Shell 设置影响;在等待输入的其他程序里,它可能只是结束输入。远程会话可能随 Shell 退出而断开,嵌套 Shell 则可能回到外层。
为陌生命令寻找帮助
不要先猜选项并尝试修改系统,而应先判断命令是什么,再找对应说明。外部程序和 Bash 内置命令的帮助入口有所不同:
| 方法 | 适用情况 |
|---|---|
命令名 --help |
程序支持时,快速查看选项;并非所有命令都有这个选项。 |
man 命令名 |
从已安装的手册页阅读详细语法和选项。 |
help 命令名 |
阅读 Bash 内置命令的帮助。 |
type 命令名 |
了解 Bash 将名称解析为内置命令、别名、函数还是外部程序。 |
例如先看 ls --help,再读 man ls。man 通常用分页器显示手册;默认使用 less 等常见分页器时,可以按 / 输入搜索词,再按 Enter 搜索,按 q 退出。自定义分页器的按键可能不同,最小化系统也可能缺少 man 或对应手册页。
ls --help
man ls
cd 是 Bash 内置命令的例子,先用 type 确认,再用 help 阅读:
type cd
help cd
显示文字会随 Shell、版本和语言而变,且已有别名或函数可能改变名称解析。更多示例可参考 man 命令与手册页、Bash help 内置帮助和 type 命令与名称解析。
完成一段简短练习
- 运行 type printf,确认当前 Bash 如何解析 printf;在未被同名函数等覆盖的常见环境中,它是内置命令。
- 运行 help printf,找到格式字符串与参数的说明。
- 运行最后一行,检查 Linux practice 是否只输出一行。这里使用英文练习字符串是为了便于核对输出。
type printf
help printf
printf '%s\n' 'Linux practice'
前两条输出帮助及类型信息,措辞取决于版本和语言。最后一条的结果是:
Linux practice
遇到 command not found,先检查拼写和当前环境是否有该命令。遇到 invalid option,查对应帮助确认支持的选项和位置。权限错误也不意味着应给所有命令加 sudo,应先找到究竟哪个文件或操作需要权限,再按实际授权处理。
官方文档
Shell 语法、引号、信号以及 printf、help、type 的详细定义可查 man7 托管的 Bash 上游手册。手册语法约定及分页显示机制见 man(1) 上游手册;实际使用时还应阅读当前机器的 Bash help 与命令帮助。




