Cmder Shell 命令行工具 终端
目录
Shell Cmder bash 终端
Portable 便携的 console emulator for Windows.
下载的时候,会有两个版本,唯一的差别在于有没有内建git工具。
介绍
Cmder is a software package on Windows. It is based on ConEmu with major config overhaul 重大配置改革, comes with a Monokai color scheme 配色方案, amazing clink (further enhanced 进一步增强 by clink-completions) and a custom prompt layout 自定义提示布局.
主要特点
- 便携,没有外部依赖,可移植,解压即可用:The main advantage of Cmder is portability
- 良好的用户界面:丰富的颜色主题(Solarized、Twilight、Ubuntu、xterm、Monokai,可自定义)、可定制字体
- 自带git、ls、curl等命令
- 完全支持中文
- 可设置命令别名
- 支持tab分页、同屏多端口(支持水平分割、垂直分割)
- 支持自定terminal,无论是CMD、PowerShell、bash都可以,还可以注入环境变量
常用快捷键
如果想使用自定义的快捷键,只需将
\vendor\conemu-maximus5\ConEmu.xml中的HotKeys的部分覆盖即可。
基本功能
- Ctrl + T或- 双击底部栏:新建页签
- Ctrl + W或- 鼠标中键点击 Tab:关闭页签,建议把- Ctrl+W的功能改为- 删除光标左侧的单词
- Ctrl + num或- Ctrl + Tab:切换页签
- Alt + enter:切换全屏
- Ctrl + R:历史命令搜索,仅部分 shell 中支持
- Win + Alt + P:设置
- Alt + F4:关闭所有页签
- Tab:自动路径补全
输入操作
- 一个单词一个单词向左/右移动光标:Ctrl + 左右箭头
- 一个字符一个字符向左/右移动光标:左右箭头
- 移动光标到整条命令的起始/结束位置:HOME 或 END【重要】
- 删除光标左/右侧的所有内容:Ctrl + U/K【重要】
- 删除光标左侧的单词:Ctrl + W【重要】(默认功能为关闭页签,需要自定义)
- 删除光标右侧的单词:Alt + D【重要】
- 删除光标左/右侧的字符:backspace 或 DEL
终端设置
配置文件存放在安装目录下的\vendor\conemu-maximus5\ConEmu.xml中,可拿现成的文件覆盖
如果只想使用自定义的快捷键,只需将
HotKeys的部分覆盖即可。
常用设置
- 通用-界面语言:可以设置中文语言,建议禁用自动更新(因为网络太差了)
- 通用-字体:
- 字符集选择默认的ANSI
- 不要勾选Compress long string to fit space,否则中文显示可能有问题
 
- 字符集选择默认的
- 通用-背景:可以设置背景图片,或者设置透明度
- 启动-启动选项:
- 选指定命名任务时,可以选择默认启动的终端类型,如bash、cmd、powershell
- 建议勾选自动保存/恢复打开的标签页,不管关闭之前打开了几个 Tab,都能完全恢复
 
- 选
- 功能特性-颜色-方案:可以选择颜色方案,如果觉得不合适也支持自定义
添加到右键菜单
以管理员身份打开 Cmder,运行以下命令,然后在文件夹上右键点击Cmder Here,就能在 Cmder 里进入该目录。
cmder /register all    //注册
cmder /unregister all  //取消注册
config 目录介绍
- /profile.d/:用于存放在启动时执行的脚本文件
- clink_settings:
- user_aliases.cmd:仅用于定义- cmd的别名,不可以在启动时执行命令
- user_profile.cmd:可用于定义- cmd的别名,也可以在启动时执行命令
- user_profile.ps1:可用于定义- PowerShell的别名,也可以在启动时执行命令
- user_profile.sh:可用于定义- bash的别名,也可以在启动时执行命令
- user-ConEmu.xml:
echo %CMDER_ROOT%       # 打印 Cmder 的路径【C:\_dev\_Tools\cmder\cmder1.3.18】
echo %ConEmuDir%        # 打印 ConEmu 的路径【...\cmder1.3.18\vendor\conemu-maximus5】
echo %ConEmuBaseDir%    # 打印 ConEmu 的路径【...\cmder1.3.18\vendor\conemu-maximus5\ConEmu】
命令行参数介绍
| Argument | Description | 
|---|---|
| /C [user_root_path] | 设置 Cmder 的根目录 | 
| /M | ConEmu 存储设置 | 
| /SINGLE | 以单模式启动 Cmder | 
| /START [start_path] | 设置启动的初始路径 | 
| /TASK [task_name] | 设置启动的任务 | 
| /X [ConEmu extras params] | 将参数转发给 ConEmu | 
| /REGISTER [ALL, USER] | 注册右键快捷方式【常用】 | 
| /UNREGISTER [ALL, USER] | 取消注册右键快捷方式【常用】 | 
集成到其他终端中
Cmder 可与 Windows Terminal、Android Studio、VS Code、Cmd、Bash 等 terminal/IDEs 集成,详见 wiki
集成到 Windows Terminal
- 首先需要定义 CMDER_ROOT 用户变量
- 打开 Windows Terminal 的设置文件 settings.json,在profiles中的list中添加如下内容
    {
          "guid": "{00000000-0000-0000-ba54-000000000132}",
          "name": "Cmder",
          "commandline": "cmd.exe /k %cmder_root%/vendor/init.bat",
          "icon": "%cmder_root%/icons/cmder.ico",
          "hidden": false
    },
- 可以通过修改defaultProfile(值可以是name,例如"Cmder"),将 Cmder 作为 Windows Terminal 启动时的默认终端
- 可以通过修改colorScheme(值来自于"schemes": [...],例如"Monokai Cmder"),将 Cmder 的配色方案改为 Monokai-Cmder
- 可以通过修改commandline,将在 Windows Terminal 中启动 Cmder 时的默认终端改为 Powershell
集成到 Android Studio
- 在 Cmder 安装目录下新建一个 cmder_shell.bat文件,内容如下:
@echo off
@cmd.exe /k %~dp0\vendor\init.bat
- 在 IDE 中按 Ctrl + Alt + S打开设置页,并在搜索框中键入terminal
- 在 Shell path中,将cmd.exe更改为[cmder 安装目录]\cmder_shell.bat

自定义别名与自定义脚本
之所以能自定义别名,或者能在启动时执行自定义脚本,是因为在启动时都会首先执行脚本%CMDER_ROOT%/vendor/init.bat,所以我们也可以通过修改init.bat中的逻辑做很多高级自定义的事情。
可将自己的可执行文件放入安装目录下的
bin文件夹中,bin文件夹将在运行时注入到PATH环境变量中。
cmd 别名
- 可以通过alias name=command定义并保存别名,例如alias user=echo %HOME%
- 定义的别名将保存在%CMDER_ROOT%\config\user_aliases.cmd文件中,也可以直接修改此文件
- 可以通过$1-9或$*获取传递的参数,其中$1表示第一个参数
- 可以通过%NAME%引用当前环境的或自定义的变量/常量
有关 Cmd.exe 复杂别名/宏的更多详细信息,请参阅 微软 DOSKEY 文档
在启动 cmd 时会自动执行以下脚本文件:
- %CMDER_ROOT%\config\user_profile.cmd
- %CMDER_ROOT%\config\profile.d\*.cmd
- %CMDER_ROOT%\config\profile.d\*.bat
- 注意:%CMDER_ROOT%\config\user_aliases.cmd只能用来定义别名,而不能用来存放要执行的命令
bash 别名
- 可以通过alias name=command定义别名,例如alias user='echo $HOME',但仅在当前会话有效,而不会持久化
- 可以通过在$CMDER_ROOT/config/user_profile.sh中添加上述语句来持久化别名
- 可以通过$NAME或${NAME}引用当前环境的或自定义的变量/常量
在启动 bash 时会自动执行以下脚本文件(当然也可以将别名定义在以下任一文件中):
- $CMDER_ROOT/config/user_profile.sh
- $CMDER_ROOT/config/profile.d/*.sh
- $HOME/.bashrc------ 注意,这个会影响所有的 bash 终端
PowerShell 别名
- 可以通过[new-alias | set-alias] alias command定义别名,例如new-alias e explorer(只支持将命令简化,不支持参数)
- 可以通过Get-Alias获取当前支持的别名,包含内置的别名,例如pwd -> Get-Location
- 可以通过Get-Alias alias获取别名alias的定义,例如Get-Alias pwd
- 在 PowerShell 中引用 变量/常量 的方式是$NAME或$ENV:NAME
PowerShell 原生具有简单别名的支持,因此 PowerShell 会话中不支持带有可选参数的复杂别名。
在启动 PowerShell 时会自动执行以下脚本文件(当然也可以将别名定义在以下任一文件中):
- $ENV:CMDER_ROOT\config\user_profile.ps1
- $ENV:CMDER_ROOT\config\profile.d\*.ps1
2019-8-25
本文来自博客园,作者:白乾涛,转载请注明原文链接:https://www.cnblogs.com/baiqiantao/p/11408160.html

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号