Cmder
文中的 > 是箭頭,51cto給自動轉成了 >
Cmder是一個用於替換windows自帶的cmd的,包含各種軟件包(比如 git)並且非常好用的終端模擬器。
安裝
在官網Cmder下載cmder壓縮包,解壓即可。這裏注意解壓路徑不能位於需要管理員訪問權限的地方。
-
添加環境變量:
新建環境變量
cmder_root
將其值設置爲cmder.exe
所在路徑,再將%cmder_root%
添加到系統的PATH
環境變量中。 -
將cmder添加到文件夾右鍵菜單(即添加Cmder here):
以管理員權限打開 cmd ;切換到 cmder 的解壓路徑;執行
.\cmder.exe /REGISTER ALL
,即可添加。 - 爲cmder創建桌面快捷方式。
常用操作
中文配置
進入seting界面:點擊Cmder窗口左上角的圖標 或者 右下角的 三
圖標,然後選擇 setting
選擇 Startup -> Environment
在這裏添加下面的語句:
set LANG=zh_CN.UTF-8
設置中文界面: 選擇General -> Interface language -> zh:簡體中文
粘貼複製
複製:只需選中一段文字那麼該段文字就會被複制到剪貼板
粘貼:直接鼠標右鍵
即可粘貼,或者使用 Ctrl + v
進行粘貼.
設置爲默認終端
setting > 集成 > 默認項目 > 強制使用ConEmu作爲控制檯應用程序的默認終端
如果允許某些程序出現錯誤,需要關閉此選項;比如 mkcert
cmd模式和bash模式
新手可能會經常在cmd模式下輸入bash相關的命令格式,導致相關錯誤;所以注意一下你當前在哪個模式。
alias別名機制
Cmder增加了alias功能: 它讓你用短短的指令執行一些常見但指令超長又難以記憶的語法;
在其控制檯輸入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 fromvendor\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 會自動創建 ~/.bash_profile
,而對此cmder會提示有衝突,此時可以創建一個~/.profile
並在該文件中添加別名。(這裏 ~
表示$HOME
)
原本是想添加
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啓動選項
相關介紹
-
在Startup處設置cmder啓動時需要執行的任務
默認選擇的啓動項應該是
{cmd::Cmder}
這個命名任務,我們可以更改成其它的命令任務或者直接切換到其它的啓動項。當選中某個命名任務時,下面的 "Selected task contents(選中的任務內容)"下會顯示該任務執行的具體內容
這裏
cmd::Cmder
前面的cmd標明它是cmd模式,我們可以看到還有 bash 和 PowerShell等模式 - 我們也可以在
startup -> tasks
處更改和添加 “ Specified named task” 下的命名任務。
自定義啓動目錄
下面就來克隆現有的{cmd::Cmder}
添加一個設置自定義的啓動目錄的任務(Task):
設置啓動目錄
- 任務參數:下面來看 “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 。
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
WSL的安裝見: Install the Linux Subsystem on Windows 10 - Microsoft Docs
其它問題
中文亂碼
在 Startup -> Environment
中添加下面的語句:
set LANG=zh_CN.UTF-8
如果打開的文本文件的編碼方式不是 utf-8 那麼在cmder中查看時會亂碼,這種情況需要轉換該文件的編碼方式爲 utf-8
查看git log時亂碼
在 Startup -> Environment
中添加下面的語句:
set LANG=zh_CN.UTF-8
然後執行下面的命令,來配置git log的輸出
git config --global i18n.logoutputencoding utf-8
或者在 .gitconfig 文件中配置
更多亂碼問題見: cmder中文亂碼 - CSDN博客
ssh agent
ssh-agent 介紹可參考: SSH相關命令 中的ssh-agent部分
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模式中:
官方文檔中沒有說,但我們可以這樣解決。
在$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
補充
兩個版本,分別是 mini 與 full 版;唯一的差別在於有沒有內建 msysgit 工具,這是 Git for Windows 的標準配備;全安裝版 Cmder自帶了 msysgit,除了 git 本身這個命令之外, 裏面可以使用大量的 linux 命令;比如 grep, curl(沒有 wget); 像 vim, grep, tar, unzip, ssh, ls, bash, perl 等
cmder無法切換路徑?
一次想切換到C盤,我輸入下面的命令:
λ cd C:
C:\
D:\Portable Software\cmder
λ cd ~
系統找不到指定的路徑。
D:\Portable Software\cmder
λ pwd
D:\Portable Software\cmder
D:\Portable Software\cmder
λ cd C:\Users\Fan Dean\Documents
D:\Portable Software\cmder
λ pwd
怎麼切換不了路徑?在網上查詢了一下原來是這樣:
如果是用默認的bash
, 可以直接 cd /d/myworkstation
如果用的是cmd
模式, 需要先輸入 d:
來切換到d盤
d:
cd myworkstation
Windows 裏,可以用 /? 獲取詳細的用法,比如:
輸入下面命令來了解一下cmd中cd的用法:
help cd
# 或者
cd /?
參考
看啥都不如官方文檔管用:
來自於我的簡書:Cmder