Skip to content
← 返回文件与文本处理列表
文件与文本处理任务与配置

命令与脚本:终端、会话与日常操作 · 选择 Shell、终端与会话管理器 ​

返回分篇目录

命令与脚本:终端、会话与日常操作 ​

选择 Shell、终端与会话管理器 ​

先分清解释命令的 Shell、承载窗口的终端模拟器和保存多个会话的复用器,再查各自启动及配置示例。

bash · Bourne-Again SHell,兼容 sh 的命令行解释器 ​

另请参阅:zsh, !。 更多信息:https://www.gnu.org/software/bash/manual/bash.html#Invoking-Bash。

  • 启动交互式 shell:
bash
bash
  • 启动一个不加载启动配置的交互式的 shell 会话:
bash
bash --norc
  • 执行命令:
bash
bash -c "{{echo '已执行bash命令'}}"
  • 执行脚本文件:
bash
bash {{路径/到/脚本文件.sh}}
  • 执行脚本文件,并将所有执行过的命令输出到终端:
bash
bash -x {{路径/到/脚本文件.sh}}
  • 执行脚本,遇到满足 errexit 条件的失败时退出(if 测试、&&/|| 等上下文有例外,并非所有非零状态都会退出):
bash
bash -e {{路径/到/脚本文件.sh}}
  • 从 stdin 执行指定的命令:
bash
{{echo "echo '已执行bash命令'"}} | bash
  • 启动一个限制的 shell 会话:
bash
bash {{[-r|--restricted]}}

zsh · Z SHell,提供多种扩展与兼容模式的命令行解释器 ​

另请参阅:bash, !, ^。 更多信息:https://zsh.sourceforge.io/Doc/Release/Invocation.html#Invocation。

  • 启动交互式解释器:
bash
zsh
  • 执行指定的命令:
bash
zsh -c "{{echo '已执行zsh命令'}}"
  • 执行指定的脚本:
bash
zsh {{路径/到/脚本.zsh}}
  • 不执行指定的脚本,只检查其语法错误:
bash
zsh --no-exec {{路径/到/脚本.zsh}}
  • 执行来自 stdin 的命令:
bash
{{echo "echo '已执行zsh命令'"}} | zsh
  • 执行指定的脚本,并打印出每一个将要执行的命令:
bash
zsh --xtrace {{路径/到/脚本.zsh}}
  • 启动详细模式的交互式解释器,会打印出每一个将要执行的命令:
bash
zsh --verbose
  • 在 zsh 里执行指定的命令,但禁用 glob 模式:
bash
noglob {{命令}}

fish · The Friendly Interactive SHell, 一个设计为用户友好的命令行解释器 ​

更多信息:https://fishshell.com/docs/current/cmds/fish.html。

  • 启动交互式 shell 会话:
bash
fish
  • 启动不加载启动配置的交互式 shell 会话:
bash
fish {{[-N|--no-config]}}
  • 执行特定命令:
bash
fish {{[-c|--command]}} "{{echo 'fish is executed'}}"
  • 执行特定脚本:
bash
fish {{路径/到/脚本.fish}}
  • 检查特定脚本是否有语法错误:
bash
fish {{[-n|--no-execute]}} {{路径/到/脚本.fish}}
  • 从 stdin 执行特定命令:
bash
{{echo "echo 'fish is executed'"}} | fish
  • 在专用模式下启动交互式 shell 会话,其中 shell 不会访问旧历史记录或保存新历史记录:
bash
fish {{[-P|--private]}}
  • 定义并导出一个在 shell 重启后持续存在的环境变量(内置):
bash
set {{[-U|--universal]}} {{[-x|--export]}} {{变量名}} {{变量值}}

powershell · 此命令可能会被误认为是 PowerShell 的跨平台版本(以前称为 PowerShell Core),后者使用 pwsh 而不是 powershell ​

Windows 中原始的 powershell 命令仍然可用于使用传统的 Windows PowerShell 版本(5.1 及以下版本)。 更多信息:https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_pwsh。

  • 查看最新的跨平台版本 PowerShell(版本 6 及以上)的命令文档:
bash
tldr pwsh
  • 查看传统 Windows PowerShell(版本 5.1 及以下)的命令文档:
bash
tldr powershell {{[-p|--platform]}} windows

alacritty · 跨平台、GPU 加速的终端模拟器 ​

更多信息:https://manned.org/alacritty。

  • 启动新的 Alacritty 进程并创建窗口:
bash
alacritty
  • 启动 Alacritty 守护进程(不创建窗口):
bash
alacritty --daemon
  • 使用已运行的 Alacritty 进程创建新窗口:
bash
alacritty msg create-window
  • 在指定目录启动 shell(也可配合 alacritty msg create-window 使用):
bash
alacritty --working-directory {{路径/到/目录}}
  • 执行([e]xecute)命令到新 Alacritty 窗口(也可配合 alacritty msg create-window 使用):
bash
alacritty -e {{命令}}
  • 使用替代配置文件(默认使用 $XDG_CONFIG_HOME/alacritty/alacritty.toml):
bash
alacritty --config-file {{路径/到/配置.toml}}
  • 启用实时配置重载运行(也可在 alacritty.toml 中默认启用):
bash
alacritty --live-config-reload --config-file {{路径/到/配置.toml}}

ghostty · 一款快速、功能丰富、跨平台,使用原生 UI 和 GPU 加速的终端模拟器 ​

提示:所有配置文件的选项皆可在命令行使用(使用 --option=argument)。 更多信息:https://ghostty.org/docs/config/reference。

  • 打开新的 Ghostty 窗口(不支持 macOS):
bash
ghostty
  • 在新打开的 Ghostty 窗口运行指定命令(不支持 macOS):
bash
ghostty -e {{命令}}
  • 列出所有默认和已配置的快捷键:
bash
ghostty +list-keybinds
  • 列出所有操作(即可以通过快捷键触发的操作):
bash
ghostty +list-actions
  • 浏览互动式主题列表:
bash
ghostty +list-themes
  • 打印默认配置(包括注释):
bash
ghostty +show-config --default --docs

tmux · 终端复用器 ​

支持包含窗口、窗格等的多个会话。 另请参阅:zellij, screen, herdr。 更多信息:https://github.com/tmux/tmux。

  • 启动一个新会话:
bash
tmux
  • 启动一个指定名称的新会话([s]ession):
bash
tmux {{[new|new-session]}} -s {{name}}
  • 列出现有会话:
bash
tmux {{[ls|list-sessions]}}
  • 连接到最近使用的会话:
bash
tmux {{[a|attach]}}
  • 从当前 tmux 会话断开连接:
bash
<Ctrl b><d>
  • 创建一个新窗口(在 tmux 会话中):
bash
<Ctrl b><c>
  • 在会话和窗口之间切换(在 tmux 会话中):
bash
<Ctrl b><w>
  • 终止指定目标会话([t]arget):
bash
tmux kill-session -t {{name}}

zellij · 带有内置功能的终端复用器 ​

另请参阅:tmux, screen, herdr。 更多信息:https://zellij.dev/documentation/。

  • 启动一个新的命名会话:
bash
zellij {{[-s|--session]}} {{名称}}
  • 列出现有会话:
bash
zellij {{[ls|list-sessions]}}
  • 附加到最近使用的会话:
bash
zellij {{[a|attach]}}
  • 打开一个新窗格(在 zellij 会话中):
bash
<Alt n>
  • 从当前会话分离(在 zellij 会话中):
bash
<Ctrl o><d>

abduco · 终端会话管理器 ​

更多信息:https://manned.org/abduco。

  • 列出会话:
bash
abduco
  • 附加到一个会话,如果不存在则新建它:
bash
abduco -A {{会话名}} {{终端}}
  • 使用dvtm附加到一个会话,如果不存在则新建它:
bash
abduco -A {{会话名}}
  • 从一个会话中分离:
bash
<Ctrl \>
  • 以只读模式附加到一个会话:
bash
abduco -Ar {{会话名}}

继续阅读