Cmder = Cmd + PowerShell + Git for Windows + "bash"
官方文档:
* Readme:[cmder/README.md at master · cmderdev/cmder](https://github.com/cmderdev/cmder/blob/master/README.md)
* wiki:[Home · cmderdev/cmder Wiki](https://github.com/cmderdev/cmder/wiki)
[TOC]
## 安装
在官网[Cmder](http://cmder.net/)下载cmder压缩包,解压即可。这里**注意**解压路径不能位于需要管理员访问权限的地方。
* 添加环境变量:
新建环境变量`%cmder_root%` 将其值设置为 `cmder.exe`所在路径,再将`%cmder_root%`添加到系统的`PATH`环境变量中。
* 将cmder添加到文件夹右键菜单:
以管理员权限打开 cmd ;切换到 cmder 的解压路径;执行 `.\cmder.exe /REGISTER ALL`,即可添加。
* 为cmder创建桌面快捷方式。
## 中文配置
进入setting界面:点击Cmder窗口左上角的图标 或者 右下角的 `三`图标,然后选择 `setting`
选择 `Startup -> Environment` 在这里添加下面的语句:
~~~powershell
set PATH=%ConEmuBaseDir%\Scripts;%PATH%
set LANG=zh_CN.UTF-8
set LC_ALL=zh_CN.utf8
chcp utf-8
~~~
## 粘贴复制
复制:只需选中一段文字那么该段文字就会被复制到剪贴板
粘贴:直接`鼠标右键`即可粘贴,或者使用 `Ctrl + v` 进行粘贴.
## cmd模式和bash模式
注意区别两者。主要是有时会在cmd模式下输入bash相关的命令格式,导致相关错误。
比如:怎么切换不了路径?
* 如果是用默认的`bash`, 可以直接 `cd /d/myworkstation`
* 如果用的是`cmd`模式, 需要先输入 `d:`来切换到d盘
## 锁定视窗
锁定视窗(点击右下角的🔒) ,可以让视窗无法再输入。
## alias别名机制
**Cmder增加了alias功能:** 它让你用短短的指令执行一些常见但指令超长又难以记忆的语法。
在其控制台输入`alias`可以查看已有别名。
发现有分别应用于 cmd,bash,Power Shell的alias。
**1\. cmd aliases:**
在`%CMDER_ROOT%\config\user-aliases.cmd`中添加cmd aliases,它**仅用于 cmd 命令**
示例:
~~~
ls=ls --show-control-chars -F --color $*
pwd=cd
clear=cls
~~~
> `user-aliases.cmd`: aliases in cmd; called from vendor\\init.bat; autocreated from
> `vendor\user-aliases.cmd.example`.
>
> 参考:[cmder/README.md at master · cmderdev/cmder](https://github.com/cmderdev/cmder/blob/master/README.md)
**2\. Bash/Mintty aliases:**
对于bash,其配置文件的加载顺序是:
~~~
$CMDER_ROOT/config/profile.d/*.sh
$CMDER_ROOT/config/user-profile.sh
$HOME/.bashrc
~~~
所以我们可以在上面的文件中添加 alias 即可。
几个示例:
~~~
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
~~~
由于 Git for Windows 会自动创建 `$HOME/.bash_profile`,如果此时创建`$HOME/.bashrc`文件运行cmder时cmder会提示有冲突,此时可以创建一个`$HOME/.profile`(也行)并在该文件中添加别名。
> 原本是想添加`ssh-agent bash`相关的别名的,但是一旦执行此命令后启动了一个子shell,在此子shell里不可以使用别名。可参考下文的**ssh agent**部分。(这里属于ssh代理相关问题)
**3.Power Shell aliases:**
直接使用`alias`命令添加或在下面的文件中添加:
~~~
'$ENV:CMDER_ROOT\config\profile.d\*.ps1'
'$ENV:CMDER_ROOT\config\user-profile.ps1'
~~~
## Cmder启动选项
![](https://img.kancloud.cn/9c/d4/9cd4a911096b465eb606ea519089fa07_761x303.png)
* 在Startup处设置cmder启动时需要执行的任务
默认选择的启动项应该是 `{cmd::Cmder}` 这个命名任务,我们可以更改成其它的命令任务或者直接切换到其它的启动项。
当选中某个命名任务时,下面的 "Selected task contents(选中的任务内容)"下会显示该任务执行的具体内容
> 这里`cmd::Cmder`前面的cmd标明它是cmd模式,我们可以看到还有 bash 和 PowerShell等模式
* 我们也可以在`startup -> tasks`处更改和添加 “ Specified named task” 下的命名任务。
### 自定义启动目录
下面就来克隆现有的`{cmd::Cmder}`添加一个设置自定义的启动目录的任务(Task):
![](https://img.kancloud.cn/38/28/3828e472bafc083d76f80f522c7e28b0_763x510.png)
设置启动目录
![](https://img.kancloud.cn/26/fa/26facf597904bb6b7b04fada730de795_761x508.png)
* 任务参数:下面来看 “Task parameters”命令参数,阅读实例可知参数 `/icon`指定图标位置,`/dir` 指定启动目录,所以我们可以添加下面的参数:`/icon "%CMDER_ROOT%\icons\cmder.ico" /dir "C:\Users\Fan"`
* 记得在 `startup` 的“ Specified named task” 处选择 `cmd::diy1`
* 保存设置,退出,重新打开cmder查看效果
> 具体配置和使用可见:[cmder: Lovely console emulator package for Windows](https://github.com/cmderdev/cmder) 。
## cmder连接Linux子系统(WSL)
Windows Subsystem for Linux(简称WSL)。
ConEmu(包括基于 ConEmu 修改的 cmder) 等终端模拟器也已经适配了 WSL 环境。
连接方式:
* 添加一个标签页时(点击右下角的 ➕),选择 `WSL --> bash`
* 或直接将启动任务指定为 `{WSL::bash}`
Windows系统的分区全部挂载于Linux子系统的 `/mnt` 目录
~~~
$ ls /mnt
c d e f g
~~~
因此可以在**Linux子系统中**设置如下别名以便于切换:
~~~
# ~/.bashrc
alias cdc='cd /mnt/c/'
alias cdd='cd /mnt/d/'
alias cde='cd /mnt/e/'
~~~
> WSL的安装见: [Install the Linux Subsystem on Windows 10 - Microsoft Docs](https://docs.microsoft.com/zh-cn/windows/wsl/install-win10)
## 参考文档
1. [[Cmder]](https://www.jianshu.com/p/552b7f0bb18c)
2. [[Cmder配置及美化指南]](https://zhuanlan.zhihu.com/p/71706782)
- WebAPP
- Linux Command
- 入门
- 处理文件
- 查找文件单词
- 环境
- 联网
- Linux
- Linux目录配置标准:FHS
- Linux文件与目录管理
- Linux账号管理与ACL权限设置
- Linux系统资源查看
- 软件包管理
- Bash
- Daemon/Systemd
- ftp
- Apache
- MySQL
- Command
- Replication
- mysqld
- remote access
- remark
- 限制
- PHP
- String
- Array
- Function
- Class
- File
- JAVA
- Protocals
- http
- mqtt
- IDE
- phpDesigner
- eclipse
- vscode
- Notepad++
- WebAPI
- Javasript
- DOM
- BOM
- Event
- Class
- Module
- Ajax
- Fetch
- Promise
- async/await
- Statements and declarations
- Function
- Framwork
- jQurey
- Types
- Promise
- BootStrap
- v4
- ThinkPHP5
- install
- 定时任务
- CodeIgniter
- React.js
- node.js
- npm
- npm-commands
- npm-folder
- package.json
- Docker and private modules
- module
- webpack.js
- install
- configuration
- package.json
- entry
- modules
- plugins
- Code Splitting
- loaders
- libs
- API
- webpack-cli
- Vue.js
- install
- Compile
- VueAPI
- vuex
- vue-router
- vue-devtools
- vue-cli
- vue-loader
- VDOM
- vue-instance
- components
- template
- Single-File Components
- props
- data
- methods
- computed
- watch
- Event-handling
- Render Func
- remark
- 案例学习
- bootstrap-vue
- modal
- fontAwesome
- Hosting Font Awesome Yourself
- using with jquery
- using with Vue.js
- HTML
- CSS
- plugins
- Chart.js
- D3.js
- phpSpreadSheet
- Guzzle
- Cmder
- Git
- git命令
- git流程
- Postman
- Markdown
- Regular Expressions
- PowerDesigner
- 附录1-学习资源