Linux Shell 与命令行
Linux Shell、命令行、默认 shell、历史搜索与行编辑能力之间的关系总览。
#type / synthesis
#status / growing
#tech / ops
#resource / linux
#platform / linux
[!info] related notes
- 所属 MOC: Linux MOC
- 命令入口: Linux 基础命令入口
- 速查页: Linux 快捷键速查
- 相关资源: 命令行的艺术
Linux Shell 与命令行
范围
- 这篇笔记关注 Shell、命令行交互、历史搜索与行编辑能力,不展开包管理、文件系统或服务管理。
为什么要放在一起理解
- Shell 是命令解释器,负责接收输入、展开变量、启动程序。
- 命令行是你和 Shell 交互的主要入口。
- Bash 等 Shell 的交互体验,很多时候依赖 readline 提供的历史搜索、移动和编辑能力。
依赖路径 / 调用链 / 演进链
先分清“系统默认 shell”与“当前正在运行的 shell”
cat /etc/shells:查看系统里允许作为登录 shell 的程序。echo $SHELL:查看当前账号默认登录 shell。echo $0:查看当前正在执行的 shell / 脚本上下文。chsh -s $(which zsh):把登录 shell 切换为zsh。
交互效率主要来自历史与行编辑
Tab:补全命令、路径和部分参数。Ctrl-r:反向搜索历史命令。Ctrl-a/Ctrl-e:跳到行首 / 行尾。Ctrl-w/Ctrl-u/Ctrl-k:删除一个词、删到行首、删到行尾。Ctrl-x Ctrl-e:用外部编辑器编辑当前长命令。
需要看进程关系时,不要只盯着当前命令行
pstree -p:查看父子进程关系,适合理解 shell、终端、多进程任务的层级。
对比与易混淆点
echo $SHELL显示的是默认登录 shell,不一定等于当前子 shell。- Shell 快捷键不等于终端模拟器快捷键;
Alt是否生效,常受终端软件设置影响。 - 这篇笔记讲“为什么这些能力会一起出现”,具体按键细节看 Linux 快捷键速查。