windows shell使用指南
- windows shell使用指南
- 终端工具
- Fluent Terminal
- hyper
- windows terminal
- tabby(原名Terminus)
- 软件包管理工具
- chocolatey
- winget
- scoop
- linux命令配置
- git
- busybox
- gow 和 unxutils
- 安装常用工具
- 工具使用
- powershell美化
- 背景主题
- PowerShell 的提示符
- oh-my-posh
- starship
- 安装字体
- 中文乱码问题
- powershell 自动补全
- SSH配置
- fluent terminal ssh认证
- 安装sshfs
- 参控链接
终端工具
Fluent Terminal
Fluent Terminal 是是专属于 Windows 平台,利用 UWP 技术打造的颜值超高的终端模拟器,其响应速度仅稍逊于自带的默认 PowerShell 终端,设置是 GUI 方式的,而且功能非常强大,值得推荐。
安装方式:
-
可以直接在win10 应用商店安装。
-
从github地址安装:https://github.com/felixse/FluentTerminal
将Fluent Terminal放到右键菜单
官方脚本链接
下载之后直接执行luentTerminal-master\Explorer Context Menu Integration\Install_with_icon.bat
就可以了
hyper
Hyper 是基于 Electron 的跨平台应用,配置方便、插件丰富、界面美丽。当然,避免不了的是 Electron 资源消耗大,但是它们的拓展性都非常强大,可以试一试。
-
https://hyper.is/
-
https://github.com/bnb/awesome-hyper
windows terminal
安装方式可以直接从应用商店安装,自定义功能非常强大,不过许多功能需要通过配置文件来完成,上手难度比其它工具略高。
tabby(原名Terminus)
Terminus也是基于 Electron 的跨平台应用,配置方便、插件丰富、界面美丽。当然,避免不了的是 Electron 资源消耗大,但是它们的拓展性都非常强大,值得尝试。
- https://github.com/Eugeny/tabby
软件包管理工具
chocolatey
管理员打开cmd,执行命令
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
软件非常丰富,操作也非常的简单,非常适合懒人玩家使用。
winget
安装地址:https://github.com/microsoft/winget-cli/releases/
微软官方推出的,目前软件数量还不是特别多,不过以后可能会非常的多,毕竟背靠微软。
scoop
安装方式:
#在 PowerShell 中输入下面内容,保证允许本地脚本的执行:
set-executionpolicy remotesigned -scope currentuser
#然后执行下面的命令安装 Scoop:
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
- Scoop 在你的用户根目录(一般是 C:\Users\用户名)下创建了一个名为 scoop 的文件夹,并默认将软件下载安装到这个文件夹下
- Scoop 将软件安装到一个相对隔离的环境下(Each program you install is isolated and independent),从而保证环境的统一和路径不被污染
scoop的软件数量取决于自己配置的仓库,它有非常高的定制性,更适合进阶玩家使用。
linux命令配置
git
需要安装 Git,PATH 中除了 git 所需的 Git
、Git\cmd
之外,额外加入 Git\usr\bin
就可以了
busybox
直接使用安装包管理工具安装,例如:
choco install busybox
目前正在更新,但是使用每一个命令时都需要添加一个busybox
,这一点不是很方便,想要使用的话,可以配置软连接
for %%i in (ar, arch, ash, awk, base64, basename, bash, bunzip2, bzcat, bzip2, cal, cat, chmod, cksum, ^
clear, cmp, comm, cp, cpio, cut, date, dc, dd, df, diff, dirname, dos2unix, dpkg, dpkg-deb, du, echo, ed,^
egrep, env, expand, expr, factor, false, fgrep, find, fold, fsync, ftpget, ftpput, getopt, grep, groups,^
gunzip, gzip, hd, head, hexdump, iconv, id, ipcalc, kill, killall, less, link, ln, logname, ls, lzcat, lzma,^
lzop, lzopcat, man, md5sum, mkdir, mktemp, mv, nc, nl, od, paste, patch, pgrep, pidof, pipe_progress, pkill,^
printenv, printf, ps, pwd, readlink, realpath, reset, rev, rm, rmdir, rpm, rpm2cpio, sed, seq, sh, sha1sum,^
sha256sum, sha3sum, sha512sum, shred, shuf, sleep, sort, split, ssl_client, stat, strings, su, sum, tac, tail,^
tar, tee, test, timeout, touch, tr, true, truncate, ts, ttysize, uname, uncompress, unexpand, uniq, unix2dos,^
unlink, unlzma, unlzop, unxz, unzip, usleep, uudecode, uuencode, vi, watch, wc, wget, which, whoami, whois,^
xargs, xxd, xz, xzcat, yes, zcat)^
do mklink C:\Windows\System32\%%i.exe C:\Windows\System32\busybox.exe
gow 和 unxutils
好处是每一个命令都是独立的小工具,但是已经好久不更新了,不推荐使用
安装常用工具
choco install gsudo
choco install winfetch
choco install colortool
choco install fd
choco install fzf
choco install zoxide
choco install bottom
choco install lsd
choco install neovim
工具使用
zoxide使用
zoxide的使用需要在powershell中进行配置
#打开配置文件
notepad $PROFILE
#在文件中添加内容
Invoke-Expression (& {
$hook = if ($PSVersionTable.PSVersion.Major -lt 6) { 'prompt' } else { 'pwd' }
(zoxide init --hook $hook powershell) -join "`n"
})
FZF使用
可以搭配zoxide中的zi
命令进行使用,快速找到常用命令
Ctrl-T 快速选择当前目录文件,并把文件名打印出来
Ctrl-R 使用fzf来过滤history命令
ALT-C 进入选中的目录
lsd使用
lsd命令可以替换powershell中的ls命令
#打开配置文件
notepad $PROFILE
#在文件中添加内容
Remove-Item alias:\ls
Set-Alias ls lsd
function getlist {lsd -l}
Set-Alias ll getlist
nvim
#windows 用户配置文件在~\AppData\Local\nvim下面的init.vim文件,没有手动建一个
#具体配置可以自己查询
#可以给nvim起一个别名
Set-Alias vim nvim
powershell美化
背景主题
Fluent Terminal可以直接利用自带的主题功能自己配置颜色,简单而且自定义程度高,懒得自己配置的话也可以导入iterm2里面的主题,直接导入 schemes 中的主题即可。
或者可以使用colortools管理终端主题
安装方式
choco install colortools
使用方式
colortool -s #显示所有可用方案
colortool -c #显示当前的色彩方案
colortool -b OneHalfDark #修改主题方案,可以是默认方案,也可以是iterm2方案
ColorTool -b .\DimmedMonokai.itermcolors
背景图片,透明度之类的也可以在Fluent Terminal中自己设置。
PowerShell 的提示符
oh-my-posh
官方文档
choco install oh-my-posh
#安装好之后,使用管理员身份打开p
#绕过power shell执行策略,使其可以执行脚本文件<后面会用到>
Set-ExecutionPolicy Bypass
#oh-my-posh提供主题
Install-Module oh-my-posh -Scope CurrentUser
#posh-git将git信息添加到提示中
Install-Module posh-git -Scope CurrentUser
#启动编辑power shell配置文件的引擎
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
#使用记事本打开配置文件
notepad $PROFILE
#在打开的记事本中写入如下内容(脚本文件),并保存
Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt -Theme JanDeDobbeleer
#该命令可以查看预装的主题,然后修改配置
Get-PoshThemes
notepad $PROFILE
. $PROFILE
starship
starship的官方文档和下载地址
-
https://github.com/starship/starship
-
https://starship.rs/guide/#-installation
#安装starship
choco install starship
#添加内容
Invoke-Expression (&starship init powershell)
#设置配置
mkdir -p ~/.config && touch ~/.config/starship.toml
安装字体
地址:https://www.nerdfonts.com/font-downloads
从这上面下载字体,需要下载Nerd字体,推荐DejaVuSansMono
中文乱码问题
打开 控制面板—>区域—>管理—>更改系统区域设置,然后勾选:使用Unicode UTF-8提供全球语音支持
就可以全局使用utf8了,这是可以在终端查看chcp
,出现的是65001就代表使用的是utf-8的格式。
但是我发现这样依然存在问题,例如在执行重定向输出时:
ls > a.txt
输入的文件格式并不是utf-8的,然后从网上找到一个方法,可以在配置文件中添加配置让输出的文件格式为utf-8,
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8' #(带有BOM的UTF8)
但是由于powershell 强制使用带有BOM的UTF8,所以依然会出现问题,这个我在powershell5上没有找到结解决办法,不过想使用正常的UTF-8,可以使用powershell7,powershell7默认使用的是无BOM的UTF8,功能也更加强大。
powershell 自动补全
使用过zsh中的 autosuggestions 之后就回不去了,希望可以在powershell实现,然后发现了大神的解决办法,参考https://www.brothereye.cn/windows/797/。
此功能由 PowerShell/PSReadLine issue 687: Fish-like autocompletion 发起讨论,并在 issue 1468: Predictive IntelliSense 中得到实现,有时间的伙伴可以点击链接去查看作者的解答,我这里简述下 1468 中完成的功能:1. 完成提示和补全历史命令;2. 增加动态提示函数以及参数。
将 PSReadLine 更新到 2.1.0-beta1 以上即可:
Install-Module -Name PowerShellGet -Force # 升级 PSGEt
Install-Module -Name PSReadLine -AllowPrerelease -Force # 升级 PSReadLine
Get-PSReadLineOption # 显示所有可以配置的选项
Get-PSReadLineKeyHandler # 显示所有可以配置的快捷键
#之后在配置文件中通过 Set-PSReadLineOption 和 Set-PSReadlineKeyHandler 可以进行配置。
然后需要配置$PROFILE
具体配置方法可以参考微软官方的回答
Set-PSReadLineKeyHandler -Key "Ctrl+d" -Function MenuComplete
Set-PSReadLineKeyHandler -Key "Ctrl+f" -Function ForwardWord
Set-PSReadLineKeyHandler -Key "Ctrl+b" -Function BackwardWord
Set-PSReadLineKeyHandler -Key "Ctrl+z" -Function Undo
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
Set-PSReadLineOption -Colors @{ "InlinePrediction" = '#2F7004'}
SSH配置
fluent terminal ssh认证
利用ssh命令生成密钥
ssh-keygen -t rsa
生成公钥id_rsa.pub
需要放到服务器上,和私钥id_rsa
需要放到自己的主机上
将公钥放到~/.ssh/
目录下,并命名为authorized_keys
然后设置服务端支持密钥登录
sudo vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
#设置root用户可以登录
PermitRootLogin yes
#重启ssh
service sshd restart
配置scp免密传输
vim ~/.ssh/config
#配置文件内容
Host servername # 别名,域名缩写
HostName sever.com # 域名/IP
User username # 登录该域名使用的账号名
Port 22 #端口
IdentityFile ~/.ssh/id_rsa # 私钥文件的路径
chmod 600 config
配置好之后可能会发生错错误
遇到报错:Bad owner or permissions on C:\Users\xxx/.ssh/config ,
参考链接
禁用config的继承关系并修改权限为自己用户的完全控制,修改后如下图所示
然后利用scp复制文件的时候就可以用如下命令
安装sshfs
参考文档 https://www.cnblogs.com/xieqk/p/ssh-sshfs-win-mount-winfsp-dokan.html
- sshfs-win:https://github.com/billziss-gh/sshfs-win/releases
- winfsp:https://github.com/billziss-gh/winfsp/releases
- SSHFS-Win Manager:https://github.com/evsar3/sshfs-win-manager/releases (GUI,可选)
参控链接
https://www.brothereye.cn/windows/797/
https://coolcode.org/2018/03/16/how-to-make-your-powershell-beautiful/#Windows-10-控制台的颜色设置
https://www.pstips.net/powershell-online-tutorials