Terminal
Terminals
也称为命令行或控制台,使我们能够在计算机上完成和自动化任务,而无需图形用户界面。终端起源于 1950 年代到 1960 年代左右,从那时起就一直是所有操作系统的重要组成部分——从台式机到隐藏在云中的服务器,再到像 Raspberry PI Zero 这样的微型计算机,甚至手机。在大多数情况下,终端、命令行意味着同一件 事。
面试中命令行通常特指类Unix系统,如Linux、macOS、Ubuntu等,这些系统与生产环境保持一致。
如果你是 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 :推荐使用 WSL(Windows Subsystem for Linux)?
WSL 安装
# 安装wsl
wsl --install
# 查看可用的Linux发行版列表
wsl --list --online
# 安装指定的Linux发行版
wsl --install -d <distro-name>
# 示例:wsl --install -d Ubuntu-24.04
# 列出已安装的发行版的名称、运行状态、wsl版本
wsl -l -v
# 设置默认发 行版(配置后输入wsl命令即可进入)
wsl --set-default <distro-name>
如果你不属于以上系统,推荐购买云服务器并选择Linux系统配置,然后使用SSH连接到服务器。
网道 bash 教程是开源的 bash 文档,教科书式的篇章划分能帮助学习者系统的了解终端命令。
tldr是社区维护的命令行工具帮助页面合集,支持在线查询终端命令,有不同平台选择,支持不同语言显示
基本语法
命令格式
组成部分 | 格式 | 示例 | 说明 |
---|---|---|---|
基本格式 | command [ arg1 ... [ argN ]] | ls -l | command是命令,后面跟参数 |
短参数 | -参数 | ls -l | 便于手动输入 |
长参数 | --参数名 | ls --list | 用在脚本中,可读性更好 |
多行命令 | 命令 \ 续行内容 | echo foo \ bar | 使用反斜杠连接多行 |
命令分隔与组合
符号 | 功能 | 示例 | 说明 |
---|---|---|---|
; | 命令分隔符 | clear; ls | 顺序执行多个命令,不管前一个是否成功 |
&& | 逻辑与 | Command1 && Command2 | 第一个命令成功后才执行第二个 |
|| | 逻辑或 | Command1 || Command2 | 第一个命令失败后才执行第二个 |
空格处理规则
情况 | 处理方式 | 示例 | 说明 |
---|---|---|---|
参数分隔 | 用空格或Tab分隔 | echo foo bar | foo和bar被认为是两个参数 |
多余空格 | 自动忽略 | echo foo bar | 多个空格会被忽略为一个 |
路径含空格 | 使用引号保护 | "C:\Program Files" | 防止路径被错误分割 |
type命令
用法 | 命令 | 示例输出 | 说明 |
---|---|---|---|
基本用法 | type 命令名 | echo is a shell builtin | 判断命令类型 |
查看所有定义 | type -a 命令名 | 显示所有可能的定义 | 一个命令可能有多种实现 |
返回类型 | type -t 命令名 | file 、builtin 、alias 等 | 返回命令的具体类型 |
命令类型说明
类型 | 英文 | 说明 | 示例 |
---|---|---|---|
别名 | alias | 用户自定义的命令别名 | ll 通常是 ls -l 的别名 |
关键词 | keyword | Shell的保留关键字 | if 、for 、while |
函数 | function | 用户定义的Shell函数 | 自定义函数 |
内置命令 | builtin | Shell内置的命令 | echo 、cd 、pwd |
外部文件 | file | 独立的可执行文件 | /bin/ls 、/usr/bin/grep |