Cmder的文章不少,这里主要讲了做为一个程序员,在使用Cmder时会遇到的问题;好比ssh agent
的配置,如何使用cmder链接Linux子系统(WSL)等问题。php
Cmder = Cmd + PowerShell + Git for Windows + "bash"git
在官网Cmder下载cmder压缩包,解压便可。这里注意解压路径不能位于须要管理员访问权限的地方。程序员
添加环境变量:github
新建环境变量%cmder_root%
将其值设置为 cmder.exe
所在路径,再将%cmder_root%
添加到系统的PATH
环境变量中。shell
将cmder添加到文件夹右键菜单:windows
以管理员权限打开 cmd ;切换到 cmder 的解压路径;执行 .\cmder.exe /REGISTER ALL
,便可添加。bash
为cmder建立桌面快捷方式。ssh
进入seting界面:点击Cmder窗口左上角的图标 或者 右下角的 三
图标,而后选择 setting
ui
选择 Startup -> Environment
在这里添加下面的语句:编码
set LANG=zh_CN.UTF-8
设置中文界面: 选择General->Interface language -> zh:简体中文
复制:只需选中一段文字那么该段文字就会被复制到剪贴板
粘贴:直接鼠标右键
便可粘贴,或者使用 Ctrl + v
进行粘贴.
注意区别二者。主要是有时会在cmd模式下输入bash相关的命令格式,致使相关错误。
好比:怎么切换不了路径?
bash
, 能够直接 cd /d/myworkstation
cmd
模式, 须要先输入 d:
来切换到d盘锁定视窗(点击右下角的🔒) ,可让视窗没法再输入。
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
.
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'
相关介绍
在Startup处设置cmder启动时须要执行的任务
默认选择的启动项应该是 {cmd::Cmder}
这个命名任务,咱们能够更改为其它的命令任务或者直接切换到其它的启动项。
当选中某个命名任务时,下面的 "Selected task contents(选中的任务内容)"下会显示该任务执行的具体内容
这里
cmd::Cmder
前面的cmd标明它是cmd模式,咱们能够看到还有 bash 和 PowerShell等模式
咱们也能够在startup -> tasks
处更改和添加 “ Specified named task” 下的命名任务。
下面就来克隆现有的{cmd::Cmder}
添加一个设置自定义的启动目录的任务(Task):
设置启动目录
/icon
指定图标位置,/dir
指定启动目录,因此咱们能够添加下面的参数:/icon "%CMDER_ROOT%\icons\cmder.ico" /dir "C:\Users\Fan"
startup
的“ Specified named task” 处选择 cmd::diy1
具体配置和使用可见:cmder: Lovely console emulator package for Windows 。
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
在 Startup -> Environment
中添加下面的语句:
set LANG=zh_CN.UTF-8
若是打开的文本文件的编码方式不是 utf-8 那么在cmder中查看时会乱码,这种状况须要转换该文件的编码方式为 utf-8
在 Startup -> Environment
中添加下面的语句:
set LANG=zh_CN.UTF-8
而后执行下面的命令,来配置git log的输出
git config --global i18n.logoutputencoding utf-8
或者在 .gitconfig 文件中配置
更多乱码问题见: cmder中文乱码 - CSDN博客
每次想要向远程git仓库推送更新时,都须要先启动ssh代理,再加载(使用ssh-add)私钥,不然就报错而感到很烦。那么能够参考下面的解决方法:
cmd 模式中:
官方文档中有说在 cmd 模式中如何处理 ssh agent的问题:
To start the vendored SSH agent simply call start-ssh-agent
, which is in the vendor/git-for-windows/cmd
folder.
If you want to run SSH agent on startup, include the line @call "%GIT_INSTALL_ROOT%/cmd/start-ssh-agent.cmd"
in %CMDER_ROOT%/config/user-profile.cmd
(usually just uncomment it).
因为开启后不喜欢那种界面,因此我使用 bash模式
bash模式中:
官方文档中没有说如何在bash模式中处理ssh-agent的问题,但咱们能够这样解决。
在$HOME/.bashrc
或$HOME/.profilec
文件中添加以下内容:
# 启动一个 ssh-agent 进程 eval "$(ssh-agent -s)" # 这里同时添加了两个私钥 ssh-add "C:/Users/Fan/.ssh/one_rsa" "C:/Users/Fan/.ssh/two_id_rsa" # 清除上面命令的输出内容 clear
ssh-agent 介绍可参考: SSH相关命令 中的ssh-agent部分