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部分