跳到内容

第 0 卷 / 第 2 章 / 第 6 课

2.6 命令速查参考页 ​

类型:参考页,不要求顺序阅读

适用范围:Bash/Zsh 常用交互操作;示例优先按 GNU/Linux 验证,PowerShell 语法不同

身份与命令来源 ​

目标命令注意
当前用户whoami输出随账户变化
当前 Shell 进程ps -p $$ -o comm=$SHELL 通常是登录 Shell
命令类型和所有候选type -a name能看别名、函数和内建命令
可调用的首个命令command -v name跨 Shell 通常比 which 稳妥
Bash 内建帮助help cd只适用于 Bash 内建命令

导航 ​

目标命令
当前目录pwd
列出条目ls
包含隐藏条目和详情ls -la
进入目录cd path
上一级cd ..
上一个目录cd -
家目录cd

~ 通常展开为家目录,. 是当前目录。引用路径变量:cd "$dir"。

文件与目录 ​

目标命令注意
临时目录workdir=$(mktemp -d)记录并在结束后清理
建目录mkdir -p a/b-p 同时创建父目录
建空文件/更新时间touch file已有内容不会被清空
精确写一行printf '%s\n' text > file> 会覆盖
追加一行printf '%s\n' text >> file>> 追加
复制文件cp -- src dst-- 结束选项解析
移动或改名mv -- old new可能覆盖已有目标,依选项而定
删文件rm -- file通常不进回收站
删空目录rmdir dir非空时拒绝
递归复制cp -R -- src dst元数据保留取决于选项和平台

环境与 PATH ​

目标命令
当前 Shell 变量NAME=value
导出给新子进程export NAME
按字面打印变量printf '%s\n' "$NAME"
临时添加工具目录PATH="$dir:$PATH"; export PATH
删除变量unset NAME

启动文件因 Bash/Zsh、登录/交互模式和系统而异。不要盲目覆盖或重复追加 ~/.bashrc、~/.profile、~/.zshrc。

通配符与引用 ​

写法含义
*.log任意 .log 名称
file-?.txt? 匹配一个字符
file-[13].txt匹配 1 或 3
"$path"参数展开后仍保持一个参数
-- "$path"防止以 - 开头的路径被当作选项

未匹配通配符的行为因 Shell 和选项而异。批处理先打印目标;改扩展名不会转换文件格式。

标准流、管道与重定向 ​

目标写法
覆盖标准输出command >out.log
追加标准输出command >>out.log
单独保存标准错误command 2>err.log
合并输出和错误command >all.log 2>&1
连接两个程序`left
Bash 管道任一段失败可见set -o pipefail

重定向从左到右执行,2>&1 >out.log 与 >out.log 2>&1 不等价。管道默认只连接标准输出。

删除前一分钟 ​

bash
pwd
ls -ld -- "$target"
find "$target" -print

这里的 $target 必须先设为你准备检查的路径;以上只是只读检查片段。确认变量非空、路径正确、范围最小后才删除。不要执行危险命令来测试系统是否会保护你。

需要查细节时 ​

→ 打开隔离练习

Built with VitePress | Software Systems Atlas