cmder終端


Cmder是Windows下非常好用的終端模擬器, 常用於替換windows自帶的終端。它可以在不同的標簽頁中同時連接不同的底層Shell,包括cmd、PowerShell、Bash和WSL,並提供相關增強功能和更加便捷的操作方式,這也正是它被大家稱作為Windows下的神器的原因。


 

 

 

正如Cmder官網所說,我們應該將Cmder看作一個軟件包,而非單個軟件,它包含了:

  • 控制台模擬器:Conemu (它是Cmder的基礎)
  • Cmd.exe增強功能:clink (通過clink進一步增強cmd shell)
  • Unix tools on windows:git for windows

本文屬於我的Cmder系列文章中的第一篇:《Cmder入門配置》
$ hugo server
...
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop

 

安裝

安裝方式一:在官網Cmder下載cmder壓縮包,解壓即可。這里注意解壓路徑不能位於需要管理員訪問權限的地方,建議放在D盤並且確保路徑中沒有空格。

  • 將cmder添加到文件夾右鍵菜單(即添加Cmder here):

    以管理員權限打開 PowerShell;切換到 cmder 的解壓路徑;執行 .\cmder.exe /REGISTER ALL,即可添加,取消注冊則執行 .\cmder.exe /UNREGISTER ALL

  • 為cmder創建桌面快捷方式。

如果你有自己的可執行程序,那么你可以考慮將他們放入 %cmder_root%\bin 目錄,再將 %cmder_root%\bin 目錄添加到 PATH 環境變量。

這里將上文的 %cmder_root% 修改為 cmder.exe所在路徑,或者你可以考慮新建一個%cmder_root% 系統變量,或者將其也添加到PATH中(隨意就好)。

安裝方式二: 通過 scoop 安裝(推薦)

# 安裝完整版(自帶git-for-windows)
scoop install cmder-full
# 安裝mini版,不帶git,安裝后如果想使用bash則還需做一些配置,可見我的系列文章
scoop install cmder

scoop的安裝和使用可參考我的相關文章: Scoop包管理工具 – 就是這個范兒

常用操作

中文配置

進入seting界面:點擊Cmder窗口左上角的圖標 或者 右下角的 圖標,然后選擇 setting

設置中文界面: 選擇General->Interface language -> zh:簡體中文


 

 

粘貼復制

復制:只需選中一段文字那么該段文字就會被復制到剪貼板

粘貼:直接鼠標右鍵即可粘貼,或者使用 Ctrl + v 進行粘貼.

打開超鏈接

Ctrl + 鼠標點擊 即可打開超超鏈接。

比如:

只需要 Ctrl + 鼠標點擊 上述命令輸出中的 http://localhost:1313/ 即可在瀏覽器中打開該鏈接。

設置為默認終端

setting 👉 集成 👉 默認項目 👉 強制使用ConEmu作為控制台應用程序的默認終端`

如果允許某些程序出現錯誤,需要關閉此選項。

cmd模式和bash模式

新手可能會經常在cmd模式下輸入bash相關的命令格式,導致相關錯誤;所以注意一下你當前在哪個模式。

比如在初次使用時,可能會出現切換不了路徑的情況,這是因為你還沒意識到自己在哪個模式下:

如果是用默認的bash, 可以直接 cd /d/myworkstation 這樣跨盤切換。

如果用的是cmd模式, 需要先輸入 d:來切換到d盤。


配置cmder以下拉方式划出

設置 👉 通用 👉 Quake 風格 👉

  • 勾選 Quake式向下滑動
  • 勾選 失去焦點時自動隱藏
  • 修改 動畫時間 為 150

然后在 “通用” 設置處,設置 最小化和恢復 (Minimize/Restore hotkey )時所使用的快捷鍵,默認為 Ctrl + `


如果你同時使用VS Code會發現  Ctrl + `快捷鍵在VS Code中是打開終端的默認快捷鍵;為避免沖突,我個人是選擇將 cmder 的該快捷鍵修改為:  Win + `

alias別名機制

Cmder增加了alias功能: 它讓你用短短的指令執行一些常見但指令超長又難以記憶的語法;

在控制台輸入alias可以查看現有別名。

並且它有分別應用於 cmd,bash和PowerShell的 別名 。

1. cmd aliases:

%CMDER_ROOT%\config\user-aliases.cmd中添加 cmd aliases,它僅用於 cmd 命令

示例:


ls=ls --show-control-chars -F --color $*
pwd=cd
clear=cls

具體配置可參考:cmder/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 會自動創建 ~/.bash_profile,而對此cmder會提示有沖突,此時可以創建一個~/.profile並在該文件中添加別名。(這里 ~表示$HOME

3.PowerShell aliases:

直接使用PowerShell 的 alias命令添加或在下面的文件中添加:


'$ENV:CMDER_ROOT\config\profile.d\*.ps1'
'$ENV:CMDER_ROOT\config\user-profile.ps1'

 

這里 $ENV:CMDER_ROOT 指 cmder 的安裝目錄。

 

 

相關介紹

  • 在 啟動(Startup)處設置 cmder 啟動時需要執行的任務

    默認選擇的啟動項是 {cmd::Cmder} 這個命名任務,我們可以更改成其它的命令任務或者直接切換到其它的啟動項。

    當選中某個命名任務時,下面的 "選中的任務內容" 下會顯示該任務執行的具體內容

  • 我們也可以在 啟動 -> 任務startup -> tasks)處更改和添加命名任務。

這里cmd::Cmder前面的cmd標明它是cmd模式,我們可以看到還有 bash 和 PowerShell等模式

自定義啟動目錄

下面就來克隆現有的{cmd::Cmder}添加一個設置自定義的啟動目錄的任務(Task):

 

 設置啟動目錄

 

 


  • 任務參數:下面來看 “Task parameters”命令參數,閱讀實例可知參數 /icon指定圖標位置,/dir 指定啟動目錄,所以我們可以添加下面的參數:/icon "%CMDER_ROOT%\icons\cmder.ico" /dir "C:\Users\Fan"
  • 記得在 startup 的“ Specified named task” 處選擇 cmd::diy1
  • 保存設置,退出,重新打開 cmder 查看效果

為任務添加快捷鍵

在上圖中我們可以發現還可以為每個任務設置 熱鍵 ,下面是我個人的熱鍵設置:

  • 打開一個 cmd 任務標簽頁:Alt+c
  • 打開一個PowerShell 任務標簽頁:Alt+p
  • 打開一個 bash 任務標簽頁:Alt+b
  • 打開一個 WSL 任務標簽頁:Alt+l

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

這表示可用/mnt/c 來訪問 C: 盤;這里還可以進行一些調整(例如創建從/c到的符號鏈接/mnt/c

也可以在Linux子系統中設置如下別名以便於切換:


# ~/.bashrc 
alias cdc='cd /mnt/c/'
alias cdd='cd /mnt/d/'
alias cde='cd /mnt/e/'

其它問題

中文亂碼

在 Startup -> Environment 中添加下面的語句:

set LANG=zh_CN.UTF-8

如果沒有出現亂碼,則可以不添加。

如果打開的文本文件的編碼方式不是 utf-8 那么在cmder中查看時會亂碼,這種情況需要轉換該文件的編碼方式為 utf-8

 

 


查看git log時亂碼

這一般是git的配置問題,執行下面的命令,來配置git log的輸出

git config --global i18n.logoutputencoding utf-8 

或者在 .gitconfig 文件中配置

更多git亂碼問題見: cmder中文亂碼

ssh agent

每次想要向遠程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模式中處理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部分

或者查看:Setting up git+ssh+gpg on Windows

補充

點擊右下角的鎖(🔒 :lock: )即可鎖定視窗 ,可以讓窗口無法再輸入內容。

正確退出

我們一直是習慣於直接點擊右上角的 × 來關閉程序,但是正確的退出方法應該是在cmder中輸入 exit 來進行退出,只有這樣退出歷史記錄才會保留,你在下次打開cmder時才可向上翻看上次歷史。

Cmder系列文章

下面是我的系列文章

如果想要將Cmder對應的任務標簽頁配置為如下效果,則可參考該系列文章:

  •  

     

    在Cmd下的效果:

 

 

PowerShell下不同主題的效果:

 

 WSL bash下的效果:

 

 

參考

官方文檔:








免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM