Linux Shell 与命令行

Linux Shell、命令行、默认 shell、历史搜索与行编辑能力之间的关系总览。

#type / synthesis #status / growing #tech / ops #resource / linux #platform / linux

[!info] related notes

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 快捷键速查
创建于 2026/5/7 更新于 2026/5/27